folder rename from .bmad to _bmad

This commit is contained in:
Brian Madison
2025-12-13 16:22:34 +08:00
parent 0c873638ab
commit 25c79e3fe5
375 changed files with 1421 additions and 2745 deletions

View File

@@ -3,7 +3,7 @@
agent:
metadata:
id: ".bmad/core/agents/bmad-master.md"
id: "_bmad/core/agents/bmad-master.md"
name: "BMad Master"
title: "BMad Master Executor, Knowledge Custodian, and Workflow Orchestrator"
icon: "🧙"
@@ -17,22 +17,22 @@ agent:
# Agent-specific critical actions
critical_actions:
- "Load into memory {project-root}/.bmad/core/config.yaml and set variable project_name, output_folder, user_name, communication_language"
- "Load into memory {project-root}/_bmad/core/config.yaml and set variable project_name, output_folder, user_name, communication_language"
- "Remember the users name is {user_name}"
- "ALWAYS communicate in {communication_language}"
# Agent menu items
menu:
- trigger: "list-tasks"
action: "list all tasks from {project-root}/.bmad/_cfg/task-manifest.csv"
action: "list all tasks from {project-root}/_bmad/_cfg/task-manifest.csv"
description: "List Available Tasks"
- trigger: "list-workflows"
action: "list all workflows from {project-root}/.bmad/_cfg/workflow-manifest.csv"
action: "list all workflows from {project-root}/_bmad/_cfg/workflow-manifest.csv"
description: "List Workflows"
- trigger: "party-mode"
exec: "{project-root}/.bmad/core/workflows/party-mode/workflow.md"
exec: "{project-root}/_bmad/core/workflows/party-mode/workflow.md"
description: "Group chat with all agents"
# Empty prompts section (no custom prompts for this agent)

View File

@@ -1,113 +0,0 @@
<agent id=".bmad/core/agents/bmad-orchestrator.md" name="BMad Orchestrator" title="BMad Web Orchestrator" icon="🎭" localskip="true">
<activation critical="MANDATORY">
<step n="1">Load this complete web bundle XML - you are the BMad Orchestrator, first agent in this bundle</step>
<step n="2">CRITICAL: This bundle contains ALL agents as XML nodes with id=".bmad/..." and ALL workflows/tasks as nodes findable
by type
and id</step>
<step n="3">Greet user as BMad Orchestrator and display numbered list of ALL menu items from menu section below</step>
<step n="4">STOP and WAIT for user input - do NOT execute menu items automatically - accept number or trigger text</step>
<step n="5">On user input: Number → execute menu item[n] | Text → case-insensitive substring match | Multiple matches → ask user to
clarify | No match → show "Not recognized"</step>
<step n="6">When executing a menu item: Check menu-handlers section below for UNIVERSAL handler instructions that apply to ALL agents</step>
<menu-handlers critical="UNIVERSAL_FOR_ALL_AGENTS">
<extract>workflow, exec, tmpl, data, action, validate-workflow</extract>
<handlers>
<handler type="workflow">
When menu item has: workflow="workflow-id"
1. Find workflow node by id in this bundle (e.g., &lt;workflow id="workflow-id"&gt;)
2. CRITICAL: Always LOAD .bmad/core/tasks/workflow.xml if referenced
3. Execute the workflow content precisely following all steps
4. Save outputs after completing EACH workflow step (never batch)
5. If workflow id is "todo", inform user it hasn't been implemented yet
</handler>
<handler type="exec">
When menu item has: exec="node-id" or exec="inline-instruction"
1. If value looks like a path/id → Find and execute node with that id
2. If value is text → Execute as direct instruction
3. Follow ALL instructions within loaded content EXACTLY
</handler>
<handler type="tmpl">
When menu item has: tmpl="template-id"
1. Find template node by id in this bundle and pass it to the exec, task, action, or workflow being executed
</handler>
<handler type="data">
When menu item has: data="data-id"
1. Find data node by id in this bundle
2. Parse according to node type (json/yaml/xml/csv)
3. Make available as {data} variable for subsequent operations
</handler>
<handler type="action">
When menu item has: action="#prompt-id" or action="inline-text"
1. If starts with # → Find prompt with matching id in current agent
2. Otherwise → Execute the text directly as instruction
</handler>
<handler type="validate-workflow">
When menu item has: validate-workflow="workflow-id"
1. MUST LOAD .bmad/core/tasks/validate-workflow.xml
2. Execute all validation instructions from that file
3. Check workflow's validation property for schema
4. Identify file to validate or ask user to specify
</handler>
</handlers>
</menu-handlers>
<orchestrator-specific>
<agent-transformation critical="true">
When user selects *agents [agent-name]:
1. Find agent XML node with matching name/id in this bundle
2. Announce transformation: "Transforming into [agent name]... 🎭"
3. BECOME that agent completely:
- Load and embody their persona/role/communication_style
- Display THEIR menu items (not orchestrator menu)
- Execute THEIR commands using universal handlers above
4. Stay as that agent until user types *exit
5. On *exit: Confirm, then return to BMad Orchestrator persona
</agent-transformation>
<list-agents critical="true">
When user selects *list-agents:
1. Scan all agent nodes in this bundle
2. Display formatted list with:
- Number, emoji, name, title
- Brief description of capabilities
- Main menu items they offer
3. Suggest which agent might help with common tasks
</list-agents>
</orchestrator-specific>
<rules>
Web bundle environment - NO file system access, all content in XML nodes
Find resources by XML node id/type within THIS bundle only
Use canvas for document drafting when available
Menu triggers use asterisk (*) - display exactly as shown
Number all lists, use letters for sub-options
Stay in character (current agent) until *exit command
Options presented as numbered lists with descriptions
elicit="true" attributes require user confirmation before proceeding
</rules>
</activation>
<persona>
<role>Master Orchestrator and BMad Scholar</role>
<identity>Master orchestrator with deep expertise across all loaded agents and workflows. Technical brilliance balanced with
approachable communication.</identity>
<communication_style>Knowledgeable, guiding, approachable, very explanatory when in BMad Orchestrator mode</communication_style>
<core_principles>When I transform into another agent, I AM that agent until *exit command received. When I am NOT transformed into
another agent, I will give you guidance or suggestions on a workflow based on your needs.</core_principles>
</persona>
<menu>
<item cmd="*help">Show numbered command list</item>
<item cmd="*list-agents">List all available agents with their capabilities</item>
<item cmd="*agents [agent-name]">Transform into a specific agent</item>
<item cmd="*party-mode" exec=".bmad/core/workflows/party-mode/workflow.md">Enter group chat with all agents
simultaneously</item>
<item cmd="*advanced-elicitation" task=".bmad/core/tasks/advanced-elicitation.xml">Push agent to perform advanced elicitation</item>
<item cmd="*exit">Exit current session</item>
</menu>
</agent>

View File

@@ -23,5 +23,5 @@ output_folder:
agent_sidecar_folder:
prompt: "Where should users agent sidecar memory folders be stored?"
default: ".bmad-user-memory"
default: "_bmad-user-memory"
result: "{project-root}/{value}"

View File

