跳到主要内容
知仓学习社ZHICANG

cli-design

Design a CLI interface: args, flags, help, output, errors, exit codes, config.

不碰外部(只输出文字)无严重或高危命中notque/vexjoy-agent

它会碰到什么

扫了多少2 个文本文件,8 KB
它会碰到什么不碰外部(只输出文字)
命中总数0 处
命中统计严重 0 · 高 0 · 中 0 · 低 0

这一栏是扫描器报的事实,不是结论。命中多不等于有毒(安全工具、规则库、示例脚本本来就会包含危险写法),命中少也不等于干净。它和你手上的凭据、文件、网络有什么关系,需要你自己看。

技能内容

CLI Design

Design a command-line tool's interface before implementation: human-first, script-friendly, Linux-only. Output is a compact spec the user or an agent can implement directly. Rubric source: clig.dev (rebuilt as references/clig-checklist.md).

Reference Loading Table

| Signal | Load These Files | Why |

|---|---|---|

| designing a command-line interface | clig-checklist.md | Supplies the CLI design rubric. |

Workflow

Phase 1: SCOPE

Lock the interface with the minimum questions. Proceed with the conventions in Phase 2 when the user is unsure.

  • Command name and one-sentence purpose.
  • Primary user: humans, scripts, or both.
  • Input sources: args vs stdin; files vs URLs. Secrets travel via file or stdin, because flags leak through ps and shell history.
  • Output contract: human text, --json, --plain, exit codes.
  • Interactivity: prompts allowed? --no-input needed? confirmation for destructive ops?
  • Config model: flags, env, config file; precedence.

Gate: name, purpose, and I/O contract are known. Proceed only when gate passes.

Phase 2: DESIGN

Load [references/clig-checklist.md](references/clig-checklist.md) and apply it as the default rubric. For each section, pick the convention and record it in the spec. Diverge from a convention only deliberately, and document the divergence in the spec — interfaces are contracts, and surprising contracts break scripts.

Phase 3: DELIVER

Produce the spec from this skeleton. Drop a section only when it genuinely has no content; fill every other section.

  1. Name and one-liner: command name plus a single sentence of purpose
  2. Usage line: the synopsis as --help will print it, global flags and subcommand slot included
  3. Subcommands: purpose of each, whether it mutates state, whether re-running it is safe
  4. Args/flags table: columns for name, type, default, required?, example
  5. I/O contract: primary data and machine-readable output on stdout; everything else (errors, progress, logs) on stderr
  6. Exit codes: map each failure mode to a code — success 0, failure 1, bad usage 2; mint extra codes only for cases scripts must distinguish
  7. Safety: --dry-run, confirmation rules, --force, --no-input
  8. Env/config: env vars; config file path; precedence order with flags highest, then env, project config, user config, system
  9. Examples: enough invocations to cover the common flows; show at least one pipeline or stdin use

Gate: every flag used in the examples appears in the flags table, and every failure mode shown maps to an exit code.

Constraints

  • Stay at spec altitude: when the request is "design the interface," deliver the spec and stop. Implementation is a separate task.
  • Keep the spec language-agnostic. Recommend a parsing library only when asked.
  • Target Linux. Skip Windows/macOS path, signal, and packaging concerns.

Error handling

Request mixes design and implementation

Cause: user says "design and build."

Solution: deliver the spec first, get confirmation, then implement against it.

Spec balloons past one page

Cause: subcommand sprawl or speculative flags.

Solution: cut flags that lack a named user need; defaults should serve most users without aliases.

想直接用这个技能?

本站把开放许可(MIT / Apache 等)的技能按仓库打包整理到网盘,点一下转存到你自己的网盘,不用一个个从 GitHub 拉。许可未声明的技能只给原始仓库链接,不打包。

它属于哪个仓库

星标★ 419
本站分层T2
该仓技能数122
原文件路径skills/engineering/cli-design/SKILL.md

同一个仓库里的其他技能

看这个仓库的全部 122 个技能