add the phase four items to the workflow csv for bmm. compile all csv to a install file. improve the bmad-help to know how to work with the csv that contains the workflows from all installed modules
This commit is contained in:
parent
ec8ab0c638
commit
c9c3d31d3a
|
|
@ -0,0 +1,29 @@
|
|||
module,phase,name,code,sequence,workflow-file,command,required,agent,options,description,output-location,outputs,
|
||||
bmm,anytime,Document Project,DP,10,_bmad/bmm/workflows/document-project/workflow.yaml,bmad:bmm:document-project,false,analyst,Create Mode,"Analyze an existing project to produce useful documentation",project-knowledge,*,
|
||||
bmm,anytime,Tech Spec,TS,20,_bmad/bmm/workflows/bmad-quick-flow/quick-spec/workflow.md,bmad:bmm:tech-spec,false,quick-flow-solo-dev,Create Mode,"Quick one-off tasks small changes simple apps utilities without extensive planning",planning_artifacts,"tech spec",
|
||||
bmm,anytime,Quick Dev,QD,30,_bmad/bmm/workflows/bmad-quick-flow/quick-dev/workflow.md,bmad:bmm:quick-dev,false,quick-flow-solo-dev,Create Mode,"Quick one-off tasks small changes simple apps utilities without extensive planning",,,
|
||||
bmm,anytime,Correct Course,CC,40,_bmad/bmm/workflows/4-implementation/correct-course/workflow.yaml,bmad:bmm:correct-course,false,sm,Create Mode,"Anytime: Navigate significant changes. May recommend start over update PRD redo architecture sprint planning or correct epics and stories",planning_artifacts,"change proposal",
|
||||
bmm,1-analysis,Brainstorm Project,BP,10,_bmad/core/workflows/brainstorming/workflow.md,bmad:bmm:brainstorming,false,analyst,"data=_bmad/bmm/data/project-context-template.md","Expert Guided Facilitation through a single or multiple techniques",planning_artifacts,"brainstorming session",
|
||||
bmm,1-analysis,Market Research,MR,20,_bmad/bmm/workflows/1-analysis/research/workflow.md,bmad:bmm:research,false,analyst,Create Mode,"research_type=""market""","Market analysis competitive landscape customer needs and trends","planning_artifacts|project-knowledge","research documents"
|
||||
bmm,1-analysis,Domain Research,DR,21,_bmad/bmm/workflows/1-analysis/research/workflow.md,bmad:bmm:research,false,analyst,Create Mode,"research_type=""domain""","Industry domain deep dive subject matter expertise and terminology","planning_artifacts|project-knowledge","research documents"
|
||||
bmm,1-analysis,Technical Research,TR,22,_bmad/bmm/workflows/1-analysis/research/workflow.md,bmad:bmm:research,false,analyst,Create Mode,"research_type=""technical""","Technical feasibility architecture options and implementation approaches","planning_artifacts|project-knowledge","research documents"
|
||||
bmm,1-analysis,Create Brief,CB,30,_bmad/bmm/workflows/1-analysis/create-product-brief/workflow.md,bmad:bmm:create-brief,false,analyst,Create Mode,"A guided experience to nail down your product idea",planning_artifacts,"product brief",
|
||||
bmm,1-analysis,Validate Brief,VB,40,_bmad/bmm/workflows/1-analysis/create-product-brief/workflow.md,bmad:bmm:validate-brief,false,analyst,Validate Mode,"Validates product brief completeness",planning_artifacts,"brief validation report",
|
||||
bmm,2-planning,Create PRD,CP,10,_bmad/bmm/workflows/2-plan-workflows/prd/workflow.md,bmad:bmm:create-prd,true,pm,Create Mode,"Expert led facilitation to produce your Product Requirements Document",planning_artifacts,prd,
|
||||
bmm,2-planning,Validate PRD,VP,20,_bmad/bmm/workflows/2-plan-workflows/prd/workflow.md,bmad:bmm:validate-prd,false,pm,Validate Mode,"Validate PRD is comprehensive lean well organized and cohesive",planning_artifacts,"prd validation report",
|
||||
bmm,2-planning,Create UX,CU,30,_bmad/bmm/workflows/2-plan-workflows/create-ux-design/workflow.md,bmad:bmm:create-ux,false,ux-designer,Create Mode,"Guidance through realizing the plan for your UX, strongly recommended if a UI is a primary piece of the proposed project",planning_artifacts,"ux design",
|
||||
bmm,2-planning,Validate UX,VU,40,_bmad/bmm/workflows/2-plan-workflows/create-ux-design/workflow.md,bmad:bmm:validate-ux,false,ux-designer,Validate Mode,"Validates UX design deliverables",planning_artifacts,"ux validation report",
|
||||
bmm,3-solutioning,Create Architecture,CA,10,_bmad/bmm/workflows/3-solutioning/create-architecture/workflow.md,bmad:bmm:create-architecture,true,architect,Create Mode,"Guided Workflow to document technical decisions",planning_artifacts,architecture,
|
||||
bmm,3-solutioning,Validate Architecture,VA,20,_bmad/bmm/workflows/3-solutioning/create-architecture/workflow.md,bmad:bmm:validate-architecture,false,architect,Validate Mode,"Validates architecture completeness",planning_artifacts,"architecture validation report",
|
||||
bmm,3-solutioning,Create Epics and Stories,CE,30,_bmad/bmm/workflows/3-solutioning/create-epics-and-stories/workflow.md,bmad:bmm:create-epics-and-stories,true,pm,Create Mode,"Create the Epics and Stories Listing",planning_artifacts,"epics and stories",
|
||||
bmm,3-solutioning,Validate Epics and Stories,VE,40,_bmad/bmm/workflows/3-solutioning/create-epics-and-stories/workflow.md,bmad:bmm:validate-epics-and-stories,false,pm,Validate Mode,"Validates epics and stories completeness",planning_artifacts,"epics validation report",
|
||||
bmm,3-solutioning,Test Design,TD,50,_bmad/bmm/workflows/testarch/test-design/workflow.yaml,bmad:bmm:test-design,false,tea,Create Mode,"Create comprehensive test scenarios ahead of development, recommended if string test compliance or assurance is needed. Very critical for distributed applications with separate front ends and backends outside of a monorepo.",planning_artifacts,"test design",
|
||||
bmm,3-solutioning,Validate Test Design,VT,60,_bmad/bmm/workflows/testarch/test-design/workflow.yaml,bmad:bmm:validate-test-design,false,tea,Validate Mode,"Validates test design coverage",planning_artifacts,"test design validation report",
|
||||
bmm,3-solutioning,Implementation Readiness,IR,70,_bmad/bmm/workflows/3-solutioning/check-implementation-readiness/workflow.md,bmad:bmm:implementation-readiness,true,architect,Validate Mode,"Ensure PRD UX Architecture and Epics Stories are aligned",planning_artifacts,"readiness report",
|
||||
bmm,4-implementation,Sprint Planning,SP,10,_bmad/bmm/workflows/4-implementation/sprint-planning/workflow.yaml,bmad:bmm:sprint-planning,true,sm,Create Mode,"Generate sprint plan for development tasks - this kicks off the implementation phase by producing a plan the implementation agents will follow in sequence for every story in the plan.",implementation_artifacts,"sprint status",
|
||||
bmm,4-implementation,Sprint Status,SS,20,_bmad/bmm/workflows/4-implementation/sprint-status/workflow.yaml,bmad:bmm:sprint-status,false,sm,Create Mode,"Anytime: Summarize sprint status and route to next workflow",,,
|
||||
bmm,4-implementation,Create Story,CS,30,_bmad/bmm/workflows/4-implementation/create-story/workflow.yaml,bmad:bmm:create-story,true,sm,Create Mode,"Story cycle start: Prepare first found story in the sprint plan that is next, or if the command is run with a specific epic and story designation with context. Once complete, then VS then DS then CR then back to DS if needed or next CS or ER",implementation_artifacts,story,
|
||||
bmm,4-implementation,Validate Story,VS,35,_bmad/bmm/workflows/4-implementation/create-story/workflow.yaml,bmad:bmm:validate-story,false,sm,Validate Mode,"Validates story readiness and completeness before development work begins",implementation_artifacts,"story validation report",
|
||||
bmm,4-implementation,Dev Story,DS,40,_bmad/bmm/workflows/4-implementation/dev-story/workflow.yaml,bmad:bmm:dev-story,true,dev,Create Mode,"Story cycle: Execute story implementation tasks and tests then CR then back to DS if fixes needed",,,
|
||||
bmm,4-implementation,Code Review,CR,50,_bmad/bmm/workflows/4-implementation/code-review/workflow.yaml,bmad:bmm:code-review,false,dev,Create Mode,"Story cycle: If issues back to DS if approved then next CS or ER if epic complete",,,
|
||||
bmm,4-implementation,Retrospective,ER,60,_bmad/bmm/workflows/4-implementation/retrospective/workflow.yaml,bmad:bmm:retrospective,false,sm,Create Mode,"Optional at epic end: Review completed work lessons learned and next epic or if major issues consider CC",implementation_artifacts,retrospective,
|
||||
|
|
|
@ -1,54 +0,0 @@
|
|||
---
|
||||
name: bmad-help
|
||||
description: Get unstuck by showing what workflow steps come next or answering questions about what to do in the BMad Method
|
||||
standalone: true
|
||||
---
|
||||
|
||||
# Task: BMAD Help
|
||||
|
||||
## EXECUTION
|
||||
|
||||
1 Load `./workflows.csv` and `{project-root}/_bmad/_config/agent-manifest.csv`.
|
||||
|
||||
### INPUT Arg handling
|
||||
|
||||
Task input argument may provide:
|
||||
- A workflow **name** just completed (e.g., "validating the UX", "Create PRD", "done with architecture")
|
||||
- A workflow **code** (e.g., "VU", "CP", "CA")
|
||||
- conversational phrase
|
||||
- Nothing - in which case you should infer from #CONTEXT-INFERENCE
|
||||
|
||||
## CONTEXT INFERENCE
|
||||
|
||||
If no explicit workflow row is provided as just completed, check the conversation context:
|
||||
- Did someone recently state they completed something? (e.g., "I'm done with my PRD")
|
||||
- Proceed as if that was the presented arg input
|
||||
- Was a workflow just completed in this conversation?
|
||||
- Proceed as if that was the presented arg input
|
||||
- Do not actually load or read and of these yet to avoid context bloat, but just use file search to see what can be found in {`config:output_folder`}, {`config:planning_artifacts`}, {`config:implementation_artifacts`} or {`config:project_knowledge`} and try to infer from the file names. If a location has an index.md you can read that if needed. Remember: Artifacts could be nested deep under these locations also.
|
||||
- Based on fuzzy matching or inference of what a row indicates as output vs what has been found, infer what steps might be complete but need user confirmation
|
||||
- If unclear, ask: "What workflow did you most recently complete?"
|
||||
|
||||
Find all workflow items after the completed row. Present these in a clear, conversational format.
|
||||
|
||||
**Phases number to name reference:** Phase 0 (Any Time), Phase 1 (Analysis), Phase 2 (Planning), Phase 3 (Solutioning), Phase 4 (Implementation)
|
||||
|
||||
**If the request is for next steps, present the next steps as follows:**
|
||||
|
||||
1. **Optional items first** - List any optional workflows until a required step is reached
|
||||
2. **Required items next** - List the next required workflow
|
||||
3. For each item, show:
|
||||
- The workflow **name**
|
||||
- The **command** (prefixed with `/`, e.g., `/bmad:bmm:create-architecture`)
|
||||
- The **agent** displayName and title from the loaded agent-manifest that corresponds with the agent value in each row who can help, e.g., `Winston the Architect`
|
||||
- A brief **description** so the user can decide easily
|
||||
|
||||
**Recommendation format:**
|
||||
- Suggest running each workflow in a **fresh context window** for best results
|
||||
- Option: Load the agent and type the **code** for the menu item, or run the **slash command** with or without loading the agent first
|
||||
- Note: Running without the agent will not include all specifics of the agent personality or any customizations, but will still have aspects of an expert at what will be done.
|
||||
- For **validation workflows**: recommend using a different high-quality LLM if available
|
||||
|
||||
**If the request is more conversational, then give a more conversational response, still following the convention of how to portray specific agents and commands.
|
||||
|
||||
Upon presentation of whats next recommendation - return back to the calling process or conversation thread.
|
||||
|
|
@ -1,26 +0,0 @@
|
|||
phase,name,code,sequence,workflow-file,command,required,agent,options,description,output-location,outputs
|
||||
0,Document Project,DP,10,_bmad/bmm/workflows/document-project/workflow.yaml,bmad:bmm:document-project,false,analyst,Create Mode,Analyze an existing project to produce useful documentation,project-knowledge,*
|
||||
0,Tech Spec,TS,20,_bmad/bmm/workflows/bmad-quick-flow/quick-spec/workflow.md,bmad:bmm:tech-spec,false,quick-flow-solo-dev,Create Mode,Quick one-off tasks small changes simple apps utilities without extensive planning,planning_artifacts,tech spec
|
||||
0,Quick Dev,QD,30,_bmad/bmm/workflows/bmad-quick-flow/quick-dev/workflow.md,bmad:bmm:quick-dev,false,quick-flow-solo-dev,Create Mode,Quick one-off tasks small changes simple apps utilities without extensive planning,,
|
||||
0,Correct Course,CC,40,_bmad/bmm/workflows/4-implementation/correct-course/workflow.yaml,bmad:bmm:correct-course,false,sm,Create Mode,Anytime: Navigate significant changes. May recommend start over update PRD redo architecture sprint planning or correct epics and stories,planning_artifacts,change proposal
|
||||
1,Brainstorm Project,BP,10,_bmad/core/workflows/brainstorming/workflow.md,bmad:bmm:brainstorming,false,analyst,data=_bmad/bmm/data/project-context-template.md,Expert Guided Facilitation through a single or multiple techniques,planning_artifacts,brainstorming session
|
||||
1,Research,RS,20,_bmad/bmm/workflows/1-analysis/research/workflow.md,bmad:bmm:research,false,analyst,Create Mode,Choose from or specify market domain competitive analysis or technical research,planning_artifacts|project-knowledge,research documents
|
||||
1,Create Brief,CB,30,_bmad/bmm/workflows/1-analysis/create-product-brief/workflow.md,bmad:bmm:create-brief,false,analyst,Create Mode,A guided experience to nail down your product idea,planning_artifacts,product brief
|
||||
1,Validate Brief,VB,40,_bmad/bmm/workflows/1-analysis/create-product-brief/workflow.md,bmad:bmm:validate-brief,false,analyst,Validate Mode,Validates product brief completeness,planning_artifacts,brief validation report
|
||||
2,Create PRD,CP,10,_bmad/bmm/workflows/2-plan-workflows/prd/workflow.md,bmad:bmm:create-prd,true,pm,Create Mode,Expert led facilitation to produce your Product Requirements Document,planning_artifacts,prd
|
||||
2,Validate PRD,VP,20,_bmad/bmm/workflows/2-plan-workflows/prd/workflow.md,bmad:bmm:validate-prd,false,pm,Validate Mode,Validate PRD is comprehensive lean well organized and cohesive,planning_artifacts,prd validation report
|
||||
2,Create UX,CU,30,_bmad/bmm/workflows/2-plan-workflows/create-ux-design/workflow.md,bmad:bmm:create-ux,false,ux-designer,Create Mode,Guidance through realizing the plan for your UX,planning_artifacts,ux design
|
||||
2,Validate UX,VU,40,_bmad/bmm/workflows/2-plan-workflows/create-ux-design/workflow.md,bmad:bmm:validate-ux,false,ux-designer,Validate Mode,Validates UX design deliverables,planning_artifacts,ux validation report
|
||||
3,Create Architecture,CA,10,_bmad/bmm/workflows/3-solutioning/create-architecture/workflow.md,bmad:bmm:create-architecture,true,architect,Create Mode,Guided Workflow to document technical decisions,planning_artifacts,architecture
|
||||
3,Validate Architecture,VA,20,_bmad/bmm/workflows/3-solutioning/create-architecture/workflow.md,bmad:bmm:validate-architecture,false,architect,Validate Mode,Validates architecture completeness,planning_artifacts,architecture validation report
|
||||
3,Create Epics and Stories,CE,30,_bmad/bmm/workflows/3-solutioning/create-epics-and-stories/workflow.md,bmad:bmm:create-epics-and-stories,true,pm,Create Mode,Create the Epics and Stories Listing,planning_artifacts,epics and stories
|
||||
3,Validate Epics and Stories,VE,40,_bmad/bmm/workflows/3-solutioning/create-epics-and-stories/workflow.md,bmad:bmm:validate-epics-and-stories,false,pm,Validate Mode,Validates epics and stories completeness,planning_artifacts,epics validation report
|
||||
3,Test Design,TD,50,_bmad/bmm/workflows/testarch/test-design/workflow.yaml,bmad:bmm:test-design,false,tea,Create Mode,Create comprehensive test scenarios ahead of development,planning_artifacts,test design
|
||||
3,Validate Test Design,VT,60,_bmad/bmm/workflows/testarch/test-design/workflow.yaml,bmad:bmm:validate-test-design,false,tea,Validate Mode,Validates test design coverage,planning_artifacts,test design validation report
|
||||
3,Implementation Readiness,IR,70,_bmad/bmm/workflows/3-solutioning/check-implementation-readiness/workflow.md,bmad:bmm:implementation-readiness,true,architect,Validate Mode,Ensure PRD UX Architecture and Epics Stories are aligned,planning_artifacts,readiness report
|
||||
4,Sprint Planning,SP,10,_bmad/bmm/workflows/4-implementation/sprint-planning/workflow.yaml,bmad:bmm:sprint-planning,true,sm,Create Mode,Generate sprint plan for development tasks,implementation_artifacts,sprint status
|
||||
4,Sprint Status,SS,20,_bmad/bmm/workflows/4-implementation/sprint-status/workflow.yaml,bmad:bmm:sprint-status,false,sm,Create Mode,Anytime: Summarize sprint status and route to next workflow,,
|
||||
4,Create Story,CS,30,_bmad/bmm/workflows/4-implementation/create-story/workflow.yaml,bmad:bmm:create-story,true,sm,Create Mode,Story cycle start: Prepare story with context then DS then CR then back to DS if needed or next CS or ER,implementation_artifacts,story
|
||||
4,Dev Story,DS,40,_bmad/bmm/workflows/4-implementation/dev-story/workflow.yaml,bmad:bmm:dev-story,true,dev,Create Mode,Story cycle: Execute story implementation tasks and tests then CR then back to DS if fixes needed,,
|
||||
4,Code Review,CR,50,_bmad/bmm/workflows/4-implementation/code-review/workflow.yaml,bmad:bmm:code-review,false,dev,Create Mode,Story cycle: If issues back to DS if approved then next CS or ER if epic complete,,
|
||||
4,Retrospective,ER,60,_bmad/bmm/workflows/4-implementation/retrospective/workflow.yaml,bmad:bmm:retrospective,false,sm,Create Mode,Optional at epic end: Review completed work lessons learned and next epic or if major issues consider CC,implementation_artifacts,retrospective
|
||||
|
|
|
@ -128,7 +128,7 @@ Recap that the brief captures everything needed to guide subsequent product deve
|
|||
|
||||
### 5. Suggest next steps
|
||||
|
||||
Execute task `_bmad/bmm/tasks/bmad-help.md` with argument `Validate PRD`.
|
||||
Execute task `_bmad/core/tasks/bmad-help.md` with argument `Validate PRD`.
|
||||
|
||||
---
|
||||
|
||||
|
|
|
|||
|
|
@ -82,7 +82,7 @@ Update the main workflow status file:
|
|||
|
||||
### 3. Suggest Next Steps
|
||||
|
||||
Execute task `_bmad/bmm/tasks/bmad-help.md` with argument `Create UX`.
|
||||
Execute task `_bmad/core/tasks/bmad-help.md` with argument `Create UX`.
|
||||
|
||||
### 5. Final Completion Confirmation
|
||||
|
||||
|
|
|
|||
|
|
@ -87,7 +87,7 @@ Offer validation workflows to ensure PRD is ready for implementation:
|
|||
|
||||
### 4. Suggest Next Workflows
|
||||
|
||||
Execute task `_bmad/bmm/tasks/bmad-help.md` with argument `Create PRD`.
|
||||
Execute task `_bmad/core/tasks/bmad-help.md` with argument `Create PRD`.
|
||||
|
||||
### 5. Final Completion Confirmation
|
||||
|
||||
|
|
|
|||
|
|
@ -197,7 +197,7 @@ Display:
|
|||
- **IF X (Exit):**
|
||||
- Display: "**Validation Report Saved:** {validationReportPath}"
|
||||
- Display: "**Summary:** {overall status} - {recommendation}"
|
||||
- Exit and Execute task `_bmad/bmm/tasks/bmad-help.md` with argument `Validate PRD`.
|
||||
- Exit and Execute task `_bmad/core/tasks/bmad-help.md` with argument `Validate PRD`.
|
||||
|
||||
- **IF Any other:** Help user, then redisplay menu
|
||||
|
||||
|
|
|
|||
|
|
@ -115,7 +115,7 @@ The assessment found [number] issues requiring attention. Review the detailed re
|
|||
|
||||
The implementation readiness workflow is now complete. The report contains all findings and recommendations for the user to consider.
|
||||
|
||||
Execute task `_bmad/bmm/tasks/bmad-help.md` with argument `implementation readiness`.
|
||||
Execute task `_bmad/core/tasks/bmad-help.md` with argument `implementation readiness`.
|
||||
|
||||
---
|
||||
|
||||
|
|
|
|||
|
|
@ -41,7 +41,7 @@ completedAt: '{{current_date}}'
|
|||
|
||||
### 3. Next Steps Guidance
|
||||
|
||||
Execute task `_bmad/bmm/tasks/bmad-help.md` with argument `Create Architecture`.
|
||||
Execute task `_bmad/core/tasks/bmad-help.md` with argument `Create Architecture`.
|
||||
|
||||
Upon Completion of task output: offer to answer any questions about the Architecture Document.
|
||||
|
||||
|
|
|
|||
|
|
@ -144,6 +144,6 @@ If all validations pass:
|
|||
|
||||
When C is selected, the workflow is complete and the epics.md is ready for development.
|
||||
|
||||
Execute task `_bmad/bmm/tasks/bmad-help.md` with argument `Create Epics and Stories`.
|
||||
Execute task `_bmad/core/tasks/bmad-help.md` with argument `Create Epics and Stories`.
|
||||
|
||||
Upon Completion of task output: offer to answer any questions about the Epics and Stories.
|
||||
|
|
|
|||
|
|
@ -0,0 +1,11 @@
|
|||
module,phase,name,code,sequence,workflow-file,command,required,agent,options,description,output-location,outputs
|
||||
core,,Advanced Elicitation,AE,10,_bmad/core/workflows/advanced-elicitation/workflow.xml,bmad:advanced-elicitation,false,,,"Apply elicitation methods iteratively to enhance content being generated, presenting options and allowing reshuffle or full method listing for comprehensive content improvement",,
|
||||
core,,Brainstorming,BS,20,_bmad/core/workflows/brainstorming/workflow.md,bmad:brainstorming,false,analyst,,Facilitate interactive brainstorming sessions using diverse creative techniques and ideation methods,{output_folder}/analysis/brainstorming-session-{{date}}.md,,
|
||||
core,,Party Mode,PM,30,_bmad/core/workflows/party-mode/workflow.md,bmad:party-mode,false,party-mode facilitator,,Orchestrates group discussions between all installed BMAD agents enabling natural multi-agent conversations,,
|
||||
core,,bmad-help,BH,40,_bmad/core/tasks/bmad-help.md,bmad:help,false,system,,Get unstuck by showing what workflow steps come next or answering questions about what to do in the BMad Method,,
|
||||
core,,Index Docs,ID,50,_bmad/core/tasks/index-docs.xml,bmad:index-docs,false,llm,,Generates or updates an index.md of all documents in the specified directory,,
|
||||
core,,Execute Workflow,WF,60,_bmad/core/tasks/workflow.xml,bmad:workflow,false,llm,,Execute given workflow by loading its configuration following instructions and producing output,,
|
||||
core,,Shard Document,SD,70,_bmad/core/tasks/shard-doc.xml,bmad:shard-doc,false,llm,,Splits large markdown documents into smaller organized files based on level 2 sections,,
|
||||
core,,Editorial Review - Prose,EP,80,_bmad/core/tasks/editorial-review-prose.xml,bmad:editorial-review-prose,false,llm,reader_type,Clinical copy-editor that reviews text for communication issues,,"three-column markdown table with suggested fixes",
|
||||
core,,Editorial Review - Structure,ES,90,_bmad/core/tasks/editorial-review-structure.xml,bmad:editorial-review-structure,false,llm,,Structural editor that proposes cuts reorganization and simplification while preserving comprehension,,
|
||||
core,,Adversarial Review (General),AR,100,_bmad/core/tasks/review-adversarial-general.xml,bmad:review-adversarial-general,false,llm,,Cynically review content and produce findings,,
|
||||
|
Can't render this file because it has a wrong number of fields in line 3.
|
|
|
@ -0,0 +1,62 @@
|
|||
---
|
||||
name: bmad-help
|
||||
description: Get unstuck by showing what workflow steps come next or answering questions about what to do
|
||||
standalone: true
|
||||
---
|
||||
|
||||
# Task: BMAD Help
|
||||
|
||||
## KEY RULES
|
||||
|
||||
- **Empty `phase` = anytime** — Universal tools work regardless of workflow state
|
||||
- **Numbered phases indicate sequence** — Phases like `1-discover` → `2-define` → `3-build` → `4-ship` flow in order (naming varies by module)
|
||||
- **Stay in module** — Guide through the active module's workflow based on phase+sequence ordering
|
||||
- **Descriptions contain routing** — Read for alternate paths (e.g., "back to previous if fixes needed")
|
||||
- **`required=true` blocks progress** — Required workflows must complete before proceeding to later phases
|
||||
- **Artifacts reveal completion** — Search resolved output paths for `outputs` patterns, fuzzy-match found files to workflow rows
|
||||
|
||||
## MODULE DETECTION
|
||||
|
||||
- **Empty `module` column** → universal tools (work across all modules)
|
||||
- **Named `module`** → module-specific workflows
|
||||
|
||||
Detect the active module from conversation context, recent workflows, or user query keywords. If ambiguous, ask the user.
|
||||
|
||||
## INPUT ANALYSIS
|
||||
|
||||
Determine what was just completed:
|
||||
- Did someone state they completed something? Proceed as if that was the input.
|
||||
- Was a workflow just completed in this conversation? Proceed as if that was the input.
|
||||
- Search resolved artifact locations for files; fuzzy-match to workflow `outputs` patterns.
|
||||
- If an `index.md` exists, read it for additional context.
|
||||
- If still unclear, ask: "What workflow did you most recently complete?"
|
||||
|
||||
## EXECUTION
|
||||
|
||||
1. **Load catalog** — Load `{project-root}/_bmad/_config/bmad-help.csv`
|
||||
|
||||
2. **Resolve output locations** — Scan each folder under `_bmad/` (except `_config`) for `config.yaml`. For each workflow row, resolve its `output-location` variables against that module's config so artifact paths can be searched.
|
||||
|
||||
3. **Analyze input** — Task may provide a workflow name/code, conversational phrase, or nothing. Infer what was just completed using INPUT ANALYSIS above.
|
||||
|
||||
4. **Detect active module** — Use MODULE DETECTION above to determine which module the user is working in.
|
||||
|
||||
5. **Present recommendations** — Show next steps based on completed workflows, phase/sequence ordering (KEY RULES), and artifact detection. Format per the following
|
||||
|
||||
## RECOMMENDED OUTPUT FORMAT
|
||||
|
||||
**Optional items first** — List optional workflows until a required step is reached
|
||||
**Required items next** — List the next required workflow
|
||||
For each item show:
|
||||
- Workflow **name**
|
||||
- **Command** (prefixed with `/`, e.g., `/bmad:example:build-prototype`)
|
||||
- **Agent** title and display name from the CSV (e.g., "🎨 Alex (Designer)")
|
||||
- Brief **description**
|
||||
|
||||
### Additional response output guidance to convey:
|
||||
- Run each workflow in a **fresh context window**
|
||||
- Load the agent using (`/` + `agent-command`), or run the workflow command directly
|
||||
- For **validation workflows**: recommend using a different high-quality LLM if available
|
||||
- For conversational requests: match the user's tone while presenting clearly
|
||||
|
||||
6. Return to the calling process after presenting recommendations.
|
||||
|
|
@ -958,6 +958,11 @@ class Installer {
|
|||
|
||||
// All content is now installed as modules - no separate custom content handling needed
|
||||
|
||||
// Merge all module-help.csv files into bmad-help.csv
|
||||
spinner.start('Generating workflow help catalog...');
|
||||
await this.mergeModuleHelpCatalogs(bmadDir);
|
||||
spinner.succeed('Workflow help catalog generated');
|
||||
|
||||
// Generate clean config.yaml files for each installed module
|
||||
spinner.start('Generating module configurations...');
|
||||
await this.generateModuleConfigs(bmadDir, moduleConfigs);
|
||||
|
|
@ -1367,6 +1372,240 @@ class Installer {
|
|||
/**
|
||||
* Private: Create directory structure
|
||||
*/
|
||||
/**
|
||||
* Merge all module-help.csv files into a single bmad-help.csv
|
||||
* Scans all installed modules for module-help.csv and merges them
|
||||
* Enriches agent info from agent-manifest.csv
|
||||
* Output is written to _bmad/_config/bmad-help.csv
|
||||
* @param {string} bmadDir - BMAD installation directory
|
||||
*/
|
||||
async mergeModuleHelpCatalogs(bmadDir) {
|
||||
const allRows = [];
|
||||
const headerRow =
|
||||
'module,phase,name,code,sequence,workflow-file,command,required,agent-name,agent-command,agent-display-name,agent-title,options,description,output-location,outputs';
|
||||
|
||||
// Load agent manifest for agent info lookup
|
||||
const agentManifestPath = path.join(bmadDir, '_config', 'agent-manifest.csv');
|
||||
const agentInfo = new Map(); // agent-name -> {command, displayName, title+icon}
|
||||
|
||||
if (await fs.pathExists(agentManifestPath)) {
|
||||
const manifestContent = await fs.readFile(agentManifestPath, 'utf8');
|
||||
const lines = manifestContent.split('\n').filter((line) => line.trim());
|
||||
|
||||
for (const line of lines) {
|
||||
if (line.startsWith('name,')) continue; // Skip header
|
||||
|
||||
const cols = line.split(',');
|
||||
if (cols.length >= 4) {
|
||||
const agentName = cols[0].replaceAll('"', '').trim();
|
||||
const displayName = cols[1].replaceAll('"', '').trim();
|
||||
const title = cols[2].replaceAll('"', '').trim();
|
||||
const icon = cols[3].replaceAll('"', '').trim();
|
||||
const module = cols[10] ? cols[10].replaceAll('"', '').trim() : '';
|
||||
|
||||
// Build agent command: bmad:module:agent:name
|
||||
const agentCommand = module ? `bmad:${module}:agent:${agentName}` : `bmad:agent:${agentName}`;
|
||||
|
||||
agentInfo.set(agentName, {
|
||||
command: agentCommand,
|
||||
displayName: displayName || agentName,
|
||||
title: icon && title ? `${icon} ${title}` : title || agentName,
|
||||
});
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// Get all installed module directories
|
||||
const entries = await fs.readdir(bmadDir, { withFileTypes: true });
|
||||
const installedModules = entries
|
||||
.filter((entry) => entry.isDirectory() && entry.name !== '_config' && entry.name !== 'docs' && entry.name !== '_memory')
|
||||
.map((entry) => entry.name);
|
||||
|
||||
// Add core module to scan (it's installed at root level as _config, but we check src/core)
|
||||
const coreModulePath = getSourcePath('core');
|
||||
const modulePaths = new Map();
|
||||
|
||||
// Map all module source paths
|
||||
if (await fs.pathExists(coreModulePath)) {
|
||||
modulePaths.set('core', coreModulePath);
|
||||
}
|
||||
|
||||
// Map installed module paths
|
||||
for (const moduleName of installedModules) {
|
||||
const modulePath = path.join(bmadDir, moduleName);
|
||||
modulePaths.set(moduleName, modulePath);
|
||||
}
|
||||
|
||||
// Scan each module for module-help.csv
|
||||
for (const [moduleName, modulePath] of modulePaths) {
|
||||
const helpFilePath = path.join(modulePath, 'module-help.csv');
|
||||
|
||||
if (await fs.pathExists(helpFilePath)) {
|
||||
try {
|
||||
const content = await fs.readFile(helpFilePath, 'utf8');
|
||||
const lines = content.split('\n').filter((line) => line.trim() && !line.startsWith('#'));
|
||||
|
||||
for (const line of lines) {
|
||||
// Skip header row
|
||||
if (line.startsWith('module,')) {
|
||||
continue;
|
||||
}
|
||||
|
||||
// Parse the line - handle quoted fields with commas
|
||||
const columns = this.parseCSVLine(line);
|
||||
if (columns.length >= 12) {
|
||||
// Map old schema to new schema
|
||||
// Old: module,phase,name,code,sequence,workflow-file,command,required,agent,options,description,output-location,outputs
|
||||
// New: module,phase,name,code,sequence,workflow-file,command,required,agent-name,agent-command,agent-display-name,agent-title,options,description,output-location,outputs
|
||||
|
||||
const [
|
||||
module,
|
||||
phase,
|
||||
name,
|
||||
code,
|
||||
sequence,
|
||||
workflowFile,
|
||||
command,
|
||||
required,
|
||||
agentName,
|
||||
options,
|
||||
description,
|
||||
outputLocation,
|
||||
outputs,
|
||||
] = columns;
|
||||
|
||||
// If module column is empty, set it to this module's name (except for core which stays empty for universal tools)
|
||||
const finalModule = (!module || module.trim() === '') && moduleName !== 'core' ? moduleName : module || '';
|
||||
|
||||
// Lookup agent info
|
||||
const cleanAgentName = agentName ? agentName.trim() : '';
|
||||
const agentData = agentInfo.get(cleanAgentName) || { command: '', displayName: '', title: '' };
|
||||
|
||||
// Build new row with agent info
|
||||
const newRow = [
|
||||
finalModule,
|
||||
phase || '',
|
||||
name || '',
|
||||
code || '',
|
||||
sequence || '',
|
||||
workflowFile || '',
|
||||
command || '',
|
||||
required || 'false',
|
||||
cleanAgentName,
|
||||
agentData.command,
|
||||
agentData.displayName,
|
||||
agentData.title,
|
||||
options || '',
|
||||
description || '',
|
||||
outputLocation || '',
|
||||
outputs || '',
|
||||
];
|
||||
|
||||
allRows.push(newRow.map((c) => this.escapeCSVField(c)).join(','));
|
||||
}
|
||||
}
|
||||
|
||||
if (process.env.BMAD_VERBOSE_INSTALL === 'true') {
|
||||
console.log(chalk.dim(` Merged module-help from: ${moduleName}`));
|
||||
}
|
||||
} catch (error) {
|
||||
console.warn(chalk.yellow(` Warning: Failed to read module-help.csv from ${moduleName}:`, error.message));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// Sort by module, then phase, then sequence
|
||||
allRows.sort((a, b) => {
|
||||
const colsA = this.parseCSVLine(a);
|
||||
const colsB = this.parseCSVLine(b);
|
||||
|
||||
// Module comparison (empty module/universal tools come first)
|
||||
const moduleA = (colsA[0] || '').toLowerCase();
|
||||
const moduleB = (colsB[0] || '').toLowerCase();
|
||||
if (moduleA !== moduleB) {
|
||||
return moduleA.localeCompare(moduleB);
|
||||
}
|
||||
|
||||
// Phase comparison
|
||||
const phaseA = colsA[1] || '';
|
||||
const phaseB = colsB[1] || '';
|
||||
if (phaseA !== phaseB) {
|
||||
return phaseA.localeCompare(phaseB);
|
||||
}
|
||||
|
||||
// Sequence comparison
|
||||
const seqA = parseInt(colsA[4] || '0', 10);
|
||||
const seqB = parseInt(colsB[4] || '0', 10);
|
||||
return seqA - seqB;
|
||||
});
|
||||
|
||||
// Write merged catalog
|
||||
const outputDir = path.join(bmadDir, '_config');
|
||||
await fs.ensureDir(outputDir);
|
||||
const outputPath = path.join(outputDir, 'bmad-help.csv');
|
||||
|
||||
const mergedContent = [headerRow, ...allRows].join('\n');
|
||||
await fs.writeFile(outputPath, mergedContent, 'utf8');
|
||||
|
||||
// Track the installed file
|
||||
this.installedFiles.add(outputPath);
|
||||
|
||||
if (process.env.BMAD_VERBOSE_INSTALL === 'true') {
|
||||
console.log(chalk.dim(` Generated bmad-help.csv: ${allRows.length} workflows`));
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Parse a CSV line, handling quoted fields
|
||||
* @param {string} line - CSV line to parse
|
||||
* @returns {Array} Array of field values
|
||||
*/
|
||||
parseCSVLine(line) {
|
||||
const result = [];
|
||||
let current = '';
|
||||
let inQuotes = false;
|
||||
|
||||
for (let i = 0; i < line.length; i++) {
|
||||
const char = line[i];
|
||||
const nextChar = line[i + 1];
|
||||
|
||||
if (char === '"') {
|
||||
if (inQuotes && nextChar === '"') {
|
||||
// Escaped quote
|
||||
current += '"';
|
||||
i++; // Skip next quote
|
||||
} else {
|
||||
// Toggle quote mode
|
||||
inQuotes = !inQuotes;
|
||||
}
|
||||
} else if (char === ',' && !inQuotes) {
|
||||
result.push(current);
|
||||
current = '';
|
||||
} else {
|
||||
current += char;
|
||||
}
|
||||
}
|
||||
result.push(current);
|
||||
return result;
|
||||
}
|
||||
|
||||
/**
|
||||
* Escape a CSV field if it contains special characters
|
||||
* @param {string} field - Field value to escape
|
||||
* @returns {string} Escaped field
|
||||
*/
|
||||
escapeCSVField(field) {
|
||||
if (field === null || field === undefined) {
|
||||
return '';
|
||||
}
|
||||
const str = String(field);
|
||||
// If field contains comma, quote, or newline, wrap in quotes and escape inner quotes
|
||||
if (str.includes(',') || str.includes('"') || str.includes('\n')) {
|
||||
return `"${str.replaceAll('"', '""')}"`;
|
||||
}
|
||||
return str;
|
||||
}
|
||||
|
||||
async createDirectoryStructure(bmadDir) {
|
||||
await fs.ensureDir(bmadDir);
|
||||
await fs.ensureDir(path.join(bmadDir, '_config'));
|
||||
|
|
|
|||
Loading…
Reference in New Issue