Add or modify a feature in Mistral Vibe while following the app architecture ADRs. Use when working in vibe/core, vibe/app_server, vibe/cli-rust, vibe/acp, vibe/setup, built-in tools, config, sessions, skills, hooks, MCP, connectors, or other Vibe feature code.
71
89%
Does it follow best practices?
Run evals on this skill
Adds up to 20 points to the overall score
Passed
No findings from the security scan
Use this skill when implementing Vibe feature work. Keep changes scoped, architecture-aware, and consistent with nearby code.
| Area | Role | Path |
|---|---|---|
| Core engine | Agent loop, domain events, tools, LLM backends, config, sessions, skills, hooks, telemetry types, shared models | vibe/core/ |
| App server | Session, turn, config and persistence, tools, and callback ownership; typed JSON-RPC methods and notifications consumed by the TUI and ACP | vibe/app_server/ |
| Terminal UI | Ratatui TUI, thin client over vibe-app-server: interactive terminal UX, widgets, slash commands, manual shell commands, voice UI, local user affordances | vibe/cli-rust/ |
| Launcher and audio | The vibe console script that execs the TUI; voice, narrator and audio helpers used by ACP | vibe/cli/ |
| ACP bridge | Agent Client Protocol session, tool, terminal, title, and content translation | vibe/acp/ |
| Setup | Auth and the Textual onboarding wizard behind vibe-acp --setup | vibe/setup/ |
| Tests | Python unit, integration and e2e tests, stubs and fixtures; the TUI's tests live in vibe/cli-rust/tests/ and client-e2e/ | tests/ |
Before implementation, read the matching ADRs:
docs/adr/0001-architecture-principles.mddocs/adr/0002-core-engine-and-delivery-surfaces.mddocs/adr/0003-event-driven-agent-loop.mddocs/adr/0004-typed-permissioned-tools.mddocs/adr/0005-layered-configuration.mddocs/adr/0006-local-sessions.mddocs/adr/0007-extension-mechanisms.mddocs/adr/0008-feature-instrumentation.mddocs/adr/0009-app-server-boundary.mddocs/adr/0016-rust-cli-delivery-surface.mdIf a change fits the current code but conflicts with ADR direction, flag it to the user before implementing.
README.md, AGENTS.md, and the nearest relevant source files before editing.vibe/cli-rust, ACP translation in vibe/acp, setup flow in vibe/setup, server-owned behavior behind an app-server method or notification in vibe/app_server (per ADR 0009), and reusable engine behavior in vibe/core. For terminal UI changes, see "Terminal UI changes" in the Vibe project AGENTS.md (next to pyproject.toml).instrument-feature-analytics before writing tracking code.When adding or modifying a tool:
BaseTool from vibe/core/tools/base.py with a Pydantic args model and a BaseToolConfig generic parameter.async def run(args, ctx: InvokeContext) and yield events progressively.ToolError for user-facing failures; raise ToolPermissionError for authorization failures.ToolPermission (ALWAYS / ASK / NEVER); honor it consistently.BaseTool with typed args, result, config, state, and permission behavior.tests/stubs/Fake* doubles.After Python changes, run:
uv run ruff format .
uv run ruff check --fix .For behavior changes, run the narrowest relevant tests first, then broader checks if the change touches shared contracts:
uv run pytest <path-or-test>
uv run pyrightFor terminal UI changes, run the Rust gates from vibe/cli-rust/AGENTS.md (make test_rust QUIET=1, then the affected goldens or make test QUIET=1).
mistralai/mistral-vibe
63d0e8f
If you maintain this skill, you can claim it as your own. Once claimed, you can manage eval scenarios, bundle related skills, attach documentation or rules, and ensure cross-agent compatibility.