agentsclimarketplace

Version file operations

Skill scagogogo/versions-skills/skills/version-file-operations

AI-native version number toolkit in Go — Skills + MCP + SDK + CLI. Parse, compare, sort, group, check constraints & range-query version numbers. Works with Claude Code, Codex, Cursor, Windsurf, Cline, VS Code Copilot.

Install
npx -y skills add scagogogo/versions-skills --skill version-file-operations

Assembled from the repository path, not quoted from the project. Check it against their README if it does not work.

One thing to look at

  • 1 stars1 stars. Stars are a popularity signal and not a quality one, but at this level it is likely that nobody has read this closely except its author, and you would be relying on your own review.

What its author says it does

Copied from the file, not written here

Read version lists from files, write sorted versions to files, or stream versions from any io.Reader.

SKILL.md

6.1 KB, as published. Nobody here has run it

Version File Operations

Setup: See /installation for one-time SDK/CLI/MCP install.
Layers: SDK (Go) → CLI (shell) → MCP (AI tools) — pick your entry point.

When to Use

  • Reading version numbers from a text file (one per line)
  • Writing a sorted version list to a file
  • Processing version lists from dependency lock files or release logs
  • Using file-based version data as input for sorting, grouping, or filtering
  • Building CI/CD tools that read or write version files

Decision Tree

Need to read and parse versions from a file?
  → Use ReadVersionsFromFile / version_read_file
Need raw strings without parsing overhead?
  → Use ReadVersionsStringFromFile / version_read_file with parse=false
Need to read from a non-file source (HTTP, pipe)?
  → Use ReadVersionsFromReader
Need to write versions to a file sorted?
  → Use WriteVersionsToFile / version_write_file
Need file input for another operation (sort, group, filter)?
  → Use --from-file flag (CLI) or read-then-operate (SDK)

Task Patterns

Read and parse versions from a file

Goal: Load a file, parse each line as a Version, and filter out invalid entries.

LayerApproach
SDKversionList, err := versions.ReadVersionsFromFile("versions.txt")
CLIversions read versions.txt
MCP{"tool": "version_read_file", "arguments": {"filepath": "versions.txt", "parse": true}}

Read raw strings without parsing

Goal: Get version strings from a file without the overhead of parsing into Version objects.

LayerApproach
SDKrawStrings, err := versions.ReadVersionsStringFromFile("versions.txt")
CLIversions read-strings versions.txt
MCP{"tool": "version_read_file", "arguments": {"filepath": "versions.txt", "parse": false}}

Write sorted versions to a file

Goal: Take a list of versions, sort them, and write to a file.

LayerApproach
SDKerr := versions.WriteVersionsToFile(versionList, "sorted.txt")
CLIversions write --output sorted.txt 2.0.0 1.0.0 1.1.0
MCP{"tool": "version_write_file", "arguments": {"filepath": "sorted.txt", "versions": ["2.0.0", "1.0.0", "1.1.0"]}}

Read from any io.Reader (streaming)

Goal: Parse versions from a non-file source like an HTTP response or string buffer.

LayerApproach
SDKdata := strings.NewReader("1.0.0\n1.1.0\n2.0.0\n"); versionList, err := versions.ReadVersionsFromReader(data)
CLIcat versions.txt | versions sort (stdin pipe)
MCPNot directly supported — use version_read_file for server-local files

Use file input for other operations

Goal: Feed a file's contents directly into sort, group, or range commands.

LayerApproach
SDKRead first, then pass to operation function
CLIversions sort --from-file versions.txt, versions group --from-file versions.txt, versions range 1.0.0 3.0.0 --from-file versions.txt
MCPRead with version_read_file, then pass result to other tools

Full read-filter-write pipeline

Goal: Read versions from a file, filter out invalid ones, and write back sorted.

LayerApproach
SDKRead → iterate checking IsValid()WriteVersionsToFile(valid, "output.txt")
CLIversions read versions.txt | versions filter --stable | ... (chain commands)
MCPversion_read_file → filter client-side → version_write_file

API Reference

SDK Functions

// Read and parse versions from a file (uses NewVersion, invalid → IsValid()==false)
func ReadVersionsFromFile(filepath string) ([]*Version, error)

// Read raw strings from a file (no parsing overhead)
func ReadVersionsStringFromFile(filepath string) ([]string, error)

// Read and parse versions from any io.Reader (streaming)
func ReadVersionsFromReader(reader io.Reader) ([]*Version, error)

// Write sorted versions to a file (sorts before writing, perm 0644)
func WriteVersionsToFile(versions []*Version, filepath string) error

File Format

# Comments start with # and are ignored
1.0.0
1.0.1

# Blank lines are also ignored
1.1.0-beta
1.1.0

CLI Commands

versions read <filepath>                  # read and parse, display each version
versions read-strings <filepath>          # read raw strings, no parsing
versions write --output <filepath> <v...> # write sorted versions to file

--from-file flag is available on: sort, sort-strings, group, range.

MCP Tools

ToolArgumentsReturns
version_read_filefilepath (string), parse? (bool, default true)parsed versions or raw strings
version_write_filefilepath (string), versions ([]string)success, filepath, versions_written

Cross-References

  • [[version-sorting]] — sort versions after reading from a file
  • [[version-grouping]] — group versions loaded from a file
  • [[version-filtering]] — filter versions read from a file
  • [[version-visualization]] — visualize versions loaded from a file

Important Notes

  • File format: one version per line; # comments; blank lines ignored; leading/trailing whitespace trimmed.
  • ReadVersionsFromFile uses NewVersion (not NewVersionE) — invalid lines become Version objects with IsValid() == false. Always check validity after reading.
  • WriteVersionsToFile sorts before writing — the output file is always in ascending order.
  • WriteVersionsToFile uses os.WriteFile with permission 0644.
  • For very large files, consider streaming with ReadVersionsFromReader instead of ReadVersionsFromFile (which reads the entire file into memory).
  • CLI --from-file flag is available on sort, sort-strings, group, and range commands.
  • MCP version_read_file supports both parsed and raw output via the parse boolean parameter.
  • MCP file tools operate on the server's local filesystem, not the client's.

Keep looking

Skills are one crate of 328,083. Ordering is by how many stacks a row turns up in, so the top of any crate is what has actually been picked rather than what has the most stars.