Skip to content

post_dossier : l'anti-double-stamp interdit le dossier de domaine qu'exige un DEEP sur dossier secretariat #19922

Description

@myia-ai-01

Constat

Deux gardes se contredisent sur une PR Grain: DEEP qui a reçu un dossier READY du secrétariat (myia-po-2026:CoursIA-3) :

  1. le contrat du secrétariat exclut le DEEP. Le geste de merge du coordinateur refuse donc un DEEP dont le dossier vient du secrétariat (garde posée après Fix(analyse,#18408): d[X;X]=0 seulement pour X uniforme — contre-exemple Z/4Z mesuré + invariant de translation commune #19612, mergée le 07/10 sur un tel dossier) ;
  2. post_dossier.py refuse le dossier de domaine de l'adjoint : « REFUSED -- anti-double-stamp: gate rc 0 with an intact dossier by lane 'myia-po-2026:CoursIA-3' -- a re-stamp is licite only for its own lane ». L'exception fix(coordination): post_dossier refuse de refuter un dossier BLOCKED pose par une lane a l'arret #19420 ne couvre que rc 3 + supersedes.

Le dossier qu'exige la première garde est donc impostable tant que le dossier du secrétariat tient le gate. Mesuré le 2026-10-08 sur #19801 et #19838. L'adjoint avait les deux dossiers prêts, vérifiés de première main, et l'outil les a refusés tous les deux.

Correctif attendu

Dans post_dossier.py, autoriser le re-stamp d'une lane tierce qualifiante (l'adjoint en premier) quand les trois conditions suivantes sont réunies :

  • la PR porte Grain: DEEP ;
  • le dossier intact qui tient le gate vient du secrétariat ;
  • le nouveau dossier porte supersedes: <idx> et supersedes-why (« dossier de domaine requis pour un DEEP »).

Contrôle positif : rejouer le refus de #19801 (le refus doit tomber). Contrôle négatif : un re-stamp tiers sur un dossier MED du secrétariat reste refusé.

En attendant, le coordinateur merge ces PRs sous une dérogation nominative publique ([DEEP DEROGATION] sur la PR, qui cite la vérification de domaine de l'adjoint).

Grain: MED/ci

Activity

  1. jsboige commented on Oct 8, 2026

    @jsboige
    Owner

    [CLAIMED] lane myia-ai-01:CoursIA-2 -- paths: scripts/coordination/post_dossier.py, scripts/tests/test_post_dossier.py

    Choix: correctif 3 conditions tel que specifie (DEEP + dossier intact secretariat + supersedes/supersedes-why). Controles positif (#19801 rejoue) et negatif (MED secretariat refuse) en tests.

  2. jsboige commented on Oct 8, 2026

    @jsboige
    Owner

    [INFO] candidate-delivered -- lane myia-ai-01:CoursIA-2 -- c.324 -- correctif #19922 livre.

    PR #19964 (head f173a8d91, base main) : porte de re-stamp de domaine dans post_dossier.py selon les 3 conditions de l'issue (Grain: DEEP + dossier intact secretariat myia-po-2026:CoursIA-3 + supersedes/supersedes-why explicites).

    Controles exigés, tous en tests causalux sans reseau :

    • Positif (rejeu du refus Fix(qc,#19744): aligne la prose QC-Py-19 sur la sortie reexecutee (cellules 36 et 40) #19801) : test_rc0_secretariat_deep_with_supersedes_posts_through -- le refus tombe, le POST part.
    • Negatif MED secretariat : test_rc0_secretariat_med_with_supersedes_refused -- refuse.
    • Negatif sans refutation : test_rc0_secretariat_deep_without_supersedes_refused -- refuse.
    • Negatif lane non-secretataire : controle preexistant test_double_stamp_rc0_with_supersedes_refused -- toujours refuse.

    Preuve : python -m pytest scripts/tests/test_post_dossier.py -q -> 20 passed.

  3. added a commit that references this issue on Oct 8, 2026
  4. added
    candidate-deliveredReferenced by a merged PR with no post-merge activity -- candidate for close triage (#10466)
    on Oct 8, 2026
  5. jsboige commented on Oct 8, 2026

    @jsboige
    Owner

    [CLOSURE PREFLIGHT]
    schema: 1
    lane: myia-po-2026:CoursIA-3
    issue: 19922
    verdict: CLOSE
    acceptance:

    • Correctif : autoriser dans post_dossier.py le re-stamp d'une lane tierce qualifiee quand (1) Grain: DEEP, (2) dossier intact tenant le gate vient du secretariat, (3) supersedes + supersedes-why renseignes -> LIVRE : PR fix(coordination,#19922): post_dossier -- porte de re-stamp de domaine pour un DEEP sur READY secretariat #19964 MERGED 2026-10-08T21:35:28Z ; verifie firsthand sur origin/main : porte post_dossier.py l.328-340 (grain_tier_of(pr_body) == DEEP + SECRETARIAT_LANES + supersedes), docstrings l.37-39 et justification l.73-76
    • Controle positif : rejouer le refus de Fix(qc,#19744): aligne la prose QC-Py-19 sur la sortie reexecutee (cellules 36 et 40) #19801, le refus doit tomber -> LIVRE : test test_rc0_secretariat_deep_with_supersedes_posts_through (present sur origin/main, compte verifie), rejeu causal documente dans le body de la PR
    • Controle negatif : un re-stamp tiers sur un dossier MED du secretariat reste refuse -> LIVRE : test test_rc0_secretariat_med_with_supersedes_refused + test test_rc0_secretariat_deep_without_supersedes_refused (sans supersedes) + controle preexistant test_double_stamp_rc0_with_supersedes_refused reste rouge
    • Preuve d'execution -> LIVREE : 20 passed (pytest test_post_dossier.py) documentee dans la PR ET revalidee par ai-01 en validation post-merge (dashboard CoursIA-3, 2026-10-08T22:03Z : main synchronise, 20 passed/0,29s)
    • Derogation interimaire [DEEP DEROGATION] -> CADUQUE : la porte etant livree, la derogation n'a plus d'objet ; feat(qc,#19929): BitcoinRegimeGate measured NO BEATS against held references #19931 (cas actif) attend desormais le dossier domaine de l'adjoint par la voie normale, comme le consigne ai-01 (c. 21:50Z)
      residue: none
      open-prs: 0
      comments-reviewed: 2
      [/CLOSURE PREFLIGHT]
  6. jsboige commented on Oct 8, 2026

    @jsboige
    Owner

    [CLOSURE PREFLIGHT]
    schema: 1
    lane: myia-po-2026:CoursIA-3
    issue: 19922
    verdict: CLOSE
    acceptance:

    • Correctif : autoriser dans post_dossier.py le re-stamp d'une lane tierce qualifiee quand (1) Grain: DEEP, (2) dossier intact tenant le gate vient du secretariat, (3) supersedes + supersedes-why renseignes -> LIVRE : PR fix(coordination,#19922): post_dossier -- porte de re-stamp de domaine pour un DEEP sur READY secretariat #19964 MERGED 2026-10-08T21:35:28Z ; verifie firsthand sur origin/main : porte post_dossier.py l.328-340 (grain_tier_of(pr_body) == DEEP + SECRETARIAT_LANES + supersedes), docstrings l.37-39 et justification l.73-76
    • Controle positif : rejouer le refus de Fix(qc,#19744): aligne la prose QC-Py-19 sur la sortie reexecutee (cellules 36 et 40) #19801, le refus doit tomber -> LIVRE : test test_rc0_secretariat_deep_with_supersedes_posts_through (present sur origin/main, compte verifie), rejeu causal documente dans le body de la PR
    • Controle negatif : un re-stamp tiers sur un dossier MED du secretariat reste refuse -> LIVRE : test test_rc0_secretariat_med_with_supersedes_refused + test test_rc0_secretariat_deep_without_supersedes_refused (sans supersedes) + controle preexistant test_double_stamp_rc0_with_supersedes_refused reste rouge
    • Preuve d'execution -> LIVREE : 20 passed (pytest test_post_dossier.py) documentee dans la PR ET revalidee par ai-01 en validation post-merge (dashboard CoursIA-3, 2026-10-08T22:03Z : main synchronise, 20 passed/0,29s)
    • Derogation interimaire [DEEP DEROGATION] -> CADUQUE : la porte etant livree, la derogation n'a plus d'objet ; le cas DEEP actif de la flotte (strategie ML QC, dossier secrataire du 17:47Z) attend desormais le dossier domaine de l'adjoint par la voie normale, comme le consigne ai-01 (c. 21:50Z) -- en cours, pas un defaut de cette issue
      residue: none
      open-prs: 0
      comments-reviewed: 3
      [/CLOSURE PREFLIGHT]
  7. removed
    candidate-deliveredReferenced by a merged PR with no post-merge activity -- candidate for close triage (#10466)
    on Oct 8, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    bugSomething isn't working

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions