- Added IDE selection question (Windsurf, VS Code, Cursor, Other)
- Made learning material installation optional with confirm prompt
- Success message now shows selected IDE name
- Store IDE preference in config.yaml
- Installer now has 5 questions (up from 3)
User feedback: "IDE selection is crucial for the installer" and "ask if the learn section should be installed"
Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
More conversational and explicit:
- 'Get Started with Your Product Brief' (goal-oriented)
- 'Locate the chat window in your IDE' (explicit location)
- 'type:' instead of 'paste this command:' (simpler action)
- Command in quotes to make it clear it's text to type
- Better line breaks for readability
Old message was too technical and vague.
New message:
- Clear numbered steps (1-2-3)
- Specific: 'Open this folder in Windsurf or VS Code'
- Exact command to paste (not just 'tell the AI')
- Clear outcome: 'Saga will greet you by name'
- Cleaner layout with separator
Addresses workshop feedback about confusing instructions.
- Add 3rd question: Output folder name (default: design-process)
- Users can customize to docs/, deliverables/, etc.
- Update config.yaml to use dynamic root_folder
- Update template placeholders to use config.root_folder
Balances simplification (3 questions vs 7+) with useful customization.
Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
- Users can now choose between design-process/, docs/, or deliverables/
- Removes folder auto-detection logic that caused duplicate folders
- Installer creates folders at user's chosen location
- Prevents conflict with project setup workflow
Fixes issue where both design-process/ and docs/ were created.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Inquirer v9+ is ESM-only, causing ERR_REQUIRE_ESM when loaded via
require() in CommonJS. Convert all require('inquirer') calls to
dynamic import('inquirer') across 8 CLI files.
Fixes#1197
* 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
* fix: remove debug console.log statements from ui.js
* fix: add error handling and rollback for temp directory cleanup
* fix: use streaming for hash calculation to reduce memory usage
* refactor: hoist CustomHandler require to top of installer.js and ui.js
* fix: fail fast on malformed custom module YAML
User customizations must be valid - silent skip hides broken configs.
* refactor: use consistent return type in handleMissingCustomSources
* refactor: clone config at install() entry to prevent mutation
- Skip module selection prompt during update/reinstall
- Keep all existing installed modules by default
- This prevents inquirer from showing modules as 'obsolete items' with confusing delete options
- Modules are now preserved during update/reinstall operations
- Module discovery now scans entire project recursively for install-config.yaml
- Removed hardcoded module locations (bmad-custom-src, etc.)
- Modules can exist anywhere with _module-installer/install-config.yaml
- All modules treated equally regardless of location
- No special UI handling for 'custom' modules
- Core module excluded from selection list (always installed first)
- Only install-config.yaml is valid (removed support for legacy config.yaml)
Modules are now discovered by structure, not location.
## Summary
- Track all files with TTS injection applied during installation
- Display informative summary explaining what TTS injection does
- Show backup location and restore command for recovery
## What is TTS Injection?
TTS (Text-to-Speech) injection adds voice instructions to BMAD agents,
enabling them to speak their responses aloud using AgentVibes.
Example: When you activate the PM agent, it will greet you with
spoken audio like "Hey! I'm your Project Manager. How can I help?"
## Changes
- **installer.js**: Track files in `processAgentFiles()`, `buildStandaloneAgents()`,
and `rebuildAgentFiles()` when TTS markers are processed
- **compiler.js**: Add TTS injection support for custom agent compilation
- **ui.js**: Enhanced installation summary showing:
- Explanation of what TTS injection is with example
- List of all files with TTS injection applied (grouped by type)
- Backup location (~/.bmad-tts-backups/)
- Restore command for recovery
## Example Output
```
═══════════════════════════════════════════════════
AgentVibes TTS Injection Summary
═══════════════════════════════════════════════════
What is TTS Injection?
TTS (Text-to-Speech) injection adds voice instructions to BMAD agents,
enabling them to speak their responses aloud using AgentVibes.
Example: When you activate the PM agent, it will greet you with
spoken audio like "Hey! I'm your Project Manager. How can I help?"
✅ TTS injection applied to 11 file(s):
Party Mode (multi-agent conversations):
• .bmad/core/workflows/party-mode/instructions.md
Agent TTS (individual agent voices):
• .bmad/bmm/agents/analyst.md
• .bmad/bmm/agents/architect.md
...
Backups & Recovery:
Pre-injection backups are stored in:
~/.bmad-tts-backups/
To restore original files (removes TTS instructions):
bmad-tts-injector.sh --restore /path/to/.bmad
```
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-authored-by: Paul Preibisch <paul@paulpreibisch.com>
Co-authored-by: Claude <noreply@anthropic.com>