What problem does it solve? Go CLIs often break shell composability by writing logs to stdout, exiting inside commands, or hardcoding versions. This Skill provides a structured workflow for building, extending, and reviewing Go command-line tools that pipe cleanly, exit predictably, and layer configuration correctly. ## Core Features & Use Cases - Command tree scaffolding: Cobra + Viper layout with one file per command, root command silencing, and config initialization in PersistentPreRunE. - Unix discipline enforcement: stdout/stderr separation via cmd.OutOrStdout(), exit code tables, ldflags version injection, and signal-based graceful shutdown. - Review checklists: Concrete mistake/fix tables for auditing existing CLIs against shell conventions. - Use Case: You are adding a deploy subcommand to an existing Go CLI. The Skill guides you to create it in its own file, bind flags to Viper, add validators and completions, and verify it works via flag, environment variable, and config file. ## Quick Start Use the go-cli skill to scaffold a new Cobra-based CLI with Viper config, a version subcommand, and shell completions.