Skip to main content

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.

来源信息

仓库
outfitter-dev/agents
最近来源活动
2026年1月27日 15:45
检测到的 SKILL.md 语言
英语
星标
28
分支
1

安装方式

默认使用会先检查来源的 Prompt;你也可以切换为直接命令,或下载本地副本。

检查来源文件

决定是否安装前,请先阅读 SKILL.md,以及 SkillsMP 当前展示的配套文件。

文件资源管理器
9 个文件

正在显示 SKILL.md

SKILL.md
来源说明 · 只读预览
name
cli-development-guidelines
description
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.
license
CC-BY-SA-4.0 (docs, adapted from clig.dev); MIT (scripts)
compatibility
Scripts use Python 3.10+ (scripts/cli_audit.py).
metadata
{"version":"0.1.0","upstream":"clig.dev + POSIX/GNU/Heroku/12-factor + Agent Skills spec"}
# 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/EVAL_PROMPTS.md](references/EVAL_PROMPTS.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`
在 GitHub 查看