Skip to content

feat(ide): add Mistral Vibe CLI suppor#1507

Closed
AntonioTriguero wants to merge 9 commits intobmad-code-org:mainfrom
AntonioTriguero:feat/mistral-support
Closed

feat(ide): add Mistral Vibe CLI suppor#1507
AntonioTriguero wants to merge 9 commits intobmad-code-org:mainfrom
AntonioTriguero:feat/mistral-support

Conversation

@AntonioTriguero
Copy link
Copy Markdown

What

Adds Mistral Vibe CLI support to BMAD, enabling users to leverage Mistral's CLI tools with BMAD's agent framework and workflows. This integration allows BMAD skills to be used seamlessly with the Mistral Vibe CLI environment.

Why

Mistral Vibe CLI is becoming a popular CLI tool for AI development, and this integration enables BMAD users to take advantage of its capabilities while maintaining compatibility with BMAD's existing workflows and agents. This enhances human-AI collaboration by providing more tooling options for developers.

How

  • Added mistral-vibe.js IDE handler that generates BMAD skills in Mistral Vibe format
  • Registered Mistral Vibe in platform-codes.yaml for proper IDE detection
  • Updated manager.js to load the Mistral Vibe handler during IDE setup
  • Implemented skill generation for agents, workflows, and utility skills
  • Ensured all skills follow Mistral Vibe CLI conventions and formats

Testing

  • Verified skill generation creates proper Mistral Vibe CLI skill files
  • Confirmed all generated skills have correct metadata and structure
  • Tested integration with BMAD installation process
  • Validated linting compliance and code quality standards

Addresses #128

@coderabbitai
Copy link
Copy Markdown

coderabbitai bot commented Feb 1, 2026

📝 Walkthrough

Walkthrough

This PR introduces support for Mistral Vibe CLI by adding a custom installer that configures Mistral Vibe projects with skills derived from agent artifacts and workflows. It includes a new setup class, platform registry entry, installer manager integration, and .gitignore updates.

Changes

Cohort / File(s) Summary
Ignore Configuration
.gitignore
Added .vibe file pattern to version control exclusions.
Installer Infrastructure
tools/cli/installers/lib/ide/manager.js
Integrated mistral-vibe.js into the custom installer loader to enable runtime discovery and execution of the Mistral Vibe setup handler.
Platform Registry
tools/cli/installers/lib/ide/platform-codes.yaml
Registered new mistral-vibe platform with CLI category and metadata pointing to custom installer implementation.
Mistral Vibe Setup
tools/cli/installers/lib/ide/mistral-vibe.js
Introduced MistralVibeSetup class that orchestrates project configuration by collecting agent artifacts and workflows, generating SKILL.md files with proper naming conventions, creating utility skills, and managing the .vibe/skills directory structure.

Sequence Diagram(s)

sequenceDiagram
    participant CLI as CLI Installer
    participant Setup as MistralVibeSetup
    participant AgentGen as AgentCommandGenerator
    participant WorkflowGen as WorkflowCommandGenerator
    participant FS as File System

    CLI->>Setup: execute(projectPath)
    Setup->>Setup: Force CLI mode
    Setup->>FS: Create .vibe/skills directory
    Setup->>FS: Clear old BMAD files (keep README)
    
    Setup->>AgentGen: Collect core agents
    AgentGen-->>Setup: Agent artifacts
    Setup->>Setup: Merge with BMM exclusions
    Setup->>FS: Write agent SKILL.md files
    
    Setup->>WorkflowGen: Load BMAD workflows
    WorkflowGen-->>Setup: Workflows list
    Setup->>Setup: Filter BMM-related workflows
    Setup->>FS: Write workflow SKILL.md files
    
    Setup->>FS: Write utility skills (brainstorm, help, party-mode)
    Setup->>Setup: Aggregate skill counts
    Setup-->>CLI: Return status with summary
Loading

Estimated code review effort

🎯 3 (Moderate) | ⏱️ ~20 minutes

🚥 Pre-merge checks | ✅ 3
✅ Passed checks (3 passed)
Check name Status Explanation
Title check ✅ Passed The pull request title clearly summarizes the main change: adding Mistral Vibe CLI support to the IDE configuration, which aligns with the primary objective of the changeset.
Description check ✅ Passed The pull request description is well-structured and directly related to the changeset, explaining what was added, why it matters, and how it was implemented with comprehensive testing details.
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.

✏️ Tip: You can configure your own custom pre-merge checks in the settings.

✨ Finishing touches
  • 📝 Generate docstrings
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Post copyable unit tests in a comment

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands and usage tips.

Copy link
Copy Markdown

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 3

