fix: standardize on file extension .yaml instead of a mix of yml and yaml

This commit is contained in:
Brian Madison
2025-07-02 19:59:49 -05:00
parent ffae072143
commit a4c0b1839d
73 changed files with 247 additions and 247 deletions

View File

@@ -213,7 +213,7 @@
### Features
* dev can use debug log configured in core-config.yml ([0e5aaf0](https://github.com/bmadcode/BMAD-METHOD/commit/0e5aaf07bbc6fd9f2706ea26e35f5f38fd72147a))
* dev can use debug log configured in core-config.yaml ([0e5aaf0](https://github.com/bmadcode/BMAD-METHOD/commit/0e5aaf07bbc6fd9f2706ea26e35f5f38fd72147a))
# [4.8.0](https://github.com/bmadcode/BMAD-METHOD/compare/v4.7.0...v4.8.0) (2025-06-19)

View File

@@ -2,7 +2,7 @@
CRITICAL: Read the full YML to understand your operating params, start activation to alter your state of being, follow startup instructions, stay in this being until told to exit this mode:
```yml
```yaml
root: .bmad-core
IDE-FILE-RESOLUTION: Dependencies map to files as {root}/{type}/{name}.md where root=".bmad-core", type=folder (tasks/templates/checklists/utils), name=dependency name.
REQUEST-RESOLUTION: Match user requests to your commands/dependencies flexibly (e.g., "draft story"→*create→create-next-story task, "make a new prd" would be dependencies->tasks->create-doc combined with the dependencies->templates->prd-tmpl.md), or ask for clarification if ambiguous.

View File

@@ -2,7 +2,7 @@
CRITICAL: Read the full YML, start activation to alter your state of being, follow startup section instructions, stay in this being until told to exit this mode:
```yml
```yaml
root: .bmad-core
IDE-FILE-RESOLUTION: Dependencies map to files as {root}/{type}/{name}.md where root=".bmad-core", type=folder (tasks/templates/checklists/utils), name=dependency name.
REQUEST-RESOLUTION: Match user requests to your commands/dependencies flexibly (e.g., "draft story"→*create→create-next-story task, "make a new prd" would be dependencies->tasks->create-doc combined with the dependencies->templates->prd-tmpl.md), or ask for clarification if ambiguous.
@@ -16,7 +16,7 @@ agent:
startup:
- Announce: Greet the user with your name and role, and inform of the *help command.
- CRITICAL: Load .bmad-core/core-config.yml and read devLoadAlwaysFiles list and devDebugLog values
- CRITICAL: Load .bmad-core/core-config.yaml and read devLoadAlwaysFiles list and devDebugLog values
- CRITICAL: Load ONLY files specified in devLoadAlwaysFiles. If any missing, inform user but continue
- CRITICAL: Do NOT load any story files during startup unless user requested you do
- CRITICAL: Do NOT begin development until told to proceed

View File

@@ -2,7 +2,7 @@
CRITICAL: Read the full YML, start activation to alter your state of being, follow startup section instructions, stay in this being until told to exit this mode:
```yml
```yaml
root: .bmad-core
IDE-FILE-RESOLUTION: Dependencies map to files as {root}/{type}/{name}.md where root=".bmad-core", type=folder (tasks/templates/checklists/utils), name=dependency name.
REQUEST-RESOLUTION: Match user requests to your commands/dependencies flexibly (e.g., "draft story"→*create→create-next-story task, "make a new prd" would be dependencies->tasks->create-doc combined with the dependencies->templates->prd-tmpl.md), or ask for clarification if ambiguous.

View File

@@ -2,7 +2,7 @@
CRITICAL: Read the full YML, start activation to alter your state of being, follow startup section instructions, stay in this being until told to exit this mode:
```yml
```yaml
root: .bmad-core
IDE-FILE-RESOLUTION: Dependencies map to files as {root}/{type}/{name}.md where root=".bmad-core", type=folder (tasks/templates/checklists/utils), name=dependency name.
REQUEST-RESOLUTION: Match user requests to your commands/dependencies flexibly (e.g., "draft story"→*create→create-next-story task, "make a new prd" would be dependencies->tasks->create-doc combined with the dependencies->templates->prd-tmpl.md), or ask for clarification if ambiguous.

View File

@@ -161,11 +161,11 @@ npx bmad-method install
5. **MUST switch to Dev agent** for implementation
6. Keep planning and coding in separate chat sessions
## Core Configuration (core-config.yml)
## Core Configuration (core-config.yaml)
**New in V4**: The `bmad-core/core-config.yml` file is a critical innovation that enables BMAD to work seamlessly with any project structure, providing maximum flexibility and backwards compatibility.
**New in V4**: The `bmad-core/core-config.yaml` file is a critical innovation that enables BMAD to work seamlessly with any project structure, providing maximum flexibility and backwards compatibility.
### What is core-config.yml?
### What is core-config.yaml?
This configuration file acts as a map for BMAD agents, telling them exactly where to find your project documents and how they're structured. It enables:
@@ -337,7 +337,7 @@ The BMAD-Method is built around a modular architecture centered on the `bmad-cor
#### 2. Agent Teams (`bmad-core/agent-teams/`)
- **Purpose**: Define collections of agents bundled together for specific purposes
- **Examples**: `team-all.yml` (comprehensive bundle), `team-fullstack.yml` (full-stack development)
- **Examples**: `team-all.yaml` (comprehensive bundle), `team-fullstack.yaml` (full-stack development)
- **Usage**: Creates pre-packaged contexts for web UI environments
#### 3. Workflows (`bmad-core/workflows/`)

View File

@@ -28,7 +28,7 @@ Create detailed, implementation-ready stories for brownfield projects where trad
#### 0.1 Check Workflow Plan
- Load core-config.yml and check if `workflow.trackProgress: true`
- Load core-config.yaml and check if `workflow.trackProgress: true`
- If yes, check for active plan at `workflow.planFile`
- If plan exists:
- Verify story creation aligns with current plan step

View File

@@ -10,12 +10,12 @@ To identify the next logical story based on project progress and epic definition
[[LLM: CRITICAL - This MUST be your first step]]
- Load `.bmad-core/core-config.yml` from the project root
- Load `.bmad-core/core-config.yaml` from the project root
- If the file does not exist:
- HALT and inform the user: "core-config.yml not found. This file is required for story creation. You can:
1. Copy it from GITHUB BMAD-METHOD/bmad-core/core-config.yml and configure it for your project
- HALT and inform the user: "core-config.yaml not found. This file is required for story creation. You can:
1. Copy it from GITHUB BMAD-METHOD/bmad-core/core-config.yaml and configure it for your project
2. Run the BMAD installer against your project to upgrade and add the file automatically
Please add and configure core-config.yml before proceeding."
Please add and configure core-config.yaml before proceeding."
- Extract the following key configurations:
- `devStoryLocation`: Where to save story files
- `prd.prdSharded`: Whether PRD is sharded or monolithic

View File

@@ -8,20 +8,20 @@
## Primary Method: Automatic with markdown-tree
[[LLM: First, check if markdownExploder is set to true in bmad-core/core-config.yml. If it is, attempt to run the command: `md-tree explode {input file} {output path}`.
[[LLM: First, check if markdownExploder is set to true in bmad-core/core-config.yaml. If it is, attempt to run the command: `md-tree explode {input file} {output path}`.
If the command succeeds, inform the user that the document has been sharded successfully and STOP - do not proceed further.
If the command fails (especially with an error indicating the command is not found or not available), inform the user: "The markdownExploder setting is enabled but the md-tree command is not available. Please either:
1. Install @kayvan/markdown-tree-parser globally with: `npm install -g @kayvan/markdown-tree-parser`
2. Or set markdownExploder to false in bmad-core/core-config.yml
2. Or set markdownExploder to false in bmad-core/core-config.yaml
**IMPORTANT: STOP HERE - do not proceed with manual sharding until one of the above actions is taken.**"
If markdownExploder is set to false, inform the user: "The markdownExploder setting is currently false. For better performance and reliability, you should:
1. Set markdownExploder to true in bmad-core/core-config.yml
1. Set markdownExploder to true in bmad-core/core-config.yaml
2. Install @kayvan/markdown-tree-parser globally with: `npm install -g @kayvan/markdown-tree-parser`
I will now proceed with the manual sharding process."

View File

@@ -8,7 +8,7 @@ Update the status of steps in an active workflow plan, mark completions, add not
### 0. Load Plan Configuration
[[LLM: First load core-config.yml to get plan settings]]
[[LLM: First load core-config.yaml to get plan settings]]
Check workflow configuration:

View File

@@ -396,7 +396,7 @@ After presenting the structure, apply `tasks#advanced-elicitation` protocol to r
{{project-root}}/
├── .github/ # CI/CD workflows
│ └── workflows/
│ └── main.yml
│ └── main.yaml
├── .vscode/ # VSCode settings (optional)
│ └── settings.json
├── build/ # Compiled output (git-ignored)

View File

@@ -288,7 +288,7 @@ Use appropriate format for the chosen API style. If no API (e.g., static site),
^^CONDITION: has_rest_api^^
```yml
```yaml
openapi: 3.0.0
info:
title:
@@ -644,8 +644,8 @@ After presenting this section, apply `tasks#advanced-elicitation` protocol]]
{{project-name}}/
├── .github/ # CI/CD workflows
│ └── workflows/
│ ├── ci.yml
│ └── deploy.yml
│ ├── ci.yaml
│ └── deploy.yaml
├── apps/ # Application packages
│ ├── web/ # Frontend application
│ │ ├── src/

View File

@@ -13,7 +13,7 @@ Provides utilities for agents and tasks to interact with workflow plans, check p
```
Check for workflow plan:
1. Look for docs/workflow-plan.md (default location)
2. Check core-config.yml for custom plan location
2. Check core-config.yaml for custom plan location
3. Return plan status (exists/not exists)
```

View File

@@ -15,7 +15,7 @@ Generate documents from templates by EXECUTING (not just reading) embedded instr
### 0. Check Workflow Plan (if configured)
[[LLM: Check if plan tracking is enabled in core-config.yml]]
[[LLM: Check if plan tracking is enabled in core-config.yaml]]
- If `workflow.trackProgress: true`, check for active plan using utils#plan-management
- If plan exists and this document creation is part of the plan:

View File

@@ -665,7 +665,7 @@ Generate documents from templates by EXECUTING (not just reading) embedded instr
### 0. Check Workflow Plan (if configured)
[[LLM: Check if plan tracking is enabled in core-config.yml]]
[[LLM: Check if plan tracking is enabled in core-config.yaml]]
- If `workflow.trackProgress: true`, check for active plan using utils#plan-management
- If plan exists and this document creation is part of the plan:
@@ -2113,11 +2113,11 @@ npx bmad-method install
5. **MUST switch to Dev agent** for implementation
6. Keep planning and coding in separate chat sessions
## Core Configuration (core-config.yml)
## Core Configuration (core-config.yaml)
**New in V4**: The `bmad-core/core-config.yml` file is a critical innovation that enables BMAD to work seamlessly with any project structure, providing maximum flexibility and backwards compatibility.
**New in V4**: The `bmad-core/core-config.yaml` file is a critical innovation that enables BMAD to work seamlessly with any project structure, providing maximum flexibility and backwards compatibility.
### What is core-config.yml?
### What is core-config.yaml?
This configuration file acts as a map for BMAD agents, telling them exactly where to find your project documents and how they're structured. It enables:
@@ -2289,7 +2289,7 @@ The BMAD-Method is built around a modular architecture centered on the `bmad-cor
#### 2. Agent Teams (`bmad-core/agent-teams/`)
- **Purpose**: Define collections of agents bundled together for specific purposes
- **Examples**: `team-all.yml` (comprehensive bundle), `team-fullstack.yml` (full-stack development)
- **Examples**: `team-all.yaml` (comprehensive bundle), `team-fullstack.yaml` (full-stack development)
- **Usage**: Creates pre-packaged contexts for web UI environments
#### 3. Workflows (`bmad-core/workflows/`)

View File

@@ -120,7 +120,7 @@ Generate documents from templates by EXECUTING (not just reading) embedded instr
### 0. Check Workflow Plan (if configured)
[[LLM: Check if plan tracking is enabled in core-config.yml]]
[[LLM: Check if plan tracking is enabled in core-config.yaml]]
- If `workflow.trackProgress: true`, check for active plan using utils#plan-management
- If plan exists and this document creation is part of the plan:
@@ -1315,7 +1315,7 @@ After presenting the structure, apply `tasks#advanced-elicitation` protocol to r
{{project-root}}/
├── .github/ # CI/CD workflows
│ └── workflows/
│ └── main.yml
│ └── main.yaml
├── .vscode/ # VSCode settings (optional)
│ └── settings.json
├── build/ # Compiled output (git-ignored)
@@ -2164,7 +2164,7 @@ Use appropriate format for the chosen API style. If no API (e.g., static site),
^^CONDITION: has_rest_api^^
```yml
```yaml
openapi: 3.0.0
info:
title:
@@ -2520,8 +2520,8 @@ After presenting this section, apply `tasks#advanced-elicitation` protocol]]
{{project-name}}/
├── .github/ # CI/CD workflows
│ └── workflows/
│ ├── ci.yml
│ └── deploy.yml
│ ├── ci.yaml
│ └── deploy.yaml
├── apps/ # Application packages
│ ├── web/ # Frontend application
│ │ ├── src/

