Compare commits

..

17 Commits

Author SHA1 Message Date
Sidharth Arora 888583c40f
Merge f096714369 into 43cfc01f2c 2026-02-28 16:37:06 +01:00
sidtheone f096714369 Revert "feat: add Claude Code hotfix for interaction_style variable reference"
This reverts commit 8d690da99a.
2026-02-28 16:37:01 +01:00
sidtheone 8d690da99a feat: add Claude Code hotfix for interaction_style variable reference
Standalone instruction file that patches existing BMAD installations
to use explicit {interaction_style} session variable lookup with
open-mode default fallback.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-28 16:35:37 +01:00
sidtheone cc59e1cdb8 feat: change interaction_style default from structured to open
- Update module.yaml default to "open" and reorder options
- Change fallback in all 40 RULE directives from "default to structured
  mode" to "default to open mode"

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-28 13:57:23 +01:00
sidtheone 079bcc98d4 fix: update remaining src files and remove duplicate RULE lines from merge
- Apply explicit {interaction_style} variable reference to handler-action,
  handler-exec, handler-workflow, agent-command-header, and workflow.xml
- Remove old duplicate RULE lines left over from merge conflict resolution
  in 10 template files (default-task/tool, rovodev, opencode-workflow*,
  gemini-agent/task/tool/workflow/workflow-yaml)

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-28 13:54:52 +01:00
sidtheone f6ff60d165 merge: bring in platform-specific templates and explicit variable references
Merges feature/platform-specific-structured-interaction which adds:
- Per-IDE template variants (claude, opencode, gemini, kiro, etc.)
- Explicit {interaction_style} session variable lookup in all RULE directives
- Fallback default to structured mode when variable is undetermined

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-28 13:53:09 +01:00
sidtheone 536c484c7d fix: use explicit variable reference in interaction_style RULE
Change all 34 RULE directives from bare "When interaction_style is"
to explicit "Check your stored {interaction_style} session variable
from activation step 2" with a fallback default to structured mode.

Addresses cynical review finding that LLMs struggle with implicit
natural-language conditionals and need explicit variable lookup
instructions plus failure mode handling.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-28 13:52:30 +01:00
sidtheone 1cfde63aee fix: add interaction_style rule to activation-rules with {braces}
Matches the established pattern where all session variables use
{braces} when referenced (like {communication_language} and
{user_name}). This ensures compiled agents enforce structured
interaction consistently with the template-based RULE directives.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-28 13:42:32 +01:00
sidtheone 6feeec9e75 style: add EVERY to all RULE directives for consistency
Standardize all 27 template RULE lines to use "EVERY question"
phrasing. The free-form escape clause prevents over-restriction
while EVERY strengthens the default structured behavior.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-28 13:30:38 +01:00
sidtheone fd80bb6259 style: backtick tool names in opencode templates for clarity
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-28 12:37:48 +01:00
sidtheone 85e81389ee feat: add dedicated Claude Code templates with AskUserQuestion tool
Create claude-specific template set (agent, task, tool, workflow,
workflow-yaml) that explicitly references the `AskUserQuestion` tool,
matching how gemini/kiro/opencode each have their own templates with
IDE-specific tool names.

- Change Claude Code template_type from "default" to "claude" in
  platform-codes.yaml
- Replace symlinks with real template files
- Create new claude-task.md and claude-tool.md
- default-* templates remain as generic fallbacks for cursor, auggie,
  and other IDEs using numbered-list wording
- Fix default-tool.md RULE placement (move before execution instructions)

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-28 12:36:54 +01:00
sidtheone dc6c1a1b45 refactor: simplify RULE wording with free-form escape clause
Replace emphatic "EVERY...MUST...Do NOT...No exceptions" phrasing with
clearer natural language that includes an explicit free-form override.
Research shows single clear sentences with conditional logic outperform
stacked absolute directives for LLM compliance.

New wording: "questions to the user MUST use structured options with a
numbered list unless the workflow or user explicitly requests free-form
input."

Also extracts RULE from step 4 in gemini-task.toml to standalone.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-28 12:24:29 +01:00
sidtheone a04810f8ec Merge remote-tracking branch 'upstream/main' into feature/platform-specific-structured-interaction 2026-02-28 09:30:26 +01:00
sidtheone 57018815f6 fix: address PR review — standardize templates and document config settings
- Replace Claude-specific AskUserQuestion in default-* templates with generic
  numbered-list wording since these are universal fallbacks for all IDEs
