Design human first cli
Skill zacharygcook/agent-skills/skills/design-human-first-cli
A curated collection of practical, evidence-backed skills for coding agents.
npx -y skills add zacharygcook/agent-skills --skill design-human-first-cliAssembled from the repository path, not quoted from the project. Check it against their README if it does not work.
2 things to look at
- 26 days oldThe repository was created 26 days ago. New is not bad, but a brand new repository carrying a familiar-sounding name is the shape a typosquat arrives in, and there has been no time for anyone else to find a problem with it.
- 2 stars2 stars. Stars are a popularity signal and not a quality one, but at this level it is likely that nobody has read this closely except its author, and you would be relying on your own review.
What its author says it does
Copied from the file, not written here
Design, implement, or review a human-first command-line interface and developer workflow. Use when commands are long, flag-heavy, difficult to discover, require manual setup glue, expose implementation paths, need interactive onboarding, mix human and automation concerns, or create avoidable developer-experience friction.
SKILL.md
4.2 KB, as published. Nobody here has run it
Design Human-First CLI
Treat commands as product UI. Start with the interaction a human should remember, then do the engineering required to make that interaction real.
Design the target surface first
Write the ideal everyday vocabulary before editing implementation:
tool init
tool status
tool validate
tool run
tool resume
tool upgrade
Prefer short, stable verbs; consistent grammar; obvious help; and commands that fit comfortably in a terminal. A user should not need repository archaeology or shell history to operate the tool.
Separate humans from automation
- Human commands should be short, interactive, discoverable, and safe to rerun.
- Agent/CI commands may expose explicit flags, paths, structured output, and noninteractive controls.
- Keep the complete automation interface documented, but do not make it the main onboarding path.
- Provide
--json, exit codes, or equivalent machine contracts without degrading human output.
Remove unnecessary flags
- Detect facts the system can know: repository root, sole package/skill, installed harnesses, existing configuration, platform, and available prerequisites.
- Ask interactively for genuine operator choices: provider/harness, model, budgets, destructive behavior, validation commands, and ambiguous targets.
- Do not invent defaults for consequential choices merely to avoid a prompt.
- Do not ask users to repeat intent already expressed by invoking the command.
- Preserve explicit flags for automation and for users who want to bypass prompts.
Automate setup glue
- Make initialization and upgrades idempotent and preservation-first.
- Create or augment configuration without overwriting existing user content.
- Hide internal package paths, interpreter selection, file copies, symlinks, migrations, and adapter wiring behind the installer.
- Use a small bootstrap package or launcher when an upstream package manager cannot perform required lifecycle work; do not document manual glue as though it were a polished installation.
- Detect prerequisites and fail with the shortest actionable next step. Do not silently install system-wide dependencies or mutate external state without authorization.
Make failures teach the workflow
An error should name the missing decision and the next useful command. Avoid messages that expose an
empty variable, recommend a legacy escape hatch, or force users to infer whether they should run
init, upgrade, or edit a file manually.
Good setup should:
- recognize an existing installation;
- enter a safe upgrade/configuration path;
- preserve state;
- collect all missing choices in one coherent journey;
- summarize the resulting configuration; and
- stop before autonomous or destructive execution unless the user explicitly started it.
Dogfood without insider help
- Start in a disposable repository with only the public documentation.
- Use a person or agent without implementation context.
- Record every guess, side-scroll, unexplained prerequisite, redundant flag, and manual file edit.
- Fix the product surface, not merely the documentation.
- Test new installs, existing installs, repeated runs, upgrades, missing prerequisites, cancellation, narrow terminals, and noninteractive automation.
- Add regression tests for the exact ergonomic contract: short recipes exist, hidden defaults do not, bootstrap is idempotent, existing files survive, and documented commands really execute.
Completion standard
- The first useful human command is memorable and short.
toolortool helpreveals the everyday command set.- Normal operation does not require internal paths or copied boilerplate.
- Automation remains fully expressive and deterministic.
- README examples lead with human commands and move full flags near the end.
- The clean-room path has been executed, not merely reasoned about.