Skip to content

feat: add Mistral Vibe harness support#373

Open
fuegoio wants to merge 1 commit into
pbakaus:mainfrom
fuegoio:feat/vibe-harness-support
Open

feat: add Mistral Vibe harness support#373
fuegoio wants to merge 1 commit into
pbakaus:mainfrom
fuegoio:feat/vibe-harness-support

Conversation

@fuegoio

@fuegoio fuegoio commented Jul 16, 2026

Copy link
Copy Markdown

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.md at the project level (and ~/.vibe/skills/ for user-level installs). The format mirrors the Agent Skills standard — YAML frontmatter including user-invocable, license, compatibility, metadata, and allowed-tools are all supported. (Vibe's docs do not document argument-hint, so it is omitted from frontmatterFields to avoid emitting fields the harness is not known to consume.)

References

Changes

  • scripts/lib/utils.js — Added vibe to PROVIDER_PLACEHOLDERS (model, config_file: "AGENTS.md", ask_instruction, command_prefix) mirroring the Qoder shape, and to PROVIDER_BLOCK_TAGS
  • scripts/lib/transformers/providers.js — Added vibe provider config (configDir: ".vibe", displayName: "Mistral Vibe") with frontmatterFields: ['user-invocable', 'license', 'compatibility', 'metadata', 'allowed-tools']
  • scripts/lib/transformers/index.js — Exported transformVibe for test-spy parity with the other named providers
  • cli/bin/commands/skills.mjs — Added .vibe to PROVIDER_DIRS, PROVIDER_ALIASES, PROVIDER_DISPLAY, PROVIDER_INPUT_ORDER, GLOBAL_HARNESS_HINTS, and the normalizeForHash provider 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 — Added vibe: '.vibe' to FILE_DOWNLOAD_PROVIDER_CONFIG_DIRS
  • docs/HARNESSES.md — Added Mistral Vibe to the official docs row, frontmatter support matrix (with argument-hint: No), and directory structure table; bumped Last verified to 2026-07-16
  • README.md — Added Vibe to the providers list, the manual install cp -r dist/vibe/.vibe example, and the Supported Tools section
  • docs/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 .vibe to the harness dirs list so the post-merge sync commits generated .vibe/ output back to main
  • AGENTS.md — Added .vibe/skills/ to the tracked-harness-folders enumeration

Because the build loop iterates Object.values(PROVIDERS) automatically, no other code changes were needed — Vibe gets unprefixed and i--prefixed variants, ZIP bundle inclusion, and full test coverage out of the box.

Type of change

  • Build system / tooling
  • Other: New provider support (Mistral Vibe)

Checklist

  • Source files updated in scripts/, cli/, docs/, README.md, .github/, AGENTS.md
  • bun run build ran successfully
  • bun test passes (160 provider cases including the new Vibe ones)
  • Tested with at least one provider (Mistral Vibe — verified SKILL.md output, placeholder resolution, and directory structure)
  • README / DEVELOP.md updated

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 target vibe.

The transformer layer gets a new vibe entry in providers.js (.vibe, frontmatter without argument-hint), transformVibe export, and matching placeholders / <vibe> block tags in utils.js. skills.mjs and download-providers.js wire .vibe through detection, hashing, and file downloads like the other harnesses.

Docs and templates list Vibe in README install steps, HARNESSES.md capability tables, and contributor checklists. The post-merge sync workflow now includes .vibe among generated harness folders on main.

Reviewed by Cursor Bugbot for commit 2de182e. Bugbot is set up for automated code reviews on this repo. Configure here.

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>
Copilot AI review requested due to automatic review settings July 16, 2026 07:41
@fuegoio
fuegoio requested a review from pbakaus as a code owner July 16, 2026 07:41
@greptile-apps

greptile-apps Bot commented Jul 16, 2026

Copy link
Copy Markdown

Greptile Summary

This PR adds Mistral Vibe as a supported Impeccable provider. The main changes are:

  • New Vibe transformer config that emits .vibe/skills/ output.
  • CLI install, update, detection, global-harness, and download routing support for vibe.
  • Generated-output sync coverage for the tracked .vibe harness directory.
  • README, harness docs, development docs, and GitHub templates updated to list Mistral Vibe.

Confidence Score: 5/5

Safe to merge with minimal risk.

The provider key is added consistently through the existing build, CLI, download, and sync paths. No source skill prose or security-sensitive behavior was changed. No accepted bug findings remain.

No files require special attention.

T-Rex T-Rex Logs

What T-Rex did

  • The build proof shows the build:skills command ran in the repository and exited with code 0.
  • The focused tests proof shows that the Bun tests ran and produced 278 passing tests with 0 failures, exiting with code 0.
  • The generated-output proof confirms the expected skill artifact exists, with file listings and YAML frontmatter indicating no argument hints.

View all artifacts

T-Rex Ran code and verified through T-Rex

Important Files Changed

Filename Overview
scripts/lib/transformers/providers.js Adds the Vibe provider transformer config with .vibe output and documented frontmatter fields.
cli/bin/commands/skills.mjs Adds Vibe to CLI provider detection, aliases, prompts, global hints, and hash normalization.
cli/lib/download-providers.js Enables /api/download/skill/vibe/* routing to the .vibe provider directory.
.github/workflows/sync-generated-output.yml Includes .vibe in generated-output drift detection and sync paths.
docs/HARNESSES.md Adds Mistral Vibe to harness docs, frontmatter support, and directory layout tables.
README.md Documents Vibe as a supported provider and adds manual install commands.

Sequence Diagram

%%{init: {'theme': 'neutral'}}%%
sequenceDiagram
participant User
participant CLI as impeccable CLI
participant API as Download API
participant Build as Build Transformers
participant Dist as dist/vibe/.vibe

User->>CLI: install/update/check provider `vibe`
CLI->>CLI: resolve alias to `.vibe/skills`
CLI->>API: /api/download/skill/vibe/impeccable
API->>Dist: map provider `vibe` to `.vibe`
Build->>Dist: generate SKILL.md with Vibe frontmatter
Dist-->>API: Vibe skill files
API-->>CLI: skill bundle/file
CLI-->>User: install into `.vibe/skills` or `~/.vibe/skills`
Loading
%%{init: {'theme': 'base', 'themeVariables': {"darkMode": true, "background": "#0d1117", "primaryColor": "#21262d", "primaryTextColor": "#e6edf3", "primaryBorderColor": "#8b949e", "lineColor": "#8b949e", "textColor": "#e6edf3", "edgeLabelBackground": "#161b22", "actorBkg": "#21262d", "actorBorder": "#8b949e", "actorTextColor": "#e6edf3", "actorLineColor": "#8b949e", "signalColor": "#8b949e", "signalTextColor": "#e6edf3", "noteBkgColor": "#373320", "noteBorderColor": "#d4a72c", "noteTextColor": "#f0e6c0", "labelBoxBkgColor": "#21262d", "labelBoxBorderColor": "#8b949e", "labelTextColor": "#e6edf3", "loopTextColor": "#e6edf3", "activationBkgColor": "#30363d", "activationBorderColor": "#8b949e"}}}%%
sequenceDiagram
participant User
participant CLI as impeccable CLI
participant API as Download API
participant Build as Build Transformers
participant Dist as dist/vibe/.vibe

User->>CLI: install/update/check provider `vibe`
CLI->>CLI: resolve alias to `.vibe/skills`
CLI->>API: /api/download/skill/vibe/impeccable
API->>Dist: map provider `vibe` to `.vibe`
Build->>Dist: generate SKILL.md with Vibe frontmatter
Dist-->>API: Vibe skill files
API-->>CLI: skill bundle/file
CLI-->>User: install into `.vibe/skills` or `~/.vibe/skills`
Loading

Reviews (1): Last reviewed commit: "feat: add Mistral Vibe harness support" | Re-trigger Greptile

Copilot AI left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

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 vibe provider configuration (config dir, tags, supported frontmatter fields) and exported a transformVibe transformer.
  • 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.

Comment thread docs/HARNESSES.md
| 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/` |
@github-actions github-actions Bot added blocked: review threads Unresolved review feedback or requested changes remain waiting on contributor Waiting for the PR author to respond or make changes labels Jul 16, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

blocked: review threads Unresolved review feedback or requested changes remain waiting on contributor Waiting for the PR author to respond or make changes

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants