← ClaudeAtlas

create-clilisted

Design and build command-line tools, both the interface spec (args, flags, subcommands, help, output modes, errors, exit codes, config) per clig.dev and the implementation using Magnus's agent-ready Rust house style (clap derive, global --json, keychain/op/file secret backends, in-repo agent skills, AGENTS.md) modeled on sparebank1-cli and skatteetaten-cli. Use when the user wants to create a new CLI, design a CLI interface, scaffold a command-line tool, or make an existing CLI agent-friendly.
magnusrodseth/dotfiles · ★ 2 · AI & Automation · score 65
Install: claude install-skill magnusrodseth/dotfiles
# Create CLI Two modes. Pick from what the user asked for: - **Design**: produce an interface spec the user (or a later session) can implement. Language-agnostic. - **Build**: scaffold and implement, defaulting to the house style (Rust + clap) unless the user names another stack. ## Do This First - Read `references/cli-guidelines.md` (condensed clig.dev; the baseline rubric for any CLI). - Read `references/house-style.md` (Magnus's agent-ready skeleton, with `~/dev/personal/sparebank1-cli` and `~/dev/personal/skatteetaten-cli` as living exemplars to copy from). ## Clarify (fast, then proceed with defaults) - Name + one-sentence purpose. Short 2-3 char binary name? - Primary consumers: humans, scripts, AI agents, or all three. (Default here: agents are first-class consumers.) - Read-only or mutating? Mutating means confirm-prompts, `-y`, and scope restrictions from day one. Read-only as a design invariant is worth stating explicitly. - Auth/secrets involved? Which backend story (keychain/op/file)? - Distribution: personal (`install.sh` + cargo) or public (crates.io, release matrix)? ## Design mode: deliverables Produce a compact spec: - Command tree + USAGE synopsis (noun-verb grouping; the `--help` tree is how agents discover capabilities, so make it a deterministic search tree). - Args/flags table: types, defaults, required/optional, examples. - Output contract: stdout vs stderr, `--json` (table stakes for agents), TTY detection, `--quiet`/`--v