Compare commits

...

5 Commits

Author SHA1 Message Date
Sjoerd Bozon fe46abba0c
Merge 015c74c46f into c18904d674 2026-01-10 08:34:59 +01:00
Alex Verkhovsky c18904d674
refactor: rename create-tech-spec to quick-spec for QuickFlow branding (#1290) 2026-01-10 11:33:00 +08:00
Sjoerd Bozon 015c74c46f
Merge branch 'bmad-code-org:main' into feat/workflow-prompt-recommendations 2026-01-05 10:24:53 +01:00
Sjoerd Bozon 9317ef5a62 fix: address Copilot review feedback on PR #1205
- Move step 6 before WORKFLOW COMPLETE marker (fixes workflow structure)
- Change PRD shortcut from PR to PD (avoids conflict with parallel-research)
- Clarify instructions for reading/updating VS Code settings
- Update phase 4 comment to match actual handoff flow
2025-12-29 00:16:38 +01:00
Sjoerd Bozon d662aee4b2 feat: add VS Code workflow prompt recommendations
Add chat.promptFilesRecommendations support for GitHub Copilot to show
workflow shortcuts as new chat starters.

- Add workflow-prompts-config.js with all BMM, BMGD, and core prompts
- Add workflow-prompt-generator.js to create .github/prompts/*.prompt.md
- Update github-copilot.js to generate prompts and configure VS Code
- Add phase-based prompt toggling to implementation-readiness workflow
- Add phase-based prompt toggling to sprint-planning workflow

When implementation-readiness passes or sprint-planning completes, the
workflows update VS Code settings to prioritize the 'keep going' cycle
(create-story → dev-story → code-review) over setup phase prompts.
2025-12-28 23:44:40 +01:00
26 changed files with 382 additions and 36 deletions

View File

@ -37,9 +37,9 @@ Barry is the elite solo developer who lives and breathes the BMad Quick Flow wor
Barry owns the entire BMad Quick Flow path, providing a streamlined 3-step development process that eliminates handoffs and maximizes velocity. Barry owns the entire BMad Quick Flow path, providing a streamlined 3-step development process that eliminates handoffs and maximizes velocity.
### 1. **create-tech-spec** ### 1. **quick-spec**
- **Workflow:** `_bmad/bmm/workflows/bmad-quick-flow/create-tech-spec/workflow.yaml` - **Workflow:** `_bmad/bmm/workflows/bmad-quick-flow/quick-spec/workflow.md`
- **Description:** Architect a technical spec with implementation-ready stories - **Description:** Architect a technical spec with implementation-ready stories
- **Use when:** You need to transform requirements into a buildable spec - **Use when:** You need to transform requirements into a buildable spec
@ -89,7 +89,7 @@ Barry orchestrates a simple, efficient 3-step process:
```mermaid ```mermaid
flowchart LR flowchart LR
A[Requirements] --> B[create-tech-spec] A[Requirements] --> B[quick-spec]
B --> C[Tech Spec] B --> C[Tech Spec]
C --> D[quick-dev] C --> D[quick-dev]
D --> E[Implementation] D --> E[Implementation]
@ -107,7 +107,7 @@ flowchart LR
style H fill:#e0f2f1 style H fill:#e0f2f1
``` ```
### Step 1: Technical Specification (`create-tech-spec`) ### Step 1: Technical Specification (`quick-spec`)
**Goal:** Transform user requirements into implementation-ready technical specifications **Goal:** Transform user requirements into implementation-ready technical specifications
@ -237,7 +237,7 @@ In party mode, Barry often acts as:
/bmad:bmm:agents:quick-flow-solo-dev /bmad:bmm:agents:quick-flow-solo-dev
# Create a tech spec # Create a tech spec
> create-tech-spec > quick-spec
# Quick implementation # Quick implementation
> quick-dev tech-spec-auth.md > quick-dev tech-spec-auth.md

View File

@ -173,7 +173,7 @@ Fast solo development without handoffs.
- Code review - Code review
**Key Workflows:** **Key Workflows:**
- `*create-tech-spec` - `*quick-spec`
- `*quick-dev` - `*quick-dev`
- `*code-review` - `*code-review`

View File

@ -164,6 +164,6 @@ Start with Quick Flow, but switch to BMad Method when:
## Related ## Related
- [Create Tech Spec](/docs/how-to/workflows/create-tech-spec.md) - How to use Quick Flow - [Quick Spec](/docs/how-to/workflows/quick-spec.md) - How to use Quick Flow
- [Quick Start Guide](/docs/tutorials/getting-started/getting-started-bmadv6.md) - Getting started - [Quick Start Guide](/docs/tutorials/getting-started/getting-started-bmadv6.md) - Getting started
- [Four Phases](/docs/explanation/architecture/four-phases.md) - Understanding the full methodology - [Four Phases](/docs/explanation/architecture/four-phases.md) - Understanding the full methodology

View File

@ -303,7 +303,7 @@ Direct, confident, and gameplay-focused. Uses dev slang, thinks in game feel and
| ------------------ | ------------------------------------------------------ | | ------------------ | ------------------------------------------------------ |
| `quick-prototype` | Rapid prototype to test if a mechanic is fun | | `quick-prototype` | Rapid prototype to test if a mechanic is fun |
| `quick-dev` | Implement features end-to-end with game considerations | | `quick-dev` | Implement features end-to-end with game considerations |
| `create-tech-spec` | Create implementation-ready technical spec | | `quick-spec` | Create implementation-ready technical spec |
| `code-review` | Review code quality | | `code-review` | Review code quality |
| `test-framework` | Set up automated testing | | `test-framework` | Set up automated testing |
| `party-mode` | Bring in specialists when needed | | `party-mode` | Bring in specialists when needed |

View File

@ -10,7 +10,7 @@ Point an LLM at BMad's source files and ask your question. That's the technique
:::note[Example] :::note[Example]
**Q:** "Tell me the fastest way to build something with BMad" **Q:** "Tell me the fastest way to build something with BMad"
**A:** Use Quick Flow: Run `create-tech-spec` to write a technical specification, then `quick-dev` to implement it—skipping the full planning phases. This gets small features shipped in a single focused session instead of going through the full 4-phase BMM workflow. **A:** Use Quick Flow: Run `quick-spec` to write a technical specification, then `quick-dev` to implement it—skipping the full planning phases. This gets small features shipped in a single focused session instead of going through the full 4-phase BMM workflow.
::: :::
## Why This Works ## Why This Works

View File

@ -17,7 +17,7 @@ The Game Solo Dev agent includes:
- `quick-prototype` - Rapid mechanic testing - `quick-prototype` - Rapid mechanic testing
- `quick-dev` - Flexible feature implementation - `quick-dev` - Flexible feature implementation
- `create-tech-spec` - Create implementation-ready specs - `quick-spec` - Create implementation-ready specs
- `code-review` - Quality checks - `code-review` - Quality checks
- `test-framework` - Automated testing setup - `test-framework` - Automated testing setup

View File

@ -1,6 +1,6 @@
--- ---
title: "How to Create a Tech Spec" title: "How to Use Quick Spec"
description: How to create a technical specification using Quick Spec Flow description: How to create a technical specification using Quick Spec workflow
--- ---
@ -35,7 +35,7 @@ Start a fresh chat and load the PM agent (or Quick Flow Solo Dev agent).
### 2. Run the Tech Spec Workflow ### 2. Run the Tech Spec Workflow
``` ```
*create-tech-spec *quick-spec
``` ```
Or simply describe what you want to build: Or simply describe what you want to build:

View File

@ -75,7 +75,7 @@ Story implementation and code review.
Fast solo development without handoffs. Fast solo development without handoffs.
**Commands:** **Commands:**
- `*create-tech-spec` - Architect technical spec with implementation-ready stories - `*quick-spec` - Architect technical spec with implementation-ready stories
- `*quick-dev` - Implement tech spec end-to-end solo - `*quick-dev` - Implement tech spec end-to-end solo
- `*code-review` - Review and improve code - `*code-review` - Review and improve code

View File

@ -36,7 +36,7 @@ agent:
description: "[QD] Implement features end-to-end solo with game-specific considerations" description: "[QD] Implement features end-to-end solo with game-specific considerations"
- trigger: TS or fuzzy match on tech-spec - trigger: TS or fuzzy match on tech-spec
workflow: "{project-root}/_bmad/bmgd/workflows/bmgd-quick-flow/create-tech-spec/workflow.yaml" workflow: "{project-root}/_bmad/bmgd/workflows/bmgd-quick-flow/quick-spec/workflow.yaml"
description: "[TS] Architect a technical spec with implementation-ready stories" description: "[TS] Architect a technical spec with implementation-ready stories"
- trigger: CR or fuzzy match on code-review - trigger: CR or fuzzy match on code-review

View File

@ -1,5 +1,5 @@
# Quick-Flow: Create Tech-Spec (Game Development) # Quick-Flow: Create Tech-Spec (Game Development)
name: create-tech-spec name: quick-spec
description: "Conversational spec engineering for games - ask questions, investigate code, produce implementation-ready tech-spec." description: "Conversational spec engineering for games - ask questions, investigate code, produce implementation-ready tech-spec."
author: "BMad" author: "BMad"
@ -14,7 +14,7 @@ user_skill_level: "{config_source}:game_dev_experience"
date: system-generated date: system-generated
# Workflow components # Workflow components
installed_path: "{project-root}/_bmad/bmgd/workflows/bmgd-quick-flow/create-tech-spec" installed_path: "{project-root}/_bmad/bmgd/workflows/bmgd-quick-flow/quick-spec"
instructions: "{installed_path}/instructions.md" instructions: "{installed_path}/instructions.md"
# Related workflows # Related workflows

View File

@ -11,10 +11,10 @@ phases:
name: "Planning" name: "Planning"
required: true required: true
workflows: workflows:
- id: "create-tech-spec" - id: "quick-spec"
required: true required: true
agent: "game-solo-dev" agent: "game-solo-dev"
command: "create-tech-spec" command: "quick-spec"
output: "Technical specification" output: "Technical specification"
note: "Define changes for existing codebase" note: "Define changes for existing codebase"

View File

@ -20,7 +20,7 @@ agent:
menu: menu:
- trigger: TS or fuzzy match on tech-spec - trigger: TS or fuzzy match on tech-spec
exec: "{project-root}/_bmad/bmm/workflows/bmad-quick-flow/create-tech-spec/workflow.md" exec: "{project-root}/_bmad/bmm/workflows/bmad-quick-flow/quick-spec/workflow.md"
description: "[TS] Architect a technical spec with implementation-ready stories (Required first step)" description: "[TS] Architect a technical spec with implementation-ready stories (Required first step)"
- trigger: QD or fuzzy match on quick-dev - trigger: QD or fuzzy match on quick-dev

View File

@ -111,6 +111,29 @@ Report generated: {outputFile}
The assessment found [number] issues requiring attention. Review the detailed report for specific findings and recommendations." 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 ## WORKFLOW COMPLETE
The implementation readiness workflow is now complete. The report contains all findings and recommendations for the user to consider. The implementation readiness workflow is now complete. The report contains all findings and recommendations for the user to consider.

View File

@ -179,6 +179,38 @@ development_status:
</step> </step>
<step n="6" goal="Update IDE prompt recommendations for implementation phase">
<action>Read the existing `.vscode/settings.json` and update the `chat.promptFilesRecommendations` object.</action>
**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`
<action>Inform {user_name}:</action>
**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!**
</step>
</workflow> </workflow>
## Additional Documentation ## Additional Documentation

View File

@ -95,7 +95,7 @@ Present choice:
**[e] Execute directly** - Start now **[e] Execute directly** - Start now
``` ```
- **[t]:** Direct user to `{create_tech_spec_workflow}`. **EXIT Quick Dev.** - **[t]:** Direct user to `{quick_spec_workflow}`. **EXIT Quick Dev.**
- **[e]:** Ask for any additional guidance, then **NEXT:** Load `step-02-context-gathering.md` - **[e]:** Ask for any additional guidance, then **NEXT:** Load `step-02-context-gathering.md`
### Escalation Triggered - Level 0-2 ### Escalation Triggered - Level 0-2
@ -108,7 +108,7 @@ This looks like a focused feature with multiple components.
**[e] Execute directly** **[e] Execute directly**
``` ```
- **[t]:** Direct to `{create_tech_spec_workflow}`. **EXIT Quick Dev.** - **[t]:** Direct to `{quick_spec_workflow}`. **EXIT Quick Dev.**
- **[w]:** Direct to `{workflow_init}`. **EXIT Quick Dev.** - **[w]:** Direct to `{workflow_init}`. **EXIT Quick Dev.**
- **[e]:** Ask for guidance, then **NEXT:** Load `step-02-context-gathering.md` - **[e]:** Ask for guidance, then **NEXT:** Load `step-02-context-gathering.md`
@ -123,7 +123,7 @@ This sounds like platform/system work.
``` ```
- **[w]:** Direct to `{workflow_init}`. **EXIT Quick Dev.** - **[w]:** Direct to `{workflow_init}`. **EXIT Quick Dev.**
- **[t]:** Direct to `{create_tech_spec_workflow}`. **EXIT Quick Dev.** - **[t]:** Direct to `{quick_spec_workflow}`. **EXIT Quick Dev.**
- **[e]:** Ask for guidance, then **NEXT:** Load `step-02-context-gathering.md` - **[e]:** Ask for guidance, then **NEXT:** Load `step-02-context-gathering.md`
--- ---

View File

@ -40,7 +40,7 @@ Load config from `{project-root}/_bmad/bmm/config.yaml` and resolve:
### Related Workflows ### Related Workflows
- `create_tech_spec_workflow` = `{project-root}/_bmad/bmm/workflows/bmad-quick-flow/create-tech-spec/workflow.yaml` - `quick_spec_workflow` = `{project-root}/_bmad/bmm/workflows/bmad-quick-flow/quick-spec/workflow.md`
- `workflow_init` = `{project-root}/_bmad/bmm/workflows/workflow-status/init/workflow.yaml` - `workflow_init` = `{project-root}/_bmad/bmm/workflows/workflow-status/init/workflow.yaml`
- `party_mode_exec` = `{project-root}/_bmad/core/workflows/party-mode/workflow.md` - `party_mode_exec` = `{project-root}/_bmad/core/workflows/party-mode/workflow.md`
- `advanced_elicitation` = `{project-root}/_bmad/core/workflows/advanced-elicitation/workflow.xml` - `advanced_elicitation` = `{project-root}/_bmad/core/workflows/advanced-elicitation/workflow.xml`

View File

@ -2,7 +2,7 @@
name: 'step-01-understand' name: 'step-01-understand'
description: 'Analyze the requirement delta between current state and what user wants to build' description: 'Analyze the requirement delta between current state and what user wants to build'
workflow_path: '{project-root}/_bmad/bmm/workflows/bmad-quick-flow/create-tech-spec' workflow_path: '{project-root}/_bmad/bmm/workflows/bmad-quick-flow/quick-spec'
nextStepFile: '{workflow_path}/steps/step-02-investigate.md' nextStepFile: '{workflow_path}/steps/step-02-investigate.md'
skipToStepFile: '{workflow_path}/steps/step-03-generate.md' skipToStepFile: '{workflow_path}/steps/step-03-generate.md'
templateFile: '{workflow_path}/tech-spec-template.md' templateFile: '{workflow_path}/tech-spec-template.md'

View File

@ -2,7 +2,7 @@
name: 'step-02-investigate' name: 'step-02-investigate'
description: 'Map technical constraints and anchor points within the codebase' description: 'Map technical constraints and anchor points within the codebase'
workflow_path: '{project-root}/_bmad/bmm/workflows/bmad-quick-flow/create-tech-spec' workflow_path: '{project-root}/_bmad/bmm/workflows/bmad-quick-flow/quick-spec'
nextStepFile: '{workflow_path}/steps/step-03-generate.md' nextStepFile: '{workflow_path}/steps/step-03-generate.md'
wipFile: '{implementation_artifacts}/tech-spec-wip.md' wipFile: '{implementation_artifacts}/tech-spec-wip.md'
--- ---

View File

@ -2,7 +2,7 @@
name: 'step-03-generate' name: 'step-03-generate'
description: 'Build the implementation plan based on the technical mapping of constraints' description: 'Build the implementation plan based on the technical mapping of constraints'
workflow_path: '{project-root}/_bmad/bmm/workflows/bmad-quick-flow/create-tech-spec' workflow_path: '{project-root}/_bmad/bmm/workflows/bmad-quick-flow/quick-spec'
nextStepFile: '{workflow_path}/steps/step-04-review.md' nextStepFile: '{workflow_path}/steps/step-04-review.md'
wipFile: '{implementation_artifacts}/tech-spec-wip.md' wipFile: '{implementation_artifacts}/tech-spec-wip.md'
--- ---

View File

@ -2,7 +2,7 @@
name: 'step-04-review' name: 'step-04-review'
description: 'Review and finalize the tech-spec' description: 'Review and finalize the tech-spec'
workflow_path: '{project-root}/_bmad/bmm/workflows/bmad-quick-flow/create-tech-spec' workflow_path: '{project-root}/_bmad/bmm/workflows/bmad-quick-flow/quick-spec'
wipFile: '{implementation_artifacts}/tech-spec-wip.md' wipFile: '{implementation_artifacts}/tech-spec-wip.md'
--- ---

View File

@ -1,5 +1,5 @@
--- ---
name: create-tech-spec name: quick-spec
description: Conversational spec engineering - ask questions, investigate code, produce implementation-ready tech-spec. description: Conversational spec engineering - ask questions, investigate code, produce implementation-ready tech-spec.
main_config: '{project-root}/_bmad/bmm/config.yaml' main_config: '{project-root}/_bmad/bmm/config.yaml'
web_bundle: true web_bundle: true
@ -10,7 +10,7 @@ party_mode_exec: '{project-root}/_bmad/core/workflows/party-mode/workflow.md'
quick_dev_workflow: '{project-root}/_bmad/bmm/workflows/bmad-quick-flow/quick-dev/workflow.md' quick_dev_workflow: '{project-root}/_bmad/bmm/workflows/bmad-quick-flow/quick-dev/workflow.md'
--- ---
# Create Tech-Spec Workflow # Quick-Spec Workflow
**Goal:** Create implementation-ready technical specifications through conversational discovery, code investigation, and structured documentation. **Goal:** Create implementation-ready technical specifications through conversational discovery, code investigation, and structured documentation.

View File

@ -2,6 +2,7 @@ const path = require('node:path');
const { BaseIdeSetup } = require('./_base-ide'); const { BaseIdeSetup } = require('./_base-ide');
const chalk = require('chalk'); const chalk = require('chalk');
const { AgentCommandGenerator } = require('./shared/agent-command-generator'); const { AgentCommandGenerator } = require('./shared/agent-command-generator');
const { WorkflowPromptGenerator } = require('./shared/workflow-prompt-generator');
/** /**
* GitHub Copilot setup handler * GitHub Copilot setup handler
@ -12,6 +13,7 @@ class GitHubCopilotSetup extends BaseIdeSetup {
super('github-copilot', 'GitHub Copilot', true); // preferred IDE super('github-copilot', 'GitHub Copilot', true); // preferred IDE
this.configDir = '.github'; this.configDir = '.github';
this.agentsDir = 'agents'; this.agentsDir = 'agents';
this.promptsDir = 'prompts';
this.vscodeDir = '.vscode'; this.vscodeDir = '.vscode';
} }
@ -94,14 +96,12 @@ class GitHubCopilotSetup extends BaseIdeSetup {
async setup(projectDir, bmadDir, options = {}) { async setup(projectDir, bmadDir, options = {}) {
console.log(chalk.cyan(`Setting up ${this.name}...`)); 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 // Create .github/agents directory
const githubDir = path.join(projectDir, this.configDir); const githubDir = path.join(projectDir, this.configDir);
const agentsDir = path.join(githubDir, this.agentsDir); const agentsDir = path.join(githubDir, this.agentsDir);
const promptsDir = path.join(githubDir, this.promptsDir);
await this.ensureDir(agentsDir); await this.ensureDir(agentsDir);
await this.ensureDir(promptsDir);
// Clean up any existing BMAD files before reinstalling // Clean up any existing BMAD files before reinstalling
await this.cleanup(projectDir); await this.cleanup(projectDir);
@ -117,22 +117,37 @@ class GitHubCopilotSetup extends BaseIdeSetup {
const agentContent = await this.createAgentContent({ module: artifact.module, name: artifact.name }, content); const agentContent = await this.createAgentContent({ module: artifact.module, name: artifact.name }, content);
// Use bmd- prefix: bmd-custom-{module}-{name}.agent.md // 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); await this.writeFile(targetPath, agentContent);
agentCount++; 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.green(`${this.name} configured:`));
console.log(chalk.dim(` - ${agentCount} agents created`)); 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(` - 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(` - VS Code settings configured`));
console.log(chalk.dim('\n Agents available in VS Code Chat view')); console.log(chalk.dim('\n Agents available in VS Code Chat view'));
console.log(chalk.dim(' Workflow prompts show as new chat starters'));
return { return {
success: true, success: true,
agents: agentCount, agents: agentCount,
prompts: promptCount,
settings: true, 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) // Merge settings (existing take precedence)
const mergedSettings = { ...bmadSettings, ...existingSettings }; const mergedSettings = { ...bmadSettings, ...existingSettings };
@ -307,6 +327,24 @@ ${cleanContent}
console.log(chalk.dim(` Cleaned up ${removed} existing BMAD agents`)); 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`));
}
}
} }
/** /**

View File

@ -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<string>} selectedModules - Modules to include (e.g., ['bmm', 'bmgd'])
* @returns {Array<Object>} Array of workflow prompt configurations
*/
getWorkflowPrompts(selectedModules = []) {
const allPrompts = [];
// Always include core prompts
if (workflowPromptsConfig.core) {
allPrompts.push(...workflowPromptsConfig.core);
}
// Add prompts for each selected module
for (const moduleName of selectedModules) {
if (workflowPromptsConfig[moduleName]) {
allPrompts.push(...workflowPromptsConfig[moduleName]);
}
}
return allPrompts;
}
/**
* Generate prompt files for an IDE
* @param {string} promptsDir - Directory to write prompt files
* @param {Array<string>} selectedModules - Modules to include
* @returns {Object} Map of prompt names to true for VS Code settings
*/
async generatePromptFiles(promptsDir, selectedModules = []) {
const prompts = this.getWorkflowPrompts(selectedModules);
const recommendations = {};
for (const prompt of prompts) {
const promptContent = ['---', `agent: ${prompt.agent}`, `description: "${prompt.description}"`, '---', '', prompt.prompt, ''].join(
'\n',
);
const promptFilePath = path.join(promptsDir, `bmd-${prompt.name}.prompt.md`);
await fs.writeFile(promptFilePath, promptContent);
recommendations[`bmd-${prompt.name}`] = true;
}
return recommendations;
}
}
module.exports = { WorkflowPromptGenerator };

