Addon Walkthrough
Step-by-step addon tutorial
Walkthrough: Creating a Code Metrics Addon
This walkthrough demonstrates creating a complete AIWG addon from scratch using the Development Kit.
Scenario
You want to create an addon that provides code quality metrics and analysis tools. The addon will include:
- An agent for analyzing code complexity
- A command for generating metrics reports
- A skill for on-demand quality checks
Step 1: Scaffold the Addon
aiwg scaffold-addon code-metrics --description "Code quality metrics and analysis tools"
Output:
Scaffolding Addon: Code Metrics
───────────────────────────────
✓ Created agentic/code/addons/code-metrics/agents/
✓ Created agentic/code/addons/code-metrics/commands/
✓ Created agentic/code/addons/code-metrics/skills/
✓ Created agentic/code/addons/code-metrics/manifest.json
✓ Created agentic/code/addons/code-metrics/README.md
Addon Created Successfully
──────────────────────────
Location: ~/.local/share/ai-writing-guide/agentic/code/addons/code-metrics
Step 2: Add the Complexity Analyzer Agent
aiwg add-agent complexity-analyzer --to code-metrics --template complex
This creates `agents/complexity-analyzer.md`. Edit it to define the agent's expertise:
---
name: complexity-analyzer
description: Analyzes code complexity and provides improvement recommendations
model: sonnet
tools: Read, Write, Bash, Glob, Grep, WebFetch
---
# Complexity Analyzer Agent
Analyzes code complexity metrics and provides actionable recommendations.
## Domain Expertise
- Cyclomatic complexity analysis
- Cognitive complexity evaluation
- Code coupling and cohesion metrics
- Function/method length analysis
- Nesting depth analysis
## Responsibilities
1. Scan codebase for complexity hotspots
2. Calculate complexity metrics per file/function
3. Identify refactoring opportunities
4. Generate prioritized improvement recommendations
## Analysis Process
1. **Discovery**: Glob for source files by language
2. **Analysis**: Calculate metrics for each file
3. **Aggregation**: Summarize findings by module/directory
4. **Reporting**: Generate actionable recommendations
## Output Format
Provide results as:
- Summary table of highest complexity files
- Specific refactoring suggestions
- Priority ranking (critical/high/medium/low)
Step 3: Add the Metrics Report Command
aiwg add-command metrics-report --to code-metrics --template utility
Edit `commands/metrics-report.md`:
---
name: metrics-report
description: Generate code quality metrics report
args:
- name: path
description: Path to analyze (default: current directory)
required: false
- name: --format
description: Output format (table|json|markdown)
required: false
- name: --threshold
description: Complexity threshold for warnings (default: 10)
required: false
---
# Metrics Report
Generate a comprehensive code quality metrics report.
## Process
1. **Scan**: Identify source files in the specified path
2. **Analyze**: Calculate complexity metrics for each file
3. **Report**: Format results according to specified format
## Metrics Collected
| Metric | Description |
|--------|-------------|
| Cyclomatic Complexity | Number of independent paths |
| Lines of Code | Total and per-function |
| Nesting Depth | Maximum nesting level |
| Function Count | Number of functions/methods |
## Example Output
Code Metrics Report ═══════════════════
High Complexity Files: ┌──────────────────────────┬────────────┬───────┬───────┐ │ File │ Complexity │ Lines │ Funcs │ ├──────────────────────────┼────────────┼───────┼───────┤ │ src/utils/parser.ts │ 25 │ 450 │ 12 │ │ src/services/auth.ts │ 18 │ 320 │ 8 │ │ src/handlers/api.ts │ 15 │ 280 │ 6 │ └──────────────────────────┴────────────┴───────┴───────┘
Recommendations: 1. parser.ts: Extract parseExpression() into smaller functions 2. auth.ts: Consider splitting into auth-validator and auth-handler
Step 4: Add the Quality Check Skill
aiwg add-skill quality-check --to code-metrics
Edit `skills/quality-check/SKILL.md`:
---
name: quality-check
description: On-demand code quality analysis
version: 1.0.0
---
# Quality Check Skill
Provides on-demand code quality analysis triggered by natural language.
## Trigger Phrases
This skill activates when the user says:
- "check code quality"
- "analyze complexity"
- "how complex is this code"
- "quality check"
- "find complex code"
## Execution Process
1. **Detect**: Recognize quality check request
2. **Scope**: Determine target (current file, directory, or project)
3. **Analyze**: Run complexity-analyzer agent
4. **Report**: Present findings in conversational format
## Example Interaction
**User**: "Check the quality of src/handlers"
**Response**:
"I analyzed 8 files in src/handlers/. Here's what I found:
- **api-handler.ts** has high complexity (22) in the `processRequest` function
- **auth-handler.ts** looks good (complexity 6)
- Overall health: 75% of files within acceptable thresholds
Would you like specific refactoring suggestions for api-handler.ts?"
Step 5: Validate the Addon
aiwg validate code-metrics --verbose
Expected output:
Validation: code-metrics
────────────────────────
[Passed]
✓ manifest.json exists
✓ manifest.json is valid JSON
✓ Required field present: id
✓ Required field present: type
✓ Required field present: name
✓ Required field present: version
✓ Required field present: description
✓ Valid type: addon
✓ Directory exists: agents/
✓ Directory exists: commands/
✓ Directory exists: skills/
✓ agents file exists: complexity-analyzer.md
✓ commands file exists: metrics-report.md
✓ Skill exists: quality-check
✓ README.md exists and has content
[Summary]
Passed: 15
Warnings: 0
Errors: 0
✓ PASSED: Package is valid
Step 6: Deploy to a Project
cd /path/to/your/project
aiwg -deploy-agents --source agentic/code/addons/code-metrics --deploy-commands --deploy-skills
Step 7: Use the Addon
In a Claude Code session:
# Use the command
/metrics-report src/ --format markdown
# Or use natural language (skill triggers)
"Check the code quality of the utils directory"
Final Structure
code-metrics/
├── manifest.json
├── README.md
├── agents/
│ └── complexity-analyzer.md
├── commands/
│ └── metrics-report.md
└── skills/
└── quality-check/
├── SKILL.md
└── references/
Key Takeaways
1. Start with scaffold: Creates proper structure automatically 2. Use templates: `--template complex` gives you a head start 3. Validate often: Catch issues early with `aiwg validate` 4. Test incrementally: Deploy and test each component as you build 5. Document well: Users will read your README and agent descriptions