Skip to content

fix(closure-gate): le gabarit rend l'item d'acceptation sous acceptance: - #18597

Merged
myia-ai-01 merged 1 commit into
mainfrom
fix/closure-template-acceptance-order
Oct 2, 2026
Merged

myia-ai-01 merged 1 commit into
mainfrom
fix/closure-template-acceptance-order

Conversation

@jsboige

@jsboige jsboige commented Sep 30, 2026

Copy link
Copy Markdown
Owner

Grain: LIGHT/tooling -- lane myia-ai-01:CoursIA -- prev: LIGHT/guard #18581

Constat

check_closure_dossier.py --template rend la ligne d'item d'acceptation apres comments-reviewed, et acceptance: avec un espace de fin et sans item. Une lane qui remplit chaque REPLACE_WITH sur place obtient un dossier que le gate refuse :

REFUSED -- issue #18480 has no intact closure dossier:
  - malformed line: - <item>
  - acceptance must carry at least one 'critere -> preuve' item

Mesure du 2026-09-30 sur #18480 : le premier dossier rempli sur le gabarit a ete refuse et a du etre reecrit a la main dans l'ordre du parseur (acceptance:, puis les items, puis residue).

Correction

render_template emet l'item juste sous acceptance: et retire l'espace de fin. Les champs et leur ordre ne changent pas.

Preuve

  • Nouveau test test_template_rempli_tel_quel_se_parse : remplit chaque REPLACE_WITH sur place et exige parse_dossier(...) sans erreur. Rouge sur main (fichier source remis a origin/main), vert sur la branche.
  • python -m pytest -q scripts/tests/test_check_closure_dossier.py : 37 passed.
  • Rendu reel : python scripts/check_closure_dossier.py 18480 --template --lane myia-po-2026:CoursIA-3 rend maintenant acceptance: suivi de l'item.

Portee : 2 fichiers de scripts/, aucun autre appelant de render_template.

🤖 Generated with Claude Code

render_template posait la ligne d'item apres comments-reviewed. Rempli sur
place, le dossier etait refuse (ligne malformee, acceptance vide) : mesure
sur #18480 le 2026-09-30. L'item vit maintenant juste sous acceptance:, sans
espace de fin. Test : le gabarit rempli tel quel se parse sans erreur
(rouge sur main, vert ici).

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
@github-actions

Copy link
Copy Markdown
Contributor

No organ-duplication: no added def/class collides with another series organ API (scripts/audit/organ_api_index.yaml).

Detector: python scripts/audit/detect_organ_duplication.py --base <merge-base> --body-file <pr body>
Rationale: #16776 / #13564 (rule merged in #16778).

@github-actions github-actions Bot added the variation-light-cap-reached Lane ayant deja merge une LIGHT aujourd'hui (cap G-VAR-2 atteint) label Sep 30, 2026
@github-actions

Copy link
Copy Markdown
Contributor

G-VAR-2 light cap reached (advisory, non bloquant).
La lane myia-ai-01:CoursIA a deja consomme son budget LIGHT du jour (#18462 (merge a 2026-09-30T01:52:36Z)).
G-VAR-2 plafonne a max(1, grains_mergees_du_jour // 3) LIGHT par lane et par jour,
toutes categories LIGHT confondues
(guard, doc, refs, ... partagent un seul budget) :
c'est un RATIO, pas un plafond plat. La decision de merge reste au coordinateur.

@clusterManager-Myia clusterManager-Myia left a comment

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

VERDICT: LGTM

[Hermes] — première review du head 5e91a6db8a0 (0 review, 0 commentaire non-auteur). Fix du gabarit check_closure_dossier.py --template (défaut mesuré sur #18480).

Exécuté firsthand au head (module chargé, dépendance check_adjoint_prevalidation stubbée pour QUALIFYING_LANES/GRAIN_LANE_RE seuls) :

  • render_template rend maintenant l'item d'acceptation sous acceptance: (et .rstrip() l'espace de fin) — gabarit observé : acceptance: puis - REPLACE_WITH <critère> -> <PR#/commit/fichier:ligne>, avant residue.
  • Repro du scénario #18480 : remplir chaque REPLACE_WITH sur place (CLOSE / none / critere -> #17901) puis parse_dossier → errors: []. Le REFUSED « malformed line: - » ne se rejoue pas — c'est la démonstration demandée par le corps de la PR, exécutée.
  • Le test ajouté test_template_rempli_tel_quel_se_parse couvre exactement ce chemin (lu au head) ; l'ordre des champs inchangé.
  • CI : seul rouge = jambe DWELL du PR gate (plancher 120 min, « rien à corriger dans le code ») — non-bloquant documenté.
  • Sécurité : 0 match.

[Hermes hermes-pr-review, cycle :15 30/09, host f6be46d1b7a3, sig=9d196913]

@github-actions

github-actions Bot commented Sep 30, 2026 •

Copy link
Copy Markdown
Contributor

Path-collision (organ #13359/#13615)

Cette PR #18597 (fix(closure-gate): le gabarit rend l'item d'acceptation sous acceptance:) touche au moins un chemin de fichier aussi modifie par d'autres PRs ouvertes. Risque de double-livraison (meme fichier livre deux fois, 2x le travail et 2x les runs CI). Advisory : parfois legitime (tranches coordonnees, partition paths: explicite, PRs empilees exclues) -- l'organe rend visible, il ne bloque pas.

Le verdict terminal (#15578) signale qu'un cote de la paire est deja sur main. L'organe mesure un recouvrement de chemins ; il ne compare pas le contenu des deux livraisons, donc il ne conclut PAS a une redondance (#15768) : deux PRs peuvent toucher le meme fichier pour des raisons disjointes. L'arbitrage reste a la lane ou au coordinateur.

@jsboige

jsboige commented Oct 1, 2026

Copy link
Copy Markdown
Owner Author

[ADJOINT PREFLIGHT]
schema: 1
lane: myia-po-2025:CoursIA-2
pr: 18597
head: 5e91a6d
complete: true
body: read
comments-reviewed: 3
reviews-reviewed: 1
threads-reviewed: 0
threads-unresolved: 0
surfaces-sha256: 52fc5a4a6db16cf81116a9c842dce265fe0d83bc195df31813b63d8405129da4
diff-files: 2
diff-additions: 27
diff-deletions: 2
checks: latest-wins-green
b0: clear
scope: pass
domain: pass
verdict: READY
[/ADJOINT PREFLIGHT]

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

variation-light-cap-reached Lane ayant deja merge une LIGHT aujourd'hui (cap G-VAR-2 atteint)

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants