* 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> |
||
|---|---|---|
| .. | ||
| commands | ||
| installers | ||
| lib | ||
| README.md | ||
| bmad-cli.js | ||
| external-official-modules.yaml | ||
README.md
BMad CLI Tool
Installing external repo BMad official modules
For external official modules to be discoverable during install, ensure an entry for the external repo is added to external-official-modules.yaml.
For community modules - this will be handled in a different way. This file is only for registration of modules under the bmad-code-org.