Commit Graph

100 Commits

Author SHA1 Message Date
Pablo LION c8ca083316
fix: remove unnecessary quotes and fix grammar in bmad-master principles (#1600)
- Remove YAML quotes from principles list item (consistency with other agents)
- Add missing comma: "at runtime never" → "at runtime, never" (run-on fix)

Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-12 12:10:33 -06:00
jheyworth 36c21dbada
feat: custom GitHub Copilot installer handler (#1606)
* feat: add custom GitHub Copilot installer handler

Adds a dedicated GitHub Copilot handler that generates:
- Agent files with .agent.md extension and enriched descriptions
- Prompt files (.prompt.md) for workflows, tasks, and agent activators
- copilot-instructions.md with project config and agent reference table

Replaces the generic config-driven handler with a custom one that
properly supports Copilot's agent/prompt file conventions.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>

* fix: escape YAML descriptions and preserve user copilot-instructions

- Escape single quotes in YAML frontmatter descriptions across all prompt
  generators (createWorkflowPromptContent, createTechWriterPromptContent,
  createAgentActivatorPromptContent) to match createAgentContent behavior
- Make copilot-instructions.md non-destructive using BMAD markers
  (<!-- BMAD:START --> / <!-- BMAD:END -->) to preserve user content
- On cleanup, only remove content between markers; skip files without markers
- Back up existing unmarked files before overwriting

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>

* fix: add error handling for CSV read/parse in loadAgentManifest and loadBmadHelp

Wrap file read and csv.parse in try/catch blocks so malformed or
unreadable CSV files gracefully degrade instead of aborting setup.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>

* fix: use specific detection paths instead of .github configDir

Set configDir to null and use detectionPaths with
.github/copilot-instructions.md and .github/agents/ so the base
detect() doesn't false-positive on every GitHub repo.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>

* docs: add comments explaining hardcoded bmm/config.yaml in prompts

Clarify that bmm/config.yaml is safe to hardcode in generated prompt
content because these prompts are only created when bmm module data
(bmad-help.csv, agent artifacts) exists.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>

* fix: guard against missing workflow-file in bmad-help.csv entries

Skip entries where workflow-file is empty/undefined to prevent
workflowFile.endsWith() from throwing during prompt generation.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>

* fix: guard escapeYamlSingleQuote against undefined input

Default to empty string when value is undefined/null to prevent
replaceAll from throwing on missing CSV fields.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>

* feat: preserve customised tool permissions across reinstalls

Before this change, reinstalling would overwrite any user-customised
tools arrays in agent and prompt frontmatter with the hardcoded default.

Now the installer reads existing tool permissions from .agent.md and
.prompt.md files before cleanup, and re-applies them to the regenerated
files. Falls back to the default ['read', 'edit', 'search', 'execute']
for new files or files without prior customisation.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>

* fix: prevent cleanup from stripping copilot-instructions.md markers before generation

The cleanup() method was removing the BMAD marker section from
copilot-instructions.md, leaving user content without markers.
generateCopilotInstructions() then treated the markerless file as
legacy, backed it up, and overwrote user content.

Fix: remove the copilot-instructions.md block from cleanup() entirely.
generateCopilotInstructions() already handles marker-based replacement
in a single read-modify-write pass that correctly preserves user content.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>

* docs: update manager.js comments to include github-copilot.js

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>

* feat: make agent capabilities data-driven via agent YAML metadata

Replace the hardcoded getAgentCapabilities() map with a data-driven
pipeline. Capabilities are now defined in each .agent.yaml source file,
compiled into the XML output, extracted into agent-manifest.csv by the
manifest generator, and read by the GitHub Copilot handler at install
time. New agents automatically get their capabilities without code
changes.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>

* fix: use this.bmadFolderName instead of hardcoded _bmad in template paths

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>

---------

Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-09 13:41:11 -06:00
Brian Madison c563cef0c2 refactor: replace module installer scripts with declarative directories config
Removes the security-risky _module-installer pattern (code execution at
install time) in favor of a declarative `directories` key in module.yaml.
The main installer now handles directory creation centrally based on this
config, eliminating per-module installer.js scripts and their CJS/ESM issues.

Changes:
- Delete src/bmm/_module-installer/installer.js
- Delete src/core/_module-installer/installer.js
- Add `directories` key to src/bmm/module.yaml
- Rename runModuleInstaller() -> createModuleDirectories()
- Remove _module-installer from ESLint overrides
- Remove _module-installer from file-ref validator skip dirs
2026-02-08 19:21:48 -06:00
Michael Pursifull dbb754f085
fix(party-mode): add return protocol to prevent lost-in-the-middle failures (#1569)
After Party Mode completes within a parent workflow, the LLM fails to
re-present the parent workflow's completion menu due to lost-in-the-middle
effect at 50-100K tokens. The parent workflow instructions get pushed into
mid-context where they are no longer proactively recalled.

Add a Return Protocol section to step-03-graceful-exit.md that instructs
the LLM to:
1. Identify the parent workflow that invoked party-mode
2. Re-read that file to restore context
3. Resume from the invocation point
4. Present required menus/options

This is platform-independent prompt engineering that forces proactive
re-reading rather than relying on mid-context recall.

Fixes #1319

Co-authored-by: Brian <bmadcode@gmail.com>
2026-02-06 20:43:12 -06:00
Michael Pursifull 420e720242
fix: bmad-help reads project docs and respects communication_language (#1535)
* fix: bmad-help agent reads project docs and respects communication_language

The help task fabricated tech stack information instead of reading actual
project documentation (#1460) and ignored communication_language config
(#1457). Three changes:

1. Step 2 now also extracts communication_language and project_knowledge
   from the active module's config.yaml
2. New step 3 scans project_knowledge path for documentation and uses
   discovered facts as grounding context, with anti-hallucination guard
3. Step 7 enforces {communication_language} in all output

Chose inline config resolution over workflow.yaml conversion to match
existing core task patterns (index-docs, shard-doc).

Fixes #1460
Relates to #1457

* fix: clarify config extraction wording in help task

Remove "active module" reference from step 2 — config extraction
happens during the all-modules scan, before module detection in
step 4. Changed to "each scanned module's config" to match the
existing iteration pattern.

Addresses CodeRabbit review feedback on PR #1535.

---------

Co-authored-by: Brian <bmadcode@gmail.com>
2026-02-05 19:04:31 -06:00
Brian Madison f699a3683f excorcise the deamons part 1 - remove dead uneeed artifacts and items no longer being supported beyond beta of the BMM or core - but could return later as a module 2026-02-04 15:44:25 -06:00
Davor Racic 5b80649d3a
fix(installer): Multiple installer fixes (#1492)
* fix: support CRLF line endings and add task/tool templates for all IDEs

* fix: preserve file extensions in IDE task/tool paths and update BMAD branding

* fix: double extension issue in wrapper filename generation

* fix: correct path handling and variable reference in task/tool command generator

* fix: change default BMAD folder name from 'bmad' to '_bmad' across all IDE components

* refactor: centralize BMAD_FOLDER_NAME constant in path-utils

* fix: Replace the rest of BMAD_FOLDER magic values

* fix: add safety checks for setBmadFolderName method calls in IdeManager

* fix: convert absolute paths to relative in task-tool-command-generator

* fix: support .xml task files in bmad-artifacts task discovery

* fix: skip internal tasks in manifest generation and IDE command discovery

* fix: skip empty artifact_types targets and remove unused vscode_settings target

* fix: skip internal tools in manifest generation and improve Windows path handling in command generator

* fix: use csv-parse library for proper CSV handling in manifest generation

* refactor: extract CSV text cleaning to reusable method in manifest generator

* fix: normalize path separators to forward slashes in agent file copying for cross-platform compatibility

---------

Co-authored-by: Alex Verkhovsky <alexey.verkhovsky@gmail.com>
Co-authored-by: Brian <bmadcode@gmail.com>
2026-02-03 17:36:54 -06:00
Brian Madison c3d1bf3fe8 Fix duplicate 2-letter code - brainstorming now uses BSP
- BS -> BSP (Brainstorming in core module)

Resolves conflict with cis Brainstorming (BS).
Core is for project brainstorming, cis is general brainstorming.
2026-02-01 11:16:32 -06:00
Brian Madison 1665ad68df fix agent scan and help csv files 2026-01-31 21:58:55 -06:00
Michael Pursifull 7fcfd4c1b8
fix: correct party-mode workflow file extension in workflow.xml (#1499)
The party-mode workflow reference uses .yaml extension but the actual
file is workflow.md. This broken reference has been present since
alpha.17.

Fixes #1212

Co-authored-by: Brian <bmadcode@gmail.com>
2026-01-31 17:26:41 -06:00
Brian Madison 6c5381b6dc help system update 2026-01-26 16:30:47 -06:00
Alex Verkhovsky 9abd6654f1
feat: add optional style_guide input to editorial review tasks (#1380)
When provided, the style_guide input overrides all generic principles
(including Microsoft Style Guide baseline, reader-type priorities, and
structure-model selection) except CONTENT IS SACROSANCT.

Changes to both editorial-review-structure.xml and editorial-review-prose.xml:
- Add style_guide input after content input
- Add STYLE GUIDE OVERRIDE instruction in llm section
- Add "Consult style_guide" action in Step 3 for mid-flow refresh

Co-authored-by: Claude Opus 4.5 <noreply@anthropic.com>
Co-authored-by: Brian <bmadcode@gmail.com>
2026-01-24 00:24:54 -06:00
Brian Madison 431b961451 Update agent command file naming to include -agent- in filename
- Change agent command files from bmad_module_name to bmad_module_agent_name
- Update path-utils.js to insert 'agent' segment in agent file names
- Update CSV files to reflect new underscore naming convention
- Refactor toUnderscorePath to use toUnderscoreName for consistency
- Update parseUnderscoreName to handle new agent naming pattern

Examples:
- bmm/agents/pm.md → bmad_bmm_agent_pm.md (was bmad_bmm_pm.md)
- cis/agents/brainstorming.md → bmad_cis_agent_brainstorming.md
- Core agents: bmad_agent_name.md
2026-01-23 22:30:14 -06:00
Alex Verkhovsky def8da0acb
refactor: replace 'execute' with 'Read fully and follow:' in workflow prompts (#1387)
Replace ambiguous "execute" terminology with explicit "Read fully and follow:"
phrasing across all workflow files to prevent LLM goal-seeking behavior where
models attempt to "achieve the end result" rather than following step-by-step
instructions verbatim.

Changes:
- Update 5 handler templates with canonical phrasing
- Replace ~150 INSTRUCTIONAL patterns across 87 workflow files
- Add "[Workflow] complete." prefix to 7 workflow endpoints
- Preserve BEHAVIORAL/STRUCTURAL patterns (agent descriptions, XML tags)
- Fix gitignore and markdownlint to ignore all node_modules directories

Closes #1372

Co-authored-by: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-23 22:25:19 -06:00
Brian Madison efbe839a0a installer cleanup 2026-01-23 00:27:26 -06:00
Alex Verkhovsky aad132c9b1
feat: add optional also_consider input to adversarial review task (#1371)
Add an optional also_consider parameter that allows callers to pass
domain-specific areas to keep in mind during review. This gently nudges
the reviewer toward specific concerns without overriding normal analysis.

Testing showed:
- Specific items steer strongly (questions get directly answered)
- Domain-focused items shift the lens (e.g., security focus = deeper security findings)
- Vague items have minimal effect (similar to baseline)
- Single items nudge without dominating
- Contradictory items handled gracefully

Includes test cases with sample content and 10 configurations to validate
the parameter behavior across different use cases.

Co-authored-by: Claude Opus 4.5 <noreply@anthropic.com>
Co-authored-by: Brian <bmadcode@gmail.com>
2026-01-22 22:26:25 -06:00
Brian Madison 5d89298fe8 brainstorming docs now go to /brainstorming folder instead of /analysis 2026-01-21 23:18:38 -06:00
Brian Madison c9c3d31d3a 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 2026-01-21 20:47:43 -06:00
Brian Madison 83641eee9d improve all install prompts 2026-01-18 17:27:50 -06:00
Brian Madison 7cd4926adb project-root stutter fix 2026-01-15 23:03:02 -06:00
Brian Madison 577c1aa218 remove modules moved to new repos and update installer to support the remote module isntallation and updates. this is a temporary imlemtation machanism 2026-01-15 22:20:56 -06:00
Brian Madison 3360666c2a remove hard inclusion of AV from installer, to replace with module soon 2026-01-14 23:04:19 -06:00
Eduard Voiculescu 59e1b7067c
remove remember the users name is {user_name}, it is already present in the activation-steps.txt (#1315) 2026-01-14 21:04:43 -06:00
Alex Verkhovsky d419ac8a70
feat: add editorial review tasks for structure and prose (#1307)
* feat: add editorial review tasks for structure and prose

Add two complementary editorial review tasks:

- editorial-review-structure.xml: Structural editor that proposes cuts,
  reorganization, and simplification. Includes 5 document archetype models
  (Tutorial, Reference, Explanation, Prompt, Strategic) for targeted evaluation.

- editorial-review-prose.xml: Clinical copy-editor for prose improvements
  using Microsoft Writing Style Guide as baseline.

Both tasks support humans and llm target audiences with different principles.

* fix: add content-sacrosanct guardrail to editorial review tasks

Both editorial review tasks (prose and structure) were missing the key
constraint that reviewers should never challenge the ideas/knowledge
themselves—only how clearly they are communicated. This restores the
original design intent.

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>

* fix: align reader_type parameter naming across editorial tasks

Prose task was using 'target_audience' for the humans/llm optimization
flag while structure task correctly separates 'target_audience' (who
reads) from 'reader_type' (optimization mode). Aligns to reader_type.

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>

---------

Co-authored-by: Claude Opus 4.5 <noreply@anthropic.com>
Co-authored-by: Brian <bmadcode@gmail.com>
2026-01-13 00:20:04 +08:00
Brian Madison 7bf05c9d9d fix missing scripts from installation, and add ability to exclude workflows from being added as commands in tools, the first being the example workflow meant just for workflow example to the workflow builder 2026-01-07 16:21:25 +08:00
Davor Racic 51aa3dda2f
fix: brainstorming (#1251)
* fix(brainstorming): extend ideation phase with 100+ idea goal

Add emphasis on quantity-first approach to unlock better quality ideas.
Introduce energy checkpoints, multiple continuation options, and clearer
success metrics to keep users in generative exploration mode longer.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>

* fix(brainstorming): improve exploration menus and fix workflow paths

- Change menu options from numbers [1-4] to letters [K/T/A/B/C] for clearer navigation
- Fix workflow references from .yaml to .md across agents and patterns
- Add universal facilitation rules emphasizing 100+ idea quantity goal
- Update exploration menu with Keep/Try/Advanced/Break/Continue options

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>

* feat(brainstorming): implement research-backed procedural rigor

Phase 4 achievements:
- Added Anti-Bias Protocol (Every 10 ideas domain pivot)
- Added Chain-of-Thought requirements (Reasoning before generation)
- Implemented Simulated Temperature prompts for higher divergence
- Standardized Idea Format Template for quality control
- Fixed undefined Advanced Elicitation variables
- Synchronized documentation with new [K, T, A, P, C] pattern

* fix(brainstorming): align ideation goals and fix broken workflow paths

- Standardized quantity goals to 100+ ideas across all brainstorming steps
- Fixed broken .yaml references pointing to renamed .md workflow files
- Aligned documentation summaries with mandatory IDEA FORMAT TEMPLATE
- Cleaned up misplaced mindset/goal sections in core workflow file
- Fixed spelling and inconsistencies in facilitation rules

* Fix ambiguous variable names in brainstorming ideation step

* fix(brainstorming): enforce quality growth alongside quantity

* fix: correct dependency format and add missing frontmatter variable

---------

Co-authored-by: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-07 09:09:03 +08:00
Brian Madison d8b13bdb2e agents all indicate hasSidecar true or false, validation requires it, agent builder and validator and editor use the field. Added a better brownfield doc 2025-12-31 21:30:19 +08:00
Brian Madison 484990de50 all sharded progressive workflows integrate language choice deeply with each step biased towards configured language. Tested with Spanish and Pirate Speak, worked really well. 2025-12-29 19:35:20 +08:00
Brian Madison 8d679b177b advanced elicitation moved to workflows folder. core module extensive documentation added. 2025-12-28 19:44:55 +08:00
Brian Madison 24cedea690 phase 3 input disco and output updated 2025-12-26 20:44:45 +08:00
Brian Madison 59a0eec2e2 all agents passing new validation checks 2025-12-26 17:34:20 +08:00
Brian Madison 1f16bb7413 agent renormalized, and all now have chat and party mode auto injectioned 2025-12-26 12:00:37 +08:00
Alex Verkhovsky b1d1242fcf
fix: restore agent files accidentally modified in Docusaurus merge (#1191)
* fix: restore agent files accidentally modified in Docusaurus merge

Restores 25 agent files to their pre-merge state:
- Trigger format with shortcuts (WS, CH, BP, etc.) restored
- Fuzzy matching syntax restored
- BMB module: restores separate agent-builder, module-builder,
  workflow-builder agents; removes consolidated bmad-builder

Also updates test to match restored trigger format.

Note: Schema validation needs update in follow-up commit.

* fix: normalize trigger fuzzy match format for schema validation

- Add dashes to fuzzy match text to match kebab-case triggers
- Add missing 'chat' kebab in CH triggers (CH or chat or fuzzy match on chat)
- Relax schema to allow 1-3 char shortcuts and skip shortcut derivation check
- Remove compound-wrong-shortcut test fixture (no longer validated)

All 24 agent files now pass schema validation.
2025-12-26 06:59:39 +08:00
Alex Verkhovsky 19df17b261
feat: add documentation website with Docusaurus build pipeline (#1177)
* feat: add documentation website with Docusaurus build pipeline

* feat(docs): add AI discovery meta tags for llms.txt files

- Add global headTags with ai-terms, llms, llms-full meta tags
- Update landing page link to clarify AI context purpose

* fix(docs): restore accidentally deleted faq.md and glossary.md

Files were removed in 12dd97fe during path restructuring.

* fix(docs): update broken project-readme links to GitHub URL

* feat(schema): add compound trigger format validation
2025-12-23 23:01:36 +08:00
Alex Verkhovsky dcaa892ce1
refactor(bmm): convert quick-dev workflow to sharded format with adversarial review (#1182)
convert quick-dev workflow to sharded format with adversarial review
2025-12-23 17:48:47 +08:00
Brian Madison 9c268f8190 remove asterix insertion into agent files 2025-12-22 08:18:53 +08:00
Brian Madison 32615afaf9 memory location is non configurable _bmad/_memory for sidecar content 2025-12-16 15:43:38 +08:00
Brian Madison bbda7171bd quick update output modified 2025-12-15 17:30:12 +08:00
Brian Madison 5716282898 roo installer had some bugs 2025-12-15 15:08:19 +08:00
Brian Madison 1da7705821 folder workflow naming alignment for consistency 2025-12-15 10:17:58 +08:00
Brian Madison 4c65f3a006 quick install fixed 2025-12-13 23:45:47 +08:00
Brian Madison cba7cf223f standardize custom agent workflow and module output, and improve module folder selection 2025-12-13 22:59:58 +08:00
Brian Madison ae9851acab _cfg -> _config 2025-12-13 19:41:09 +08:00
Brian Madison ce42d56fdd agent customzation almost working again 2025-12-13 17:50:33 +08:00
Brian Madison 25c79e3fe5 folder rename from .bmad to _bmad 2025-12-13 16:22:34 +08:00
Brian Madison e6f911d791 remove dead and unused functionality - the web bundler will be replaced 2025-12-13 14:06:35 +08:00
Brian Madison 446a0359ab fix bmb workflow paths 2025-12-10 20:50:24 +09:00
Brian Madison 55cb4681bc party mode and brainstorming had bmm config instead of core config listed causing loading error when bmm is not an installed module - fixed. 2025-12-08 08:11:39 -06:00
Brian Madison 6430173738 all modules custom or core use the same installer and have consistent behavior now. 2025-12-07 17:17:50 -06:00
Brian Madison 8c04ccf3f0 rename default folder location for agent_sidecar_folder installation location 2025-12-06 21:21:03 -06:00