Add or modify a feature in the Mistral Vibe Python CLI while following the app architecture ADRs. Use when working in vibe/core, vibe/cli, vibe/acp, vibe/setup, built-in tools, config, sessions, skills, hooks, MCP, connectors, or other Vibe feature code.
69
85%
Does it follow best practices?
Run evals on this skill
Adds up to 20 points to the overall score
View guide
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/ |
| Textual CLI | Interactive terminal UX, widgets, slash commands, manual shell commands, voice UI, local user affordances | vibe/cli/ |
| ACP bridge | Agent Client Protocol session, tool, terminal, title, and content translation | vibe/acp/ |
| Setup | First-run, auth, onboarding, trusted folders, update prompts | vibe/setup/ |
| Tests | Unit, integration, e2e, Textual snapshots, stubs and fixtures | 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.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, ACP translation in vibe/acp, setup flow in vibe/setup, and reusable engine behavior in vibe/core.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 pyrighta84be03
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.