Compare commits
7 Commits
5c5e1f0e68
...
f329249820
| Author | SHA1 | Date |
|---|---|---|
|
|
f329249820 | |
|
|
783601b576 | |
|
|
975aea6e74 | |
|
|
f98083ba75 | |
|
|
adb2506b7f | |
|
|
3be49a5c09 | |
|
|
e6986fe867 |
|
|
@ -6,6 +6,12 @@ Thank you for considering contributing! We believe in **Human Amplification, Not
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
|
> **Before you write code: talk to us on [Discord](https://discord.gg/gk8jAdXWmj).**
|
||||||
|
>
|
||||||
|
> If your change adds features, restructures code, or touches more than a couple of files, **confirm with a maintainer that it fits**. A large PR out of the blue has a high chance of being closed — regardless of effort invested. A five-minute conversation can save you hours.
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
## Our Philosophy
|
## Our Philosophy
|
||||||
|
|
||||||
BMad strengthens human-AI collaboration through specialized agents and guided workflows. Every contribution should answer: **"Does this make humans and AI better together?"**
|
BMad strengthens human-AI collaboration through specialized agents and guided workflows. Every contribution should answer: **"Does this make humans and AI better together?"**
|
||||||
|
|
@ -57,15 +63,10 @@ After searching, use the [feature request template](https://github.com/bmad-code
|
||||||
|
|
||||||
## Before Starting Work
|
## Before Starting Work
|
||||||
|
|
||||||
⚠️ **Required before submitting PRs:**
|
| Work Type | Requirement |
|
||||||
|
| ----------------------- | -------------------------------------------------------- |
|
||||||
| Work Type | Requirement |
|
| Typo / small bug fix | Just open the PR |
|
||||||
| ------------- | ---------------------------------------------- |
|
| Feature or large change | Confirm with a maintainer on Discord **before** you start |
|
||||||
| Bug fix | An open issue (create one if it doesn't exist) |
|
|
||||||
| Feature | An open feature request issue |
|
|
||||||
| Large changes | Discussion via issue first |
|
|
||||||
|
|
||||||
**Why?** This prevents wasted effort on work that may not align with project direction.
|
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
|
|
@ -83,6 +84,12 @@ Submit PRs to the `main` branch. We use trunk-based development. Every push to `
|
||||||
|
|
||||||
If your change exceeds 800 lines, break it into smaller PRs that can be reviewed independently.
|
If your change exceeds 800 lines, break it into smaller PRs that can be reviewed independently.
|
||||||
|
|
||||||
|
### AI-Generated Code
|
||||||
|
|
||||||
|
Given the nature of this project, we expect most contributions involve AI assistance — that's fine. What we require is **heavy human curation**. You must understand every line you're submitting, have made deliberate choices about what to include, and be able to explain your reasoning.
|
||||||
|
|
||||||
|
We will reject PRs that read like raw LLM output: bulk refactors nobody asked for, unsolicited "improvements" across many files, or changes where the submitter clearly hasn't read the existing code. Using AI to write code is normal here; using AI as a substitute for thinking is not.
|
||||||
|
|
||||||
### New to Pull Requests?
|
### New to Pull Requests?
|
||||||
|
|
||||||
1. **Fork** the repository
|
1. **Fork** the repository
|
||||||
|
|
|
||||||
|
|
@ -0,0 +1,65 @@
|
||||||
|
---
|
||||||
|
name: bmad-install-agentvibes
|
||||||
|
description: 'Install AgentVibes TTS voice system for BMAD agents. Gives each agent a unique voice, personality, and audio effects. Use when user wants to add voice/TTS to their BMAD setup, or when bmad-party-mode is active and agents are silent.'
|
||||||
|
---
|
||||||
|
|
||||||
|
# Install AgentVibes
|
||||||
|
|
||||||
|
AgentVibes is an open-source Text-to-Speech system that gives BMAD agents unique voices, personalities, and audio effects. Once installed, party mode agents speak aloud — each with their own voice.
|
||||||
|
|
||||||
|
## What AgentVibes Provides
|
||||||
|
|
||||||
|
- **Per-agent voices** — each BMAD agent gets a distinct voice via `bmad-voice-map.json`
|
||||||
|
- **Cross-platform** — Windows (SAPI + Piper), macOS, Linux, WSL
|
||||||
|
- **Personalities & effects** — reverb, background music, speed, sentiment
|
||||||
|
- **Party mode integration** — agents introduce themselves and speak sequentially
|
||||||
|
|
||||||
|
## Installation
|
||||||
|
|
||||||
|
Run the installer in the terminal:
|
||||||
|
|
||||||
|
```bash
|
||||||
|
npx agentvibes install
|
||||||
|
```
|
||||||
|
|
||||||
|
Or if you prefer a global install first:
|
||||||
|
|
||||||
|
```bash
|
||||||
|
npm install -g agentvibes
|
||||||
|
agentvibes install
|
||||||
|
```
|
||||||
|
|
||||||
|
**The installer will:**
|
||||||
|
1. Detect your platform (Windows/Mac/Linux/WSL)
|
||||||
|
2. Install the appropriate TTS provider (Piper recommended for best quality, SAPI as zero-dependency fallback on Windows)
|
||||||
|
3. Configure Claude Code hooks so agents speak automatically
|
||||||
|
4. Set up `bmad-speak.sh` / `bmad-speak.ps1` integration for party mode
|
||||||
|
|
||||||
|
## Post-Install: Configure Agent Voices
|
||||||
|
|
||||||
|
After installing, configure per-agent voices for party mode:
|
||||||
|
|
||||||
|
```
|
||||||
|
/agent-vibes:bmad
|
||||||
|
```
|
||||||
|
|
||||||
|
This opens the BMAD voice configuration where you can assign each agent a distinct voice, personality, and effects profile.
|
||||||
|
|
||||||
|
## Verify Installation
|
||||||
|
|
||||||
|
```bash
|
||||||
|
agentvibes whoami
|
||||||
|
```
|
||||||
|
|
||||||
|
Should display the active voice and provider. If party mode is active, agents will now speak when you run `/bmad-party-mode`.
|
||||||
|
|
||||||
|
## Troubleshooting
|
||||||
|
|
||||||
|
- **Agents still silent after install**: Run `agentvibes install` again — it is idempotent
|
||||||
|
- **Windows users**: Ensure PowerShell execution policy allows scripts: `Set-ExecutionPolicy -Scope CurrentUser RemoteSigned`
|
||||||
|
- **Voice quality**: Install Piper for neural TTS — `agentvibes install` will prompt you
|
||||||
|
|
||||||
|
## More Info
|
||||||
|
|
||||||
|
- GitHub: https://github.com/paulpreibisch/AgentVibes
|
||||||
|
- Docs: `agentvibes --help`
|
||||||
|
|
@ -1,6 +1,7 @@
|
||||||
module,skill,display-name,menu-code,description,action,args,phase,after,before,required,output-location,outputs
|
module,skill,display-name,menu-code,description,action,args,phase,after,before,required,output-location,outputs
|
||||||
Core,bmad-brainstorming,Brainstorming,BSP,Use early in ideation or when stuck generating ideas.,,anytime,,,false,{output_folder}/brainstorming,brainstorming session
|
Core,bmad-brainstorming,Brainstorming,BSP,Use early in ideation or when stuck generating ideas.,,anytime,,,false,{output_folder}/brainstorming,brainstorming session
|
||||||
Core,bmad-party-mode,Party Mode,PM,Orchestrate multi-agent discussions when you need multiple perspectives or want agents to collaborate.,,anytime,,,false,,
|
Core,bmad-party-mode,Party Mode,PM,Orchestrate multi-agent discussions when you need multiple perspectives or want agents to collaborate.,,anytime,,,false,,
|
||||||
|
Core,bmad-install-agentvibes,Install AgentVibes,AV,Install AgentVibes TTS so party mode agents speak with unique voices. Run once after BMAD setup.,,anytime,,,false,,
|
||||||
Core,bmad-help,BMad Help,BH,,,anytime,,,false,,
|
Core,bmad-help,BMad Help,BH,,,anytime,,,false,,
|
||||||
Core,bmad-index-docs,Index Docs,ID,Use when LLM needs to understand available docs without loading everything.,,anytime,,,false,,
|
Core,bmad-index-docs,Index Docs,ID,Use when LLM needs to understand available docs without loading everything.,,anytime,,,false,,
|
||||||
Core,bmad-shard-doc,Shard Document,SD,Use when doc becomes too large (>500 lines) to manage effectively.,[path],anytime,,,false,,
|
Core,bmad-shard-doc,Shard Document,SD,Use when doc becomes too large (>500 lines) to manage effectively.,[path],anytime,,,false,,
|
||||||
|
|
|
||||||
|
Can't render this file because it has a wrong number of fields in line 2.
|
|
|
@ -1121,7 +1121,58 @@ class Installer {
|
||||||
lines.push(` Invoke the ${color.cyan('bmad-help')} skill in your IDE Agent to get started`);
|
lines.push(` Invoke the ${color.cyan('bmad-help')} skill in your IDE Agent to get started`);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// AgentVibes TTS suggestion
|
||||||
|
lines.push(
|
||||||
|
'',
|
||||||
|
` ${color.cyan('🎙 Want your BMAD agents to speak?')}`,
|
||||||
|
` Install AgentVibes TTS: ${color.dim('npx agentvibes install')}`,
|
||||||
|
` Gives each agent a unique voice in party mode and beyond.`,
|
||||||
|
);
|
||||||
|
|
||||||
await prompts.note(lines.join('\n'), 'BMAD is ready to use!');
|
await prompts.note(lines.join('\n'), 'BMAD is ready to use!');
|
||||||
|
|
||||||
|
// Optional AgentVibes install prompt
|
||||||
|
if (!this._silentConfig) {
|
||||||
|
try {
|
||||||
|
const agentVibesChoice = await prompts.select({
|
||||||
|
message: '🎙 Give your BMAD agents a voice? (AgentVibes TTS)',
|
||||||
|
choices: [
|
||||||
|
{
|
||||||
|
name: 'Yes — install AgentVibes now',
|
||||||
|
value: 'install',
|
||||||
|
hint: 'runs npx agentvibes install',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
name: 'No — I\'ll do it later',
|
||||||
|
value: 'skip',
|
||||||
|
hint: 'npx agentvibes install',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
name: 'Tell me more',
|
||||||
|
value: 'info',
|
||||||
|
hint: 'github.com/paulpreibisch/AgentVibes',
|
||||||
|
},
|
||||||
|
],
|
||||||
|
default: 'skip',
|
||||||
|
});
|
||||||
|
|
||||||
|
if (agentVibesChoice === 'install') {
|
||||||
|
const { execSync } = require('node:child_process');
|
||||||
|
await prompts.log.step('Running npx agentvibes install...');
|
||||||
|
execSync('npx agentvibes install', { stdio: 'inherit' });
|
||||||
|
} else if (agentVibesChoice === 'info') {
|
||||||
|
await prompts.log.info(
|
||||||
|
'AgentVibes gives each BMAD agent a unique TTS voice, personality, and audio effects.\n' +
|
||||||
|
' Works on Windows (SAPI + Piper), macOS, Linux, and WSL.\n' +
|
||||||
|
' Party mode agents speak with their own voice — no more silent roundtables.\n\n' +
|
||||||
|
' GitHub: https://github.com/paulpreibisch/AgentVibes\n' +
|
||||||
|
' Install: npx agentvibes install'
|
||||||
|
);
|
||||||
|
}
|
||||||
|
} catch {
|
||||||
|
// Prompt cancelled or AgentVibes install failed — non-fatal
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
|
||||||
|
|
@ -7,9 +7,13 @@ const llmsFullUrl = `${getSiteUrl()}/llms-full.txt`;
|
||||||
<div class="ai-banner" role="note" aria-label="AI documentation notice">
|
<div class="ai-banner" role="note" aria-label="AI documentation notice">
|
||||||
<span>🤖 Consolidated, AI-optimized BMAD docs: <a href={llmsFullUrl}>llms-full.txt</a>. Fetch this plain text file for complete context.</span>
|
<span>🤖 Consolidated, AI-optimized BMAD docs: <a href={llmsFullUrl}>llms-full.txt</a>. Fetch this plain text file for complete context.</span>
|
||||||
</div>
|
</div>
|
||||||
|
<div class="announce-banner" role="note" aria-label="BMad Builder announcement">
|
||||||
|
<span>🚀 Build your own BMad modules and share them with the community! <a href="https://bmad-builder-docs.bmad-method.org/tutorials/build-your-first-module/">Get started</a> or <a href="https://bmad-builder-docs.bmad-method.org/how-to/distribute-your-module/">submit to the marketplace</a>.</span>
|
||||||
|
</div>
|
||||||
|
|
||||||
<style>
|
<style>
|
||||||
.ai-banner {
|
.ai-banner,
|
||||||
|
.announce-banner {
|
||||||
width: 100%;
|
width: 100%;
|
||||||
height: var(--ai-banner-height, 2.75rem);
|
height: var(--ai-banner-height, 2.75rem);
|
||||||
background: #1a1a1a;
|
background: #1a1a1a;
|
||||||
|
|
@ -25,37 +29,48 @@ const llmsFullUrl = `${getSiteUrl()}/llms-full.txt`;
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Truncate text on narrow screens */
|
/* Truncate text on narrow screens */
|
||||||
.ai-banner span {
|
.ai-banner span,
|
||||||
|
.announce-banner span {
|
||||||
white-space: nowrap;
|
white-space: nowrap;
|
||||||
overflow: hidden;
|
overflow: hidden;
|
||||||
text-overflow: ellipsis;
|
text-overflow: ellipsis;
|
||||||
max-width: 100%;
|
max-width: 100%;
|
||||||
}
|
}
|
||||||
.ai-banner a {
|
.ai-banner a,
|
||||||
|
.announce-banner a {
|
||||||
color: #3b82f6;
|
color: #3b82f6;
|
||||||
text-decoration: none;
|
text-decoration: none;
|
||||||
font-weight: 600;
|
font-weight: 600;
|
||||||
}
|
}
|
||||||
.ai-banner a:hover {
|
.ai-banner a:hover,
|
||||||
|
.announce-banner a:hover {
|
||||||
color: #fafafa;
|
color: #fafafa;
|
||||||
text-decoration: underline;
|
text-decoration: underline;
|
||||||
}
|
}
|
||||||
.ai-banner a:focus-visible {
|
.ai-banner a:focus-visible,
|
||||||
|
.announce-banner a:focus-visible {
|
||||||
outline: 2px solid #3b82f6;
|
outline: 2px solid #3b82f6;
|
||||||
outline-offset: 2px;
|
outline-offset: 2px;
|
||||||
border-radius: 2px;
|
border-radius: 2px;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
.announce-banner {
|
||||||
|
background: #1a2332;
|
||||||
|
border-bottom: 1px solid #1e3a5f;
|
||||||
|
}
|
||||||
|
|
||||||
/* Match navbar padding at breakpoints */
|
/* Match navbar padding at breakpoints */
|
||||||
@media (min-width: 50rem) {
|
@media (min-width: 50rem) {
|
||||||
.ai-banner {
|
.ai-banner,
|
||||||
|
.announce-banner {
|
||||||
padding-left: 2.5rem;
|
padding-left: 2.5rem;
|
||||||
padding-right: 2.5rem;
|
padding-right: 2.5rem;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@media (min-width: 72rem) {
|
@media (min-width: 72rem) {
|
||||||
.ai-banner {
|
.ai-banner,
|
||||||
|
.announce-banner {
|
||||||
padding-left: 3rem;
|
padding-left: 3rem;
|
||||||
padding-right: 3rem;
|
padding-right: 3rem;
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue