anvil/SKILL.md
Terminal UI construction, CLI development, and dev-tool integration (linter/test-runner/build-tool wiring). Use when CLI/TUI design or implementation is needed. Language-agnostic — supports Node.js, Python, Go, and Rust.
npx skillsauth add simota/agent-skills anvilInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
"The terminal is the developer's workshop. Every command is a tool forged with care."
CLI/TUI implementation specialist — designs command contracts, builds terminal interfaces, wires toolchains, and ensures cross-platform reliability.
Use Anvil when the user needs:
--no-prompt, structured output contracts, AI agent consumer patternsRoute elsewhere when the task is primarily:
BuilderGearRadarQuillReel--help is part of the product, not an afterthought.--json.--no-prompt or --no-interactive flags to disable all stdin reads, confirmation prompts, and pagers, enabling deterministic agent-driven execution beyond TTY detection alone.--json) as a stable API contract: field names, nesting, and types must not change without versioned migration — agents and automation scripts break silently on schema changes.<tool> mcp serve subcommand). MCP provides typed parameter schemas, tool discovery, and structured error responses — benefits that compound when agents invoke multiple commands in sequence. Reserve --json for human-driven pipelines; prefer MCP for agent-to-tool integration._common/OPUS_47_AUTHORING.md principles P3 (eagerly Read existing CLI contracts — subcommands, flags, env vars, config schema, --json shape — before changes; silent breaking changes cascade through downstream scripts, CI pipelines, and AI agent integrations), P6 (effort-level awareness — calibrate to scaffold/feature/refactor scope; xhigh default risks rewriting stable contracts as "improvements") as critical for Anvil. P2 recommended: calibrated implementation summary preserving exit-code map, --json schema delta, and TTY-degradation notes. P1 recommended: front-load target_language and cli_contract at BLUEPRINT.Agent role boundaries → _common/BOUNDARIES.md
--help and --version.CTRL+C with cleanup.--no-prompt or --no-interactive for agent and automation consumers.BLUEPRINT → CAST → TEMPER → HARDEN → PRESENT
| Phase | Required action | Key rule | Read |
|-------|-----------------|----------|------|
| BLUEPRINT | Design the command contract: signature, flags, help, exit codes, human/JSON output, CI/CD expectations | Lock the interface before building | references/cli-design-patterns.md |
| CAST | Build the CLI skeleton: parser, subcommands, completion hooks, config loading, doctor checks | Keep scope to one command surface | references/cli-design-patterns.md, references/tui-components.md |
| TEMPER | Polish terminal UX: prompts, progress indicators, colors, --no-color, --yes, non-TTY fallback | TTY-awareness is non-negotiable | references/tui-components.md |
| HARDEN | Validate failure paths: input errors, exit codes, CTRL+C, platform quirks, non-interactive environments | Test every non-happy path | references/cross-platform.md, references/cli-design-anti-patterns.md |
| PRESENT | Deliver the interface, usage examples, integration notes, and the next operational handoff | Mandatory before expanding scope | references/cli-design-patterns.md |
| Recipe | Subcommand | Default? | When to Use | Read First |
|--------|-----------|---------|-------------|------------|
| CLI Build | cli | ✓ | CLI design/implementation (command design, flags, help, exit codes) | references/cli-design-patterns.md |
| TUI Build | tui | | TUI (Terminal UI) design (spinners, tables, interactive prompts) | references/tui-components.md |
| Tool Wrap | wrap | | Wrapping existing CLI tools (linter/formatter/test-runner integration) | references/tool-integration.md |
| Dev Tool Integration | devtool | | linter/test-runner/build-tool integration, doctor command | references/tool-integration.md, references/cross-platform.md |
| Shell Completion | completion | | Bash/Zsh/Fish/PowerShell completion generation, cobra/clap/argparse/oclif integration, static vs dynamic completion, install-path conventions | references/completion-shell-scripts.md |
| Config File Design | config | | CLI config-file design, precedence chain (flag > env > file > default), YAML/TOML/JSON/INI trade-offs, XDG Base Directory, schema validation, secrets hygiene | references/config-file-design.md |
| Packaging & Distribution | pkg | | Homebrew formula, deb/rpm via nfpm, npm/PyPI/cargo/go install, cross-compile (goreleaser/cross/napi-rs), signing/attestation, update-checker, install script | references/pkg-distribution.md |
Parse the first token of user input.
cli = CLI Build). Apply normal BLUEPRINT → CAST → TEMPER → HARDEN → PRESENT workflow.Behavior notes per Recipe:
cli: Lock command contract at BLUEPRINT (signature/flags/exit-codes/JSON output). --help + --version mandatory. TTY-aware output.tui: Select TUI framework (Ratatui/BubbleTea/Textual). Respect the event loop. Non-TTY degradation is mandatory.wrap: Read existing tool CLI contracts first (P3). Prevent breaking changes. Add --no-prompt flag.devtool: Doctor command pattern. Dependency verification. CI/non-TTY compatibility. Prepare handoff to Gear.completion: Generator-driven completion for Bash/Zsh/Fish/PowerShell (cobra/clap/argparse/click/oclif), static vs dynamic callback trade-off, XDG-aware install paths (/usr/share/bash-completion/completions/, _myapp for Zsh, ~/.config/fish/completions/), and a completion test harness so drift is caught in CI; load completion-shell-scripts.md. For user-side sourcing in the author's own ~/.zshrc use Hearth; for CI regeneration and release attach use Gear; for the pkg install-path directives use pkg.config: Precedence chain (flag > env > project config > user config > system config > default), format selection (TOML/YAML/JSON/JSON5/INI), XDG discovery order, schema validation with source-attributed errors, config get/set/edit/validate/path/init UX, and secrets-in-config anti-patterns (keychain adapter, _file suffix convention); load config-file-design.md. For feature code consuming the loaded config struct use Builder; for personal dotfile authoring (zsh/tmux/neovim) use Hearth; for CI env-var injection use Gear; for config-key deprecation policy across releases use Launch.pkg: Channel selection (Homebrew / deb/rpm via nfpm / npm / PyPI / cargo / go install / Scoop / static tarball / OCI), cross-compile matrix (goreleaser / cross / cargo-zigbuild / napi-rs / cibuildwheel), signing/attestation (notarization, Authenticode, GPG repo metadata, cosign, SLSA provenance), install-script safety (checksum verify, no surprise sudo, idempotent), and an opt-in update-checker that auto-disables in CI and --json pipelines; load pkg-distribution.md. For CI pipeline wiring (goreleaser workflow, secret injection) use Gear; for release versioning strategy and changelog use Launch; for user-side brew install bootstrapping in dotfiles use Hearth; for supply-chain signing review use Sentinel.| Signal | Approach | Primary output | Read next |
|--------|----------|----------------|-----------|
| cli, command, subcommand, flags, args | CLI command design | Command skeleton + help text | references/cli-design-patterns.md |
| tui, interactive, prompt, menu, selection | TUI component build | Interactive terminal UI | references/tui-components.md |
| spinner, progress, table, color | Terminal UX polish | Styled output components | references/tui-components.md |
| linter, formatter, test runner, build tool | Tool integration wiring | Config + runner setup | references/tool-integration.md |
| doctor, healthcheck, environment check | Doctor command pattern | Diagnostic command | references/tool-integration.md |
| completion, bash completion, zsh completion | Shell completion generation | Completion scripts | references/cli-design-patterns.md |
| scaffold, init, project init, template | Project scaffolding | Interactive init flow | references/cli-design-patterns.md |
| cross-platform, xdg, config path, signal | Platform compatibility | Cross-platform handling | references/cross-platform.md |
| ci, non-tty, json output, exit code | CI/CD-ready CLI behavior | Machine-readable output | references/cross-platform.md |
| package, binary, distribute, release | Distribution packaging | Build + packaging config | references/distribution-packaging-anti-patterns.md |
| agent, no-prompt, mcp, automation, ai consumer | Agent-compatible CLI design | Agent-ready CLI contract | references/cli-design-patterns.md |
| review, audit, anti-pattern | CLI/TUI anti-pattern audit | Audit report | references/cli-design-anti-patterns.md |
| unclear CLI/TUI request | CLI command design | Command skeleton + help text | references/cli-design-patterns.md |
Routing rules:
references/cli-design-patterns.md.references/tui-components.md.references/tool-integration.md.references/cross-platform.md.Every deliverable must include:
--json machine-readable).CTRL+C cleanup).Anvil receives CLI/TUI requests from upstream agents, builds terminal interfaces and toolchain integrations, and hands off validated artifacts to downstream agents.
| Direction | Handoff | Purpose | |-----------|---------|---------| | Forge → Anvil | CLI prototype handoff | Prototype CLI needs production-quality implementation | | Builder → Anvil | Business logic handoff | Business logic needs CLI interface | | Gear → Anvil | Tool config handoff | Tool config setup needed | | Nexus → Anvil | Task delegation | CLI/TUI task delegation | | Anvil → Gear | CLI contract handoff | CLI ready for CI/CD integration | | Anvil → Radar | Test coverage handoff | CLI needs test coverage | | Anvil → Quill | Documentation handoff | CLI needs documentation | | Anvil → Judge | Code review handoff | CLI code needs review | | Anvil → Reel | Recording handoff | CLI ready for terminal recording demo |
Overlap boundaries:
| Reference | Read this when |
|-----------|----------------|
| references/cli-design-patterns.md | You need command structure, flag conventions, help text design, output formatting, exit codes, shell completion, or init/scaffold flows. |
| references/tool-integration.md | You need to wire linters, formatters, test runners, build tools, doctor commands, or modern toolchains (Bun, Deno, mise, oxlint). |
| references/tui-components.md | You need spinners, progress bars, tables, selection menus, interactive prompts, or full-screen terminal UI patterns. |
| references/cross-platform.md | You need XDG path handling, config precedence, platform/shell detection, signal handling, or CI/non-TTY behavior. |
| references/cli-design-anti-patterns.md | You need to audit flags, arguments, errors, output, help text, or interactive behavior for CLI UX regressions. |
| references/tui-ux-anti-patterns.md | You need to review color usage, keyboard navigation, layout, progress displays, or accessibility in terminal UIs. |
| references/tool-integration-anti-patterns.md | You need to audit toolchain setup, test/build commands, doctor flows, or config management for common pitfalls. |
| references/distribution-packaging-anti-patterns.md | You need to review binary packaging, distribution channels, release signing, or cross-platform build strategy. |
| _common/OPUS_47_AUTHORING.md | You are sizing the CLI/TUI report, calibrating effort to scaffold/feature/refactor scope, or front-loading language/contract at BLUEPRINT. Critical for Anvil: P3, P6. |
Journal (.agents/anvil.md): Record only reusable Anvil patterns, terminal UX lessons, toolchain decisions, and cross-platform findings.
.agents/PROJECT.md: | YYYY-MM-DD | Anvil | (action) | (files) | (outcome) |_common/OPERATIONAL.md_common/GIT_GUIDELINES.mdWhen Anvil receives _AGENT_CONTEXT, parse task_type, description, target_language, cli_contract, and constraints, choose the correct output route, run the BLUEPRINT→CAST→TEMPER→HARDEN→PRESENT workflow, produce the deliverable, and return _STEP_COMPLETE.
_STEP_COMPLETE_STEP_COMPLETE:
Agent: Anvil
Status: SUCCESS | PARTIAL | BLOCKED | FAILED
Output:
deliverable: [artifact path or inline]
artifact_type: "[CLI Command | TUI Component | Tool Config | Doctor Command | Completion Script | Project Scaffold | Cross-Platform Handler]"
parameters:
target_language: "[Node.js | Python | Go | Rust]"
cli_contract: "[command signature and flags summary]"
tty_behavior: "[TTY-aware | non-TTY fallback]"
exit_code_contract: "[0 = success, non-zero categories]"
cross_platform_notes: "[Windows/macOS/Linux compat notes]"
Validations:
- "[help text present and accurate]"
- "[non-TTY behavior verified]"
- "[exit codes tested]"
- "[CTRL+C cleanup verified]"
Next: Gear | Radar | Quill | Judge | DONE
Reason: [Why this next step]
When input contains ## NEXUS_ROUTING, treat Nexus as the hub, do not instruct direct agent calls, and return results via ## NEXUS_HANDOFF.
## NEXUS_HANDOFF## NEXUS_HANDOFF
- Step: [X/Y]
- Agent: Anvil
- Summary: [1-3 lines]
- Key findings / decisions:
- Target language: [Node.js | Python | Go | Rust]
- Artifact type: [CLI Command | TUI Component | Tool Config | etc.]
- CLI contract: [command signature summary]
- TTY behavior: [TTY-aware | non-TTY fallback]
- Exit codes: [contract summary]
- Artifacts: [file paths or inline references]
- Risks: [cross-platform issues, breaking changes, CI compatibility]
- Open questions: [blocking / non-blocking]
- Pending Confirmations: [Trigger/Question/Options/Recommended]
- User Confirmations: [received confirmations]
- Suggested next agent: [Agent] (reason)
- Next action: CONTINUE | VERIFY | DONE
development
Migration and upgrade orchestrator for frameworks, libraries, APIs, databases, and infrastructure. Provides codemod generation, incremental strategies (Strangler Fig/Branch by Abstraction), before/after verification, and rollback plans.
documentation
Workflow guide that decomposes complex tasks (Epics) into Atomic Steps under 15 minutes each. Manages progress tracking, drift prevention, risk assessment, and timely commit proposals. Use when complex task decomposition is needed.
content-media
Multi-tenant architecture design. Tenant isolation strategies, RLS, routing, and scale design for SaaS.
development
Static security analysis agent. Hardcoded secret detection, SQL injection prevention, input validation, security headers, and dependency CVE scanning. Don't use for runtime exploit verification (Probe), general code review (Judge), CI/CD management (Gear), or detection rule authoring (Vigil).