skills-cli/cli-audit/SKILL.md
Use when the user says: "audit this CLI", "CLI quality check", "full CLI review", "CLI UX audit". Comprehensive CLI tool quality audit across all dimensions — hardening, output, clarity, affordances, and complexity.
npx skillsauth add NodeJSmith/Claudefiles cli-auditInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
Run a comprehensive quality audit of a CLI tool across all cli-* dimensions. Produces a single prioritized report covering hardening, output design, message clarity, discoverability, and complexity.
$ARGUMENTS — path to a CLI script or tool, or blank to target the current branch's changed files.
Identify what to audit:
git-branch-diff-files | grep -E '\.(sh|bash|py|ts|js)$')/cli-audit path/to/script.sh) or run on a branch with CLI file changes."Read the REFERENCE.md for each sibling skill. If any file is not found, stop and report the missing path(s) to the user rather than proceeding without reference material.
${CLAUDE_CONFIG_DIR:-~/.claude}/skills/cli-harden/REFERENCE.md — edge-case resilience${CLAUDE_CONFIG_DIR:-~/.claude}/skills/cli-output/REFERENCE.md — output design${CLAUDE_CONFIG_DIR:-~/.claude}/skills/cli-clarify/REFERENCE.md — message clarity${CLAUDE_CONFIG_DIR:-~/.claude}/skills/cli-affordances/REFERENCE.md — discoverability${CLAUDE_CONFIG_DIR:-~/.claude}/skills/cli-distill/REFERENCE.md — complexityEvaluate the tool against each dimension. Score each area:
Present a scorecard followed by prioritized findings:
## CLI Audit: <tool name>
| Dimension | Score | Top Finding |
|---------------|----------|--------------------------------|
| Hardening | Strong | — |
| Output | Weak | Tables overflow on narrow terminals |
| Clarity | Adequate | Help text missing examples |
| Affordances | Weak | No tab completion, 3 dead flags|
| Complexity | Strong | — |
Then list all findings grouped by severity (Risk → Gap → Improvement), with file and line references.
Run get-skill-tmpdir cli-audit and write the full scorecard and findings to <tmpdir>/audit-YYYY-MM-DD.md. Tell the user where the file was saved.
AskUserQuestion:
question: "Here's the audit. How would you like to proceed?"
header: "Confirm"
options:
- label: "Fix all"
description: "Address all risks and gaps across every dimension."
- label: "One dimension"
description: "I'll pick which dimension to focus on."
- label: "Let me pick"
description: "I'll choose individual findings to address."
- label: "Stop here"
description: "The audit report is enough — don't change anything."
If "Fix all" → implement all risks + gaps. If "One dimension" → ask which:
AskUserQuestion:
question: "Which dimension would you like to focus on?"
header: "Dimension"
options:
- label: "Hardening"
description: "Fix edge-case resilience findings only."
- label: "Output"
description: "Fix output design findings only."
- label: "Clarity"
description: "Fix message clarity findings only."
- label: "Affordances"
description: "Fix discoverability findings only."
If the user selects "Other" and types "Complexity", use cli-distill findings. Then implement only that dimension's findings. If "Let me pick" → present findings individually for accept/reject. If "Stop here" → end.
Fix each accepted finding. After all changes:
pytest for Python, go test for Go, npm test/jest/vitest for Node/TS, bats for shell). Use timeout 300 on all invocations.development
Use when the user says: "document how X works", "write up how this works", "durable explanation", "explain this for the docs", "document this subsystem". Writes a durable, architectural-altitude explanation that survives code churn.
development
Use when picking up a fresh session after /clear, a stop, or an unanswered AskUserQuestion. Reconstructs the prior session's intent from its transcript tail and surfaces any unresolved decision; user-invoked only — for a hand-written end-of-day handoff use /mine-good-morning instead.
development
Use when the user says: "what did we discuss", "continue where we left off", "remember when", "as I mentioned", "you suggested", "we decided", "search my conversations", "find the conversation where", "what did we work on", or uses implicit signals like past-tense references, possessives without context, or assumptive questions. Direct search over past Claude Code sessions via cass.
tools
Use when the user says: "what context do I have", "relevant history for this task", "what have we done related to this". Also usable proactively when starting work that likely has prior history. Assembles a structured context brief from past session history via cass, scoped to the current task and workspace.