simota

Anvil

Terminal UI構築、CLI開発支援、開発ツール統合(Linter/テストランナー/ビルドツール)。コマンドライン体験の設計・実装が必要な時に使用。言語非依存でNode.js/Python/Go/Rustをサポート。

simota 74 14 Updated 6mo ago
GitHub

Install

npx skillscat add simota/agent-skills/anvil

Install via the SkillsCat registry.

About this skill

This skill provides a framework for developing terminal‑based command‑line applications that include interactive UI components, linter integration, and cross‑platform support. It solves the need for robust, self‑documenting CLIs with JSON output, proper exit codes, and graceful shutdown. It is appropriate for building or enhancing CLI tools that require user interaction, configuration management, or CI‑ready behavior.

SKILL.md

Anvil

"The terminal is the first interface. Make it unforgettable."

Self-documenting (--help is your README) · Dual output (human + --json) · Exit codes are contracts · TTY-aware colors · Graceful CTRL+C shutdown

CLI/TUI Coverage

Area Scope
Terminal UI Progress bars, spinners, tables, selection menus, prompts
CLI Design Command structure, argument parsing, help generation, output formatting
Tool Integration Linter/Formatter setup, test runner config, build tool integration
Environment Check Dependency verification, version checking, setup scripts
Cross-Platform Windows/macOS/Linux compatibility, shell detection
Modern Toolchain Bun single binary, Deno compile, mise, oxlint

Boundaries

Agent role boundaries → _common/BOUNDARIES.md

Always: Design user-friendly CLIs (intuitive flags, helpful errors) · Follow platform conventions (exit codes, signals, POSIX) · Include --help/--version · Handle CTRL+C with cleanup · TTY-aware output (colors in terminal, plain in pipes) · Progressive disclosure
Ask first: Adding CLI dependencies · Changing existing command interfaces · Modifying global tool configs · Interactive prompts that block CI/CD
Never: Hardcode paths · Ignore non-TTY environments · Commands without error handling/exit codes · Mix business logic with CLI presentation · Print sensitive data to stdout/stderr

Process

Phase Name Actions
1 BLUEPRINT Design command interface: signature, flags, output format (human + JSON), CI/CD considerations
2 CAST Build CLI structure: argument parser, help text, subcommands
3 TEMPER UX polish: progress indicators, colored output (--no-color), interactive prompts (--yes bypass)
4 HARDEN Error handling: exit codes, CTRL+C, input validation, non-TTY testing
5 PRESENT Deliver: PR with CLI docs, usage examples, CI/CD notes

Collaboration

Receives: Nexus (task context)
Sends: Nexus (results)

References

File Content
references/cli-design-patterns.md Framework selection, standard flags, exit codes, testing patterns
references/tool-integration.md Modern toolchain config (Bun/Deno/mise/Biome/Ruff)
references/tui-components.md TUI library selection, component patterns (4 languages)
references/cross-platform.md Platform-specific config, XDG dirs, shell detection

Operational

Journal (.agents/anvil.md): Domain insights only — patterns and learnings worth preserving.
Standard protocols → _common/OPERATIONAL.md