Modèles et effort
/emet choisit automatiquement un modèle et un effort de raisonnement par rôle ; il n’y a rien à changer à la main en cours d’exécution. Toutes les clés figurent dans la référence de configuration.
| Rôle | Modèle | Effort | Défini par |
|---|---|---|---|
| Planification (phases 1–4) | Opus, via opusplan |
celui de votre session | vous, une seule fois |
| Coordinateur, à partir de la phase 5 | Sonnet, via opusplan |
celui de votre session | vous, une seule fois |
| Workers (phase 7) | Sonnet | medium |
agents/emet-worker.md, ou models.worker |
Revue, niveau passive (diff de documentation uniquement) |
aucun | — | emet assess |
Revue, niveau medium (changement de code ordinaire) |
Opus | medium |
models.reviewer.medium |
Revue, niveau high (chemins ou points sensibles) |
Opus | medium par défaut |
models.reviewer.high |
| Triage des logs de CI (phase 8) | Haiku | — | models.triage |
Les deux définitions d’agent (installées par install.sh dans ~/.claude/agents/) fixent leur propre model/effort dans le frontmatter, si bien que le choix de modèle/effort du coordinateur ne déborde jamais sur un worker ou sur le relecteur. emet doctor signale (sans jamais bloquer) l’absence de l’un ou l’autre fichier. emet preflight bloque en revanche la distribution lorsque emet-worker ou emet-reviewer est absent, car la phase 6 et la phase 8 distribuent par subagent_type.
Routage par niveau de risque
La phase 8 exécute emet assess --base <trunk> --head <integration branch>, qui classe le diff de façon déterministe et affiche du JSON avec le niveau, les raisons et le modèle/effort recommandés pour le relecteur :
passive: diff de documentation uniquement ; aucun relecteur n’est distribué.medium: le relecteur s’exécute avecmodels.reviewer.medium.high: le diff touche l’authentification, la sécurité, les paiements, les webhooks, la CI, l’installateur, les lockfiles, les migrations, un point sensible dangereux (SQL brut, pipe-to-shell et similaires) ou un chemin correspondant àreview.highRiskPaths. Le relecteur s’exécute avecmodels.reviewer.high, et l’auto-merge n’atterrit la PR qu’avec des checks au vert et aucun constat de revue ouvert.
Un ticket qui touche des chemins à haut risque peut porter une ligne Model: (par exemple Model: opus ou Model: opus/high), qui remplace models.worker pour ce seul worker.
Triage avec Haiku
Le coordinateur ne lit jamais un log de CI en entier. Un check en échec est confié à un agent sur models.triage (par défaut haiku), qui renvoie au plus environ 2k tokens avec des pointeurs file:line pour la correction.
Configuration
Toutes les clés sont facultatives, et les valeurs par défaut reproduisent le tableau ci-dessus :
{ "models": { "worker": { "model": "sonnet", "effort": "medium" }, "reviewer": { "medium": { "model": "opus", "effort": "medium" }, "high": { "model": "opus", "effort": "medium" } }, "triage": "haiku" }, "review": { "highRiskPaths": [] }}review.highRiskPaths est une liste de sous-chaînes de chemin supplémentaires, insensibles à la casse, qui forcent le niveau high. Pour obtenir plus de rigueur sur les vagues risquées, augmentez models.reviewer.high.effort (par exemple à high).
Pourquoi un seul relecteur
Pourquoi un seul relecteur à contexte neuf plutôt qu’un éventail de plusieurs angles : aucun benchmark public ne compare directement les deux, mais un éventail relit tout le diff une fois par angle et s’est bloqué pendant plus d’une heure dans ce dépôt, tandis que des rapports d’Anthropic et de tiers sur les modèles de classe Opus suggèrent que la montée en gamme du modèle apporte autant que les angles supplémentaires. Pour une vague à forts enjeux, lancez ensuite /code-review ultra à la main ; /emet ne le distribue jamais de lui-même.
Ce que vous définissez une fois, vous-même
/emet ne peut pas changer ceci en cours d’exécution :
model: "opusplan"dans~/.claude/settings.json: c’est ce qui fait tourner les phases 1–4 sur Opus et la phase 5 et suivantes sur Sonnet, sans/model.emet doctoravertit (sans jamais modifier vos réglages) s’il n’est pas défini.- Un effort de session
mediumouhighplutôt quexhigh: les workers et le relecteur portent déjà leur propre effort quel que soit le vôtre, et une valeur globale élevée par défaut ajoute surtout du coût aux tours du coordinateur lui-même (suivi des distributions, merges, rapports) qui n’en ont pas besoin. - Un
permissions.defaultModecapable de tourner sans surveillance (auto,acceptEditsoubypassPermissions), plus des règlespermissions.denybloquantgit push * main|masteretgit push --force *.emet doctoravertit pour les deux, car une vague qui reste bloquée sur une demande d’autorisation ou qui peut forcer le passage sur la branche principale va à l’encontre du but d’une exécution sans surveillance.
Ce sont des points de départ, pas des chiffres définitifs. Opus 5.5 est sorti le 2026-09-22, et le choix d’effort et de modèle pour les agents de programmation reste un domaine actif ; réajustez après quelques vagues réelles plutôt que de considérer ce tableau comme final.