From 1ea367619a16018e9092450cce55256ee88cbe11 Mon Sep 17 00:00:00 2001 From: Brian Madison Date: Fri, 27 Jun 2025 23:38:34 -0500 Subject: [PATCH] installer updates part 1 --- .claude/commands/bmad-master.md | 1 - bmad-core/tasks/core-dump.md | 74 ----- bmad-core/tasks/execute-checklist.md | 97 ------ bmad-core/utils/file-resolution-context.md | 10 - bmad-core/utils/workflow-management.md | 223 ------------- {bmad-core => common}/tasks/create-doc.md | 4 +- .../tasks}/execute-checklist.md | 8 +- .../utils/template-format.md | 0 common/utils/workflow-management.md | 69 ++++ dist/agents/analyst.txt | 4 +- dist/agents/architect.txt | 12 +- dist/agents/bmad-master.txt | 305 ++---------------- dist/agents/bmad-orchestrator.txt | 220 ++----------- dist/agents/dev.txt | 8 +- dist/agents/pm.txt | 12 +- dist/agents/po.txt | 8 +- dist/agents/sm.txt | 8 +- dist/agents/ux-expert.txt | 12 +- .../agents/game-designer.txt | 12 +- .../agents/game-developer.txt | 8 +- .../agents/game-sm.txt | 8 +- .../teams/phaser-2d-nodejs-game-team.txt | 228 ++----------- .../agents/infra-devops-platform.txt | 4 +- dist/teams/team-all.txt | 228 ++----------- dist/teams/team-fullstack.txt | 228 ++----------- dist/teams/team-ide-minimal.txt | 228 ++----------- dist/teams/team-no-ui.txt | 228 ++----------- .../tasks/create-doc.md | 74 ----- .../common-tasks/create-doc.md | 74 ----- .../tasks/generate-expansion-pack.md | 10 +- .../utils/template-format.md | 26 -- .../utils/workflow-management.md | 223 ------------- tools/builders/web-builder.js | 79 +++-- tools/installer/config/install.config.yml | 4 +- tools/installer/lib/file-manager.js | 1 + tools/installer/lib/installer.js | 148 ++++++++- tools/lib/dependency-resolver.js | 15 + .../web-agent-startup-instructions.md | 0 38 files changed, 569 insertions(+), 2332 deletions(-) delete mode 100644 bmad-core/tasks/core-dump.md delete mode 100644 bmad-core/tasks/execute-checklist.md delete mode 100644 bmad-core/utils/file-resolution-context.md delete mode 100644 bmad-core/utils/workflow-management.md rename {bmad-core => common}/tasks/create-doc.md (92%) rename {expansion-packs/expansion-creator/common-tasks => common/tasks}/execute-checklist.md (87%) rename {bmad-core => common}/utils/template-format.md (100%) create mode 100644 common/utils/workflow-management.md delete mode 100644 expansion-packs/bmad-infrastructure-devops/tasks/create-doc.md delete mode 100644 expansion-packs/expansion-creator/common-tasks/create-doc.md delete mode 100644 expansion-packs/expansion-creator/utils/template-format.md delete mode 100644 expansion-packs/expansion-creator/utils/workflow-management.md rename {bmad-core/utils => tools/md-assets}/web-agent-startup-instructions.md (100%) diff --git a/.claude/commands/bmad-master.md b/.claude/commands/bmad-master.md index c85c1ce9..b9d86749 100644 --- a/.claude/commands/bmad-master.md +++ b/.claude/commands/bmad-master.md @@ -58,7 +58,6 @@ dependencies: - brainstorming-techniques - brownfield-create-epic - brownfield-create-story - - core-dump - correct-course - create-deep-research-prompt - create-doc diff --git a/bmad-core/tasks/core-dump.md b/bmad-core/tasks/core-dump.md deleted file mode 100644 index 04dc7920..00000000 --- a/bmad-core/tasks/core-dump.md +++ /dev/null @@ -1,74 +0,0 @@ -# Core Dump Task - -## Purpose - -To create a concise memory recording file (`.ai/core-dump-n.md`) that captures the essential context of the current agent session, enabling seamless continuation of work in future agent sessions. This task ensures persistent context across agent conversations while maintaining minimal token usage for efficient context loading. - -## Inputs for this Task - -- Current session conversation history and accomplishments -- Files created, modified, or deleted during the session -- Key decisions made and procedures followed -- Current project state and next logical steps -- User requests and agent responses that shaped the session - -## Task Execution Instructions - -### 0. Check Existing Core Dump - -Before proceeding, check if `.ai/core-dump.md` already exists: - -- If file exists, ask user: "Core dump file exists. Should I: 1. Overwrite, 2. Update, 3. Append or 4. Create new?" -- **Overwrite**: Replace entire file with new content -- **Update**: Merge new session info with existing content, updating relevant sections -- **Append**: Add new session as a separate entry while preserving existing content -- **Create New**: Create a new file, appending the next possible -# to the file, such as core-dump-3.md if 1 and 2 already exist. -- If file doesn't exist, proceed with creation of `core-dump-1.md` - -### 1. Analyze Session Context - -- Review the entire conversation to identify key accomplishments -- Note any specific tasks, procedures, or workflows that were executed -- Identify important decisions made or problems solved -- Capture the user's working style and preferences observed during the session - -### 2. Document What Was Accomplished - -- **Primary Actions**: List the main tasks completed concisely -- **Story Progress**: For story work, use format "Tasks Complete: 1-6, 8. Next Task Pending: 7, 9" -- **Problem Solving**: Document any challenges encountered and how they were resolved -- **User Communications**: Summarize key user requests, preferences, and discussion points - -### 3. Record File System Changes (Concise Format) - -- **Files Created**: `filename.ext` (brief purpose/size) -- **Files Modified**: `filename.ext` (what changed) -- **Files Deleted**: `filename.ext` (why removed) -- Focus on essential details, avoid verbose descriptions - -### 4. Capture Current Project State - -- **Project Progress**: Where the project stands after this session -- **Current Issues**: Any blockers or problems that need resolution -- **Next Logical Steps**: What would be the natural next actions to take - -### 5. Create/Update Core Dump File - -Based on user's choice from step 0, handle the file accordingly: - -### 6. Optimize for Minimal Context - -- Keep descriptions concise but informative -- Use abbreviated formats where possible (file sizes, task numbers) -- Focus on actionable information rather than detailed explanations -- Avoid redundant information that can be found in project documentation -- Prioritize information that would be lost without this recording -- Ensure the file can be quickly scanned and understood - -### 7. Validate Completeness - -- Verify all significant session activities are captured -- Ensure a future agent could understand the current state -- Check that file changes are accurately recorded -- Confirm next steps are clear and actionable -- Verify user communication style and preferences are noted diff --git a/bmad-core/tasks/execute-checklist.md b/bmad-core/tasks/execute-checklist.md deleted file mode 100644 index 86ce64af..00000000 --- a/bmad-core/tasks/execute-checklist.md +++ /dev/null @@ -1,97 +0,0 @@ -# Checklist Validation Task - -This task provides instructions for validating documentation against checklists. The agent MUST follow these instructions to ensure thorough and systematic validation of documents. - -## Context - -The BMAD Method uses various checklists to ensure quality and completeness of different artifacts. Each checklist contains embedded prompts and instructions to guide the LLM through thorough validation and advanced elicitation. The checklists automatically identify their required artifacts and guide the validation process. - -## Available Checklists - -If the user asks or does not specify a specific checklist, list the checklists available to the agent persona. If the task is being run not with a specific agent, tell the user to check the bmad-core/checklists folder to select the appropriate one to run. - -## Instructions - -1. **Initial Assessment** - - - If user or the task being run provides a checklist name: - - Try fuzzy matching (e.g. "architecture checklist" -> "architect-checklist") - - If multiple matches found, ask user to clarify - - Load the appropriate checklist from bmad-core/checklists/ - - If no checklist specified: - - Ask the user which checklist they want to use - - Present the available options from the files in the checklists folder - - Confirm if they want to work through the checklist: - - Section by section (interactive mode - very time consuming) - - All at once (YOLO mode - recommended for checklists, there will be a summary of sections at the end to discuss) - -2. **Document and Artifact Gathering** - - - Each checklist will specify its required documents/artifacts at the beginning - - Follow the checklist's specific instructions for what to gather, generally a file can be resolved in the docs folder, if not or unsure, halt and ask or confirm with the user. - -3. **Checklist Processing** - - If in interactive mode: - - - Work through each section of the checklist one at a time - - For each section: - - Review all items in the section following instructions for that section embedded in the checklist - - Check each item against the relevant documentation or artifacts as appropriate - - Present summary of findings for that section, highlighting warnings, errors and non applicable items (rationale for non-applicability). - - Get user confirmation before proceeding to next section or if any thing major do we need to halt and take corrective action - - If in YOLO mode: - - - Process all sections at once - - Create a comprehensive report of all findings - - Present the complete analysis to the user - -4. **Validation Approach** - - For each checklist item: - - - Read and understand the requirement - - Look for evidence in the documentation that satisfies the requirement - - Consider both explicit mentions and implicit coverage - - Aside from this, follow all checklist llm instructions - - Mark items as: - - ✅ PASS: Requirement clearly met - - ❌ FAIL: Requirement not met or insufficient coverage - - ⚠️ PARTIAL: Some aspects covered but needs improvement - - N/A: Not applicable to this case - -5. **Section Analysis** - - For each section: - - - think step by step to calculate pass rate - - Identify common themes in failed items - - Provide specific recommendations for improvement - - In interactive mode, discuss findings with user - - Document any user decisions or explanations - -6. **Final Report** - - Prepare a summary that includes: - - - Overall checklist completion status - - Pass rates by section - - List of failed items with context - - Specific recommendations for improvement - - Any sections or items marked as N/A with justification - -## Checklist Execution Methodology - -Each checklist now contains embedded LLM prompts and instructions that will: - -1. **Guide thorough thinking** - Prompts ensure deep analysis of each section -2. **Request specific artifacts** - Clear instructions on what documents/access is needed -3. **Provide contextual guidance** - Section-specific prompts for better validation -4. **Generate comprehensive reports** - Final summary with detailed findings - -The LLM will: - -- Execute the complete checklist validation -- Present a final report with pass/fail rates and key findings -- Offer to provide detailed analysis of any section, especially those with warnings or failures diff --git a/bmad-core/utils/file-resolution-context.md b/bmad-core/utils/file-resolution-context.md deleted file mode 100644 index 3b374598..00000000 --- a/bmad-core/utils/file-resolution-context.md +++ /dev/null @@ -1,10 +0,0 @@ -# File Resolution Context - -Update the installer/upgrader so that when agents are added to a project (under Add these two lines to any agent's `activation-instructions` for ide installation: - -```yaml -- 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. -``` - -and add `root: .bmad-core` as the first root yml property. diff --git a/bmad-core/utils/workflow-management.md b/bmad-core/utils/workflow-management.md deleted file mode 100644 index c728e878..00000000 --- a/bmad-core/utils/workflow-management.md +++ /dev/null @@ -1,223 +0,0 @@ -# Workflow Management - -This utility enables the BMAD orchestrator to manage and execute team workflows. - -## Important: Dynamic Workflow Loading - -The BMAD orchestrator MUST read the available workflows from the current team configuration's `workflows` field. Do not use hardcoded workflow lists. Each team bundle defines its own set of supported workflows based on the agents it includes. - -**Critical Distinction**: - -- When asked "what workflows are available?", show ONLY the workflows defined in the current team bundle's configuration -- Use `/agent-list` to show agents in the current bundle -- Use `/workflows` to show workflows in the current bundle, NOT any creation tasks - -### Workflow Descriptions - -When displaying workflows, use these descriptions based on the workflow ID: - -- **greenfield-fullstack**: Build a new full-stack application from concept to development -- **brownfield-fullstack**: Enhance an existing full-stack application with new features -- **greenfield-service**: Build a new backend service or API from concept to development -- **brownfield-service**: Enhance an existing backend service or API -- **greenfield-ui**: Build a new frontend/UI application from concept to development -- **brownfield-ui**: Enhance an existing frontend/UI application - -## Workflow Commands - -### /workflows - -Lists all available workflows for the current team. The available workflows are determined by the team configuration and may include workflows such as: - -- greenfield-fullstack -- brownfield-fullstack -- greenfield-service -- brownfield-service -- greenfield-ui -- brownfield-ui - -The actual list depends on which team bundle is loaded. When responding to this command, display the workflows that are configured in the current team's `workflows` field. - -Example response format: - -```text -Available workflows for [Team Name]: -1. [workflow-id] - [Brief description based on workflow type] -2. [workflow-id] - [Brief description based on workflow type] -[... etc. ...] - -Use /workflow-start {number or id} to begin a workflow. -``` - -### /workflow-start {workflow-id} - -Starts a specific workflow and transitions to the first agent. - -Example: `/workflow-start greenfield-fullstack` - -### /workflow-status - -Shows current workflow progress, completed artifacts, and next steps. - -Example response: - -```text -Current Workflow: Greenfield Full-Stack Development -Stage: Product Planning (2 of 6) -Completed: - ✓ Discovery & Requirements - - project-brief (completed by Mary) - -In Progress: - ⚡ Product Planning - - Create PRD (John) - awaiting input - -Next: Technical Architecture -``` - -### /workflow-resume - -Resumes a workflow from where it left off, useful when starting a new chat. - -User can provide completed artifacts: - -```text -User: /workflow-resume greenfield-fullstack - I have completed: project-brief, PRD -BMad: I see you've completed Discovery and part of Product Planning. - Based on the greenfield-fullstack workflow, the next step is: - - UX Strategy with Sally (ux-expert) - - Would you like me to load Sally to continue? -``` - -### /workflow-next - -Shows the next recommended agent and action in the current workflow. - -## Workflow Execution Flow - -### 1. Starting a Workflow - -When a workflow is started: - -1. Load the workflow definition -2. Identify the first stage and step -3. Transition to the required agent -4. Provide context about expected inputs/outputs -5. Guide artifact creation - -### 2. Stage Transitions - -After each artifact is completed: - -1. Mark the step as complete -2. Check transition conditions -3. If stage is complete, move to next stage -4. Load the appropriate agent -5. Pass relevant artifacts as context - -### 3. Artifact Tracking - -Track all created artifacts: - -```yaml -workflow_state: - current_workflow: greenfield-fullstack - current_stage: planning - current_step: 2 - artifacts: - project-brief: - status: completed - created_by: analyst - timestamp: 2024-01-15T10:30:00.000Z - prd: - status: in-progress - created_by: pm - started: 2024-01-15T11:00:00.000Z -``` - -### 4. Workflow Interruption Handling - -When user returns after interruption: - -1. Ask if continuing previous workflow -2. Request any completed artifacts -3. Analyze provided artifacts -4. Determine workflow position -5. Suggest next appropriate step - -Example: - -```text -User: I'm working on a new app. Here's my PRD and architecture doc. -BMad: I see you have a PRD and architecture document. Based on these artifacts, - it looks like you're following the greenfield-fullstack workflow and have completed - stages 1-3. The next recommended step would be: - - Stage 4: Validation & Refinement - - Load Sarah (Product Owner) to validate all artifacts - - Would you like to continue with this workflow? -``` - -## Workflow Context Passing - -When transitioning between agents, pass: - -1. Previous artifacts created -2. Current workflow stage -3. Expected outputs -4. Any decisions or constraints identified - -Example transition: - -```text -BMad: Great! John has completed the PRD. According to the greenfield-fullstack workflow, - the next step is UX Strategy with Sally. - - /ux-expert - -Sally: I see we're in the Product Planning stage of the greenfield-fullstack workflow. - I have access to: - - Project Brief from Mary - - PRD from John - - Let's create the UX strategy and UI specifications. First, let me review - the PRD to understand the features we're designing for... -``` - -## Multi-Path Workflows - -Some workflows may have multiple paths: - -```yaml -conditional_paths: - - condition: project_type == 'mobile' - next_stage: mobile-specific-design - - condition: project_type == 'web' - next_stage: web-architecture - - default: fullstack-architecture -``` - -Handle these by asking clarifying questions when needed. - -## Workflow Best Practices - -1. **Always show progress** - Users should know where they are -2. **Explain transitions** - Why moving to next agent -3. **Preserve context** - Pass relevant information forward -4. **Allow flexibility** - Users can skip or modify steps -5. **Track everything** - Maintain complete workflow state - -## Integration with Agents - -Each agent should be workflow-aware: - -- Know which workflow is active -- Understand their role in the workflow -- Access previous artifacts -- Know expected outputs -- Guide toward workflow goals - -This creates a seamless experience where the entire team works together toward the workflow's objectives. diff --git a/bmad-core/tasks/create-doc.md b/common/tasks/create-doc.md similarity index 92% rename from bmad-core/tasks/create-doc.md rename to common/tasks/create-doc.md index cab98306..aaec26da 100644 --- a/bmad-core/tasks/create-doc.md +++ b/common/tasks/create-doc.md @@ -31,9 +31,9 @@ Confirm with the user their preferred interaction style: ### 3. Execute Template -- Load specified template from `templates#*` or the /templates directory +- Load specified template from `templates#*` or the `{root}/templates directory` - Follow ALL embedded LLM instructions within the template -- Process template markup according to `utils#template-format` conventions +- Process template markup according to `utils#template-format` or `{root}/utils/template-format` conventions ### 4. Template Processing Rules diff --git a/expansion-packs/expansion-creator/common-tasks/execute-checklist.md b/common/tasks/execute-checklist.md similarity index 87% rename from expansion-packs/expansion-creator/common-tasks/execute-checklist.md rename to common/tasks/execute-checklist.md index 86ce64af..1e8901c0 100644 --- a/expansion-packs/expansion-creator/common-tasks/execute-checklist.md +++ b/common/tasks/execute-checklist.md @@ -2,13 +2,9 @@ This task provides instructions for validating documentation against checklists. The agent MUST follow these instructions to ensure thorough and systematic validation of documents. -## Context - -The BMAD Method uses various checklists to ensure quality and completeness of different artifacts. Each checklist contains embedded prompts and instructions to guide the LLM through thorough validation and advanced elicitation. The checklists automatically identify their required artifacts and guide the validation process. - ## Available Checklists -If the user asks or does not specify a specific checklist, list the checklists available to the agent persona. If the task is being run not with a specific agent, tell the user to check the bmad-core/checklists folder to select the appropriate one to run. +If the user asks or does not specify a specific checklist, list the checklists available to the agent persona. If the task is being run not with a specific agent, tell the user to check the {root}/checklists folder to select the appropriate one to run. ## Instructions @@ -17,7 +13,7 @@ If the user asks or does not specify a specific checklist, list the checklists a - If user or the task being run provides a checklist name: - Try fuzzy matching (e.g. "architecture checklist" -> "architect-checklist") - If multiple matches found, ask user to clarify - - Load the appropriate checklist from bmad-core/checklists/ + - Load the appropriate checklist from {root}/checklists/ - If no checklist specified: - Ask the user which checklist they want to use - Present the available options from the files in the checklists folder diff --git a/bmad-core/utils/template-format.md b/common/utils/template-format.md similarity index 100% rename from bmad-core/utils/template-format.md rename to common/utils/template-format.md diff --git a/common/utils/workflow-management.md b/common/utils/workflow-management.md new file mode 100644 index 00000000..9f6602e9 --- /dev/null +++ b/common/utils/workflow-management.md @@ -0,0 +1,69 @@ +# Workflow Management + +Enables BMAD orchestrator to manage and execute team workflows. + +## Dynamic Workflow Loading + +Read available workflows from current team configuration's `workflows` field. Each team bundle defines its own supported workflows. + +**Key Commands**: + +- `/workflows` - List workflows in current bundle or workflows folder +- `/agent-list` - Show agents in current bundle + +## Workflow Commands + +### /workflows + +Lists available workflows with titles and descriptions. + +### /workflow-start {workflow-id} + +Starts workflow and transitions to first agent. + +### /workflow-status + +Shows current progress, completed artifacts, and next steps. + +### /workflow-resume + +Resumes workflow from last position. User can provide completed artifacts. + +### /workflow-next + +Shows next recommended agent and action. + +## Execution Flow + +1. **Starting**: Load definition → Identify first stage → Transition to agent → Guide artifact creation + +2. **Stage Transitions**: Mark complete → Check conditions → Load next agent → Pass artifacts + +3. **Artifact Tracking**: Track status, creator, timestamps in workflow_state + +4. **Interruption Handling**: Analyze provided artifacts → Determine position → Suggest next step + +## Context Passing + +When transitioning, pass: + +- Previous artifacts +- Current workflow stage +- Expected outputs +- Decisions/constraints + +## Multi-Path Workflows + +Handle conditional paths by asking clarifying questions when needed. + +## Best Practices + +1. Show progress +2. Explain transitions +3. Preserve context +4. Allow flexibility +5. Track state + +## Agent Integration + +Agents should be workflow-aware: know active workflow, their role, access artifacts, understand expected outputs. diff --git a/dist/agents/analyst.txt b/dist/agents/analyst.txt index 833db606..4fd3edb5 100644 --- a/dist/agents/analyst.txt +++ b/dist/agents/analyst.txt @@ -681,9 +681,9 @@ Confirm with the user their preferred interaction style: ### 3. Execute Template -- Load specified template from `templates#*` or the /templates directory +- Load specified template from `templates#*` or the ../templates directory - Follow ALL embedded LLM instructions within the template -- Process template markup according to `utils#template-format` conventions +- Process template markup according to `utils#template-format` or `../utils/template-format` conventions ### 4. Template Processing Rules diff --git a/dist/agents/architect.txt b/dist/agents/architect.txt index e86cb94a..70201095 100644 --- a/dist/agents/architect.txt +++ b/dist/agents/architect.txt @@ -136,9 +136,9 @@ Confirm with the user their preferred interaction style: ### 3. Execute Template -- Load specified template from `templates#*` or the /templates directory +- Load specified template from `templates#*` or the ../templates directory - Follow ALL embedded LLM instructions within the template -- Process template markup according to `utils#template-format` conventions +- Process template markup according to `utils#template-format` or `../utils/template-format` conventions ### 4. Template Processing Rules @@ -808,13 +808,9 @@ Apply the advanced elicitation task after major sections to refine based on user This task provides instructions for validating documentation against checklists. The agent MUST follow these instructions to ensure thorough and systematic validation of documents. -## Context - -The BMAD Method uses various checklists to ensure quality and completeness of different artifacts. Each checklist contains embedded prompts and instructions to guide the LLM through thorough validation and advanced elicitation. The checklists automatically identify their required artifacts and guide the validation process. - ## Available Checklists -If the user asks or does not specify a specific checklist, list the checklists available to the agent persona. If the task is being run not with a specific agent, tell the user to check the bmad-core/checklists folder to select the appropriate one to run. +If the user asks or does not specify a specific checklist, list the checklists available to the agent persona. If the task is being run not with a specific agent, tell the user to check the {root}/checklists folder to select the appropriate one to run. ## Instructions @@ -823,7 +819,7 @@ If the user asks or does not specify a specific checklist, list the checklists a - If user or the task being run provides a checklist name: - Try fuzzy matching (e.g. "architecture checklist" -> "architect-checklist") - If multiple matches found, ask user to clarify - - Load the appropriate checklist from bmad-core/checklists/ + - Load the appropriate checklist from {root}/checklists/ - If no checklist specified: - Ask the user which checklist they want to use - Present the available options from the files in the checklists folder diff --git a/dist/agents/bmad-master.txt b/dist/agents/bmad-master.txt index e2c2eb8e..16e411d5 100644 --- a/dist/agents/bmad-master.txt +++ b/dist/agents/bmad-master.txt @@ -788,83 +788,6 @@ The story creation is successful when: - Stories should take no more than 4 hours of focused development work ==================== END: tasks#brownfield-create-story ==================== -==================== START: tasks#core-dump ==================== -# Core Dump Task - -## Purpose - -To create a concise memory recording file (`.ai/core-dump-n.md`) that captures the essential context of the current agent session, enabling seamless continuation of work in future agent sessions. This task ensures persistent context across agent conversations while maintaining minimal token usage for efficient context loading. - -## Inputs for this Task - -- Current session conversation history and accomplishments -- Files created, modified, or deleted during the session -- Key decisions made and procedures followed -- Current project state and next logical steps -- User requests and agent responses that shaped the session - -## Task Execution Instructions - -### 0. Check Existing Core Dump - -Before proceeding, check if `.ai/core-dump.md` already exists: - -- If file exists, ask user: "Core dump file exists. Should I: 1. Overwrite, 2. Update, 3. Append or 4. Create new?" -- **Overwrite**: Replace entire file with new content -- **Update**: Merge new session info with existing content, updating relevant sections -- **Append**: Add new session as a separate entry while preserving existing content -- **Create New**: Create a new file, appending the next possible -# to the file, such as core-dump-3.md if 1 and 2 already exist. -- If file doesn't exist, proceed with creation of `core-dump-1.md` - -### 1. Analyze Session Context - -- Review the entire conversation to identify key accomplishments -- Note any specific tasks, procedures, or workflows that were executed -- Identify important decisions made or problems solved -- Capture the user's working style and preferences observed during the session - -### 2. Document What Was Accomplished - -- **Primary Actions**: List the main tasks completed concisely -- **Story Progress**: For story work, use format "Tasks Complete: 1-6, 8. Next Task Pending: 7, 9" -- **Problem Solving**: Document any challenges encountered and how they were resolved -- **User Communications**: Summarize key user requests, preferences, and discussion points - -### 3. Record File System Changes (Concise Format) - -- **Files Created**: `filename.ext` (brief purpose/size) -- **Files Modified**: `filename.ext` (what changed) -- **Files Deleted**: `filename.ext` (why removed) -- Focus on essential details, avoid verbose descriptions - -### 4. Capture Current Project State - -- **Project Progress**: Where the project stands after this session -- **Current Issues**: Any blockers or problems that need resolution -- **Next Logical Steps**: What would be the natural next actions to take - -### 5. Create/Update Core Dump File - -Based on user's choice from step 0, handle the file accordingly: - -### 6. Optimize for Minimal Context - -- Keep descriptions concise but informative -- Use abbreviated formats where possible (file sizes, task numbers) -- Focus on actionable information rather than detailed explanations -- Avoid redundant information that can be found in project documentation -- Prioritize information that would be lost without this recording -- Ensure the file can be quickly scanned and understood - -### 7. Validate Completeness - -- Verify all significant session activities are captured -- Ensure a future agent could understand the current state -- Check that file changes are accurately recorded -- Confirm next steps are clear and actionable -- Verify user communication style and preferences are noted -==================== END: tasks#core-dump ==================== - ==================== START: tasks#correct-course ==================== # Correct Course Task @@ -1279,9 +1202,9 @@ Confirm with the user their preferred interaction style: ### 3. Execute Template -- Load specified template from `templates#*` or the /templates directory +- Load specified template from `templates#*` or the ../templates directory - Follow ALL embedded LLM instructions within the template -- Process template markup according to `utils#template-format` conventions +- Process template markup according to `utils#template-format` or `../utils/template-format` conventions ### 4. Template Processing Rules @@ -1902,13 +1825,9 @@ Provide a summary to the user including: This task provides instructions for validating documentation against checklists. The agent MUST follow these instructions to ensure thorough and systematic validation of documents. -## Context - -The BMAD Method uses various checklists to ensure quality and completeness of different artifacts. Each checklist contains embedded prompts and instructions to guide the LLM through thorough validation and advanced elicitation. The checklists automatically identify their required artifacts and guide the validation process. - ## Available Checklists -If the user asks or does not specify a specific checklist, list the checklists available to the agent persona. If the task is being run not with a specific agent, tell the user to check the bmad-core/checklists folder to select the appropriate one to run. +If the user asks or does not specify a specific checklist, list the checklists available to the agent persona. If the task is being run not with a specific agent, tell the user to check the {root}/checklists folder to select the appropriate one to run. ## Instructions @@ -1917,7 +1836,7 @@ If the user asks or does not specify a specific checklist, list the checklists a - If user or the task being run provides a checklist name: - Try fuzzy matching (e.g. "architecture checklist" -> "architect-checklist") - If multiple matches found, ask user to clarify - - Load the appropriate checklist from bmad-core/checklists/ + - Load the appropriate checklist from {root}/checklists/ - If no checklist specified: - Ask the user which checklist they want to use - Present the available options from the files in the checklists folder @@ -9187,225 +9106,71 @@ Templates in the BMAD method use standardized markup for AI processing. These co ==================== START: utils#workflow-management ==================== # Workflow Management -This utility enables the BMAD orchestrator to manage and execute team workflows. +Enables BMAD orchestrator to manage and execute team workflows. -## Important: Dynamic Workflow Loading +## Dynamic Workflow Loading -The BMAD orchestrator MUST read the available workflows from the current team configuration's `workflows` field. Do not use hardcoded workflow lists. Each team bundle defines its own set of supported workflows based on the agents it includes. +Read available workflows from current team configuration's `workflows` field. Each team bundle defines its own supported workflows. -**Critical Distinction**: +**Key Commands**: -- When asked "what workflows are available?", show ONLY the workflows defined in the current team bundle's configuration -- Use `/agent-list` to show agents in the current bundle -- Use `/workflows` to show workflows in the current bundle, NOT any creation tasks - -### Workflow Descriptions - -When displaying workflows, use these descriptions based on the workflow ID: - -- **greenfield-fullstack**: Build a new full-stack application from concept to development -- **brownfield-fullstack**: Enhance an existing full-stack application with new features -- **greenfield-service**: Build a new backend service or API from concept to development -- **brownfield-service**: Enhance an existing backend service or API -- **greenfield-ui**: Build a new frontend/UI application from concept to development -- **brownfield-ui**: Enhance an existing frontend/UI application +- `/workflows` - List workflows in current bundle or workflows folder +- `/agent-list` - Show agents in current bundle ## Workflow Commands ### /workflows -Lists all available workflows for the current team. The available workflows are determined by the team configuration and may include workflows such as: - -- greenfield-fullstack -- brownfield-fullstack -- greenfield-service -- brownfield-service -- greenfield-ui -- brownfield-ui - -The actual list depends on which team bundle is loaded. When responding to this command, display the workflows that are configured in the current team's `workflows` field. - -Example response format: - -```text -Available workflows for [Team Name]: -1. [workflow-id] - [Brief description based on workflow type] -2. [workflow-id] - [Brief description based on workflow type] -[... etc. ...] - -Use /workflow-start {number or id} to begin a workflow. -``` +Lists available workflows with titles and descriptions. ### /workflow-start {workflow-id} -Starts a specific workflow and transitions to the first agent. - -Example: `/workflow-start greenfield-fullstack` +Starts workflow and transitions to first agent. ### /workflow-status -Shows current workflow progress, completed artifacts, and next steps. - -Example response: - -```text -Current Workflow: Greenfield Full-Stack Development -Stage: Product Planning (2 of 6) -Completed: - ✓ Discovery & Requirements - - project-brief (completed by Mary) - -In Progress: - ⚡ Product Planning - - Create PRD (John) - awaiting input - -Next: Technical Architecture -``` +Shows current progress, completed artifacts, and next steps. ### /workflow-resume -Resumes a workflow from where it left off, useful when starting a new chat. - -User can provide completed artifacts: - -```text -User: /workflow-resume greenfield-fullstack - I have completed: project-brief, PRD -BMad: I see you've completed Discovery and part of Product Planning. - Based on the greenfield-fullstack workflow, the next step is: - - UX Strategy with Sally (ux-expert) - - Would you like me to load Sally to continue? -``` +Resumes workflow from last position. User can provide completed artifacts. ### /workflow-next -Shows the next recommended agent and action in the current workflow. +Shows next recommended agent and action. -## Workflow Execution Flow +## Execution Flow -### 1. Starting a Workflow +1. **Starting**: Load definition → Identify first stage → Transition to agent → Guide artifact creation -When a workflow is started: +2. **Stage Transitions**: Mark complete → Check conditions → Load next agent → Pass artifacts -1. Load the workflow definition -2. Identify the first stage and step -3. Transition to the required agent -4. Provide context about expected inputs/outputs -5. Guide artifact creation +3. **Artifact Tracking**: Track status, creator, timestamps in workflow_state -### 2. Stage Transitions +4. **Interruption Handling**: Analyze provided artifacts → Determine position → Suggest next step -After each artifact is completed: +## Context Passing -1. Mark the step as complete -2. Check transition conditions -3. If stage is complete, move to next stage -4. Load the appropriate agent -5. Pass relevant artifacts as context +When transitioning, pass: -### 3. Artifact Tracking - -Track all created artifacts: - -```yaml -workflow_state: - current_workflow: greenfield-fullstack - current_stage: planning - current_step: 2 - artifacts: - project-brief: - status: completed - created_by: analyst - timestamp: 2024-01-15T10:30:00.000Z - prd: - status: in-progress - created_by: pm - started: 2024-01-15T11:00:00.000Z -``` - -### 4. Workflow Interruption Handling - -When user returns after interruption: - -1. Ask if continuing previous workflow -2. Request any completed artifacts -3. Analyze provided artifacts -4. Determine workflow position -5. Suggest next appropriate step - -Example: - -```text -User: I'm working on a new app. Here's my PRD and architecture doc. -BMad: I see you have a PRD and architecture document. Based on these artifacts, - it looks like you're following the greenfield-fullstack workflow and have completed - stages 1-3. The next recommended step would be: - - Stage 4: Validation & Refinement - - Load Sarah (Product Owner) to validate all artifacts - - Would you like to continue with this workflow? -``` - -## Workflow Context Passing - -When transitioning between agents, pass: - -1. Previous artifacts created -2. Current workflow stage -3. Expected outputs -4. Any decisions or constraints identified - -Example transition: - -```text -BMad: Great! John has completed the PRD. According to the greenfield-fullstack workflow, - the next step is UX Strategy with Sally. - - /ux-expert - -Sally: I see we're in the Product Planning stage of the greenfield-fullstack workflow. - I have access to: - - Project Brief from Mary - - PRD from John - - Let's create the UX strategy and UI specifications. First, let me review - the PRD to understand the features we're designing for... -``` +- Previous artifacts +- Current workflow stage +- Expected outputs +- Decisions/constraints ## Multi-Path Workflows -Some workflows may have multiple paths: +Handle conditional paths by asking clarifying questions when needed. -```yaml -conditional_paths: - - condition: project_type == 'mobile' - next_stage: mobile-specific-design - - condition: project_type == 'web' - next_stage: web-architecture - - default: fullstack-architecture -``` +## Best Practices -Handle these by asking clarifying questions when needed. +1. Show progress +2. Explain transitions +3. Preserve context +4. Allow flexibility +5. Track state -## Workflow Best Practices +## Agent Integration -1. **Always show progress** - Users should know where they are -2. **Explain transitions** - Why moving to next agent -3. **Preserve context** - Pass relevant information forward -4. **Allow flexibility** - Users can skip or modify steps -5. **Track everything** - Maintain complete workflow state - -## Integration with Agents - -Each agent should be workflow-aware: - -- Know which workflow is active -- Understand their role in the workflow -- Access previous artifacts -- Know expected outputs -- Guide toward workflow goals - -This creates a seamless experience where the entire team works together toward the workflow's objectives. +Agents should be workflow-aware: know active workflow, their role, access artifacts, understand expected outputs. ==================== END: utils#workflow-management ==================== diff --git a/dist/agents/bmad-orchestrator.txt b/dist/agents/bmad-orchestrator.txt index 6f4ffc84..cb48a99d 100644 --- a/dist/agents/bmad-orchestrator.txt +++ b/dist/agents/bmad-orchestrator.txt @@ -292,9 +292,9 @@ Confirm with the user their preferred interaction style: ### 3. Execute Template -- Load specified template from `templates#*` or the /templates directory +- Load specified template from `templates#*` or the ../templates directory - Follow ALL embedded LLM instructions within the template -- Process template markup according to `utils#template-format` conventions +- Process template markup according to `utils#template-format` or `../utils/template-format` conventions ### 4. Template Processing Rules @@ -1161,227 +1161,73 @@ Use the **expansion-creator** pack to build your own: ==================== START: utils#workflow-management ==================== # Workflow Management -This utility enables the BMAD orchestrator to manage and execute team workflows. +Enables BMAD orchestrator to manage and execute team workflows. -## Important: Dynamic Workflow Loading +## Dynamic Workflow Loading -The BMAD orchestrator MUST read the available workflows from the current team configuration's `workflows` field. Do not use hardcoded workflow lists. Each team bundle defines its own set of supported workflows based on the agents it includes. +Read available workflows from current team configuration's `workflows` field. Each team bundle defines its own supported workflows. -**Critical Distinction**: +**Key Commands**: -- When asked "what workflows are available?", show ONLY the workflows defined in the current team bundle's configuration -- Use `/agent-list` to show agents in the current bundle -- Use `/workflows` to show workflows in the current bundle, NOT any creation tasks - -### Workflow Descriptions - -When displaying workflows, use these descriptions based on the workflow ID: - -- **greenfield-fullstack**: Build a new full-stack application from concept to development -- **brownfield-fullstack**: Enhance an existing full-stack application with new features -- **greenfield-service**: Build a new backend service or API from concept to development -- **brownfield-service**: Enhance an existing backend service or API -- **greenfield-ui**: Build a new frontend/UI application from concept to development -- **brownfield-ui**: Enhance an existing frontend/UI application +- `/workflows` - List workflows in current bundle or workflows folder +- `/agent-list` - Show agents in current bundle ## Workflow Commands ### /workflows -Lists all available workflows for the current team. The available workflows are determined by the team configuration and may include workflows such as: - -- greenfield-fullstack -- brownfield-fullstack -- greenfield-service -- brownfield-service -- greenfield-ui -- brownfield-ui - -The actual list depends on which team bundle is loaded. When responding to this command, display the workflows that are configured in the current team's `workflows` field. - -Example response format: - -```text -Available workflows for [Team Name]: -1. [workflow-id] - [Brief description based on workflow type] -2. [workflow-id] - [Brief description based on workflow type] -[... etc. ...] - -Use /workflow-start {number or id} to begin a workflow. -``` +Lists available workflows with titles and descriptions. ### /workflow-start {workflow-id} -Starts a specific workflow and transitions to the first agent. - -Example: `/workflow-start greenfield-fullstack` +Starts workflow and transitions to first agent. ### /workflow-status -Shows current workflow progress, completed artifacts, and next steps. - -Example response: - -```text -Current Workflow: Greenfield Full-Stack Development -Stage: Product Planning (2 of 6) -Completed: - ✓ Discovery & Requirements - - project-brief (completed by Mary) - -In Progress: - ⚡ Product Planning - - Create PRD (John) - awaiting input - -Next: Technical Architecture -``` +Shows current progress, completed artifacts, and next steps. ### /workflow-resume -Resumes a workflow from where it left off, useful when starting a new chat. - -User can provide completed artifacts: - -```text -User: /workflow-resume greenfield-fullstack - I have completed: project-brief, PRD -BMad: I see you've completed Discovery and part of Product Planning. - Based on the greenfield-fullstack workflow, the next step is: - - UX Strategy with Sally (ux-expert) - - Would you like me to load Sally to continue? -``` +Resumes workflow from last position. User can provide completed artifacts. ### /workflow-next -Shows the next recommended agent and action in the current workflow. +Shows next recommended agent and action. -## Workflow Execution Flow +## Execution Flow -### 1. Starting a Workflow +1. **Starting**: Load definition → Identify first stage → Transition to agent → Guide artifact creation -When a workflow is started: +2. **Stage Transitions**: Mark complete → Check conditions → Load next agent → Pass artifacts -1. Load the workflow definition -2. Identify the first stage and step -3. Transition to the required agent -4. Provide context about expected inputs/outputs -5. Guide artifact creation +3. **Artifact Tracking**: Track status, creator, timestamps in workflow_state -### 2. Stage Transitions +4. **Interruption Handling**: Analyze provided artifacts → Determine position → Suggest next step -After each artifact is completed: +## Context Passing -1. Mark the step as complete -2. Check transition conditions -3. If stage is complete, move to next stage -4. Load the appropriate agent -5. Pass relevant artifacts as context +When transitioning, pass: -### 3. Artifact Tracking - -Track all created artifacts: - -```yaml -workflow_state: - current_workflow: greenfield-fullstack - current_stage: planning - current_step: 2 - artifacts: - project-brief: - status: completed - created_by: analyst - timestamp: 2024-01-15T10:30:00.000Z - prd: - status: in-progress - created_by: pm - started: 2024-01-15T11:00:00.000Z -``` - -### 4. Workflow Interruption Handling - -When user returns after interruption: - -1. Ask if continuing previous workflow -2. Request any completed artifacts -3. Analyze provided artifacts -4. Determine workflow position -5. Suggest next appropriate step - -Example: - -```text -User: I'm working on a new app. Here's my PRD and architecture doc. -BMad: I see you have a PRD and architecture document. Based on these artifacts, - it looks like you're following the greenfield-fullstack workflow and have completed - stages 1-3. The next recommended step would be: - - Stage 4: Validation & Refinement - - Load Sarah (Product Owner) to validate all artifacts - - Would you like to continue with this workflow? -``` - -## Workflow Context Passing - -When transitioning between agents, pass: - -1. Previous artifacts created -2. Current workflow stage -3. Expected outputs -4. Any decisions or constraints identified - -Example transition: - -```text -BMad: Great! John has completed the PRD. According to the greenfield-fullstack workflow, - the next step is UX Strategy with Sally. - - /ux-expert - -Sally: I see we're in the Product Planning stage of the greenfield-fullstack workflow. - I have access to: - - Project Brief from Mary - - PRD from John - - Let's create the UX strategy and UI specifications. First, let me review - the PRD to understand the features we're designing for... -``` +- Previous artifacts +- Current workflow stage +- Expected outputs +- Decisions/constraints ## Multi-Path Workflows -Some workflows may have multiple paths: +Handle conditional paths by asking clarifying questions when needed. -```yaml -conditional_paths: - - condition: project_type == 'mobile' - next_stage: mobile-specific-design - - condition: project_type == 'web' - next_stage: web-architecture - - default: fullstack-architecture -``` +## Best Practices -Handle these by asking clarifying questions when needed. +1. Show progress +2. Explain transitions +3. Preserve context +4. Allow flexibility +5. Track state -## Workflow Best Practices +## Agent Integration -1. **Always show progress** - Users should know where they are -2. **Explain transitions** - Why moving to next agent -3. **Preserve context** - Pass relevant information forward -4. **Allow flexibility** - Users can skip or modify steps -5. **Track everything** - Maintain complete workflow state - -## Integration with Agents - -Each agent should be workflow-aware: - -- Know which workflow is active -- Understand their role in the workflow -- Access previous artifacts -- Know expected outputs -- Guide toward workflow goals - -This creates a seamless experience where the entire team works together toward the workflow's objectives. +Agents should be workflow-aware: know active workflow, their role, access artifacts, understand expected outputs. ==================== END: utils#workflow-management ==================== ==================== START: utils#template-format ==================== diff --git a/dist/agents/dev.txt b/dist/agents/dev.txt index 232c2375..653c69a1 100644 --- a/dist/agents/dev.txt +++ b/dist/agents/dev.txt @@ -102,13 +102,9 @@ dependencies: This task provides instructions for validating documentation against checklists. The agent MUST follow these instructions to ensure thorough and systematic validation of documents. -## Context - -The BMAD Method uses various checklists to ensure quality and completeness of different artifacts. Each checklist contains embedded prompts and instructions to guide the LLM through thorough validation and advanced elicitation. The checklists automatically identify their required artifacts and guide the validation process. - ## Available Checklists -If the user asks or does not specify a specific checklist, list the checklists available to the agent persona. If the task is being run not with a specific agent, tell the user to check the bmad-core/checklists folder to select the appropriate one to run. +If the user asks or does not specify a specific checklist, list the checklists available to the agent persona. If the task is being run not with a specific agent, tell the user to check the {root}/checklists folder to select the appropriate one to run. ## Instructions @@ -117,7 +113,7 @@ If the user asks or does not specify a specific checklist, list the checklists a - If user or the task being run provides a checklist name: - Try fuzzy matching (e.g. "architecture checklist" -> "architect-checklist") - If multiple matches found, ask user to clarify - - Load the appropriate checklist from bmad-core/checklists/ + - Load the appropriate checklist from {root}/checklists/ - If no checklist specified: - Ask the user which checklist they want to use - Present the available options from the files in the checklists folder diff --git a/dist/agents/pm.txt b/dist/agents/pm.txt index 78240c73..3c60599f 100644 --- a/dist/agents/pm.txt +++ b/dist/agents/pm.txt @@ -133,9 +133,9 @@ Confirm with the user their preferred interaction style: ### 3. Execute Template -- Load specified template from `templates#*` or the /templates directory +- Load specified template from `templates#*` or the ../templates directory - Follow ALL embedded LLM instructions within the template -- Process template markup according to `utils#template-format` conventions +- Process template markup according to `utils#template-format` or `../utils/template-format` conventions ### 4. Template Processing Rules @@ -874,13 +874,9 @@ The story creation is successful when: This task provides instructions for validating documentation against checklists. The agent MUST follow these instructions to ensure thorough and systematic validation of documents. -## Context - -The BMAD Method uses various checklists to ensure quality and completeness of different artifacts. Each checklist contains embedded prompts and instructions to guide the LLM through thorough validation and advanced elicitation. The checklists automatically identify their required artifacts and guide the validation process. - ## Available Checklists -If the user asks or does not specify a specific checklist, list the checklists available to the agent persona. If the task is being run not with a specific agent, tell the user to check the bmad-core/checklists folder to select the appropriate one to run. +If the user asks or does not specify a specific checklist, list the checklists available to the agent persona. If the task is being run not with a specific agent, tell the user to check the {root}/checklists folder to select the appropriate one to run. ## Instructions @@ -889,7 +885,7 @@ If the user asks or does not specify a specific checklist, list the checklists a - If user or the task being run provides a checklist name: - Try fuzzy matching (e.g. "architecture checklist" -> "architect-checklist") - If multiple matches found, ask user to clarify - - Load the appropriate checklist from bmad-core/checklists/ + - Load the appropriate checklist from {root}/checklists/ - If no checklist specified: - Ask the user which checklist they want to use - Present the available options from the files in the checklists folder diff --git a/dist/agents/po.txt b/dist/agents/po.txt index 7d95b1ae..a35ff3c7 100644 --- a/dist/agents/po.txt +++ b/dist/agents/po.txt @@ -106,13 +106,9 @@ dependencies: This task provides instructions for validating documentation against checklists. The agent MUST follow these instructions to ensure thorough and systematic validation of documents. -## Context - -The BMAD Method uses various checklists to ensure quality and completeness of different artifacts. Each checklist contains embedded prompts and instructions to guide the LLM through thorough validation and advanced elicitation. The checklists automatically identify their required artifacts and guide the validation process. - ## Available Checklists -If the user asks or does not specify a specific checklist, list the checklists available to the agent persona. If the task is being run not with a specific agent, tell the user to check the bmad-core/checklists folder to select the appropriate one to run. +If the user asks or does not specify a specific checklist, list the checklists available to the agent persona. If the task is being run not with a specific agent, tell the user to check the {root}/checklists folder to select the appropriate one to run. ## Instructions @@ -121,7 +117,7 @@ If the user asks or does not specify a specific checklist, list the checklists a - If user or the task being run provides a checklist name: - Try fuzzy matching (e.g. "architecture checklist" -> "architect-checklist") - If multiple matches found, ask user to clarify - - Load the appropriate checklist from bmad-core/checklists/ + - Load the appropriate checklist from {root}/checklists/ - If no checklist specified: - Ask the user which checklist they want to use - Present the available options from the files in the checklists folder diff --git a/dist/agents/sm.txt b/dist/agents/sm.txt index 8e9c7f88..0b58ac9a 100644 --- a/dist/agents/sm.txt +++ b/dist/agents/sm.txt @@ -349,13 +349,9 @@ Provide a summary to the user including: This task provides instructions for validating documentation against checklists. The agent MUST follow these instructions to ensure thorough and systematic validation of documents. -## Context - -The BMAD Method uses various checklists to ensure quality and completeness of different artifacts. Each checklist contains embedded prompts and instructions to guide the LLM through thorough validation and advanced elicitation. The checklists automatically identify their required artifacts and guide the validation process. - ## Available Checklists -If the user asks or does not specify a specific checklist, list the checklists available to the agent persona. If the task is being run not with a specific agent, tell the user to check the bmad-core/checklists folder to select the appropriate one to run. +If the user asks or does not specify a specific checklist, list the checklists available to the agent persona. If the task is being run not with a specific agent, tell the user to check the {root}/checklists folder to select the appropriate one to run. ## Instructions @@ -364,7 +360,7 @@ If the user asks or does not specify a specific checklist, list the checklists a - If user or the task being run provides a checklist name: - Try fuzzy matching (e.g. "architecture checklist" -> "architect-checklist") - If multiple matches found, ask user to clarify - - Load the appropriate checklist from bmad-core/checklists/ + - Load the appropriate checklist from {root}/checklists/ - If no checklist specified: - Ask the user which checklist they want to use - Present the available options from the files in the checklists folder diff --git a/dist/agents/ux-expert.txt b/dist/agents/ux-expert.txt index 4f8f4036..0e8ca29e 100644 --- a/dist/agents/ux-expert.txt +++ b/dist/agents/ux-expert.txt @@ -493,9 +493,9 @@ Confirm with the user their preferred interaction style: ### 3. Execute Template -- Load specified template from `templates#*` or the /templates directory +- Load specified template from `templates#*` or the ../templates directory - Follow ALL embedded LLM instructions within the template -- Process template markup according to `utils#template-format` conventions +- Process template markup according to `utils#template-format` or `../utils/template-format` conventions ### 4. Template Processing Rules @@ -541,13 +541,9 @@ If template specifies a checklist: This task provides instructions for validating documentation against checklists. The agent MUST follow these instructions to ensure thorough and systematic validation of documents. -## Context - -The BMAD Method uses various checklists to ensure quality and completeness of different artifacts. Each checklist contains embedded prompts and instructions to guide the LLM through thorough validation and advanced elicitation. The checklists automatically identify their required artifacts and guide the validation process. - ## Available Checklists -If the user asks or does not specify a specific checklist, list the checklists available to the agent persona. If the task is being run not with a specific agent, tell the user to check the bmad-core/checklists folder to select the appropriate one to run. +If the user asks or does not specify a specific checklist, list the checklists available to the agent persona. If the task is being run not with a specific agent, tell the user to check the {root}/checklists folder to select the appropriate one to run. ## Instructions @@ -556,7 +552,7 @@ If the user asks or does not specify a specific checklist, list the checklists a - If user or the task being run provides a checklist name: - Try fuzzy matching (e.g. "architecture checklist" -> "architect-checklist") - If multiple matches found, ask user to clarify - - Load the appropriate checklist from bmad-core/checklists/ + - Load the appropriate checklist from {root}/checklists/ - If no checklist specified: - Ask the user which checklist they want to use - Present the available options from the files in the checklists folder diff --git a/dist/expansion-packs/bmad-2d-phaser-game-dev/agents/game-designer.txt b/dist/expansion-packs/bmad-2d-phaser-game-dev/agents/game-designer.txt index f56d34fa..a7ddb74c 100644 --- a/dist/expansion-packs/bmad-2d-phaser-game-dev/agents/game-designer.txt +++ b/dist/expansion-packs/bmad-2d-phaser-game-dev/agents/game-designer.txt @@ -133,9 +133,9 @@ Confirm with the user their preferred interaction style: ### 3. Execute Template -- Load specified template from `templates#*` or the /templates directory +- Load specified template from `templates#*` or the ../templates directory - Follow ALL embedded LLM instructions within the template -- Process template markup according to `utils#template-format` conventions +- Process template markup according to `utils#template-format` or `../utils/template-format` conventions ### 4. Template Processing Rules @@ -181,13 +181,9 @@ If template specifies a checklist: This task provides instructions for validating documentation against checklists. The agent MUST follow these instructions to ensure thorough and systematic validation of documents. -## Context - -The BMAD Method uses various checklists to ensure quality and completeness of different artifacts. Each checklist contains embedded prompts and instructions to guide the LLM through thorough validation and advanced elicitation. The checklists automatically identify their required artifacts and guide the validation process. - ## Available Checklists -If the user asks or does not specify a specific checklist, list the checklists available to the agent persona. If the task is being run not with a specific agent, tell the user to check the bmad-core/checklists folder to select the appropriate one to run. +If the user asks or does not specify a specific checklist, list the checklists available to the agent persona. If the task is being run not with a specific agent, tell the user to check the {root}/checklists folder to select the appropriate one to run. ## Instructions @@ -196,7 +192,7 @@ If the user asks or does not specify a specific checklist, list the checklists a - If user or the task being run provides a checklist name: - Try fuzzy matching (e.g. "architecture checklist" -> "architect-checklist") - If multiple matches found, ask user to clarify - - Load the appropriate checklist from bmad-core/checklists/ + - Load the appropriate checklist from {root}/checklists/ - If no checklist specified: - Ask the user which checklist they want to use - Present the available options from the files in the checklists folder diff --git a/dist/expansion-packs/bmad-2d-phaser-game-dev/agents/game-developer.txt b/dist/expansion-packs/bmad-2d-phaser-game-dev/agents/game-developer.txt index 9124a898..328fbe32 100644 --- a/dist/expansion-packs/bmad-2d-phaser-game-dev/agents/game-developer.txt +++ b/dist/expansion-packs/bmad-2d-phaser-game-dev/agents/game-developer.txt @@ -112,13 +112,9 @@ dependencies: This task provides instructions for validating documentation against checklists. The agent MUST follow these instructions to ensure thorough and systematic validation of documents. -## Context - -The BMAD Method uses various checklists to ensure quality and completeness of different artifacts. Each checklist contains embedded prompts and instructions to guide the LLM through thorough validation and advanced elicitation. The checklists automatically identify their required artifacts and guide the validation process. - ## Available Checklists -If the user asks or does not specify a specific checklist, list the checklists available to the agent persona. If the task is being run not with a specific agent, tell the user to check the bmad-core/checklists folder to select the appropriate one to run. +If the user asks or does not specify a specific checklist, list the checklists available to the agent persona. If the task is being run not with a specific agent, tell the user to check the {root}/checklists folder to select the appropriate one to run. ## Instructions @@ -127,7 +123,7 @@ If the user asks or does not specify a specific checklist, list the checklists a - If user or the task being run provides a checklist name: - Try fuzzy matching (e.g. "architecture checklist" -> "architect-checklist") - If multiple matches found, ask user to clarify - - Load the appropriate checklist from bmad-core/checklists/ + - Load the appropriate checklist from {root}/checklists/ - If no checklist specified: - Ask the user which checklist they want to use - Present the available options from the files in the checklists folder diff --git a/dist/expansion-packs/bmad-2d-phaser-game-dev/agents/game-sm.txt b/dist/expansion-packs/bmad-2d-phaser-game-dev/agents/game-sm.txt index e9b7e57f..65118c7d 100644 --- a/dist/expansion-packs/bmad-2d-phaser-game-dev/agents/game-sm.txt +++ b/dist/expansion-packs/bmad-2d-phaser-game-dev/agents/game-sm.txt @@ -316,13 +316,9 @@ This task ensures game development stories are immediately actionable and enable This task provides instructions for validating documentation against checklists. The agent MUST follow these instructions to ensure thorough and systematic validation of documents. -## Context - -The BMAD Method uses various checklists to ensure quality and completeness of different artifacts. Each checklist contains embedded prompts and instructions to guide the LLM through thorough validation and advanced elicitation. The checklists automatically identify their required artifacts and guide the validation process. - ## Available Checklists -If the user asks or does not specify a specific checklist, list the checklists available to the agent persona. If the task is being run not with a specific agent, tell the user to check the bmad-core/checklists folder to select the appropriate one to run. +If the user asks or does not specify a specific checklist, list the checklists available to the agent persona. If the task is being run not with a specific agent, tell the user to check the {root}/checklists folder to select the appropriate one to run. ## Instructions @@ -331,7 +327,7 @@ If the user asks or does not specify a specific checklist, list the checklists a - If user or the task being run provides a checklist name: - Try fuzzy matching (e.g. "architecture checklist" -> "architect-checklist") - If multiple matches found, ask user to clarify - - Load the appropriate checklist from bmad-core/checklists/ + - Load the appropriate checklist from {root}/checklists/ - If no checklist specified: - Ask the user which checklist they want to use - Present the available options from the files in the checklists folder diff --git a/dist/expansion-packs/bmad-2d-phaser-game-dev/teams/phaser-2d-nodejs-game-team.txt b/dist/expansion-packs/bmad-2d-phaser-game-dev/teams/phaser-2d-nodejs-game-team.txt index eaca737b..15548238 100644 --- a/dist/expansion-packs/bmad-2d-phaser-game-dev/teams/phaser-2d-nodejs-game-team.txt +++ b/dist/expansion-packs/bmad-2d-phaser-game-dev/teams/phaser-2d-nodejs-game-team.txt @@ -1006,9 +1006,9 @@ Confirm with the user their preferred interaction style: ### 3. Execute Template -- Load specified template from `templates#*` or the /templates directory +- Load specified template from `templates#*` or the ../templates directory - Follow ALL embedded LLM instructions within the template -- Process template markup according to `utils#template-format` conventions +- Process template markup according to `utils#template-format` or `../utils/template-format` conventions ### 4. Template Processing Rules @@ -2638,227 +2638,73 @@ Or ask me about anything else related to BMAD-METHOD! ==================== START: utils#workflow-management ==================== # Workflow Management -This utility enables the BMAD orchestrator to manage and execute team workflows. +Enables BMAD orchestrator to manage and execute team workflows. -## Important: Dynamic Workflow Loading +## Dynamic Workflow Loading -The BMAD orchestrator MUST read the available workflows from the current team configuration's `workflows` field. Do not use hardcoded workflow lists. Each team bundle defines its own set of supported workflows based on the agents it includes. +Read available workflows from current team configuration's `workflows` field. Each team bundle defines its own supported workflows. -**Critical Distinction**: +**Key Commands**: -- When asked "what workflows are available?", show ONLY the workflows defined in the current team bundle's configuration -- Use `/agent-list` to show agents in the current bundle -- Use `/workflows` to show workflows in the current bundle, NOT any creation tasks - -### Workflow Descriptions - -When displaying workflows, use these descriptions based on the workflow ID: - -- **greenfield-fullstack**: Build a new full-stack application from concept to development -- **brownfield-fullstack**: Enhance an existing full-stack application with new features -- **greenfield-service**: Build a new backend service or API from concept to development -- **brownfield-service**: Enhance an existing backend service or API -- **greenfield-ui**: Build a new frontend/UI application from concept to development -- **brownfield-ui**: Enhance an existing frontend/UI application +- `/workflows` - List workflows in current bundle or workflows folder +- `/agent-list` - Show agents in current bundle ## Workflow Commands ### /workflows -Lists all available workflows for the current team. The available workflows are determined by the team configuration and may include workflows such as: - -- greenfield-fullstack -- brownfield-fullstack -- greenfield-service -- brownfield-service -- greenfield-ui -- brownfield-ui - -The actual list depends on which team bundle is loaded. When responding to this command, display the workflows that are configured in the current team's `workflows` field. - -Example response format: - -```text -Available workflows for [Team Name]: -1. [workflow-id] - [Brief description based on workflow type] -2. [workflow-id] - [Brief description based on workflow type] -[... etc. ...] - -Use /workflow-start {number or id} to begin a workflow. -``` +Lists available workflows with titles and descriptions. ### /workflow-start {workflow-id} -Starts a specific workflow and transitions to the first agent. - -Example: `/workflow-start greenfield-fullstack` +Starts workflow and transitions to first agent. ### /workflow-status -Shows current workflow progress, completed artifacts, and next steps. - -Example response: - -```text -Current Workflow: Greenfield Full-Stack Development -Stage: Product Planning (2 of 6) -Completed: - ✓ Discovery & Requirements - - project-brief (completed by Mary) - -In Progress: - ⚡ Product Planning - - Create PRD (John) - awaiting input - -Next: Technical Architecture -``` +Shows current progress, completed artifacts, and next steps. ### /workflow-resume -Resumes a workflow from where it left off, useful when starting a new chat. - -User can provide completed artifacts: - -```text -User: /workflow-resume greenfield-fullstack - I have completed: project-brief, PRD -BMad: I see you've completed Discovery and part of Product Planning. - Based on the greenfield-fullstack workflow, the next step is: - - UX Strategy with Sally (ux-expert) - - Would you like me to load Sally to continue? -``` +Resumes workflow from last position. User can provide completed artifacts. ### /workflow-next -Shows the next recommended agent and action in the current workflow. +Shows next recommended agent and action. -## Workflow Execution Flow +## Execution Flow -### 1. Starting a Workflow +1. **Starting**: Load definition → Identify first stage → Transition to agent → Guide artifact creation -When a workflow is started: +2. **Stage Transitions**: Mark complete → Check conditions → Load next agent → Pass artifacts -1. Load the workflow definition -2. Identify the first stage and step -3. Transition to the required agent -4. Provide context about expected inputs/outputs -5. Guide artifact creation +3. **Artifact Tracking**: Track status, creator, timestamps in workflow_state -### 2. Stage Transitions +4. **Interruption Handling**: Analyze provided artifacts → Determine position → Suggest next step -After each artifact is completed: +## Context Passing -1. Mark the step as complete -2. Check transition conditions -3. If stage is complete, move to next stage -4. Load the appropriate agent -5. Pass relevant artifacts as context +When transitioning, pass: -### 3. Artifact Tracking - -Track all created artifacts: - -```yaml -workflow_state: - current_workflow: greenfield-fullstack - current_stage: planning - current_step: 2 - artifacts: - project-brief: - status: completed - created_by: analyst - timestamp: 2024-01-15T10:30:00.000Z - prd: - status: in-progress - created_by: pm - started: 2024-01-15T11:00:00.000Z -``` - -### 4. Workflow Interruption Handling - -When user returns after interruption: - -1. Ask if continuing previous workflow -2. Request any completed artifacts -3. Analyze provided artifacts -4. Determine workflow position -5. Suggest next appropriate step - -Example: - -```text -User: I'm working on a new app. Here's my PRD and architecture doc. -BMad: I see you have a PRD and architecture document. Based on these artifacts, - it looks like you're following the greenfield-fullstack workflow and have completed - stages 1-3. The next recommended step would be: - - Stage 4: Validation & Refinement - - Load Sarah (Product Owner) to validate all artifacts - - Would you like to continue with this workflow? -``` - -## Workflow Context Passing - -When transitioning between agents, pass: - -1. Previous artifacts created -2. Current workflow stage -3. Expected outputs -4. Any decisions or constraints identified - -Example transition: - -```text -BMad: Great! John has completed the PRD. According to the greenfield-fullstack workflow, - the next step is UX Strategy with Sally. - - /ux-expert - -Sally: I see we're in the Product Planning stage of the greenfield-fullstack workflow. - I have access to: - - Project Brief from Mary - - PRD from John - - Let's create the UX strategy and UI specifications. First, let me review - the PRD to understand the features we're designing for... -``` +- Previous artifacts +- Current workflow stage +- Expected outputs +- Decisions/constraints ## Multi-Path Workflows -Some workflows may have multiple paths: +Handle conditional paths by asking clarifying questions when needed. -```yaml -conditional_paths: - - condition: project_type == 'mobile' - next_stage: mobile-specific-design - - condition: project_type == 'web' - next_stage: web-architecture - - default: fullstack-architecture -``` +## Best Practices -Handle these by asking clarifying questions when needed. +1. Show progress +2. Explain transitions +3. Preserve context +4. Allow flexibility +5. Track state -## Workflow Best Practices +## Agent Integration -1. **Always show progress** - Users should know where they are -2. **Explain transitions** - Why moving to next agent -3. **Preserve context** - Pass relevant information forward -4. **Allow flexibility** - Users can skip or modify steps -5. **Track everything** - Maintain complete workflow state - -## Integration with Agents - -Each agent should be workflow-aware: - -- Know which workflow is active -- Understand their role in the workflow -- Access previous artifacts -- Know expected outputs -- Guide toward workflow goals - -This creates a seamless experience where the entire team works together toward the workflow's objectives. +Agents should be workflow-aware: know active workflow, their role, access artifacts, understand expected outputs. ==================== END: utils#workflow-management ==================== ==================== START: tasks#execute-checklist ==================== @@ -2866,13 +2712,9 @@ This creates a seamless experience where the entire team works together toward t This task provides instructions for validating documentation against checklists. The agent MUST follow these instructions to ensure thorough and systematic validation of documents. -## Context - -The BMAD Method uses various checklists to ensure quality and completeness of different artifacts. Each checklist contains embedded prompts and instructions to guide the LLM through thorough validation and advanced elicitation. The checklists automatically identify their required artifacts and guide the validation process. - ## Available Checklists -If the user asks or does not specify a specific checklist, list the checklists available to the agent persona. If the task is being run not with a specific agent, tell the user to check the bmad-core/checklists folder to select the appropriate one to run. +If the user asks or does not specify a specific checklist, list the checklists available to the agent persona. If the task is being run not with a specific agent, tell the user to check the {root}/checklists folder to select the appropriate one to run. ## Instructions @@ -2881,7 +2723,7 @@ If the user asks or does not specify a specific checklist, list the checklists a - If user or the task being run provides a checklist name: - Try fuzzy matching (e.g. "architecture checklist" -> "architect-checklist") - If multiple matches found, ask user to clarify - - Load the appropriate checklist from bmad-core/checklists/ + - Load the appropriate checklist from {root}/checklists/ - If no checklist specified: - Ask the user which checklist they want to use - Present the available options from the files in the checklists folder diff --git a/dist/expansion-packs/bmad-infrastructure-devops/agents/infra-devops-platform.txt b/dist/expansion-packs/bmad-infrastructure-devops/agents/infra-devops-platform.txt index d6e1e43d..7d855285 100644 --- a/dist/expansion-packs/bmad-infrastructure-devops/agents/infra-devops-platform.txt +++ b/dist/expansion-packs/bmad-infrastructure-devops/agents/infra-devops-platform.txt @@ -134,9 +134,9 @@ Confirm with the user their preferred interaction style: ### 3. Execute Template -- Load specified template from `templates#*` or the /templates directory +- Load specified template from `templates#*` or the ../templates directory - Follow ALL embedded LLM instructions within the template -- Process template markup according to `utils#template-format` conventions +- Process template markup according to `utils#template-format` or `../utils/template-format` conventions ### 4. Template Processing Rules diff --git a/dist/teams/team-all.txt b/dist/teams/team-all.txt index 6ba82e84..d7676b1d 100644 --- a/dist/teams/team-all.txt +++ b/dist/teams/team-all.txt @@ -784,9 +784,9 @@ Confirm with the user their preferred interaction style: ### 3. Execute Template -- Load specified template from `templates#*` or the /templates directory +- Load specified template from `templates#*` or the ../templates directory - Follow ALL embedded LLM instructions within the template -- Process template markup according to `utils#template-format` conventions +- Process template markup according to `utils#template-format` or `../utils/template-format` conventions ### 4. Template Processing Rules @@ -1653,227 +1653,73 @@ Use the **expansion-creator** pack to build your own: ==================== START: utils#workflow-management ==================== # Workflow Management -This utility enables the BMAD orchestrator to manage and execute team workflows. +Enables BMAD orchestrator to manage and execute team workflows. -## Important: Dynamic Workflow Loading +## Dynamic Workflow Loading -The BMAD orchestrator MUST read the available workflows from the current team configuration's `workflows` field. Do not use hardcoded workflow lists. Each team bundle defines its own set of supported workflows based on the agents it includes. +Read available workflows from current team configuration's `workflows` field. Each team bundle defines its own supported workflows. -**Critical Distinction**: +**Key Commands**: -- When asked "what workflows are available?", show ONLY the workflows defined in the current team bundle's configuration -- Use `/agent-list` to show agents in the current bundle -- Use `/workflows` to show workflows in the current bundle, NOT any creation tasks - -### Workflow Descriptions - -When displaying workflows, use these descriptions based on the workflow ID: - -- **greenfield-fullstack**: Build a new full-stack application from concept to development -- **brownfield-fullstack**: Enhance an existing full-stack application with new features -- **greenfield-service**: Build a new backend service or API from concept to development -- **brownfield-service**: Enhance an existing backend service or API -- **greenfield-ui**: Build a new frontend/UI application from concept to development -- **brownfield-ui**: Enhance an existing frontend/UI application +- `/workflows` - List workflows in current bundle or workflows folder +- `/agent-list` - Show agents in current bundle ## Workflow Commands ### /workflows -Lists all available workflows for the current team. The available workflows are determined by the team configuration and may include workflows such as: - -- greenfield-fullstack -- brownfield-fullstack -- greenfield-service -- brownfield-service -- greenfield-ui -- brownfield-ui - -The actual list depends on which team bundle is loaded. When responding to this command, display the workflows that are configured in the current team's `workflows` field. - -Example response format: - -```text -Available workflows for [Team Name]: -1. [workflow-id] - [Brief description based on workflow type] -2. [workflow-id] - [Brief description based on workflow type] -[... etc. ...] - -Use /workflow-start {number or id} to begin a workflow. -``` +Lists available workflows with titles and descriptions. ### /workflow-start {workflow-id} -Starts a specific workflow and transitions to the first agent. - -Example: `/workflow-start greenfield-fullstack` +Starts workflow and transitions to first agent. ### /workflow-status -Shows current workflow progress, completed artifacts, and next steps. - -Example response: - -```text -Current Workflow: Greenfield Full-Stack Development -Stage: Product Planning (2 of 6) -Completed: - ✓ Discovery & Requirements - - project-brief (completed by Mary) - -In Progress: - ⚡ Product Planning - - Create PRD (John) - awaiting input - -Next: Technical Architecture -``` +Shows current progress, completed artifacts, and next steps. ### /workflow-resume -Resumes a workflow from where it left off, useful when starting a new chat. - -User can provide completed artifacts: - -```text -User: /workflow-resume greenfield-fullstack - I have completed: project-brief, PRD -BMad: I see you've completed Discovery and part of Product Planning. - Based on the greenfield-fullstack workflow, the next step is: - - UX Strategy with Sally (ux-expert) - - Would you like me to load Sally to continue? -``` +Resumes workflow from last position. User can provide completed artifacts. ### /workflow-next -Shows the next recommended agent and action in the current workflow. +Shows next recommended agent and action. -## Workflow Execution Flow +## Execution Flow -### 1. Starting a Workflow +1. **Starting**: Load definition → Identify first stage → Transition to agent → Guide artifact creation -When a workflow is started: +2. **Stage Transitions**: Mark complete → Check conditions → Load next agent → Pass artifacts -1. Load the workflow definition -2. Identify the first stage and step -3. Transition to the required agent -4. Provide context about expected inputs/outputs -5. Guide artifact creation +3. **Artifact Tracking**: Track status, creator, timestamps in workflow_state -### 2. Stage Transitions +4. **Interruption Handling**: Analyze provided artifacts → Determine position → Suggest next step -After each artifact is completed: +## Context Passing -1. Mark the step as complete -2. Check transition conditions -3. If stage is complete, move to next stage -4. Load the appropriate agent -5. Pass relevant artifacts as context +When transitioning, pass: -### 3. Artifact Tracking - -Track all created artifacts: - -```yaml -workflow_state: - current_workflow: greenfield-fullstack - current_stage: planning - current_step: 2 - artifacts: - project-brief: - status: completed - created_by: analyst - timestamp: 2024-01-15T10:30:00.000Z - prd: - status: in-progress - created_by: pm - started: 2024-01-15T11:00:00.000Z -``` - -### 4. Workflow Interruption Handling - -When user returns after interruption: - -1. Ask if continuing previous workflow -2. Request any completed artifacts -3. Analyze provided artifacts -4. Determine workflow position -5. Suggest next appropriate step - -Example: - -```text -User: I'm working on a new app. Here's my PRD and architecture doc. -BMad: I see you have a PRD and architecture document. Based on these artifacts, - it looks like you're following the greenfield-fullstack workflow and have completed - stages 1-3. The next recommended step would be: - - Stage 4: Validation & Refinement - - Load Sarah (Product Owner) to validate all artifacts - - Would you like to continue with this workflow? -``` - -## Workflow Context Passing - -When transitioning between agents, pass: - -1. Previous artifacts created -2. Current workflow stage -3. Expected outputs -4. Any decisions or constraints identified - -Example transition: - -```text -BMad: Great! John has completed the PRD. According to the greenfield-fullstack workflow, - the next step is UX Strategy with Sally. - - /ux-expert - -Sally: I see we're in the Product Planning stage of the greenfield-fullstack workflow. - I have access to: - - Project Brief from Mary - - PRD from John - - Let's create the UX strategy and UI specifications. First, let me review - the PRD to understand the features we're designing for... -``` +- Previous artifacts +- Current workflow stage +- Expected outputs +- Decisions/constraints ## Multi-Path Workflows -Some workflows may have multiple paths: +Handle conditional paths by asking clarifying questions when needed. -```yaml -conditional_paths: - - condition: project_type == 'mobile' - next_stage: mobile-specific-design - - condition: project_type == 'web' - next_stage: web-architecture - - default: fullstack-architecture -``` +## Best Practices -Handle these by asking clarifying questions when needed. +1. Show progress +2. Explain transitions +3. Preserve context +4. Allow flexibility +5. Track state -## Workflow Best Practices +## Agent Integration -1. **Always show progress** - Users should know where they are -2. **Explain transitions** - Why moving to next agent -3. **Preserve context** - Pass relevant information forward -4. **Allow flexibility** - Users can skip or modify steps -5. **Track everything** - Maintain complete workflow state - -## Integration with Agents - -Each agent should be workflow-aware: - -- Know which workflow is active -- Understand their role in the workflow -- Access previous artifacts -- Know expected outputs -- Guide toward workflow goals - -This creates a seamless experience where the entire team works together toward the workflow's objectives. +Agents should be workflow-aware: know active workflow, their role, access artifacts, understand expected outputs. ==================== END: utils#workflow-management ==================== ==================== START: utils#template-format ==================== @@ -3568,13 +3414,9 @@ These replace the standard elicitation options when working on competitive analy This task provides instructions for validating documentation against checklists. The agent MUST follow these instructions to ensure thorough and systematic validation of documents. -## Context - -The BMAD Method uses various checklists to ensure quality and completeness of different artifacts. Each checklist contains embedded prompts and instructions to guide the LLM through thorough validation and advanced elicitation. The checklists automatically identify their required artifacts and guide the validation process. - ## Available Checklists -If the user asks or does not specify a specific checklist, list the checklists available to the agent persona. If the task is being run not with a specific agent, tell the user to check the bmad-core/checklists folder to select the appropriate one to run. +If the user asks or does not specify a specific checklist, list the checklists available to the agent persona. If the task is being run not with a specific agent, tell the user to check the {root}/checklists folder to select the appropriate one to run. ## Instructions @@ -3583,7 +3425,7 @@ If the user asks or does not specify a specific checklist, list the checklists a - If user or the task being run provides a checklist name: - Try fuzzy matching (e.g. "architecture checklist" -> "architect-checklist") - If multiple matches found, ask user to clarify - - Load the appropriate checklist from bmad-core/checklists/ + - Load the appropriate checklist from {root}/checklists/ - If no checklist specified: - Ask the user which checklist they want to use - Present the available options from the files in the checklists folder diff --git a/dist/teams/team-fullstack.txt b/dist/teams/team-fullstack.txt index 6389dacf..f7cfb9d8 100644 --- a/dist/teams/team-fullstack.txt +++ b/dist/teams/team-fullstack.txt @@ -628,9 +628,9 @@ Confirm with the user their preferred interaction style: ### 3. Execute Template -- Load specified template from `templates#*` or the /templates directory +- Load specified template from `templates#*` or the ../templates directory - Follow ALL embedded LLM instructions within the template -- Process template markup according to `utils#template-format` conventions +- Process template markup according to `utils#template-format` or `../utils/template-format` conventions ### 4. Template Processing Rules @@ -1497,227 +1497,73 @@ Use the **expansion-creator** pack to build your own: ==================== START: utils#workflow-management ==================== # Workflow Management -This utility enables the BMAD orchestrator to manage and execute team workflows. +Enables BMAD orchestrator to manage and execute team workflows. -## Important: Dynamic Workflow Loading +## Dynamic Workflow Loading -The BMAD orchestrator MUST read the available workflows from the current team configuration's `workflows` field. Do not use hardcoded workflow lists. Each team bundle defines its own set of supported workflows based on the agents it includes. +Read available workflows from current team configuration's `workflows` field. Each team bundle defines its own supported workflows. -**Critical Distinction**: +**Key Commands**: -- When asked "what workflows are available?", show ONLY the workflows defined in the current team bundle's configuration -- Use `/agent-list` to show agents in the current bundle -- Use `/workflows` to show workflows in the current bundle, NOT any creation tasks - -### Workflow Descriptions - -When displaying workflows, use these descriptions based on the workflow ID: - -- **greenfield-fullstack**: Build a new full-stack application from concept to development -- **brownfield-fullstack**: Enhance an existing full-stack application with new features -- **greenfield-service**: Build a new backend service or API from concept to development -- **brownfield-service**: Enhance an existing backend service or API -- **greenfield-ui**: Build a new frontend/UI application from concept to development -- **brownfield-ui**: Enhance an existing frontend/UI application +- `/workflows` - List workflows in current bundle or workflows folder +- `/agent-list` - Show agents in current bundle ## Workflow Commands ### /workflows -Lists all available workflows for the current team. The available workflows are determined by the team configuration and may include workflows such as: - -- greenfield-fullstack -- brownfield-fullstack -- greenfield-service -- brownfield-service -- greenfield-ui -- brownfield-ui - -The actual list depends on which team bundle is loaded. When responding to this command, display the workflows that are configured in the current team's `workflows` field. - -Example response format: - -```text -Available workflows for [Team Name]: -1. [workflow-id] - [Brief description based on workflow type] -2. [workflow-id] - [Brief description based on workflow type] -[... etc. ...] - -Use /workflow-start {number or id} to begin a workflow. -``` +Lists available workflows with titles and descriptions. ### /workflow-start {workflow-id} -Starts a specific workflow and transitions to the first agent. - -Example: `/workflow-start greenfield-fullstack` +Starts workflow and transitions to first agent. ### /workflow-status -Shows current workflow progress, completed artifacts, and next steps. - -Example response: - -```text -Current Workflow: Greenfield Full-Stack Development -Stage: Product Planning (2 of 6) -Completed: - ✓ Discovery & Requirements - - project-brief (completed by Mary) - -In Progress: - ⚡ Product Planning - - Create PRD (John) - awaiting input - -Next: Technical Architecture -``` +Shows current progress, completed artifacts, and next steps. ### /workflow-resume -Resumes a workflow from where it left off, useful when starting a new chat. - -User can provide completed artifacts: - -```text -User: /workflow-resume greenfield-fullstack - I have completed: project-brief, PRD -BMad: I see you've completed Discovery and part of Product Planning. - Based on the greenfield-fullstack workflow, the next step is: - - UX Strategy with Sally (ux-expert) - - Would you like me to load Sally to continue? -``` +Resumes workflow from last position. User can provide completed artifacts. ### /workflow-next -Shows the next recommended agent and action in the current workflow. +Shows next recommended agent and action. -## Workflow Execution Flow +## Execution Flow -### 1. Starting a Workflow +1. **Starting**: Load definition → Identify first stage → Transition to agent → Guide artifact creation -When a workflow is started: +2. **Stage Transitions**: Mark complete → Check conditions → Load next agent → Pass artifacts -1. Load the workflow definition -2. Identify the first stage and step -3. Transition to the required agent -4. Provide context about expected inputs/outputs -5. Guide artifact creation +3. **Artifact Tracking**: Track status, creator, timestamps in workflow_state -### 2. Stage Transitions +4. **Interruption Handling**: Analyze provided artifacts → Determine position → Suggest next step -After each artifact is completed: +## Context Passing -1. Mark the step as complete -2. Check transition conditions -3. If stage is complete, move to next stage -4. Load the appropriate agent -5. Pass relevant artifacts as context +When transitioning, pass: -### 3. Artifact Tracking - -Track all created artifacts: - -```yaml -workflow_state: - current_workflow: greenfield-fullstack - current_stage: planning - current_step: 2 - artifacts: - project-brief: - status: completed - created_by: analyst - timestamp: 2024-01-15T10:30:00.000Z - prd: - status: in-progress - created_by: pm - started: 2024-01-15T11:00:00.000Z -``` - -### 4. Workflow Interruption Handling - -When user returns after interruption: - -1. Ask if continuing previous workflow -2. Request any completed artifacts -3. Analyze provided artifacts -4. Determine workflow position -5. Suggest next appropriate step - -Example: - -```text -User: I'm working on a new app. Here's my PRD and architecture doc. -BMad: I see you have a PRD and architecture document. Based on these artifacts, - it looks like you're following the greenfield-fullstack workflow and have completed - stages 1-3. The next recommended step would be: - - Stage 4: Validation & Refinement - - Load Sarah (Product Owner) to validate all artifacts - - Would you like to continue with this workflow? -``` - -## Workflow Context Passing - -When transitioning between agents, pass: - -1. Previous artifacts created -2. Current workflow stage -3. Expected outputs -4. Any decisions or constraints identified - -Example transition: - -```text -BMad: Great! John has completed the PRD. According to the greenfield-fullstack workflow, - the next step is UX Strategy with Sally. - - /ux-expert - -Sally: I see we're in the Product Planning stage of the greenfield-fullstack workflow. - I have access to: - - Project Brief from Mary - - PRD from John - - Let's create the UX strategy and UI specifications. First, let me review - the PRD to understand the features we're designing for... -``` +- Previous artifacts +- Current workflow stage +- Expected outputs +- Decisions/constraints ## Multi-Path Workflows -Some workflows may have multiple paths: +Handle conditional paths by asking clarifying questions when needed. -```yaml -conditional_paths: - - condition: project_type == 'mobile' - next_stage: mobile-specific-design - - condition: project_type == 'web' - next_stage: web-architecture - - default: fullstack-architecture -``` +## Best Practices -Handle these by asking clarifying questions when needed. +1. Show progress +2. Explain transitions +3. Preserve context +4. Allow flexibility +5. Track state -## Workflow Best Practices +## Agent Integration -1. **Always show progress** - Users should know where they are -2. **Explain transitions** - Why moving to next agent -3. **Preserve context** - Pass relevant information forward -4. **Allow flexibility** - Users can skip or modify steps -5. **Track everything** - Maintain complete workflow state - -## Integration with Agents - -Each agent should be workflow-aware: - -- Know which workflow is active -- Understand their role in the workflow -- Access previous artifacts -- Know expected outputs -- Guide toward workflow goals - -This creates a seamless experience where the entire team works together toward the workflow's objectives. +Agents should be workflow-aware: know active workflow, their role, access artifacts, understand expected outputs. ==================== END: utils#workflow-management ==================== ==================== START: utils#template-format ==================== @@ -3801,13 +3647,9 @@ The story creation is successful when: This task provides instructions for validating documentation against checklists. The agent MUST follow these instructions to ensure thorough and systematic validation of documents. -## Context - -The BMAD Method uses various checklists to ensure quality and completeness of different artifacts. Each checklist contains embedded prompts and instructions to guide the LLM through thorough validation and advanced elicitation. The checklists automatically identify their required artifacts and guide the validation process. - ## Available Checklists -If the user asks or does not specify a specific checklist, list the checklists available to the agent persona. If the task is being run not with a specific agent, tell the user to check the bmad-core/checklists folder to select the appropriate one to run. +If the user asks or does not specify a specific checklist, list the checklists available to the agent persona. If the task is being run not with a specific agent, tell the user to check the {root}/checklists folder to select the appropriate one to run. ## Instructions @@ -3816,7 +3658,7 @@ If the user asks or does not specify a specific checklist, list the checklists a - If user or the task being run provides a checklist name: - Try fuzzy matching (e.g. "architecture checklist" -> "architect-checklist") - If multiple matches found, ask user to clarify - - Load the appropriate checklist from bmad-core/checklists/ + - Load the appropriate checklist from {root}/checklists/ - If no checklist specified: - Ask the user which checklist they want to use - Present the available options from the files in the checklists folder diff --git a/dist/teams/team-ide-minimal.txt b/dist/teams/team-ide-minimal.txt index 65312497..631eef89 100644 --- a/dist/teams/team-ide-minimal.txt +++ b/dist/teams/team-ide-minimal.txt @@ -528,9 +528,9 @@ Confirm with the user their preferred interaction style: ### 3. Execute Template -- Load specified template from `templates#*` or the /templates directory +- Load specified template from `templates#*` or the ../templates directory - Follow ALL embedded LLM instructions within the template -- Process template markup according to `utils#template-format` conventions +- Process template markup according to `utils#template-format` or `../utils/template-format` conventions ### 4. Template Processing Rules @@ -1397,227 +1397,73 @@ Use the **expansion-creator** pack to build your own: ==================== START: utils#workflow-management ==================== # Workflow Management -This utility enables the BMAD orchestrator to manage and execute team workflows. +Enables BMAD orchestrator to manage and execute team workflows. -## Important: Dynamic Workflow Loading +## Dynamic Workflow Loading -The BMAD orchestrator MUST read the available workflows from the current team configuration's `workflows` field. Do not use hardcoded workflow lists. Each team bundle defines its own set of supported workflows based on the agents it includes. +Read available workflows from current team configuration's `workflows` field. Each team bundle defines its own supported workflows. -**Critical Distinction**: +**Key Commands**: -- When asked "what workflows are available?", show ONLY the workflows defined in the current team bundle's configuration -- Use `/agent-list` to show agents in the current bundle -- Use `/workflows` to show workflows in the current bundle, NOT any creation tasks - -### Workflow Descriptions - -When displaying workflows, use these descriptions based on the workflow ID: - -- **greenfield-fullstack**: Build a new full-stack application from concept to development -- **brownfield-fullstack**: Enhance an existing full-stack application with new features -- **greenfield-service**: Build a new backend service or API from concept to development -- **brownfield-service**: Enhance an existing backend service or API -- **greenfield-ui**: Build a new frontend/UI application from concept to development -- **brownfield-ui**: Enhance an existing frontend/UI application +- `/workflows` - List workflows in current bundle or workflows folder +- `/agent-list` - Show agents in current bundle ## Workflow Commands ### /workflows -Lists all available workflows for the current team. The available workflows are determined by the team configuration and may include workflows such as: - -- greenfield-fullstack -- brownfield-fullstack -- greenfield-service -- brownfield-service -- greenfield-ui -- brownfield-ui - -The actual list depends on which team bundle is loaded. When responding to this command, display the workflows that are configured in the current team's `workflows` field. - -Example response format: - -```text -Available workflows for [Team Name]: -1. [workflow-id] - [Brief description based on workflow type] -2. [workflow-id] - [Brief description based on workflow type] -[... etc. ...] - -Use /workflow-start {number or id} to begin a workflow. -``` +Lists available workflows with titles and descriptions. ### /workflow-start {workflow-id} -Starts a specific workflow and transitions to the first agent. - -Example: `/workflow-start greenfield-fullstack` +Starts workflow and transitions to first agent. ### /workflow-status -Shows current workflow progress, completed artifacts, and next steps. - -Example response: - -```text -Current Workflow: Greenfield Full-Stack Development -Stage: Product Planning (2 of 6) -Completed: - ✓ Discovery & Requirements - - project-brief (completed by Mary) - -In Progress: - ⚡ Product Planning - - Create PRD (John) - awaiting input - -Next: Technical Architecture -``` +Shows current progress, completed artifacts, and next steps. ### /workflow-resume -Resumes a workflow from where it left off, useful when starting a new chat. - -User can provide completed artifacts: - -```text -User: /workflow-resume greenfield-fullstack - I have completed: project-brief, PRD -BMad: I see you've completed Discovery and part of Product Planning. - Based on the greenfield-fullstack workflow, the next step is: - - UX Strategy with Sally (ux-expert) - - Would you like me to load Sally to continue? -``` +Resumes workflow from last position. User can provide completed artifacts. ### /workflow-next -Shows the next recommended agent and action in the current workflow. +Shows next recommended agent and action. -## Workflow Execution Flow +## Execution Flow -### 1. Starting a Workflow +1. **Starting**: Load definition → Identify first stage → Transition to agent → Guide artifact creation -When a workflow is started: +2. **Stage Transitions**: Mark complete → Check conditions → Load next agent → Pass artifacts -1. Load the workflow definition -2. Identify the first stage and step -3. Transition to the required agent -4. Provide context about expected inputs/outputs -5. Guide artifact creation +3. **Artifact Tracking**: Track status, creator, timestamps in workflow_state -### 2. Stage Transitions +4. **Interruption Handling**: Analyze provided artifacts → Determine position → Suggest next step -After each artifact is completed: +## Context Passing -1. Mark the step as complete -2. Check transition conditions -3. If stage is complete, move to next stage -4. Load the appropriate agent -5. Pass relevant artifacts as context +When transitioning, pass: -### 3. Artifact Tracking - -Track all created artifacts: - -```yaml -workflow_state: - current_workflow: greenfield-fullstack - current_stage: planning - current_step: 2 - artifacts: - project-brief: - status: completed - created_by: analyst - timestamp: 2024-01-15T10:30:00.000Z - prd: - status: in-progress - created_by: pm - started: 2024-01-15T11:00:00.000Z -``` - -### 4. Workflow Interruption Handling - -When user returns after interruption: - -1. Ask if continuing previous workflow -2. Request any completed artifacts -3. Analyze provided artifacts -4. Determine workflow position -5. Suggest next appropriate step - -Example: - -```text -User: I'm working on a new app. Here's my PRD and architecture doc. -BMad: I see you have a PRD and architecture document. Based on these artifacts, - it looks like you're following the greenfield-fullstack workflow and have completed - stages 1-3. The next recommended step would be: - - Stage 4: Validation & Refinement - - Load Sarah (Product Owner) to validate all artifacts - - Would you like to continue with this workflow? -``` - -## Workflow Context Passing - -When transitioning between agents, pass: - -1. Previous artifacts created -2. Current workflow stage -3. Expected outputs -4. Any decisions or constraints identified - -Example transition: - -```text -BMad: Great! John has completed the PRD. According to the greenfield-fullstack workflow, - the next step is UX Strategy with Sally. - - /ux-expert - -Sally: I see we're in the Product Planning stage of the greenfield-fullstack workflow. - I have access to: - - Project Brief from Mary - - PRD from John - - Let's create the UX strategy and UI specifications. First, let me review - the PRD to understand the features we're designing for... -``` +- Previous artifacts +- Current workflow stage +- Expected outputs +- Decisions/constraints ## Multi-Path Workflows -Some workflows may have multiple paths: +Handle conditional paths by asking clarifying questions when needed. -```yaml -conditional_paths: - - condition: project_type == 'mobile' - next_stage: mobile-specific-design - - condition: project_type == 'web' - next_stage: web-architecture - - default: fullstack-architecture -``` +## Best Practices -Handle these by asking clarifying questions when needed. +1. Show progress +2. Explain transitions +3. Preserve context +4. Allow flexibility +5. Track state -## Workflow Best Practices +## Agent Integration -1. **Always show progress** - Users should know where they are -2. **Explain transitions** - Why moving to next agent -3. **Preserve context** - Pass relevant information forward -4. **Allow flexibility** - Users can skip or modify steps -5. **Track everything** - Maintain complete workflow state - -## Integration with Agents - -Each agent should be workflow-aware: - -- Know which workflow is active -- Understand their role in the workflow -- Access previous artifacts -- Know expected outputs -- Guide toward workflow goals - -This creates a seamless experience where the entire team works together toward the workflow's objectives. +Agents should be workflow-aware: know active workflow, their role, access artifacts, understand expected outputs. ==================== END: utils#workflow-management ==================== ==================== START: utils#template-format ==================== @@ -1654,13 +1500,9 @@ Templates in the BMAD method use standardized markup for AI processing. These co This task provides instructions for validating documentation against checklists. The agent MUST follow these instructions to ensure thorough and systematic validation of documents. -## Context - -The BMAD Method uses various checklists to ensure quality and completeness of different artifacts. Each checklist contains embedded prompts and instructions to guide the LLM through thorough validation and advanced elicitation. The checklists automatically identify their required artifacts and guide the validation process. - ## Available Checklists -If the user asks or does not specify a specific checklist, list the checklists available to the agent persona. If the task is being run not with a specific agent, tell the user to check the bmad-core/checklists folder to select the appropriate one to run. +If the user asks or does not specify a specific checklist, list the checklists available to the agent persona. If the task is being run not with a specific agent, tell the user to check the {root}/checklists folder to select the appropriate one to run. ## Instructions @@ -1669,7 +1511,7 @@ If the user asks or does not specify a specific checklist, list the checklists a - If user or the task being run provides a checklist name: - Try fuzzy matching (e.g. "architecture checklist" -> "architect-checklist") - If multiple matches found, ask user to clarify - - Load the appropriate checklist from bmad-core/checklists/ + - Load the appropriate checklist from {root}/checklists/ - If no checklist specified: - Ask the user which checklist they want to use - Present the available options from the files in the checklists folder diff --git a/dist/teams/team-no-ui.txt b/dist/teams/team-no-ui.txt index 573506d6..f9e71cd0 100644 --- a/dist/teams/team-no-ui.txt +++ b/dist/teams/team-no-ui.txt @@ -560,9 +560,9 @@ Confirm with the user their preferred interaction style: ### 3. Execute Template -- Load specified template from `templates#*` or the /templates directory +- Load specified template from `templates#*` or the ../templates directory - Follow ALL embedded LLM instructions within the template -- Process template markup according to `utils#template-format` conventions +- Process template markup according to `utils#template-format` or `../utils/template-format` conventions ### 4. Template Processing Rules @@ -1429,227 +1429,73 @@ Use the **expansion-creator** pack to build your own: ==================== START: utils#workflow-management ==================== # Workflow Management -This utility enables the BMAD orchestrator to manage and execute team workflows. +Enables BMAD orchestrator to manage and execute team workflows. -## Important: Dynamic Workflow Loading +## Dynamic Workflow Loading -The BMAD orchestrator MUST read the available workflows from the current team configuration's `workflows` field. Do not use hardcoded workflow lists. Each team bundle defines its own set of supported workflows based on the agents it includes. +Read available workflows from current team configuration's `workflows` field. Each team bundle defines its own supported workflows. -**Critical Distinction**: +**Key Commands**: -- When asked "what workflows are available?", show ONLY the workflows defined in the current team bundle's configuration -- Use `/agent-list` to show agents in the current bundle -- Use `/workflows` to show workflows in the current bundle, NOT any creation tasks - -### Workflow Descriptions - -When displaying workflows, use these descriptions based on the workflow ID: - -- **greenfield-fullstack**: Build a new full-stack application from concept to development -- **brownfield-fullstack**: Enhance an existing full-stack application with new features -- **greenfield-service**: Build a new backend service or API from concept to development -- **brownfield-service**: Enhance an existing backend service or API -- **greenfield-ui**: Build a new frontend/UI application from concept to development -- **brownfield-ui**: Enhance an existing frontend/UI application +- `/workflows` - List workflows in current bundle or workflows folder +- `/agent-list` - Show agents in current bundle ## Workflow Commands ### /workflows -Lists all available workflows for the current team. The available workflows are determined by the team configuration and may include workflows such as: - -- greenfield-fullstack -- brownfield-fullstack -- greenfield-service -- brownfield-service -- greenfield-ui -- brownfield-ui - -The actual list depends on which team bundle is loaded. When responding to this command, display the workflows that are configured in the current team's `workflows` field. - -Example response format: - -```text -Available workflows for [Team Name]: -1. [workflow-id] - [Brief description based on workflow type] -2. [workflow-id] - [Brief description based on workflow type] -[... etc. ...] - -Use /workflow-start {number or id} to begin a workflow. -``` +Lists available workflows with titles and descriptions. ### /workflow-start {workflow-id} -Starts a specific workflow and transitions to the first agent. - -Example: `/workflow-start greenfield-fullstack` +Starts workflow and transitions to first agent. ### /workflow-status -Shows current workflow progress, completed artifacts, and next steps. - -Example response: - -```text -Current Workflow: Greenfield Full-Stack Development -Stage: Product Planning (2 of 6) -Completed: - ✓ Discovery & Requirements - - project-brief (completed by Mary) - -In Progress: - ⚡ Product Planning - - Create PRD (John) - awaiting input - -Next: Technical Architecture -``` +Shows current progress, completed artifacts, and next steps. ### /workflow-resume -Resumes a workflow from where it left off, useful when starting a new chat. - -User can provide completed artifacts: - -```text -User: /workflow-resume greenfield-fullstack - I have completed: project-brief, PRD -BMad: I see you've completed Discovery and part of Product Planning. - Based on the greenfield-fullstack workflow, the next step is: - - UX Strategy with Sally (ux-expert) - - Would you like me to load Sally to continue? -``` +Resumes workflow from last position. User can provide completed artifacts. ### /workflow-next -Shows the next recommended agent and action in the current workflow. +Shows next recommended agent and action. -## Workflow Execution Flow +## Execution Flow -### 1. Starting a Workflow +1. **Starting**: Load definition → Identify first stage → Transition to agent → Guide artifact creation -When a workflow is started: +2. **Stage Transitions**: Mark complete → Check conditions → Load next agent → Pass artifacts -1. Load the workflow definition -2. Identify the first stage and step -3. Transition to the required agent -4. Provide context about expected inputs/outputs -5. Guide artifact creation +3. **Artifact Tracking**: Track status, creator, timestamps in workflow_state -### 2. Stage Transitions +4. **Interruption Handling**: Analyze provided artifacts → Determine position → Suggest next step -After each artifact is completed: +## Context Passing -1. Mark the step as complete -2. Check transition conditions -3. If stage is complete, move to next stage -4. Load the appropriate agent -5. Pass relevant artifacts as context +When transitioning, pass: -### 3. Artifact Tracking - -Track all created artifacts: - -```yaml -workflow_state: - current_workflow: greenfield-fullstack - current_stage: planning - current_step: 2 - artifacts: - project-brief: - status: completed - created_by: analyst - timestamp: 2024-01-15T10:30:00.000Z - prd: - status: in-progress - created_by: pm - started: 2024-01-15T11:00:00.000Z -``` - -### 4. Workflow Interruption Handling - -When user returns after interruption: - -1. Ask if continuing previous workflow -2. Request any completed artifacts -3. Analyze provided artifacts -4. Determine workflow position -5. Suggest next appropriate step - -Example: - -```text -User: I'm working on a new app. Here's my PRD and architecture doc. -BMad: I see you have a PRD and architecture document. Based on these artifacts, - it looks like you're following the greenfield-fullstack workflow and have completed - stages 1-3. The next recommended step would be: - - Stage 4: Validation & Refinement - - Load Sarah (Product Owner) to validate all artifacts - - Would you like to continue with this workflow? -``` - -## Workflow Context Passing - -When transitioning between agents, pass: - -1. Previous artifacts created -2. Current workflow stage -3. Expected outputs -4. Any decisions or constraints identified - -Example transition: - -```text -BMad: Great! John has completed the PRD. According to the greenfield-fullstack workflow, - the next step is UX Strategy with Sally. - - /ux-expert - -Sally: I see we're in the Product Planning stage of the greenfield-fullstack workflow. - I have access to: - - Project Brief from Mary - - PRD from John - - Let's create the UX strategy and UI specifications. First, let me review - the PRD to understand the features we're designing for... -``` +- Previous artifacts +- Current workflow stage +- Expected outputs +- Decisions/constraints ## Multi-Path Workflows -Some workflows may have multiple paths: +Handle conditional paths by asking clarifying questions when needed. -```yaml -conditional_paths: - - condition: project_type == 'mobile' - next_stage: mobile-specific-design - - condition: project_type == 'web' - next_stage: web-architecture - - default: fullstack-architecture -``` +## Best Practices -Handle these by asking clarifying questions when needed. +1. Show progress +2. Explain transitions +3. Preserve context +4. Allow flexibility +5. Track state -## Workflow Best Practices +## Agent Integration -1. **Always show progress** - Users should know where they are -2. **Explain transitions** - Why moving to next agent -3. **Preserve context** - Pass relevant information forward -4. **Allow flexibility** - Users can skip or modify steps -5. **Track everything** - Maintain complete workflow state - -## Integration with Agents - -Each agent should be workflow-aware: - -- Know which workflow is active -- Understand their role in the workflow -- Access previous artifacts -- Know expected outputs -- Guide toward workflow goals - -This creates a seamless experience where the entire team works together toward the workflow's objectives. +Agents should be workflow-aware: know active workflow, their role, access artifacts, understand expected outputs. ==================== END: utils#workflow-management ==================== ==================== START: utils#template-format ==================== @@ -3733,13 +3579,9 @@ The story creation is successful when: This task provides instructions for validating documentation against checklists. The agent MUST follow these instructions to ensure thorough and systematic validation of documents. -## Context - -The BMAD Method uses various checklists to ensure quality and completeness of different artifacts. Each checklist contains embedded prompts and instructions to guide the LLM through thorough validation and advanced elicitation. The checklists automatically identify their required artifacts and guide the validation process. - ## Available Checklists -If the user asks or does not specify a specific checklist, list the checklists available to the agent persona. If the task is being run not with a specific agent, tell the user to check the bmad-core/checklists folder to select the appropriate one to run. +If the user asks or does not specify a specific checklist, list the checklists available to the agent persona. If the task is being run not with a specific agent, tell the user to check the {root}/checklists folder to select the appropriate one to run. ## Instructions @@ -3748,7 +3590,7 @@ If the user asks or does not specify a specific checklist, list the checklists a - If user or the task being run provides a checklist name: - Try fuzzy matching (e.g. "architecture checklist" -> "architect-checklist") - If multiple matches found, ask user to clarify - - Load the appropriate checklist from bmad-core/checklists/ + - Load the appropriate checklist from {root}/checklists/ - If no checklist specified: - Ask the user which checklist they want to use - Present the available options from the files in the checklists folder diff --git a/expansion-packs/bmad-infrastructure-devops/tasks/create-doc.md b/expansion-packs/bmad-infrastructure-devops/tasks/create-doc.md deleted file mode 100644 index cab98306..00000000 --- a/expansion-packs/bmad-infrastructure-devops/tasks/create-doc.md +++ /dev/null @@ -1,74 +0,0 @@ -# Create Document from Template Task - -## Purpose - -- Generate documents from any specified template following embedded instructions from the perspective of the selected agent persona - -## Instructions - -### 1. Identify Template and Context - -- Determine which template to use (user-provided or list available for selection to user) - - - Agent-specific templates are listed in the agent's dependencies under `templates`. For each template listed, consider it a document the agent can create. So if an agent has: - - @{example} - dependencies: - templates: - prd-tmpl - architecture-tmpl - @{/example} - - You would offer to create "PRD" and "Architecture" documents when the user asks what you can help with. - -- Gather all relevant inputs, or ask for them, or else rely on user providing necessary details to complete the document -- Understand the document purpose and target audience - -### 2. Determine Interaction Mode - -Confirm with the user their preferred interaction style: - -- **Incremental:** Work through chunks of the document. -- **YOLO Mode:** Draft complete document making reasonable assumptions in one shot. (Can be entered also after starting incremental by just typing /yolo) - -### 3. Execute Template - -- Load specified template from `templates#*` or the /templates directory -- Follow ALL embedded LLM instructions within the template -- Process template markup according to `utils#template-format` conventions - -### 4. Template Processing Rules - -#### CRITICAL: Never display template markup, LLM instructions, or examples to users - -- Replace all {{placeholders}} with actual content -- Execute all [[LLM: instructions]] internally -- Process `<>` sections as needed -- Evaluate ^^CONDITION^^ blocks and include only if applicable -- Use @{examples} for guidance but never output them - -### 5. Content Generation - -- **Incremental Mode**: Present each major section for review before proceeding -- **YOLO Mode**: Generate all sections, then review complete document with user -- Apply any elicitation protocols specified in template -- Incorporate user feedback and iterate as needed - -### 6. Validation - -If template specifies a checklist: - -- Run the appropriate checklist against completed document -- Document completion status for each item -- Address any deficiencies found -- Present validation summary to user - -### 7. Final Presentation - -- Present clean, formatted content only -- Ensure all sections are complete -- DO NOT truncate or summarize content -- Begin directly with document content (no preamble) -- Include any handoff prompts specified in template - -## Important Notes - -- Template markup is for AI processing only - never expose to users diff --git a/expansion-packs/expansion-creator/common-tasks/create-doc.md b/expansion-packs/expansion-creator/common-tasks/create-doc.md deleted file mode 100644 index cab98306..00000000 --- a/expansion-packs/expansion-creator/common-tasks/create-doc.md +++ /dev/null @@ -1,74 +0,0 @@ -# Create Document from Template Task - -## Purpose - -- Generate documents from any specified template following embedded instructions from the perspective of the selected agent persona - -## Instructions - -### 1. Identify Template and Context - -- Determine which template to use (user-provided or list available for selection to user) - - - Agent-specific templates are listed in the agent's dependencies under `templates`. For each template listed, consider it a document the agent can create. So if an agent has: - - @{example} - dependencies: - templates: - prd-tmpl - architecture-tmpl - @{/example} - - You would offer to create "PRD" and "Architecture" documents when the user asks what you can help with. - -- Gather all relevant inputs, or ask for them, or else rely on user providing necessary details to complete the document -- Understand the document purpose and target audience - -### 2. Determine Interaction Mode - -Confirm with the user their preferred interaction style: - -- **Incremental:** Work through chunks of the document. -- **YOLO Mode:** Draft complete document making reasonable assumptions in one shot. (Can be entered also after starting incremental by just typing /yolo) - -### 3. Execute Template - -- Load specified template from `templates#*` or the /templates directory -- Follow ALL embedded LLM instructions within the template -- Process template markup according to `utils#template-format` conventions - -### 4. Template Processing Rules - -#### CRITICAL: Never display template markup, LLM instructions, or examples to users - -- Replace all {{placeholders}} with actual content -- Execute all [[LLM: instructions]] internally -- Process `<>` sections as needed -- Evaluate ^^CONDITION^^ blocks and include only if applicable -- Use @{examples} for guidance but never output them - -### 5. Content Generation - -- **Incremental Mode**: Present each major section for review before proceeding -- **YOLO Mode**: Generate all sections, then review complete document with user -- Apply any elicitation protocols specified in template -- Incorporate user feedback and iterate as needed - -### 6. Validation - -If template specifies a checklist: - -- Run the appropriate checklist against completed document -- Document completion status for each item -- Address any deficiencies found -- Present validation summary to user - -### 7. Final Presentation - -- Present clean, formatted content only -- Ensure all sections are complete -- DO NOT truncate or summarize content -- Begin directly with document content (no preamble) -- Include any handoff prompts specified in template - -## Important Notes - -- Template markup is for AI processing only - never expose to users diff --git a/expansion-packs/expansion-creator/tasks/generate-expansion-pack.md b/expansion-packs/expansion-creator/tasks/generate-expansion-pack.md index 9ce4b09c..163d15dd 100644 --- a/expansion-packs/expansion-creator/tasks/generate-expansion-pack.md +++ b/expansion-packs/expansion-creator/tasks/generate-expansion-pack.md @@ -436,17 +436,17 @@ IMPORTANT: Work through plan.md checklist systematically! **Step 2: Copy Core Utilities** -Before proceeding, copy these essential files from bmad-core: +Before proceeding, copy these essential files from common: ```bash # Copy core task utilities -cp bmad-core/tasks/create-doc.md expansion-packs/{pack-name}/tasks/ -cp bmad-core/tasks/execute-checklist.md expansion-packs/{pack-name}/tasks/ +cp common/tasks/create-doc.md expansion-packs/{pack-name}/tasks/ +cp common/tasks/execute-checklist.md expansion-packs/{pack-name}/tasks/ # Copy core utility files mkdir -p expansion-packs/{pack-name}/utils -cp bmad-core/utils/template-format.md expansion-packs/{pack-name}/utils/ -cp bmad-core/utils/workflow-management.md expansion-packs/{pack-name}/utils/ +cp common/utils/template-format.md expansion-packs/{pack-name}/utils/ +cp common/utils/workflow-management.md expansion-packs/{pack-name}/utils/ ``` **Step 3: Technical Implementation** diff --git a/expansion-packs/expansion-creator/utils/template-format.md b/expansion-packs/expansion-creator/utils/template-format.md deleted file mode 100644 index 95ff42c0..00000000 --- a/expansion-packs/expansion-creator/utils/template-format.md +++ /dev/null @@ -1,26 +0,0 @@ -# Template Format Conventions - -Templates in the BMAD method use standardized markup for AI processing. These conventions ensure consistent document generation. - -## Template Markup Elements - -- **{{placeholders}}**: Variables to be replaced with actual content -- **[[LLM: instructions]]**: Internal processing instructions for AI agents (never shown to users) -- **REPEAT** sections: Content blocks that may be repeated as needed -- **^^CONDITION^^** blocks: Conditional content included only if criteria are met -- **@{examples}**: Example content for guidance (never output to users) - -## Processing Rules - -- Replace all {{placeholders}} with project-specific content -- Execute all [[LLM: instructions]] internally without showing users -- Process conditional and repeat blocks as specified -- Use examples for guidance but never include them in final output -- Present only clean, formatted content to users - -## Critical Guidelines - -- **NEVER display template markup, LLM instructions, or examples to users** -- Template elements are for AI processing only -- Focus on faithful template execution and clean output -- All template-specific instructions are embedded within templates diff --git a/expansion-packs/expansion-creator/utils/workflow-management.md b/expansion-packs/expansion-creator/utils/workflow-management.md deleted file mode 100644 index c728e878..00000000 --- a/expansion-packs/expansion-creator/utils/workflow-management.md +++ /dev/null @@ -1,223 +0,0 @@ -# Workflow Management - -This utility enables the BMAD orchestrator to manage and execute team workflows. - -## Important: Dynamic Workflow Loading - -The BMAD orchestrator MUST read the available workflows from the current team configuration's `workflows` field. Do not use hardcoded workflow lists. Each team bundle defines its own set of supported workflows based on the agents it includes. - -**Critical Distinction**: - -- When asked "what workflows are available?", show ONLY the workflows defined in the current team bundle's configuration -- Use `/agent-list` to show agents in the current bundle -- Use `/workflows` to show workflows in the current bundle, NOT any creation tasks - -### Workflow Descriptions - -When displaying workflows, use these descriptions based on the workflow ID: - -- **greenfield-fullstack**: Build a new full-stack application from concept to development -- **brownfield-fullstack**: Enhance an existing full-stack application with new features -- **greenfield-service**: Build a new backend service or API from concept to development -- **brownfield-service**: Enhance an existing backend service or API -- **greenfield-ui**: Build a new frontend/UI application from concept to development -- **brownfield-ui**: Enhance an existing frontend/UI application - -## Workflow Commands - -### /workflows - -Lists all available workflows for the current team. The available workflows are determined by the team configuration and may include workflows such as: - -- greenfield-fullstack -- brownfield-fullstack -- greenfield-service -- brownfield-service -- greenfield-ui -- brownfield-ui - -The actual list depends on which team bundle is loaded. When responding to this command, display the workflows that are configured in the current team's `workflows` field. - -Example response format: - -```text -Available workflows for [Team Name]: -1. [workflow-id] - [Brief description based on workflow type] -2. [workflow-id] - [Brief description based on workflow type] -[... etc. ...] - -Use /workflow-start {number or id} to begin a workflow. -``` - -### /workflow-start {workflow-id} - -Starts a specific workflow and transitions to the first agent. - -Example: `/workflow-start greenfield-fullstack` - -### /workflow-status - -Shows current workflow progress, completed artifacts, and next steps. - -Example response: - -```text -Current Workflow: Greenfield Full-Stack Development -Stage: Product Planning (2 of 6) -Completed: - ✓ Discovery & Requirements - - project-brief (completed by Mary) - -In Progress: - ⚡ Product Planning - - Create PRD (John) - awaiting input - -Next: Technical Architecture -``` - -### /workflow-resume - -Resumes a workflow from where it left off, useful when starting a new chat. - -User can provide completed artifacts: - -```text -User: /workflow-resume greenfield-fullstack - I have completed: project-brief, PRD -BMad: I see you've completed Discovery and part of Product Planning. - Based on the greenfield-fullstack workflow, the next step is: - - UX Strategy with Sally (ux-expert) - - Would you like me to load Sally to continue? -``` - -### /workflow-next - -Shows the next recommended agent and action in the current workflow. - -## Workflow Execution Flow - -### 1. Starting a Workflow - -When a workflow is started: - -1. Load the workflow definition -2. Identify the first stage and step -3. Transition to the required agent -4. Provide context about expected inputs/outputs -5. Guide artifact creation - -### 2. Stage Transitions - -After each artifact is completed: - -1. Mark the step as complete -2. Check transition conditions -3. If stage is complete, move to next stage -4. Load the appropriate agent -5. Pass relevant artifacts as context - -### 3. Artifact Tracking - -Track all created artifacts: - -```yaml -workflow_state: - current_workflow: greenfield-fullstack - current_stage: planning - current_step: 2 - artifacts: - project-brief: - status: completed - created_by: analyst - timestamp: 2024-01-15T10:30:00.000Z - prd: - status: in-progress - created_by: pm - started: 2024-01-15T11:00:00.000Z -``` - -### 4. Workflow Interruption Handling - -When user returns after interruption: - -1. Ask if continuing previous workflow -2. Request any completed artifacts -3. Analyze provided artifacts -4. Determine workflow position -5. Suggest next appropriate step - -Example: - -```text -User: I'm working on a new app. Here's my PRD and architecture doc. -BMad: I see you have a PRD and architecture document. Based on these artifacts, - it looks like you're following the greenfield-fullstack workflow and have completed - stages 1-3. The next recommended step would be: - - Stage 4: Validation & Refinement - - Load Sarah (Product Owner) to validate all artifacts - - Would you like to continue with this workflow? -``` - -## Workflow Context Passing - -When transitioning between agents, pass: - -1. Previous artifacts created -2. Current workflow stage -3. Expected outputs -4. Any decisions or constraints identified - -Example transition: - -```text -BMad: Great! John has completed the PRD. According to the greenfield-fullstack workflow, - the next step is UX Strategy with Sally. - - /ux-expert - -Sally: I see we're in the Product Planning stage of the greenfield-fullstack workflow. - I have access to: - - Project Brief from Mary - - PRD from John - - Let's create the UX strategy and UI specifications. First, let me review - the PRD to understand the features we're designing for... -``` - -## Multi-Path Workflows - -Some workflows may have multiple paths: - -```yaml -conditional_paths: - - condition: project_type == 'mobile' - next_stage: mobile-specific-design - - condition: project_type == 'web' - next_stage: web-architecture - - default: fullstack-architecture -``` - -Handle these by asking clarifying questions when needed. - -## Workflow Best Practices - -1. **Always show progress** - Users should know where they are -2. **Explain transitions** - Why moving to next agent -3. **Preserve context** - Pass relevant information forward -4. **Allow flexibility** - Users can skip or modify steps -5. **Track everything** - Maintain complete workflow state - -## Integration with Agents - -Each agent should be workflow-aware: - -- Know which workflow is active -- Understand their role in the workflow -- Access previous artifacts -- Know expected outputs -- Guide toward workflow goals - -This creates a seamless experience where the entire team works together toward the workflow's objectives. diff --git a/tools/builders/web-builder.js b/tools/builders/web-builder.js index 6f5bfa6d..8f33b982 100644 --- a/tools/builders/web-builder.js +++ b/tools/builders/web-builder.js @@ -9,8 +9,8 @@ class WebBuilder { this.resolver = new DependencyResolver(this.rootDir); this.templatePath = path.join( this.rootDir, - "bmad-core", - "utils", + "tools", + "md-assets", "web-agent-startup-instructions.md" ); } @@ -117,35 +117,39 @@ class WebBuilder { const yamlContent = yamlMatch[1]; const yamlStartIndex = content.indexOf(yamlMatch[0]); const yamlEndIndex = yamlStartIndex + yamlMatch[0].length; - + // Parse YAML and remove root and IDE-FILE-RESOLUTION properties try { const yaml = require("js-yaml"); const parsed = yaml.load(yamlContent); - + // Remove the properties if they exist at root level delete parsed.root; - delete parsed['IDE-FILE-RESOLUTION']; - delete parsed['REQUEST-RESOLUTION']; - + delete parsed["IDE-FILE-RESOLUTION"]; + delete parsed["REQUEST-RESOLUTION"]; + // Also remove from activation-instructions if they exist - if (parsed['activation-instructions'] && Array.isArray(parsed['activation-instructions'])) { - parsed['activation-instructions'] = parsed['activation-instructions'].filter(instruction => { - return !instruction.startsWith('IDE-FILE-RESOLUTION:') && - !instruction.startsWith('REQUEST-RESOLUTION:'); - }); + if (parsed["activation-instructions"] && Array.isArray(parsed["activation-instructions"])) { + parsed["activation-instructions"] = parsed["activation-instructions"].filter( + (instruction) => { + return ( + !instruction.startsWith("IDE-FILE-RESOLUTION:") && + !instruction.startsWith("REQUEST-RESOLUTION:") + ); + } + ); } - + // Reconstruct the YAML const cleanedYaml = yaml.dump(parsed, { lineWidth: -1 }); - + // Get the agent name from the YAML for the header - const agentName = parsed.agent?.id || 'agent'; - + const agentName = parsed.agent?.id || "agent"; + // Build the new content with just the agent header and YAML const newHeader = `# ${agentName}\n\nCRITICAL: 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`; const afterYaml = content.substring(yamlEndIndex); - + return newHeader + "```yaml\n" + cleanedYaml.trim() + "\n```" + afterYaml; } catch (error) { console.warn("Failed to process agent YAML:", error.message); @@ -156,12 +160,12 @@ class WebBuilder { formatSection(path, content) { const separator = "===================="; - + // Process agent content if this is an agent file if (path.startsWith("agents#")) { content = this.processAgentContent(content); } - + return [ `${separator} START: ${path} ${separator}`, content.trim(), @@ -341,6 +345,28 @@ class WebBuilder { } } + // If not found in core, try common folder + if (!found) { + for (const ext of extensions) { + const commonPath = path.join( + this.rootDir, + "common", + resourceType, + `${resourceName}${ext}` + ); + try { + const commonContent = await fs.readFile(commonPath, "utf8"); + sections.push( + this.formatSection(`${resourceType}#${resourceName}`, commonContent) + ); + found = true; + break; + } catch (error) { + // Not in common either, continue + } + } + } + if (!found) { console.warn( ` ⚠ Dependency ${resourceType}#${resourceName} not found in expansion pack or core` @@ -516,6 +542,21 @@ class WebBuilder { } } + // If not found in core, try common folder + if (!found) { + for (const ext of extensions) { + const commonPath = path.join(this.rootDir, "common", dep.type, `${dep.name}${ext}`); + try { + const content = await fs.readFile(commonPath, "utf8"); + sections.push(this.formatSection(key, content)); + found = true; + break; + } catch (error) { + // Not in common either, continue + } + } + } + if (!found) { console.warn(` ⚠ Dependency ${key} not found in expansion pack or core`); } diff --git a/tools/installer/config/install.config.yml b/tools/installer/config/install.config.yml index 2c34aeb3..0f790349 100644 --- a/tools/installer/config/install.config.yml +++ b/tools/installer/config/install.config.yml @@ -12,8 +12,8 @@ agent-dependencies: core-files: - bmad-core/utils/template-format.md dev: - - bmad-core/templates/story-tmpl.md - - bmad-core/checklists/story-dod-checklist.md + - common/templates/story-tmpl.md + - common/checklists/story-dod-checklist.md pm: - bmad-core/templates/prd-tmpl.md - bmad-core/templates/brownfield-prd-tmpl.md diff --git a/tools/installer/lib/file-manager.js b/tools/installer/lib/file-manager.js index 69b017c4..00ab2d39 100644 --- a/tools/installer/lib/file-manager.js +++ b/tools/installer/lib/file-manager.js @@ -90,6 +90,7 @@ class FileManager { agent: config.agent || null, ide_setup: config.ide || null, ides_setup: config.ides || [], + expansion_packs: config.expansionPacks || [], files: [], }; diff --git a/tools/installer/lib/installer.js b/tools/installer/lib/installer.js index 3ea29140..2cd8ec35 100644 --- a/tools/installer/lib/installer.js +++ b/tools/installer/lib/installer.js @@ -225,6 +225,10 @@ class Installer { const sourceDir = configLoader.getBmadCorePath(); const bmadCoreDestDir = path.join(installDir, ".bmad-core"); await fileManager.copyDirectory(sourceDir, bmadCoreDestDir); + + // Copy common/ items to .bmad-core + spinner.text = "Copying common utilities..."; + await this.copyCommonItems(installDir, ".bmad-core", spinner); // Get list of all files for manifest const glob = require("glob"); @@ -283,6 +287,11 @@ class Installer { } } } + + // Copy common/ items to .bmad-core + spinner.text = "Copying common utilities..."; + const commonFiles = await this.copyCommonItems(installDir, ".bmad-core", spinner); + files.push(...commonFiles); } else if (config.installType === "team") { // Team installation spinner.text = `Installing ${config.team} team...`; @@ -313,6 +322,11 @@ class Installer { } } } + + // Copy common/ items to .bmad-core + spinner.text = "Copying common utilities..."; + const commonFiles = await this.copyCommonItems(installDir, ".bmad-core", spinner); + files.push(...commonFiles); } else if (config.installType === "expansion-only") { // Expansion-only installation - create minimal .bmad-core structure spinner.text = "Creating minimal .bmad-core structure for expansion packs..."; @@ -341,6 +355,10 @@ class Installer { ); files.push(...copiedFiles.map(f => `.bmad-core/${f}`)); } + + // Copy common/ items to .bmad-core + spinner.text = "Copying common utilities..."; + await this.copyCommonItems(installDir, ".bmad-core", spinner); } // Install expansion packs if requested @@ -607,8 +625,10 @@ class Installer { console.log(chalk.green("✓ .bmad-core framework installed with all agents and workflows")); if (config.expansionPacks && config.expansionPacks.length > 0) { - const packNames = config.expansionPacks.join(", "); - console.log(chalk.green(`✓ Expansion packs installed: ${packNames}`)); + console.log(chalk.green(`✓ Expansion packs installed:`)); + for (const packId of config.expansionPacks) { + console.log(chalk.green(` - ${packId} → .${packId}/`)); + } } if (config.includeWebBundles && config.webBundlesDirectory) { @@ -799,7 +819,11 @@ class Installer { const expansionPackDir = path.dirname(pack.manifestPath); - // Define the folders to copy from expansion packs to .bmad-core + // Create dedicated dot folder for this expansion pack + const expansionDotFolder = path.join(installDir, `.${packId}`); + await fileManager.ensureDirectory(expansionDotFolder); + + // Define the folders to copy from expansion packs const foldersToSync = [ 'agents', 'agent-teams', @@ -824,21 +848,32 @@ class Installer { nodir: true }); - // Copy each file to the destination + // Copy each file to the expansion pack's dot folder for (const file of files) { const sourcePath = path.join(sourceFolder, file); - const destPath = path.join(installDir, '.bmad-core', folder, file); + const destPath = path.join(expansionDotFolder, folder, file); if (await fileManager.copyFile(sourcePath, destPath)) { - installedFiles.push(path.join('.bmad-core', folder, file)); + installedFiles.push(path.join(`.${packId}`, folder, file)); } } } } - // Web bundles are now available in the dist/ directory and don't need to be copied + // Copy manifest to the expansion pack's dot folder + const manifestDestPath = path.join(expansionDotFolder, 'manifest.yml'); + if (await fileManager.copyFile(pack.manifestPath, manifestDestPath)) { + installedFiles.push(path.join(`.${packId}`, 'manifest.yml')); + } - console.log(chalk.green(`✓ Installed expansion pack: ${pack.name}`)); + // Copy common/ items to expansion pack folder + spinner.text = `Copying common utilities to ${packId}...`; + await this.copyCommonItems(installDir, `.${packId}`, spinner); + + // Check and resolve core dependencies + await this.resolveExpansionPackCoreDependencies(installDir, expansionDotFolder, packId, spinner); + + console.log(chalk.green(`✓ Installed expansion pack: ${pack.name} to ${`.${packId}`}`)); } catch (error) { console.error(chalk.red(`Failed to install expansion pack ${packId}: ${error.message}`)); } @@ -847,6 +882,61 @@ class Installer { return installedFiles; } + async resolveExpansionPackCoreDependencies(installDir, expansionDotFolder, packId, spinner) { + const glob = require('glob'); + const yaml = require('yaml'); + const fs = require('fs').promises; + + // Find all agent files in the expansion pack + const agentFiles = glob.sync('agents/*.md', { + cwd: expansionDotFolder + }); + + for (const agentFile of agentFiles) { + const agentPath = path.join(expansionDotFolder, agentFile); + const agentContent = await fs.readFile(agentPath, 'utf8'); + + // Extract YAML frontmatter to check dependencies + const yamlMatch = agentContent.match(/```yaml\n([\s\S]*?)```/); + if (yamlMatch) { + try { + const agentConfig = yaml.parse(yamlMatch[1]); + const dependencies = agentConfig.dependencies || {}; + + // Check for core dependencies (those that don't exist in the expansion pack) + for (const depType of ['tasks', 'templates', 'checklists', 'workflows', 'utils', 'data']) { + const deps = dependencies[depType] || []; + + for (const dep of deps) { + const depFileName = dep.endsWith('.md') ? dep : `${dep}.md`; + const expansionDepPath = path.join(expansionDotFolder, depType, depFileName); + + // Check if dependency exists in expansion pack + if (!(await fileManager.pathExists(expansionDepPath))) { + // Try to find it in core + const coreDepPath = path.join(configLoader.getBmadCorePath(), depType, depFileName); + + if (await fileManager.pathExists(coreDepPath)) { + spinner.text = `Copying core dependency ${dep} for ${packId}...`; + + // Copy from core to expansion pack dot folder + const destPath = path.join(expansionDotFolder, depType, depFileName); + await fileManager.copyFile(coreDepPath, destPath); + + console.log(chalk.dim(` Added core dependency: ${depType}/${depFileName}`)); + } else { + console.warn(chalk.yellow(` Warning: Dependency ${depType}/${dep} not found in core or expansion pack`)); + } + } + } + } + } catch (error) { + console.warn(chalk.yellow(` Warning: Could not parse agent dependencies: ${error.message}`)); + } + } + } + } + getWebBundleInfo(config) { const webBundleType = config.webBundleType || 'all'; @@ -944,6 +1034,48 @@ class Installer { } } + async copyCommonItems(installDir, targetSubdir, spinner) { + const glob = require('glob'); + const fs = require('fs').promises; + const sourceBase = path.dirname(path.dirname(path.dirname(path.dirname(__filename)))); // Go up to project root + const commonPath = path.join(sourceBase, 'common'); + const targetPath = path.join(installDir, targetSubdir); + const copiedFiles = []; + + // Check if common/ exists + if (!(await fileManager.pathExists(commonPath))) { + console.warn(chalk.yellow('Warning: common/ folder not found')); + return copiedFiles; + } + + // Copy all items from common/ to target + const commonItems = glob.sync('**/*', { + cwd: commonPath, + nodir: true + }); + + for (const item of commonItems) { + const sourcePath = path.join(commonPath, item); + const destPath = path.join(targetPath, item); + + // Read the file content + const content = await fs.readFile(sourcePath, 'utf8'); + + // Replace {root} with the target subdirectory + const updatedContent = content.replace(/\{root\}/g, targetSubdir); + + // Ensure directory exists + await fileManager.ensureDirectory(path.dirname(destPath)); + + // Write the updated content + await fs.writeFile(destPath, updatedContent, 'utf8'); + copiedFiles.push(path.join(targetSubdir, item)); + } + + console.log(chalk.dim(` Added ${commonItems.length} common utilities`)); + return copiedFiles; + } + async findInstallation() { // Look for .bmad-core in current directory or parent directories let currentDir = process.cwd(); diff --git a/tools/lib/dependency-resolver.js b/tools/lib/dependency-resolver.js index 9596fc66..09991810 100644 --- a/tools/lib/dependency-resolver.js +++ b/tools/lib/dependency-resolver.js @@ -6,6 +6,7 @@ class DependencyResolver { constructor(rootDir) { this.rootDir = rootDir; this.bmadCore = path.join(rootDir, 'bmad-core'); + this.common = path.join(rootDir, 'common'); this.cache = new Map(); } @@ -123,6 +124,7 @@ class DependencyResolver { let content = null; let filePath = null; + // First try bmad-core for (const ext of extensions) { try { filePath = path.join(this.bmadCore, type, `${id}${ext}`); @@ -132,6 +134,19 @@ class DependencyResolver { // Try next extension } } + + // If not found in bmad-core, try common folder + if (!content) { + for (const ext of extensions) { + try { + filePath = path.join(this.common, type, `${id}${ext}`); + content = await fs.readFile(filePath, 'utf8'); + break; + } catch (e) { + // Try next extension + } + } + } if (!content) { console.warn(`Resource not found: ${type}/${id}`); diff --git a/bmad-core/utils/web-agent-startup-instructions.md b/tools/md-assets/web-agent-startup-instructions.md similarity index 100% rename from bmad-core/utils/web-agent-startup-instructions.md rename to tools/md-assets/web-agent-startup-instructions.md