Skip to content

Commit 4cdd4d5

Browse files
committed
chore(claude): add Sonnet→Opus self-escalation in code-dev
Quand code-dev tourne en Sonnet et épuise son budget de 3 retries sur un axe (validators IA, CI, Sonar ou review comments), il déclenche désormais une escalade interne : 1. Ajout du label complexe au ticket 2. Commit + push de l'état courant (pas de reset) 3. Auto-délégation à une nouvelle instance code-dev avec model=opus via le tool Agent, reprenant la branche et le diagnostic L'instance Opus dispose d'un compteur de retries reset à zéro et reprend exactement le travail en cours. Son verdict (PASS ou REFACTO) devient le verdict propagé à l'appelant (/epic ou /code). Skills /epic et /code inchangés : l'escalade est transparente pour eux, gérée entièrement à l'intérieur de code-dev. Une seule escalade possible par ticket : Sonnet → Opus → REFACTO. Pas de ré-escalade après Opus.
1 parent 7cd7970 commit 4cdd4d5

1 file changed

Lines changed: 14 additions & 1 deletion

File tree

.claude/agents/code-dev/AGENT.md

Lines changed: 14 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -80,7 +80,19 @@ You execute one pre-specified ticket end-to-end : edit code, write/update tests,
8080
- Désaccord → répondre avec argumentation, laisser le reviewer trancher (ne pas imposer)
8181
- Tant que des threads de review sont **non résolus** (unresolved), ne pas `gh pr ready`. Marquer les threads résolus via l'API GitHub quand applicable.
8282

83-
**Toutes rouges persistantes (> 3 tentatives sur un même axe)** → remettre le ticket en **To Do** avec diagnostic complet (logs CI, liens Sonar, commentaires validators + bot).
83+
**Toutes rouges persistantes (> 3 tentatives sur un même axe)** → auto-escalade ou REFACTO selon le modèle courant (logique **interne à `code-dev`**, transparente pour l'appelant `/epic` ou `/code`) :
84+
85+
- **Modèle courant = Sonnet** (ticket sans label `complexe`) :
86+
- Ajouter le label `complexe` au ticket : `gh issue edit <N> --add-label complexe`
87+
- Poster un commentaire `code-dev: ESCALATE Sonnet→Opus` avec le diagnostic complet : axe en échec, 3 dernières tentatives, logs/liens/commentaires
88+
- Commit + `git push` l'état courant (ne pas reset — l'instance Opus reprendra ce travail)
89+
- **Déléguer à soi-même en Opus** via le tool `Agent` : `subagent_type` pointant sur `code-dev`, `model: "opus"`, prompt = « Ticket escaladé depuis Sonnet. Branche `<name>` au commit `<sha>`. Reprendre l'axe en échec (<axe>). Diagnostic : `<détails>`. Mêmes inputs : ticket #<N>, worktree `<path>`, port `<port>`, base branch `<base>`. »
90+
- Attendre le retour de l'instance Opus. Son verdict (PASS ou REFACTO) devient le verdict de la présente instance Sonnet, propagé à l'appelant.
91+
- **Modèle courant = Opus** (ticket déjà `complexe` à l'entrée OU escaladé depuis Sonnet) :
92+
- Remettre le ticket en **To Do** avec diagnostic complet → intervention `architect` probablement nécessaire (re-découpage du ticket)
93+
- Retourner le verdict **REFACTO** à l'appelant
94+
95+
**Une seule escalade possible par ticket** : Sonnet → Opus → REFACTO. Pas de ré-escalade après Opus. Le label `complexe` une fois posé ne se retire pas.
8496

8597
10. **Fin** — quand 9a + 9b + 9c + 9d sont **tous verts / résolus** :
8698
- `gh pr ready <PR>` (sort la PR du draft)
@@ -96,6 +108,7 @@ You execute one pre-specified ticket end-to-end : edit code, write/update tests,
96108
- **Coverage TU = 100%** sur le code du ticket (fichiers modifiés ou créés), pas seulement les 75% globaux
97109
- **CI + Sonar verts obligatoires** avant `gh pr ready` — aucune exception
98110
- **Zéro commentaire de review non-adressé** — bot ou humain, corriger ou répondre avec justification. Jamais d'ignorance silencieuse.
111+
- **Escalade Sonnet → Opus interne** — sur 3-retry exhaustion en Sonnet, auto-déléguer à une instance Opus du même agent. Invisible pour `/epic` et `/code`. Une seule escalade par ticket.
99112

100113
## Output Format
101114

0 commit comments

Comments
 (0)