feat: add Mistral Vibe harness support#373
Open
fuegoio wants to merge 1 commit into
Open
Conversation
Mistral Vibe is Mistral AI's open-source CLI coding assistant that ships an
Agent Skills system at .vibe/skills/{name}/SKILL.md with slash-command
invocation, mapping cleanly onto the existing transformer pipeline. Adds
Vibe as a 14th first-class harness:
- PROVIDER_PLACEHOLDERS entry in scripts/lib/utils.js (model, config_file
= AGENTS.md, ask_instruction, command_prefix) mirroring the Qoder shape.
- PROVIDERS entry in scripts/lib/transformers/providers.js with configDir
.vibe and frontmatterFields user-invocable, license, compatibility,
metadata, allowed-tools (Vibe docs do not document argument-hint).
- transformVibe named export in scripts/lib/transformers/index.js for
test-spy parity.
- vibe added to FILE_DOWNLOAD_PROVIDER_CONFIG_DIRS so the download
endpoint accepts /api/download/skill/vibe/* and resolves to
dist/vibe/.vibe/.
- .vibe added to PROVIDER_DIRS, PROVIDER_ALIASES, PROVIDER_DISPLAY,
PROVIDER_INPUT_ORDER, GLOBAL_HARNESS_HINTS, and the normalizeForHash
provider regex in cli/bin/commands/skills.mjs so the CLI detects
existing Vibe installs.
- docs/HARNESSES.md updated: official docs row, frontmatter support
column, directory structure row, and Last verified date bumped.
- docs/DEVELOP.md, README.md (install instructions, providers list,
Supported Tools), .github issue/PR templates, sync-generated-output
workflow, and AGENTS.md extended with Vibe.
The dynamic providers.test.js loop picks up Vibe automatically; all 160
provider tests pass including the 14 new Mistral Vibe cases. The build
regenerates dist/vibe/.vibe/skills/impeccable/ with correct frontmatter
and .vibe-substituted script paths. Generated harness output is left
unstaged per the source-first policy; the sync-generated-output workflow
(now listing .vibe) will commit it back to main after merge.
Co-Authored-By: Mistral Vibe <noreply@mistral.ai>
There was a problem hiding this comment.
Pull request overview
Adds Mistral Vibe as a new provider/harness target across Impeccable’s transformer + distribution pipeline, and wires it into the CLI install/update/download surfaces and the public docs/templates.
Changes:
- Added a new
vibeprovider configuration (config dir, tags, supported frontmatter fields) and exported atransformVibetransformer. - Updated the CLI provider detection/aliasing and download provider lists to recognize and handle
.vibe. - Updated docs and repository templates to include Mistral Vibe in provider lists and harness capability tables.
Reviewed changes
Copilot reviewed 11 out of 12 changed files in this pull request and generated 1 comment.
Show a summary per file
| File | Description |
|---|---|
| scripts/lib/utils.js | Adds vibe placeholders and provider block tag support. |
| scripts/lib/transformers/providers.js | Registers the vibe provider (dir/name/frontmatter fields). |
| scripts/lib/transformers/index.js | Exports transformVibe for parity with other providers. |
| cli/bin/commands/skills.mjs | Adds .vibe to provider discovery/aliases/display, hashing normalization, and global harness hints. |
| cli/lib/download-providers.js | Allows vibe in file-download provider validation and config dir mapping. |
| docs/HARNESSES.md | Documents Vibe in the harness list, frontmatter matrix, and directory structure table. |
| README.md | Adds Vibe to provider lists and manual install instructions. |
| docs/DEVELOP.md | Adds a link to the Vibe skills docs. |
| AGENTS.md | Updates the tracked harness folder enumeration to include .vibe/skills/. |
| .github/workflows/sync-generated-output.yml | Adds .vibe to the generated-output sync scope. |
| .github/PULL_REQUEST_TEMPLATE.md | Adds Mistral Vibe to the provider checklist item. |
| .github/ISSUE_TEMPLATE/feature_request.md | Adds Mistral Vibe to the feature-request provider list. |
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
| | Trae China | `.trae-cn/skills/` | TBD | | ||
| | Trae International | `.trae/skills/` | TBD | | ||
| | Rovo Dev | `.rovodev/skills/` | `~/.rovodev/skills/` (user-level) | | ||
| | Mistral Vibe | `.vibe/skills/` | `~/.vibe/skills/`, `.agents/skills/` | |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Adds Mistral Vibe as a supported provider in the Impeccable build system. Vibe is Mistral AI's open-source CLI coding agent, reading skills from
.vibe/skills/{name}/SKILL.mdat the project level (and~/.vibe/skills/for user-level installs). The format mirrors the Agent Skills standard — YAML frontmatter includinguser-invocable,license,compatibility,metadata, andallowed-toolsare all supported. (Vibe's docs do not documentargument-hint, so it is omitted fromfrontmatterFieldsto avoid emitting fields the harness is not known to consume.)References
Changes
scripts/lib/utils.js— AddedvibetoPROVIDER_PLACEHOLDERS(model,config_file: "AGENTS.md",ask_instruction,command_prefix) mirroring the Qoder shape, and toPROVIDER_BLOCK_TAGSscripts/lib/transformers/providers.js— Addedvibeprovider config (configDir: ".vibe",displayName: "Mistral Vibe") withfrontmatterFields: ['user-invocable', 'license', 'compatibility', 'metadata', 'allowed-tools']scripts/lib/transformers/index.js— ExportedtransformVibefor test-spy parity with the other named providerscli/bin/commands/skills.mjs— Added.vibetoPROVIDER_DIRS,PROVIDER_ALIASES,PROVIDER_DISPLAY,PROVIDER_INPUT_ORDER,GLOBAL_HARNESS_HINTS, and thenormalizeForHashprovider regex so the CLI detects existing Vibe installs and the download endpoint accepts/api/download/skill/vibe/*→dist/vibe/.vibe/cli/lib/download-providers.js— Addedvibe: '.vibe'toFILE_DOWNLOAD_PROVIDER_CONFIG_DIRSdocs/HARNESSES.md— Added Mistral Vibe to the official docs row, frontmatter support matrix (withargument-hint: No), and directory structure table; bumped Last verified to 2026-07-16README.md— Added Vibe to the providers list, the manual installcp -r dist/vibe/.vibeexample, and the Supported Tools sectiondocs/DEVELOP.md— Added the Vibe Skills docs link.github/— Added Mistral Vibe to the feature-request issue template and the PR template provider checklist.github/workflows/sync-generated-output.yml— Added.vibeto the harness dirs list so the post-merge sync commits generated.vibe/output back tomainAGENTS.md— Added.vibe/skills/to the tracked-harness-folders enumerationBecause the build loop iterates
Object.values(PROVIDERS)automatically, no other code changes were needed — Vibe gets unprefixed andi--prefixed variants, ZIP bundle inclusion, and full test coverage out of the box.Type of change
Checklist
scripts/,cli/,docs/,README.md,.github/,AGENTS.mdbun run buildran successfullybun testpasses (160 provider cases including the new Vibe ones)SKILL.mdoutput, placeholder resolution, and directory structure)Note
Low Risk
Additive provider wiring with no auth or skill-content changes; follows the same pattern as existing harnesses.
Overview
Adds Mistral Vibe as a first-class provider so the build emits
dist/vibe/.vibe/skills/, the CLI can install/detect/link it, and site downloads can targetvibe.The transformer layer gets a new
vibeentry inproviders.js(.vibe, frontmatter withoutargument-hint),transformVibeexport, and matching placeholders /<vibe>block tags inutils.js.skills.mjsanddownload-providers.jswire.vibethrough detection, hashing, and file downloads like the other harnesses.Docs and templates list Vibe in README install steps,
HARNESSES.mdcapability tables, and contributor checklists. The post-merge sync workflow now includes.vibeamong generated harness folders onmain.Reviewed by Cursor Bugbot for commit 2de182e. Bugbot is set up for automated code reviews on this repo. Configure here.