← ClaudeAtlas

atomic-cli-contriblisted

Conventions for editing the atomic CLI and command artifacts in this repo. Auto-fires on phrases like "add a CLI subcommand", "wire a new flag", "prompt the user", "add a doctor check", "add a doctor repair", "edit cmd/atomic/main.go", "extend claudeinstall", "add an internal package", "use huh", "add a command", "create a new verb", "add a partial", "render templates", "edit a command", "edit commands/", "create a new command", "edit an agent", "edit agents/", or "add an agent". Contributor-only — never bundled, never installed.
damusix/atomic-claude · ★ 35 · AI & Automation · score 85
Install: claude install-skill damusix/atomic-claude
# atomic-cli-contrib Project-local skill for working *on* the `atomic` CLI in this repo. Captures conventions that emerged from the doctor, validate, and config work, plus the prompt-layer extraction. Read this before adding subcommands, flags, prompts, or new internal packages. This skill is contributor-scope only. It lives under `.claude/skills/` and is auto-loaded for sessions in this repo. It is not bundled (see `atomic/internal/bundlemirror/mirror.go` — only `skills/atomic-*/` at the repo root ships). ## 1. Interactive prompts go through `internal/prompt/` - **Single surface.** Every interactive prompt — install flows, doctor `--fix`, future `atomic config`, anything new — calls `internal/prompt.Confirm` or `internal/prompt.Select[T]`. No direct `huh.*` calls outside the prompt package. No `bufio.Scanner` prompters. - **Why.** One swap point when `huh` changes API. Consistent TTY detection. Consistent abort handling. - **Sentinels.** Callers branch on `errors.Is(err, prompt.ErrNonInteractive)` (no TTY → skip path) and `errors.Is(err, prompt.ErrAborted)` (Ctrl+C → distinct from "No"). Never collapse abort into decline. - **Doctor adapter.** The doctor's `Prompter` interface lives separately so the `--fix` loop can have its own decision shape (`DecisionYes`/`DecisionNo`/`DecisionSkip`/`DecisionAbort`). The adapter (`doctor/stdin_prompter.go`) translates from `internal/prompt` errors. Mirror the adapter pattern if you build a new prompt-consuming subsystem. ## 2.