BMAD-METHOD/.patch/714/IMPLEMENTATION-PLAN.md

6.1 KiB

PR #714 Implementation Plan

PR: feat: add Kiro IDE support Issue: #682 - Add Kiro IDE integration Status: Implementation in progress Branch: feature/kiro-ide-714 Author: mrsaifullah52


📋 Issue Summary

Feature Request

Add support for Kiro IDE as a new IDE option in the BMAD installer. This includes:

  1. Adding Kiro to the list of supported IDEs
  2. Implementing Kiro IDE setup functionality
  3. Adding Kiro configuration to the installer
  4. Integrating Kiro into the interactive installer menu

Kiro IDE Details

  • IDE Name: Kiro IDE
  • Rule Directory: .kiro/steering/
  • Format: multi-file
  • Command Suffix: .md
  • Integration Method: Steering files with agent links

Supported IDEs (Updated)

Before: cursor, claude-code, windsurf, trae, roo, kilo, cline, gemini, qwen-code, github-copilot, codex, codex-web, auggie-cli, iflow-cli, opencode, other After: + kiro (in correct position alphabetically)


🎯 Solution Overview

Files to Modify

  1. tools/installer/bin/bmad.js (3 changes)

    • Update IDE list in command help text (add kiro)
    • Add 'Kiro IDE' option to interactive menu
    • Keep 'kilo' separate (Kilo Code)
  2. tools/installer/config/install.config.yaml (10 additions)

    • Add kiro IDE configuration block
    • Define steering directory, format, command suffix
    • Add Kiro-specific instructions
  3. tools/installer/lib/ide-setup.js (33 additions)

    • Implement setupKiro() function
    • Create steering files in .kiro/steering/
    • Create bmad.md with inclusion header
    • Generate agent links

🔧 Technical Details

Change 1: bmad.js - Command Help Text (Line 52)

Before:

'Configure for specific IDE(s) - can specify multiple (cursor, claude-code, windsurf, trae, roo, kilo, cline, gemini, ...)'

After:

'Configure for specific IDE(s) - can specify multiple (cursor, claude-code, windsurf, trae, roo, kilo, kiro, cline, gemini, ...)'

Change 2: bmad.js - Interactive Menu (Line 405)

Add: { name: 'Kiro IDE', value: 'kiro' }, Position: After Kilo Code, before Cline

Change 3: install.config.yaml - Kiro Configuration (Lines 11-20)

New Section:

kiro:
  name: Kiro IDE
  rule-dir: .kiro/steering/
  format: multi-file
  command-suffix: .md
  instructions: |
    # To use BMad agents in Kiro IDE:
    # 1. The installer creates agent files in `.kiro/steering/`.
    # 2. The steering file `bmad.md` is always included.
    # 3. Type *agent-name (e.g., "*agent-dev", "*agent-pm") to activate the agent.    

Change 4: ide-setup.js - New setupKiro() Function (Lines 1394-1426)

Functionality:

  1. Create .kiro/steering/ directory
  2. Get all agent IDs (or selected agent)
  3. For each agent:
    • Find agent file path
    • Read agent content
    • Write to .kiro/steering/{agentId}.md
    • Create agent link for bmad.md
  4. Create bmad.md with:
    • Inclusion header: ---\ninclusion: always\n---\n
    • Introduction text about opening files
    • Links to all agent files

Key Pattern:

  • Uses fileManager for I/O operations
  • Uses chalk for console output (green checkmarks)
  • Follows existing IDE setup patterns (see setupCline, setupKilocode)

📊 Implementation Phases

Phase 1: Code Analysis

  • Retrieve PR #714 details from GitHub
  • Get all modified files and patches
  • Understand Kiro IDE requirements
  • Identify all code changes needed

Phase 2: Apply Changes 🔄

  • Update tools/installer/bin/bmad.js (2 changes)
  • Update tools/installer/config/install.config.yaml (1 block)
  • Update tools/installer/lib/ide-setup.js (1 new function + 1 case statement)

Phase 3: Validation

  • Run npm validate
  • Run npm lint
  • Check for syntax errors
  • Verify no regressions

Phase 4: Documentation

  • Create comprehensive diffs
  • Create patch summary
  • Document test results
  • Create final status report

Phase 5: Commit & GitHub

  • Commit with proper message
  • Post GitHub comment
  • Mark ready for review

Validation Checklist

Pre-Commit Validation

  • All 3 files modified correctly
  • 45 lines added, 1 line deleted (as per PR)
  • setupKiro() function complete
  • npm validate: All configs pass
  • npm lint: No new errors
  • No syntax errors
  • Changes match PR spec exactly

Functionality Validation

  • Kiro IDE added to help text
  • Kiro in interactive menu
  • Kiro config in install.config.yaml
  • setupKiro() handles agent setup
  • Steering directory structure correct
  • bmad.md created with correct headers

Post-Commit Validation

  • Commits with proper message
  • Branch ready for merge
  • Documentation comprehensive
  • All tests passing

🎓 Key Points

  1. Feature Type: IDE Integration
  2. Scope: Medium - 3 files, 45 additions
  3. Complexity: Moderate - new setupKiro() function
  4. Impact: Extends IDE support list
  5. Backward Compatible: Yes - only additions
  6. Risk Level: Low - follows existing patterns
  • Cursor: WebStorm-style rule files
  • Claude Code: Similar to Cursor
  • Cline: MCP server integration
  • Kilo Code: Multi-file setup
  • Kiro: Multi-file steering (similar to Kilo, but with inclusion header)

  • tools/installer/bin/bmad.js - CLI interface
  • tools/installer/config/install.config.yaml - Configuration
  • tools/installer/lib/ide-setup.js - IDE setup logic
  • tools/installer/lib/file-manager.js - File I/O utilities
  • tools/installer/lib/base-ide-setup.js - Base class reference

🔍 Pattern References

File Structure

  • Similar to: setupKilocode() and setupCline()
  • Pattern: Create directory → Get agents → Write files → Create index
  • Console output: Use chalk for colored output

Configuration Pattern

From install.config.yaml:

ide-name:
  name: Display Name
  rule-dir: .ide/path/
  format: single-file|multi-file
  command-suffix: .md|.txt
  instructions: |
    Instructions for users    

Next Steps: Apply changes to the three files and validate