@@ -72,8 +72,8 @@ Provides the **HOW** (universal knowledge) while agents provide the **WHAT** (do
```yaml
# workflows/diagrams/create-flowchart/workflow.yaml
helpers: '{project-root}/.bmad/core/resources/excalidraw/excalidraw-helpers.md'
json_validation: '{project-root}/.bmad/core/resources/excalidraw/validate-json-instructions.md'
helpers: '{project-root}/_bmad/core/resources/excalidraw/excalidraw-helpers.md'
json_validation: '{project-root}/_bmad/core/resources/excalidraw/validate-json-instructions.md'
```
**Domain-specific additions:**
@@ -99,8 +99,8 @@ flowchart:
```yaml
# workflows/create-visual-metaphor/workflow.yaml
helpers: '{project-root}/.bmad/core/resources/excalidraw/excalidraw-helpers.md'
json_validation: '{project-root}/.bmad/core/resources/excalidraw/validate-json-instructions.md'
helpers: '{project-root}/_bmad/core/resources/excalidraw/excalidraw-helpers.md'
json_validation: '{project-root}/_bmad/core/resources/excalidraw/validate-json-instructions.md'
```
**Domain-specific additions:**

View File

@@ -1,6 +1,6 @@
<task id=".bmad/core/tasks/advanced-elicitation.xml" name="Advanced Elicitation" standalone="true"
methods="{project-root}/.bmad/core/tasks/advanced-elicitation-methods.csv"
agent-party="{project-root}/.bmad/_cfg/agent-manifest.csv">
<task id="_bmad/core/tasks/advanced-elicitation.xml" name="Advanced Elicitation" standalone="true"
methods="{project-root}/_bmad/core/tasks/advanced-elicitation-methods.csv"
agent-party="{project-root}/_bmad/_cfg/agent-manifest.csv">
<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>

View File

@@ -1,4 +1,4 @@
<task id=".bmad/core/tasks/index-docs" name="Index Docs"
<task id="_bmad/core/tasks/index-docs" name="Index Docs"
description="Generates or updates an index.md of all documents in the specified directory" webskip="true" standalone="true">
<llm critical="true">
<i>MANDATORY: Execute ALL steps in the flow section IN EXACT ORDER</i>

View File

@@ -1,4 +1,4 @@
<task id=".bmad/core/tasks/validate-workflow.xml" name="Validate Workflow Output">
<task id="_bmad/core/tasks/validate-workflow.xml" name="Validate Workflow Output">
<objective>Run a checklist against a document with thorough analysis and produce a validation report</objective>
<inputs>

View File

@@ -1,4 +1,4 @@
<task id=".bmad/core/tasks/workflow.xml" name="Execute Workflow">
<task id="_bmad/core/tasks/workflow.xml" name="Execute Workflow">
<objective>Execute given workflow by loading its configuration, following instructions, and producing output</objective>
<llm critical="true">
@@ -74,14 +74,14 @@
<action>Display generated content</action>
<ask> [a] Advanced Elicitation, [c] Continue, [p] Party-Mode, [y] YOLO the rest of this document only. WAIT for response. <if
response="a">
<action>Start the advanced elicitation workflow {project-root}/.bmad/core/tasks/advanced-elicitation.xml</action>
<action>Start the advanced elicitation workflow {project-root}/_bmad/core/tasks/advanced-elicitation.xml</action>
</if>
<if
response="c">
<action>Continue to next step</action>
</if>
<if response="p">
<action>Start the party-mode workflow {project-root}/.bmad/core/workflows/party-mode/workflow.yaml</action>
<action>Start the party-mode workflow {project-root}/_bmad/core/workflows/party-mode/workflow.yaml</action>
</if>
<if
response="y">
@@ -225,7 +225,7 @@
<critical-rules>
• This is the complete workflow execution engine
• You MUST Follow instructions exactly as written
• The workflow execution engine is governed by: {project-root}/.bmad/core/tasks/workflow.xml
• The workflow execution engine is governed by: {project-root}/_bmad/core/tasks/workflow.xml
• You MUST have already loaded and processed: {installed_path}/workflow.yaml
• This workflow uses INTENT-DRIVEN PLANNING - adapt organically to product type and context
• YOU ARE FACILITATING A CONVERSATION With a user to produce a final document step by step. The whole process is meant to be

View File

@@ -1,4 +1,4 @@
<tool id=".bmad/core/tasks/shard-doc" name="Shard Document"
<tool id="_bmad/core/tasks/shard-doc" name="Shard Document"
description="Splits large markdown documents into smaller, organized files based on level 2 (default) sections" webskip="true"
standalone="true">
<objective>Split large markdown documents into smaller, organized files based on level 2 sections using @kayvan/markdown-tree-parser tool</objective>
@@ -64,12 +64,12 @@
<ask>What would you like to do with the original document `[source-document-name]`?
Options:
[d] Delete - Remove the original (recommended - shards can always be recombined)
[m] Move to archive - Move original to a backup/archive location
[k] Keep - Leave original in place (NOT recommended - defeats sharding purpose)
Options:
[d] Delete - Remove the original (recommended - shards can always be recombined)
[m] Move to archive - Move original to a backup/archive location
[k] Keep - Leave original in place (NOT recommended - defeats sharding purpose)
Your choice (d/m/k):</ask>
Your choice (d/m/k):</ask>
<check if="user selects 'd' (delete)">
<action>Delete the original source document file</action>
@@ -92,12 +92,12 @@ Your choice (d/m/k):</ask>
<action>Display warning to user:</action>
<output>⚠️ WARNING: Keeping both original and sharded versions is NOT recommended.
This creates confusion because:
- The discover_inputs protocol may load the wrong version
- Updates to one won't reflect in the other
- You'll have duplicate content taking up space
This creates confusion because:
- The discover_inputs protocol may load the wrong version
- Updates to one won't reflect in the other
- You'll have duplicate content taking up space
Consider deleting or archiving the original document.</output>
Consider deleting or archiving the original document.</output>
<action>Confirm user choice: "Original document kept at: [source-document-path]"</action>
</check>
</step>
@@ -106,4 +106,4 @@ Consider deleting or archiving the original document.</output>
<halt-conditions critical="true">
<i>HALT if npx command fails or produces no output files</i>
</halt-conditions>
</tool>
</tool>

View File

@@ -28,7 +28,7 @@ This uses **micro-file architecture** for disciplined execution:
### Configuration Loading
Load config from `{project-root}/.bmad/core/config.yaml` and resolve:
Load config from `{project-root}/_bmad/core/config.yaml` and resolve:
- `project_name`, `output_folder`, `user_name`
- `communication_language`, `document_output_language`, `user_skill_level`
@@ -36,7 +36,7 @@ Load config from `{project-root}/.bmad/core/config.yaml` and resolve:
### Paths
- `installed_path` = `{project-root}/.bmad/core/workflows/brainstorming`
- `installed_path` = `{project-root}/_bmad/core/workflows/brainstorming`
- `template_path` = `{installed_path}/template.md`
- `brain_techniques_path` = `{installed_path}/brain-methods.csv`
- `default_output_file` = `{output_folder}/analysis/brainstorming-session-{{date}}.md`

View File

@@ -18,7 +18,7 @@
## CONTEXT BOUNDARIES:
- Agent manifest CSV is available at `{project-root}/.bmad/_cfg/agent-manifest.csv`
- Agent manifest CSV is available at `{project-root}/_bmad/_cfg/agent-manifest.csv`
- User configuration from config.yaml is loaded and resolved
- Party mode is standalone interactive workflow
- All agent data is available for conversation orchestration
@@ -37,7 +37,7 @@ Begin agent loading process:
**Agent Manifest Loading:**"
Load and parse the agent manifest CSV from `{project-root}/.bmad/_cfg/agent-manifest.csv`
Load and parse the agent manifest CSV from `{project-root}/_bmad/_cfg/agent-manifest.csv`
### 2. Extract Agent Data

View File

@@ -27,17 +27,17 @@ This uses **micro-file architecture** with **sequential conversation orchestrati
### Configuration Loading
Load config from `{project-root}/.bmad/core/config.yaml` and resolve:
Load config from `{project-root}/_bmad/core/config.yaml` and resolve:
- `project_name`, `output_folder`, `user_name`
- `communication_language`, `document_output_language`, `user_skill_level`
- `date` as a system-generated value
- Agent manifest path: `{project-root}/.bmad/_cfg/agent-manifest.csv`
- Agent manifest path: `{project-root}/_bmad/_cfg/agent-manifest.csv`
### Paths
- `installed_path` = `{project-root}/.bmad/core/workflows/party-mode`
- `agent_manifest_path` = `{project-root}/.bmad/_cfg/agent-manifest.csv`
- `installed_path` = `{project-root}/_bmad/core/workflows/party-mode`
- `agent_manifest_path` = `{project-root}/_bmad/_cfg/agent-manifest.csv`
- `standalone_mode` = `true` (party mode is an interactive workflow)
---