Design and implementation patterns for building command-line tools with modern UX. Use when designing a CLI, reviewing CLI UX, defining commands and flags, or implementing error handling and signal handling.
86
81%
Does it follow best practices?
Impact
96%
1.15xAverage score across 3 eval scenarios
Passed
No known issues
Command and flag naming conventions
Lowercase binary name
100%
100%
Short binary name
100%
100%
Dashes for multi-word
100%
100%
Consistent subcommand pattern
100%
100%
Help flag present
100%
100%
Version flag capital V
0%
100%
Standard verbose/quiet names
100%
100%
Standard force/dry-run names
100%
100%
Short flags limited
100%
25%
Short flag consistency
100%
100%
Non-interactive flag
100%
100%
Design rationale documented
100%
100%
Error handling and output stream separation
Data to stdout only
100%
100%
Progress to stderr
100%
100%
Errors to stderr
100%
100%
Error explains what
100%
100%
Error explains why
100%
100%
Error provides fix
75%
100%
Specific error details
100%
100%
No stack traces by default
100%
100%
Debug flag for traces
75%
87%
Pipe usage documented
100%
100%
Important info last
60%
50%
Config precedence, secrets handling, and signal management
Flags beat env vars
100%
100%
Env vars beat config file
100%
100%
Project config location
50%
100%
User config XDG path
100%
100%
No secret from env var
100%
100%
Secret via file flag
100%
100%
Secret via stdin flag
0%
100%
Non-secret via env var OK
100%
100%
SIGINT immediate acknowledgment
100%
100%
Cleanup timeout bounded
62%
100%
Double Ctrl-C force exit
0%
100%
Exit code 130
0%
100%
Crash-only safe state
37%
100%
7b466be
If you maintain this skill, you can claim it as your own. Once claimed, you can manage eval scenarios, bundle related skills, attach documentation or rules, and ensure cross-agent compatibility.