Compare commits
5 Commits
d6cfd4f559
...
fe46abba0c
| Author | SHA1 | Date |
|---|---|---|
|
|
fe46abba0c | |
|
|
c18904d674 | |
|
|
015c74c46f | |
|
|
9317ef5a62 | |
|
|
d662aee4b2 |
|
|
@ -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
|
||||||
|
|
|
||||||
|
|
@ -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`
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -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
|
||||||
|
|
|
||||||
|
|
@ -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 |
|
||||||
|
|
|
||||||
|
|
@ -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
|
||||||
|
|
|
||||||
|
|
@ -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
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -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:
|
||||||
|
|
@ -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
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -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
|
||||||
|
|
|
||||||
|
|
@ -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
|
||||||
|
|
@ -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"
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -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
|
||||||
|
|
|
||||||
|
|
@ -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.
|
||||||
|
|
|
||||||
|
|
@ -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
|
||||||
|
|
|
||||||
|
|
@ -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`
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
|
||||||
|
|
@ -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`
|
||||||
|
|
|
||||||
|
|
@ -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'
|
||||||
|
|
@ -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'
|
||||||
---
|
---
|
||||||
|
|
@ -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'
|
||||||
---
|
---
|
||||||
|
|
@ -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'
|
||||||
---
|
---
|
||||||
|
|
||||||
|
|
@ -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.
|
||||||
|
|
||||||
|
|
@ -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`));
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
|
||||||
|
|
@ -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 };
|
||||||
|
|
@ -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 };
|
||||||
Loading…
Reference in New Issue