diff --git a/src/modules/bmm/workflows/3-solutioning/check-implementation-readiness/steps/step-06-final-assessment.md b/src/modules/bmm/workflows/3-solutioning/check-implementation-readiness/steps/step-06-final-assessment.md
index 9469a226..921aa43d 100644
--- a/src/modules/bmm/workflows/3-solutioning/check-implementation-readiness/steps/step-06-final-assessment.md
+++ b/src/modules/bmm/workflows/3-solutioning/check-implementation-readiness/steps/step-06-final-assessment.md
@@ -111,6 +111,29 @@ Report generated: {outputFile}
The assessment found [number] issues requiring attention. Review the detailed report for specific findings and recommendations."
+### 6. Update IDE Prompt Recommendations
+
+If the readiness status is **READY**, update `.vscode/settings.json` to prioritize the implementation cycle prompts.
+
+Read the existing `chat.promptFilesRecommendations` object and modify these keys:
+
+**Set to `true` (implementation cycle - "keep going" loop):**
+- `bmd-create-story`
+- `bmd-dev-story`
+- `bmd-code-review`
+- `bmd-retrospective`
+- `bmd-correct-course`
+
+**Set to `false` (setup phase - already completed):**
+- `bmd-workflow-init`
+- `bmd-brainstorm`
+- `bmd-prd`
+- `bmd-ux-design`
+- `bmd-create-architecture`
+- `bmd-epics-stories`
+- `bmd-implementation-readiness`
+- `bmd-sprint-planning`
+
## WORKFLOW COMPLETE
The implementation readiness workflow is now complete. The report contains all findings and recommendations for the user to consider.
diff --git a/src/modules/bmm/workflows/4-implementation/sprint-planning/instructions.md b/src/modules/bmm/workflows/4-implementation/sprint-planning/instructions.md
index c4f4bd42..88addaab 100644
--- a/src/modules/bmm/workflows/4-implementation/sprint-planning/instructions.md
+++ b/src/modules/bmm/workflows/4-implementation/sprint-planning/instructions.md
@@ -179,6 +179,38 @@ development_status:
+
+Read the existing `.vscode/settings.json` and update the `chat.promptFilesRecommendations` object.
+
+**Set to `true` (implementation cycle - "keep going" loop):**
+- `bmd-create-story`
+- `bmd-dev-story`
+- `bmd-code-review`
+- `bmd-retrospective`
+- `bmd-correct-course`
+
+**Set to `false` (setup phase - already completed):**
+- `bmd-workflow-init`
+- `bmd-brainstorm`
+- `bmd-prd`
+- `bmd-ux-design`
+- `bmd-create-architecture`
+- `bmd-epics-stories`
+- `bmd-implementation-readiness`
+- `bmd-sprint-planning`
+
+Inform {user_name}:
+
+**IDE Updated for Implementation Phase**
+
+The "keep going" cycle prompts are now prioritized in VS Code:
+- **@bmd-custom-bmm-sm → *create-story** (prepare a story)
+- **@bmd-custom-bmm-dev → *dev-story** (implement it)
+- **Same chat → *code-review** (review the code)
+- **Repeat!**
+
+
+
## Additional Documentation
diff --git a/tools/cli/installers/lib/ide/github-copilot.js b/tools/cli/installers/lib/ide/github-copilot.js
index b9dd5f98..ba0e18d3 100644
--- a/tools/cli/installers/lib/ide/github-copilot.js
+++ b/tools/cli/installers/lib/ide/github-copilot.js
@@ -2,6 +2,7 @@ const path = require('node:path');
const { BaseIdeSetup } = require('./_base-ide');
const chalk = require('chalk');
const { AgentCommandGenerator } = require('./shared/agent-command-generator');
+const { WorkflowPromptGenerator } = require('./shared/workflow-prompt-generator');
/**
* GitHub Copilot setup handler
@@ -12,6 +13,7 @@ class GitHubCopilotSetup extends BaseIdeSetup {
super('github-copilot', 'GitHub Copilot', true); // preferred IDE
this.configDir = '.github';
this.agentsDir = 'agents';
+ this.promptsDir = 'prompts';
this.vscodeDir = '.vscode';
}
@@ -94,14 +96,12 @@ class GitHubCopilotSetup extends BaseIdeSetup {
async setup(projectDir, bmadDir, options = {}) {
console.log(chalk.cyan(`Setting up ${this.name}...`));
- // Configure VS Code settings using pre-collected config if available
- const config = options.preCollectedConfig || {};
- await this.configureVsCodeSettings(projectDir, { ...options, ...config });
-
// Create .github/agents directory
const githubDir = path.join(projectDir, this.configDir);
const agentsDir = path.join(githubDir, this.agentsDir);
+ const promptsDir = path.join(githubDir, this.promptsDir);
await this.ensureDir(agentsDir);
+ await this.ensureDir(promptsDir);
// Clean up any existing BMAD files before reinstalling
await this.cleanup(projectDir);
@@ -117,22 +117,37 @@ class GitHubCopilotSetup extends BaseIdeSetup {
const agentContent = await this.createAgentContent({ module: artifact.module, name: artifact.name }, content);
// Use bmd- prefix: bmd-custom-{module}-{name}.agent.md
- const targetPath = path.join(agentsDir, `bmd-custom-${artifact.module}-${artifact.name}.agent.md`);
+ const agentFileName = `bmd-custom-${artifact.module}-${artifact.name}`;
+ const targetPath = path.join(agentsDir, `${agentFileName}.agent.md`);
await this.writeFile(targetPath, agentContent);
agentCount++;
- console.log(chalk.green(` ✓ Created agent: bmd-custom-${artifact.module}-${artifact.name}`));
+ console.log(chalk.green(` ✓ Created agent: ${agentFileName}`));
}
+ // Generate workflow prompts from config (shared logic)
+ // Each prompt includes nextSteps guidance for the agent to suggest next workflows
+ const promptGen = new WorkflowPromptGenerator();
+ const promptRecommendations = await promptGen.generatePromptFiles(promptsDir, options.selectedModules || []);
+ const promptCount = Object.keys(promptRecommendations).length;
+
+ // Configure VS Code settings using pre-collected config if available
+ const config = options.preCollectedConfig || {};
+ await this.configureVsCodeSettings(projectDir, { ...options, ...config, promptRecommendations });
+
console.log(chalk.green(`✓ ${this.name} configured:`));
console.log(chalk.dim(` - ${agentCount} agents created`));
+ console.log(chalk.dim(` - ${promptCount} workflow prompts configured`));
console.log(chalk.dim(` - Agents directory: ${path.relative(projectDir, agentsDir)}`));
+ console.log(chalk.dim(` - Prompts directory: ${path.relative(projectDir, promptsDir)}`));
console.log(chalk.dim(` - VS Code settings configured`));
console.log(chalk.dim('\n Agents available in VS Code Chat view'));
+ console.log(chalk.dim(' Workflow prompts show as new chat starters'));
return {
success: true,
agents: agentCount,
+ prompts: promptCount,
settings: true,
};
}
@@ -199,6 +214,11 @@ class GitHubCopilotSetup extends BaseIdeSetup {
};
}
+ // Add prompt file recommendations for new chat starters
+ if (options.promptRecommendations && Object.keys(options.promptRecommendations).length > 0) {
+ bmadSettings['chat.promptFilesRecommendations'] = options.promptRecommendations;
+ }
+
// Merge settings (existing take precedence)
const mergedSettings = { ...bmadSettings, ...existingSettings };
@@ -307,6 +327,24 @@ ${cleanContent}
console.log(chalk.dim(` Cleaned up ${removed} existing BMAD agents`));
}
}
+
+ // Clean up prompts directory
+ const promptsDir = path.join(projectDir, this.configDir, this.promptsDir);
+ if (await fs.pathExists(promptsDir)) {
+ const files = await fs.readdir(promptsDir);
+ let removed = 0;
+
+ for (const file of files) {
+ if (file.startsWith('bmd-') && file.endsWith('.prompt.md')) {
+ await fs.remove(path.join(promptsDir, file));
+ removed++;
+ }
+ }
+
+ if (removed > 0) {
+ console.log(chalk.dim(` Cleaned up ${removed} existing BMAD prompt files`));
+ }
+ }
}
/**
diff --git a/tools/cli/installers/lib/ide/shared/workflow-prompt-generator.js b/tools/cli/installers/lib/ide/shared/workflow-prompt-generator.js
new file mode 100644
index 00000000..cbc6f320
--- /dev/null
+++ b/tools/cli/installers/lib/ide/shared/workflow-prompt-generator.js
@@ -0,0 +1,61 @@
+const path = require('node:path');
+const fs = require('fs-extra');
+const { workflowPromptsConfig } = require('./workflow-prompts-config');
+
+/**
+ * Generate workflow prompt recommendations for IDE new chat starters
+ * Uses static configuration from workflow-prompts-config.js which mirrors
+ * the workflows documented in quick-start.md
+ *
+ * The implementation-readiness and sprint-planning workflows update
+ * VS Code settings to toggle which prompts are shown based on project phase.
+ */
+class WorkflowPromptGenerator {
+ /**
+ * Get workflow prompts for selected modules
+ * @param {Array} selectedModules - Modules to include (e.g., ['bmm', 'bmgd'])
+ * @returns {Array