installer improvements

This commit is contained in:
Brian Madison
2025-10-28 12:47:45 -05:00
parent ed3603f7b2
commit ee58586f39
99 changed files with 8143 additions and 1286 deletions

View File

@@ -1,6 +1,9 @@
<!-- Powered by BMAD-CORE™ -->
---
name: 'bmad master'
description: 'BMad Master Executor, Knowledge Custodian, and Workflow Orchestrator'
---
# BMad Master Executor, Knowledge Custodian, and Workflow Orchestrator
You must fully embody this agent's persona and follow all activation instructions exactly as specified. NEVER break character until given an exit command.
```xml
<agent id="bmad/core/agents/bmad-master.md" name="BMad Master" title="BMad Master Executor, Knowledge Custodian, and Workflow Orchestrator" icon="🧙">

View File

@@ -1,7 +1,7 @@
# CORE Module Configuration
# Generated by BMAD installer
# Version: 6.0.0-alpha.0
# Date: 2025-10-18T20:58:29.256Z
# Version: 6.0.0-beta.0
# Date: 2025-10-28T17:08:48.101Z
user_name: BMad
communication_language: English

View File

@@ -1,4 +1,5 @@
<task id="bmad/core/tasks/index-docs" name="Index Docs" webskip="true">
<task id="bmad/core/tasks/index-docs" name="Index Docs"
description="Generates or updates an index.md of all documents in the specified directory" webskip="true" standalone="true">
<llm critical="true">
<i>MANDATORY: Execute ALL steps in the flow section IN EXACT ORDER</i>
<i>DO NOT skip steps or change the sequence</i>
@@ -17,7 +18,8 @@
</step>
<step n="3" title="Generate Descriptions">
<i>Read each file to understand its actual purpose and create brief (3-10 word) descriptions based on the content, not just the filename</i>
<i>Read each file to understand its actual purpose and create brief (3-10 word) descriptions based on the content, not just the
filename</i>
</step>
<step n="4" title="Create/Update Index">

View File

@@ -10,7 +10,8 @@
<flow>
<step n="1" title="Setup">
<action>If checklist not provided, load checklist.md from workflow location</action>
<action>If document not provided, ask user: "Which document should I validate?"</action>
<action>Try to fuzzy match for files similar to the input document name or if user did not provide the document. If document not
provided or unsure, ask user: "Which document should I validate?"</action>
<action>Load both the checklist and document</action>
</step>

View File

@@ -0,0 +1,100 @@
<tool id="bmad/core/tasks/shard-doc" name="Shard Document"
description="Splits large markdown documents into smaller, organized files based on level 2 (default) sections" webskip="true"
standalone="true">
<objective>Split large markdown documents into smaller, organized files based on level 2 sections using @kayvan/markdown-tree-parser tool</objective>
<llm critical="true">
<i>MANDATORY: Execute ALL steps in the flow section IN EXACT ORDER</i>
<i>DO NOT skip steps or change the sequence</i>
<i>HALT immediately when halt-conditions are met</i>
<i>Each action xml tag within step xml tag is a REQUIRED action to complete that step</i>
<i>Sections outside flow (validation, output, critical-context) provide essential context - review and apply throughout execution</i>
</llm>
<critical-context>
<i>This task ONLY supports automated sharding via @kayvan/markdown-tree-parser</i>
<i>The tool automatically handles: section splitting, heading level adjustment, code block detection, index generation</i>
<i>All markdown formatting is preserved during sharding</i>
</critical-context>
<flow>
<step n="1" title="Verify Tool Installation">
<action>Check if @kayvan/markdown-tree-parser is installed globally</action>
<action>Run: npm list -g @kayvan/markdown-tree-parser</action>
<action if="not installed">Inform user that tool needs to be installed</action>
<action if="not installed">Run: npm install -g @kayvan/markdown-tree-parser</action>
<action if="installation fails">HALT with error message about npm/node requirements</action>
</step>
<step n="2" title="Get Source Document">
<action>Ask user for the source document path if not provided already</action>
<action>Verify file exists and is accessible</action>
<action>Verify file is markdown format (.md extension)</action>
<action if="file not found or not markdown">HALT with error message</action>
</step>
<step n="3" title="Get Destination Folder">
<action>Determine default destination: same location as source file, folder named after source file without .md extension</action>
<action>Example: /path/to/architecture.md → /path/to/architecture/</action>
<action>Ask user for the destination folder path ([y] to confirm use of default: [suggested-path], else enter a new path)</action>
<action if="user accepts default">Use the suggested destination path</action>
<action if="user provides custom path">Use the custom destination path</action>
<action>Verify destination folder exists or can be created</action>
<action>Check write permissions for destination</action>
<action if="permission denied">HALT with error message</action>
</step>
<step n="4" title="Execute Sharding">
<action>Inform user that sharding is beginning</action>
<action>Execute command: md-tree explode [source-document] [destination-folder]</action>
<action>Capture command output and any errors</action>
<action if="command fails">HALT and display error to user</action>
</step>
<step n="5" title="Verify Output">
<action>Check that destination folder contains sharded files</action>
<action>Verify index.md was created in destination folder</action>
<action>Count the number of files created</action>
<action if="no files created">HALT with error message</action>
</step>
<step n="6" title="Report Completion">
<action>Display completion report to user including:</action>
<i>- Source document path and name</i>
<i>- Destination folder path</i>
<i>- Number of section files created</i>
<i>- Confirmation that index.md was created</i>
<i>- Any tool output or warnings</i>
<action>Inform user that sharding completed successfully</action>
</step>
</flow>
<halt-conditions critical="true">
<i>HALT if @kayvan/markdown-tree-parser cannot be installed</i>
<i>HALT if Node.js or npm is not available</i>
<i>HALT if source document does not exist or is inaccessible</i>
<i>HALT if source document is not markdown format (.md)</i>
<i>HALT if destination folder cannot be created</i>
<i>HALT if user does not have write permissions to destination</i>
<i>HALT if md-tree explode command fails</i>
<i>HALT if no output files were created</i>
</halt-conditions>
<tool-info>
<name>@kayvan/markdown-tree-parser</name>
<command>md-tree explode [source-document] [destination-folder]</command>
<installation>npm install -g @kayvan/markdown-tree-parser</installation>
<requirements>
<i>Node.js installed</i>
<i>npm package manager</i>
<i>Global npm installation permissions</i>
</requirements>
<features>
<i>Automatic section splitting by level 2 headings</i>
<i>Automatic heading level adjustment</i>
<i>Handles edge cases (code blocks, diagrams)</i>
<i>Generates navigable index.md</i>
<i>Preserves all markdown formatting</i>
</features>
</tool-info>
</tool>

View File

@@ -9,19 +9,23 @@
<step n="1" goal="Session Setup">
<action>Check if context data was provided with workflow invocation</action>
<check>If data attribute was passed to this workflow:</check>
<action>Load the context document from the data file path</action>
<action>Study the domain knowledge and session focus</action>
<action>Use the provided context to guide the session</action>
<action>Acknowledge the focused brainstorming goal</action>
<ask response="session_refinement">I see we're brainstorming about the specific domain outlined in the context. What particular aspect would you like to explore?</ask>
<check>Else (no context data provided):</check>
<action>Proceed with generic context gathering</action>
<ask response="session_topic">1. What are we brainstorming about?</ask>
<ask response="stated_goals">2. Are there any constraints or parameters we should keep in mind?</ask>
<ask>3. Is the goal broad exploration or focused ideation on specific aspects?</ask>
<check if="data attribute was passed to this workflow">
<action>Load the context document from the data file path</action>
<action>Study the domain knowledge and session focus</action>
<action>Use the provided context to guide the session</action>
<action>Acknowledge the focused brainstorming goal</action>
<ask response="session_refinement">I see we're brainstorming about the specific domain outlined in the context. What particular aspect would you like to explore?</ask>
</check>
<check if="no context data provided">
<action>Proceed with generic context gathering</action>
<ask response="session_topic">1. What are we brainstorming about?</ask>
<ask response="stated_goals">2. Are there any constraints or parameters we should keep in mind?</ask>
<ask>3. Is the goal broad exploration or focused ideation on specific aspects?</ask>
<critical>Wait for user response before proceeding. This context shapes the entire session.</critical>
</check>
<template-output>session_topic, stated_goals</template-output>
@@ -40,19 +44,19 @@ Based on the context from Step 1, present these four approach options:
Which approach would you prefer? (Enter 1-4)
</ask>
<check>Based on selection, proceed to appropriate sub-step</check>
<step n="2a" title="User-Selected Techniques" if="selection==1">
<action>Load techniques from {brain_techniques} CSV file</action>
<action>Parse: category, technique_name, description, facilitation_prompts</action>
<check>If strong context from Step 1 (specific problem/goal)</check>
<action>Identify 2-3 most relevant categories based on stated_goals</action>
<action>Present those categories first with 3-5 techniques each</action>
<action>Offer "show all categories" option</action>
<check if="strong context from Step 1 (specific problem/goal)">
<action>Identify 2-3 most relevant categories based on stated_goals</action>
<action>Present those categories first with 3-5 techniques each</action>
<action>Offer "show all categories" option</action>
</check>
<check>Else (open exploration)</check>
<action>Display all 7 categories with helpful descriptions</action>
<check if="open exploration">
<action>Display all 7 categories with helpful descriptions</action>
</check>
Category descriptions to guide selection:
- **Structured:** Systematic frameworks for thorough exploration

View File

@@ -27,6 +27,8 @@ brain_techniques: "{installed_path}/brain-methods.csv"
# Output configuration
default_output_file: "{output_folder}/brainstorming-session-results-{{date}}.md"
standalone: true
web_bundle:
name: "brainstorming"
description: "Facilitate interactive brainstorming sessions using diverse creative techniques. This workflow facilitates interactive brainstorming sessions using diverse creative techniques. The session is highly interactive, with the AI acting as a facilitator to guide the user through various ideation methods to generate and refine creative solutions."

View File

@@ -78,20 +78,23 @@
</substep>
<substep n="3c" goal="Handle Questions and Interactions">
<check>If an agent asks the user a direct question:</check>
<check if="an agent asks the user a direct question">
<action>Clearly highlight the question</action>
<action>End that round of responses</action>
<action>Display: "[Agent Name]: [Their question]"</action>
<action>Display: "[Awaiting user response...]"</action>
<action>WAIT for user input before continuing</action>
</check>
<check>If agents ask each other questions:</check>
<check if="agents ask each other questions">
<action>Allow natural back-and-forth in the same response round</action>
<action>Maintain conversational flow</action>
</check>
<check>If discussion becomes circular or repetitive:</check>
<check if="discussion becomes circular or repetitive">
<action>The BMad Master will summarize</action>
<action>Redirect to new aspects or ask for user guidance</action>
</check>
</substep>
@@ -111,15 +114,18 @@
</substep>
<substep n="3e" goal="Check for Exit Conditions">
<check>If user message contains any {{exit_triggers}}:</check>
<check if="user message contains any {{exit_triggers}}">
<action>Have agents provide brief farewells in character</action>
<action>Thank user for the discussion</action>
<goto step="4">Exit party mode</goto>
</check>
<check>If user seems done or conversation naturally concludes:</check>
<check if="user seems done or conversation naturally concludes">
<ask>Would you like to continue the discussion or end party mode?</ask>
<check>If user indicates end:</check>
<check if="user indicates end">
<goto step="4">Exit party mode</goto>
</check>
</check>
</substep>
</step>

View File

@@ -18,4 +18,6 @@ exit_triggers:
- "end party mode"
- "stop party mode"
standalone: true
web_bundle: false