From d8038d78489e6194797d0dcb3396df967800ba6a Mon Sep 17 00:00:00 2001 From: Antonio Triguero Noriega Date: Tue, 3 Feb 2026 23:56:33 +0100 Subject: [PATCH] fix: resolve Mistral Vibe setup naming inconsistencies - Fix workflow name mismatch in generateWorkflowSkillContent - Fix agent naming inconsistency in writeMistralVibeArtifacts and generateAgentSkillContent - Replace hardcoded {bmad-folder} placeholders with configurable this.bmadFolderName These changes ensure that directory names, frontmatter names, and file paths all align properly while maintaining support for configurable BMAD folder names. Generated by Mistral Vibe. Co-Authored-By: Mistral Vibe --- tools/cli/installers/lib/ide/mistral-vibe.js | 20 +++++++++++--------- 1 file changed, 11 insertions(+), 9 deletions(-) diff --git a/tools/cli/installers/lib/ide/mistral-vibe.js b/tools/cli/installers/lib/ide/mistral-vibe.js index 99da3766..3f116e1f 100644 --- a/tools/cli/installers/lib/ide/mistral-vibe.js +++ b/tools/cli/installers/lib/ide/mistral-vibe.js @@ -95,7 +95,9 @@ class MistralVibeSetup extends BaseIdeSetup { let count = 0; for (const artifact of artifacts) { const skillName = - prefix === 'agent' ? (artifact.name === 'bmad-master' ? 'agent-bmad-master' : `agent-bmm-${artifact.name}`) : artifact.name; + prefix === 'agent' + ? (artifact.module === 'bmm' ? `agent-bmm-${artifact.name}` : `agent-${artifact.name}`) + : artifact.name; const skillDir = path.join(destDir, skillName); await fs.ensureDir(skillDir); @@ -152,7 +154,7 @@ user-invocable: True # ${skill.name.toUpperCase()} -IT IS CRITICAL THAT YOU FOLLOW THIS COMMAND: LOAD the FULL @.vibe/{bmad-folder}/core/workflows/${skill.name}/workflow.md, READ its entire contents and follow its directions exactly!`; +IT IS CRITICAL THAT YOU FOLLOW THIS COMMAND: LOAD the FULL @.vibe/${this.bmadFolderName}/core/workflows/${skill.name}/workflow.md, READ its entire contents and follow its directions exactly!`; await fs.writeFile(path.join(skillDir, 'SKILL.md'), skillContent); count++; @@ -259,10 +261,10 @@ This skill provides ${skill.description.toLowerCase()} functionality.`; async generateAgentSkillContent(artifact, skillName) { const agentName = artifact.name; const isBmmAgent = artifact.module === 'bmm'; - const agentPath = isBmmAgent ? `{bmad-folder}/bmm/agents/${agentName}.md` : `{bmad-folder}/core/agents/${agentName}.md`; + const agentPath = isBmmAgent ? `${this.bmadFolderName}/bmm/agents/${agentName}.md` : `${this.bmadFolderName}/core/agents/${agentName}.md`; return `--- -name: ${skill.name} +name: ${skillName} description: ${agentName} agent license: MIT compatibility: Mistral Vibe CLI @@ -291,21 +293,21 @@ You must fully embody this agent's persona and follow all activation instruction switch (workflowName) { case 'brainstorming': case 'party-mode': { - workflowPath = `{bmad-folder}/core/workflows/${workflowName}/workflow.md`; + workflowPath = `${this.bmadFolderName}/core/workflows/${workflowName}/workflow.md`; break; } case 'help': { - workflowPath = `{bmad-folder}/core/tasks/help.md`; + workflowPath = `${this.bmadFolderName}/core/tasks/help.md`; break; } default: { // BMM workflows are in various subdirectories - workflowPath = `{bmad-folder}/bmm/workflows/${workflowName}/workflow.md`; + workflowPath = `${this.bmadFolderName}/bmm/workflows/${workflowName}/workflow.md`; } } return `--- -name: ${skill.name} +name: ${skillName} description: ${this.getWorkflowDescription(workflowName)} license: MIT compatibility: Mistral Vibe CLI @@ -335,7 +337,7 @@ user-invocable: True # ${skill.name.toUpperCase()} -IT IS CRITICAL THAT YOU FOLLOW THIS COMMAND: LOAD the FULL @.vibe/{bmad-folder}/core/workflows/${skill.name}/workflow.md, READ its entire contents and follow its directions exactly!`; +IT IS CRITICAL THAT YOU FOLLOW THIS COMMAND: LOAD the FULL @.vibe/${this.bmadFolderName}/core/workflows/${skill.name}/workflow.md, READ its entire contents and follow its directions exactly!`; } getWorkflowDescription(workflowName) {