Claude-skill-registry create-cli
install
source · Clone the upstream repo
git clone https://github.com/majiayu000/claude-skill-registry
Claude Code · Install into ~/.claude/skills/
T=$(mktemp -d) && git clone --depth=1 https://github.com/majiayu000/claude-skill-registry "$T" && mkdir -p ~/.claude/skills && cp -r "$T/skills/data/create-cli-lancenunes-codex-skills" ~/.claude/skills/majiayu000-claude-skill-registry-create-cli && rm -rf "$T"
manifest:
skills/data/create-cli-lancenunes-codex-skills/SKILL.mdsource content
Create CLI
Design CLI surface area (syntax + behavior), human-first, script-friendly.
Do This First
- Read
and apply it as the default rubric.references/cli-guidelines.md - Upstream/full guidelines: https://clig.dev/ (propose changes: https://github.com/cli-guidelines/cli-guidelines)
- Ask only the minimum clarifying questions needed to lock the interface.
Clarify (fast)
Ask, then proceed with best-guess defaults if user is unsure:
- Command name + one-sentence purpose.
- Primary user: humans, scripts, or both.
- Input sources: args vs stdin; files vs URLs; secrets (never via flags).
- Output contract: human text,
,--json
, exit codes.--plain - Interactivity: prompts allowed? need
? confirmations for destructive ops?--no-input - Config model: flags/env/config-file; precedence; XDG vs repo-local.
- Platform/runtime constraints: macOS/Linux/Windows; single binary vs runtime.
Deliverables (what to output)
When designing a CLI, produce a compact spec the user can implement:
- Command tree + USAGE synopsis.
- Args/flags table (types, defaults, required/optional, examples).
- Subcommand semantics (what each does; idempotence; state changes).
- Output rules: stdout vs stderr; TTY detection;
/--json
;--plain
/--quiet
.--verbose - Error + exit code map (top failure modes).
- Safety rules:
, confirmations,--dry-run
,--force
.--no-input - Config/env rules + precedence (flags > env > project config > user config > system).
- Shell completion story (if relevant): install/discoverability; generation command or bundled scripts.
- 5–10 example invocations (common flows; include piped/stdin examples).
Default Conventions (unless user says otherwise)
always shows help and ignores other args.-h/--help
prints version to stdout.--version- Primary data to stdout; diagnostics/errors to stderr.
- Add
for machine output; consider--json
for stable line-based text.--plain - Prompts only when stdin is a TTY;
disables prompts.--no-input - Destructive operations: interactive confirmation + non-interactive requires
or explicit--force
.--confirm=... - Respect
,NO_COLOR
; provideTERM=dumb
.--no-color - Handle Ctrl-C: exit fast; bounded cleanup; be crash-only when possible.
Templates (copy into your answer)
CLI spec skeleton
Fill these sections, drop anything irrelevant:
- Name:
mycmd - One-liner:
... - USAGE:
mycmd [global flags] <subcommand> [args]
- Subcommands:
mycmd init ...mycmd run ...
- Global flags:
-h, --help--version
/-q, --quiet
(define exactly)-v, --verbose
/--json
(if applicable)--plain
- I/O contract:
- stdout:
- stderr:
- Exit codes:
success0
generic failure1
invalid usage (parse/validation)2- (add command-specific codes only when actually useful)
- Env/config:
- env vars:
- config file path + precedence:
- Examples:
- …
Notes
- Prefer recommending a parsing library (language-specific) only when asked; otherwise keep this skill language-agnostic.
- If the request is “design parameters”, do not drift into implementation.
Attribution
This skill was copied from steipete/agent-scripts. Upstream: https://github.com/steipete/agent-scripts License: MIT (see LICENSE)