mirror of
https://github.com/bmadcode/BMAD-METHOD.git
synced 2025-12-17 17:55:34 +00:00
remove hardcoded .bmad folders from demo content
This commit is contained in:
parent
a638f062b9
commit
86f2786dde
@ -1,6 +1,6 @@
|
|||||||
agent:
|
agent:
|
||||||
metadata:
|
metadata:
|
||||||
id: .bmad/agents/commit-poet/commit-poet.md
|
id: "{bmad_folder}/agents/commit-poet/commit-poet.md"
|
||||||
name: "Inkwell Von Comitizen"
|
name: "Inkwell Von Comitizen"
|
||||||
title: "Commit Message Artisan"
|
title: "Commit Message Artisan"
|
||||||
icon: "📜"
|
icon: "📜"
|
||||||
|
|||||||
@ -1,6 +1,6 @@
|
|||||||
agent:
|
agent:
|
||||||
metadata:
|
metadata:
|
||||||
id: custom/agents/toolsmith/toolsmith.md
|
id: "{bmad_folder}/agents/toolsmith/toolsmith.md"
|
||||||
name: Vexor
|
name: Vexor
|
||||||
title: Infernal Toolsmith + Guardian of the BMAD Forge
|
title: Infernal Toolsmith + Guardian of the BMAD Forge
|
||||||
icon: ⚒️
|
icon: ⚒️
|
||||||
|
|||||||
@ -3,7 +3,7 @@ name: 'step-01-init'
|
|||||||
description: 'Initialize quiz game with mode selection and category choice'
|
description: 'Initialize quiz game with mode selection and category choice'
|
||||||
|
|
||||||
# Path Definitions
|
# Path Definitions
|
||||||
workflow_path: '{project-root}/.bmad/custom/src/workflows/quiz-master'
|
workflow_path: '{project-root}/{bmad_folder}/custom/src/workflows/quiz-master'
|
||||||
|
|
||||||
# File References
|
# File References
|
||||||
thisStepFile: '{workflow_path}/steps/step-01-init.md'
|
thisStepFile: '{workflow_path}/steps/step-01-init.md'
|
||||||
@ -66,7 +66,7 @@ To set up the quiz game by selecting game mode, choosing a category, and prepari
|
|||||||
|
|
||||||
### 1. Welcome and Configuration Loading
|
### 1. Welcome and Configuration Loading
|
||||||
|
|
||||||
Load config from {project-root}/.bmad/bmb/config.yaml to get user_name.
|
Load config from {project-root}/{bmad_folder}/bmb/config.yaml to get user_name.
|
||||||
|
|
||||||
Present dramatic welcome:
|
Present dramatic welcome:
|
||||||
"🎺 _DRAMATIC MUSIC PLAYS_ 🎺
|
"🎺 _DRAMATIC MUSIC PLAYS_ 🎺
|
||||||
|
|||||||
@ -3,7 +3,7 @@ name: 'step-02-q1'
|
|||||||
description: 'Question 1 - Level 1 difficulty'
|
description: 'Question 1 - Level 1 difficulty'
|
||||||
|
|
||||||
# Path Definitions
|
# Path Definitions
|
||||||
workflow_path: '{project-root}/.bmad/custom/src/workflows/quiz-master'
|
workflow_path: '{project-root}/{bmad_folder}/custom/src/workflows/quiz-master'
|
||||||
|
|
||||||
# File References
|
# File References
|
||||||
thisStepFile: '{workflow_path}/steps/step-02-q1.md'
|
thisStepFile: '{workflow_path}/steps/step-02-q1.md'
|
||||||
|
|||||||
@ -3,7 +3,7 @@ name: 'step-03-q2'
|
|||||||
description: 'Question 2 - Level 2 difficulty'
|
description: 'Question 2 - Level 2 difficulty'
|
||||||
|
|
||||||
# Path Definitions
|
# Path Definitions
|
||||||
workflow_path: '{project-root}/.bmad/custom/src/workflows/quiz-master'
|
workflow_path: '{project-root}/{bmad_folder}/custom/src/workflows/quiz-master'
|
||||||
|
|
||||||
# File References
|
# File References
|
||||||
thisStepFile: '{workflow_path}/steps/step-03-q2.md'
|
thisStepFile: '{workflow_path}/steps/step-03-q2.md'
|
||||||
|
|||||||
@ -3,7 +3,7 @@ name: 'step-04-q3'
|
|||||||
description: 'Question 3 - Level 3 difficulty'
|
description: 'Question 3 - Level 3 difficulty'
|
||||||
|
|
||||||
# Path Definitions
|
# Path Definitions
|
||||||
workflow_path: '{project-root}/.bmad/custom/src/workflows/quiz-master'
|
workflow_path: '{project-root}/{bmad_folder}/custom/src/workflows/quiz-master'
|
||||||
|
|
||||||
# File References
|
# File References
|
||||||
thisStepFile: '{workflow_path}/steps/step-04-q3.md'
|
thisStepFile: '{workflow_path}/steps/step-04-q3.md'
|
||||||
|
|||||||
@ -3,7 +3,7 @@ name: 'step-05-q4'
|
|||||||
description: 'Question 4 - Level 4 difficulty'
|
description: 'Question 4 - Level 4 difficulty'
|
||||||
|
|
||||||
# Path Definitions
|
# Path Definitions
|
||||||
workflow_path: '{project-root}/.bmad/custom/src/workflows/quiz-master'
|
workflow_path: '{project-root}/{bmad_folder}/custom/src/workflows/quiz-master'
|
||||||
|
|
||||||
# File References
|
# File References
|
||||||
thisStepFile: '{workflow_path}/steps/step-05-q4.md'
|
thisStepFile: '{workflow_path}/steps/step-05-q4.md'
|
||||||
|
|||||||
@ -3,7 +3,7 @@ name: 'step-06-q5'
|
|||||||
description: 'Question 5 - Level 5 difficulty'
|
description: 'Question 5 - Level 5 difficulty'
|
||||||
|
|
||||||
# Path Definitions
|
# Path Definitions
|
||||||
workflow_path: '{project-root}/.bmad/custom/src/workflows/quiz-master'
|
workflow_path: '{project-root}/{bmad_folder}/custom/src/workflows/quiz-master'
|
||||||
|
|
||||||
# File References
|
# File References
|
||||||
thisStepFile: '{workflow_path}/steps/step-06-q5.md'
|
thisStepFile: '{workflow_path}/steps/step-06-q5.md'
|
||||||
|
|||||||
@ -3,7 +3,7 @@ name: 'step-07-q6'
|
|||||||
description: 'Question 6 - Level 6 difficulty'
|
description: 'Question 6 - Level 6 difficulty'
|
||||||
|
|
||||||
# Path Definitions
|
# Path Definitions
|
||||||
workflow_path: '{project-root}/.bmad/custom/src/workflows/quiz-master'
|
workflow_path: '{project-root}/{bmad_folder}/custom/src/workflows/quiz-master'
|
||||||
|
|
||||||
# File References
|
# File References
|
||||||
thisStepFile: '{workflow_path}/steps/step-07-q6.md'
|
thisStepFile: '{workflow_path}/steps/step-07-q6.md'
|
||||||
|
|||||||
@ -3,7 +3,7 @@ name: 'step-08-q7'
|
|||||||
description: 'Question 7 - Level 7 difficulty'
|
description: 'Question 7 - Level 7 difficulty'
|
||||||
|
|
||||||
# Path Definitions
|
# Path Definitions
|
||||||
workflow_path: '{project-root}/.bmad/custom/src/workflows/quiz-master'
|
workflow_path: '{project-root}/{bmad_folder}/custom/src/workflows/quiz-master'
|
||||||
|
|
||||||
# File References
|
# File References
|
||||||
thisStepFile: '{workflow_path}/steps/step-08-q7.md'
|
thisStepFile: '{workflow_path}/steps/step-08-q7.md'
|
||||||
|
|||||||
@ -3,7 +3,7 @@ name: 'step-09-q8'
|
|||||||
description: 'Question 8 - Level 8 difficulty'
|
description: 'Question 8 - Level 8 difficulty'
|
||||||
|
|
||||||
# Path Definitions
|
# Path Definitions
|
||||||
workflow_path: '{project-root}/.bmad/custom/src/workflows/quiz-master'
|
workflow_path: '{project-root}/{bmad_folder}/custom/src/workflows/quiz-master'
|
||||||
|
|
||||||
# File References
|
# File References
|
||||||
thisStepFile: '{workflow_path}/steps/step-09-q8.md'
|
thisStepFile: '{workflow_path}/steps/step-09-q8.md'
|
||||||
|
|||||||
@ -3,7 +3,7 @@ name: 'step-10-q9'
|
|||||||
description: 'Question 9 - Level 9 difficulty'
|
description: 'Question 9 - Level 9 difficulty'
|
||||||
|
|
||||||
# Path Definitions
|
# Path Definitions
|
||||||
workflow_path: '{project-root}/.bmad/custom/src/workflows/quiz-master'
|
workflow_path: '{project-root}/{bmad_folder}/custom/src/workflows/quiz-master'
|
||||||
|
|
||||||
# File References
|
# File References
|
||||||
thisStepFile: '{workflow_path}/steps/step-10-q9.md'
|
thisStepFile: '{workflow_path}/steps/step-10-q9.md'
|
||||||
|
|||||||
@ -3,7 +3,7 @@ name: 'step-11-q10'
|
|||||||
description: 'Question 10 - Level 10 difficulty'
|
description: 'Question 10 - Level 10 difficulty'
|
||||||
|
|
||||||
# Path Definitions
|
# Path Definitions
|
||||||
workflow_path: '{project-root}/.bmad/custom/src/workflows/quiz-master'
|
workflow_path: '{project-root}/{bmad_folder}/custom/src/workflows/quiz-master'
|
||||||
|
|
||||||
# File References
|
# File References
|
||||||
thisStepFile: '{workflow_path}/steps/step-11-q10.md'
|
thisStepFile: '{workflow_path}/steps/step-11-q10.md'
|
||||||
|
|||||||
@ -3,7 +3,7 @@ name: 'step-12-results'
|
|||||||
description: 'Final results and celebration'
|
description: 'Final results and celebration'
|
||||||
|
|
||||||
# Path Definitions
|
# Path Definitions
|
||||||
workflow_path: '{project-root}/.bmad/custom/src/workflows/quiz-master'
|
workflow_path: '{project-root}/{bmad_folder}/custom/src/workflows/quiz-master'
|
||||||
|
|
||||||
# File References
|
# File References
|
||||||
thisStepFile: '{workflow_path}/steps/step-12-results.md'
|
thisStepFile: '{workflow_path}/steps/step-12-results.md'
|
||||||
|
|||||||
@ -1,269 +0,0 @@
|
|||||||
---
|
|
||||||
stepsCompleted: [1, 2, 3, 4, 5, 6, 7]
|
|
||||||
---
|
|
||||||
|
|
||||||
## Build Summary
|
|
||||||
|
|
||||||
**Date:** 2025-12-04
|
|
||||||
**Status:** Build Complete
|
|
||||||
|
|
||||||
### Files Generated
|
|
||||||
|
|
||||||
**Main Workflow:**
|
|
||||||
|
|
||||||
- `/Users/brianmadison/dev/BMAD-METHOD/.bmad/custom/src/workflows/quiz-master/workflow.md`
|
|
||||||
|
|
||||||
**Step Files (12 total):**
|
|
||||||
|
|
||||||
- `/Users/brianmadison/dev/BMAD-METHOD/.bmad/custom/src/workflows/quiz-master/steps/step-01-init.md` - Game setup and mode selection
|
|
||||||
- `/Users/brianmadison/dev/BMAD-METHOD/.bmad/custom/src/workflows/quiz-master/steps/step-02-q1.md` - Question 1 (Level 1)
|
|
||||||
- `/Users/brianmadison/dev/BMAD-METHOD/.bmad/custom/src/workflows/quiz-master/steps/step-03-q2.md` - Question 2 (Level 2)
|
|
||||||
- `/Users/brianmadison/dev/BMAD-METHOD/.bmad/custom/src/workflows/quiz-master/steps/step-04-q3.md` - Question 3 (Level 3)
|
|
||||||
- `/Users/brianmadison/dev/BMAD-METHOD/.bmad/custom/src/workflows/quiz-master/steps/step-05-q4.md` - Question 4 (Level 4)
|
|
||||||
- `/Users/brianmadison/dev/BMAD-METHOD/.bmad/custom/src/workflows/quiz-master/steps/step-06-q5.md` - Question 5 (Level 5)
|
|
||||||
- `/Users/brianmadison/dev/BMAD-METHOD/.bmad/custom/src/workflows/quiz-master/steps/step-07-q6.md` - Question 6 (Level 6)
|
|
||||||
- `/Users/brianmadison/dev/BMAD-METHOD/.bmad/custom/src/workflows/quiz-master/steps/step-08-q7.md` - Question 7 (Level 7)
|
|
||||||
- `/Users/brianmadison/dev/BMAD-METHOD/.bmad/custom/src/workflows/quiz-master/steps/step-09-q8.md` - Question 8 (Level 8)
|
|
||||||
- `/Users/brianmadison/dev/BMAD-METHOD/.bmad/custom/src/workflows/quiz-master/steps/step-10-q9.md` - Question 9 (Level 9)
|
|
||||||
- `/Users/brianmadison/dev/BMAD-METHOD/.bmad/custom/src/workflows/quiz-master/steps/step-11-q10.md` - Question 10 (Level 10)
|
|
||||||
- `/Users/brianmadison/dev/BMAD-METHOD/.bmad/custom/src/workflows/quiz-master/steps/step-12-results.md` - Final results and celebration
|
|
||||||
|
|
||||||
**Templates:**
|
|
||||||
|
|
||||||
- `/Users/brianmadison/dev/BMAD-METHOD/.bmad/custom/src/workflows/quiz-master/templates/csv-headers.template` - CSV column headers
|
|
||||||
|
|
||||||
### Key Features Implemented
|
|
||||||
|
|
||||||
1. **Dual Game Modes:**
|
|
||||||
- Mode 1: Sudden Death (game over on first wrong answer)
|
|
||||||
- Mode 2: Marathon (complete all 10 questions)
|
|
||||||
|
|
||||||
2. **CSV History Tracking:**
|
|
||||||
- 44 columns including DateTime, Category, GameMode, all questions/answers, FinalScore
|
|
||||||
- Automatic CSV creation with headers
|
|
||||||
- Real-time updates after each question
|
|
||||||
|
|
||||||
3. **Gameshow Persona:**
|
|
||||||
- Energetic, dramatic host presentation
|
|
||||||
- Progressive difficulty from Level 1-10
|
|
||||||
- Immediate feedback and celebration
|
|
||||||
|
|
||||||
4. **Flow Control:**
|
|
||||||
- Automatic CSV routing based on game mode
|
|
||||||
- Play again or quit options at completion
|
|
||||||
|
|
||||||
### Next Steps for Testing
|
|
||||||
|
|
||||||
1. Run the workflow: `/bmad:bmb:workflows:quiz-master`
|
|
||||||
2. Test both game modes
|
|
||||||
3. Verify CSV file creation and updates
|
|
||||||
4. Check question progression and difficulty
|
|
||||||
5. Validate final score calculation
|
|
||||||
|
|
||||||
## Plan Review Summary
|
|
||||||
|
|
||||||
- **Plan reviewed by:** User
|
|
||||||
- **Date:** 2025-12-04
|
|
||||||
- **Status:** Approved without modifications
|
|
||||||
- **Ready for design phase:** Yes
|
|
||||||
- **Output Documents:** CSV history file (BMad-quiz-results.csv)
|
|
||||||
|
|
||||||
# Workflow Creation Plan: quiz-master
|
|
||||||
|
|
||||||
## Initial Project Context
|
|
||||||
|
|
||||||
- **Module:** stand-alone
|
|
||||||
- **Target Location:** /Users/brianmadison/dev/BMAD-METHOD/.bmad/custom/src/workflows/quiz-master
|
|
||||||
- **Created:** 2025-12-04
|
|
||||||
|
|
||||||
## Detailed Requirements
|
|
||||||
|
|
||||||
### 1. Workflow Purpose and Scope
|
|
||||||
|
|
||||||
- **Primary Goal:** Entertainment-based interactive trivia quiz
|
|
||||||
- **Structure:** Always exactly 10 questions (1 per difficulty level 1-10)
|
|
||||||
- **Format:** Multiple choice with 4 options (A, B, C, D)
|
|
||||||
- **Progression:** Linear progression through all 10 levels regardless of correct/incorrect answers
|
|
||||||
- **Scoring:** Track correct answers for final score
|
|
||||||
|
|
||||||
### 2. Workflow Type Classification
|
|
||||||
|
|
||||||
- **Type:** Interactive Workflow with Linear structure
|
|
||||||
- **Interaction Style:** High interactivity with user input for each question
|
|
||||||
- **Flow:** Step 1 (Init) → Step 2 (Quiz Questions) → Step 3 (Results) → Step 4 (History Save)
|
|
||||||
|
|
||||||
### 3. Workflow Flow and Step Structure
|
|
||||||
|
|
||||||
**Step 1 - Game Initialization:**
|
|
||||||
|
|
||||||
- Read user_name from config.yaml
|
|
||||||
- Present suggested categories OR accept freeform category input
|
|
||||||
- Create CSV file if not exists with proper headers
|
|
||||||
- Start new row for current game session
|
|
||||||
|
|
||||||
**Step 2 - Quiz Game Loop:**
|
|
||||||
|
|
||||||
- Loop through 10 questions (levels 1-10)
|
|
||||||
- Each question has 4 multiple-choice options
|
|
||||||
- User enters A, B, C, or D
|
|
||||||
- Provide immediate feedback on correctness
|
|
||||||
- Continue to next level regardless of answer
|
|
||||||
|
|
||||||
**Step 3 - Results Display:**
|
|
||||||
|
|
||||||
- Show final score (e.g., "You got 7 out of 10!")
|
|
||||||
- Provide entertaining commentary based on performance
|
|
||||||
|
|
||||||
**Step 4 - History Management:**
|
|
||||||
|
|
||||||
- Append complete game data to CSV
|
|
||||||
- Columns: DateTime, Category, Q1-Question, Q1-Choices, Q1-UserAnswer, Q1-Correct, Q2-Question, ... Q10-Correct, FinalScore
|
|
||||||
|
|
||||||
### 4. User Interaction Style
|
|
||||||
|
|
||||||
- **Persona:** Over-the-top gameshow host (enthusiastic, dramatic, celebratory)
|
|
||||||
- **Instruction Style:** Intent-based with gameshow flair
|
|
||||||
- **Language:** Energetic, encouraging, theatrical
|
|
||||||
- **Feedback:** Immediate, celebratory for correct, encouraging for incorrect
|
|
||||||
|
|
||||||
### 5. Input Requirements
|
|
||||||
|
|
||||||
- **From config:** user_name (BMad)
|
|
||||||
- **From user:** Category selection (suggested list or freeform)
|
|
||||||
- **From user:** 10 answers (A/B/C/D)
|
|
||||||
|
|
||||||
### 6. Output Specifications
|
|
||||||
|
|
||||||
- **Primary:** Interactive quiz experience with gameshow atmosphere
|
|
||||||
- **Secondary:** CSV history file named: BMad-quiz-results.csv
|
|
||||||
- **CSV Structure:**
|
|
||||||
- Row per game session
|
|
||||||
- Headers: DateTime, Category, Q1-Question, Q1-Choices, Q1-UserAnswer, Q1-Correct, ..., Q10-Correct, FinalScore
|
|
||||||
|
|
||||||
### 7. Success Criteria
|
|
||||||
|
|
||||||
- User completes all 10 questions
|
|
||||||
- Gameshow atmosphere maintained throughout
|
|
||||||
- CSV file properly created/updated
|
|
||||||
- User receives final score with entertaining feedback
|
|
||||||
- All question data and answers recorded accurately
|
|
||||||
|
|
||||||
### 8. Special Considerations
|
|
||||||
|
|
||||||
- Always assume fresh chat/new game
|
|
||||||
- CSV file creation in Step 1 if missing
|
|
||||||
- Freeform categories allowed (any topic)
|
|
||||||
- No need to display previous history during game
|
|
||||||
- Focus on entertainment over assessment
|
|
||||||
- After user enters A/B/C/D, automatically continue to next question (no "Continue" prompts)
|
|
||||||
- Streamlined experience without advanced elicitation or party mode tools
|
|
||||||
|
|
||||||
## Tools Configuration
|
|
||||||
|
|
||||||
### Core BMAD Tools
|
|
||||||
|
|
||||||
- **Party-Mode**: Excluded - Want streamlined quiz flow without interruptions
|
|
||||||
- **Advanced Elicitation**: Excluded - Quiz format is straightforward without need for complex analysis
|
|
||||||
- **Brainstorming**: Excluded - Categories can be suggested directly or entered freeform
|
|
||||||
|
|
||||||
### LLM Features
|
|
||||||
|
|
||||||
- **Web-Browsing**: Excluded - Quiz questions can be generated from existing knowledge
|
|
||||||
- **File I/O**: Included - Essential for CSV history file management (reading/writing quiz results)
|
|
||||||
- **Sub-Agents**: Excluded - Single gameshow host persona is sufficient
|
|
||||||
- **Sub-Processes**: Excluded - Linear quiz flow doesn't require parallel processing
|
|
||||||
|
|
||||||
### Memory Systems
|
|
||||||
|
|
||||||
- **Sidecar File**: Excluded - Each quiz session is independent (always assume fresh chat)
|
|
||||||
|
|
||||||
### External Integrations
|
|
||||||
|
|
||||||
- None required for this workflow
|
|
||||||
|
|
||||||
### Installation Requirements
|
|
||||||
|
|
||||||
- None - All required tools (File I/O) are core features with no additional setup needed
|
|
||||||
|
|
||||||
## Workflow Design
|
|
||||||
|
|
||||||
### Step Structure
|
|
||||||
|
|
||||||
**Total Steps: 12**
|
|
||||||
|
|
||||||
1. Step 01 - Init: Mode selection, category choice, CSV setup
|
|
||||||
2. Steps 02-11: Individual questions (1-10) with CSV updates
|
|
||||||
3. Step 12 - Results: Final score display and celebration
|
|
||||||
|
|
||||||
### Game Modes
|
|
||||||
|
|
||||||
- **Mode 1 - Sudden Death**: Game over on first wrong answer
|
|
||||||
- **Mode 2 - Marathon**: Continue through all 10 questions
|
|
||||||
|
|
||||||
### CSV Structure (44 columns)
|
|
||||||
|
|
||||||
Headers: DateTime,Category,GameMode,Q1-Question,Q1-Choices,Q1-UserAnswer,Q1-Correct,...,Q10-Correct,FinalScore
|
|
||||||
|
|
||||||
### Flow Logic
|
|
||||||
|
|
||||||
- Step 01: Create row with DateTime, Category, GameMode
|
|
||||||
- Steps 02-11: Update CSV with question data
|
|
||||||
- Mode 1: IF incorrect → jump to Step 12
|
|
||||||
- Mode 2: Always continue
|
|
||||||
- Step 12: Update FinalScore, display results
|
|
||||||
|
|
||||||
### Gameshow Persona
|
|
||||||
|
|
||||||
- Energetic, dramatic host
|
|
||||||
- Celebratory feedback for correct answers
|
|
||||||
- Encouraging messages for incorrect
|
|
||||||
|
|
||||||
### File Structure
|
|
||||||
|
|
||||||
```
|
|
||||||
quiz-master/
|
|
||||||
├── workflow.md
|
|
||||||
├── steps/
|
|
||||||
│ ├── step-01-init.md
|
|
||||||
│ ├── step-02-q1.md
|
|
||||||
│ ├── ...
|
|
||||||
│ └── step-12-results.md
|
|
||||||
└── templates/
|
|
||||||
└── csv-headers.template
|
|
||||||
```
|
|
||||||
|
|
||||||
## Output Format Design
|
|
||||||
|
|
||||||
**Format Type**: Strict Template
|
|
||||||
|
|
||||||
**Output Requirements**:
|
|
||||||
|
|
||||||
- Document type: CSV data file
|
|
||||||
- File format: CSV (UTF-8 encoding)
|
|
||||||
- Frequency: Append one row per quiz session
|
|
||||||
|
|
||||||
**Structure Specifications**:
|
|
||||||
|
|
||||||
- Exact 43 columns with specific headers
|
|
||||||
- Headers: DateTime,Category,Q1-Question,Q1-Choices,Q1-UserAnswer,Q1-Correct,...,Q10-Correct,FinalScore
|
|
||||||
- Data formats:
|
|
||||||
- DateTime: ISO 8601 (YYYY-MM-DDTHH:MM:SS)
|
|
||||||
- Category: Text
|
|
||||||
- QX-Question: Text
|
|
||||||
- QX-Choices: (A)Opt1|(B)Opt2|(C)Opt3|(D)Opt4
|
|
||||||
- QX-UserAnswer: A/B/C/D
|
|
||||||
- QX-Correct: TRUE/FALSE
|
|
||||||
- FinalScore: Number (0-10)
|
|
||||||
|
|
||||||
**Template Information**:
|
|
||||||
|
|
||||||
- Template source: Created based on requirements
|
|
||||||
- Template file: CSV with fixed column structure
|
|
||||||
- Placeholders: None - strict format required
|
|
||||||
|
|
||||||
**Special Considerations**:
|
|
||||||
|
|
||||||
- CSV commas within text must be quoted
|
|
||||||
- Newlines in questions replaced with spaces
|
|
||||||
- Headers created only if file doesn't exist
|
|
||||||
- Append mode for all subsequent quiz sessions
|
|
||||||
@ -45,7 +45,7 @@ web_bundle: true
|
|||||||
|
|
||||||
### 1. Module Configuration Loading
|
### 1. Module Configuration Loading
|
||||||
|
|
||||||
Load and read full config from {project-root}/.bmad/bmb/config.yaml and resolve:
|
Load and read full config from {project-root}/{bmad_folder}/bmb/config.yaml and resolve:
|
||||||
|
|
||||||
- `user_name`, `output_folder`, `communication_language`, `document_output_language`
|
- `user_name`, `output_folder`, `communication_language`, `document_output_language`
|
||||||
|
|
||||||
|
|||||||
@ -1,5 +1,6 @@
|
|||||||
agent:
|
agent:
|
||||||
metadata:
|
metadata:
|
||||||
|
id: "{bmad_folder}/mwm/agents/cbt-coach/cbt-coach.md"
|
||||||
name: "Dr. Alexis, M.D."
|
name: "Dr. Alexis, M.D."
|
||||||
title: "CBT Coach"
|
title: "CBT Coach"
|
||||||
icon: "🧠"
|
icon: "🧠"
|
||||||
|
|||||||
@ -1,5 +1,6 @@
|
|||||||
agent:
|
agent:
|
||||||
metadata:
|
metadata:
|
||||||
|
id: "{bmad_folder}/mwm/agents/crisis-navigator.md"
|
||||||
name: "Beacon"
|
name: "Beacon"
|
||||||
title: "Crisis Navigator"
|
title: "Crisis Navigator"
|
||||||
icon: "🆘"
|
icon: "🆘"
|
||||||
@ -95,7 +96,7 @@ agent:
|
|||||||
triggers:
|
triggers:
|
||||||
- trigger: party-mode
|
- trigger: party-mode
|
||||||
input: SPM or fuzzy match start party mode
|
input: SPM or fuzzy match start party mode
|
||||||
route: "{project-root}/.bmad/core/workflows/edit-agent/workflow.md"
|
route: "{project-root}/{bmad_folder}/core/workflows/edit-agent/workflow.md"
|
||||||
data: crisis navigator agent discussion
|
data: crisis navigator agent discussion
|
||||||
type: exec
|
type: exec
|
||||||
- trigger: expert-chat
|
- trigger: expert-chat
|
||||||
@ -117,7 +118,7 @@ agent:
|
|||||||
type: action
|
type: action
|
||||||
|
|
||||||
- trigger: "safety-plan"
|
- trigger: "safety-plan"
|
||||||
route: "{project-root}/.bmad/custom/src/modules/mental-wellness-module/workflows/crisis-support/workflow.md"
|
route: "{project-root}/{bmad_folder}/custom/src/modules/mental-wellness-module/workflows/crisis-support/workflow.md"
|
||||||
description: "Create safety plan 🛡️"
|
description: "Create safety plan 🛡️"
|
||||||
type: workflow
|
type: workflow
|
||||||
|
|
||||||
|
|||||||
@ -1,5 +1,6 @@
|
|||||||
agent:
|
agent:
|
||||||
metadata:
|
metadata:
|
||||||
|
id: "{bmad_folder}/mwm/agents/meditation-guide.md"
|
||||||
name: "Serenity"
|
name: "Serenity"
|
||||||
title: "Meditation Guide"
|
title: "Meditation Guide"
|
||||||
icon: "🧘"
|
icon: "🧘"
|
||||||
@ -92,7 +93,7 @@ agent:
|
|||||||
triggers:
|
triggers:
|
||||||
- trigger: party-mode
|
- trigger: party-mode
|
||||||
input: SPM or fuzzy match start party mode
|
input: SPM or fuzzy match start party mode
|
||||||
route: "{project-root}/.bmad/core/workflows/edit-agent/workflow.md"
|
route: "{project-root}/{bmad_folder}/core/workflows/edit-agent/workflow.md"
|
||||||
data: meditation guide agent discussion
|
data: meditation guide agent discussion
|
||||||
type: exec
|
type: exec
|
||||||
- trigger: expert-chat
|
- trigger: expert-chat
|
||||||
@ -104,7 +105,7 @@ agent:
|
|||||||
triggers:
|
triggers:
|
||||||
- trigger: guided-meditation
|
- trigger: guided-meditation
|
||||||
input: GM or fuzzy match guided meditation
|
input: GM or fuzzy match guided meditation
|
||||||
route: "{project-root}/.bmad/custom/src/modules/mental-wellness-module/workflows/guided-meditation/workflow.md"
|
route: "{project-root}/{bmad_folder}/custom/src/modules/mental-wellness-module/workflows/guided-meditation/workflow.md"
|
||||||
description: "Full meditation session 🧘"
|
description: "Full meditation session 🧘"
|
||||||
type: workflow
|
type: workflow
|
||||||
- trigger: body-scan
|
- trigger: body-scan
|
||||||
|
|||||||
@ -1,5 +1,6 @@
|
|||||||
agent:
|
agent:
|
||||||
metadata:
|
metadata:
|
||||||
|
id: "{bmad_folder}/mwm/agents/wellness-companion/wellness-companion.md"
|
||||||
name: "Riley"
|
name: "Riley"
|
||||||
title: "Wellness Companion"
|
title: "Wellness Companion"
|
||||||
icon: "🌱"
|
icon: "🌱"
|
||||||
|
|||||||
@ -130,7 +130,7 @@ class Installer {
|
|||||||
*/
|
*/
|
||||||
async copyFileWithPlaceholderReplacement(sourcePath, targetPath, bmadFolderName) {
|
async copyFileWithPlaceholderReplacement(sourcePath, targetPath, bmadFolderName) {
|
||||||
// List of text file extensions that should have placeholder replacement
|
// List of text file extensions that should have placeholder replacement
|
||||||
const textExtensions = ['.md', '.yaml', '.yml', '.txt', '.json', '.js', '.ts', '.html', '.css', '.sh', '.bat', '.csv'];
|
const textExtensions = ['.md', '.yaml', '.yml', '.txt', '.json', '.js', '.ts', '.html', '.css', '.sh', '.bat', '.csv', '.xml'];
|
||||||
const ext = path.extname(sourcePath).toLowerCase();
|
const ext = path.extname(sourcePath).toLowerCase();
|
||||||
|
|
||||||
// Check if this is a text file that might contain placeholders
|
// Check if this is a text file that might contain placeholders
|
||||||
@ -1864,6 +1864,9 @@ If AgentVibes party mode is enabled, immediately trigger TTS with agent's voice:
|
|||||||
// DO NOT replace {project-root} - LLMs understand this placeholder at runtime
|
// DO NOT replace {project-root} - LLMs understand this placeholder at runtime
|
||||||
// const processedContent = xmlContent.replaceAll('{project-root}', projectDir);
|
// const processedContent = xmlContent.replaceAll('{project-root}', projectDir);
|
||||||
|
|
||||||
|
// Replace {bmad_folder} with actual folder name
|
||||||
|
xmlContent = xmlContent.replaceAll('{bmad_folder}', this.bmadFolderName || 'bmad');
|
||||||
|
|
||||||
// Replace {agent_sidecar_folder} if configured
|
// Replace {agent_sidecar_folder} if configured
|
||||||
const coreConfig = this.configCollector.collectedConfig.core || {};
|
const coreConfig = this.configCollector.collectedConfig.core || {};
|
||||||
if (coreConfig.agent_sidecar_folder && xmlContent.includes('{agent_sidecar_folder}')) {
|
if (coreConfig.agent_sidecar_folder && xmlContent.includes('{agent_sidecar_folder}')) {
|
||||||
|
|||||||
@ -445,17 +445,9 @@ function compileAgent(yamlContent, answers = {}, agentName = '', targetPath = ''
|
|||||||
// Parse YAML
|
// Parse YAML
|
||||||
const agentYaml = yaml.parse(yamlContent);
|
const agentYaml = yaml.parse(yamlContent);
|
||||||
|
|
||||||
// Inject custom agent name into metadata.name if provided
|
// Note: agentName parameter is for UI display only, not for modifying the YAML
|
||||||
// This is the user's chosen persona name (e.g., "Fred" instead of "Inkwell Von Comitizen")
|
// The persona name (metadata.name) should always come from the YAML file
|
||||||
if (agentName && agentYaml.agent && agentYaml.agent.metadata) {
|
// We should NEVER modify metadata.name as it's part of the agent's identity
|
||||||
// Convert kebab-case to title case for the name field
|
|
||||||
// e.g., "fred-commit-poet" → "Fred Commit Poet"
|
|
||||||
const titleCaseName = agentName
|
|
||||||
.split('-')
|
|
||||||
.map((word) => word.charAt(0).toUpperCase() + word.slice(1))
|
|
||||||
.join(' ');
|
|
||||||
agentYaml.agent.metadata.name = titleCaseName;
|
|
||||||
}
|
|
||||||
|
|
||||||
// Extract install_config
|
// Extract install_config
|
||||||
const installConfig = extractInstallConfig(agentYaml);
|
const installConfig = extractInstallConfig(agentYaml);
|
||||||
|
|||||||
@ -242,7 +242,8 @@ function installAgent(agentInfo, answers, targetPath, options = {}) {
|
|||||||
const { xml, metadata, processedYaml } = compileAgent(fs.readFileSync(agentInfo.yamlFile, 'utf8'), answers);
|
const { xml, metadata, processedYaml } = compileAgent(fs.readFileSync(agentInfo.yamlFile, 'utf8'), answers);
|
||||||
|
|
||||||
// Determine target agent folder name
|
// Determine target agent folder name
|
||||||
const agentFolderName = metadata.name ? metadata.name.toLowerCase().replaceAll(/\s+/g, '-') : agentInfo.name;
|
// Use the folder name from agentInfo, NOT the persona name from metadata
|
||||||
|
const agentFolderName = agentInfo.name;
|
||||||
|
|
||||||
const agentTargetDir = path.join(targetPath, agentFolderName);
|
const agentTargetDir = path.join(targetPath, agentFolderName);
|
||||||
|
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user