Skip to main content

cli-craft

This skill should be used when designing, implementing, or reviewing CLI tools, or when flags, subcommands, help text, exit codes, or CLI patterns are mentioned.

Quellinformationen

Repository
outfitter-dev/outfitter
Letzte Quellaktivität
24. Februar 2026 um 23:09
Erkannte Sprache von SKILL.md
Englisch
Sterne
6
Forks
1

Installationsoptionen

Standardmäßig ist der Prompt ausgewählt, der zuerst die Quelle prüft. Sie können zu einem direkten Befehl wechseln oder eine lokale Kopie herunterladen.

Quelldateien prüfen

Lesen Sie SKILL.md und alle von SkillsMP angezeigten Begleitdateien, bevor Sie sich für eine Installation entscheiden.

Datei-Explorer
9 Dateien

SKILL.md wird angezeigt

SKILL.md
Quellanweisungen · Schreibgeschützte Vorschau
name
cli-craft
description
This skill should be used when designing, implementing, or reviewing CLI tools, or when flags, subcommands, help text, exit codes, or CLI patterns are mentioned.
license
CC-BY-SA-4.0 (docs, adapted from clig.dev); MIT (scripts)
compatibility
Scripts use Python 3.10+ (scripts/cli_audit.py).
metadata
{"version":"0.1.1","upstream":"clig.dev + POSIX/GNU/Heroku/12-factor + Agent Skills spec"}
# CLI Development Guidelines ## When to activate this skill - You are _designing_, _implementing_, or _reviewing_ a command-line tool. - The user mentions (explicitly or implicitly): `--help`, flags, subcommands, exit codes, stdout/stderr, piping, JSON output, color, prompts, config files, env vars, “works in CI”, install/uninstall, telemetry. ## What this skill produces - A _CLI contract_ (what users can rely on): commands, flags, IO behavior, exit codes, config/env, examples, and safety behavior. - Draft _help output_ and docs structure (example-first). - A _compliance audit_ (when runnable) using `scripts/cli_audit.py`. ## Non-negotiable CLI citizenship - Exit codes: - `0` on success. - Non-zero on failure (and ideally meaningful, documented codes). - Streams: - `stdout` is for primary output and machine-readable output. - `stderr` is for errors, warnings, progress, and “what I’m doing” messaging. - Discoverability: - `--help` (and usually `-h`) shows help and exits. - `--version` prints version and exits. - Interactivity: - Prompts only when `stdin` is a TTY. - Provide `--no-input` to force non-interactive behavior. - Scripting friendliness: - No ANSI color / spinners when output isn’t a TTY. - Support `NO_COLOR` and `--no-color`. - Consider `--json` and `--plain` for stable output. ## Workflow ### Sketch the CLI contract first - Start from the user’s jobs-to-be-done (what they’re trying to accomplish). - Decide: - Command shape: single command vs subcommands (`noun verb` is common). - Inputs: args vs flags vs stdin vs prompts vs config/env. - Outputs: human default, plus machine modes (`--json`, `--plain`, `--quiet`). - Safety: confirmations, `--dry-run`, `--force`, secret handling. Use: - [CLI reference](references/REFERENCE.md) - [CLI spec template](templates/cli-command-spec-template.json) ### Implement with safe defaults - Use a CLI parsing library (don’t hand-roll). - Make “boundary-crossing” actions explicit: - Network calls - Writing files not explicitly provided - Mutating remote state - Avoid footguns: - Don’t accept secrets via flags or environment variables. - Don’t print stack traces by default. - Don’t assume TTY (detect it). ### Validate and iterate - Run an automated sanity check (when possible): - `python scripts/cli_audit.py -- <your-cli> [subcommand]` - Fix in this order: - Broken stdout/stderr separation - Incorrect exit codes - Help that’s missing or undiscoverable - Unsafe defaults (destructive ops, secrets, hidden network writes) - Unscriptable output (no stable modes) Use: - [Checklist](references/CHECKLIST.md) - `scripts/cli_audit.py` ## Reference library - Core reference: [references/REFERENCE.md](references/REFERENCE.md) - Quick audit checklist: [references/CHECKLIST.md](references/CHECKLIST.md) - Evaluation prompts: [references/EVAL_PROMPTS.md](references/EVAL_PROMPTS.md) ## Templates and scripts - CLI spec template: `templates/cli-command-spec-template.json` - Help text template: `templates/help-text-template.md` - Error message template: `templates/error-message-template.md` - Audit a CLI: `scripts/cli_audit.py`
Auf GitHub ansehen