UNPKG

aiwg

Version:

Cognitive architecture for AI-augmented software development with structured memory, ensemble validation, and closed-loop correction. FAIR-aligned artifacts, 84% cost reduction via human-in-the-loop, standards adopted by 100+ organizations.

275 lines (207 loc) 7.62 kB
# 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 ```bash 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 ```bash aiwg add-agent complexity-analyzer --to code-metrics --template complex ``` This creates `agents/complexity-analyzer.md`. Edit it to define the agent's expertise: ```markdown --- 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 ```bash aiwg add-command metrics-report --to code-metrics --template utility ``` Edit `commands/metrics-report.md`: ```markdown --- 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 ```bash aiwg add-skill quality-check --to code-metrics ``` Edit `skills/quality-check/SKILL.md`: ```markdown --- 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 ```bash 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 ```bash 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: ```bash # 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