From 30527b9373fa03aa0b119014a8dc73a4202cb60f Mon Sep 17 00:00:00 2001 From: Patrick Schurig Date: Mon, 19 Oct 2026 08:43:30 +0200 Subject: [PATCH] =?UTF-8?q?docs(protocole):=20ECO=5FFLOOR=5FBELOW=5FSTAGE?= =?UTF-8?q?=20n'est=20pas=20=C3=A9missible=20par=20un=20optimiseur,=20et?= =?UTF-8?q?=20pourquoi?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Prose §6 seulement : la liste blanche et le contrat OpenRPC ne changent pas. L'optimiseur ne reçoit pas les paliers (powerLevels non émis, §5.3) ; seul le moteur sait qu'une consigne tombe sous le premier palier. Co-Authored-By: Claude Opus 5.5 --- docs/OPTIMIZER_PROTOCOL.md | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/docs/OPTIMIZER_PROTOCOL.md b/docs/OPTIMIZER_PROTOCOL.md index b2fff25..25c20c8 100644 --- a/docs/OPTIMIZER_PROTOCOL.md +++ b/docs/OPTIMIZER_PROTOCOL.md @@ -952,6 +952,10 @@ Règles d'exécution côté plugin : - **Vers l'app, seul `{reasonCode, reasonParams}` est transmis** — jamais le texte libre (`AGENTS.md` invariant 12). Une action sans `reasonCode` connu du catalogue est transmise sous le code générique `OPTIMIZER_DECISION`, sans texte. +- Les codes qui décrivent ce que le **moteur** constate ne sont pas émissibles (liste blanche + ci-dessous). `ECO_FLOOR_BELOW_STAGE` en est un : une obligation dont la cadence tombe sous le + premier palier de la charge, donc rien d'acheté. L'optimiseur ne reçoit pas les paliers + (`powerLevels` n'est pas émis, §5.3) et ne peut pas le savoir ; le moteur le dit. ### Types d'action (`kind`)