- Fix hardcoded _bmad paths to use {{bmadFolderName}} in antigravity, rovodev,
  trae, windsurf-workflow, and default-agent templates
- Extract RULE from numbered steps to standalone directive in gemini and
  opencode workflow/tool templates
- Standardize RULE wording: add "Do NOT ask open-ended inline questions" to
  all templates missing it for consistency
- Move RULE before execution instructions in default-task and rovodev templates
- Add {document_output_language} to activation-steps session variables
- Add interaction_style confirmation to gemini-agent preflight checklist
- Document all config settings including interaction_style in install guide

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-28 09:29:44 +01:00
sidtheone 6522e8e92a feat: use platform-specific tool names for Gemini (ask_user) and OpenCode (question)
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-28 01:06:05 +01:00
sidtheone 3d4da09ac3 test: IDE templates + interaction_style config only
Isolated test branch with just IDE template rules and module.yaml config.
No core agent-component or workflow.xml changes.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-28 00:55:47 +01:00
sidtheone b7f18ba28b feat: add configurable structured interaction directive to agent activation
Adds a new `interaction_style` config option (structured/open) to core
module.yaml so users can choose how agents ask questions. When set to
"structured" (default), agents present numbered option lists and wait
for selection. When "open", agents ask questions naturally.

Changes:
- src/core/module.yaml: new interaction_style config with single-select
- activation-rules.txt: conditional rule based on {interaction_style}
- activation-steps.txt: include {interaction_style} in stored variables

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-28 00:48:12 +01:00
17 changed files with 41 additions and 80 deletions

View File

@ -1,20 +1,5 @@
# 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]
### 🎁 Features

4
package-lock.json generated
View File

@ -1,12 +1,12 @@
{
"name": "bmad-method",
"version": "6.0.4",
"version": "6.0.3",
"lockfileVersion": 3,
"requires": true,
"packages": {
"": {
"name": "bmad-method",
"version": "6.0.4",
"version": "6.0.3",
"license": "MIT",
"dependencies": {
"@clack/core": "^1.0.0",

View File

@ -1,7 +1,7 @@
{
"$schema": "https://json.schemastore.org/package.json",
"name": "bmad-method",
"version": "6.0.4",
"version": "6.0.3",
"description": "Breakthrough Method of Agile AI-driven Development",
"keywords": [
"agile",

View File

@ -2,7 +2,7 @@ code: core
name: "BMad Core Module"
header: "BMad Core Configuration"
subheader: "Configure the core settings for your BMad installation.\nThese settings will be used across all installed bmad skills, workflows, and agents."
subheader: "Configure the core settings for your BMad installation.\nThese settings will be used across all modules and agents."
user_name:
prompt: "What should agents call you? (Use your name or a team name)"
@ -33,13 +33,3 @@ interaction_style:
label: "Open - Natural conversational questions (recommended)"
- value: "structured"
label: "Structured - Numbered option lists"
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}"

View File

@ -57,6 +57,7 @@ No extra text, no explanations, no markdown wrapping.</output-format>
</flow>
<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>
</halt-conditions>

View File

@ -29,30 +29,23 @@ Initialize the brainstorming workflow by detecting continuation state and settin
## INITIALIZATION SEQUENCE:
### 1. Check for Existing Sessions
### 1. Check for Existing Workflow
First, check the brainstorming sessions folder for existing sessions:
First, check if the output document already exists:
- List all files in `{output_folder}/brainstorming/`
- **DO NOT read any file contents** - only list filenames
- If files exist, identify the most recent by date/time in the filename
- If no files exist, this is a fresh workflow
- Look for file at `{output_folder}/brainstorming/brainstorming-session-{{date}}.md`
- If exists, read the complete file including frontmatter
- If not exists, this is a fresh workflow
### 2. Handle Existing Sessions (If Files Found)
### 2. Handle Continuation (If Document Exists)
If existing session files are found:
If the document exists and has frontmatter with `stepsCompleted`:
- Display the most recent session filename (do NOT read its content)
- Ask the user: "Found existing session: `[filename]`. Would you like to:
**[1]** Continue this session
**[2]** Start a new session
**[3]** See all existing sessions"
- **STOP here** and load `./step-01b-continue.md` immediately
- Do not proceed with any initialization tasks
- Let step-01b handle the continuation logic
- 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)
### 3. Fresh Workflow Setup (If No Document)
If no document exists or no `stepsCompleted` in frontmatter:
@ -62,10 +55,10 @@ Create the brainstorming session document:
```bash
# Create directory if needed
mkdir -p "$(dirname "{brainstorming_session_output_file}")"
mkdir -p "$(dirname "{output_folder}/brainstorming/brainstorming-session-{{date}}.md")"
# Initialize from template
cp "{template_path}" "{brainstorming_session_output_file}"
cp "{template_path}" "{output_folder}/brainstorming/brainstorming-session-{{date}}.md"
```
#### B. Context File Check and Loading
@ -141,7 +134,7 @@ _[Content based on conversation about session parameters and facilitator approac
## APPEND TO DOCUMENT:
When user selects approach, append the session overview content directly to `{brainstorming_session_output_file}` using the structure from above.
When user selects approach, append the session overview content directly to `{output_folder}/brainstorming/brainstorming-session-{{date}}.md` using the structure from above.
### E. Continue to Technique Selection
@ -159,7 +152,7 @@ Which approach appeals to you most? (Enter 1-4)"
#### When user selects approach number:
- **Append initial session overview to `{brainstorming_session_output_file}`**
- **Append initial session overview to `{output_folder}/brainstorming/brainstorming-session-{{date}}.md`**
- **Update frontmatter:** `stepsCompleted: [1]`, `selected_approach: '[selected approach]'`
- **Load the appropriate step-02 file** based on selection
@ -174,9 +167,7 @@ After user selects approach number:
## SUCCESS METRICS:
✅ Existing sessions detected without reading file contents
✅ User prompted to continue existing session or start new
✅ Correct session file selected for continuation
✅ Existing workflow detected and continuation handled properly
✅ Fresh workflow initialized with correct document structure
✅ Session context gathered and understood clearly
✅ User's approach selection captured and routed correctly
@ -185,9 +176,7 @@ After user selects approach number:
## FAILURE MODES:
❌ Reading file contents during session detection (wastes context)
❌ Not asking user before continuing existing session
❌ Not properly routing user's continue/new session selection
❌ Not checking for existing document before creating new one
❌ Missing continuation detection leading to duplicate work
❌ Insufficient session context gathering
❌ Not properly routing user's approach selection
@ -195,9 +184,7 @@ After user selects approach number:
## SESSION SETUP PROTOCOLS:
- Always list sessions folder WITHOUT reading file contents
- Ask user before continuing any existing session
- Only load continue step after user confirms
- Always verify document existence before initialization
- Load brain techniques CSV only when needed for technique presentation
- Use collaborative facilitation language throughout
- Maintain psychological safety for creative exploration

View File

@ -35,7 +35,7 @@ Load existing document and analyze current state:
**Document Analysis:**
- Read existing `{brainstorming_session_output_file}`
- Read existing `{output_folder}/brainstorming/brainstorming-session-{{date}}.md`
- Examine frontmatter for `stepsCompleted`, `session_topic`, `session_goals`
- Review content to understand session progress and outcomes
- Identify current stage and next logical steps

View File

@ -296,7 +296,7 @@ After final technique element:
#### If 'C' (Move to organization):
- **Append the technique execution content to `{brainstorming_session_output_file}`**
- **Append the technique execution content to `{output_folder}/brainstorming/brainstorming-session-{{date}}.md`**
- **Update frontmatter:** `stepsCompleted: [1, 2, 3]`
- **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:
When user selects 'C', append the content directly to `{brainstorming_session_output_file}` using the structure from above.
When user selects 'C', append the content directly to `{output_folder}/brainstorming/brainstorming-session-{{date}}.md` using the structure from above.
## SUCCESS METRICS:

View File

@ -253,14 +253,14 @@ Provide final session wrap-up and forward guidance:
#### If [C] Complete:
- **Append the final session content to `{brainstorming_session_output_file}`**
- **Append the final session content to `{output_folder}/brainstorming/brainstorming-session-{{date}}.md`**
- Update frontmatter: `stepsCompleted: [1, 2, 3, 4]`
- Set `session_active: false` and `workflow_completed: true`
- Complete workflow with positive closure message
## APPEND TO DOCUMENT:
When user selects 'C', append the content directly to `{brainstorming_session_output_file}` using the structure from step 7.
When user selects 'C', append the content directly to `{output_folder}/brainstorming/brainstorming-session-{{date}}.md` using the structure from step 7.
## SUCCESS METRICS:

View File

@ -45,9 +45,7 @@ Load config from `{project-root}/_bmad/core/config.yaml` and resolve:
- `installed_path` = `{project-root}/_bmad/core/workflows/brainstorming`
- `template_path` = `{installed_path}/template.md`
- `brain_techniques_path` = `{installed_path}/brain-methods.csv`
- `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.
- `default_output_file` = `{output_folder}/brainstorming/brainstorming-session-{{date}}.md`
- `context_file` = Optional context file path from workflow invocation for project-specific guidance
- `advancedElicitationTask` = `{project-root}/_bmad/core/workflows/advanced-elicitation/workflow.xml`

View File

@ -8,7 +8,7 @@ You must fully embody this agent's persona and follow all activation instruction
RULE: Check your stored {interaction_style} session variable from activation step 2. When its value is "structured", EVERY question to the user MUST use structured options with a numbered list unless the workflow or user explicitly requests free-form input. If you cannot determine {interaction_style}, default to open mode.
<agent-activation CRITICAL="TRUE">
1. LOAD the FULL agent file from {project-root}/_bmad/{{module}}/agents/{{path}}
1. LOAD the FULL agent file from @_bmad/{{module}}/agents/{{path}}
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
4. Follow the agent's persona and menu system precisely

View File

@ -8,9 +8,9 @@ RULE: Check your stored {interaction_style} session variable from activation ste
IT IS CRITICAL THAT YOU FOLLOW THESE STEPS - while staying in character as the current agent persona you may have loaded:
<steps CRITICAL="TRUE">
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}}
3. Pass the yaml path {project-root}/{{bmadFolderName}}/{{path}} as 'workflow-config' parameter to the workflow.xml instructions
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}}
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
5. Save outputs after EACH section when generating any documents from templates
</steps>

View File

@ -5,4 +5,4 @@ description: '{{description}}'
RULE: Check your stored {interaction_style} session variable from activation step 2. When its value is "structured", EVERY question to the user MUST call the `AskUserQuestion` tool unless the workflow or user explicitly requests free-form input. If you cannot determine {interaction_style}, default to open mode.
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!

View File

@ -8,9 +8,9 @@ RULE: Check your stored {interaction_style} session variable from activation ste
IT IS CRITICAL THAT YOU FOLLOW THESE STEPS - while staying in character as the current agent persona you may have loaded:
<steps CRITICAL="TRUE">
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}}
3. Pass the yaml path {project-root}/{{bmadFolderName}}/{{path}} as 'workflow-config' parameter to the workflow.xml instructions
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}}
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
5. Save outputs after EACH section when generating any documents from templates
</steps>

View File

@ -5,4 +5,4 @@ description: '{{description}}'
RULE: Check your stored {interaction_style} session variable from activation step 2. When its value is "structured", EVERY question to the user MUST use structured options with a numbered list unless the workflow or user explicitly requests free-form input. If you cannot determine {interaction_style}, default to open mode.
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!

View File

@ -7,8 +7,8 @@ RULE: Check your stored {interaction_style} session variable from activation ste
IT IS CRITICAL THAT YOU FOLLOW THESE STEPS - while staying in character as the current agent persona you may have loaded:
<steps CRITICAL="TRUE">
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 {project-root}/{{workflow_path}}
1. Always LOAD the FULL @_bmad/core/tasks/workflow.xml
2. READ its entire contents - this is the CORE OS for EXECUTING the specific workflow-config @{{workflow_path}}
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
5. Save outputs after EACH section when generating any documents from templates

View File

@ -4,4 +4,4 @@ description: '{{description}}'
RULE: Check your stored {interaction_style} session variable from activation step 2. When its value is "structured", EVERY question to the user MUST use structured options with a numbered list unless the workflow or user explicitly requests free-form input. If you cannot determine {interaction_style}, default to open mode.
IT IS CRITICAL THAT YOU FOLLOW THIS COMMAND: LOAD the FULL {project-root}/{{workflow_path}}, READ its entire contents and follow its directions exactly!
IT IS CRITICAL THAT YOU FOLLOW THIS COMMAND: LOAD the FULL @{{workflow_path}}, READ its entire contents and follow its directions exactly!