🤖 Fix all issues with AI agents
In `@tools/cli/installers/lib/ide/mistral-vibe.js`:
- Around line 113-125: The SKILL.md frontmatter uses the unprefixed
workflow.name while writeMistralVibeWorkflows creates directories named with the
bmm- prefix, causing a name mismatch; update generateWorkflowSkillContent to
accept the prefixed skillName (already passed where used) and set frontmatter
name: to skillName while still using workflow.name (or a local workflowName
variable) when building the workflowPath and description (e.g., call
this.getWorkflowDescription(workflowName) and build paths from workflowName),
ensuring generateWorkflowSkillContent(skill, skillName) writes name:
${skillName} but computes paths/descriptions from workflow.name.
- Around line 94-108: The agent naming and frontmatter are inconsistent: update
writeMistralVibeArtifacts to derive skillName from artifact.module when prefix
=== 'agent' (use `agent-bmm-${artifact.name}` if artifact.module === 'bmm' else
`agent-${artifact.name}`) instead of forcing `agent-bmm-*`, and ensure you pass
that final skillName into generateAgentSkillContent; then modify
generateAgentSkillContent(artifact, skillName) to use artifact.module to choose
the agentPath (`_bmad/bmm/agents/${artifact.name}.md` for bmm, otherwise
`_bmad/core/agents/${artifact.name}.md`) and set the SKILL frontmatter name to
the passed skillName so file paths and frontmatter names align (references:
writeMistralVibeArtifacts, generateAgentSkillContent, skillName,
artifact.module, artifact.name).
- Around line 145-156: The template string assigned to skillContent currently
hardcodes ".vibe/_bmad" which breaks configurable BMAD folder names; update the
path construction to use this.bmadFolderName (e.g., replace occurrences of
".vibe/_bmad" with `.vibe/${this.bmadFolderName}`) inside the skillContent
template and any other places in this file where "_bmad" is hardcoded
(referenced by the reviewer at line ~347); ensure you only change the path
segments and keep the rest of the template text intact, using the skill.name
variable as already present.

Addresses bmad-code-org#1286

This commit adds comprehensive Mistral Vibe CLI support to BMAD Method, enabling BMAD skills to work seamlessly with Mistral's CLI tools.

### Key Changes:

1. **Mistral Vibe IDE Handler** (`mistral-vibe.js`):
   - Complete Mistral Vibe CLI integration with skill generation
   - Generates agent skills with proper `agent-` and `agent-bmm-` prefixes
   - Creates workflow skills with `bmm-` prefixes
   - Includes core skills (brainstorming, help, party-mode)
   - Uses `artifact.module` for consistent agent type determination

2. **Base IDE Class Enhancement** (`_base-ide.js`):
   - Added `{bmad-folder}` placeholder support alongside existing `_bmad`
   - Maintains full backward compatibility
   - Enables configurable BMAD folder names for all IDE handlers

3. **Code Quality Improvements**:
   - Fixed hardcoded `_bmad` paths with configurable `{bmad-folder}` placeholder
   - Updated method signatures for consistency (`artifact, skillName`)
   - Removed duplicate method implementations
   - All changes pass ESLint validation

### Technical Details:

- **Placeholder System**: Uses `{bmad-folder}` placeholder that gets replaced with actual folder name
- **Configurable**: Supports custom BMAD folder names via `setBmadFolderName()`
- **Backward Compatible**: Existing `_bmad` placeholder continues to work
- **Pattern Compliance**: Follows BMAD's established IDE handler patterns

### Testing:

- ✅ All linting passes
- ✅ Placeholder replacement works with custom folder names
- ✅ Existing IDE handlers unaffected
- ✅ Mistral Vibe integration functional
- ✅ Skill generation produces valid YAML frontmatter
AntonioTriguero and others added 3 commits February 2, 2026 14:20
- 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 <vibe@mistral.ai>
@bmadcode
Copy link
Copy Markdown
Collaborator

bmadcode commented Feb 6, 2026

I think this can be reimplemented as just a configuration for most of this, instead of requiring a new ide file. trying to have everything be config driven going forward unless its drastically different. Can you change it to be config driven instead?

Copy link
Copy Markdown
Collaborator

@bmadcode bmadcode left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This should be config driven and not add a new ide file.

@bmadcode
Copy link
Copy Markdown
Collaborator

requested changes - no updates. will close and consider Vibe CLI support with our roadmap

@bmadcode bmadcode closed this Feb 19, 2026
@welcoMattic
Copy link
Copy Markdown

Any chance to see this one reconsidered soon? @bmadcode @AntonioTriguero

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants