Skip to content

feat(cli): add Mistral Vibe support - #937

Closed
mriffault wants to merge 11 commits into
ai-driven-dev:nextfrom
sci-decaux-riffault:feat/mistral-support
Closed

mriffault wants to merge 11 commits into
ai-driven-dev:nextfrom
sci-decaux-riffault:feat/mistral-support

Conversation

@mriffault

@mriffault mriffault commented Sep 29, 2026 •

Copy link
Copy Markdown

Implements #943

🎯 What & why

Adds Mistral Vibe as an AI tool target: aidd translate --to mistral and the install route build a .vibe/ workspace (skills, agents, rules, MCP), with the flat-skill layout proven on a real Vibe install.

🛠️ How it works

  • The profile declares the Vibe shape: workspace .vibe/, MCP at .vibe/mcp.json, frontmatter reduced to name + description, telemetry local read unsupported, and hooks unsupported with a Vibe-specific skip reason — Vibe loads .vibe/hooks.toml (pre_tool/post_tool/post_agent), never Claude's hooks.json, and SessionStart has no equivalent.
  • Flat builds install skills as <plugin>-<skill>/SKILL.md with name, description, user-invocable from a shared frontmatter module; --force clears a leftover destination directory before writing.
  • The marketplace route emits a Claude-style native tree with its manifest at .vibe-plugin/plugin.json and no hooks bundle.
  • CRLF hardening: frontmatter parsing splits on /\r?\n/; the repo's checkers tolerate CRLF worktrees and skip .aidd/ and .vibe/.
  • Golden snapshots grow the mistral cells; registry fixtures, probes, and conformance cover the new tool.

🧪 How to verify

  • cd cli && pnpm test — 530/532 files pass; the single failure is a git 2.39 trailer-dedup sensitivity, byte-identical on next (filed as fix(cli): keep the commit-session trailer dedup working on git 2.39 #940).
  • aidd translate --to mistral in a scratch project: every built .vibe/skills/<plugin>-<skill>/SKILL.md carries a description, and --force recovers from a leftover directory.

⚠️ Heads-up

✅ I certify

  • I DO CERTIFY I READ EACH LINE OF THE PULL REQUEST BECAUSE I AM A SOFTWARE ENGINEER, NOT A AI PUPPY.

Replay of the feature work from vibe/mistral-support-3eed3a: f430866, 96f9175, 6424d95, b63d864, aa55ce44, e5d03979, 3e23f9b3, replayed onto next.
mriffault pushed a commit to sci-decaux-riffault/aidd-framework-mistral that referenced this pull request Sep 29, 2026
- defects filed as ai-driven-dev/framework issues ai-driven-dev#938, ai-driven-dev#939, ai-driven-dev#940
  and referenced from PR ai-driven-dev#937's heads-up; the intermediate
  aidd_docs/backlog/defects/ markdown copies removed — the repo's
  backlog is GitHub Issues per aidd_docs/memory/backlog.md
- brainstorm.md head section rewritten against the real head (no
  settings.json mapping, hooks dropped from both contracts, token in
  the shared vocabulary, re-measured diff stats) and stripped of
  archive-branch hashes the PR reader cannot resolve
- phase-5 exit concluded: plan status done, PR ai-driven-dev#937 open against next
mriffault added a commit to sci-decaux-riffault/aidd-framework-mistral that referenced this pull request Sep 30, 2026
- defects filed as ai-driven-dev/framework issues ai-driven-dev#938, ai-driven-dev#939, ai-driven-dev#940
  and referenced from PR ai-driven-dev#937's heads-up; the intermediate
  aidd_docs/backlog/defects/ markdown copies removed — the repo's
  backlog is GitHub Issues per aidd_docs/memory/backlog.md
- brainstorm.md head section rewritten against the real head (no
  settings.json mapping, hooks dropped from both contracts, token in
  the shared vocabulary, re-measured diff stats) and stripped of
  archive-branch hashes the PR reader cannot resolve
- phase-5 exit concluded: plan status done, PR ai-driven-dev#937 open against next
Replay of 50aef4c and 03d3031 from vibe/mistral-support-3eed3a.
Replay of bbb4a87f from vibe/mistral-support-3eed3a.
Replay of 46176a8 and the phase-1 record commits (ed3f4984, abfff019, 513bf67f, 2a8f5b42) from vibe/mistral-support-3eed3a.
Phase 5 triage of the review's findings, each verified against Vibe's
own reference before landing:

- remove the stale aidd-context/ build snapshot committed at the merge
  (158 files, nothing references the root path; reproducible via
  aidd translate)
- untrack .aidd/config.json: no base branch or merge parent tracks it;
  the merge resolution introduced it
- drop the Claude hooks.json bundle from the marketplace contract:
  Vibe loads ai.mistral.vibe/hooks.toml, never hooks.json; the contract
  now skips hooks with the same reason as the flat contract and the
  golden mistral marketplace cell loses exactly its 3 hook files
- drop the empty settings.json mapping: Vibe reads .vibe/config.toml,
  never .vibe/settings.json
- move MISTRAL_PLUGIN_ROOT_TOKEN into formats/plugin-root-token.ts,
  beside every other tool's token
- challenge.md: phase 5 challenge of the record and the review verdict,
  confidence 65%, one deal breaker (the marketplace route emits trees
  Vibe cannot detect)
- phase-5.md: triage table, fixed-in-branch vs filed-as-defect, test
  evidence at the new head
- three defects filed under aidd_docs/backlog/defects/: the
  undetectable marketplace route, the commands directory Vibe never
  reads, and the git 2.39 trailer-dedup sensitivity
- brainstorm.md Still Open concluded; plan.md status: done
- defects filed as ai-driven-dev/framework issues ai-driven-dev#938, ai-driven-dev#939, ai-driven-dev#940
  and referenced from PR ai-driven-dev#937's heads-up; the intermediate
  aidd_docs/backlog/defects/ markdown copies removed — the repo's
  backlog is GitHub Issues per aidd_docs/memory/backlog.md
- brainstorm.md head section rewritten against the real head (no
  settings.json mapping, hooks dropped from both contracts, token in
  the shared vocabulary, re-measured diff stats) and stripped of
  archive-branch hashes the PR reader cannot resolve
- phase-5 exit concluded: plan status done, PR ai-driven-dev#937 open against next
@mriffault

Copy link
Copy Markdown
Author

Parking this draft until #665 is validated. It implements the translate slice for Mistral Vibe with a flat-skill + marketplace route, which diverges from #665's contract on packaging (native Agent Plugins 1.0 under .vibe/plugins/<plugin>/), hooks (mapped, not skipped), and agents. The reusable findings and fixes (CRLF-tolerant lefthook checkers, --force EISDIR recovery, registry and probe wiring, real-install skill verification) are listed on #943. The branch stays on the fork and will be reworked against #665 once the contract is confirmed.

@mriffault mriffault closed this Oct 2, 2026
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.

2 participants