Designs and reviews agent-friendly CLIs for AI agents and automation: non-interactive flags, layered --help with examples, stdin pipelines, actionable errors, dry-run safety, idempotency.
npx claudepluginhub joshuarweaver/cascade-code-general-misc-1 --plugin pproenca-dot-skills-1This skill uses the workspace's default tool permissions.
Prescriptive design and review standards for Command-Line Interface Design targeting AI agents and scripts, not just humans typing at a prompt. Human-oriented CLIs often block agents: interactive prompts, huge upfront docs, help text without copy-pasteable examples, error messages without fixes, no dry-run mode. This skill prioritizes rules by blast radius — from "the agent cannot use this CLI ...
Applies Acme Corporation brand guidelines including colors, fonts, layouts, and messaging to generated PowerPoint, Excel, and PDF documents.
Builds DCF models with sensitivity analysis, Monte Carlo simulations, and scenario planning for investment valuation and risk assessment.
Calculates profitability (ROE, margins), liquidity (current ratio), leverage, efficiency, and valuation (P/E, EV/EBITDA) ratios from financial statements in CSV, JSON, text, or Excel for investment analysis.
Prescriptive design and review standards for Command-Line Interface Design targeting AI agents and scripts, not just humans typing at a prompt. Human-oriented CLIs often block agents: interactive prompts, huge upfront docs, help text without copy-pasteable examples, error messages without fixes, no dry-run mode. This skill prioritizes rules by blast radius — from "the agent cannot use this CLI at all" (CRITICAL) to "the agent has to read help one extra time" (MEDIUM).
Use this skill both when building a new CLI and when reviewing an existing one for agent-friendliness.
This skill contains 45 rules across 8 categories.
Reference these guidelines when:
--help text for any subcommand| Priority | Category | Impact | Prefix |
|---|---|---|---|
| 1 | Non-interactive Operation | CRITICAL | interact- |
| 2 | Help Text Design | HIGH | help- |
| 3 | Error Messages | HIGH | err- |
| 4 | Destructive Action Safety | HIGH | safe- |
| 5 | Input Handling | HIGH | input- |
| 6 | Output Format | MEDIUM-HIGH | output- |
| 7 | Idempotency & Retries | MEDIUM-HIGH | idem- |
| 8 | Command Structure | MEDIUM | struct- |
Note: help-examples-in-help is rated CRITICAL within the HIGH help- category because its specific failure — help text without examples — makes every other help rule moot. The category label reflects the average, not the worst case.
interact-flags-first — Express every input as a flag first; prompts are TTY-only fallbackinteract-detect-tty — Check isatty() before promptinginteract-no-arrow-menus — Replace arrow-key menus with flag-selected choicesinteract-no-input-flag — Support --no-input to force non-interactive modeinteract-no-timed-prompts — Never use timed prompts or press-any-key screensinteract-no-hang-on-stdin — Don't block on stdin when a TTY is attachedhelp-examples-in-help — Include copy-pasteable examples in every --helphelp-per-subcommand — Every subcommand owns its own --helphelp-no-flag-required — Show help when invoked with zero argumentshelp-layered-discovery — Top-level help is a navigational indexhelp-flag-summary — List both short and long forms for every flaghelp-suggest-next-steps — Suggest what to run next in help and success outputerr-exit-fast-on-missing-required — Exit fast on missing required flagserr-actionable-fix — Include a concrete fix in every error messageerr-stderr-not-stdout — Send errors to stderr, not stdouterr-non-zero-exit-codes — Use distinct non-zero exit codes for distinct failureserr-include-example-invocation — Include a correct example invocation in errorserr-no-stack-traces-by-default — Reserve stack traces for --debug modesafe-dry-run-flag — Provide --dry-run for every destructive commandsafe-force-bypass-flag — Provide --yes / --force to skip confirmationssafe-confirm-by-typing-name — Require typing the resource name for irreversible actionssafe-no-prompts-with-no-input — Never prompt when --no-input is setsafe-idempotent-cleanup — Exit successfully when delete targets are already gonesafe-crash-only-recovery — Design multi-step commands for crash-only recoveryinput-accept-stdin-dash — Accept - as filename for stdin and stdoutinput-flags-over-positional — Prefer named flags over positional argumentsinput-stdin-for-secrets — Accept secrets through stdin or file, never as flag valuesinput-env-var-fallback — Accept common flags through environment variablesinput-no-prompt-fallback — Never fall back to a prompt when a flag is missingoutput-json-flag — Provide --json for stable machine-readable outputoutput-ndjson-streaming — Stream large result sets as NDJSONoutput-bounded-by-default — Bound default output size with --limit and --alloutput-machine-ids-on-success — Return chainable values on success, not just "Done"output-respect-no-color — Disable ANSI color when NO_COLOR or non-TTYoutput-no-decorative-only — Avoid relying on decorative output to convey stateoutput-one-record-per-line — One record per line for grep-able human outputidem-retry-safe — Make running the same command twice safeidem-create-or-skip — Make create commands skip when target already existsidem-stable-output-on-skip — Return the same output shape whether acting or skippingidem-state-reconciliation — Prefer "ensure state" semantics over delta applicationidem-stable-identifiers — Accept user-provided names instead of auto-generating IDsstruct-resource-verb — Use a consistent resource-verb command shapestruct-flag-order-independent — Parse flags in any position relative to subcommandsstruct-no-hidden-subcommand-catchall — Avoid catch-all handlers for unknown subcommandsstruct-standard-flag-names — Use standard flag names (--help, --version, --verbose, --quiet)Start at CRITICAL and walk down. The first two categories (interact- and help-) are non-negotiable — if any rule in these is violated, the CLI is unusable by agents regardless of how good the rest is. After those, work through err-, safe-, and input- — these are where most real-world friction lives. output-, idem-, and struct- are polish that compounds across many invocations.
Run through this checklist in priority order:
--no-input or under </dev/null and see which hangmycli --help list subcommands only, or dump everything?--help — every subcommand's help should end with a runnable Examples section- mean stdin?--dry-run (or equivalent)--yes/--forceservice list, deploy list, config list all exist and work the same way?deploy return a deploy_id the agent can use next?Read individual reference files for detailed explanations and code examples:
| File | Description |
|---|---|
| references/_sections.md | Category definitions and ordering |
| assets/templates/_template.md | Template for new rules |
| metadata.json | Version and reference information |