← ClaudeAtlas

golang-clilisted

Design or review the framework-independent behavior and architecture of Go command-line applications: command UX, flags, configuration, output and exit contracts, version/build metadata, cancellation, completion, distribution, and testability. Use for cross-cutting CLI behavior and combine with a framework skill when Cobra or Viper APIs are central.
reagin/agent-skills · ★ 0 · Web & Frontend · score 63
Install: claude install-skill reagin/agent-skills
# Go CLI Engineering Build a predictable interface for both people and automation. Preserve the project's existing command framework and conventions unless the user asks to change them. ## Start with the current contract Before editing: 1. Read `go.mod`, command entry points, existing command and configuration packages, tests, release scripts, completion/docs generation, and user-facing docs. 2. Identify supported platforms, installation channels, whether output is consumed by scripts, and compatibility promises for flags, exit codes, version output, and output formats. 3. Separate the command layer from domain work. Commands should parse input, call testable application logic, render results, and map failures at one outer boundary. 4. Treat renaming a flag, changing a default, moving output between streams, or changing JSON fields as an API change. Do not add a CLI or configuration dependency merely to follow a preferred pattern. The standard library flag package is often enough for a small, flat command. A framework can be justified by an existing codebase or requirements such as nested commands, completion, shared flags, and extensive help generation. When implementing the boundary, read [command recipes](references/command-recipes.md) for testable standard-library and Cobra shapes, explicit flag/config precedence, signal ownership, and separate output capture. Use only the branch matching the existing project. ## Design the command surface - Make command and flag