From 25c3d50673dcc04a5550201cb71766daa0e8caca Mon Sep 17 00:00:00 2001 From: Brian Madison Date: Wed, 1 Oct 2025 09:12:21 -0500 Subject: [PATCH] SubAgents in sub folders. installer improvements. BMM Flow document added --- .../install-menu-config.yaml | 2 +- ...injections-readme.yaml => injections.yaml} | 0 .../api-documenter.md | 0 .../codebase-analyzer.md | 0 .../data-analyst.md | 0 .../pattern-detector.md | 0 .../dependency-mapper.md | 0 .../epic-optimizer.md | 0 .../requirements-analyst.md | 0 .../technical-decisions-curator.md | 0 .../trend-spotter.md | 0 .../user-journey-mapper.md | 0 .../user-researcher.md | 0 .../market-researcher.md | 0 .../tech-debt-auditor.md | 0 .../document-reviewer.md | 0 .../technical-evaluator.md | 0 .../test-coverage-analyzer.md | 0 tools/cli/installers/lib/ide/claude-code.js | 47 +++++++++++++++---- v6-open-items.md | 2 + 20 files changed, 41 insertions(+), 10 deletions(-) rename src/modules/bmm/sub-modules/claude-code/{injections-readme.yaml => injections.yaml} (100%) rename src/modules/bmm/sub-modules/claude-code/sub-agents/{analysis => bmad-analysis}/api-documenter.md (100%) rename src/modules/bmm/sub-modules/claude-code/sub-agents/{analysis => bmad-analysis}/codebase-analyzer.md (100%) rename src/modules/bmm/sub-modules/claude-code/sub-agents/{analysis => bmad-analysis}/data-analyst.md (100%) rename src/modules/bmm/sub-modules/claude-code/sub-agents/{analysis => bmad-analysis}/pattern-detector.md (100%) rename src/modules/bmm/sub-modules/claude-code/sub-agents/{planning => bmad-planning}/dependency-mapper.md (100%) rename src/modules/bmm/sub-modules/claude-code/sub-agents/{planning => bmad-planning}/epic-optimizer.md (100%) rename src/modules/bmm/sub-modules/claude-code/sub-agents/{planning => bmad-planning}/requirements-analyst.md (100%) rename src/modules/bmm/sub-modules/claude-code/sub-agents/{planning => bmad-planning}/technical-decisions-curator.md (100%) rename src/modules/bmm/sub-modules/claude-code/sub-agents/{planning => bmad-planning}/trend-spotter.md (100%) rename src/modules/bmm/sub-modules/claude-code/sub-agents/{planning => bmad-planning}/user-journey-mapper.md (100%) rename src/modules/bmm/sub-modules/claude-code/sub-agents/{planning => bmad-planning}/user-researcher.md (100%) rename src/modules/bmm/sub-modules/claude-code/sub-agents/{research => bmad-research}/market-researcher.md (100%) rename src/modules/bmm/sub-modules/claude-code/sub-agents/{research => bmad-research}/tech-debt-auditor.md (100%) rename src/modules/bmm/sub-modules/claude-code/sub-agents/{review => bmad-review}/document-reviewer.md (100%) rename src/modules/bmm/sub-modules/claude-code/sub-agents/{review => bmad-review}/technical-evaluator.md (100%) rename src/modules/bmm/sub-modules/claude-code/sub-agents/{review => bmad-review}/test-coverage-analyzer.md (100%) diff --git a/src/core/_module-installer/install-menu-config.yaml b/src/core/_module-installer/install-menu-config.yaml index 6be5c660..25cacf5b 100644 --- a/src/core/_module-installer/install-menu-config.yaml +++ b/src/core/_module-installer/install-menu-config.yaml @@ -8,7 +8,7 @@ prompt: # This is injected into the custom agent activation rules user_name: prompt: "What is your name?" - default: "Jane" + default: "BMad User" result: "{value}" # This is injected into the custom agent activation rules diff --git a/src/modules/bmm/sub-modules/claude-code/injections-readme.yaml b/src/modules/bmm/sub-modules/claude-code/injections.yaml similarity index 100% rename from src/modules/bmm/sub-modules/claude-code/injections-readme.yaml rename to src/modules/bmm/sub-modules/claude-code/injections.yaml diff --git a/src/modules/bmm/sub-modules/claude-code/sub-agents/analysis/api-documenter.md b/src/modules/bmm/sub-modules/claude-code/sub-agents/bmad-analysis/api-documenter.md similarity index 100% rename from src/modules/bmm/sub-modules/claude-code/sub-agents/analysis/api-documenter.md rename to src/modules/bmm/sub-modules/claude-code/sub-agents/bmad-analysis/api-documenter.md diff --git a/src/modules/bmm/sub-modules/claude-code/sub-agents/analysis/codebase-analyzer.md b/src/modules/bmm/sub-modules/claude-code/sub-agents/bmad-analysis/codebase-analyzer.md similarity index 100% rename from src/modules/bmm/sub-modules/claude-code/sub-agents/analysis/codebase-analyzer.md rename to src/modules/bmm/sub-modules/claude-code/sub-agents/bmad-analysis/codebase-analyzer.md diff --git a/src/modules/bmm/sub-modules/claude-code/sub-agents/analysis/data-analyst.md b/src/modules/bmm/sub-modules/claude-code/sub-agents/bmad-analysis/data-analyst.md similarity index 100% rename from src/modules/bmm/sub-modules/claude-code/sub-agents/analysis/data-analyst.md rename to src/modules/bmm/sub-modules/claude-code/sub-agents/bmad-analysis/data-analyst.md diff --git a/src/modules/bmm/sub-modules/claude-code/sub-agents/analysis/pattern-detector.md b/src/modules/bmm/sub-modules/claude-code/sub-agents/bmad-analysis/pattern-detector.md similarity index 100% rename from src/modules/bmm/sub-modules/claude-code/sub-agents/analysis/pattern-detector.md rename to src/modules/bmm/sub-modules/claude-code/sub-agents/bmad-analysis/pattern-detector.md diff --git a/src/modules/bmm/sub-modules/claude-code/sub-agents/planning/dependency-mapper.md b/src/modules/bmm/sub-modules/claude-code/sub-agents/bmad-planning/dependency-mapper.md similarity index 100% rename from src/modules/bmm/sub-modules/claude-code/sub-agents/planning/dependency-mapper.md rename to src/modules/bmm/sub-modules/claude-code/sub-agents/bmad-planning/dependency-mapper.md diff --git a/src/modules/bmm/sub-modules/claude-code/sub-agents/planning/epic-optimizer.md b/src/modules/bmm/sub-modules/claude-code/sub-agents/bmad-planning/epic-optimizer.md similarity index 100% rename from src/modules/bmm/sub-modules/claude-code/sub-agents/planning/epic-optimizer.md rename to src/modules/bmm/sub-modules/claude-code/sub-agents/bmad-planning/epic-optimizer.md diff --git a/src/modules/bmm/sub-modules/claude-code/sub-agents/planning/requirements-analyst.md b/src/modules/bmm/sub-modules/claude-code/sub-agents/bmad-planning/requirements-analyst.md similarity index 100% rename from src/modules/bmm/sub-modules/claude-code/sub-agents/planning/requirements-analyst.md rename to src/modules/bmm/sub-modules/claude-code/sub-agents/bmad-planning/requirements-analyst.md diff --git a/src/modules/bmm/sub-modules/claude-code/sub-agents/planning/technical-decisions-curator.md b/src/modules/bmm/sub-modules/claude-code/sub-agents/bmad-planning/technical-decisions-curator.md similarity index 100% rename from src/modules/bmm/sub-modules/claude-code/sub-agents/planning/technical-decisions-curator.md rename to src/modules/bmm/sub-modules/claude-code/sub-agents/bmad-planning/technical-decisions-curator.md diff --git a/src/modules/bmm/sub-modules/claude-code/sub-agents/planning/trend-spotter.md b/src/modules/bmm/sub-modules/claude-code/sub-agents/bmad-planning/trend-spotter.md similarity index 100% rename from src/modules/bmm/sub-modules/claude-code/sub-agents/planning/trend-spotter.md rename to src/modules/bmm/sub-modules/claude-code/sub-agents/bmad-planning/trend-spotter.md diff --git a/src/modules/bmm/sub-modules/claude-code/sub-agents/planning/user-journey-mapper.md b/src/modules/bmm/sub-modules/claude-code/sub-agents/bmad-planning/user-journey-mapper.md similarity index 100% rename from src/modules/bmm/sub-modules/claude-code/sub-agents/planning/user-journey-mapper.md rename to src/modules/bmm/sub-modules/claude-code/sub-agents/bmad-planning/user-journey-mapper.md diff --git a/src/modules/bmm/sub-modules/claude-code/sub-agents/planning/user-researcher.md b/src/modules/bmm/sub-modules/claude-code/sub-agents/bmad-planning/user-researcher.md similarity index 100% rename from src/modules/bmm/sub-modules/claude-code/sub-agents/planning/user-researcher.md rename to src/modules/bmm/sub-modules/claude-code/sub-agents/bmad-planning/user-researcher.md diff --git a/src/modules/bmm/sub-modules/claude-code/sub-agents/research/market-researcher.md b/src/modules/bmm/sub-modules/claude-code/sub-agents/bmad-research/market-researcher.md similarity index 100% rename from src/modules/bmm/sub-modules/claude-code/sub-agents/research/market-researcher.md rename to src/modules/bmm/sub-modules/claude-code/sub-agents/bmad-research/market-researcher.md diff --git a/src/modules/bmm/sub-modules/claude-code/sub-agents/research/tech-debt-auditor.md b/src/modules/bmm/sub-modules/claude-code/sub-agents/bmad-research/tech-debt-auditor.md similarity index 100% rename from src/modules/bmm/sub-modules/claude-code/sub-agents/research/tech-debt-auditor.md rename to src/modules/bmm/sub-modules/claude-code/sub-agents/bmad-research/tech-debt-auditor.md diff --git a/src/modules/bmm/sub-modules/claude-code/sub-agents/review/document-reviewer.md b/src/modules/bmm/sub-modules/claude-code/sub-agents/bmad-review/document-reviewer.md similarity index 100% rename from src/modules/bmm/sub-modules/claude-code/sub-agents/review/document-reviewer.md rename to src/modules/bmm/sub-modules/claude-code/sub-agents/bmad-review/document-reviewer.md diff --git a/src/modules/bmm/sub-modules/claude-code/sub-agents/review/technical-evaluator.md b/src/modules/bmm/sub-modules/claude-code/sub-agents/bmad-review/technical-evaluator.md similarity index 100% rename from src/modules/bmm/sub-modules/claude-code/sub-agents/review/technical-evaluator.md rename to src/modules/bmm/sub-modules/claude-code/sub-agents/bmad-review/technical-evaluator.md diff --git a/src/modules/bmm/sub-modules/claude-code/sub-agents/review/test-coverage-analyzer.md b/src/modules/bmm/sub-modules/claude-code/sub-agents/bmad-review/test-coverage-analyzer.md similarity index 100% rename from src/modules/bmm/sub-modules/claude-code/sub-agents/review/test-coverage-analyzer.md rename to src/modules/bmm/sub-modules/claude-code/sub-agents/bmad-review/test-coverage-analyzer.md diff --git a/tools/cli/installers/lib/ide/claude-code.js b/tools/cli/installers/lib/ide/claude-code.js index 1011f4ac..d6ef46d8 100644 --- a/tools/cli/installers/lib/ide/claude-code.js +++ b/tools/cli/installers/lib/ide/claude-code.js @@ -605,19 +605,48 @@ class ClaudeCodeSetup extends BaseIdeSetup { filesToCopy = choices.selected; } - // Copy selected subagent files - for (const file of filesToCopy) { - const sourcePath = path.join(sourceDir, file); - const targetPath = path.join(targetDir, file); + // Recursively find all matching files in source directory + const findFileInSource = async (filename) => { + const { glob } = require('glob'); + const pattern = path.join(sourceDir, '**', filename); + const files = await glob(pattern); + return files[0]; // Return first match + }; - if (await this.exists(sourcePath)) { - await fs.copyFile(sourcePath, targetPath); - console.log(chalk.green(` ✓ Installed: ${file.replace('.md', '')}`)); + // Copy selected subagent files + let copiedCount = 0; + for (const file of filesToCopy) { + try { + const sourcePath = await findFileInSource(file); + + if (sourcePath && (await this.exists(sourcePath))) { + // Extract subfolder name if file is in a subfolder + const relPath = path.relative(sourceDir, sourcePath); + const subFolder = path.dirname(relPath); + + // Create corresponding subfolder in target if needed + let targetPath; + if (subFolder && subFolder !== '.') { + const targetSubDir = path.join(targetDir, subFolder); + await this.ensureDir(targetSubDir); + targetPath = path.join(targetSubDir, file); + } else { + targetPath = path.join(targetDir, file); + } + + await fs.copyFile(sourcePath, targetPath); + console.log(chalk.green(` ✓ Installed: ${subFolder === '.' ? '' : subFolder + '/'}${file.replace('.md', '')}`)); + copiedCount++; + } else { + console.log(chalk.yellow(` ⚠ Not found: ${file}`)); + } + } catch (error) { + console.log(chalk.yellow(` ⚠ Error copying ${file}: ${error.message}`)); } } - if (filesToCopy.length > 0) { - console.log(chalk.dim(` Total subagents installed: ${filesToCopy.length}`)); + if (copiedCount > 0) { + console.log(chalk.dim(` Total subagents installed: ${copiedCount}`)); } } } diff --git a/v6-open-items.md b/v6-open-items.md index d57f8d38..62b8a65a 100644 --- a/v6-open-items.md +++ b/v6-open-items.md @@ -10,6 +10,8 @@ Aside from stability and bug fixes found during the alpha period - the main focu - DONE: if you modify an installed file and upgrade, the file will be saved as a .bak file and the installer will inform you. - DONE: Game Agents comms style WAY to over the top - reduced a bit. - need to nest subagents for better organization. +- DONE: Quick note on BMM v6 Flow +- DONE: CC SubAgents installed to subfolders now. - IN PROGRESS - Team Web Bundler functional - IN PROGRESS - bmm `testarch` integrated into the BMM workflow's after aligned with the rest of bmad method flow. - IN PROGRESS - Document new agent workflows.