skills-cli/cli-harden/SKILL.md
Use when the user says: "harden this CLI", "CLI edge cases", "make this CLI resilient", "handle CLI errors", "CLI robustness". Review CLI tools for edge-case resilience and production readiness.
npx skillsauth add NodeJSmith/Claudefiles cli-hardenInstall 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 CLI tools for resilience against edge cases, hostile inputs, and real-world operating conditions that break idealized assumptions.
$ARGUMENTS — path to a CLI script or tool, or blank to target the current branch's changed files.
Identify what to harden:
git-branch-diff-files | grep -E '\.(sh|bash|py|ts|js)$')/cli-harden path/to/script.sh) or run on a branch with CLI file changes."Read ${CLAUDE_HOME:-~/.claude}/skills/cli-harden/REFERENCE.md for the full set of hardening 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 script 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 active risks — 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: '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.
development
Use when the user says: 'triage issues', 'classify issues by complexity', 'assess issue complexity', 'find quick wins', 'which issues are small', 'batch issue assessment'. Batch codebase-aware issue triage — parallel Haiku subagents assess actual complexity and effort by reading the code, not just titles.
development
Use when the user says: "review my changes", "run the reviewers", "code and integration review", "readability review", "maintainability review", "sniff test this", "WTF check", "code smells", "is this code any good", "fresh eyes on this branch", "review this directory", "check this module". Dispatches three parallel reviewers — code, integration, and a readability pass — and consolidates findings into one prioritized report.
development
Use when the user says: "clean code check", "style review", "LLM smell check", "code hygiene", "nitpick this", "style check", "find style sins", "nitpicker review", "anal retentive review", "exhaustive style review", "no-filter style report". Dispatches three parallel stylistic checkers — llm-checker (training-bias patterns), lazy-checker (deferred debt), and nitpicker (style hygiene) — and consolidates findings into a report organized by checker with a Summary section for orchestration consumption.