Skip to main content

cli-development

CLI tool design, argument parsing, interactive prompts, shell completions, cross-platform considerations, and distribution strategies.

Datos de origen

Repositorio
irahardianto/rugged-gemini
Última actividad en el origen
6 de mayo de 2026 a las 14:46
Idioma detectado de SKILL.md
inglés
Estrellas
5
Forks
2

Opciones de instalación

De forma predeterminada está seleccionado el prompt que primero revisa el origen. Puedes cambiar a un comando directo o descargar una copia local.

Revisa los archivos de origen

Lee SKILL.md y los archivos complementarios que muestra SkillsMP antes de decidir si quieres instalarlo.

Mostrando SKILL.md

SKILL.md
Instrucciones de origen · Vista previa de solo lectura
name
cli-development
description
CLI tool design, argument parsing, interactive prompts, shell completions, cross-platform considerations, and distribution strategies.
# CLI Development Principles Guidelines for building fast, intuitive, cross-platform CLI tools. ## When to Invoke - Designing CLI tool architecture - Implementing command hierarchies and argument parsing - Adding shell completions and interactive features - Cross-platform distribution planning ## Architecture ### Command Hierarchy ``` app <command> [subcommand] [flags] [args] app task create --priority high "Deploy fix" app task list --status active --format json ``` ### Design Principles 1. **Startup time < 100ms** — lazy-load expensive dependencies. 2. **Sensible defaults** — zero-config for common cases. 3. **Progressive disclosure** — simple interface, advanced flags for power users. 4. **Machine-readable output** — `--format json` for scripting. 5. **Exit codes** — 0 = success, 1 = error, 2 = usage error. ## Argument Parsing Libraries | Language | Library | Notes | |---|---|---| | Go | `cobra` + `pflag` | Most popular, auto-completions | | Rust | `clap` (derive) | Type-safe, auto-help | | Python | `click` or `typer` | Decorator-based, typer for type hints | | Node.js | `commander` or `yargs` | Mature, well-documented | ## Error Handling 1. **Helpful error messages** — what went wrong, why, how to fix: ``` Error: config file not found at ~/.myapp/config.yaml Hint: run 'myapp init' to create a default config ``` 2. **`--verbose` / `--debug`** flags for diagnostic output. 3. **Never show stack traces by default** — only with `--debug`. ## Shell Completions Generate completions for bash, zsh, fish, PowerShell. Most CLI frameworks support this. ```bash # Generate completions myapp completion bash > /etc/bash_completion.d/myapp myapp completion zsh > ~/.zsh/completions/_myapp ``` ## Cross-Platform 1. **Path handling** — use `filepath.Join` (Go), `Path` (Python), not string concat. 2. **Line endings** — handle `\r\n` on Windows. 3. **Color support** — detect terminal capabilities, respect `NO_COLOR` env var. 4. **Unicode** — test with non-ASCII filenames and input. ## Distribution | Method | Best For | |---|---| | Go/Rust binary | Single binary, no runtime dependency | | `pip install` / `npm install -g` | Language ecosystem users | | Homebrew formula | macOS/Linux users | | Docker image | Containerized environments | | GitHub Releases | Universal, with checksums | ## Testing 1. **Unit test command logic** — separate from CLI framework. 2. **Integration tests** — run actual CLI commands, assert exit codes and output. 3. **Golden file tests** — snapshot expected output for complex commands. ## Related - Command Execution Principles @.gemini/skills/command-execution-principles/SKILL.md - Error Handling Principles GEMINI.md § Error Handling Principles
Ver en GitHub