--- namespace: aiwg name: add-agent platforms: [all] description: Scaffold a new agent definition file inside an existing addon or framework --- # Add Agent Scaffold a new agent definition file inside an existing addon or framework. ## Triggers Alternate expressions and non-obvious activations (primary phrases are matched automatically from the skill description): - "I need a new agent" → scaffold agent in specified target - "build me an agent" → scaffold agent with interactive guidance - "write an agent for X" → scaffold agent named after the described role - "agent for " → derive name from role, prompt for target ## Trigger Patterns Reference | Pattern | Example | Action | |---------|---------|--------| | Named add | "add agent security-auditor --to sdlc-complete" | Scaffold directly | | Role description | "create an agent that reviews PRs" | Derive name, scaffold | | Interactive | "add agent --interactive" | Guided mode, ask for name/target/template | | Target omitted | "add agent code-reviewer" | Ask which addon or framework | ## Process ### 1. Parse Arguments Extract from `$ARGUMENTS`: - `` — kebab-case agent name (required) - `--to ` — addon or framework directory name (required) - `--template ` — one of `simple` (default), `complex`, `orchestrator`, `validator` - `--interactive` — enable guided design questions If either `` or `--to` is missing, ask before proceeding. ### 2. Validate Target Confirm the target addon or framework exists: ```bash # Check addons ls agentic/code/addons// # Check frameworks ls agentic/code/frameworks// ``` If not found, report available targets and stop. ### 3. Interactive Design (if --interactive) Ask the following before generating: 1. **Role**: What is this agent's primary role? 2. **Expertise**: What domains or technologies does it specialize in? 3. **Responsibilities**: What are its 3-5 key responsibilities? 4. **Tools needed**: Which tools does it require? (Read, Write, Bash, Grep, WebFetch, Task) 5. **Model tier**: haiku (fast/utility), sonnet (balanced), opus (reasoning-heavy) 6. **Output format**: What structured output should it produce? ### 4. Select Template | Template | Use When | Default Model | Tools | |----------|----------|---------------|-------| | `simple` | Single-purpose utility agent | haiku | Read, Write | | `complex` | Domain expert, reviewer, analyst | sonnet | Read, Write, Grep | | `orchestrator` | Coordinates other agents | opus | Task | | `validator` | Read-only quality/compliance gate | haiku | Read, Grep | ### 5. Run Scaffolding ```bash aiwg add-agent --to --template ``` This generates `/agents/.md` with the appropriate frontmatter and section stubs. ### 6. Customize the Generated File The generated agent file requires population of these sections: ```markdown --- name: description: model: # Pin specific variant; bare aliases (`sonnet`) inherit the parent session's 1M-context attributes and hit the usage-credit gate on subagent dispatch. See #1442. tools: category: --- # Agent Title [Role description] ## Expertise [Domain knowledge and skills] ## Responsibilities [Numbered list of what this agent does] ## Workflow [How it approaches tasks — research, draft, validate, output] ## Output Format [Expected structure of deliverables] ``` ### 7. Validate Against 10 Golden Rules After creation, run the agent linter: ```bash aiwg lint agents /agents/.md --verbose ``` Key checks: - Single responsibility (no "and" overload in description) - Minimal tools (0-3 tools, each justified) - Explicit I/O contract defined - Model tier matches task complexity ### 8. Update Manifest The CLI tool updates `/manifest.json` automatically. Verify: ```json { "agents": ["existing-agent", ""] } ``` ## Generated Structure ``` /agents/.md ``` Manifest updated: `/manifest.json` ## Output Format ``` Agent Created: ───────────────────── Location: /agents/.md Template: Model: Created: ✓ /agents/.md ✓ manifest.json updated Validation: ✓ Single responsibility ✓ Tool count within limit ✓ I/O contract defined Next Steps: 1. Edit Expertise section with domain knowledge 2. Define Responsibilities (3-5 items) 3. Specify Output Format structure 4. Run: aiwg lint agents /agents/.md ``` ## Examples ### Example 1: Simple utility agent **User**: "add agent dependency-auditor --to aiwg-utils" **Action**: ```bash aiwg add-agent dependency-auditor --to aiwg-utils ``` **Result**: `agentic/code/addons/aiwg-utils/agents/dependency-auditor.md` scaffolded with simple template (haiku, Read + Grep tools). ### Example 2: Complex domain expert **User**: "create a threat modeling agent for sdlc-complete" **Extraction**: name=`threat-modeler`, target=`sdlc-complete`, template=`complex` **Action**: ```bash aiwg add-agent threat-modeler --to sdlc-complete --template complex ``` **Result**: `agentic/code/frameworks/sdlc-complete/agents/threat-modeler.md` scaffolded with sonnet model, Read/Write/Grep tools. ### Example 3: Interactive guided creation **User**: "add agent --interactive --to sdlc-complete" **Process**: Guided questions gather role, expertise, responsibilities, tools, and model tier before scaffolding. ## References - @$AIWG_ROOT/agentic/code/addons/aiwg-utils/skills/devkit-create-agent/SKILL.md — Devkit equivalent (interactive design) - @$AIWG_ROOT/src/cli/handlers/scaffolding.ts — CLI handler implementation - @$AIWG_ROOT/docs/cli-reference.md — Full CLI reference - @$AIWG_ROOT/agentic/code/frameworks/sdlc-complete/agents/ — Example agent definitions