Compare commits
2 Commits
6f95e04df7
...
555e77016c
| Author | SHA1 | Date |
|---|---|---|
|
|
555e77016c | |
|
|
7f36711e6c |
|
|
@ -79,12 +79,14 @@ Welcome {{user_name}}! I'm excited to facilitate an incredible multi-agent discu
|
||||||
|
|
||||||
[Display 3-4 diverse agents to showcase variety]:
|
[Display 3-4 diverse agents to showcase variety]:
|
||||||
|
|
||||||
- [Icon Emoji] **[Agent Name]** ([Title]): [Brief role description]
|
- [icon] **[displayName]** ([title]): [role]
|
||||||
- [Icon Emoji] **[Agent Name]** ([Title]): [Brief role description]
|
- [icon] **[displayName]** ([title]): [role]
|
||||||
- [Icon Emoji] **[Agent Name]** ([Title]): [Brief role description]
|
- [icon] **[displayName]** ([title]): [role]
|
||||||
|
|
||||||
**[Total Count] agents** are ready to contribute their expertise!
|
**[Total Count] agents** are ready to contribute their expertise!
|
||||||
|
|
||||||
|
**CRITICAL:** Use the `displayName` field from the manifest CSV (e.g., "Mary", "Winston", "Amelia"), NOT the `name` field (e.g., "analyst", "architect", "dev").
|
||||||
|
|
||||||
**What would you like to discuss with the team today?**"
|
**What would you like to discuss with the team today?**"
|
||||||
|
|
||||||
### 5. Present Continue Option
|
### 5. Present Continue Option
|
||||||
|
|
|
||||||
|
|
@ -73,9 +73,11 @@ Generate authentic responses for each selected agent:
|
||||||
**Response Structure:**
|
**Response Structure:**
|
||||||
[For each selected agent]:
|
[For each selected agent]:
|
||||||
|
|
||||||
"[Icon Emoji] **[Agent Name]**: [Authentic in-character response]
|
"[icon] **[displayName]**: [Authentic in-character response]
|
||||||
|
|
||||||
[Bash: .claude/hooks/bmad-speak.sh \"[Agent Name]\" \"[Their response]\"]"
|
[Bash: .claude/hooks/bmad-speak.sh \"[displayName]\" \"[Their response]\"]"
|
||||||
|
|
||||||
|
**CRITICAL:** Use the `displayName` field from the manifest (e.g., "Mary", "Winston", "Amelia"), NOT the `name` field.
|
||||||
|
|
||||||
### 4. Natural Cross-Talk Integration
|
### 4. Natural Cross-Talk Integration
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -29,20 +29,44 @@ function escapeXml(text) {
|
||||||
* Build frontmatter for agent
|
* Build frontmatter for agent
|
||||||
* @param {Object} metadata - Agent metadata
|
* @param {Object} metadata - Agent metadata
|
||||||
* @param {string} agentName - Final agent name
|
* @param {string} agentName - Final agent name
|
||||||
|
* @param {Object} ttsData - TTS data (intro and voices)
|
||||||
* @returns {string} YAML frontmatter
|
* @returns {string} YAML frontmatter
|
||||||
*/
|
*/
|
||||||
function buildFrontmatter(metadata, agentName) {
|
function buildFrontmatter(metadata, agentName, ttsData = null) {
|
||||||
const nameFromFile = agentName.replaceAll('-', ' ');
|
const nameFromFile = agentName.replaceAll('-', ' ');
|
||||||
const description = metadata.title || 'BMAD Agent';
|
const description = metadata.title || 'BMAD Agent';
|
||||||
|
|
||||||
return `---
|
let frontmatter = `---
|
||||||
name: "${nameFromFile}"
|
name: "${nameFromFile}"
|
||||||
description: "${description}"
|
description: "${description}"`;
|
||||||
---
|
|
||||||
|
// Include TTS data if available
|
||||||
|
if (ttsData) {
|
||||||
|
frontmatter += `\ntts:`;
|
||||||
|
|
||||||
|
if (ttsData.intro) {
|
||||||
|
// Escape double quotes in intro
|
||||||
|
const escapedIntro = ttsData.intro.replaceAll('"', String.raw`\"`);
|
||||||
|
frontmatter += `\n intro: "${escapedIntro}"`;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (ttsData.voices && Array.isArray(ttsData.voices)) {
|
||||||
|
frontmatter += `\n voices:`;
|
||||||
|
for (const voice of ttsData.voices) {
|
||||||
|
frontmatter += `\n -`;
|
||||||
|
if (voice.piper) frontmatter += ` piper: "${voice.piper}"`;
|
||||||
|
if (voice.mac) frontmatter += ` mac: "${voice.mac}"`;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
frontmatter += `\n---
|
||||||
|
|
||||||
You must fully embody this agent's persona and follow all activation instructions exactly as specified. NEVER break character until given an exit command.
|
You must fully embody this agent's persona and follow all activation instructions exactly as specified. NEVER break character until given an exit command.
|
||||||
|
|
||||||
`;
|
`;
|
||||||
|
|
||||||
|
return frontmatter;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
@ -393,8 +417,11 @@ function compileToXml(agentYaml, agentName = '', targetPath = '') {
|
||||||
|
|
||||||
let xml = '';
|
let xml = '';
|
||||||
|
|
||||||
// Build frontmatter
|
// Extract TTS data from root level or agent level
|
||||||
xml += buildFrontmatter(meta, agentName || meta.name || 'agent');
|
const ttsData = agentYaml.tts || agent.tts || null;
|
||||||
|
|
||||||
|
// Build frontmatter with TTS data
|
||||||
|
xml += buildFrontmatter(meta, agentName || meta.name || 'agent', ttsData);
|
||||||
|
|
||||||
// Start code fence
|
// Start code fence
|
||||||
xml += '```xml\n';
|
xml += '```xml\n';
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue