Compare commits

...

14 Commits

Author SHA1 Message Date
Sidharth Arora 3e393ef39d
Merge cc59e1cdb8 into 43cfc01f2c 2026-02-28 14:52:17 +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
Alex Verkhovsky 43cfc01f2c
feat(core): add edge case hunter review task (#1790)
Method-driven review that exhaustively walks branching paths and
boundary conditions, reporting only unhandled gaps. Orthogonal to
the attitude-driven adversarial review for complementary coverage.
2026-02-27 23:08:30 -06: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
47 changed files with 205 additions and 48 deletions

View File

@ -57,9 +57,24 @@ Each tool has its own way of integrating commands. The installer creates tiny pr
The installer shows available modules. Select whichever ones you need — most users just want **BMad Method** (the software development module). The installer shows available modules. Select whichever ones you need — most users just want **BMad Method** (the software development module).
### 5. Follow the Prompts ### 5. Configure Settings
The installer guides you through the rest — custom content, settings, etc. The installer prompts you for core settings that control how agents behave:
| Setting | Default | Description |
| ------- | ------- | ----------- |
| **User Name** | `BMad` | What agents call you — use your name or a team name |
| **Communication Language** | `English` | Language agents use when chatting with you |
| **Document Output Language** | `English` | Language for generated documents and artifacts |
| **Output Folder** | `_bmad-output` | Where agents save generated files |
| **Interaction Style** | `structured` | How agents ask you questions (see below) |
**Interaction Style** controls how agents present choices:
- **Structured** (recommended) — Agents present numbered option lists for every question, using your IDE's native question tool when available. This keeps conversations focused and reduces ambiguity.
- **Open** — Agents ask natural conversational questions. More flexible but can lead to longer back-and-forth.
These settings are saved to `_bmad/<module>/config.yaml` and can be changed later by editing that file and rerunning the installer.
## What You Get ## What You Get

View File

@ -7,3 +7,4 @@ core,anytime,Shard Document,SD,,_bmad/core/tasks/shard-doc.xml,bmad-shard-doc,fa
core,anytime,Editorial Review - Prose,EP,,_bmad/core/tasks/editorial-review-prose.xml,bmad-editorial-review-prose,false,,,"Review prose for clarity, tone, and communication issues. Use after drafting to polish written content.",report located with target document,"three-column markdown table with suggested fixes", core,anytime,Editorial Review - Prose,EP,,_bmad/core/tasks/editorial-review-prose.xml,bmad-editorial-review-prose,false,,,"Review prose for clarity, tone, and communication issues. Use after drafting to polish written content.",report located with target document,"three-column markdown table with suggested fixes",
core,anytime,Editorial Review - Structure,ES,,_bmad/core/tasks/editorial-review-structure.xml,bmad-editorial-review-structure,false,,,"Propose cuts, reorganization, and simplification while preserving comprehension. Use when doc produced from multiple subprocesses or needs structural improvement.",report located with target document, core,anytime,Editorial Review - Structure,ES,,_bmad/core/tasks/editorial-review-structure.xml,bmad-editorial-review-structure,false,,,"Propose cuts, reorganization, and simplification while preserving comprehension. Use when doc produced from multiple subprocesses or needs structural improvement.",report located with target document,
core,anytime,Adversarial Review (General),AR,,_bmad/core/tasks/review-adversarial-general.xml,bmad-review-adversarial-general,false,,,"Review content critically to find issues and weaknesses. Use for quality assurance or before finalizing deliverables. Code Review in other modules run this automatically, but its useful also for document reviews",, core,anytime,Adversarial Review (General),AR,,_bmad/core/tasks/review-adversarial-general.xml,bmad-review-adversarial-general,false,,,"Review content critically to find issues and weaknesses. Use for quality assurance or before finalizing deliverables. Code Review in other modules run this automatically, but its useful also for document reviews",,
core,anytime,Edge Case Hunter Review,ECH,,_bmad/core/tasks/review-edge-case-hunter.xml,bmad-review-edge-case-hunter,false,,,"Walk every branching path and boundary condition in code, report only unhandled edge cases. Use alongside adversarial review for orthogonal coverage - method-driven not attitude-driven.",,

Can't render this file because it has a wrong number of fields in line 2.

View File

@ -26,10 +26,10 @@ output_folder:
interaction_style: interaction_style:
prompt: "How should agents ask you questions?" prompt: "How should agents ask you questions?"
default: "structured" default: "open"
result: "{value}" result: "{value}"
single-select: single-select:
- value: "structured"
label: "Structured - Numbered option lists (recommended)"
- value: "open" - value: "open"
label: "Open - Natural conversational questions" label: "Open - Natural conversational questions (recommended)"
- value: "structured"
label: "Structured - Numbered option lists"

View File

@ -0,0 +1,64 @@
<!-- if possible, run this in a separate subagent or process with read access to the project,
but no context except the content to review -->
<task id="_bmad/core/tasks/review-edge-case-hunter.xml" name="Edge Case Hunter Review"
description="Walk every branching path and boundary condition in content, report only unhandled edge cases. Orthogonal to adversarial review - method-driven not attitude-driven.">
<objective>You are a pure path tracer. Never comment on whether code is good or bad; only list missing handling.
When a diff is provided, scan only the diff hunks and list boundaries that are directly reachable from the changed lines and lack an explicit guard in the diff.
When no diff is provided (full file or function), treat the entire provided content as the scope.
Ignore the rest of the codebase unless the provided content explicitly references external functions.</objective>
<inputs>
<input name="content" desc="Content to review - diff, full file, or function" />
<input name="also_consider" required="false"
desc="Optional areas to keep in mind during review alongside normal edge-case analysis" />
</inputs>
<output-format>Return ONLY a valid JSON array of objects. Each object must contain exactly these four fields and nothing else:
{
"location": "file:line",
"trigger_condition": "one-line description (max 15 words)",
"guard_snippet": "minimal code sketch that closes the gap",
"potential_consequence": "what could actually go wrong (max 15 words)"
}
No extra text, no explanations, no markdown wrapping.</output-format>
<llm critical="true">
<i>MANDATORY: Execute ALL steps in the flow section IN EXACT ORDER</i>
<i>DO NOT skip steps or change the sequence</i>
<i>HALT immediately when halt-conditions are met</i>
<i>Each action xml tag within step xml tag is a REQUIRED action to complete that step</i>
<i>Your method is exhaustive path enumeration — mechanically walk every branch, not hunt by intuition</i>
<i>Trace each branching path: conditionals, switches, early returns, guard clauses, loops, error handlers</i>
<i>Trace each boundary condition: null, undefined, empty, zero, negative, overflow, max-length, type coercion, concurrency, timing</i>
<i>Report ONLY paths and conditions that lack handling — discard handled ones silently</i>
<i>Do NOT editorialize or add filler — findings only</i>
</llm>
<flow>
<step n="1" title="Receive Content">
<action>Load the content to review from provided input or context</action>
<action>If content to review is empty, ask for clarification and abort task</action>
<action>Identify content type (diff, full file, or function) to determine scope rules</action>
</step>
<step n="2" title="Exhaustive Path Analysis" critical="true">
<mandate>Walk every branching path and boundary condition within scope - report only unhandled ones</mandate>
<action>If also_consider input was provided, incorporate those areas into the analysis</action>
<action>Enumerate all branching paths and boundary conditions within scope: conditionals, switches, early returns, guard clauses, loops, error handlers, null/empty states, overflow, type edges, concurrency, timing</action>
<action>For each path: determine whether the content handles it</action>
<action>Collect only the unhandled paths as findings - discard handled ones silently</action>
</step>
<step n="3" title="Present Findings">
<action>Output findings as a JSON array following the output-format specification exactly</action>
</step>
</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>
</task>

View File

@ -2,6 +2,7 @@
<objective>Execute given workflow by loading its configuration, following instructions, and producing output</objective> <objective>Execute given workflow by loading its configuration, following instructions, and producing output</objective>
<llm critical="true"> <llm critical="true">
<mandate>RULE: Check your stored {interaction_style} session variable from activation step 2. When its value is "structured", EVERY question to the user MUST use the native question tool. No exceptions. No inline prompts. When {interaction_style} is "open", ask questions naturally in conversation. If you cannot determine {interaction_style}, default to open mode.</mandate>
<mandate>Always read COMPLETE files - NEVER use offset/limit when reading any workflow related files</mandate> <mandate>Always read COMPLETE files - NEVER use offset/limit when reading any workflow related files</mandate>
<mandate>Instructions are MANDATORY - either as file path, steps or embedded list in YAML, XML or markdown</mandate> <mandate>Instructions are MANDATORY - either as file path, steps or embedded list in YAML, XML or markdown</mandate>
<mandate>Execute ALL steps in instructions IN EXACT ORDER</mandate> <mandate>Execute ALL steps in instructions IN EXACT ORDER</mandate>

View File

@ -1,5 +1,6 @@
<rules> <rules>
<r>ALWAYS communicate in {communication_language} UNLESS contradicted by communication_style.</r> <r>ALWAYS communicate in {communication_language} UNLESS contradicted by communication_style.</r>
<r>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.</r>
<r> Stay in character until exit selected</r> <r> Stay in character until exit selected</r>
<r> Display Menu items as the item dictates and in the order given.</r> <r> Display Menu items as the item dictates and in the order given.</r>
<r> Load files ONLY when executing a user chosen workflow or a command requires it, EXCEPTION: agent activation step 2 config.yaml</r> <r> Load files ONLY when executing a user chosen workflow or a command requires it, EXCEPTION: agent activation step 2 config.yaml</r>

View File

@ -1,7 +1,7 @@
<step n="1">Load persona from this current agent file (already in context)</step> <step n="1">Load persona from this current agent file (already in context)</step>
<step n="2">🚨 IMMEDIATE ACTION REQUIRED - BEFORE ANY OUTPUT: <step n="2">🚨 IMMEDIATE ACTION REQUIRED - BEFORE ANY OUTPUT:
- Load and read {project-root}/_bmad/{{module}}/config.yaml NOW - Load and read {project-root}/_bmad/{{module}}/config.yaml NOW
- Store ALL fields as session variables: {user_name}, {communication_language}, {output_folder}, {interaction_style} - Store ALL fields as session variables: {user_name}, {communication_language}, {output_folder}, {interaction_style}, {document_output_language}
- VERIFY: If config not loaded, STOP and report error to user - VERIFY: If config not loaded, STOP and report error to user
- DO NOT PROCEED to step 3 until config is successfully loaded and variables stored - DO NOT PROCEED to step 3 until config is successfully loaded and variables stored
</step> </step>

View File

@ -1 +1,3 @@
You must fully embody this agent's persona and follow all activation instructions, steps and rules exactly as specified. NEVER break character until given an exit command. You must fully embody this agent's persona and follow all activation instructions, steps and rules exactly as specified. NEVER break character until given an exit command.
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. Do NOT write questions as plain text. No exceptions. If you cannot determine {interaction_style}, default to open mode.

View File

@ -1,4 +1,5 @@
<handler type="action"> <handler type="action">
When menu item has: action="#id" → Find prompt with id="id" in current agent XML, follow its content When menu item has: action="#id" → Find prompt with id="id" in current agent XML, follow its content
When menu item has: action="text" → Follow the text directly as an inline instruction When menu item has: action="text" → Follow the text directly as an inline instruction
RULE: Check your stored {interaction_style} session variable from activation step 2. When its value is "structured", ALL questions to the user MUST use the AskUserQuestion tool. No plain text prompts. If you cannot determine {interaction_style}, default to open mode.
</handler> </handler>

View File

@ -3,4 +3,5 @@
1. Read fully and follow the file at that path 1. Read fully and follow the file at that path
2. Process the complete file and follow all instructions within it 2. Process the complete file and follow all instructions within it
3. If there is data="some/path/data-foo.md" with the same item, pass that data path to the executed file as context. 3. If there is data="some/path/data-foo.md" with the same item, pass that data path to the executed file as context.
4. RULE: Check your stored {interaction_style} session variable from activation step 2. When its value is "structured", ALL questions to the user MUST use the AskUserQuestion tool. No plain text prompts. If you cannot determine {interaction_style}, default to open mode.
</handler> </handler>

View File

@ -10,5 +10,5 @@
- For workflow="path/to/workflow.yaml": follow the `handler type="workflow"` instructions - For workflow="path/to/workflow.yaml": follow the `handler type="workflow"` instructions
- For action="...": Perform the specified action directly - For action="...": Perform the specified action directly
5. Support both exact matches and fuzzy matching based on the match attribute 5. Support both exact matches and fuzzy matching based on the match attribute
6. If no handler matches, prompt user to choose from available options 6. If no handler matches, prompt user to choose from available options using the AskUserQuestion tool when interaction_style is "structured"
</handler> </handler>

View File

@ -3,5 +3,5 @@
1. You MUST LOAD the file at: {project-root}/_bmad/core/tasks/validate-workflow.xml 1. You MUST LOAD the file at: {project-root}/_bmad/core/tasks/validate-workflow.xml
2. READ its entire contents and EXECUTE all instructions in that file 2. READ its entire contents and EXECUTE all instructions in that file
3. Pass the workflow, and also check the workflow yaml validation property to find and load the validation schema to pass as the checklist 3. Pass the workflow, and also check the workflow yaml validation property to find and load the validation schema to pass as the checklist
4. The workflow should try to identify the file to validate based on checklist context or else you will ask the user to specify 4. The workflow should try to identify the file to validate based on checklist context or else ask the user to specify using the AskUserQuestion tool when interaction_style is "structured"
</handler> </handler>

View File

@ -7,4 +7,5 @@
4. Follow workflow.xml instructions precisely following all steps 4. Follow workflow.xml instructions precisely following all steps
5. Save outputs after completing EACH workflow step (never batch multiple steps together) 5. Save outputs after completing EACH workflow step (never batch multiple steps together)
6. If workflow.yaml path is "todo", inform user the workflow hasn't been implemented yet 6. If workflow.yaml path is "todo", inform user the workflow hasn't been implemented yet
7. RULE: Check your stored {interaction_style} session variable from activation step 2. When its value is "structured", ALL questions to the user MUST use the AskUserQuestion tool. No plain text prompts. If you cannot determine {interaction_style}, default to open mode.
</handler> </handler>

View File

@ -416,6 +416,7 @@ class CodexSetup extends BaseIdeSetup {
const skillContent = const skillContent =
`---\n${fm}\n---\n` + `---\n${fm}\n---\n` +
"\nYou must fully embody this agent's persona and follow all activation instructions exactly as specified. NEVER break character until given an exit command.\n" + "\nYou must fully embody this agent's persona and follow all activation instructions exactly as specified. NEVER break character until given an exit command.\n" +
'\nRULE: Check your stored {interaction_style} session variable from activation step 2. When its value is "structured", EVERY question to the user MUST call the `ask_user_question` tool unless the workflow or user explicitly requests free-form input. If you cannot determine {interaction_style}, default to open mode.\n' +
'\n<agent-activation CRITICAL="TRUE">\n' + '\n<agent-activation CRITICAL="TRUE">\n' +
`1. LOAD the FULL agent file from @${agentPath}\n` + `1. LOAD the FULL agent file from @${agentPath}\n` +
'2. READ its entire contents - this contains the complete agent persona, menu, and instructions\n' + '2. READ its entire contents - this contains the complete agent persona, menu, and instructions\n' +

View File

@ -39,7 +39,7 @@ platforms:
description: "Anthropic's official CLI for Claude" description: "Anthropic's official CLI for Claude"
installer: installer:
target_dir: .claude/commands target_dir: .claude/commands
template_type: default template_type: claude
ancestor_conflict_check: true ancestor_conflict_check: true
cline: cline:

View File

@ -5,7 +5,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.
RULE: When interaction_style is "structured", EVERY question to the user MUST use structured options with a numbered list. Do NOT ask open-ended inline questions. No exceptions. 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"> <agent-activation CRITICAL="TRUE">
1. LOAD the FULL agent file from @_bmad/{{module}}/agents/{{path}} 1. LOAD the FULL agent file from @_bmad/{{module}}/agents/{{path}}

View File

@ -3,8 +3,8 @@ name: '{{name}}'
description: '{{description}}' description: '{{description}}'
--- ---
Read the entire workflow file at: {project-root}/_bmad/{{workflow_path}} Read the entire workflow file at: {project-root}/{{bmadFolderName}}/{{workflow_path}}
Follow all instructions in the workflow file exactly as written. Follow all instructions in the workflow file exactly as written.
RULE: When interaction_style is "structured", EVERY question to the user MUST use structured options with a numbered list. No exceptions. 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.

View File

@ -1 +0,0 @@
default-agent.md

View File

@ -0,0 +1,17 @@
---
name: '{{name}}'
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.
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.
<agent-activation CRITICAL="TRUE">
1. LOAD the FULL agent file from {project-root}/{{bmadFolderName}}/{{path}}
2. READ its entire contents - this contains the complete agent persona, menu, and instructions
3. FOLLOW every step in the <activation> section precisely
4. DISPLAY the welcome/greeting as instructed
5. PRESENT the numbered menu
6. WAIT for user input before proceeding
</agent-activation>

View File

@ -0,0 +1,12 @@
---
name: '{{name}}'
description: '{{description}}'
---
# {{name}}
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.
Read the entire task file at: {project-root}/{{bmadFolderName}}/{{path}}
Follow all instructions in the task file exactly as written.

View File

@ -0,0 +1,12 @@
---
name: '{{name}}'
description: '{{description}}'
---
# {{name}}
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.
Read the entire tool file at: {project-root}/{{bmadFolderName}}/{{path}}
Follow all instructions in the tool file exactly as written.

View File

@ -1 +0,0 @@
default-workflow-yaml.md

View File

@ -0,0 +1,16 @@
---
name: '{{name}}'
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 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
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

@ -1 +0,0 @@
default-workflow.md

View File

@ -0,0 +1,8 @@
---
name: '{{name}}'
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!

View File

@ -5,10 +5,10 @@ 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.
RULE: When interaction_style is "structured", EVERY question to the user MUST call the AskUserQuestion tool. Do NOT write questions as plain text. No exceptions. 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"> <agent-activation CRITICAL="TRUE">
1. LOAD the FULL agent file from {project-root}/_bmad/{{path}} 1. LOAD the FULL agent file from {project-root}/{{bmadFolderName}}/{{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. FOLLOW every step in the <activation> section precisely 3. FOLLOW every step in the <activation> section precisely
4. DISPLAY the welcome/greeting as instructed 4. DISPLAY the welcome/greeting as instructed

View File

@ -5,8 +5,8 @@ description: '{{description}}'
# {{name}} # {{name}}
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.
Read the entire task file at: {project-root}/{{bmadFolderName}}/{{path}} Read the entire task file at: {project-root}/{{bmadFolderName}}/{{path}}
Follow all instructions in the task file exactly as written. Follow all instructions in the task file exactly as written.
RULE: When interaction_style is "structured", EVERY question to the user MUST call the AskUserQuestion tool. Do NOT write questions as plain text. No exceptions.

View File

@ -5,8 +5,8 @@ description: '{{description}}'
# {{name}} # {{name}}
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.
Read the entire tool file at: {project-root}/{{bmadFolderName}}/{{path}} Read the entire tool file at: {project-root}/{{bmadFolderName}}/{{path}}
Follow all instructions in the tool file exactly as written. Follow all instructions in the tool file exactly as written.
RULE: When interaction_style is "structured", EVERY question to the user MUST call the AskUserQuestion tool. Do NOT write questions as plain text. No exceptions.

View File

@ -3,7 +3,7 @@ name: '{{name}}'
description: '{{description}}' description: '{{description}}'
--- ---
RULE: When interaction_style is "structured", EVERY question to the user MUST call the AskUserQuestion tool. Do NOT write questions as plain text. No exceptions. 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 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:

View File

@ -3,6 +3,6 @@ name: '{{name}}'
description: '{{description}}' description: '{{description}}'
--- ---
RULE: When interaction_style is "structured", EVERY question to the user MUST call the AskUserQuestion tool. Do NOT write questions as plain text. No exceptions. 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

@ -6,8 +6,9 @@ PRE-FLIGHT CHECKLIST:
1. [ ] IMMEDIATE ACTION: Load and parse {project-root}/{{bmadFolderName}}/{{module}}/config.yaml - store ALL config values in memory for use throughout the session. 1. [ ] IMMEDIATE ACTION: Load and parse {project-root}/{{bmadFolderName}}/{{module}}/config.yaml - store ALL config values in memory for use throughout the session.
2. [ ] IMMEDIATE ACTION: Read and internalize the full agent definition at {project-root}/{{bmadFolderName}}/{{path}}. 2. [ ] IMMEDIATE ACTION: Read and internalize the full agent definition at {project-root}/{{bmadFolderName}}/{{path}}.
3. [ ] CONFIRM: The user's name from config is {user_name}. 3. [ ] CONFIRM: The user's name from config is {user_name}.
4. [ ] CONFIRM: interaction_style is set to "{interaction_style}".
RULE: When interaction_style is "structured", EVERY question to the user MUST call the ask_user tool. Do NOT write questions as plain text. No exceptions. 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 ask_user tool unless the workflow or user explicitly requests free-form input. If you cannot determine {interaction_style}, default to open mode.
Only after all checks are complete, greet the user by name and display the menu. Only after all checks are complete, greet the user by name and display the menu.
Acknowledge this checklist is complete in your first response. Acknowledge this checklist is complete in your first response.

View File

@ -6,7 +6,8 @@ TASK INSTRUCTIONS:
1. LOAD the task file from {project-root}/{{bmadFolderName}}/{{path}} 1. LOAD the task file from {project-root}/{{bmadFolderName}}/{{path}}
2. READ its entire contents 2. READ its entire contents
3. FOLLOW every instruction precisely as specified 3. FOLLOW every instruction precisely as specified
4. RULE: When interaction_style is "structured", EVERY question to the user MUST call the ask_user tool. Do NOT write questions as plain text. No exceptions.
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 ask_user tool unless the workflow or user explicitly requests free-form input. If you cannot determine {interaction_style}, default to open mode.
TASK FILE: {project-root}/{{bmadFolderName}}/{{path}} TASK FILE: {project-root}/{{bmadFolderName}}/{{path}}
""" """

View File

@ -6,7 +6,8 @@ TOOL INSTRUCTIONS:
1. LOAD the tool file from {project-root}/{{bmadFolderName}}/{{path}} 1. LOAD the tool file from {project-root}/{{bmadFolderName}}/{{path}}
2. READ its entire contents 2. READ its entire contents
3. FOLLOW every instruction precisely as specified 3. FOLLOW every instruction precisely as specified
4. RULE: When interaction_style is "structured", EVERY question to the user MUST call the ask_user tool. Do NOT write questions as plain text. No exceptions.
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 ask_user tool unless the workflow or user explicitly requests free-form input. If you cannot determine {interaction_style}, default to open mode.
TOOL FILE: {project-root}/{{bmadFolderName}}/{{path}} TOOL FILE: {project-root}/{{bmadFolderName}}/{{path}}
""" """

View File

@ -11,7 +11,8 @@ CRITICAL: This is a structured YAML workflow. Follow these steps precisely:
- Dependencies between steps - Dependencies between steps
3. EXECUTE each step in order 3. EXECUTE each step in order
4. VALIDATE outputs before proceeding to next step 4. VALIDATE outputs before proceeding to next step
5. RULE: When interaction_style is "structured", EVERY question to the user MUST call the ask_user tool. Do NOT write questions as plain text. No exceptions.
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 ask_user tool unless the workflow or user explicitly requests free-form input. If you cannot determine {interaction_style}, default to open mode.
WORKFLOW FILE: {project-root}/{{bmadFolderName}}/{{workflow_path}} WORKFLOW FILE: {project-root}/{{bmadFolderName}}/{{workflow_path}}
""" """

View File

@ -9,7 +9,8 @@ WORKFLOW INSTRUCTIONS:
2. READ its entire contents 2. READ its entire contents
3. FOLLOW every step precisely as specified 3. FOLLOW every step precisely as specified
4. DO NOT skip or modify any steps 4. DO NOT skip or modify any steps
5. RULE: When interaction_style is "structured", EVERY question to the user MUST call the ask_user tool. Do NOT write questions as plain text. No exceptions.
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 ask_user tool unless the workflow or user explicitly requests free-form input. If you cannot determine {interaction_style}, default to open mode.
WORKFLOW FILE: {project-root}/{{bmadFolderName}}/{{workflow_path}} WORKFLOW FILE: {project-root}/{{bmadFolderName}}/{{workflow_path}}
""" """

View File

@ -6,7 +6,7 @@ inclusion: manual
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.
RULE: When interaction_style is "structured", EVERY question to the user MUST use structured options with a numbered list. Do NOT ask open-ended inline questions. No exceptions. 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"> <agent-activation CRITICAL="TRUE">
1. LOAD the FULL agent file from #[[file:{{bmadFolderName}}/{{path}}]] 1. LOAD the FULL agent file from #[[file:{{bmadFolderName}}/{{path}}]]

View File

@ -8,4 +8,4 @@ Read the entire task file at: #[[file:{{bmadFolderName}}/{{path}}]]
Follow all instructions in the task file exactly as written. Follow all instructions in the task file exactly as written.
RULE: When interaction_style is "structured", EVERY question to the user MUST use structured options with a numbered list. No exceptions. 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.

View File

@ -8,4 +8,4 @@ Read the entire tool file at: #[[file:{{bmadFolderName}}/{{path}}]]
Follow all instructions in the tool file exactly as written. Follow all instructions in the tool file exactly as written.
RULE: When interaction_style is "structured", EVERY question to the user MUST use structured options with a numbered list. No exceptions. 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.

View File

@ -4,7 +4,7 @@ inclusion: manual
# {{name}} # {{name}}
RULE: When interaction_style is "structured", EVERY question to the user MUST use structured options with a numbered list. Do NOT ask open-ended inline questions. No exceptions. 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 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:

View File

@ -4,6 +4,6 @@ inclusion: manual
# {{name}} # {{name}}
RULE: When interaction_style is "structured", EVERY question to the user MUST use structured options with a numbered list. Do NOT ask open-ended inline questions. No exceptions. 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 #[[file:{{bmadFolderName}}/{{path}}]], READ its entire contents and follow its directions exactly! IT IS CRITICAL THAT YOU FOLLOW THIS COMMAND: LOAD the FULL #[[file:{{bmadFolderName}}/{{path}}]], READ its entire contents and follow its directions exactly!

View File

@ -5,7 +5,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.
RULE: When interaction_style is "structured", EVERY question to the user MUST call the question tool. Do NOT write questions as plain text. No exceptions. 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 `question` tool unless the workflow or user explicitly requests free-form input. If you cannot determine {interaction_style}, default to open mode.
<agent-activation CRITICAL="TRUE"> <agent-activation CRITICAL="TRUE">
1. LOAD the FULL agent file from {project-root}/{{bmadFolderName}}/{{path}} 1. LOAD the FULL agent file from {project-root}/{{bmadFolderName}}/{{path}}

View File

@ -10,6 +10,6 @@ TASK INSTRUCTIONS:
2. READ its entire contents 2. READ its entire contents
3. FOLLOW every instruction precisely as specified 3. FOLLOW every instruction precisely as specified
RULE: When interaction_style is "structured", EVERY question to the user MUST call the question tool. Do NOT write questions as plain text. No exceptions. 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 `question` tool unless the workflow or user explicitly requests free-form input. If you cannot determine {interaction_style}, default to open mode.
TASK FILE: {project-root}/{{bmadFolderName}}/{{path}} TASK FILE: {project-root}/{{bmadFolderName}}/{{path}}

View File

@ -10,6 +10,6 @@ TOOL INSTRUCTIONS:
2. READ its entire contents 2. READ its entire contents
3. FOLLOW every instruction precisely as specified 3. FOLLOW every instruction precisely as specified
RULE: When interaction_style is "structured", EVERY question to the user MUST call the question tool. Do NOT write questions as plain text. No exceptions. 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 `question` tool unless the workflow or user explicitly requests free-form input. If you cannot determine {interaction_style}, default to open mode.
TOOL FILE: {project-root}/{{bmadFolderName}}/{{path}} TOOL FILE: {project-root}/{{bmadFolderName}}/{{path}}

View File

@ -12,6 +12,7 @@ WORKFLOW INSTRUCTIONS:
2. READ its entire contents 2. READ its entire contents
3. FOLLOW every step precisely as specified 3. FOLLOW every step precisely as specified
4. DO NOT skip or modify any steps 4. DO NOT skip or modify any steps
5. RULE: When interaction_style is "structured", EVERY question to the user MUST call the question tool. Do NOT write questions as plain text. No exceptions.
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 `question` tool unless the workflow or user explicitly requests free-form input. If you cannot determine {interaction_style}, default to open mode.
WORKFLOW FILE: {project-root}/{{bmadFolderName}}/{{path}} WORKFLOW FILE: {project-root}/{{bmadFolderName}}/{{path}}

View File

@ -12,6 +12,7 @@ WORKFLOW INSTRUCTIONS:
2. READ its entire contents 2. READ its entire contents
3. FOLLOW every step precisely as specified 3. FOLLOW every step precisely as specified
4. DO NOT skip or modify any steps 4. DO NOT skip or modify any steps
5. RULE: When interaction_style is "structured", EVERY question to the user MUST call the question tool. Do NOT write questions as plain text. No exceptions.
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 `question` tool unless the workflow or user explicitly requests free-form input. If you cannot determine {interaction_style}, default to open mode.
WORKFLOW FILE: {project-root}/{{bmadFolderName}}/{{path}} WORKFLOW FILE: {project-root}/{{bmadFolderName}}/{{path}}

View File

@ -4,8 +4,8 @@
--- ---
Read the entire workflow file at: {project-root}/_bmad/{{workflow_path}} 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.
Read the entire workflow file at: {project-root}/{{bmadFolderName}}/{{workflow_path}}
Follow all instructions in the workflow file exactly as written. Follow all instructions in the workflow file exactly as written.
RULE: When interaction_style is "structured", EVERY question to the user MUST use structured options with a numbered list. No exceptions.

View File

@ -4,8 +4,8 @@
## Instructions ## Instructions
Read the entire workflow file at: {project-root}/_bmad/{{workflow_path}} Read the entire workflow file at: {project-root}/{{bmadFolderName}}/{{workflow_path}}
Follow all instructions in the workflow file exactly as written. Follow all instructions in the workflow file exactly as written.
RULE: When interaction_style is "structured", EVERY question to the user MUST use structured options with a numbered list. No exceptions. 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.

View File

@ -5,8 +5,8 @@ auto_execution_mode: "iterate"
# {{name}} # {{name}}
Read the entire workflow file at {project-root}/_bmad/{{workflow_path}} Read the entire workflow file at {project-root}/{{bmadFolderName}}/{{workflow_path}}
Follow all instructions in the workflow file exactly as written. Follow all instructions in the workflow file exactly as written.
RULE: When interaction_style is "structured", EVERY question to the user MUST use structured options with a numbered list. No exceptions. 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.

View File

@ -2,7 +2,7 @@
description: '{{description}}' description: '{{description}}'
--- ---
RULE: When interaction_style is "structured", EVERY question to the user MUST use structured options with a numbered list. Do NOT ask open-ended inline questions. No exceptions. 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 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:

View File

@ -2,6 +2,6 @@
description: '{{description}}' description: '{{description}}'
--- ---
RULE: When interaction_style is "structured", EVERY question to the user MUST use structured options with a numbered list. Do NOT ask open-ended inline questions. No exceptions. 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 @{{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!