skills-cli/cli-affordances/SKILL.md
Use when the user says: "improve CLI discoverability", "CLI help UX", "CLI flag design", "CLI affordances", "CLI command structure". Review CLI tool discoverability — flag design, subcommand structure, help quality, and progressive disclosure.
npx skillsauth add NodeJSmith/Claudefiles cli-affordancesInstall 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.
Review and improve how users discover what a CLI tool can do — command structure, flag naming, help text organization, and the path from novice to power user.
$ARGUMENTS — path to a CLI script or tool, or blank to target the current branch's changed files.
Identify what to review:
git-branch-diff-files | grep -E '\.(sh|bash|py|ts|js)$')/cli-affordances path/to/script.sh) or run on a branch with CLI file changes."Read ${CLAUDE_HOME:-~/.claude}/skills/cli-affordances/REFERENCE.md for the full set of affordance dimensions. If the file is not found, stop and tell the user: "REFERENCE.md not found — run uv run install.py to install the cli-* skills."
Evaluate each tool against those dimensions. For each, note:
Focus on gaps and risks. Don't enumerate what's already solid unless it's noteworthy.
Write out findings to the user, grouped by severity. For each finding: file and line, what the issue is, what the fix looks like.
Then confirm:
AskUserQuestion:
question: "Here's what I found. How would you like to proceed?"
header: "Confirm"
options:
- label: "Fix all"
description: "Implement fixes for all risks and gaps."
- label: "Risks only"
description: "Fix only the confusing structure — skip gaps and improvements."
- label: "Let me pick"
description: "I'll choose which findings to address."
- label: "Stop here"
description: "Don't change anything. The assessment stands on its own."
If "Fix all" → implement all risks + gaps. If "Risks only" → implement risks only. 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./mine.challenge if the scope was largedevelopment
Use when the user says: "humanize this", "unslop this", "de-slop this", "fix AI writing", "remove AI tells", "clean up AI prose". Edits prose to remove AI writing patterns and add human voice. Analyzes first, then asks how to fix. Prose complement to mine.clean-code.
development
Use when the user says: "why is this code like this", "why does this exist", "why was this built this way", "decision rationale", "what's the history behind". Decision archaeology — reconstructs historical rationale from evidence, not speculation.
development
Use when the user says: "how does X work", "walk me through", "explain this subsystem", "explain how", "trace the flow". Complexity-adaptive subsystem explanation — builds mental models conversationally, not documentation artifacts.
development
Use when the user says: 'create an issue', 'file an issue', 'open an issue', 'write an issue', 'new issue for this'. Codebase-aware issue creation — investigates the code to produce well-structured issues with acceptance criteria, affected areas, and enough detail for automated triage.