5.5 KiB
description, argument-hint, allowed-tools
| description | argument-hint | allowed-tools |
|---|---|---|
| Add structured subcommands to CLI tool | <command-name> [command-2] [command-3] ... | Task, AskUserQuestion, Bash, Read, Glob |
🚨 EXECUTION NOTICE FOR CLAUDE
When you invoke this command via SlashCommand, the system returns THESE INSTRUCTIONS below.
YOU are the executor. This is NOT an autonomous subprocess.
- ✅ The phases below are YOUR execution checklist
- ✅ YOU must run each phase immediately using tools (Bash, Read, Write, Edit, TodoWrite)
- ✅ Complete ALL phases before considering this command done
- ❌ DON't wait for "the command to complete" - YOU complete it by executing the phases
- ❌ DON't treat this as status output - it IS your instruction set
Immediately after SlashCommand returns, start executing Phase 0, then Phase 1, etc.
See @CLAUDE.md section "SlashCommand Execution - YOU Are The Executor" for detailed explanation.
Arguments: $ARGUMENTS
Goal: Orchestrate adding one or multiple subcommands to a CLI tool, launching parallel agents for 3+ subcommands.
Architectural Context:
This command is an orchestrator that:
- Detects the CLI framework
- Gathers requirements
- Launches 1 agent for 1-2 subcommands
- Launches MULTIPLE agents IN PARALLEL for 3+ subcommands (all in ONE message)
Phase 1: Load Architectural Framework Goal: Understand composition and parallelization patterns
Actions:
- Load component decision framework: !{Read ~/.claude/plugins/marketplaces/domain-plugin-builder/plugins/domain-plugin-builder/docs/frameworks/claude/reference/component-decision-framework.md}
- Key patterns:
- Commands orchestrate, agents implement
- For 3+ items: Launch multiple agents in PARALLEL
- Send ALL Task() calls in SINGLE message
- Agents run concurrently for faster execution
Phase 2: Parse Arguments & Determine Mode Goal: Count how many subcommands to create
Actions:
- Parse $ARGUMENTS to extract subcommand names: !{bash echo "$ARGUMENTS" | wc -w}
- Store count
- Extract each subcommand name:
- If count = 1: Single subcommand mode
- If count = 2: Two subcommands mode
- If count >= 3: PARALLEL MODE - multiple agents
Phase 3: Detect Existing CLI Framework Goal: Identify the framework to match patterns
Actions:
- Check for language indicators:
- !{bash ls -1 package.json setup.py pyproject.toml go.mod Cargo.toml 2>/dev/null | head -1}
- For Node.js (package.json found):
- !{bash grep -E '"(commander|yargs|oclif|gluegun)"' package.json 2>/dev/null | head -1}
- For Python files:
- !{bash grep -r "import click|import typer|import argparse|import fire" . --include="*.py" 2>/dev/null | head -1}
- For Go:
- !{bash grep -r "github.com/spf13/cobra|github.com/urfave/cli" . --include="*.go" 2>/dev/null | head -1}
- For Rust:
- !{bash grep "clap" Cargo.toml 2>/dev/null}
- Store detected framework
Phase 4: Gather Requirements (for all subcommands) Goal: Collect specifications
Actions:
- For EACH subcommand name from Phase 2:
- Ask user via AskUserQuestion:
- Description/purpose
- Required arguments
- Optional flags
- Validation needs
- Store requirements for that subcommand
- Ask user via AskUserQuestion:
Phase 5: Launch Agent(s) for Implementation Goal: Delegate to cli-feature-impl agent(s)
Actions:
Decision: 1-2 subcommands = single/sequential agents, 3+ subcommands = PARALLEL agents
For 1-2 Subcommands:
Task( description="Add subcommand to CLI", subagent_type="cli-tool-builder:cli-feature-impl", prompt="You are cli-feature-impl. Add subcommand '{name}' to the CLI.
Framework: {detected_framework} Language: {detected_language}
Subcommand: {name} Description: {description} Arguments: {arguments} Flags: {flags}
Use Skill(cli-tool-builder:{framework}-patterns) for patterns. Generate code, integrate it, test syntax.
Deliverable: Working subcommand integrated into CLI" )
For 3+ Subcommands - CRITICAL: Send ALL Task() calls in ONE MESSAGE:
Task(description="Add subcommand 1", subagent_type="cli-tool-builder:cli-feature-impl", prompt="Add subcommand '{name_1}'. Framework: {framework} Description: {desc_1} Arguments: {args_1} Use Skill(cli-tool-builder:{framework}-patterns). Deliverable: Subcommand 1 code")
Task(description="Add subcommand 2", subagent_type="cli-tool-builder:cli-feature-impl", prompt="Add subcommand '{name_2}'. Framework: {framework} Description: {desc_2} Arguments: {args_2} Use Skill(cli-tool-builder:{framework}-patterns). Deliverable: Subcommand 2 code")
Task(description="Add subcommand 3", subagent_type="cli-tool-builder:cli-feature-impl", prompt="Add subcommand '{name_3}'. Framework: {framework} Description: {desc_3} Arguments: {args_3} Use Skill(cli-tool-builder:{framework}-patterns). Deliverable: Subcommand 3 code")
[Continue for all N subcommands...]
DO NOT wait between Task() calls - send them ALL at once!
Agents run in parallel. Proceed to Phase 6 only after ALL complete.
Phase 6: Verification Goal: Confirm all subcommands were added
Actions:
- For each subcommand:
- Verify code was generated
- Check syntax if possible
- Test help output
- Report any failures
Phase 7: Summary Goal: Report results and next steps
Actions:
- Display summary:
- Subcommands added: {count}
- Framework: {framework}
- Files modified/created
- Show usage examples for each subcommand
- Suggest next steps:
- Test each subcommand
- Add interactive prompts: /cli-tool-builder:add-interactive
- Add output formatting: /cli-tool-builder:add-output-formatting
- Add validation: /cli-tool-builder:add-args-parser