Skip to content

Path 02 — CLI

A command-line tool: users install it, run it, and trust exit codes and help text. Still prefer one primary artifact and one repo unless shared libraries are already forcing your hand.

Assumes you can already ship a thin change (Path 01 habits). Add DX, tests, and packaging — not a platform.

  • npx, Homebrew, cargo, pipx, go install, or a binary release
  • Interface = flags, subcommands, stdin/stdout/stderr, docs in --help + README
  • Success = a stranger completes the primary job once without a Zoom call
Skip Why
Multi-service mesh / many deploy targets One CLI binary or package
Fancy agent crews for every fix Clear done-when + tests beat swarm
Full product strategy tree Thin PRODUCT/README; DocSlime only if multi-audience
Monorepo “just in case” Extract packages when duplication hurts — kiss / repos monorepo
  1. Lifecycle: How work flows — usually Deliver / Operate
  2. Architecture: Architecture · Language
  3. Concepts: prior shape + Stop Conditions · Work Ownership · Skills as Named Cuts
  4. Strategies: Orient · Track Work · Diagnose and Fix · Craft and Harden · Ship
  5. Practices to emphasize: Test It · Research It · Issues · Recon Issue · Check Readiness · Repos (ci harden lightly) · Document It · Observe It only for crash/telemetry you will actually read

Agent experience matters: treat the CLI as something coding agents will invoke — clear help, stable flags, non-zero on failure (experience mindset; DocSlime experience/ if you keep docs).

flowchart TD
A[Vision: one job the CLI must do] --> B[research-it: UX of similar CLIs]
B --> C[Thin vertical: happy path command]
C --> D[test-it: unit + one smoke invocation]
D --> E[document-it: install + examples + exit codes]
E --> F[repos ci: test on PR + release workflow]
F --> G[issues/pulls for changes - check-readiness]
G --> H[Publish artifact - ship-it / release]

Right-sized tasks:

  1. Name the one job and non-goals (what it will never do).
  2. Implement the happy-path command with real --help.
  3. Tests that fail when the job regresses.
  4. Install instructions a cold reader can follow.
  5. CI + a release you can repeat.
Moment Skill
Design the interface research-it · kiss
Prove behavior test-it · check-readiness
Bugs diagnose-bug · fix-it
Packaging/CI repos ci · repos ci harden
Track work issues · pulls · merge-it
Lost idk-now
  • Importable Python package as the product → Path 03
  • Companion compute host → Compute
  • Multiple binaries/packages, shared libs across languages, or several deploy targets (APIs, workers, sites) → Path 04
  • The CLI is only a thin client of a larger system already in a monorepo — join Path 04 instead of pretending it’s still “just a CLI”

Want kiss on the proposed subcommand surface, or recon issue for the first vertical slice?