View File

@@ -1199,7 +1199,7 @@ Generate documents from templates by EXECUTING (not just reading) embedded instr
### 0. Check Workflow Plan (if configured)
[[LLM: Check if plan tracking is enabled in core-config.yml]]
[[LLM: Check if plan tracking is enabled in core-config.yaml]]
- If `workflow.trackProgress: true`, check for active plan using utils#plan-management
- If plan exists and this document creation is part of the plan:
@@ -1900,12 +1900,12 @@ To identify the next logical story based on project progress and epic definition
[[LLM: CRITICAL - This MUST be your first step]]
- Load `.bmad-core/core-config.yml` from the project root
- Load `.bmad-core/core-config.yaml` from the project root
- If the file does not exist:
- HALT and inform the user: "core-config.yml not found. This file is required for story creation. You can:
1. Copy it from GITHUB BMAD-METHOD/bmad-core/core-config.yml and configure it for your project
- HALT and inform the user: "core-config.yaml not found. This file is required for story creation. You can:
1. Copy it from GITHUB BMAD-METHOD/bmad-core/core-config.yaml and configure it for your project
2. Run the BMAD installer against your project to upgrade and add the file automatically
Please add and configure core-config.yml before proceeding."
Please add and configure core-config.yaml before proceeding."
- Extract the following key configurations:
- `devStoryLocation`: Where to save story files
- `prd.prdSharded`: Whether PRD is sharded or monolithic
@@ -2510,20 +2510,20 @@ Would you like to proceed with documentation indexing? Please provide the requir
## Primary Method: Automatic with markdown-tree
[[LLM: First, check if markdownExploder is set to true in bmad-core/core-config.yml. If it is, attempt to run the command: `md-tree explode {input file} {output path}`.
[[LLM: First, check if markdownExploder is set to true in bmad-core/core-config.yaml. If it is, attempt to run the command: `md-tree explode {input file} {output path}`.
If the command succeeds, inform the user that the document has been sharded successfully and STOP - do not proceed further.
If the command fails (especially with an error indicating the command is not found or not available), inform the user: "The markdownExploder setting is enabled but the md-tree command is not available. Please either:
1. Install @kayvan/markdown-tree-parser globally with: `npm install -g @kayvan/markdown-tree-parser`
2. Or set markdownExploder to false in bmad-core/core-config.yml
2. Or set markdownExploder to false in bmad-core/core-config.yaml
**IMPORTANT: STOP HERE - do not proceed with manual sharding until one of the above actions is taken.**"
If markdownExploder is set to false, inform the user: "The markdownExploder setting is currently false. For better performance and reliability, you should:
1. Set markdownExploder to true in bmad-core/core-config.yml
1. Set markdownExploder to true in bmad-core/core-config.yaml
2. Install @kayvan/markdown-tree-parser globally with: `npm install -g @kayvan/markdown-tree-parser`
I will now proceed with the manual sharding process."
@@ -2704,7 +2704,7 @@ Update the status of steps in an active workflow plan, mark completions, add not
### 0. Load Plan Configuration
[[LLM: First load core-config.yml to get plan settings]]
[[LLM: First load core-config.yaml to get plan settings]]
Check workflow configuration:
@@ -3343,7 +3343,7 @@ After presenting the structure, apply `tasks#advanced-elicitation` protocol to r
{{project-root}}/
├── .github/ # CI/CD workflows
│ └── workflows/
│ └── main.yml
│ └── main.yaml
├── .vscode/ # VSCode settings (optional)
│ └── settings.json
├── build/ # Compiled output (git-ignored)
@@ -5718,7 +5718,7 @@ Use appropriate format for the chosen API style. If no API (e.g., static site),
^^CONDITION: has_rest_api^^
```yml
```yaml
openapi: 3.0.0
info:
title:
@@ -6074,8 +6074,8 @@ After presenting this section, apply `tasks#advanced-elicitation` protocol]]
{{project-name}}/
├── .github/ # CI/CD workflows
│ └── workflows/
│ ├── ci.yml
│ └── deploy.yml
│ ├── ci.yaml
│ └── deploy.yaml
├── apps/ # Application packages
│ ├── web/ # Frontend application
│ │ ├── src/
@@ -9104,11 +9104,11 @@ npx bmad-method install
5. **MUST switch to Dev agent** for implementation
6. Keep planning and coding in separate chat sessions
## Core Configuration (core-config.yml)
## Core Configuration (core-config.yaml)
**New in V4**: The `bmad-core/core-config.yml` file is a critical innovation that enables BMAD to work seamlessly with any project structure, providing maximum flexibility and backwards compatibility.
**New in V4**: The `bmad-core/core-config.yaml` file is a critical innovation that enables BMAD to work seamlessly with any project structure, providing maximum flexibility and backwards compatibility.
### What is core-config.yml?
### What is core-config.yaml?
This configuration file acts as a map for BMAD agents, telling them exactly where to find your project documents and how they're structured. It enables:
@@ -9280,7 +9280,7 @@ The BMAD-Method is built around a modular architecture centered on the `bmad-cor
#### 2. Agent Teams (`bmad-core/agent-teams/`)
- **Purpose**: Define collections of agents bundled together for specific purposes
- **Examples**: `team-all.yml` (comprehensive bundle), `team-fullstack.yml` (full-stack development)
- **Examples**: `team-all.yaml` (comprehensive bundle), `team-fullstack.yaml` (full-stack development)
- **Usage**: Creates pre-packaged contexts for web UI environments
#### 3. Workflows (`bmad-core/workflows/`)
@@ -9714,7 +9714,7 @@ Provides utilities for agents and tasks to interact with workflow plans, check p
```
Check for workflow plan:
1. Look for docs/workflow-plan.md (default location)
2. Check core-config.yml for custom plan location
2. Check core-config.yaml for custom plan location
3. Return plan status (exists/not exists)
```

View File

@@ -290,7 +290,7 @@ Generate documents from templates by EXECUTING (not just reading) embedded instr
### 0. Check Workflow Plan (if configured)
[[LLM: Check if plan tracking is enabled in core-config.yml]]
[[LLM: Check if plan tracking is enabled in core-config.yaml]]
- If `workflow.trackProgress: true`, check for active plan using utils#plan-management
- If plan exists and this document creation is part of the plan:
@@ -742,7 +742,7 @@ Update the status of steps in an active workflow plan, mark completions, add not
### 0. Load Plan Configuration
[[LLM: First load core-config.yml to get plan settings]]
[[LLM: First load core-config.yaml to get plan settings]]
Check workflow configuration:
@@ -1146,11 +1146,11 @@ npx bmad-method install
5. **MUST switch to Dev agent** for implementation
6. Keep planning and coding in separate chat sessions
## Core Configuration (core-config.yml)
## Core Configuration (core-config.yaml)
**New in V4**: The `bmad-core/core-config.yml` file is a critical innovation that enables BMAD to work seamlessly with any project structure, providing maximum flexibility and backwards compatibility.
**New in V4**: The `bmad-core/core-config.yaml` file is a critical innovation that enables BMAD to work seamlessly with any project structure, providing maximum flexibility and backwards compatibility.
### What is core-config.yml?
### What is core-config.yaml?
This configuration file acts as a map for BMAD agents, telling them exactly where to find your project documents and how they're structured. It enables:
@@ -1322,7 +1322,7 @@ The BMAD-Method is built around a modular architecture centered on the `bmad-cor
#### 2. Agent Teams (`bmad-core/agent-teams/`)
- **Purpose**: Define collections of agents bundled together for specific purposes
- **Examples**: `team-all.yml` (comprehensive bundle), `team-fullstack.yml` (full-stack development)
- **Examples**: `team-all.yaml` (comprehensive bundle), `team-fullstack.yaml` (full-stack development)
- **Usage**: Creates pre-packaged contexts for web UI environments
#### 3. Workflows (`bmad-core/workflows/`)
@@ -1750,7 +1750,7 @@ Provides utilities for agents and tasks to interact with workflow plans, check p
```
Check for workflow plan:
1. Look for docs/workflow-plan.md (default location)
2. Check core-config.yml for custom plan location
2. Check core-config.yaml for custom plan location
3. Return plan status (exists/not exists)
```

2
dist/agents/dev.txt vendored
View File

@@ -53,7 +53,7 @@ agent:
customization: null
startup:
- Announce: Greet the user with your name and role, and inform of the *help command.
- CRITICAL: Load .bmad-core/core-config.yml and read devLoadAlwaysFiles list and devDebugLog values
- CRITICAL: Load .bmad-core/core-config.yaml and read devLoadAlwaysFiles list and devDebugLog values
- CRITICAL: Load ONLY files specified in devLoadAlwaysFiles. If any missing, inform user but continue
- CRITICAL: Do NOT load any story files during startup unless user requested you do
- CRITICAL: Do NOT begin development until told to proceed

8
dist/agents/pm.txt vendored
View File

@@ -117,7 +117,7 @@ Generate documents from templates by EXECUTING (not just reading) embedded instr
### 0. Check Workflow Plan (if configured)
[[LLM: Check if plan tracking is enabled in core-config.yml]]
[[LLM: Check if plan tracking is enabled in core-config.yaml]]
- If `workflow.trackProgress: true`, check for active plan using utils#plan-management
- If plan exists and this document creation is part of the plan:
@@ -993,20 +993,20 @@ The LLM will:
## Primary Method: Automatic with markdown-tree
[[LLM: First, check if markdownExploder is set to true in bmad-core/core-config.yml. If it is, attempt to run the command: `md-tree explode {input file} {output path}`.
[[LLM: First, check if markdownExploder is set to true in bmad-core/core-config.yaml. If it is, attempt to run the command: `md-tree explode {input file} {output path}`.
If the command succeeds, inform the user that the document has been sharded successfully and STOP - do not proceed further.
If the command fails (especially with an error indicating the command is not found or not available), inform the user: "The markdownExploder setting is enabled but the md-tree command is not available. Please either:
1. Install @kayvan/markdown-tree-parser globally with: `npm install -g @kayvan/markdown-tree-parser`
2. Or set markdownExploder to false in bmad-core/core-config.yml
2. Or set markdownExploder to false in bmad-core/core-config.yaml
**IMPORTANT: STOP HERE - do not proceed with manual sharding until one of the above actions is taken.**"
If markdownExploder is set to false, inform the user: "The markdownExploder setting is currently false. For better performance and reliability, you should:
1. Set markdownExploder to true in bmad-core/core-config.yml
1. Set markdownExploder to true in bmad-core/core-config.yaml
2. Install @kayvan/markdown-tree-parser globally with: `npm install -g @kayvan/markdown-tree-parser`
I will now proceed with the manual sharding process."

6
dist/agents/po.txt vendored
View File

@@ -208,20 +208,20 @@ The LLM will:
## Primary Method: Automatic with markdown-tree
[[LLM: First, check if markdownExploder is set to true in bmad-core/core-config.yml. If it is, attempt to run the command: `md-tree explode {input file} {output path}`.
[[LLM: First, check if markdownExploder is set to true in bmad-core/core-config.yaml. If it is, attempt to run the command: `md-tree explode {input file} {output path}`.
If the command succeeds, inform the user that the document has been sharded successfully and STOP - do not proceed further.
If the command fails (especially with an error indicating the command is not found or not available), inform the user: "The markdownExploder setting is enabled but the md-tree command is not available. Please either:
1. Install @kayvan/markdown-tree-parser globally with: `npm install -g @kayvan/markdown-tree-parser`
2. Or set markdownExploder to false in bmad-core/core-config.yml
2. Or set markdownExploder to false in bmad-core/core-config.yaml
**IMPORTANT: STOP HERE - do not proceed with manual sharding until one of the above actions is taken.**"
If markdownExploder is set to false, inform the user: "The markdownExploder setting is currently false. For better performance and reliability, you should:
1. Set markdownExploder to true in bmad-core/core-config.yml
1. Set markdownExploder to true in bmad-core/core-config.yaml
2. Install @kayvan/markdown-tree-parser globally with: `npm install -g @kayvan/markdown-tree-parser`
I will now proceed with the manual sharding process."

8
dist/agents/sm.txt vendored
View File

@@ -102,12 +102,12 @@ To identify the next logical story based on project progress and epic definition
[[LLM: CRITICAL - This MUST be your first step]]
- Load `.bmad-core/core-config.yml` from the project root
- Load `.bmad-core/core-config.yaml` from the project root
- If the file does not exist:
- HALT and inform the user: "core-config.yml not found. This file is required for story creation. You can:
1. Copy it from GITHUB BMAD-METHOD/bmad-core/core-config.yml and configure it for your project
- HALT and inform the user: "core-config.yaml not found. This file is required for story creation. You can:
1. Copy it from GITHUB BMAD-METHOD/bmad-core/core-config.yaml and configure it for your project
2. Run the BMAD installer against your project to upgrade and add the file automatically
Please add and configure core-config.yml before proceeding."
Please add and configure core-config.yaml before proceeding."
- Extract the following key configurations:
- `devStoryLocation`: Where to save story files
- `prd.prdSharded`: Whether PRD is sharded or monolithic

View File

@@ -477,7 +477,7 @@ Generate documents from templates by EXECUTING (not just reading) embedded instr
### 0. Check Workflow Plan (if configured)
[[LLM: Check if plan tracking is enabled in core-config.yml]]
[[LLM: Check if plan tracking is enabled in core-config.yaml]]
- If `workflow.trackProgress: true`, check for active plan using utils#plan-management
- If plan exists and this document creation is part of the plan:

View File

@@ -117,7 +117,7 @@ Generate documents from templates by EXECUTING (not just reading) embedded instr
### 0. Check Workflow Plan (if configured)
[[LLM: Check if plan tracking is enabled in core-config.yml]]
[[LLM: Check if plan tracking is enabled in core-config.yaml]]
- If `workflow.trackProgress: true`, check for active plan using utils#plan-management
- If plan exists and this document creation is part of the plan:

View File

@@ -1004,7 +1004,7 @@ Generate documents from templates by EXECUTING (not just reading) embedded instr
### 0. Check Workflow Plan (if configured)
[[LLM: Check if plan tracking is enabled in core-config.yml]]
[[LLM: Check if plan tracking is enabled in core-config.yaml]]
- If `workflow.trackProgress: true`, check for active plan using utils#plan-management
- If plan exists and this document creation is part of the plan:
@@ -2969,7 +2969,7 @@ Update the status of steps in an active workflow plan, mark completions, add not
### 0. Load Plan Configuration
[[LLM: First load core-config.yml to get plan settings]]
[[LLM: First load core-config.yaml to get plan settings]]
Check workflow configuration:
@@ -3225,7 +3225,7 @@ Provides utilities for agents and tasks to interact with workflow plans, check p
```
Check for workflow plan:
1. Look for docs/workflow-plan.md (default location)
2. Check core-config.yml for custom plan location
2. Check core-config.yaml for custom plan location
3. Return plan status (exists/not exists)
```
@@ -7110,7 +7110,7 @@ class {{ClassName}} extends {{PhaseClass}} {
- {{future_optimization_1}}
==================== END: templates#game-story-tmpl ====================
==================== START: workflows#game-dev-greenfield ====================
==================== START: workflows#game-dev-greenfield.yaml ====================
workflow:
id: game-dev-greenfield
name: Game Development - Greenfield Project
@@ -7294,9 +7294,9 @@ workflow:
- Testing framework in place
- Team roles and responsibilities defined
- First implementation stories created and ready
==================== END: workflows#game-dev-greenfield ====================
==================== END: workflows#game-dev-greenfield.yaml ====================
==================== START: workflows#game-prototype ====================
==================== START: workflows#game-prototype.yaml ====================
workflow:
id: game-prototype
name: Game Prototype Development
@@ -7472,4 +7472,4 @@ workflow:
technical_to_stories: Technical plan complete. Create focused implementation stories for prototype development.
stories_to_implementation: Stories ready. Begin iterative implementation with frequent playtesting and design validation.
prototype_to_evaluation: Prototype playable. Evaluate core mechanics, gather feedback, and determine next development steps.
==================== END: workflows#game-prototype ====================
==================== END: workflows#game-prototype.yaml ====================

View File

@@ -586,7 +586,7 @@ IMPORTANT: Only proceed after plan.md is approved
expansion-packs/
└── {pack-name}/
├── plan.md (ALREADY CREATED)
├── manifest.yml
├── manifest.yaml
├── README.md
├── agents/
│ ├── {pack-name}-orchestrator.md (REQUIRED - Custom themed orchestrator)
@@ -609,13 +609,13 @@ expansion-packs/
├── workflows/
│ └── {domain}-workflow.md (REQUIRED if multiple agents)
└── agent-teams/
└── {domain}-team.yml (REQUIRED if multiple agents)
└── {domain}-team.yaml (REQUIRED if multiple agents)
```
#### 3.2 Create Manifest
Create `manifest.yml`:
Create `manifest.yaml`:
```yaml
name: {pack-name}
@@ -658,7 +658,7 @@ files:
- {domain}-workflow.md # REQUIRED if multiple agents - decision trees
agent-teams:
- {domain}-team.yml # REQUIRED if multiple agents - team config
- {domain}-team.yaml # REQUIRED if multiple agents - team config
# Data files users must provide (in their bmad-core/data/ directory)
required_user_data:
@@ -794,7 +794,7 @@ cp common/utils/workflow-management.md expansion-packs/{pack-name}/utils/
1. Design decision trees for workflow branching
2. Create handoff protocols to specialist agents
3. Implement validation loops and quality checkpoints
4. **If multiple agents**: Create team configuration in `agent-teams/{domain}-team.yml`
4. **If multiple agents**: Create team configuration in `agent-teams/{domain}-team.yaml`
5. **If multiple agents**: Create workflow in `workflows/{domain}-workflow.md`
6. Ensure orchestrator references workflow-management utility
7. Verify ALL referenced tasks exist (including core utilities)
@@ -965,7 +965,7 @@ Before declaring complete:
1. [ ] Decision trees and workflow orchestration complete
2. [ ] Knowledge base files embedded (best practices, terminology, standards)
3. [ ] Manifest.yml reflects all components and dependencies
3. [ ] Manifest.yaml reflects all components and dependencies
4. [ ] All items in plan.md marked complete
5. [ ] No orphaned tasks or templates
@@ -1072,7 +1072,7 @@ These files are automatically available to all agents and don't require user set
```text
healthcare/
├── plan.md (Created first for approval)
├── manifest.yml (with dependency mapping and character descriptions)
├── manifest.yaml (with dependency mapping and character descriptions)
├── README.md (featuring character introductions and numbered options)
├── agents/
│ ├── healthcare-orchestrator.md (Dr. Sarah Chen - YAML-in-Markdown)
@@ -1098,7 +1098,7 @@ healthcare/
│ ├── clinical-trial-workflow.md (decision trees with Mermaid diagrams)
│ └── compliance-audit-workflow.md (handoff protocols and quality gates)
└── agent-teams/
└── healthcare-team.yml (coordinated team configurations)
└── healthcare-team.yaml (coordinated team configurations)
Required user data files (bmad-core/data/):
- medical-terminology.md (institution-specific terms and abbreviations)
@@ -1309,7 +1309,7 @@ Embedded knowledge (automatic):
- [ ] All agent references verified (tasks, templates, data, checklists)
- [ ] Data requirements documented with validation criteria and examples
- [ ] README includes character introductions and numbered options explanation
- [ ] manifest.yml reflects actual files with dependency mapping and character descriptions
- [ ] manifest.yaml reflects actual files with dependency mapping and character descriptions
**Advanced Quality Gates:**
@@ -1732,7 +1732,7 @@ Present these numbered options to the user:
CRITICAL: Read the full YML, start activation to alter your state of being, follow startup section instructions, stay in this being until told to exit this mode:
```yml
```yaml
activation-instructions:
- Follow all instructions in this file -> this defines you, your persona and more importantly what you can do. STAY IN CHARACTER!
- Only read the files/tasks listed here when user selects them for execution to minimize context usage

View File

@@ -118,7 +118,7 @@ Generate documents from templates by EXECUTING (not just reading) embedded instr
### 0. Check Workflow Plan (if configured)
[[LLM: Check if plan tracking is enabled in core-config.yml]]
[[LLM: Check if plan tracking is enabled in core-config.yaml]]
- If `workflow.trackProgress: true`, check for active plan using utils#plan-management
- If plan exists and this document creation is part of the plan:
@@ -1300,7 +1300,7 @@ kind: ConfigMap
metadata:
name: prometheus-config
data:
prometheus.yml: |
prometheus.yaml: |
global:
scrape_interval: {{scrape_interval}}
scrape_configs:

View File

@@ -337,7 +337,7 @@ agent:
customization: null
startup:
- Announce: Greet the user with your name and role, and inform of the *help command.
- CRITICAL: Load .bmad-core/core-config.yml and read devLoadAlwaysFiles list and devDebugLog values
- CRITICAL: Load .bmad-core/core-config.yaml and read devLoadAlwaysFiles list and devDebugLog values
- CRITICAL: Load ONLY files specified in devLoadAlwaysFiles. If any missing, inform user but continue
- CRITICAL: Do NOT load any story files during startup unless user requested you do
- CRITICAL: Do NOT begin development until told to proceed
@@ -782,7 +782,7 @@ Generate documents from templates by EXECUTING (not just reading) embedded instr
### 0. Check Workflow Plan (if configured)
[[LLM: Check if plan tracking is enabled in core-config.yml]]
[[LLM: Check if plan tracking is enabled in core-config.yaml]]
- If `workflow.trackProgress: true`, check for active plan using utils#plan-management
- If plan exists and this document creation is part of the plan:
@@ -1234,7 +1234,7 @@ Update the status of steps in an active workflow plan, mark completions, add not
### 0. Load Plan Configuration
[[LLM: First load core-config.yml to get plan settings]]
[[LLM: First load core-config.yaml to get plan settings]]
Check workflow configuration:
@@ -1638,11 +1638,11 @@ npx bmad-method install
5. **MUST switch to Dev agent** for implementation
6. Keep planning and coding in separate chat sessions
## Core Configuration (core-config.yml)
## Core Configuration (core-config.yaml)
**New in V4**: The `bmad-core/core-config.yml` file is a critical innovation that enables BMAD to work seamlessly with any project structure, providing maximum flexibility and backwards compatibility.
**New in V4**: The `bmad-core/core-config.yaml` file is a critical innovation that enables BMAD to work seamlessly with any project structure, providing maximum flexibility and backwards compatibility.
### What is core-config.yml?
### What is core-config.yaml?
This configuration file acts as a map for BMAD agents, telling them exactly where to find your project documents and how they're structured. It enables:
@@ -1814,7 +1814,7 @@ The BMAD-Method is built around a modular architecture centered on the `bmad-cor
#### 2. Agent Teams (`bmad-core/agent-teams/`)
- **Purpose**: Define collections of agents bundled together for specific purposes
- **Examples**: `team-all.yml` (comprehensive bundle), `team-fullstack.yml` (full-stack development)
- **Examples**: `team-all.yaml` (comprehensive bundle), `team-fullstack.yaml` (full-stack development)
- **Usage**: Creates pre-packaged contexts for web UI environments
#### 3. Workflows (`bmad-core/workflows/`)
@@ -2242,7 +2242,7 @@ Provides utilities for agents and tasks to interact with workflow plans, check p
```
Check for workflow plan:
1. Look for docs/workflow-plan.md (default location)
2. Check core-config.yml for custom plan location
2. Check core-config.yaml for custom plan location
3. Return plan status (exists/not exists)
```
@@ -4706,7 +4706,7 @@ After presenting the structure, apply `tasks#advanced-elicitation` protocol to r
{{project-root}}/
├── .github/ # CI/CD workflows
│ └── workflows/
│ └── main.yml
│ └── main.yaml
├── .vscode/ # VSCode settings (optional)
│ └── settings.json
├── build/ # Compiled output (git-ignored)
@@ -5555,7 +5555,7 @@ Use appropriate format for the chosen API style. If no API (e.g., static site),
^^CONDITION: has_rest_api^^
```yml
```yaml
openapi: 3.0.0
info:
title:
@@ -5911,8 +5911,8 @@ After presenting this section, apply `tasks#advanced-elicitation` protocol]]
{{project-name}}/
├── .github/ # CI/CD workflows
│ └── workflows/
│ ├── ci.yml
│ └── deploy.yml
│ ├── ci.yaml
│ └── deploy.yaml
├── apps/ # Application packages
│ ├── web/ # Frontend application
│ │ ├── src/
@@ -7788,20 +7788,20 @@ The story creation is successful when:
## Primary Method: Automatic with markdown-tree
[[LLM: First, check if markdownExploder is set to true in bmad-core/core-config.yml. If it is, attempt to run the command: `md-tree explode {input file} {output path}`.
[[LLM: First, check if markdownExploder is set to true in bmad-core/core-config.yaml. If it is, attempt to run the command: `md-tree explode {input file} {output path}`.
If the command succeeds, inform the user that the document has been sharded successfully and STOP - do not proceed further.
If the command fails (especially with an error indicating the command is not found or not available), inform the user: "The markdownExploder setting is enabled but the md-tree command is not available. Please either:
1. Install @kayvan/markdown-tree-parser globally with: `npm install -g @kayvan/markdown-tree-parser`
2. Or set markdownExploder to false in bmad-core/core-config.yml
2. Or set markdownExploder to false in bmad-core/core-config.yaml
**IMPORTANT: STOP HERE - do not proceed with manual sharding until one of the above actions is taken.**"
If markdownExploder is set to false, inform the user: "The markdownExploder setting is currently false. For better performance and reliability, you should:
1. Set markdownExploder to true in bmad-core/core-config.yml
1. Set markdownExploder to true in bmad-core/core-config.yaml
2. Install @kayvan/markdown-tree-parser globally with: `npm install -g @kayvan/markdown-tree-parser`
I will now proceed with the manual sharding process."
@@ -9675,12 +9675,12 @@ To identify the next logical story based on project progress and epic definition
[[LLM: CRITICAL - This MUST be your first step]]
- Load `.bmad-core/core-config.yml` from the project root
- Load `.bmad-core/core-config.yaml` from the project root
- If the file does not exist:
- HALT and inform the user: "core-config.yml not found. This file is required for story creation. You can:
1. Copy it from GITHUB BMAD-METHOD/bmad-core/core-config.yml and configure it for your project
- HALT and inform the user: "core-config.yaml not found. This file is required for story creation. You can:
1. Copy it from GITHUB BMAD-METHOD/bmad-core/core-config.yaml and configure it for your project
2. Run the BMAD installer against your project to upgrade and add the file automatically
Please add and configure core-config.yml before proceeding."
Please add and configure core-config.yaml before proceeding."
- Extract the following key configurations:
- `devStoryLocation`: Where to save story files
- `prd.prdSharded`: Whether PRD is sharded or monolithic

View File

@@ -626,7 +626,7 @@ Generate documents from templates by EXECUTING (not just reading) embedded instr
### 0. Check Workflow Plan (if configured)
[[LLM: Check if plan tracking is enabled in core-config.yml]]
[[LLM: Check if plan tracking is enabled in core-config.yaml]]
- If `workflow.trackProgress: true`, check for active plan using utils#plan-management
- If plan exists and this document creation is part of the plan:
@@ -1078,7 +1078,7 @@ Update the status of steps in an active workflow plan, mark completions, add not
### 0. Load Plan Configuration
[[LLM: First load core-config.yml to get plan settings]]
[[LLM: First load core-config.yaml to get plan settings]]
Check workflow configuration:
@@ -1482,11 +1482,11 @@ npx bmad-method install
5. **MUST switch to Dev agent** for implementation
6. Keep planning and coding in separate chat sessions
## Core Configuration (core-config.yml)
## Core Configuration (core-config.yaml)
**New in V4**: The `bmad-core/core-config.yml` file is a critical innovation that enables BMAD to work seamlessly with any project structure, providing maximum flexibility and backwards compatibility.
**New in V4**: The `bmad-core/core-config.yaml` file is a critical innovation that enables BMAD to work seamlessly with any project structure, providing maximum flexibility and backwards compatibility.
### What is core-config.yml?
### What is core-config.yaml?
This configuration file acts as a map for BMAD agents, telling them exactly where to find your project documents and how they're structured. It enables:
@@ -1658,7 +1658,7 @@ The BMAD-Method is built around a modular architecture centered on the `bmad-cor
#### 2. Agent Teams (`bmad-core/agent-teams/`)
- **Purpose**: Define collections of agents bundled together for specific purposes
- **Examples**: `team-all.yml` (comprehensive bundle), `team-fullstack.yml` (full-stack development)
- **Examples**: `team-all.yaml` (comprehensive bundle), `team-fullstack.yaml` (full-stack development)
- **Usage**: Creates pre-packaged contexts for web UI environments
#### 3. Workflows (`bmad-core/workflows/`)
@@ -2086,7 +2086,7 @@ Provides utilities for agents and tasks to interact with workflow plans, check p
```
Check for workflow plan:
1. Look for docs/workflow-plan.md (default location)
2. Check core-config.yml for custom plan location
2. Check core-config.yaml for custom plan location
3. Return plan status (exists/not exists)
```
@@ -4551,20 +4551,20 @@ The LLM will:
## Primary Method: Automatic with markdown-tree
[[LLM: First, check if markdownExploder is set to true in bmad-core/core-config.yml. If it is, attempt to run the command: `md-tree explode {input file} {output path}`.
[[LLM: First, check if markdownExploder is set to true in bmad-core/core-config.yaml. If it is, attempt to run the command: `md-tree explode {input file} {output path}`.
If the command succeeds, inform the user that the document has been sharded successfully and STOP - do not proceed further.
If the command fails (especially with an error indicating the command is not found or not available), inform the user: "The markdownExploder setting is enabled but the md-tree command is not available. Please either:
1. Install @kayvan/markdown-tree-parser globally with: `npm install -g @kayvan/markdown-tree-parser`
2. Or set markdownExploder to false in bmad-core/core-config.yml
2. Or set markdownExploder to false in bmad-core/core-config.yaml
**IMPORTANT: STOP HERE - do not proceed with manual sharding until one of the above actions is taken.**"
If markdownExploder is set to false, inform the user: "The markdownExploder setting is currently false. For better performance and reliability, you should:
1. Set markdownExploder to true in bmad-core/core-config.yml
1. Set markdownExploder to true in bmad-core/core-config.yaml
2. Install @kayvan/markdown-tree-parser globally with: `npm install -g @kayvan/markdown-tree-parser`
I will now proceed with the manual sharding process."
@@ -6646,7 +6646,7 @@ After presenting the structure, apply `tasks#advanced-elicitation` protocol to r
{{project-root}}/
├── .github/ # CI/CD workflows
│ └── workflows/
│ └── main.yml
│ └── main.yaml
├── .vscode/ # VSCode settings (optional)
│ └── settings.json
├── build/ # Compiled output (git-ignored)
@@ -7495,7 +7495,7 @@ Use appropriate format for the chosen API style. If no API (e.g., static site),
^^CONDITION: has_rest_api^^
```yml
```yaml
openapi: 3.0.0
info:
title:
@@ -7851,8 +7851,8 @@ After presenting this section, apply `tasks#advanced-elicitation` protocol]]
{{project-name}}/
├── .github/ # CI/CD workflows
│ └── workflows/
│ ├── ci.yml
│ └── deploy.yml
│ ├── ci.yaml
│ └── deploy.yaml
├── apps/ # Application packages
│ ├── web/ # Frontend application
│ │ ├── src/

View File

@@ -319,7 +319,7 @@ agent:
customization: null
startup:
- Announce: Greet the user with your name and role, and inform of the *help command.
- CRITICAL: Load .bmad-core/core-config.yml and read devLoadAlwaysFiles list and devDebugLog values
- CRITICAL: Load .bmad-core/core-config.yaml and read devLoadAlwaysFiles list and devDebugLog values
- CRITICAL: Load ONLY files specified in devLoadAlwaysFiles. If any missing, inform user but continue
- CRITICAL: Do NOT load any story files during startup unless user requested you do
- CRITICAL: Do NOT begin development until told to proceed
@@ -526,7 +526,7 @@ Generate documents from templates by EXECUTING (not just reading) embedded instr
### 0. Check Workflow Plan (if configured)
[[LLM: Check if plan tracking is enabled in core-config.yml]]
[[LLM: Check if plan tracking is enabled in core-config.yaml]]
- If `workflow.trackProgress: true`, check for active plan using utils#plan-management
- If plan exists and this document creation is part of the plan:
@@ -978,7 +978,7 @@ Update the status of steps in an active workflow plan, mark completions, add not
### 0. Load Plan Configuration
[[LLM: First load core-config.yml to get plan settings]]
[[LLM: First load core-config.yaml to get plan settings]]
Check workflow configuration:
@@ -1382,11 +1382,11 @@ npx bmad-method install
5. **MUST switch to Dev agent** for implementation
6. Keep planning and coding in separate chat sessions
## Core Configuration (core-config.yml)
## Core Configuration (core-config.yaml)
**New in V4**: The `bmad-core/core-config.yml` file is a critical innovation that enables BMAD to work seamlessly with any project structure, providing maximum flexibility and backwards compatibility.
**New in V4**: The `bmad-core/core-config.yaml` file is a critical innovation that enables BMAD to work seamlessly with any project structure, providing maximum flexibility and backwards compatibility.
### What is core-config.yml?
### What is core-config.yaml?
This configuration file acts as a map for BMAD agents, telling them exactly where to find your project documents and how they're structured. It enables:
@@ -1558,7 +1558,7 @@ The BMAD-Method is built around a modular architecture centered on the `bmad-cor
#### 2. Agent Teams (`bmad-core/agent-teams/`)
- **Purpose**: Define collections of agents bundled together for specific purposes
- **Examples**: `team-all.yml` (comprehensive bundle), `team-fullstack.yml` (full-stack development)
- **Examples**: `team-all.yaml` (comprehensive bundle), `team-fullstack.yaml` (full-stack development)
- **Usage**: Creates pre-packaged contexts for web UI environments
#### 3. Workflows (`bmad-core/workflows/`)
@@ -1986,7 +1986,7 @@ Provides utilities for agents and tasks to interact with workflow plans, check p
```
Check for workflow plan:
1. Look for docs/workflow-plan.md (default location)
2. Check core-config.yml for custom plan location
2. Check core-config.yaml for custom plan location
3. Return plan status (exists/not exists)
```
@@ -2404,20 +2404,20 @@ The LLM will:
## Primary Method: Automatic with markdown-tree
[[LLM: First, check if markdownExploder is set to true in bmad-core/core-config.yml. If it is, attempt to run the command: `md-tree explode {input file} {output path}`.
[[LLM: First, check if markdownExploder is set to true in bmad-core/core-config.yaml. If it is, attempt to run the command: `md-tree explode {input file} {output path}`.
If the command succeeds, inform the user that the document has been sharded successfully and STOP - do not proceed further.
If the command fails (especially with an error indicating the command is not found or not available), inform the user: "The markdownExploder setting is enabled but the md-tree command is not available. Please either:
1. Install @kayvan/markdown-tree-parser globally with: `npm install -g @kayvan/markdown-tree-parser`
2. Or set markdownExploder to false in bmad-core/core-config.yml
2. Or set markdownExploder to false in bmad-core/core-config.yaml
**IMPORTANT: STOP HERE - do not proceed with manual sharding until one of the above actions is taken.**"
If markdownExploder is set to false, inform the user: "The markdownExploder setting is currently false. For better performance and reliability, you should:
1. Set markdownExploder to true in bmad-core/core-config.yml
1. Set markdownExploder to true in bmad-core/core-config.yaml
2. Install @kayvan/markdown-tree-parser globally with: `npm install -g @kayvan/markdown-tree-parser`
I will now proceed with the manual sharding process."
@@ -3690,12 +3690,12 @@ To identify the next logical story based on project progress and epic definition
[[LLM: CRITICAL - This MUST be your first step]]
- Load `.bmad-core/core-config.yml` from the project root
- Load `.bmad-core/core-config.yaml` from the project root
- If the file does not exist:
- HALT and inform the user: "core-config.yml not found. This file is required for story creation. You can:
1. Copy it from GITHUB BMAD-METHOD/bmad-core/core-config.yml and configure it for your project
- HALT and inform the user: "core-config.yaml not found. This file is required for story creation. You can:
1. Copy it from GITHUB BMAD-METHOD/bmad-core/core-config.yaml and configure it for your project
2. Run the BMAD installer against your project to upgrade and add the file automatically
Please add and configure core-config.yml before proceeding."
Please add and configure core-config.yaml before proceeding."
- Extract the following key configurations:
- `devStoryLocation`: Where to save story files
- `prd.prdSharded`: Whether PRD is sharded or monolithic

View File

@@ -558,7 +558,7 @@ Generate documents from templates by EXECUTING (not just reading) embedded instr
### 0. Check Workflow Plan (if configured)
[[LLM: Check if plan tracking is enabled in core-config.yml]]
[[LLM: Check if plan tracking is enabled in core-config.yaml]]
- If `workflow.trackProgress: true`, check for active plan using utils#plan-management
- If plan exists and this document creation is part of the plan:
@@ -1010,7 +1010,7 @@ Update the status of steps in an active workflow plan, mark completions, add not
### 0. Load Plan Configuration
[[LLM: First load core-config.yml to get plan settings]]
[[LLM: First load core-config.yaml to get plan settings]]
Check workflow configuration:
@@ -1414,11 +1414,11 @@ npx bmad-method install
5. **MUST switch to Dev agent** for implementation
6. Keep planning and coding in separate chat sessions
## Core Configuration (core-config.yml)
## Core Configuration (core-config.yaml)
**New in V4**: The `bmad-core/core-config.yml` file is a critical innovation that enables BMAD to work seamlessly with any project structure, providing maximum flexibility and backwards compatibility.
**New in V4**: The `bmad-core/core-config.yaml` file is a critical innovation that enables BMAD to work seamlessly with any project structure, providing maximum flexibility and backwards compatibility.
### What is core-config.yml?
### What is core-config.yaml?
This configuration file acts as a map for BMAD agents, telling them exactly where to find your project documents and how they're structured. It enables:
@@ -1590,7 +1590,7 @@ The BMAD-Method is built around a modular architecture centered on the `bmad-cor
#### 2. Agent Teams (`bmad-core/agent-teams/`)
- **Purpose**: Define collections of agents bundled together for specific purposes
- **Examples**: `team-all.yml` (comprehensive bundle), `team-fullstack.yml` (full-stack development)
- **Examples**: `team-all.yaml` (comprehensive bundle), `team-fullstack.yaml` (full-stack development)
- **Usage**: Creates pre-packaged contexts for web UI environments
#### 3. Workflows (`bmad-core/workflows/`)
@@ -2018,7 +2018,7 @@ Provides utilities for agents and tasks to interact with workflow plans, check p
```
Check for workflow plan:
1. Look for docs/workflow-plan.md (default location)
2. Check core-config.yml for custom plan location
2. Check core-config.yaml for custom plan location
3. Return plan status (exists/not exists)
```
@@ -4483,20 +4483,20 @@ The LLM will:
## Primary Method: Automatic with markdown-tree
[[LLM: First, check if markdownExploder is set to true in bmad-core/core-config.yml. If it is, attempt to run the command: `md-tree explode {input file} {output path}`.
[[LLM: First, check if markdownExploder is set to true in bmad-core/core-config.yaml. If it is, attempt to run the command: `md-tree explode {input file} {output path}`.
If the command succeeds, inform the user that the document has been sharded successfully and STOP - do not proceed further.
If the command fails (especially with an error indicating the command is not found or not available), inform the user: "The markdownExploder setting is enabled but the md-tree command is not available. Please either:
1. Install @kayvan/markdown-tree-parser globally with: `npm install -g @kayvan/markdown-tree-parser`
2. Or set markdownExploder to false in bmad-core/core-config.yml
2. Or set markdownExploder to false in bmad-core/core-config.yaml
**IMPORTANT: STOP HERE - do not proceed with manual sharding until one of the above actions is taken.**"
If markdownExploder is set to false, inform the user: "The markdownExploder setting is currently false. For better performance and reliability, you should:
1. Set markdownExploder to true in bmad-core/core-config.yml
1. Set markdownExploder to true in bmad-core/core-config.yaml
2. Install @kayvan/markdown-tree-parser globally with: `npm install -g @kayvan/markdown-tree-parser`
I will now proceed with the manual sharding process."
@@ -6108,7 +6108,7 @@ After presenting the structure, apply `tasks#advanced-elicitation` protocol to r
{{project-root}}/
├── .github/ # CI/CD workflows
│ └── workflows/
│ └── main.yml
│ └── main.yaml
├── .vscode/ # VSCode settings (optional)
│ └── settings.json
├── build/ # Compiled output (git-ignored)
@@ -6957,7 +6957,7 @@ Use appropriate format for the chosen API style. If no API (e.g., static site),
^^CONDITION: has_rest_api^^
```yml
```yaml
openapi: 3.0.0
info:
title:
@@ -7313,8 +7313,8 @@ After presenting this section, apply `tasks#advanced-elicitation` protocol]]
{{project-name}}/
├── .github/ # CI/CD workflows
│ └── workflows/
│ ├── ci.yml
│ └── deploy.yml
│ ├── ci.yaml
│ └── deploy.yaml
├── apps/ # Application packages
│ ├── web/ # Frontend application
│ │ ├── src/

View File

@@ -33,7 +33,7 @@ Select mode from the mode selector (usually in status bar):
### File Permission Summary
- **Documentation agents** (analyst, pm, po, sm): `.md`, `.txt` only
- **bmad-architect**: `.md`, `.txt`, `.yml`, `.yaml`, `.json`
- **bmad-architect**: `.md`, `.txt`, `.yaml`, `.yaml`, `.json`
- **bmad-qa**: Test files (`.test.*`, `.spec.*`) and `.md`
- **bmad-ux-expert**: `.md`, `.css`, `.scss`, `.html`, `.jsx`, `.tsx`
- **Full access**: `bmad-dev`, `bmad-bmad-master`, `bmad-orchestrator`

View File

@@ -75,12 +75,12 @@ The `.bmad-core` directory contains all the definitions and resources that give
### 3.2. Agent Teams (`.bmad-core/agent-teams/`)
- **Purpose**: Team files (e.g., `team-all.yml`) define collections of agents and workflows that are bundled together for a specific purpose, like "full-stack development" or "backend-only". This creates a larger, pre-packaged context for web UI environments.
- **Purpose**: Team files (e.g., `team-all.yaml`) define collections of agents and workflows that are bundled together for a specific purpose, like "full-stack development" or "backend-only". This creates a larger, pre-packaged context for web UI environments.
- **Structure**: A team file lists the agents to include. It can use wildcards, such as `"*"` to include all agents. This allows for the creation of comprehensive bundles like `team-all`.
### 3.3. Workflows (`.bmad-core/workflows/`)
- **Purpose**: Workflows are YAML files (e.g., `greenfield-fullstack.yml`) that define a prescribed sequence of steps and agent interactions for a specific project type. They act as a strategic guide for the user and the `bmad-orchestrator` agent.
- **Purpose**: Workflows are YAML files (e.g., `greenfield-fullstack.yaml`) that define a prescribed sequence of steps and agent interactions for a specific project type. They act as a strategic guide for the user and the `bmad-orchestrator` agent.
- **Structure**: A workflow defines sequences for both complex and simple projects, lists the agents involved at each step, the artifacts they create, and the conditions for moving from one step to the next. It often includes a Mermaid diagram for visualization.
### 3.4. Reusable Resources (`templates`, `tasks`, `checklists`, `data`)
@@ -239,10 +239,10 @@ bmad-method/
│ │ ├── sm.md # Scrum master agent
│ │ └── ux-expert.md # UX designer agent
│ ├── agent-teams/ # Pre-configured agent teams
│ │ ├── team-all.yml # All agents bundle
│ │ ├── team-fullstack.yml # Full-stack development team
│ │ ├── team-ide-minimal.yml # Minimal IDE-focused team
│ │ └── team-no-ui.yml # Backend-only team
│ │ ├── team-all.yaml # All agents bundle
│ │ ├── team-fullstack.yaml # Full-stack development team
│ │ ├── team-ide-minimal.yaml # Minimal IDE-focused team
│ │ └── team-no-ui.yaml # Backend-only team
│ ├── checklists/ # Quality assurance checklists
│ │ ├── architect-checklist.md
│ │ ├── po-master-checklist.md
@@ -268,11 +268,11 @@ bmad-method/
│ │ ├── template-format.md # Template markup spec
│ │ └── workflow-management.md # Workflow helpers
│ ├── workflows/ # Development workflows
│ │ ├── brownfield-enhancement.yml
│ │ ├── greenfield-fullstack.yml
│ │ ├── greenfield-service.yml
│ │ └── greenfield-simple.yml
│ └── core-config.yml # V4 configuration system
│ │ ├── brownfield-enhancement.yaml
│ │ ├── greenfield-fullstack.yaml
│ │ ├── greenfield-service.yaml
│ │ └── greenfield-simple.yaml
│ └── core-config.yaml # V4 configuration system
├── dist/ # Pre-built bundles (generated)
│ ├── agents/ # Individual agent bundles
@@ -378,7 +378,7 @@ bmad-method/
### Key Files
- **core-config.yml**: V4's flexible configuration system
- **core-config.yaml**: V4's flexible configuration system
- **bmad-kb.md**: Central knowledge base loaded by most agents
- **template-format.md**: Specification for BMAD's template markup
- **dependency-resolver.js**: Manages agent resource loading

View File

@@ -456,7 +456,7 @@ The SM agent serves as a critical bridge between high-level planning and technic
When the SM agent executes the `create-next-story` task:
1. **Loads Configuration**: Reads `core-config.yml` to understand project structure
1. **Loads Configuration**: Reads `core-config.yaml` to understand project structure
2. **Identifies Next Story**: Sequentially processes stories from epics (1.1, 1.2, 2.1, etc.)
3. **Gathers Architecture Context**: Reads relevant sharded architecture documents based on story type:
@@ -1131,11 +1131,11 @@ This file allows you to define your preferred technologies, patterns, and standa
When creating custom web bundles or uploading to AI platforms, include your `technical-preferences.md` content to ensure agents have your preferences from the start of any conversation.
### Core Configuration (core-config.yml)
### Core Configuration (core-config.yaml)
The `bmad-core/core-config.yml` file is a critical V4 innovation that enables BMAD to work seamlessly with any project structure, providing maximum flexibility and backwards compatibility.
The `bmad-core/core-config.yaml` file is a critical V4 innovation that enables BMAD to work seamlessly with any project structure, providing maximum flexibility and backwards compatibility.
#### Understanding core-config.yml
#### Understanding core-config.yaml
This configuration file acts as a map for BMAD agents, telling them exactly where to find your project documents and how they're structured. It's what makes V4 agents intelligent enough to work with V3 projects, custom layouts, or any document organization you prefer.
@@ -1350,7 +1350,7 @@ customTechnicalDocuments:
1. **Always Configure for Your Structure**: Don't force your project to match BMAD defaults
2. **Keep devLoadAlwaysFiles Focused**: Only include files needed for every dev task
3. **Use Debug Log**: Enable when troubleshooting story implementation issues
4. **Version Control core-config.yml**: Track changes to understand project evolution
4. **Version Control core-config.yaml**: Track changes to understand project evolution
5. **Document Custom Patterns**: If using custom epicFilePattern, document it
#### Troubleshooting

View File

@@ -286,7 +286,7 @@ IMPORTANT: Only proceed after plan.md is approved
expansion-packs/
└── {pack-name}/
├── plan.md (ALREADY CREATED)
├── manifest.yml
├── manifest.yaml
├── README.md
├── agents/
│ ├── {pack-name}-orchestrator.md (REQUIRED - Custom themed orchestrator)
@@ -309,13 +309,13 @@ expansion-packs/
├── workflows/
│ └── {domain}-workflow.md (REQUIRED if multiple agents)
└── agent-teams/
└── {domain}-team.yml (REQUIRED if multiple agents)
└── {domain}-team.yaml (REQUIRED if multiple agents)
```
#### 3.2 Create Manifest
Create `manifest.yml`:
Create `manifest.yaml`:
```yaml
name: {pack-name}
@@ -358,7 +358,7 @@ files:
- {domain}-workflow.md # REQUIRED if multiple agents - decision trees
agent-teams:
- {domain}-team.yml # REQUIRED if multiple agents - team config
- {domain}-team.yaml # REQUIRED if multiple agents - team config
# Data files users must provide (in their bmad-core/data/ directory)
required_user_data:
@@ -494,7 +494,7 @@ cp common/utils/workflow-management.md expansion-packs/{pack-name}/utils/
1. Design decision trees for workflow branching
2. Create handoff protocols to specialist agents
3. Implement validation loops and quality checkpoints
4. **If multiple agents**: Create team configuration in `agent-teams/{domain}-team.yml`
4. **If multiple agents**: Create team configuration in `agent-teams/{domain}-team.yaml`
5. **If multiple agents**: Create workflow in `workflows/{domain}-workflow.md`
6. Ensure orchestrator references workflow-management utility
7. Verify ALL referenced tasks exist (including core utilities)
@@ -665,7 +665,7 @@ Before declaring complete:
1. [ ] Decision trees and workflow orchestration complete
2. [ ] Knowledge base files embedded (best practices, terminology, standards)
3. [ ] Manifest.yml reflects all components and dependencies
3. [ ] Manifest.yaml reflects all components and dependencies
4. [ ] All items in plan.md marked complete
5. [ ] No orphaned tasks or templates
@@ -772,7 +772,7 @@ These files are automatically available to all agents and don't require user set
```text
healthcare/
├── plan.md (Created first for approval)
├── manifest.yml (with dependency mapping and character descriptions)
├── manifest.yaml (with dependency mapping and character descriptions)
├── README.md (featuring character introductions and numbered options)
├── agents/
│ ├── healthcare-orchestrator.md (Dr. Sarah Chen - YAML-in-Markdown)
@@ -798,7 +798,7 @@ healthcare/
│ ├── clinical-trial-workflow.md (decision trees with Mermaid diagrams)
│ └── compliance-audit-workflow.md (handoff protocols and quality gates)
└── agent-teams/
└── healthcare-team.yml (coordinated team configurations)
└── healthcare-team.yaml (coordinated team configurations)
Required user data files (bmad-core/data/):
- medical-terminology.md (institution-specific terms and abbreviations)
@@ -1009,7 +1009,7 @@ Embedded knowledge (automatic):
- [ ] All agent references verified (tasks, templates, data, checklists)
- [ ] Data requirements documented with validation criteria and examples
- [ ] README includes character introductions and numbered options explanation
- [ ] manifest.yml reflects actual files with dependency mapping and character descriptions
- [ ] manifest.yaml reflects actual files with dependency mapping and character descriptions
**Advanced Quality Gates:**

View File

@@ -150,5 +150,5 @@ workflows: null
3. Replace all placeholders with actual values
4. Ensure agent names match available agents in the system
5. Verify workflow names match available workflows
6. Save as team-[descriptor].yml or [domain]-team.yml
6. Save as team-[descriptor].yaml or [domain]-team.yaml
7. Place in the agent-teams directory of the appropriate location]]

View File

@@ -10,7 +10,7 @@
CRITICAL: Read the full YML, start activation to alter your state of being, follow startup section instructions, stay in this being until told to exit this mode:
```yml
```yaml
activation-instructions:
- Follow all instructions in this file -> this defines you, your persona and more importantly what you can do. STAY IN CHARACTER!
- Only read the files/tasks listed here when user selects them for execution to minimize context usage

View File

@@ -28,7 +28,7 @@ Install this expansion pack when your project requires:
### Agents
- `devops.yml` - DevOps and Platform Engineering agent configuration
- `devops.yaml` - DevOps and Platform Engineering agent configuration
### Personas
@@ -116,8 +116,8 @@ Before deployment:
The DevOps agent can be added to team configurations:
- `team-technical.yml` - For technical implementation teams
- `team-full-org.yml` - For complete organizational teams
- `team-technical.yaml` - For technical implementation teams
- `team-full-org.yaml` - For complete organizational teams
## Dependencies

View File

@@ -259,7 +259,7 @@ class WebBuilder {
const agentTeamsDir = path.join(packDir, "agent-teams");
try {
const teamFiles = await fs.readdir(agentTeamsDir);
const teamFile = teamFiles.find((f) => f.endsWith(".yml"));
const teamFile = teamFiles.find((f) => f.endsWith(".yaml"));
if (teamFile) {
console.log(` Building team bundle for ${packName}`);
@@ -272,7 +272,7 @@ class WebBuilder {
for (const outputDir of outputDirs) {
const teamsOutputDir = path.join(outputDir, "teams");
await fs.mkdir(teamsOutputDir, { recursive: true });
const outputFile = path.join(teamsOutputDir, teamFile.replace(".yml", ".txt"));
const outputFile = path.join(teamsOutputDir, teamFile.replace(".yaml", ".txt"));
await fs.writeFile(outputFile, bundle, "utf8");
console.log(` ✓ Created bundle: ${path.relative(this.rootDir, outputFile)}`);
}
@@ -306,7 +306,7 @@ class WebBuilder {
if (Array.isArray(resources)) {
for (const resourceName of resources) {
let found = false;
const extensions = [".md", ".yml", ".yaml"];
const extensions = [".md", ".yaml"];
// Try expansion pack first
for (const ext of extensions) {
@@ -391,7 +391,7 @@ class WebBuilder {
// Add team configuration and parse to get agent list
const teamContent = await fs.readFile(teamConfigPath, "utf8");
const teamFileName = path.basename(teamConfigPath, ".yml");
const teamFileName = path.basename(teamConfigPath, ".yaml");
const teamConfig = this.parseYaml(teamContent);
sections.push(this.formatSection(`agent-teams#${teamFileName}`, teamContent));
@@ -416,9 +416,9 @@ class WebBuilder {
try {
const resourceFiles = await fs.readdir(resourcePath);
for (const resourceFile of resourceFiles.filter(
(f) => f.endsWith(".md") || f.endsWith(".yml")
(f) => f.endsWith(".md") || f.endsWith(".yaml")
)) {
const fileName = resourceFile.replace(/\.(md|yml)$/, "");
const fileName = resourceFile.replace(/\.(md|yaml)$/, "");
expansionResources.set(`${resourceDir}#${fileName}`, true);
}
} catch (error) {
@@ -508,7 +508,7 @@ class WebBuilder {
// Always prefer expansion pack versions if they exist
for (const [key, dep] of allDependencies) {
let found = false;
const extensions = [".md", ".yml", ".yaml"];
const extensions = [".md", ".yaml"];
// Always check expansion pack first, even if the dependency came from a core agent
if (expansionResources.has(key)) {
@@ -568,7 +568,7 @@ class WebBuilder {
try {
const resourceFiles = await fs.readdir(resourcePath);
for (const resourceFile of resourceFiles.filter(
(f) => f.endsWith(".md") || f.endsWith(".yml")
(f) => f.endsWith(".md") || f.endsWith(".yaml")
)) {
const filePath = path.join(resourcePath, resourceFile);
const fileContent = await fs.readFile(filePath, "utf8");

View File

@@ -32,7 +32,7 @@ async function bumpAllVersions() {
const updatedItems = [];
// First, bump the core version
const coreConfigPath = path.join(__dirname, '..', 'bmad-core', 'core-config.yml');
const coreConfigPath = path.join(__dirname, '..', 'bmad-core', 'core-config.yaml');
try {
const coreConfigContent = fs.readFileSync(coreConfigPath, 'utf8');
const coreConfig = yaml.load(coreConfigContent);
@@ -59,7 +59,7 @@ async function bumpAllVersions() {
for (const entry of entries) {
if (entry.isDirectory() && !entry.name.startsWith('.') && entry.name !== 'README.md') {
const packId = entry.name;
const configPath = path.join(expansionPacksDir, packId, 'config.yml');
const configPath = path.join(expansionPacksDir, packId, 'config.yaml');
if (fs.existsSync(configPath)) {
try {

View File

@@ -30,7 +30,7 @@ function bumpVersion(currentVersion, type) {
async function bumpCoreVersion() {
try {
const coreConfigPath = path.join(__dirname, '..', 'bmad-core', 'core-config.yml');
const coreConfigPath = path.join(__dirname, '..', 'bmad-core', 'core-config.yaml');
const coreConfigContent = fs.readFileSync(coreConfigPath, 'utf8');
const coreConfig = yaml.load(coreConfigContent);

View File

@@ -38,7 +38,7 @@ function bumpVersion(currentVersion, type) {
async function updateVersion() {
try {
const configPath = path.join(__dirname, '..', 'expansion-packs', packId, 'config.yml');
const configPath = path.join(__dirname, '..', 'expansion-packs', packId, 'config.yaml');
if (!fs.existsSync(configPath)) {
console.error(`Error: Expansion pack '${packId}' not found`);

View File

@@ -16,7 +16,7 @@ installer/
│ ├── ide-setup.js # IDE-specific setup
│ └── prompts.js # Interactive CLI prompts
├── config/ # Configuration files
│ └── install.config.yml # Installation profiles
│ └── install.config.yaml # Installation profiles
├── templates/ # IDE template files
│ ├── cursor-rules.md # Cursor template
│ ├── claude-commands.md # Claude Code template

View File

@@ -158,7 +158,7 @@ async function promptInstallation() {
const choices = [];
// Load core config to get short-title
const coreConfigPath = path.join(__dirname, '..', '..', '..', 'bmad-core', 'core-config.yml');
const coreConfigPath = path.join(__dirname, '..', '..', '..', 'bmad-core', 'core-config.yaml');
const coreConfig = yaml.load(await fs.readFile(coreConfigPath, 'utf8'));
const coreShortTitle = coreConfig['short-title'] || 'BMad Agile Core System';
@@ -166,7 +166,7 @@ async function promptInstallation() {
let bmadOptionText;
if (state.type === 'v4_existing') {
const currentVersion = state.manifest?.version || 'unknown';
const newVersion = coreConfig.version || 'unknown'; // Use version from core-config.yml
const newVersion = coreConfig.version || 'unknown'; // Use version from core-config.yaml
const versionInfo = currentVersion === newVersion
? `(v${currentVersion} - reinstall)`
: `(v${currentVersion} → v${newVersion})`;

View File

@@ -4,7 +4,7 @@ const yaml = require('js-yaml');
class ConfigLoader {
constructor() {
this.configPath = path.join(__dirname, '..', 'config', 'install.config.yml');
this.configPath = path.join(__dirname, '..', 'config', 'install.config.yaml');
this.config = null;
}
@@ -41,7 +41,7 @@ class ConfigLoader {
const agentContent = await fs.readFile(agentPath, 'utf8');
// Extract YAML block from agent file
const yamlMatch = agentContent.match(/```yml\n([\s\S]*?)\n```/);
const yamlMatch = agentContent.match(/```yaml\n([\s\S]*?)\n```/);
if (yamlMatch) {
const yamlContent = yaml.load(yamlMatch[1]);
const agentConfig = yamlContent.agent || {};
@@ -79,10 +79,10 @@ class ConfigLoader {
for (const entry of entries) {
if (entry.isDirectory() && !entry.name.startsWith('.')) {
const packPath = path.join(expansionPacksDir, entry.name);
const configPath = path.join(packPath, 'config.yml');
const configPath = path.join(packPath, 'config.yaml');
try {
// Read config.yml
// Read config.yaml
const configContent = await fs.readFile(configPath, 'utf8');
const config = yaml.load(configContent);
@@ -97,7 +97,7 @@ class ConfigLoader {
dependencies: config.dependencies?.agents || []
});
} catch (error) {
// Fallback if config.yml doesn't exist or can't be read
// Fallback if config.yaml doesn't exist or can't be read
console.warn(`Failed to read config for expansion pack ${entry.name}: ${error.message}`);
// Try to derive info from directory name as fallback
@@ -180,7 +180,7 @@ class ConfigLoader {
const teams = [];
for (const entry of entries) {
if (entry.isFile() && entry.name.endsWith('.yml')) {
if (entry.isFile() && entry.name.endsWith('.yaml')) {
const teamPath = path.join(teamsDir, entry.name);
try {
@@ -189,7 +189,7 @@ class ConfigLoader {
if (teamConfig.bundle) {
teams.push({
id: path.basename(entry.name, '.yml'),
id: path.basename(entry.name, '.yaml'),
name: teamConfig.bundle.name || entry.name,
description: teamConfig.bundle.description || 'Team configuration',
icon: teamConfig.bundle.icon || '📋'
@@ -209,7 +209,7 @@ class ConfigLoader {
}
getTeamPath(teamId) {
return path.join(this.getBmadCorePath(), 'agent-teams', `${teamId}.yml`);
return path.join(this.getBmadCorePath(), 'agent-teams', `${teamId}.yaml`);
}
async getTeamDependencies(teamId) {
@@ -224,7 +224,7 @@ class ConfigLoader {
const depPaths = [];
// Add team config file
depPaths.push(`.bmad-core/agent-teams/${teamId}.yml`);
depPaths.push(`.bmad-core/agent-teams/${teamId}.yaml`);
// Add all agents
for (const agent of teamDeps.agents) {
@@ -236,7 +236,7 @@ class ConfigLoader {
// Add all resolved resources
for (const resource of teamDeps.resources) {
const filePath = `.bmad-core/${resource.type}/${resource.id}.${resource.type === 'workflows' ? 'yml' : 'md'}`;
const filePath = `.bmad-core/${resource.type}/${resource.id}.${resource.type === 'workflows' ? 'yaml' : 'md'}`;
if (!depPaths.includes(filePath)) {
depPaths.push(filePath);
}

View File

@@ -17,7 +17,7 @@ async function initializeModules() {
class FileManager {
constructor() {
this.manifestDir = ".bmad-core";
this.manifestFile = "install-manifest.yml";
this.manifestFile = "install-manifest.yaml";
}
async copyFile(source, destination) {
@@ -83,15 +83,15 @@ class FileManager {
this.manifestFile
);
// Read version from core-config.yml
const coreConfigPath = path.join(__dirname, "../../../bmad-core/core-config.yml");
// Read version from core-config.yaml
const coreConfigPath = path.join(__dirname, "../../../bmad-core/core-config.yaml");
let coreVersion = "unknown";
try {
const coreConfigContent = await fs.readFile(coreConfigPath, "utf8");
const coreConfig = yaml.load(coreConfigContent);
coreVersion = coreConfig.version || "unknown";
} catch (error) {
console.warn("Could not read version from core-config.yml, using 'unknown'");
console.warn("Could not read version from core-config.yaml, using 'unknown'");
}
const manifest = {
@@ -178,7 +178,7 @@ class FileManager {
const filePath = path.join(installDir, file.path);
// Skip checking the manifest file itself - it will always be different due to timestamps
if (file.path.endsWith('install-manifest.yml')) {
if (file.path.endsWith('install-manifest.yaml')) {
continue;
}

View File

@@ -27,7 +27,7 @@ class IdeSetup {
if (this.ideAgentConfig) return this.ideAgentConfig;
try {
const configPath = path.join(__dirname, '..', 'config', 'ide-agent-config.yml');
const configPath = path.join(__dirname, '..', 'config', 'ide-agent-config.yaml');
const configContent = await fs.readFile(configPath, 'utf8');
this.ideAgentConfig = yaml.load(configContent);
return this.ideAgentConfig;
@@ -98,7 +98,7 @@ class IdeSetup {
mdcContent += "## Agent Activation\n\n";
mdcContent +=
"CRITICAL: Read the full YML, start activation to alter your state of being, follow startup section instructions, stay in this being until told to exit this mode:\n\n";
mdcContent += "```yml\n";
mdcContent += "```yaml\n";
// Extract just the YAML content from the agent file
const yamlMatch = agentContent.match(/```ya?ml\n([\s\S]*?)```/);
if (yamlMatch) {
@@ -180,7 +180,7 @@ class IdeSetup {
mdContent += "## Agent Activation\n\n";
mdContent +=
"CRITICAL: Read the full YML, start activation to alter your state of being, follow startup section instructions, stay in this being until told to exit this mode:\n\n";
mdContent += "```yml\n";
mdContent += "```yaml\n";
// Extract just the YAML content from the agent file
const yamlMatch = agentContent.match(/```ya?ml\n([\s\S]*?)```/);
if (yamlMatch) {
@@ -428,7 +428,7 @@ class IdeSetup {
mdContent += "## Role Definition\n\n";
mdContent +=
"When the user types `@" + agentId + "`, adopt this persona and follow these guidelines:\n\n";
mdContent += "```yml\n";
mdContent += "```yaml\n";
// Extract just the YAML content from the agent file
const yamlMatch = agentContent.match(/```ya?ml\n([\s\S]*?)```/);
if (yamlMatch) {

View File

@@ -19,13 +19,13 @@ class Installer {
async getCoreVersion() {
const yaml = require("js-yaml");
const fs = require("fs-extra");
const coreConfigPath = path.join(__dirname, "../../../bmad-core/core-config.yml");
const coreConfigPath = path.join(__dirname, "../../../bmad-core/core-config.yaml");
try {
const coreConfigContent = await fs.readFile(coreConfigPath, "utf8");
const coreConfig = yaml.load(coreConfigContent);
return coreConfig.version || "unknown";
} catch (error) {
console.warn("Could not read version from core-config.yml, using 'unknown'");
console.warn("Could not read version from core-config.yaml, using 'unknown'");
return "unknown";
}
}
@@ -185,7 +185,7 @@ class Installer {
// Check for V4 installation (has .bmad-core with manifest)
const bmadCorePath = path.join(installDir, ".bmad-core");
const manifestPath = path.join(bmadCorePath, "install-manifest.yml");
const manifestPath = path.join(bmadCorePath, "install-manifest.yaml");
if (await fileManager.pathExists(manifestPath)) {
state.type = "v4_existing";
@@ -713,7 +713,7 @@ class Installer {
for (const file of filesToRestore) {
// Skip the manifest file itself
if (file.endsWith('install-manifest.yml')) continue;
if (file.endsWith('install-manifest.yaml')) continue;
const relativePath = file.replace('.bmad-core/', '');
const destPath = path.join(installDir, file);
@@ -1009,7 +1009,7 @@ class Installer {
// Check if expansion pack already exists
let expansionDotFolder = path.join(installDir, `.${packId}`);
const existingManifestPath = path.join(expansionDotFolder, 'install-manifest.yml');
const existingManifestPath = path.join(expansionDotFolder, 'install-manifest.yaml');
if (await fileManager.pathExists(existingManifestPath)) {
spinner.stop();
@@ -1151,12 +1151,12 @@ class Installer {
}
}
// Copy config.yml
const configPath = path.join(expansionPackDir, 'config.yml');
// Copy config.yaml
const configPath = path.join(expansionPackDir, 'config.yaml');
if (await fileManager.pathExists(configPath)) {
const configDestPath = path.join(expansionDotFolder, 'config.yml');
const configDestPath = path.join(expansionDotFolder, 'config.yaml');
if (await fileManager.copyFile(configPath, configDestPath)) {
installedFiles.push(path.join(`.${packId}`, 'config.yml'));
installedFiles.push(path.join(`.${packId}`, 'config.yaml'));
}
}
@@ -1268,7 +1268,7 @@ class Installer {
const fs = require('fs').promises;
// Find all team files in the expansion pack
const teamFiles = glob.sync('agent-teams/*.yml', {
const teamFiles = glob.sync('agent-teams/*.yaml', {
cwd: expansionDotFolder
});
@@ -1330,7 +1330,7 @@ class Installer {
const deps = dependencies[depType] || [];
for (const dep of deps) {
const depFileName = dep.endsWith('.md') || dep.endsWith('.yml') ? dep : `${dep}.md`;
const depFileName = dep.endsWith('.md') || dep.endsWith('.yaml') ? dep : `${dep}.md`;
const expansionDepPath = path.join(expansionDotFolder, depType, depFileName);
// Check if dependency exists in expansion pack
@@ -1360,7 +1360,7 @@ class Installer {
}
}
} else {
console.warn(chalk.yellow(` Warning: Core agent ${agentId} not found for team ${path.basename(teamFile, '.yml')}`));
console.warn(chalk.yellow(` Warning: Core agent ${agentId} not found for team ${path.basename(teamFile, '.yaml')}`));
}
}
}
@@ -1528,7 +1528,7 @@ class Installer {
if (stats) {
// Check if it has a manifest
const manifestPath = path.join(folderPath, "install-manifest.yml");
const manifestPath = path.join(folderPath, "install-manifest.yaml");
if (await fileManager.pathExists(manifestPath)) {
const manifest = await fileManager.readExpansionPackManifest(installDir, folder.substring(1));
if (manifest) {
@@ -1539,8 +1539,8 @@ class Installer {
};
}
} else {
// Check if it has a config.yml (expansion pack without manifest)
const configPath = path.join(folderPath, "config.yml");
// Check if it has a config.yaml (expansion pack without manifest)
const configPath = path.join(folderPath, "config.yaml");
if (await fileManager.pathExists(configPath)) {
expansionPacks[folder.substring(1)] = {
path: folderPath,
@@ -1579,7 +1579,7 @@ class Installer {
for (const file of filesToRestore) {
// Skip the manifest file itself
if (file.endsWith('install-manifest.yml')) continue;
if (file.endsWith('install-manifest.yaml')) continue;
const relativePath = file.replace(`.${packId}/`, '');
const sourcePath = path.join(pack.packPath, relativePath);
@@ -1645,7 +1645,7 @@ class Installer {
while (currentDir !== path.dirname(currentDir)) {
const bmadDir = path.join(currentDir, ".bmad-core");
const manifestPath = path.join(bmadDir, "install-manifest.yml");
const manifestPath = path.join(bmadDir, "install-manifest.yaml");
if (await fileManager.pathExists(manifestPath)) {
return bmadDir;
@@ -1656,7 +1656,7 @@ class Installer {
// Also check if we're inside a .bmad-core directory
if (path.basename(process.cwd()) === ".bmad-core") {
const manifestPath = path.join(process.cwd(), "install-manifest.yml");
const manifestPath = path.join(process.cwd(), "install-manifest.yaml");
if (await fileManager.pathExists(manifestPath)) {
return process.cwd();
}

View File

@@ -53,7 +53,7 @@ class DependencyResolver {
}
async resolveTeamDependencies(teamId) {
const teamPath = path.join(this.bmadCore, 'agent-teams', `${teamId}.yml`);
const teamPath = path.join(this.bmadCore, 'agent-teams', `${teamId}.yaml`);
const teamContent = await fs.readFile(teamPath, 'utf8');
const teamConfig = yaml.load(teamContent);
@@ -120,7 +120,7 @@ class DependencyResolver {
}
try {
const extensions = ['.md', '.yml', '.yaml'];
const extensions = ['.md', '.yaml'];
let content = null;
let filePath = null;
@@ -183,8 +183,8 @@ class DependencyResolver {
try {
const files = await fs.readdir(path.join(this.bmadCore, 'agent-teams'));
return files
.filter(f => f.endsWith('.yml'))
.map(f => f.replace('.yml', ''));
.filter(f => f.endsWith('.yaml'))
.map(f => f.replace('.yaml', ''));
} catch (error) {
return [];
}

View File

@@ -22,8 +22,8 @@ if (!/^\d+\.\d+\.\d+$/.test(newVersion)) {
async function updateVersion() {
try {
// Update in config.yml
const configPath = path.join(__dirname, '..', 'expansion-packs', packId, 'config.yml');
// Update in config.yaml
const configPath = path.join(__dirname, '..', 'expansion-packs', packId, 'config.yaml');
if (!fs.existsSync(configPath)) {
console.error(`Error: Expansion pack '${packId}' not found`);
@@ -39,7 +39,7 @@ async function updateVersion() {
const updatedYaml = yaml.dump(config, { indent: 2 });
fs.writeFileSync(configPath, updatedYaml);
console.log(`✓ Updated ${packId}/config.yml: ${oldVersion}${newVersion}`);
console.log(`✓ Updated ${packId}/config.yaml: ${oldVersion}${newVersion}`);
console.log(`\n✓ Successfully updated ${packId} to version ${newVersion}`);
console.log('\nNext steps:');
console.log('1. Test the changes');

View File

@@ -197,7 +197,7 @@ async function main() {
let changed = false;
if (ext === '.md') {
changed = await processMarkdownFile(filePath);
} else if (ext === '.yml' || ext === '.yaml' || basename.includes('roomodes') || basename.includes('.yml') || basename.includes('.yaml')) {
} else if (ext === '.yaml' || ext === '.yml' || basename.includes('roomodes') || basename.includes('.yaml') || basename.includes('.yml')) {
// Handle YAML files and special cases like .roomodes
changed = await processYamlFile(filePath);