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]:
|
||||
|
||||
- [Icon Emoji] **[Agent Name]** ([Title]): [Brief role description]
|
||||
- [Icon Emoji] **[Agent Name]** ([Title]): [Brief role description]
|
||||
- [Icon Emoji] **[Agent Name]** ([Title]): [Brief role description]
|
||||
- [icon] **[displayName]** ([title]): [role]
|
||||
- [icon] **[displayName]** ([title]): [role]
|
||||
- [icon] **[displayName]** ([title]): [role]
|
||||
|
||||
**[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?**"
|
||||
|
||||
### 5. Present Continue Option
|
||||
|
|
|
|||
|
|
@ -73,9 +73,11 @@ Generate authentic responses for each selected agent:
|
|||
**Response Structure:**
|
||||
[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
|
||||
|
||||
|
|
|
|||
|
|
@ -29,20 +29,44 @@ function escapeXml(text) {
|
|||
* Build frontmatter for agent
|
||||
* @param {Object} metadata - Agent metadata
|
||||
* @param {string} agentName - Final agent name
|
||||
* @param {Object} ttsData - TTS data (intro and voices)
|
||||
* @returns {string} YAML frontmatter
|
||||
*/
|
||||
function buildFrontmatter(metadata, agentName) {
|
||||
function buildFrontmatter(metadata, agentName, ttsData = null) {
|
||||
const nameFromFile = agentName.replaceAll('-', ' ');
|
||||
const description = metadata.title || 'BMAD Agent';
|
||||
|
||||
return `---
|
||||
let frontmatter = `---
|
||||
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.
|
||||
|
||||
`;
|
||||
|
||||
return frontmatter;
|
||||
}
|
||||
|
||||
/**
|
||||
|
|
@ -393,8 +417,11 @@ function compileToXml(agentYaml, agentName = '', targetPath = '') {
|
|||
|
||||
let xml = '';
|
||||
|
||||
// Build frontmatter
|
||||
xml += buildFrontmatter(meta, agentName || meta.name || 'agent');
|
||||
// Extract TTS data from root level or agent level
|
||||
const ttsData = agentYaml.tts || agent.tts || null;
|
||||
|
||||
// Build frontmatter with TTS data
|
||||
xml += buildFrontmatter(meta, agentName || meta.name || 'agent', ttsData);
|
||||
|
||||
// Start code fence
|
||||
xml += '```xml\n';
|
||||
|
|
|
|||
Loading…
Reference in New Issue