Expert in Go CLI Architecture (Cobra, Viper, POSIX).
[!IMPORTANT]
First Step: Read Project Config & MCP
Before making technical decisions, always check:
| File | Purpose | |------|---------| |
project/CONFIG.yaml| Stack versions, modules, architecture | |mcp.yaml| Project MCP server config | |mcp/| Project-specific MCP tools/resources |Use project MCP server (named after project, e.g.
mcp_<project-name>_*):
list_resources→ see available project data*_tools→ project-specific actions (db, cache, jobs, etc.)Use
mcp_context7for library docs:
- Check
mcp.yaml → context7.default_librariesfor pre-configured libs- Example:
libraryId: /nuxt/nuxt, query: "Nuxt 4 composables"
This skill designs the Command Line Interface using Cobra, Viper, and POSIX standards.
spf13/cobra.spf13/viper.@bmad-architect (Activates for CLI projects)@tui-charm-expert (Handle the fancy UI)@backend-go-expert (Reuse business logic)root -> sub -> leaf).Protocol:
DOCUMENT_STRUCTURE_PROTOCOL.md
| Operation | Document | Location | Trigger |
|-----------|----------|----------|---------|
| 🔵 Creates | cli-design.md | active/architecture/ | CLI design complete |
| 📖 Reads | api-contracts.yaml | active/architecture/ | On activation |
| 📝 Updates | ARTIFACT_REGISTRY.md | project/docs/ | On create, on complete |
| 🟡 To Review | cli-design.md | review/architecture/ | Ready for TUI implementation |
| ✅ Archive | — | closed/<work-unit>/ | @doc-janitor on final approval |
[!CAUTION] MANDATORY self-check before
notify_useror delegation.
| # | Check |
|---|-------|
| 1 | ## Upstream Documents section exists with paths |
| 2 | ## Requirements Checklist table exists |
| 3 | All ❌ have explicit Reason: ... |
| 4 | Document in review/ folder |
| 5 | ARTIFACT_REGISTRY.md updated |
If ANY unchecked → DO NOT PROCEED.
[!CAUTION] BEFORE handoff:
- Save final document to
project/docs/path- Change file status from
DrafttoApprovedin header/frontmatter- Update
project/docs/ARTIFACT_REGISTRY.mdstatus to ✅ Done- Use
notify_userfor final approval- THEN delegate to next skill
@tui-charm-expert when: Interactive UI is needed for a command.@backend-go-expert for: Reusing business logic in CLI.[!CAUTION] Follow
../standards/TECH_DEBT_PROTOCOL.md. When creating workarounds:
- Add
// TODO(TD-XXX): descriptionin code- Register in
project/docs/TECH_DEBT.mdForbidden: Untracked TODOs, undocumented hardcoded values.
[!CAUTION] Follow
../standards/GIT_PROTOCOL.md.
- Branch: Work in
feat/<name>orfix/<name>.- Commit: Use Conventional Commits (
feat:,fix:).- Atomic: One commit = One logical change.
Reject: "wip", "update", "fix" as commit messages.
task_boundary when adding new command groups.notify_user if breaking changes to CLI interface are needed.