Revue ronde 1 ouverte (acte review-feature, contexte vierge, tête 5a1c919).
Revue ronde 1 (CAIRN-336, F-073 AC-09) ouverte sur ecbdba6. Ce qui est vérifié : non-régression de unmarshalSeq (contrôle de flux hunk par hunk contre seqElement, mêmes appels, mêmes erreurs, même décalage rendu), conformité de la retouche d'AC-09 à la décision opérateur du 2026-10-17 (option a, .cairn/runs/milestone-0.55.0.md §« F-073, AC-09 »), périmètre du diff (rien d'autre que les quatre fichiers déclarés), rejeu de quality-gate.full sur la tête (rc 2 sur avertissements seuls admis, #338). Verdict officiel à suivre.
Revue F-074 — ronde 2 (review-feature, delta d'intégration depuis f0038b3, tête a3d69e4 = 37f5578 + rapport de revue)
NB-02 — Mesure prise avant l'extraction de BR-286 à BR-289 : à f0038b3, TestBR_286_001 lit 278 règles actives, 203 verified, 509 jetons résolus (+4 fiches, +7 jetons). À remesurer sur le squash (product, acceptation).
NB-03 — « résout pour toute valeur de sa partie variable » : T61 test_BR_999_001 résoudrait sans contrôle. Les valeurs réelles sont les arguments de wr_report_controls (tools/test-cairn.sh:6233-6235). À ratifier par product (D-2) ; resserrage possible. Non bloquant.
NB-01 — Clarification ajoutée à l'extraction (D-4) sans réintégration en F-074 §4 (br-lifecycle.md : copie verbatim du §4). Product tranche à l'acceptation : réintégrer en §4 ou retirer d'ici.
B-01 — Ligne ajoutée sous « Chaîne Go jouée par la porte », que main 7cb3470 a modifiée (Last touched F-073 → F-079) : conflit de fusion. git merge origin/main sur la branche, garder F-079 au-dessus et cette ligne en dessous.
Revue F-074 — ronde 1 (review-feature, contrat lu : spec gelée à f7d9074, tête f0038b3)
NB-03 · [INSTANCE] · non bloquant — §Implementation References s'arrête à test_BR_125_001 à 004 et ne nomme ni T53 test_BR_125_005 (bloc T79) ni le site version_rc de tools/cairn-gate.sh, que le frontmatter control.ref cite pourtant. Règle : agents/review.md anti-pattern 5 / templates/business-rule.md (le code qui touche une BR la référence dans ses Implementation References). Ce qui passe : une ligne Test ajoutant test_BR_125_005 et une ligne Code nommant la lecture du code de retour de la commande de version.
NB-01 · [INSTANCE] · non bloquant — AC-10 est annoté « non tenu : 12 rouges antérieurs » et §10 Phase 1 laisse quality-gate.full verte décoché, alors que la ronde 3 (.cairn/runs/acts/CAIRN-182-implementation-3.md, corps de la PR) mesure la porte sans cale à 71f346a : rc 2, suite 820 passed / 0 failed, six maillons à 0, vérificateur 0 erreur(s) — AC-10 tenu. Même décalage au §9 (ligne 311, « jouée avec un shim ») : état de la ronde 1. Règle : conventions/feature-closure.md (la spec synchronisée est une touche de clôture) et ai-vademecum/claim-provenance.md (une affirmation factuelle datée doit tenir contre sa source). Ce qui passe : cocher AC-10 et la ligne de Phase 1 avec les chiffres de la ronde 3, dater le pitfall du shim comme ronde 1. Absorbable à l'acceptation (product), le code n'est pas concerné.
Revue ronde 1 — F-071 (CAIRN-182, CAIRN-189, CAIRN-293, CAIRN-330) — verdict : APPROVED
NB-02 · [PRODUIT] · non bloquant — ENUM_CMD porte le texte de l'énumération et enumerate (ligne 51) relance la commande en second littéral : une retouche de l'une sans l'autre ferait nommer, dans la ligne de cause BR-276, une énumération qui n'est pas celle jouée — et T79 test_BR_276_001 ne le verrait pas, il lit le message, pas la commande. Règle : BR-276 (la ligne nomme ce qui n'a pas été lu) et conventions/executable-guards.md (une garde nomme son sujet réel). Ce qui passe : une seule source — out="$($ENUM_CMD 2>&1)" (découpage voulu, aucun argument à espace) ou un tableau ENUM=(git ls-files …) rendu par "${ENUM[*]}".
Revue ronde 1 — findings ancrés (tous non bloquants) ; le verdict suit en soumission.
NB-01 · [INSTANCE] · non bloquant — AC-10 est annoté « non tenu : 12 rouges antérieurs » et §10 Phase 1 laisse quality-gate.full verte décoché, alors que la ronde 3 (.cairn/runs/acts/CAIRN-182-implementation-3.md, corps de la PR) mesure la porte sans cale à 71f346a : rc 2, suite 820 passed / 0 failed, six maillons à 0, vérificateur 0 erreur(s) — AC-10 tenu. Même décalage au §9 (ligne 311, « jouée avec un shim ») : état de la ronde 1. Règle : conventions/feature-closure.md (la spec synchronisée est une touche de clôture) et ai-vademecum/claim-provenance.md (une affirmation factuelle datée doit tenir contre sa source). Ce qui passe : cocher AC-10 et la ligne de Phase 1 avec les chiffres de la ronde 3, dater le pitfall du shim comme ronde 1. Absorbable à l'acceptation (product), le code n'est pas concerné.
NB-03 · [INSTANCE] · non bloquant — §Implementation References s'arrête à test_BR_125_001 à 004 et ne nomme ni T53 test_BR_125_005 (bloc T79) ni le site version_rc de tools/cairn-gate.sh, que le frontmatter control.ref cite pourtant. Règle : agents/review.md anti-pattern 5 / templates/business-rule.md (le code qui touche une BR la référence dans ses Implementation References). Ce qui passe : une ligne Test ajoutant test_BR_125_005 et une ligne Code nommant la lecture du code de retour de la commande de version.