fix: standardize on file extension .yaml instead of a mix of yml and yaml
This commit is contained in:
@@ -213,7 +213,7 @@
|
|||||||
|
|
||||||
### Features
|
### 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)
|
# [4.8.0](https://github.com/bmadcode/BMAD-METHOD/compare/v4.7.0...v4.8.0) (2025-06-19)
|
||||||
|
|
||||||
|
|||||||
@@ -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:
|
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
|
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.
|
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.
|
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.
|
||||||
|
|||||||
@@ -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:
|
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
|
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.
|
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.
|
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:
|
startup:
|
||||||
- Announce: Greet the user with your name and role, and inform of the *help command.
|
- 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: 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 load any story files during startup unless user requested you do
|
||||||
- CRITICAL: Do NOT begin development until told to proceed
|
- CRITICAL: Do NOT begin development until told to proceed
|
||||||
|
|||||||
@@ -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:
|
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
|
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.
|
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.
|
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.
|
||||||
|
|||||||
@@ -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:
|
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
|
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.
|
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.
|
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.
|
||||||
|
|||||||
@@ -161,11 +161,11 @@ npx bmad-method install
|
|||||||
5. **MUST switch to Dev agent** for implementation
|
5. **MUST switch to Dev agent** for implementation
|
||||||
6. Keep planning and coding in separate chat sessions
|
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:
|
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/`)
|
#### 2. Agent Teams (`bmad-core/agent-teams/`)
|
||||||
- **Purpose**: Define collections of agents bundled together for specific purposes
|
- **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
|
- **Usage**: Creates pre-packaged contexts for web UI environments
|
||||||
|
|
||||||
#### 3. Workflows (`bmad-core/workflows/`)
|
#### 3. Workflows (`bmad-core/workflows/`)
|
||||||
|
|||||||
@@ -28,7 +28,7 @@ Create detailed, implementation-ready stories for brownfield projects where trad
|
|||||||
|
|
||||||
#### 0.1 Check Workflow Plan
|
#### 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 yes, check for active plan at `workflow.planFile`
|
||||||
- If plan exists:
|
- If plan exists:
|
||||||
- Verify story creation aligns with current plan step
|
- Verify story creation aligns with current plan step
|
||||||
|
|||||||
@@ -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]]
|
[[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:
|
- 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:
|
- 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.yml and configure it for your project
|
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
|
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:
|
- Extract the following key configurations:
|
||||||
- `devStoryLocation`: Where to save story files
|
- `devStoryLocation`: Where to save story files
|
||||||
- `prd.prdSharded`: Whether PRD is sharded or monolithic
|
- `prd.prdSharded`: Whether PRD is sharded or monolithic
|
||||||
|
|||||||
@@ -8,20 +8,20 @@
|
|||||||
|
|
||||||
## Primary Method: Automatic with markdown-tree
|
## 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 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:
|
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`
|
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.**"
|
**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:
|
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`
|
2. Install @kayvan/markdown-tree-parser globally with: `npm install -g @kayvan/markdown-tree-parser`
|
||||||
|
|
||||||
I will now proceed with the manual sharding process."
|
I will now proceed with the manual sharding process."
|
||||||
|
|||||||
@@ -8,7 +8,7 @@ Update the status of steps in an active workflow plan, mark completions, add not
|
|||||||
|
|
||||||
### 0. Load Plan Configuration
|
### 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:
|
Check workflow configuration:
|
||||||
|
|
||||||
|
|||||||
@@ -396,7 +396,7 @@ After presenting the structure, apply `tasks#advanced-elicitation` protocol to r
|
|||||||
{{project-root}}/
|
{{project-root}}/
|
||||||
├── .github/ # CI/CD workflows
|
├── .github/ # CI/CD workflows
|
||||||
│ └── workflows/
|
│ └── workflows/
|
||||||
│ └── main.yml
|
│ └── main.yaml
|
||||||
├── .vscode/ # VSCode settings (optional)
|
├── .vscode/ # VSCode settings (optional)
|
||||||
│ └── settings.json
|
│ └── settings.json
|
||||||
├── build/ # Compiled output (git-ignored)
|
├── build/ # Compiled output (git-ignored)
|
||||||
|
|||||||
@@ -288,7 +288,7 @@ Use appropriate format for the chosen API style. If no API (e.g., static site),
|
|||||||
|
|
||||||
^^CONDITION: has_rest_api^^
|
^^CONDITION: has_rest_api^^
|
||||||
|
|
||||||
```yml
|
```yaml
|
||||||
openapi: 3.0.0
|
openapi: 3.0.0
|
||||||
info:
|
info:
|
||||||
title:
|
title:
|
||||||
@@ -644,8 +644,8 @@ After presenting this section, apply `tasks#advanced-elicitation` protocol]]
|
|||||||
{{project-name}}/
|
{{project-name}}/
|
||||||
├── .github/ # CI/CD workflows
|
├── .github/ # CI/CD workflows
|
||||||
│ └── workflows/
|
│ └── workflows/
|
||||||
│ ├── ci.yml
|
│ ├── ci.yaml
|
||||||
│ └── deploy.yml
|
│ └── deploy.yaml
|
||||||
├── apps/ # Application packages
|
├── apps/ # Application packages
|
||||||
│ ├── web/ # Frontend application
|
│ ├── web/ # Frontend application
|
||||||
│ │ ├── src/
|
│ │ ├── src/
|
||||||
|
|||||||
@@ -13,7 +13,7 @@ Provides utilities for agents and tasks to interact with workflow plans, check p
|
|||||||
```
|
```
|
||||||
Check for workflow plan:
|
Check for workflow plan:
|
||||||
1. Look for docs/workflow-plan.md (default location)
|
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)
|
3. Return plan status (exists/not exists)
|
||||||
```
|
```
|
||||||
|
|
||||||
|
|||||||
@@ -15,7 +15,7 @@ Generate documents from templates by EXECUTING (not just reading) embedded instr
|
|||||||
|
|
||||||
### 0. Check Workflow Plan (if configured)
|
### 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 `workflow.trackProgress: true`, check for active plan using utils#plan-management
|
||||||
- If plan exists and this document creation is part of the plan:
|
- If plan exists and this document creation is part of the plan:
|
||||||
|
|||||||
10
dist/agents/analyst.txt
vendored
10
dist/agents/analyst.txt
vendored
@@ -665,7 +665,7 @@ Generate documents from templates by EXECUTING (not just reading) embedded instr
|
|||||||
|
|
||||||
### 0. Check Workflow Plan (if configured)
|
### 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 `workflow.trackProgress: true`, check for active plan using utils#plan-management
|
||||||
- If plan exists and this document creation is part of the plan:
|
- 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
|
5. **MUST switch to Dev agent** for implementation
|
||||||
6. Keep planning and coding in separate chat sessions
|
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:
|
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/`)
|
#### 2. Agent Teams (`bmad-core/agent-teams/`)
|
||||||
- **Purpose**: Define collections of agents bundled together for specific purposes
|
- **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
|
- **Usage**: Creates pre-packaged contexts for web UI environments
|
||||||
|
|
||||||
#### 3. Workflows (`bmad-core/workflows/`)
|
#### 3. Workflows (`bmad-core/workflows/`)
|
||||||
|
|||||||
10
dist/agents/architect.txt
vendored
10
dist/agents/architect.txt
vendored
@@ -120,7 +120,7 @@ Generate documents from templates by EXECUTING (not just reading) embedded instr
|
|||||||
|
|
||||||
### 0. Check Workflow Plan (if configured)
|
### 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 `workflow.trackProgress: true`, check for active plan using utils#plan-management
|
||||||
- If plan exists and this document creation is part of the plan:
|
- 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}}/
|
{{project-root}}/
|
||||||
├── .github/ # CI/CD workflows
|
├── .github/ # CI/CD workflows
|
||||||
│ └── workflows/
|
│ └── workflows/
|
||||||
│ └── main.yml
|
│ └── main.yaml
|
||||||
├── .vscode/ # VSCode settings (optional)
|
├── .vscode/ # VSCode settings (optional)
|
||||||
│ └── settings.json
|
│ └── settings.json
|
||||||
├── build/ # Compiled output (git-ignored)
|
├── 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^^
|
^^CONDITION: has_rest_api^^
|
||||||
|
|
||||||
```yml
|
```yaml
|
||||||
openapi: 3.0.0
|
openapi: 3.0.0
|
||||||
info:
|
info:
|
||||||
title:
|
title:
|
||||||
@@ -2520,8 +2520,8 @@ After presenting this section, apply `tasks#advanced-elicitation` protocol]]
|
|||||||
{{project-name}}/
|
{{project-name}}/
|
||||||
├── .github/ # CI/CD workflows
|
├── .github/ # CI/CD workflows
|
||||||
│ └── workflows/
|
│ └── workflows/
|
||||||
│ ├── ci.yml
|
│ ├── ci.yaml
|
||||||
│ └── deploy.yml
|
│ └── deploy.yaml
|
||||||
├── apps/ # Application packages
|
├── apps/ # Application packages
|
||||||
│ ├── web/ # Frontend application
|
│ ├── web/ # Frontend application
|
||||||
│ │ ├── src/
|
│ │ ├── src/
|
||||||
|
|||||||
36
dist/agents/bmad-master.txt
vendored
36
dist/agents/bmad-master.txt
vendored
@@ -1199,7 +1199,7 @@ Generate documents from templates by EXECUTING (not just reading) embedded instr
|
|||||||
|
|
||||||
### 0. Check Workflow Plan (if configured)
|
### 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 `workflow.trackProgress: true`, check for active plan using utils#plan-management
|
||||||
- If plan exists and this document creation is part of the plan:
|
- 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]]
|
[[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:
|
- 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:
|
- 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.yml and configure it for your project
|
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
|
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:
|
- Extract the following key configurations:
|
||||||
- `devStoryLocation`: Where to save story files
|
- `devStoryLocation`: Where to save story files
|
||||||
- `prd.prdSharded`: Whether PRD is sharded or monolithic
|
- `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
|
## 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 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:
|
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`
|
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.**"
|
**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:
|
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`
|
2. Install @kayvan/markdown-tree-parser globally with: `npm install -g @kayvan/markdown-tree-parser`
|
||||||
|
|
||||||
I will now proceed with the manual sharding process."
|
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
|
### 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:
|
Check workflow configuration:
|
||||||
|
|
||||||
@@ -3343,7 +3343,7 @@ After presenting the structure, apply `tasks#advanced-elicitation` protocol to r
|
|||||||
{{project-root}}/
|
{{project-root}}/
|
||||||
├── .github/ # CI/CD workflows
|
├── .github/ # CI/CD workflows
|
||||||
│ └── workflows/
|
│ └── workflows/
|
||||||
│ └── main.yml
|
│ └── main.yaml
|
||||||
├── .vscode/ # VSCode settings (optional)
|
├── .vscode/ # VSCode settings (optional)
|
||||||
│ └── settings.json
|
│ └── settings.json
|
||||||
├── build/ # Compiled output (git-ignored)
|
├── 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^^
|
^^CONDITION: has_rest_api^^
|
||||||
|
|
||||||
```yml
|
```yaml
|
||||||
openapi: 3.0.0
|
openapi: 3.0.0
|
||||||
info:
|
info:
|
||||||
title:
|
title:
|
||||||
@@ -6074,8 +6074,8 @@ After presenting this section, apply `tasks#advanced-elicitation` protocol]]
|
|||||||
{{project-name}}/
|
{{project-name}}/
|
||||||
├── .github/ # CI/CD workflows
|
├── .github/ # CI/CD workflows
|
||||||
│ └── workflows/
|
│ └── workflows/
|
||||||
│ ├── ci.yml
|
│ ├── ci.yaml
|
||||||
│ └── deploy.yml
|
│ └── deploy.yaml
|
||||||
├── apps/ # Application packages
|
├── apps/ # Application packages
|
||||||
│ ├── web/ # Frontend application
|
│ ├── web/ # Frontend application
|
||||||
│ │ ├── src/
|
│ │ ├── src/
|
||||||
@@ -9104,11 +9104,11 @@ npx bmad-method install
|
|||||||
5. **MUST switch to Dev agent** for implementation
|
5. **MUST switch to Dev agent** for implementation
|
||||||
6. Keep planning and coding in separate chat sessions
|
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:
|
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/`)
|
#### 2. Agent Teams (`bmad-core/agent-teams/`)
|
||||||
- **Purpose**: Define collections of agents bundled together for specific purposes
|
- **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
|
- **Usage**: Creates pre-packaged contexts for web UI environments
|
||||||
|
|
||||||
#### 3. Workflows (`bmad-core/workflows/`)
|
#### 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:
|
Check for workflow plan:
|
||||||
1. Look for docs/workflow-plan.md (default location)
|
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)
|
3. Return plan status (exists/not exists)
|
||||||
```
|
```
|
||||||
|
|
||||||
|
|||||||
14
dist/agents/bmad-orchestrator.txt
vendored
14
dist/agents/bmad-orchestrator.txt
vendored
@@ -290,7 +290,7 @@ Generate documents from templates by EXECUTING (not just reading) embedded instr
|
|||||||
|
|
||||||
### 0. Check Workflow Plan (if configured)
|
### 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 `workflow.trackProgress: true`, check for active plan using utils#plan-management
|
||||||
- If plan exists and this document creation is part of the plan:
|
- 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
|
### 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:
|
Check workflow configuration:
|
||||||
|
|
||||||
@@ -1146,11 +1146,11 @@ npx bmad-method install
|
|||||||
5. **MUST switch to Dev agent** for implementation
|
5. **MUST switch to Dev agent** for implementation
|
||||||
6. Keep planning and coding in separate chat sessions
|
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:
|
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/`)
|
#### 2. Agent Teams (`bmad-core/agent-teams/`)
|
||||||
- **Purpose**: Define collections of agents bundled together for specific purposes
|
- **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
|
- **Usage**: Creates pre-packaged contexts for web UI environments
|
||||||
|
|
||||||
#### 3. Workflows (`bmad-core/workflows/`)
|
#### 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:
|
Check for workflow plan:
|
||||||
1. Look for docs/workflow-plan.md (default location)
|
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)
|
3. Return plan status (exists/not exists)
|
||||||
```
|
```
|
||||||
|
|
||||||
|
|||||||
2
dist/agents/dev.txt
vendored
2
dist/agents/dev.txt
vendored
@@ -53,7 +53,7 @@ agent:
|
|||||||
customization: null
|
customization: null
|
||||||
startup:
|
startup:
|
||||||
- Announce: Greet the user with your name and role, and inform of the *help command.
|
- 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: 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 load any story files during startup unless user requested you do
|
||||||
- CRITICAL: Do NOT begin development until told to proceed
|
- CRITICAL: Do NOT begin development until told to proceed
|
||||||
|
|||||||
8
dist/agents/pm.txt
vendored
8
dist/agents/pm.txt
vendored
@@ -117,7 +117,7 @@ Generate documents from templates by EXECUTING (not just reading) embedded instr
|
|||||||
|
|
||||||
### 0. Check Workflow Plan (if configured)
|
### 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 `workflow.trackProgress: true`, check for active plan using utils#plan-management
|
||||||
- If plan exists and this document creation is part of the plan:
|
- 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
|
## 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 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:
|
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`
|
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.**"
|
**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:
|
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`
|
2. Install @kayvan/markdown-tree-parser globally with: `npm install -g @kayvan/markdown-tree-parser`
|
||||||
|
|
||||||
I will now proceed with the manual sharding process."
|
I will now proceed with the manual sharding process."
|
||||||
|
|||||||
6
dist/agents/po.txt
vendored
6
dist/agents/po.txt
vendored
@@ -208,20 +208,20 @@ The LLM will:
|
|||||||
|
|
||||||
## Primary Method: Automatic with markdown-tree
|
## 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 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:
|
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`
|
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.**"
|
**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:
|
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`
|
2. Install @kayvan/markdown-tree-parser globally with: `npm install -g @kayvan/markdown-tree-parser`
|
||||||
|
|
||||||
I will now proceed with the manual sharding process."
|
I will now proceed with the manual sharding process."
|
||||||
|
|||||||
8
dist/agents/sm.txt
vendored
8
dist/agents/sm.txt
vendored
@@ -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]]
|
[[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:
|
- 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:
|
- 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.yml and configure it for your project
|
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
|
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:
|
- Extract the following key configurations:
|
||||||
- `devStoryLocation`: Where to save story files
|
- `devStoryLocation`: Where to save story files
|
||||||
- `prd.prdSharded`: Whether PRD is sharded or monolithic
|
- `prd.prdSharded`: Whether PRD is sharded or monolithic
|
||||||
|
|||||||
2
dist/agents/ux-expert.txt
vendored
2
dist/agents/ux-expert.txt
vendored
@@ -477,7 +477,7 @@ Generate documents from templates by EXECUTING (not just reading) embedded instr
|
|||||||
|
|
||||||
### 0. Check Workflow Plan (if configured)
|
### 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 `workflow.trackProgress: true`, check for active plan using utils#plan-management
|
||||||
- If plan exists and this document creation is part of the plan:
|
- If plan exists and this document creation is part of the plan:
|
||||||
|
|||||||
@@ -117,7 +117,7 @@ Generate documents from templates by EXECUTING (not just reading) embedded instr
|
|||||||
|
|
||||||
### 0. Check Workflow Plan (if configured)
|
### 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 `workflow.trackProgress: true`, check for active plan using utils#plan-management
|
||||||
- If plan exists and this document creation is part of the plan:
|
- If plan exists and this document creation is part of the plan:
|
||||||
|
|||||||
@@ -1004,7 +1004,7 @@ Generate documents from templates by EXECUTING (not just reading) embedded instr
|
|||||||
|
|
||||||
### 0. Check Workflow Plan (if configured)
|
### 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 `workflow.trackProgress: true`, check for active plan using utils#plan-management
|
||||||
- If plan exists and this document creation is part of the plan:
|
- 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
|
### 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:
|
Check workflow configuration:
|
||||||
|
|
||||||
@@ -3225,7 +3225,7 @@ Provides utilities for agents and tasks to interact with workflow plans, check p
|
|||||||
```
|
```
|
||||||
Check for workflow plan:
|
Check for workflow plan:
|
||||||
1. Look for docs/workflow-plan.md (default location)
|
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)
|
3. Return plan status (exists/not exists)
|
||||||
```
|
```
|
||||||
|
|
||||||
@@ -7110,7 +7110,7 @@ class {{ClassName}} extends {{PhaseClass}} {
|
|||||||
- {{future_optimization_1}}
|
- {{future_optimization_1}}
|
||||||
==================== END: templates#game-story-tmpl ====================
|
==================== END: templates#game-story-tmpl ====================
|
||||||
|
|
||||||
==================== START: workflows#game-dev-greenfield ====================
|
==================== START: workflows#game-dev-greenfield.yaml ====================
|
||||||
workflow:
|
workflow:
|
||||||
id: game-dev-greenfield
|
id: game-dev-greenfield
|
||||||
name: Game Development - Greenfield Project
|
name: Game Development - Greenfield Project
|
||||||
@@ -7294,9 +7294,9 @@ workflow:
|
|||||||
- Testing framework in place
|
- Testing framework in place
|
||||||
- Team roles and responsibilities defined
|
- Team roles and responsibilities defined
|
||||||
- First implementation stories created and ready
|
- 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:
|
workflow:
|
||||||
id: game-prototype
|
id: game-prototype
|
||||||
name: Game Prototype Development
|
name: Game Prototype Development
|
||||||
@@ -7472,4 +7472,4 @@ workflow:
|
|||||||
technical_to_stories: Technical plan complete. Create focused implementation stories for prototype development.
|
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.
|
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.
|
prototype_to_evaluation: Prototype playable. Evaluate core mechanics, gather feedback, and determine next development steps.
|
||||||
==================== END: workflows#game-prototype ====================
|
==================== END: workflows#game-prototype.yaml ====================
|
||||||
|
|||||||
@@ -586,7 +586,7 @@ IMPORTANT: Only proceed after plan.md is approved
|
|||||||
expansion-packs/
|
expansion-packs/
|
||||||
└── {pack-name}/
|
└── {pack-name}/
|
||||||
├── plan.md (ALREADY CREATED)
|
├── plan.md (ALREADY CREATED)
|
||||||
├── manifest.yml
|
├── manifest.yaml
|
||||||
├── README.md
|
├── README.md
|
||||||
├── agents/
|
├── agents/
|
||||||
│ ├── {pack-name}-orchestrator.md (REQUIRED - Custom themed orchestrator)
|
│ ├── {pack-name}-orchestrator.md (REQUIRED - Custom themed orchestrator)
|
||||||
@@ -609,13 +609,13 @@ expansion-packs/
|
|||||||
├── workflows/
|
├── workflows/
|
||||||
│ └── {domain}-workflow.md (REQUIRED if multiple agents)
|
│ └── {domain}-workflow.md (REQUIRED if multiple agents)
|
||||||
└── agent-teams/
|
└── agent-teams/
|
||||||
└── {domain}-team.yml (REQUIRED if multiple agents)
|
└── {domain}-team.yaml (REQUIRED if multiple agents)
|
||||||
|
|
||||||
```
|
```
|
||||||
|
|
||||||
#### 3.2 Create Manifest
|
#### 3.2 Create Manifest
|
||||||
|
|
||||||
Create `manifest.yml`:
|
Create `manifest.yaml`:
|
||||||
|
|
||||||
```yaml
|
```yaml
|
||||||
name: {pack-name}
|
name: {pack-name}
|
||||||
@@ -658,7 +658,7 @@ files:
|
|||||||
- {domain}-workflow.md # REQUIRED if multiple agents - decision trees
|
- {domain}-workflow.md # REQUIRED if multiple agents - decision trees
|
||||||
|
|
||||||
agent-teams:
|
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)
|
# Data files users must provide (in their bmad-core/data/ directory)
|
||||||
required_user_data:
|
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
|
1. Design decision trees for workflow branching
|
||||||
2. Create handoff protocols to specialist agents
|
2. Create handoff protocols to specialist agents
|
||||||
3. Implement validation loops and quality checkpoints
|
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`
|
5. **If multiple agents**: Create workflow in `workflows/{domain}-workflow.md`
|
||||||
6. Ensure orchestrator references workflow-management utility
|
6. Ensure orchestrator references workflow-management utility
|
||||||
7. Verify ALL referenced tasks exist (including core utilities)
|
7. Verify ALL referenced tasks exist (including core utilities)
|
||||||
@@ -965,7 +965,7 @@ Before declaring complete:
|
|||||||
|
|
||||||
1. [ ] Decision trees and workflow orchestration complete
|
1. [ ] Decision trees and workflow orchestration complete
|
||||||
2. [ ] Knowledge base files embedded (best practices, terminology, standards)
|
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
|
4. [ ] All items in plan.md marked complete
|
||||||
5. [ ] No orphaned tasks or templates
|
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
|
```text
|
||||||
healthcare/
|
healthcare/
|
||||||
├── plan.md (Created first for approval)
|
├── 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)
|
├── README.md (featuring character introductions and numbered options)
|
||||||
├── agents/
|
├── agents/
|
||||||
│ ├── healthcare-orchestrator.md (Dr. Sarah Chen - YAML-in-Markdown)
|
│ ├── healthcare-orchestrator.md (Dr. Sarah Chen - YAML-in-Markdown)
|
||||||
@@ -1098,7 +1098,7 @@ healthcare/
|
|||||||
│ ├── clinical-trial-workflow.md (decision trees with Mermaid diagrams)
|
│ ├── clinical-trial-workflow.md (decision trees with Mermaid diagrams)
|
||||||
│ └── compliance-audit-workflow.md (handoff protocols and quality gates)
|
│ └── compliance-audit-workflow.md (handoff protocols and quality gates)
|
||||||
└── agent-teams/
|
└── agent-teams/
|
||||||
└── healthcare-team.yml (coordinated team configurations)
|
└── healthcare-team.yaml (coordinated team configurations)
|
||||||
|
|
||||||
Required user data files (bmad-core/data/):
|
Required user data files (bmad-core/data/):
|
||||||
- medical-terminology.md (institution-specific terms and abbreviations)
|
- medical-terminology.md (institution-specific terms and abbreviations)
|
||||||
@@ -1309,7 +1309,7 @@ Embedded knowledge (automatic):
|
|||||||
- [ ] All agent references verified (tasks, templates, data, checklists)
|
- [ ] All agent references verified (tasks, templates, data, checklists)
|
||||||
- [ ] Data requirements documented with validation criteria and examples
|
- [ ] Data requirements documented with validation criteria and examples
|
||||||
- [ ] README includes character introductions and numbered options explanation
|
- [ ] 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:**
|
**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:
|
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:
|
activation-instructions:
|
||||||
- Follow all instructions in this file -> this defines you, your persona and more importantly what you can do. STAY IN CHARACTER!
|
- 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
|
- Only read the files/tasks listed here when user selects them for execution to minimize context usage
|
||||||
|
|||||||
@@ -118,7 +118,7 @@ Generate documents from templates by EXECUTING (not just reading) embedded instr
|
|||||||
|
|
||||||
### 0. Check Workflow Plan (if configured)
|
### 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 `workflow.trackProgress: true`, check for active plan using utils#plan-management
|
||||||
- If plan exists and this document creation is part of the plan:
|
- If plan exists and this document creation is part of the plan:
|
||||||
@@ -1300,7 +1300,7 @@ kind: ConfigMap
|
|||||||
metadata:
|
metadata:
|
||||||
name: prometheus-config
|
name: prometheus-config
|
||||||
data:
|
data:
|
||||||
prometheus.yml: |
|
prometheus.yaml: |
|
||||||
global:
|
global:
|
||||||
scrape_interval: {{scrape_interval}}
|
scrape_interval: {{scrape_interval}}
|
||||||
scrape_configs:
|
scrape_configs:
|
||||||
|
|||||||
38
dist/teams/team-all.txt
vendored
38
dist/teams/team-all.txt
vendored
@@ -337,7 +337,7 @@ agent:
|
|||||||
customization: null
|
customization: null
|
||||||
startup:
|
startup:
|
||||||
- Announce: Greet the user with your name and role, and inform of the *help command.
|
- 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: 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 load any story files during startup unless user requested you do
|
||||||
- CRITICAL: Do NOT begin development until told to proceed
|
- 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)
|
### 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 `workflow.trackProgress: true`, check for active plan using utils#plan-management
|
||||||
- If plan exists and this document creation is part of the plan:
|
- 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
|
### 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:
|
Check workflow configuration:
|
||||||
|
|
||||||
@@ -1638,11 +1638,11 @@ npx bmad-method install
|
|||||||
5. **MUST switch to Dev agent** for implementation
|
5. **MUST switch to Dev agent** for implementation
|
||||||
6. Keep planning and coding in separate chat sessions
|
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:
|
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/`)
|
#### 2. Agent Teams (`bmad-core/agent-teams/`)
|
||||||
- **Purpose**: Define collections of agents bundled together for specific purposes
|
- **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
|
- **Usage**: Creates pre-packaged contexts for web UI environments
|
||||||
|
|
||||||
#### 3. Workflows (`bmad-core/workflows/`)
|
#### 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:
|
Check for workflow plan:
|
||||||
1. Look for docs/workflow-plan.md (default location)
|
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)
|
3. Return plan status (exists/not exists)
|
||||||
```
|
```
|
||||||
|
|
||||||
@@ -4706,7 +4706,7 @@ After presenting the structure, apply `tasks#advanced-elicitation` protocol to r
|
|||||||
{{project-root}}/
|
{{project-root}}/
|
||||||
├── .github/ # CI/CD workflows
|
├── .github/ # CI/CD workflows
|
||||||
│ └── workflows/
|
│ └── workflows/
|
||||||
│ └── main.yml
|
│ └── main.yaml
|
||||||
├── .vscode/ # VSCode settings (optional)
|
├── .vscode/ # VSCode settings (optional)
|
||||||
│ └── settings.json
|
│ └── settings.json
|
||||||
├── build/ # Compiled output (git-ignored)
|
├── 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^^
|
^^CONDITION: has_rest_api^^
|
||||||
|
|
||||||
```yml
|
```yaml
|
||||||
openapi: 3.0.0
|
openapi: 3.0.0
|
||||||
info:
|
info:
|
||||||
title:
|
title:
|
||||||
@@ -5911,8 +5911,8 @@ After presenting this section, apply `tasks#advanced-elicitation` protocol]]
|
|||||||
{{project-name}}/
|
{{project-name}}/
|
||||||
├── .github/ # CI/CD workflows
|
├── .github/ # CI/CD workflows
|
||||||
│ └── workflows/
|
│ └── workflows/
|
||||||
│ ├── ci.yml
|
│ ├── ci.yaml
|
||||||
│ └── deploy.yml
|
│ └── deploy.yaml
|
||||||
├── apps/ # Application packages
|
├── apps/ # Application packages
|
||||||
│ ├── web/ # Frontend application
|
│ ├── web/ # Frontend application
|
||||||
│ │ ├── src/
|
│ │ ├── src/
|
||||||
@@ -7788,20 +7788,20 @@ The story creation is successful when:
|
|||||||
|
|
||||||
## Primary Method: Automatic with markdown-tree
|
## 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 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:
|
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`
|
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.**"
|
**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:
|
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`
|
2. Install @kayvan/markdown-tree-parser globally with: `npm install -g @kayvan/markdown-tree-parser`
|
||||||
|
|
||||||
I will now proceed with the manual sharding process."
|
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]]
|
[[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:
|
- 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:
|
- 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.yml and configure it for your project
|
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
|
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:
|
- Extract the following key configurations:
|
||||||
- `devStoryLocation`: Where to save story files
|
- `devStoryLocation`: Where to save story files
|
||||||
- `prd.prdSharded`: Whether PRD is sharded or monolithic
|
- `prd.prdSharded`: Whether PRD is sharded or monolithic
|
||||||
|
|||||||
28
dist/teams/team-fullstack.txt
vendored
28
dist/teams/team-fullstack.txt
vendored
@@ -626,7 +626,7 @@ Generate documents from templates by EXECUTING (not just reading) embedded instr
|
|||||||
|
|
||||||
### 0. Check Workflow Plan (if configured)
|
### 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 `workflow.trackProgress: true`, check for active plan using utils#plan-management
|
||||||
- If plan exists and this document creation is part of the plan:
|
- 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
|
### 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:
|
Check workflow configuration:
|
||||||
|
|
||||||
@@ -1482,11 +1482,11 @@ npx bmad-method install
|
|||||||
5. **MUST switch to Dev agent** for implementation
|
5. **MUST switch to Dev agent** for implementation
|
||||||
6. Keep planning and coding in separate chat sessions
|
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:
|
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/`)
|
#### 2. Agent Teams (`bmad-core/agent-teams/`)
|
||||||
- **Purpose**: Define collections of agents bundled together for specific purposes
|
- **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
|
- **Usage**: Creates pre-packaged contexts for web UI environments
|
||||||
|
|
||||||
#### 3. Workflows (`bmad-core/workflows/`)
|
#### 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:
|
Check for workflow plan:
|
||||||
1. Look for docs/workflow-plan.md (default location)
|
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)
|
3. Return plan status (exists/not exists)
|
||||||
```
|
```
|
||||||
|
|
||||||
@@ -4551,20 +4551,20 @@ The LLM will:
|
|||||||
|
|
||||||
## Primary Method: Automatic with markdown-tree
|
## 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 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:
|
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`
|
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.**"
|
**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:
|
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`
|
2. Install @kayvan/markdown-tree-parser globally with: `npm install -g @kayvan/markdown-tree-parser`
|
||||||
|
|
||||||
I will now proceed with the manual sharding process."
|
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}}/
|
{{project-root}}/
|
||||||
├── .github/ # CI/CD workflows
|
├── .github/ # CI/CD workflows
|
||||||
│ └── workflows/
|
│ └── workflows/
|
||||||
│ └── main.yml
|
│ └── main.yaml
|
||||||
├── .vscode/ # VSCode settings (optional)
|
├── .vscode/ # VSCode settings (optional)
|
||||||
│ └── settings.json
|
│ └── settings.json
|
||||||
├── build/ # Compiled output (git-ignored)
|
├── 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^^
|
^^CONDITION: has_rest_api^^
|
||||||
|
|
||||||
```yml
|
```yaml
|
||||||
openapi: 3.0.0
|
openapi: 3.0.0
|
||||||
info:
|
info:
|
||||||
title:
|
title:
|
||||||
@@ -7851,8 +7851,8 @@ After presenting this section, apply `tasks#advanced-elicitation` protocol]]
|
|||||||
{{project-name}}/
|
{{project-name}}/
|
||||||
├── .github/ # CI/CD workflows
|
├── .github/ # CI/CD workflows
|
||||||
│ └── workflows/
|
│ └── workflows/
|
||||||
│ ├── ci.yml
|
│ ├── ci.yaml
|
||||||
│ └── deploy.yml
|
│ └── deploy.yaml
|
||||||
├── apps/ # Application packages
|
├── apps/ # Application packages
|
||||||
│ ├── web/ # Frontend application
|
│ ├── web/ # Frontend application
|
||||||
│ │ ├── src/
|
│ │ ├── src/
|
||||||
|
|||||||
30
dist/teams/team-ide-minimal.txt
vendored
30
dist/teams/team-ide-minimal.txt
vendored
@@ -319,7 +319,7 @@ agent:
|
|||||||
customization: null
|
customization: null
|
||||||
startup:
|
startup:
|
||||||
- Announce: Greet the user with your name and role, and inform of the *help command.
|
- 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: 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 load any story files during startup unless user requested you do
|
||||||
- CRITICAL: Do NOT begin development until told to proceed
|
- 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)
|
### 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 `workflow.trackProgress: true`, check for active plan using utils#plan-management
|
||||||
- If plan exists and this document creation is part of the plan:
|
- 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
|
### 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:
|
Check workflow configuration:
|
||||||
|
|
||||||
@@ -1382,11 +1382,11 @@ npx bmad-method install
|
|||||||
5. **MUST switch to Dev agent** for implementation
|
5. **MUST switch to Dev agent** for implementation
|
||||||
6. Keep planning and coding in separate chat sessions
|
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:
|
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/`)
|
#### 2. Agent Teams (`bmad-core/agent-teams/`)
|
||||||
- **Purpose**: Define collections of agents bundled together for specific purposes
|
- **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
|
- **Usage**: Creates pre-packaged contexts for web UI environments
|
||||||
|
|
||||||
#### 3. Workflows (`bmad-core/workflows/`)
|
#### 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:
|
Check for workflow plan:
|
||||||
1. Look for docs/workflow-plan.md (default location)
|
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)
|
3. Return plan status (exists/not exists)
|
||||||
```
|
```
|
||||||
|
|
||||||
@@ -2404,20 +2404,20 @@ The LLM will:
|
|||||||
|
|
||||||
## Primary Method: Automatic with markdown-tree
|
## 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 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:
|
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`
|
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.**"
|
**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:
|
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`
|
2. Install @kayvan/markdown-tree-parser globally with: `npm install -g @kayvan/markdown-tree-parser`
|
||||||
|
|
||||||
I will now proceed with the manual sharding process."
|
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]]
|
[[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:
|
- 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:
|
- 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.yml and configure it for your project
|
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
|
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:
|
- Extract the following key configurations:
|
||||||
- `devStoryLocation`: Where to save story files
|
- `devStoryLocation`: Where to save story files
|
||||||
- `prd.prdSharded`: Whether PRD is sharded or monolithic
|
- `prd.prdSharded`: Whether PRD is sharded or monolithic
|
||||||
|
|||||||
28
dist/teams/team-no-ui.txt
vendored
28
dist/teams/team-no-ui.txt
vendored
@@ -558,7 +558,7 @@ Generate documents from templates by EXECUTING (not just reading) embedded instr
|
|||||||
|
|
||||||
### 0. Check Workflow Plan (if configured)
|
### 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 `workflow.trackProgress: true`, check for active plan using utils#plan-management
|
||||||
- If plan exists and this document creation is part of the plan:
|
- 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
|
### 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:
|
Check workflow configuration:
|
||||||
|
|
||||||
@@ -1414,11 +1414,11 @@ npx bmad-method install
|
|||||||
5. **MUST switch to Dev agent** for implementation
|
5. **MUST switch to Dev agent** for implementation
|
||||||
6. Keep planning and coding in separate chat sessions
|
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:
|
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/`)
|
#### 2. Agent Teams (`bmad-core/agent-teams/`)
|
||||||
- **Purpose**: Define collections of agents bundled together for specific purposes
|
- **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
|
- **Usage**: Creates pre-packaged contexts for web UI environments
|
||||||
|
|
||||||
#### 3. Workflows (`bmad-core/workflows/`)
|
#### 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:
|
Check for workflow plan:
|
||||||
1. Look for docs/workflow-plan.md (default location)
|
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)
|
3. Return plan status (exists/not exists)
|
||||||
```
|
```
|
||||||
|
|
||||||
@@ -4483,20 +4483,20 @@ The LLM will:
|
|||||||
|
|
||||||
## Primary Method: Automatic with markdown-tree
|
## 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 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:
|
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`
|
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.**"
|
**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:
|
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`
|
2. Install @kayvan/markdown-tree-parser globally with: `npm install -g @kayvan/markdown-tree-parser`
|
||||||
|
|
||||||
I will now proceed with the manual sharding process."
|
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}}/
|
{{project-root}}/
|
||||||
├── .github/ # CI/CD workflows
|
├── .github/ # CI/CD workflows
|
||||||
│ └── workflows/
|
│ └── workflows/
|
||||||
│ └── main.yml
|
│ └── main.yaml
|
||||||
├── .vscode/ # VSCode settings (optional)
|
├── .vscode/ # VSCode settings (optional)
|
||||||
│ └── settings.json
|
│ └── settings.json
|
||||||
├── build/ # Compiled output (git-ignored)
|
├── 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^^
|
^^CONDITION: has_rest_api^^
|
||||||
|
|
||||||
```yml
|
```yaml
|
||||||
openapi: 3.0.0
|
openapi: 3.0.0
|
||||||
info:
|
info:
|
||||||
title:
|
title:
|
||||||
@@ -7313,8 +7313,8 @@ After presenting this section, apply `tasks#advanced-elicitation` protocol]]
|
|||||||
{{project-name}}/
|
{{project-name}}/
|
||||||
├── .github/ # CI/CD workflows
|
├── .github/ # CI/CD workflows
|
||||||
│ └── workflows/
|
│ └── workflows/
|
||||||
│ ├── ci.yml
|
│ ├── ci.yaml
|
||||||
│ └── deploy.yml
|
│ └── deploy.yaml
|
||||||
├── apps/ # Application packages
|
├── apps/ # Application packages
|
||||||
│ ├── web/ # Frontend application
|
│ ├── web/ # Frontend application
|
||||||
│ │ ├── src/
|
│ │ ├── src/
|
||||||
|
|||||||
@@ -33,7 +33,7 @@ Select mode from the mode selector (usually in status bar):
|
|||||||
### File Permission Summary
|
### File Permission Summary
|
||||||
|
|
||||||
- **Documentation agents** (analyst, pm, po, sm): `.md`, `.txt` only
|
- **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-qa**: Test files (`.test.*`, `.spec.*`) and `.md`
|
||||||
- **bmad-ux-expert**: `.md`, `.css`, `.scss`, `.html`, `.jsx`, `.tsx`
|
- **bmad-ux-expert**: `.md`, `.css`, `.scss`, `.html`, `.jsx`, `.tsx`
|
||||||
- **Full access**: `bmad-dev`, `bmad-bmad-master`, `bmad-orchestrator`
|
- **Full access**: `bmad-dev`, `bmad-bmad-master`, `bmad-orchestrator`
|
||||||
|
|||||||
@@ -75,12 +75,12 @@ The `.bmad-core` directory contains all the definitions and resources that give
|
|||||||
|
|
||||||
### 3.2. Agent Teams (`.bmad-core/agent-teams/`)
|
### 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`.
|
- **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/`)
|
### 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.
|
- **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`)
|
### 3.4. Reusable Resources (`templates`, `tasks`, `checklists`, `data`)
|
||||||
@@ -239,10 +239,10 @@ bmad-method/
|
|||||||
│ │ ├── sm.md # Scrum master agent
|
│ │ ├── sm.md # Scrum master agent
|
||||||
│ │ └── ux-expert.md # UX designer agent
|
│ │ └── ux-expert.md # UX designer agent
|
||||||
│ ├── agent-teams/ # Pre-configured agent teams
|
│ ├── agent-teams/ # Pre-configured agent teams
|
||||||
│ │ ├── team-all.yml # All agents bundle
|
│ │ ├── team-all.yaml # All agents bundle
|
||||||
│ │ ├── team-fullstack.yml # Full-stack development team
|
│ │ ├── team-fullstack.yaml # Full-stack development team
|
||||||
│ │ ├── team-ide-minimal.yml # Minimal IDE-focused team
|
│ │ ├── team-ide-minimal.yaml # Minimal IDE-focused team
|
||||||
│ │ └── team-no-ui.yml # Backend-only team
|
│ │ └── team-no-ui.yaml # Backend-only team
|
||||||
│ ├── checklists/ # Quality assurance checklists
|
│ ├── checklists/ # Quality assurance checklists
|
||||||
│ │ ├── architect-checklist.md
|
│ │ ├── architect-checklist.md
|
||||||
│ │ ├── po-master-checklist.md
|
│ │ ├── po-master-checklist.md
|
||||||
@@ -268,11 +268,11 @@ bmad-method/
|
|||||||
│ │ ├── template-format.md # Template markup spec
|
│ │ ├── template-format.md # Template markup spec
|
||||||
│ │ └── workflow-management.md # Workflow helpers
|
│ │ └── workflow-management.md # Workflow helpers
|
||||||
│ ├── workflows/ # Development workflows
|
│ ├── workflows/ # Development workflows
|
||||||
│ │ ├── brownfield-enhancement.yml
|
│ │ ├── brownfield-enhancement.yaml
|
||||||
│ │ ├── greenfield-fullstack.yml
|
│ │ ├── greenfield-fullstack.yaml
|
||||||
│ │ ├── greenfield-service.yml
|
│ │ ├── greenfield-service.yaml
|
||||||
│ │ └── greenfield-simple.yml
|
│ │ └── greenfield-simple.yaml
|
||||||
│ └── core-config.yml # V4 configuration system
|
│ └── core-config.yaml # V4 configuration system
|
||||||
│
|
│
|
||||||
├── dist/ # Pre-built bundles (generated)
|
├── dist/ # Pre-built bundles (generated)
|
||||||
│ ├── agents/ # Individual agent bundles
|
│ ├── agents/ # Individual agent bundles
|
||||||
@@ -378,7 +378,7 @@ bmad-method/
|
|||||||
|
|
||||||
### Key Files
|
### 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
|
- **bmad-kb.md**: Central knowledge base loaded by most agents
|
||||||
- **template-format.md**: Specification for BMAD's template markup
|
- **template-format.md**: Specification for BMAD's template markup
|
||||||
- **dependency-resolver.js**: Manages agent resource loading
|
- **dependency-resolver.js**: Manages agent resource loading
|
||||||
|
|||||||
@@ -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:
|
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.)
|
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:
|
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.
|
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.
|
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
|
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
|
2. **Keep devLoadAlwaysFiles Focused**: Only include files needed for every dev task
|
||||||
3. **Use Debug Log**: Enable when troubleshooting story implementation issues
|
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
|
5. **Document Custom Patterns**: If using custom epicFilePattern, document it
|
||||||
|
|
||||||
#### Troubleshooting
|
#### Troubleshooting
|
||||||
|
|||||||
@@ -286,7 +286,7 @@ IMPORTANT: Only proceed after plan.md is approved
|
|||||||
expansion-packs/
|
expansion-packs/
|
||||||
└── {pack-name}/
|
└── {pack-name}/
|
||||||
├── plan.md (ALREADY CREATED)
|
├── plan.md (ALREADY CREATED)
|
||||||
├── manifest.yml
|
├── manifest.yaml
|
||||||
├── README.md
|
├── README.md
|
||||||
├── agents/
|
├── agents/
|
||||||
│ ├── {pack-name}-orchestrator.md (REQUIRED - Custom themed orchestrator)
|
│ ├── {pack-name}-orchestrator.md (REQUIRED - Custom themed orchestrator)
|
||||||
@@ -309,13 +309,13 @@ expansion-packs/
|
|||||||
├── workflows/
|
├── workflows/
|
||||||
│ └── {domain}-workflow.md (REQUIRED if multiple agents)
|
│ └── {domain}-workflow.md (REQUIRED if multiple agents)
|
||||||
└── agent-teams/
|
└── agent-teams/
|
||||||
└── {domain}-team.yml (REQUIRED if multiple agents)
|
└── {domain}-team.yaml (REQUIRED if multiple agents)
|
||||||
|
|
||||||
```
|
```
|
||||||
|
|
||||||
#### 3.2 Create Manifest
|
#### 3.2 Create Manifest
|
||||||
|
|
||||||
Create `manifest.yml`:
|
Create `manifest.yaml`:
|
||||||
|
|
||||||
```yaml
|
```yaml
|
||||||
name: {pack-name}
|
name: {pack-name}
|
||||||
@@ -358,7 +358,7 @@ files:
|
|||||||
- {domain}-workflow.md # REQUIRED if multiple agents - decision trees
|
- {domain}-workflow.md # REQUIRED if multiple agents - decision trees
|
||||||
|
|
||||||
agent-teams:
|
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)
|
# Data files users must provide (in their bmad-core/data/ directory)
|
||||||
required_user_data:
|
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
|
1. Design decision trees for workflow branching
|
||||||
2. Create handoff protocols to specialist agents
|
2. Create handoff protocols to specialist agents
|
||||||
3. Implement validation loops and quality checkpoints
|
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`
|
5. **If multiple agents**: Create workflow in `workflows/{domain}-workflow.md`
|
||||||
6. Ensure orchestrator references workflow-management utility
|
6. Ensure orchestrator references workflow-management utility
|
||||||
7. Verify ALL referenced tasks exist (including core utilities)
|
7. Verify ALL referenced tasks exist (including core utilities)
|
||||||
@@ -665,7 +665,7 @@ Before declaring complete:
|
|||||||
|
|
||||||
1. [ ] Decision trees and workflow orchestration complete
|
1. [ ] Decision trees and workflow orchestration complete
|
||||||
2. [ ] Knowledge base files embedded (best practices, terminology, standards)
|
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
|
4. [ ] All items in plan.md marked complete
|
||||||
5. [ ] No orphaned tasks or templates
|
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
|
```text
|
||||||
healthcare/
|
healthcare/
|
||||||
├── plan.md (Created first for approval)
|
├── 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)
|
├── README.md (featuring character introductions and numbered options)
|
||||||
├── agents/
|
├── agents/
|
||||||
│ ├── healthcare-orchestrator.md (Dr. Sarah Chen - YAML-in-Markdown)
|
│ ├── healthcare-orchestrator.md (Dr. Sarah Chen - YAML-in-Markdown)
|
||||||
@@ -798,7 +798,7 @@ healthcare/
|
|||||||
│ ├── clinical-trial-workflow.md (decision trees with Mermaid diagrams)
|
│ ├── clinical-trial-workflow.md (decision trees with Mermaid diagrams)
|
||||||
│ └── compliance-audit-workflow.md (handoff protocols and quality gates)
|
│ └── compliance-audit-workflow.md (handoff protocols and quality gates)
|
||||||
└── agent-teams/
|
└── agent-teams/
|
||||||
└── healthcare-team.yml (coordinated team configurations)
|
└── healthcare-team.yaml (coordinated team configurations)
|
||||||
|
|
||||||
Required user data files (bmad-core/data/):
|
Required user data files (bmad-core/data/):
|
||||||
- medical-terminology.md (institution-specific terms and abbreviations)
|
- medical-terminology.md (institution-specific terms and abbreviations)
|
||||||
@@ -1009,7 +1009,7 @@ Embedded knowledge (automatic):
|
|||||||
- [ ] All agent references verified (tasks, templates, data, checklists)
|
- [ ] All agent references verified (tasks, templates, data, checklists)
|
||||||
- [ ] Data requirements documented with validation criteria and examples
|
- [ ] Data requirements documented with validation criteria and examples
|
||||||
- [ ] README includes character introductions and numbered options explanation
|
- [ ] 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:**
|
**Advanced Quality Gates:**
|
||||||
|
|
||||||
|
|||||||
@@ -150,5 +150,5 @@ workflows: null
|
|||||||
3. Replace all placeholders with actual values
|
3. Replace all placeholders with actual values
|
||||||
4. Ensure agent names match available agents in the system
|
4. Ensure agent names match available agents in the system
|
||||||
5. Verify workflow names match available workflows
|
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]]
|
7. Place in the agent-teams directory of the appropriate location]]
|
||||||
|
|||||||
@@ -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:
|
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:
|
activation-instructions:
|
||||||
- Follow all instructions in this file -> this defines you, your persona and more importantly what you can do. STAY IN CHARACTER!
|
- 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
|
- Only read the files/tasks listed here when user selects them for execution to minimize context usage
|
||||||
|
|||||||
@@ -28,7 +28,7 @@ Install this expansion pack when your project requires:
|
|||||||
|
|
||||||
### Agents
|
### Agents
|
||||||
|
|
||||||
- `devops.yml` - DevOps and Platform Engineering agent configuration
|
- `devops.yaml` - DevOps and Platform Engineering agent configuration
|
||||||
|
|
||||||
### Personas
|
### Personas
|
||||||
|
|
||||||
@@ -116,8 +116,8 @@ Before deployment:
|
|||||||
|
|
||||||
The DevOps agent can be added to team configurations:
|
The DevOps agent can be added to team configurations:
|
||||||
|
|
||||||
- `team-technical.yml` - For technical implementation teams
|
- `team-technical.yaml` - For technical implementation teams
|
||||||
- `team-full-org.yml` - For complete organizational teams
|
- `team-full-org.yaml` - For complete organizational teams
|
||||||
|
|
||||||
## Dependencies
|
## Dependencies
|
||||||
|
|
||||||
|
|||||||
Binary file not shown.
@@ -259,7 +259,7 @@ class WebBuilder {
|
|||||||
const agentTeamsDir = path.join(packDir, "agent-teams");
|
const agentTeamsDir = path.join(packDir, "agent-teams");
|
||||||
try {
|
try {
|
||||||
const teamFiles = await fs.readdir(agentTeamsDir);
|
const teamFiles = await fs.readdir(agentTeamsDir);
|
||||||
const teamFile = teamFiles.find((f) => f.endsWith(".yml"));
|
const teamFile = teamFiles.find((f) => f.endsWith(".yaml"));
|
||||||
|
|
||||||
if (teamFile) {
|
if (teamFile) {
|
||||||
console.log(` Building team bundle for ${packName}`);
|
console.log(` Building team bundle for ${packName}`);
|
||||||
@@ -272,7 +272,7 @@ class WebBuilder {
|
|||||||
for (const outputDir of outputDirs) {
|
for (const outputDir of outputDirs) {
|
||||||
const teamsOutputDir = path.join(outputDir, "teams");
|
const teamsOutputDir = path.join(outputDir, "teams");
|
||||||
await fs.mkdir(teamsOutputDir, { recursive: true });
|
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");
|
await fs.writeFile(outputFile, bundle, "utf8");
|
||||||
console.log(` ✓ Created bundle: ${path.relative(this.rootDir, outputFile)}`);
|
console.log(` ✓ Created bundle: ${path.relative(this.rootDir, outputFile)}`);
|
||||||
}
|
}
|
||||||
@@ -306,7 +306,7 @@ class WebBuilder {
|
|||||||
if (Array.isArray(resources)) {
|
if (Array.isArray(resources)) {
|
||||||
for (const resourceName of resources) {
|
for (const resourceName of resources) {
|
||||||
let found = false;
|
let found = false;
|
||||||
const extensions = [".md", ".yml", ".yaml"];
|
const extensions = [".md", ".yaml"];
|
||||||
|
|
||||||
// Try expansion pack first
|
// Try expansion pack first
|
||||||
for (const ext of extensions) {
|
for (const ext of extensions) {
|
||||||
@@ -391,7 +391,7 @@ class WebBuilder {
|
|||||||
|
|
||||||
// Add team configuration and parse to get agent list
|
// Add team configuration and parse to get agent list
|
||||||
const teamContent = await fs.readFile(teamConfigPath, "utf8");
|
const teamContent = await fs.readFile(teamConfigPath, "utf8");
|
||||||
const teamFileName = path.basename(teamConfigPath, ".yml");
|
const teamFileName = path.basename(teamConfigPath, ".yaml");
|
||||||
const teamConfig = this.parseYaml(teamContent);
|
const teamConfig = this.parseYaml(teamContent);
|
||||||
sections.push(this.formatSection(`agent-teams#${teamFileName}`, teamContent));
|
sections.push(this.formatSection(`agent-teams#${teamFileName}`, teamContent));
|
||||||
|
|
||||||
@@ -416,9 +416,9 @@ class WebBuilder {
|
|||||||
try {
|
try {
|
||||||
const resourceFiles = await fs.readdir(resourcePath);
|
const resourceFiles = await fs.readdir(resourcePath);
|
||||||
for (const resourceFile of resourceFiles.filter(
|
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);
|
expansionResources.set(`${resourceDir}#${fileName}`, true);
|
||||||
}
|
}
|
||||||
} catch (error) {
|
} catch (error) {
|
||||||
@@ -508,7 +508,7 @@ class WebBuilder {
|
|||||||
// Always prefer expansion pack versions if they exist
|
// Always prefer expansion pack versions if they exist
|
||||||
for (const [key, dep] of allDependencies) {
|
for (const [key, dep] of allDependencies) {
|
||||||
let found = false;
|
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
|
// Always check expansion pack first, even if the dependency came from a core agent
|
||||||
if (expansionResources.has(key)) {
|
if (expansionResources.has(key)) {
|
||||||
@@ -568,7 +568,7 @@ class WebBuilder {
|
|||||||
try {
|
try {
|
||||||
const resourceFiles = await fs.readdir(resourcePath);
|
const resourceFiles = await fs.readdir(resourcePath);
|
||||||
for (const resourceFile of resourceFiles.filter(
|
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 filePath = path.join(resourcePath, resourceFile);
|
||||||
const fileContent = await fs.readFile(filePath, "utf8");
|
const fileContent = await fs.readFile(filePath, "utf8");
|
||||||
|
|||||||
@@ -32,7 +32,7 @@ async function bumpAllVersions() {
|
|||||||
const updatedItems = [];
|
const updatedItems = [];
|
||||||
|
|
||||||
// First, bump the core version
|
// 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 {
|
try {
|
||||||
const coreConfigContent = fs.readFileSync(coreConfigPath, 'utf8');
|
const coreConfigContent = fs.readFileSync(coreConfigPath, 'utf8');
|
||||||
const coreConfig = yaml.load(coreConfigContent);
|
const coreConfig = yaml.load(coreConfigContent);
|
||||||
@@ -59,7 +59,7 @@ async function bumpAllVersions() {
|
|||||||
for (const entry of entries) {
|
for (const entry of entries) {
|
||||||
if (entry.isDirectory() && !entry.name.startsWith('.') && entry.name !== 'README.md') {
|
if (entry.isDirectory() && !entry.name.startsWith('.') && entry.name !== 'README.md') {
|
||||||
const packId = entry.name;
|
const packId = entry.name;
|
||||||
const configPath = path.join(expansionPacksDir, packId, 'config.yml');
|
const configPath = path.join(expansionPacksDir, packId, 'config.yaml');
|
||||||
|
|
||||||
if (fs.existsSync(configPath)) {
|
if (fs.existsSync(configPath)) {
|
||||||
try {
|
try {
|
||||||
|
|||||||
@@ -30,7 +30,7 @@ function bumpVersion(currentVersion, type) {
|
|||||||
|
|
||||||
async function bumpCoreVersion() {
|
async function bumpCoreVersion() {
|
||||||
try {
|
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 coreConfigContent = fs.readFileSync(coreConfigPath, 'utf8');
|
||||||
const coreConfig = yaml.load(coreConfigContent);
|
const coreConfig = yaml.load(coreConfigContent);
|
||||||
|
|||||||
@@ -38,7 +38,7 @@ function bumpVersion(currentVersion, type) {
|
|||||||
|
|
||||||
async function updateVersion() {
|
async function updateVersion() {
|
||||||
try {
|
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)) {
|
if (!fs.existsSync(configPath)) {
|
||||||
console.error(`Error: Expansion pack '${packId}' not found`);
|
console.error(`Error: Expansion pack '${packId}' not found`);
|
||||||
|
|||||||
@@ -16,7 +16,7 @@ installer/
|
|||||||
│ ├── ide-setup.js # IDE-specific setup
|
│ ├── ide-setup.js # IDE-specific setup
|
||||||
│ └── prompts.js # Interactive CLI prompts
|
│ └── prompts.js # Interactive CLI prompts
|
||||||
├── config/ # Configuration files
|
├── config/ # Configuration files
|
||||||
│ └── install.config.yml # Installation profiles
|
│ └── install.config.yaml # Installation profiles
|
||||||
├── templates/ # IDE template files
|
├── templates/ # IDE template files
|
||||||
│ ├── cursor-rules.md # Cursor template
|
│ ├── cursor-rules.md # Cursor template
|
||||||
│ ├── claude-commands.md # Claude Code template
|
│ ├── claude-commands.md # Claude Code template
|
||||||
|
|||||||
@@ -158,7 +158,7 @@ async function promptInstallation() {
|
|||||||
const choices = [];
|
const choices = [];
|
||||||
|
|
||||||
// Load core config to get short-title
|
// 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 coreConfig = yaml.load(await fs.readFile(coreConfigPath, 'utf8'));
|
||||||
const coreShortTitle = coreConfig['short-title'] || 'BMad Agile Core System';
|
const coreShortTitle = coreConfig['short-title'] || 'BMad Agile Core System';
|
||||||
|
|
||||||
@@ -166,7 +166,7 @@ async function promptInstallation() {
|
|||||||
let bmadOptionText;
|
let bmadOptionText;
|
||||||
if (state.type === 'v4_existing') {
|
if (state.type === 'v4_existing') {
|
||||||
const currentVersion = state.manifest?.version || 'unknown';
|
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
|
const versionInfo = currentVersion === newVersion
|
||||||
? `(v${currentVersion} - reinstall)`
|
? `(v${currentVersion} - reinstall)`
|
||||||
: `(v${currentVersion} → v${newVersion})`;
|
: `(v${currentVersion} → v${newVersion})`;
|
||||||
|
|||||||
@@ -4,7 +4,7 @@ const yaml = require('js-yaml');
|
|||||||
|
|
||||||
class ConfigLoader {
|
class ConfigLoader {
|
||||||
constructor() {
|
constructor() {
|
||||||
this.configPath = path.join(__dirname, '..', 'config', 'install.config.yml');
|
this.configPath = path.join(__dirname, '..', 'config', 'install.config.yaml');
|
||||||
this.config = null;
|
this.config = null;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -41,7 +41,7 @@ class ConfigLoader {
|
|||||||
const agentContent = await fs.readFile(agentPath, 'utf8');
|
const agentContent = await fs.readFile(agentPath, 'utf8');
|
||||||
|
|
||||||
// Extract YAML block from agent file
|
// 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) {
|
if (yamlMatch) {
|
||||||
const yamlContent = yaml.load(yamlMatch[1]);
|
const yamlContent = yaml.load(yamlMatch[1]);
|
||||||
const agentConfig = yamlContent.agent || {};
|
const agentConfig = yamlContent.agent || {};
|
||||||
@@ -79,10 +79,10 @@ class ConfigLoader {
|
|||||||
for (const entry of entries) {
|
for (const entry of entries) {
|
||||||
if (entry.isDirectory() && !entry.name.startsWith('.')) {
|
if (entry.isDirectory() && !entry.name.startsWith('.')) {
|
||||||
const packPath = path.join(expansionPacksDir, entry.name);
|
const packPath = path.join(expansionPacksDir, entry.name);
|
||||||
const configPath = path.join(packPath, 'config.yml');
|
const configPath = path.join(packPath, 'config.yaml');
|
||||||
|
|
||||||
try {
|
try {
|
||||||
// Read config.yml
|
// Read config.yaml
|
||||||
const configContent = await fs.readFile(configPath, 'utf8');
|
const configContent = await fs.readFile(configPath, 'utf8');
|
||||||
const config = yaml.load(configContent);
|
const config = yaml.load(configContent);
|
||||||
|
|
||||||
@@ -97,7 +97,7 @@ class ConfigLoader {
|
|||||||
dependencies: config.dependencies?.agents || []
|
dependencies: config.dependencies?.agents || []
|
||||||
});
|
});
|
||||||
} catch (error) {
|
} 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}`);
|
console.warn(`Failed to read config for expansion pack ${entry.name}: ${error.message}`);
|
||||||
|
|
||||||
// Try to derive info from directory name as fallback
|
// Try to derive info from directory name as fallback
|
||||||
@@ -180,7 +180,7 @@ class ConfigLoader {
|
|||||||
const teams = [];
|
const teams = [];
|
||||||
|
|
||||||
for (const entry of entries) {
|
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);
|
const teamPath = path.join(teamsDir, entry.name);
|
||||||
|
|
||||||
try {
|
try {
|
||||||
@@ -189,7 +189,7 @@ class ConfigLoader {
|
|||||||
|
|
||||||
if (teamConfig.bundle) {
|
if (teamConfig.bundle) {
|
||||||
teams.push({
|
teams.push({
|
||||||
id: path.basename(entry.name, '.yml'),
|
id: path.basename(entry.name, '.yaml'),
|
||||||
name: teamConfig.bundle.name || entry.name,
|
name: teamConfig.bundle.name || entry.name,
|
||||||
description: teamConfig.bundle.description || 'Team configuration',
|
description: teamConfig.bundle.description || 'Team configuration',
|
||||||
icon: teamConfig.bundle.icon || '📋'
|
icon: teamConfig.bundle.icon || '📋'
|
||||||
@@ -209,7 +209,7 @@ class ConfigLoader {
|
|||||||
}
|
}
|
||||||
|
|
||||||
getTeamPath(teamId) {
|
getTeamPath(teamId) {
|
||||||
return path.join(this.getBmadCorePath(), 'agent-teams', `${teamId}.yml`);
|
return path.join(this.getBmadCorePath(), 'agent-teams', `${teamId}.yaml`);
|
||||||
}
|
}
|
||||||
|
|
||||||
async getTeamDependencies(teamId) {
|
async getTeamDependencies(teamId) {
|
||||||
@@ -224,7 +224,7 @@ class ConfigLoader {
|
|||||||
const depPaths = [];
|
const depPaths = [];
|
||||||
|
|
||||||
// Add team config file
|
// Add team config file
|
||||||
depPaths.push(`.bmad-core/agent-teams/${teamId}.yml`);
|
depPaths.push(`.bmad-core/agent-teams/${teamId}.yaml`);
|
||||||
|
|
||||||
// Add all agents
|
// Add all agents
|
||||||
for (const agent of teamDeps.agents) {
|
for (const agent of teamDeps.agents) {
|
||||||
@@ -236,7 +236,7 @@ class ConfigLoader {
|
|||||||
|
|
||||||
// Add all resolved resources
|
// Add all resolved resources
|
||||||
for (const resource of teamDeps.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)) {
|
if (!depPaths.includes(filePath)) {
|
||||||
depPaths.push(filePath);
|
depPaths.push(filePath);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -17,7 +17,7 @@ async function initializeModules() {
|
|||||||
class FileManager {
|
class FileManager {
|
||||||
constructor() {
|
constructor() {
|
||||||
this.manifestDir = ".bmad-core";
|
this.manifestDir = ".bmad-core";
|
||||||
this.manifestFile = "install-manifest.yml";
|
this.manifestFile = "install-manifest.yaml";
|
||||||
}
|
}
|
||||||
|
|
||||||
async copyFile(source, destination) {
|
async copyFile(source, destination) {
|
||||||
@@ -83,15 +83,15 @@ class FileManager {
|
|||||||
this.manifestFile
|
this.manifestFile
|
||||||
);
|
);
|
||||||
|
|
||||||
// Read version from core-config.yml
|
// Read version from core-config.yaml
|
||||||
const coreConfigPath = path.join(__dirname, "../../../bmad-core/core-config.yml");
|
const coreConfigPath = path.join(__dirname, "../../../bmad-core/core-config.yaml");
|
||||||
let coreVersion = "unknown";
|
let coreVersion = "unknown";
|
||||||
try {
|
try {
|
||||||
const coreConfigContent = await fs.readFile(coreConfigPath, "utf8");
|
const coreConfigContent = await fs.readFile(coreConfigPath, "utf8");
|
||||||
const coreConfig = yaml.load(coreConfigContent);
|
const coreConfig = yaml.load(coreConfigContent);
|
||||||
coreVersion = coreConfig.version || "unknown";
|
coreVersion = coreConfig.version || "unknown";
|
||||||
} catch (error) {
|
} 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 = {
|
const manifest = {
|
||||||
@@ -178,7 +178,7 @@ class FileManager {
|
|||||||
const filePath = path.join(installDir, file.path);
|
const filePath = path.join(installDir, file.path);
|
||||||
|
|
||||||
// Skip checking the manifest file itself - it will always be different due to timestamps
|
// 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;
|
continue;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -27,7 +27,7 @@ class IdeSetup {
|
|||||||
if (this.ideAgentConfig) return this.ideAgentConfig;
|
if (this.ideAgentConfig) return this.ideAgentConfig;
|
||||||
|
|
||||||
try {
|
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');
|
const configContent = await fs.readFile(configPath, 'utf8');
|
||||||
this.ideAgentConfig = yaml.load(configContent);
|
this.ideAgentConfig = yaml.load(configContent);
|
||||||
return this.ideAgentConfig;
|
return this.ideAgentConfig;
|
||||||
@@ -98,7 +98,7 @@ class IdeSetup {
|
|||||||
mdcContent += "## Agent Activation\n\n";
|
mdcContent += "## Agent Activation\n\n";
|
||||||
mdcContent +=
|
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";
|
"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
|
// Extract just the YAML content from the agent file
|
||||||
const yamlMatch = agentContent.match(/```ya?ml\n([\s\S]*?)```/);
|
const yamlMatch = agentContent.match(/```ya?ml\n([\s\S]*?)```/);
|
||||||
if (yamlMatch) {
|
if (yamlMatch) {
|
||||||
@@ -180,7 +180,7 @@ class IdeSetup {
|
|||||||
mdContent += "## Agent Activation\n\n";
|
mdContent += "## Agent Activation\n\n";
|
||||||
mdContent +=
|
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";
|
"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
|
// Extract just the YAML content from the agent file
|
||||||
const yamlMatch = agentContent.match(/```ya?ml\n([\s\S]*?)```/);
|
const yamlMatch = agentContent.match(/```ya?ml\n([\s\S]*?)```/);
|
||||||
if (yamlMatch) {
|
if (yamlMatch) {
|
||||||
@@ -428,7 +428,7 @@ class IdeSetup {
|
|||||||
mdContent += "## Role Definition\n\n";
|
mdContent += "## Role Definition\n\n";
|
||||||
mdContent +=
|
mdContent +=
|
||||||
"When the user types `@" + agentId + "`, adopt this persona and follow these guidelines:\n\n";
|
"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
|
// Extract just the YAML content from the agent file
|
||||||
const yamlMatch = agentContent.match(/```ya?ml\n([\s\S]*?)```/);
|
const yamlMatch = agentContent.match(/```ya?ml\n([\s\S]*?)```/);
|
||||||
if (yamlMatch) {
|
if (yamlMatch) {
|
||||||
|
|||||||
@@ -19,13 +19,13 @@ class Installer {
|
|||||||
async getCoreVersion() {
|
async getCoreVersion() {
|
||||||
const yaml = require("js-yaml");
|
const yaml = require("js-yaml");
|
||||||
const fs = require("fs-extra");
|
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 {
|
try {
|
||||||
const coreConfigContent = await fs.readFile(coreConfigPath, "utf8");
|
const coreConfigContent = await fs.readFile(coreConfigPath, "utf8");
|
||||||
const coreConfig = yaml.load(coreConfigContent);
|
const coreConfig = yaml.load(coreConfigContent);
|
||||||
return coreConfig.version || "unknown";
|
return coreConfig.version || "unknown";
|
||||||
} catch (error) {
|
} 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";
|
return "unknown";
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -185,7 +185,7 @@ class Installer {
|
|||||||
|
|
||||||
// Check for V4 installation (has .bmad-core with manifest)
|
// Check for V4 installation (has .bmad-core with manifest)
|
||||||
const bmadCorePath = path.join(installDir, ".bmad-core");
|
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)) {
|
if (await fileManager.pathExists(manifestPath)) {
|
||||||
state.type = "v4_existing";
|
state.type = "v4_existing";
|
||||||
@@ -713,7 +713,7 @@ class Installer {
|
|||||||
|
|
||||||
for (const file of filesToRestore) {
|
for (const file of filesToRestore) {
|
||||||
// Skip the manifest file itself
|
// 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 relativePath = file.replace('.bmad-core/', '');
|
||||||
const destPath = path.join(installDir, file);
|
const destPath = path.join(installDir, file);
|
||||||
@@ -1009,7 +1009,7 @@ class Installer {
|
|||||||
|
|
||||||
// Check if expansion pack already exists
|
// Check if expansion pack already exists
|
||||||
let expansionDotFolder = path.join(installDir, `.${packId}`);
|
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)) {
|
if (await fileManager.pathExists(existingManifestPath)) {
|
||||||
spinner.stop();
|
spinner.stop();
|
||||||
@@ -1151,12 +1151,12 @@ class Installer {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// Copy config.yml
|
// Copy config.yaml
|
||||||
const configPath = path.join(expansionPackDir, 'config.yml');
|
const configPath = path.join(expansionPackDir, 'config.yaml');
|
||||||
if (await fileManager.pathExists(configPath)) {
|
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)) {
|
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;
|
const fs = require('fs').promises;
|
||||||
|
|
||||||
// Find all team files in the expansion pack
|
// Find all team files in the expansion pack
|
||||||
const teamFiles = glob.sync('agent-teams/*.yml', {
|
const teamFiles = glob.sync('agent-teams/*.yaml', {
|
||||||
cwd: expansionDotFolder
|
cwd: expansionDotFolder
|
||||||
});
|
});
|
||||||
|
|
||||||
@@ -1330,7 +1330,7 @@ class Installer {
|
|||||||
const deps = dependencies[depType] || [];
|
const deps = dependencies[depType] || [];
|
||||||
|
|
||||||
for (const dep of deps) {
|
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);
|
const expansionDepPath = path.join(expansionDotFolder, depType, depFileName);
|
||||||
|
|
||||||
// Check if dependency exists in expansion pack
|
// Check if dependency exists in expansion pack
|
||||||
@@ -1360,7 +1360,7 @@ class Installer {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
} else {
|
} 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) {
|
if (stats) {
|
||||||
// Check if it has a manifest
|
// 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)) {
|
if (await fileManager.pathExists(manifestPath)) {
|
||||||
const manifest = await fileManager.readExpansionPackManifest(installDir, folder.substring(1));
|
const manifest = await fileManager.readExpansionPackManifest(installDir, folder.substring(1));
|
||||||
if (manifest) {
|
if (manifest) {
|
||||||
@@ -1539,8 +1539,8 @@ class Installer {
|
|||||||
};
|
};
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
// Check if it has a config.yml (expansion pack without manifest)
|
// Check if it has a config.yaml (expansion pack without manifest)
|
||||||
const configPath = path.join(folderPath, "config.yml");
|
const configPath = path.join(folderPath, "config.yaml");
|
||||||
if (await fileManager.pathExists(configPath)) {
|
if (await fileManager.pathExists(configPath)) {
|
||||||
expansionPacks[folder.substring(1)] = {
|
expansionPacks[folder.substring(1)] = {
|
||||||
path: folderPath,
|
path: folderPath,
|
||||||
@@ -1579,7 +1579,7 @@ class Installer {
|
|||||||
|
|
||||||
for (const file of filesToRestore) {
|
for (const file of filesToRestore) {
|
||||||
// Skip the manifest file itself
|
// 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 relativePath = file.replace(`.${packId}/`, '');
|
||||||
const sourcePath = path.join(pack.packPath, relativePath);
|
const sourcePath = path.join(pack.packPath, relativePath);
|
||||||
@@ -1645,7 +1645,7 @@ class Installer {
|
|||||||
|
|
||||||
while (currentDir !== path.dirname(currentDir)) {
|
while (currentDir !== path.dirname(currentDir)) {
|
||||||
const bmadDir = path.join(currentDir, ".bmad-core");
|
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)) {
|
if (await fileManager.pathExists(manifestPath)) {
|
||||||
return bmadDir;
|
return bmadDir;
|
||||||
@@ -1656,7 +1656,7 @@ class Installer {
|
|||||||
|
|
||||||
// Also check if we're inside a .bmad-core directory
|
// Also check if we're inside a .bmad-core directory
|
||||||
if (path.basename(process.cwd()) === ".bmad-core") {
|
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)) {
|
if (await fileManager.pathExists(manifestPath)) {
|
||||||
return process.cwd();
|
return process.cwd();
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -53,7 +53,7 @@ class DependencyResolver {
|
|||||||
}
|
}
|
||||||
|
|
||||||
async resolveTeamDependencies(teamId) {
|
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 teamContent = await fs.readFile(teamPath, 'utf8');
|
||||||
const teamConfig = yaml.load(teamContent);
|
const teamConfig = yaml.load(teamContent);
|
||||||
|
|
||||||
@@ -120,7 +120,7 @@ class DependencyResolver {
|
|||||||
}
|
}
|
||||||
|
|
||||||
try {
|
try {
|
||||||
const extensions = ['.md', '.yml', '.yaml'];
|
const extensions = ['.md', '.yaml'];
|
||||||
let content = null;
|
let content = null;
|
||||||
let filePath = null;
|
let filePath = null;
|
||||||
|
|
||||||
@@ -183,8 +183,8 @@ class DependencyResolver {
|
|||||||
try {
|
try {
|
||||||
const files = await fs.readdir(path.join(this.bmadCore, 'agent-teams'));
|
const files = await fs.readdir(path.join(this.bmadCore, 'agent-teams'));
|
||||||
return files
|
return files
|
||||||
.filter(f => f.endsWith('.yml'))
|
.filter(f => f.endsWith('.yaml'))
|
||||||
.map(f => f.replace('.yml', ''));
|
.map(f => f.replace('.yaml', ''));
|
||||||
} catch (error) {
|
} catch (error) {
|
||||||
return [];
|
return [];
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -22,8 +22,8 @@ if (!/^\d+\.\d+\.\d+$/.test(newVersion)) {
|
|||||||
|
|
||||||
async function updateVersion() {
|
async function updateVersion() {
|
||||||
try {
|
try {
|
||||||
// Update in config.yml
|
// Update in config.yaml
|
||||||
const configPath = path.join(__dirname, '..', 'expansion-packs', packId, 'config.yml');
|
const configPath = path.join(__dirname, '..', 'expansion-packs', packId, 'config.yaml');
|
||||||
|
|
||||||
if (!fs.existsSync(configPath)) {
|
if (!fs.existsSync(configPath)) {
|
||||||
console.error(`Error: Expansion pack '${packId}' not found`);
|
console.error(`Error: Expansion pack '${packId}' not found`);
|
||||||
@@ -39,7 +39,7 @@ async function updateVersion() {
|
|||||||
const updatedYaml = yaml.dump(config, { indent: 2 });
|
const updatedYaml = yaml.dump(config, { indent: 2 });
|
||||||
fs.writeFileSync(configPath, updatedYaml);
|
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(`\n✓ Successfully updated ${packId} to version ${newVersion}`);
|
||||||
console.log('\nNext steps:');
|
console.log('\nNext steps:');
|
||||||
console.log('1. Test the changes');
|
console.log('1. Test the changes');
|
||||||
|
|||||||
@@ -197,7 +197,7 @@ async function main() {
|
|||||||
let changed = false;
|
let changed = false;
|
||||||
if (ext === '.md') {
|
if (ext === '.md') {
|
||||||
changed = await processMarkdownFile(filePath);
|
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
|
// Handle YAML files and special cases like .roomodes
|
||||||
changed = await processYamlFile(filePath);
|
changed = await processYamlFile(filePath);
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user