View File

@ -0,0 +1,192 @@
/**
* Workflow prompt configuration for IDE new chat starters
*
* This configuration defines the workflow prompts that appear as suggestions
* when starting a new chat in VS Code (via chat.promptFilesRecommendations).
*
* The implementation-readiness and sprint-planning workflows update the
* VS Code settings to toggle which prompts are shown based on project phase.
*
* Reference: docs/modules/bmm-bmad-method/quick-start.md
*/
const workflowPromptsConfig = {
// BMad Method Module (bmm) - Standard development workflow
bmm: [
// ═══════════════════════════════════════════════════════════════════════
// Phase 1 - Analysis (Optional)
// ═══════════════════════════════════════════════════════════════════════
{
name: 'workflow-init',
agent: 'bmd-custom-bmm-analyst',
shortcut: 'WI',
description: '[WI] Initialize workflow and choose planning track',
prompt: '*workflow-init',
},
{
name: 'brainstorm',
agent: 'bmd-custom-bmm-analyst',
shortcut: 'BP',
description: '[BP] Brainstorm project ideas and concepts',
prompt: '*brainstorm-project',
},
{
name: 'workflow-status',
agent: 'bmd-custom-bmm-pm',
shortcut: 'WS',
description: '[WS] Check current workflow status and next steps',
prompt: '*workflow-status',
},
// ═══════════════════════════════════════════════════════════════════════
// Phase 2 - Planning (Required)
// ═══════════════════════════════════════════════════════════════════════
{
name: 'prd',
agent: 'bmd-custom-bmm-pm',
shortcut: 'PD',
description: '[PD] Create Product Requirements Document (PRD)',
prompt: '*prd',
},
{
name: 'ux-design',
agent: 'bmd-custom-bmm-ux-designer',
shortcut: 'UD',
description: '[UD] Create UX Design specification',
prompt: '*ux-design',
},
// ═══════════════════════════════════════════════════════════════════════
// Phase 3 - Solutioning
// ═══════════════════════════════════════════════════════════════════════
{
name: 'create-architecture',
agent: 'bmd-custom-bmm-architect',
shortcut: 'CA',
description: '[CA] Create system architecture document',
prompt: '*create-architecture',
},
{
name: 'epics-stories',
agent: 'bmd-custom-bmm-pm',
shortcut: 'ES',
description: '[ES] Create Epics and User Stories from PRD',
prompt: '*epics-stories',
},
{
name: 'implementation-readiness',
agent: 'bmd-custom-bmm-architect',
shortcut: 'IR',
description: '[IR] Check implementation readiness across all docs',
prompt: '*implementation-readiness',
},
{
name: 'sprint-planning',
agent: 'bmd-custom-bmm-sm',
shortcut: 'SP',
description: '[SP] Initialize sprint planning from epics',
prompt: '*sprint-planning',
},
// ═══════════════════════════════════════════════════════════════════════
// Phase 4 - Implementation: The "Keep Going" Cycle
// SM → create-story → DEV → dev-story → code-review → (create-story | retrospective)
// ═══════════════════════════════════════════════════════════════════════
{
name: 'create-story',
agent: 'bmd-custom-bmm-sm',
shortcut: 'CS',
description: '[CS] Create developer-ready story from epic',
prompt: '*create-story',
},
{
name: 'dev-story',
agent: 'bmd-custom-bmm-dev',
shortcut: 'DS',
description: '[DS] Implement the current story',
prompt: '*dev-story',
},
{
name: 'code-review',
agent: 'bmd-custom-bmm-dev',
shortcut: 'CR',
description: '[CR] Perform code review on implementation',
prompt: '*code-review',
},
{
name: 'retrospective',
agent: 'bmd-custom-bmm-sm',
shortcut: 'ER',
description: '[ER] Run epic retrospective after completion',
prompt: '*epic-retrospective',
},
{
name: 'correct-course',
agent: 'bmd-custom-bmm-sm',
shortcut: 'CC',
description: '[CC] Course correction when things go off track',
prompt: '*correct-course',
},
],
// BMad Game Development Module (bmgd)
bmgd: [
// Implementation cycle
{
name: 'game-implement',
agent: 'bmd-custom-bmgd-game-dev',
shortcut: 'GI',
description: '[GI] Implement game feature',
prompt: '*game-implement',
},
{
name: 'game-qa',
agent: 'bmd-custom-bmgd-game-qa',
shortcut: 'GQ',
description: '[GQ] Test and QA game feature',
prompt: '*game-qa',
},
// Planning & Design
{
name: 'game-design',
agent: 'bmd-custom-bmgd-game-designer',
shortcut: 'GD',
description: '[GD] Design game mechanics and systems',
prompt: '*game-design',
},
{
name: 'game-architecture',
agent: 'bmd-custom-bmgd-game-architect',
shortcut: 'GA',
description: '[GA] Create game technical architecture',
prompt: '*game-architecture',
},
{
name: 'game-sprint',
agent: 'bmd-custom-bmgd-game-scrum-master',
shortcut: 'GS',
description: '[GS] Plan game development sprint',
prompt: '*game-sprint',
},
],
// Core agents (always available)
core: [
{
name: 'list-tasks',
agent: 'bmd-custom-core-bmad-master',
shortcut: 'LT',
description: '[LT] List available tasks',
prompt: '*list-tasks',
},
{
name: 'list-workflows',
agent: 'bmd-custom-core-bmad-master',
shortcut: 'LW',
description: '[LW] List available workflows',
prompt: '*list-workflows',
},
],
};
module.exports = { workflowPromptsConfig };