Compare commits
11 Commits
05bbc9fe56
...
018fa8da92
| Author | SHA1 | Date |
|---|---|---|
|
|
018fa8da92 | |
|
|
efc69ffb2c | |
|
|
44972d62b9 | |
|
|
deedf18fc5 | |
|
|
17fe438452 | |
|
|
d036d34892 | |
|
|
bc7c7f0757 | |
|
|
ace23f6902 | |
|
|
d756b79322 | |
|
|
622e1fd813 | |
|
|
2632f6c538 |
15
CHANGELOG.md
15
CHANGELOG.md
|
|
@ -1,5 +1,20 @@
|
||||||
# Changelog
|
# Changelog
|
||||||
|
|
||||||
|
## [6.0.4]
|
||||||
|
|
||||||
|
### 🎁 Features
|
||||||
|
|
||||||
|
* Add edge case hunter review task - new reusable review task that exhaustively traces branching paths and boundary conditions in code, reporting only unhandled gaps. Method-driven analysis complementary to adversarial review (#1790)
|
||||||
|
|
||||||
|
### 🐛 Bug Fixes
|
||||||
|
|
||||||
|
* Fix brainstorming to not overwrite previous sessions; now prompts to continue existing brainstorming or start a new one when older brainstorming sessions are found
|
||||||
|
* Fix installer templates - replace legacy `@` path prefixes with explicit `{project-root}` syntax for consistency (#1769)
|
||||||
|
* Fix edge case hunter - remove zero-findings halt condition that was pressuring the LLM to hallucinate findings when none legitimately exist (#1797)
|
||||||
|
* Fix broken docs domain references in README and GitHub issue templates (#1777)
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
## [6.0.3]
|
## [6.0.3]
|
||||||
|
|
||||||
### 🎁 Features
|
### 🎁 Features
|
||||||
|
|
|
||||||
|
|
@ -1,12 +1,12 @@
|
||||||
{
|
{
|
||||||
"name": "bmad-method",
|
"name": "bmad-method",
|
||||||
"version": "6.0.3",
|
"version": "6.0.4",
|
||||||
"lockfileVersion": 3,
|
"lockfileVersion": 3,
|
||||||
"requires": true,
|
"requires": true,
|
||||||
"packages": {
|
"packages": {
|
||||||
"": {
|
"": {
|
||||||
"name": "bmad-method",
|
"name": "bmad-method",
|
||||||
"version": "6.0.3",
|
"version": "6.0.4",
|
||||||
"license": "MIT",
|
"license": "MIT",
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"@clack/core": "^1.0.0",
|
"@clack/core": "^1.0.0",
|
||||||
|
|
|
||||||
|
|
@ -1,7 +1,7 @@
|
||||||
{
|
{
|
||||||
"$schema": "https://json.schemastore.org/package.json",
|
"$schema": "https://json.schemastore.org/package.json",
|
||||||
"name": "bmad-method",
|
"name": "bmad-method",
|
||||||
"version": "6.0.3",
|
"version": "6.0.4",
|
||||||
"description": "Breakthrough Method of Agile AI-driven Development",
|
"description": "Breakthrough Method of Agile AI-driven Development",
|
||||||
"keywords": [
|
"keywords": [
|
||||||
"agile",
|
"agile",
|
||||||
|
|
|
||||||
|
|
@ -124,13 +124,21 @@ Saved to: {finalFile}
|
||||||
|
|
||||||
Once you are fully satisfied with the spec (ideally after **Adversarial Review** and maybe a few rounds of **Advanced Elicitation**), it is recommended to run implementation in a FRESH CONTEXT for best results.
|
Once you are fully satisfied with the spec (ideally after **Adversarial Review** and maybe a few rounds of **Advanced Elicitation**), it is recommended to run implementation in a FRESH CONTEXT for best results.
|
||||||
|
|
||||||
Copy this prompt to start dev:
|
Load and follow **Adversarial Review** in a fresh context (recommended for information asymmetry):
|
||||||
|
|
||||||
\`\`\`
|
\`\`\`
|
||||||
quick-dev {finalFile}
|
/bmad-review-adversarial-general "{finalFile}"
|
||||||
\`\`\`
|
\`\`\`
|
||||||
|
|
||||||
This ensures the dev agent has clean context focused solely on implementation.
|
Load and follow **development** in a fresh context:
|
||||||
|
|
||||||
|
\`\`\`
|
||||||
|
/quick-dev "{finalFile}"
|
||||||
|
\`\`\`
|
||||||
|
|
||||||
|
_(Both are slash commands — prefix `/` invokes a BMAD skill or workflow.)_
|
||||||
|
|
||||||
|
This ensures the agent has clean context focused solely on its task.
|
||||||
```
|
```
|
||||||
|
|
||||||
b) **HALT and wait for user selection.**
|
b) **HALT and wait for user selection.**
|
||||||
|
|
@ -179,7 +187,7 @@ b) **HALT and wait for user selection.**
|
||||||
When you're ready to implement, run:
|
When you're ready to implement, run:
|
||||||
|
|
||||||
```
|
```
|
||||||
quick-dev {finalFile}
|
/quick-dev {finalFile}
|
||||||
```
|
```
|
||||||
|
|
||||||
Ship it!"
|
Ship it!"
|
||||||
|
|
|
||||||
|
|
@ -2,7 +2,7 @@ code: core
|
||||||
name: "BMad Core Module"
|
name: "BMad Core Module"
|
||||||
|
|
||||||
header: "BMad Core Configuration"
|
header: "BMad Core Configuration"
|
||||||
subheader: "Configure the core settings for your BMad installation.\nThese settings will be used across all modules and agents."
|
subheader: "Configure the core settings for your BMad installation.\nThese settings will be used across all installed bmad skills, workflows, and agents."
|
||||||
|
|
||||||
user_name:
|
user_name:
|
||||||
prompt: "What should agents call you? (Use your name or a team name)"
|
prompt: "What should agents call you? (Use your name or a team name)"
|
||||||
|
|
@ -23,3 +23,13 @@ output_folder:
|
||||||
prompt: "Where should output files be saved?"
|
prompt: "Where should output files be saved?"
|
||||||
default: "_bmad-output"
|
default: "_bmad-output"
|
||||||
result: "{project-root}/{value}"
|
result: "{project-root}/{value}"
|
||||||
|
|
||||||
|
tool_supports_subagents:
|
||||||
|
prompt: "Subagents are supported by the LLM or Tool I will be using?"
|
||||||
|
default: true
|
||||||
|
result: "{value}"
|
||||||
|
|
||||||
|
tool_supports_agent_teams:
|
||||||
|
prompt: "Agent Teams are supported by the LLM or Tool I will be using?"
|
||||||
|
default: false
|
||||||
|
result: "{value}"
|
||||||
|
|
|
||||||
|
|
@ -57,7 +57,6 @@ No extra text, no explanations, no markdown wrapping.</output-format>
|
||||||
</flow>
|
</flow>
|
||||||
|
|
||||||
<halt-conditions>
|
<halt-conditions>
|
||||||
<condition>HALT if zero findings - this is suspicious, re-analyze or ask for guidance</condition>
|
|
||||||
<condition>HALT if content is empty or unreadable</condition>
|
<condition>HALT if content is empty or unreadable</condition>
|
||||||
</halt-conditions>
|
</halt-conditions>
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -29,23 +29,30 @@ Initialize the brainstorming workflow by detecting continuation state and settin
|
||||||
|
|
||||||
## INITIALIZATION SEQUENCE:
|
## INITIALIZATION SEQUENCE:
|
||||||
|
|
||||||
### 1. Check for Existing Workflow
|
### 1. Check for Existing Sessions
|
||||||
|
|
||||||
First, check if the output document already exists:
|
First, check the brainstorming sessions folder for existing sessions:
|
||||||
|
|
||||||
- Look for file at `{output_folder}/brainstorming/brainstorming-session-{{date}}.md`
|
- List all files in `{output_folder}/brainstorming/`
|
||||||
- If exists, read the complete file including frontmatter
|
- **DO NOT read any file contents** - only list filenames
|
||||||
- If not exists, this is a fresh workflow
|
- If files exist, identify the most recent by date/time in the filename
|
||||||
|
- If no files exist, this is a fresh workflow
|
||||||
|
|
||||||
### 2. Handle Continuation (If Document Exists)
|
### 2. Handle Existing Sessions (If Files Found)
|
||||||
|
|
||||||
If the document exists and has frontmatter with `stepsCompleted`:
|
If existing session files are found:
|
||||||
|
|
||||||
- **STOP here** and load `./step-01b-continue.md` immediately
|
- Display the most recent session filename (do NOT read its content)
|
||||||
- Do not proceed with any initialization tasks
|
- Ask the user: "Found existing session: `[filename]`. Would you like to:
|
||||||
- Let step-01b handle the continuation logic
|
**[1]** Continue this session
|
||||||
|
**[2]** Start a new session
|
||||||
|
**[3]** See all existing sessions"
|
||||||
|
|
||||||
### 3. Fresh Workflow Setup (If No Document)
|
- If user selects **[1]** (continue): Set `{brainstorming_session_output_file}` to that file path and load `./step-01b-continue.md`
|
||||||
|
- If user selects **[2]** (new): Generate new filename with current date/time and proceed to step 3
|
||||||
|
- If user selects **[3]** (see all): List all session filenames and ask which to continue or if new
|
||||||
|
|
||||||
|
### 3. Fresh Workflow Setup (If No Files or User Chooses New)
|
||||||
|
|
||||||
If no document exists or no `stepsCompleted` in frontmatter:
|
If no document exists or no `stepsCompleted` in frontmatter:
|
||||||
|
|
||||||
|
|
@ -55,10 +62,10 @@ Create the brainstorming session document:
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
# Create directory if needed
|
# Create directory if needed
|
||||||
mkdir -p "$(dirname "{output_folder}/brainstorming/brainstorming-session-{{date}}.md")"
|
mkdir -p "$(dirname "{brainstorming_session_output_file}")"
|
||||||
|
|
||||||
# Initialize from template
|
# Initialize from template
|
||||||
cp "{template_path}" "{output_folder}/brainstorming/brainstorming-session-{{date}}.md"
|
cp "{template_path}" "{brainstorming_session_output_file}"
|
||||||
```
|
```
|
||||||
|
|
||||||
#### B. Context File Check and Loading
|
#### B. Context File Check and Loading
|
||||||
|
|
@ -134,7 +141,7 @@ _[Content based on conversation about session parameters and facilitator approac
|
||||||
|
|
||||||
## APPEND TO DOCUMENT:
|
## APPEND TO DOCUMENT:
|
||||||
|
|
||||||
When user selects approach, append the session overview content directly to `{output_folder}/brainstorming/brainstorming-session-{{date}}.md` using the structure from above.
|
When user selects approach, append the session overview content directly to `{brainstorming_session_output_file}` using the structure from above.
|
||||||
|
|
||||||
### E. Continue to Technique Selection
|
### E. Continue to Technique Selection
|
||||||
|
|
||||||
|
|
@ -152,7 +159,7 @@ Which approach appeals to you most? (Enter 1-4)"
|
||||||
|
|
||||||
#### When user selects approach number:
|
#### When user selects approach number:
|
||||||
|
|
||||||
- **Append initial session overview to `{output_folder}/brainstorming/brainstorming-session-{{date}}.md`**
|
- **Append initial session overview to `{brainstorming_session_output_file}`**
|
||||||
- **Update frontmatter:** `stepsCompleted: [1]`, `selected_approach: '[selected approach]'`
|
- **Update frontmatter:** `stepsCompleted: [1]`, `selected_approach: '[selected approach]'`
|
||||||
- **Load the appropriate step-02 file** based on selection
|
- **Load the appropriate step-02 file** based on selection
|
||||||
|
|
||||||
|
|
@ -167,7 +174,9 @@ After user selects approach number:
|
||||||
|
|
||||||
## SUCCESS METRICS:
|
## SUCCESS METRICS:
|
||||||
|
|
||||||
✅ Existing workflow detected and continuation handled properly
|
✅ Existing sessions detected without reading file contents
|
||||||
|
✅ User prompted to continue existing session or start new
|
||||||
|
✅ Correct session file selected for continuation
|
||||||
✅ Fresh workflow initialized with correct document structure
|
✅ Fresh workflow initialized with correct document structure
|
||||||
✅ Session context gathered and understood clearly
|
✅ Session context gathered and understood clearly
|
||||||
✅ User's approach selection captured and routed correctly
|
✅ User's approach selection captured and routed correctly
|
||||||
|
|
@ -176,7 +185,9 @@ After user selects approach number:
|
||||||
|
|
||||||
## FAILURE MODES:
|
## FAILURE MODES:
|
||||||
|
|
||||||
❌ Not checking for existing document before creating new one
|
❌ Reading file contents during session detection (wastes context)
|
||||||
|
❌ Not asking user before continuing existing session
|
||||||
|
❌ Not properly routing user's continue/new session selection
|
||||||
❌ Missing continuation detection leading to duplicate work
|
❌ Missing continuation detection leading to duplicate work
|
||||||
❌ Insufficient session context gathering
|
❌ Insufficient session context gathering
|
||||||
❌ Not properly routing user's approach selection
|
❌ Not properly routing user's approach selection
|
||||||
|
|
@ -184,7 +195,9 @@ After user selects approach number:
|
||||||
|
|
||||||
## SESSION SETUP PROTOCOLS:
|
## SESSION SETUP PROTOCOLS:
|
||||||
|
|
||||||
- Always verify document existence before initialization
|
- Always list sessions folder WITHOUT reading file contents
|
||||||
|
- Ask user before continuing any existing session
|
||||||
|
- Only load continue step after user confirms
|
||||||
- Load brain techniques CSV only when needed for technique presentation
|
- Load brain techniques CSV only when needed for technique presentation
|
||||||
- Use collaborative facilitation language throughout
|
- Use collaborative facilitation language throughout
|
||||||
- Maintain psychological safety for creative exploration
|
- Maintain psychological safety for creative exploration
|
||||||
|
|
|
||||||
|
|
@ -35,7 +35,7 @@ Load existing document and analyze current state:
|
||||||
|
|
||||||
**Document Analysis:**
|
**Document Analysis:**
|
||||||
|
|
||||||
- Read existing `{output_folder}/brainstorming/brainstorming-session-{{date}}.md`
|
- Read existing `{brainstorming_session_output_file}`
|
||||||
- Examine frontmatter for `stepsCompleted`, `session_topic`, `session_goals`
|
- Examine frontmatter for `stepsCompleted`, `session_topic`, `session_goals`
|
||||||
- Review content to understand session progress and outcomes
|
- Review content to understand session progress and outcomes
|
||||||
- Identify current stage and next logical steps
|
- Identify current stage and next logical steps
|
||||||
|
|
|
||||||
|
|
@ -296,7 +296,7 @@ After final technique element:
|
||||||
|
|
||||||
#### If 'C' (Move to organization):
|
#### If 'C' (Move to organization):
|
||||||
|
|
||||||
- **Append the technique execution content to `{output_folder}/brainstorming/brainstorming-session-{{date}}.md`**
|
- **Append the technique execution content to `{brainstorming_session_output_file}`**
|
||||||
- **Update frontmatter:** `stepsCompleted: [1, 2, 3]`
|
- **Update frontmatter:** `stepsCompleted: [1, 2, 3]`
|
||||||
- **Load:** `./step-04-idea-organization.md`
|
- **Load:** `./step-04-idea-organization.md`
|
||||||
|
|
||||||
|
|
@ -356,7 +356,7 @@ _[Short narrative describing the user and AI collaboration journey - what made t
|
||||||
|
|
||||||
## APPEND TO DOCUMENT:
|
## APPEND TO DOCUMENT:
|
||||||
|
|
||||||
When user selects 'C', append the content directly to `{output_folder}/brainstorming/brainstorming-session-{{date}}.md` using the structure from above.
|
When user selects 'C', append the content directly to `{brainstorming_session_output_file}` using the structure from above.
|
||||||
|
|
||||||
## SUCCESS METRICS:
|
## SUCCESS METRICS:
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -253,14 +253,14 @@ Provide final session wrap-up and forward guidance:
|
||||||
|
|
||||||
#### If [C] Complete:
|
#### If [C] Complete:
|
||||||
|
|
||||||
- **Append the final session content to `{output_folder}/brainstorming/brainstorming-session-{{date}}.md`**
|
- **Append the final session content to `{brainstorming_session_output_file}`**
|
||||||
- Update frontmatter: `stepsCompleted: [1, 2, 3, 4]`
|
- Update frontmatter: `stepsCompleted: [1, 2, 3, 4]`
|
||||||
- Set `session_active: false` and `workflow_completed: true`
|
- Set `session_active: false` and `workflow_completed: true`
|
||||||
- Complete workflow with positive closure message
|
- Complete workflow with positive closure message
|
||||||
|
|
||||||
## APPEND TO DOCUMENT:
|
## APPEND TO DOCUMENT:
|
||||||
|
|
||||||
When user selects 'C', append the content directly to `{output_folder}/brainstorming/brainstorming-session-{{date}}.md` using the structure from step 7.
|
When user selects 'C', append the content directly to `{brainstorming_session_output_file}` using the structure from step 7.
|
||||||
|
|
||||||
## SUCCESS METRICS:
|
## SUCCESS METRICS:
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -45,7 +45,9 @@ Load config from `{project-root}/_bmad/core/config.yaml` and resolve:
|
||||||
- `installed_path` = `{project-root}/_bmad/core/workflows/brainstorming`
|
- `installed_path` = `{project-root}/_bmad/core/workflows/brainstorming`
|
||||||
- `template_path` = `{installed_path}/template.md`
|
- `template_path` = `{installed_path}/template.md`
|
||||||
- `brain_techniques_path` = `{installed_path}/brain-methods.csv`
|
- `brain_techniques_path` = `{installed_path}/brain-methods.csv`
|
||||||
- `default_output_file` = `{output_folder}/brainstorming/brainstorming-session-{{date}}.md`
|
- `brainstorming_session_output_file` = `{output_folder}/brainstorming/brainstorming-session-{{date}}-{{time}}.md` (evaluated once at workflow start)
|
||||||
|
|
||||||
|
All steps MUST reference `{brainstorming_session_output_file}` instead of the full path pattern.
|
||||||
- `context_file` = Optional context file path from workflow invocation for project-specific guidance
|
- `context_file` = Optional context file path from workflow invocation for project-specific guidance
|
||||||
- `advancedElicitationTask` = `{project-root}/_bmad/core/workflows/advanced-elicitation/workflow.xml`
|
- `advancedElicitationTask` = `{project-root}/_bmad/core/workflows/advanced-elicitation/workflow.xml`
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -6,7 +6,7 @@ description: '{{description}}'
|
||||||
You must fully embody this agent's persona and follow all activation instructions exactly as specified. NEVER break character until given an exit command.
|
You must fully embody this agent's persona and follow all activation instructions exactly as specified. NEVER break character until given an exit command.
|
||||||
|
|
||||||
<agent-activation CRITICAL="TRUE">
|
<agent-activation CRITICAL="TRUE">
|
||||||
1. LOAD the FULL agent file from @_bmad/{{module}}/agents/{{path}}
|
1. LOAD the FULL agent file from {project-root}/_bmad/{{module}}/agents/{{path}}
|
||||||
2. READ its entire contents - this contains the complete agent persona, menu, and instructions
|
2. READ its entire contents - this contains the complete agent persona, menu, and instructions
|
||||||
3. Execute ALL activation steps exactly as written in the agent file
|
3. Execute ALL activation steps exactly as written in the agent file
|
||||||
4. Follow the agent's persona and menu system precisely
|
4. Follow the agent's persona and menu system precisely
|
||||||
|
|
|
||||||
|
|
@ -6,9 +6,9 @@ description: '{{description}}'
|
||||||
IT IS CRITICAL THAT YOU FOLLOW THESE STEPS - while staying in character as the current agent persona you may have loaded:
|
IT IS CRITICAL THAT YOU FOLLOW THESE STEPS - while staying in character as the current agent persona you may have loaded:
|
||||||
|
|
||||||
<steps CRITICAL="TRUE">
|
<steps CRITICAL="TRUE">
|
||||||
1. Always LOAD the FULL @{project-root}/{{bmadFolderName}}/core/tasks/workflow.xml
|
1. Always LOAD the FULL {project-root}/{{bmadFolderName}}/core/tasks/workflow.xml
|
||||||
2. READ its entire contents - this is the CORE OS for EXECUTING the specific workflow-config @{project-root}/{{bmadFolderName}}/{{path}}
|
2. READ its entire contents - this is the CORE OS for EXECUTING the specific workflow-config {project-root}/{{bmadFolderName}}/{{path}}
|
||||||
3. Pass the yaml path @{project-root}/{{bmadFolderName}}/{{path}} as 'workflow-config' parameter to the workflow.xml instructions
|
3. Pass the yaml path {project-root}/{{bmadFolderName}}/{{path}} as 'workflow-config' parameter to the workflow.xml instructions
|
||||||
4. Follow workflow.xml instructions EXACTLY as written to process and follow the specific workflow config and its instructions
|
4. Follow workflow.xml instructions EXACTLY as written to process and follow the specific workflow config and its instructions
|
||||||
5. Save outputs after EACH section when generating any documents from templates
|
5. Save outputs after EACH section when generating any documents from templates
|
||||||
</steps>
|
</steps>
|
||||||
|
|
|
||||||
|
|
@ -3,4 +3,4 @@ name: '{{name}}'
|
||||||
description: '{{description}}'
|
description: '{{description}}'
|
||||||
---
|
---
|
||||||
|
|
||||||
IT IS CRITICAL THAT YOU FOLLOW THIS COMMAND: LOAD the FULL @{project-root}/{{bmadFolderName}}/{{path}}, READ its entire contents and follow its directions exactly!
|
IT IS CRITICAL THAT YOU FOLLOW THIS COMMAND: LOAD the FULL {project-root}/{{bmadFolderName}}/{{path}}, READ its entire contents and follow its directions exactly!
|
||||||
|
|
|
||||||
|
|
@ -5,8 +5,8 @@ description: '{{description}}'
|
||||||
IT IS CRITICAL THAT YOU FOLLOW THESE STEPS - while staying in character as the current agent persona you may have loaded:
|
IT IS CRITICAL THAT YOU FOLLOW THESE STEPS - while staying in character as the current agent persona you may have loaded:
|
||||||
|
|
||||||
<steps CRITICAL="TRUE">
|
<steps CRITICAL="TRUE">
|
||||||
1. Always LOAD the FULL @_bmad/core/tasks/workflow.xml
|
1. Always LOAD the FULL {project-root}/_bmad/core/tasks/workflow.xml
|
||||||
2. READ its entire contents - this is the CORE OS for EXECUTING the specific workflow-config @{{workflow_path}}
|
2. READ its entire contents - this is the CORE OS for EXECUTING the specific workflow-config {project-root}/{{workflow_path}}
|
||||||
3. Pass the yaml path {{workflow_path}} as 'workflow-config' parameter to the workflow.xml instructions
|
3. Pass the yaml path {{workflow_path}} as 'workflow-config' parameter to the workflow.xml instructions
|
||||||
4. Follow workflow.xml instructions EXACTLY as written to process and follow the specific workflow config and its instructions
|
4. Follow workflow.xml instructions EXACTLY as written to process and follow the specific workflow config and its instructions
|
||||||
5. Save outputs after EACH section when generating any documents from templates
|
5. Save outputs after EACH section when generating any documents from templates
|
||||||
|
|
|
||||||
|
|
@ -2,4 +2,4 @@
|
||||||
description: '{{description}}'
|
description: '{{description}}'
|
||||||
---
|
---
|
||||||
|
|
||||||
IT IS CRITICAL THAT YOU FOLLOW THIS COMMAND: LOAD the FULL @{{workflow_path}}, READ its entire contents and follow its directions exactly!
|
IT IS CRITICAL THAT YOU FOLLOW THIS COMMAND: LOAD the FULL {project-root}/{{workflow_path}}, READ its entire contents and follow its directions exactly!
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue