smithery/outfitter-dev

cli-development-guidelines

This skill should be used when designing, implementing, or reviewing CLI tools, or when flags, subcommands, help text, exit codes, or `--cli-dev` are mentioned.

Installation

$ npx skills add smithery/outfitter-dev --skill cli-development-guidelines

Similar popular skills

Related neighbors and high-traction skills in the same topics — useful to compare before installing.

Also in this package

Other skills from smithery/outfitter-dev · top by installs.

npx skills add smithery/outfitter-dev

Browse all from smithery/outfitter-dev

More details

Agent compatibility

Declared targets from SKILL.md / docs. Unmarked agents are not listed — the skill may still install via the CLI.

Claude Code Not declared
Cursor Not declared
Codex Not declared
GitHub Copilot Not declared
Windsurf Not declared
Gemini CLI Not declared
Cline Not declared
OpenCode Not declared

Skill metadata

Parsed from SKILL.md frontmatter.

Version0.1.0
LicenseCC-BY-SA-4.0 (docs, adapted from clig.dev); MIT (scripts)
CompatibilityScripts use Python 3.10+ (scripts/cli_audit.py).
More metadata
version
0.1.0
upstream
clig.dev + POSIX/GNU/Heroku/12-factor + Agent Skills spec

Package contents

Files included with this skill beyond the listing page.

  • skill md SKILL.md 3,652 B
  • docs SUMMARY.md 194 B

History

  1. First recorded snapshot · 0 installs

SKILL.md

CLI Development Guidelines

When to activate this skill

  • You are designing, implementing, or reviewing a command-line tool.
  • The user mentions (explicitly or implicitly): --help, flags, subcommands, exit codes, stdout/stderr, piping, JSON output, color, prompts, config files, env vars, “works in CI”, install/uninstall, telemetry.

What this skill produces

  • A CLI contract (what users can rely on): commands, flags, IO behavior, exit codes, config/env, examples, and safety behavior.
  • Draft help output and docs structure (example-first).
  • A compliance audit (when runnable) using scripts/cli_audit.py.

Non-negotiable CLI citizenship

  • Exit codes:

- 0 on success. - Non-zero on failure (and ideally meaningful, documented codes).

  • Streams:

- stdout is for primary output and machine-readable output. - stderr is for errors, warnings, progress, and “what I’m doing” messaging.

  • Discoverability:

- --help (and usually -h) shows help and exits. - --version prints version and exits.

  • Interactivity:

- Prompts only when stdin is a TTY. - Provide --no-input to force non-interactive behavior.

  • Scripting friendliness:

- No ANSI color / spinners when output isn’t a TTY. - Support NO_COLOR and --no-color. - Consider --json and --plain for stable output.

Workflow

Sketch the CLI contract first

  • Start from the user’s jobs-to-be-done (what they’re trying to accomplish).
  • Decide:

- Command shape: single command vs subcommands (noun verb is common). - Inputs: args vs flags vs stdin vs prompts vs config/env. - Outputs: human default, plus machine modes (--json, --plain, --quiet). - Safety: confirmations, --dry-run, --force, secret handling.

Use:

  • [CLI reference](references/REFERENCE.md)
  • [CLI spec template](templates/cli-command-spec-template.json)

Implement with safe defaults

  • Use a CLI parsing library (don’t hand-roll).
  • Make “boundary-crossing” actions explicit:

- Network calls - Writing files not explicitly provided - Mutating remote state

  • Avoid footguns:

- Don’t accept secrets via flags or environment variables. - Don’t print stack traces by default. - Don’t assume TTY (detect it).

Validate and iterate

  • Run an automated sanity check (when possible):

- python scripts/cli_audit.py -- <your-cli> [subcommand]

  • Fix in this order:

- Broken stdout/stderr separation - Incorrect exit codes - Help that’s missing or undiscoverable - Unsafe defaults (destructive ops, secrets, hidden network writes) - Unscriptable output (no stable modes)

Use:

  • [Checklist](references/CHECKLIST.md)
  • scripts/cli_audit.py

Reference library

  • Core reference: [references/REFERENCE.md](references/REFERENCE.md)
  • Quick audit checklist: [references/CHECKLIST.md](references/CHECKLIST.md)
  • Evaluation prompts: [references/EVALPROMPTS.md](references/EVALPROMPTS.md)

Templates and scripts

  • CLI spec template: templates/cli-command-spec-template.json
  • Help text template: templates/help-text-template.md
  • Error message template: templates/error-message-template.md
  • Audit a CLI: scripts/cli_audit.py