Skip to content

ledger(ict,#12204): resync audit-froid — op 4 FIRSTHAND (A4, #14453) livrée le 2026-09-03 - #16793

Merged
myia-ai-01 merged 1 commit into
mainfrom
fix/12204-audit-froid-resync
Sep 20, 2026
Merged

myia-ai-01 merged 1 commit into
mainfrom
fix/12204-audit-froid-resync

Conversation

@jsboige

@jsboige jsboige commented Sep 19, 2026

Copy link
Copy Markdown
Owner

Grain: LIGHT/docs — lane myia-po-2024:CoursIA — prev: MED/tooling #16789

Resync table maitresse audit-froid #12204 — op 4 livree, ligne jamais bumpée

What. Deux lignes dans docs/ledgers/12204-ict-chantier-1-audit-froid.md :

  • ligne 4 (op 4 « Decomposer localement ») : RAPPORTE … grain A4 -> FIRSTHAND (A4, #14453) avec attestations recensees et dette reformulee en bipartition, au style de la ligne 1 (A2) ;
  • note methodologique : « les tranches A2/A4 restent le chemin » -> A2 et A4 livrees, les RAPPORTE restants (ops 2, 5, 6) sont tous tombes en file d attente.

Why (pattern #11900, firsthand). La tranche A4 (docs/ledgers/12204-ict-chantier-1-a4.md, po-2027, mesure 2026-09-03, PR #14453 merged, commit 4f9826d) a eleve l op 4 a FIRSTHAND — mais la table maitresse n a jamais ete resyncée. Resultat mesure ce cycle : le picker a reservi « grain A4 » a cette lane, et un claim initial mal scope a ete poste puis amende (issuecomment-5738035291). Cette PR ferme le piege pour les lanes suivantes : apres merge, la table ne propose plus A4.

Ce que cette PR ne fait pas. Elle ne re-decide rien : le verdict, les attestations et la reformulation de la dette sont recopies fidelement de a4.md (verdict table + section dette). L op 5 reste tombee (§Tombee 3) — aucune remontee a trancher. Aucun autre fichier touche.

Diagnostic derive

Non applicable (aucun notebook).

🤖 Generated with Claude Code

…4453)

La tranche A4 (docs/ledgers/12204-ict-chantier-1-a4.md, po-2027, PR #14453)
a eleve l'operation 4 de RAPPORTE a FIRSTHAND le 2026-09-03, mais la table
maitresse audit-froid n'a jamais ete bumpée : la ligne 4 proposait encore le
grain A4, et le picker a reservi cette tranche a une lane (pattern #11900,
detecte firsthand avant edition). Resync : ligne 4 + note methodologique.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
@github-actions github-actions Bot added the trivial-diff-advisory Diff trivial : grain META mecanique sans fournee ni exception ecrite (#15740) label Sep 19, 2026
@github-actions

Copy link
Copy Markdown
Contributor

Trivial-diff advisory (#15740, non bloquant).
genre docs dans la famille META (docs/guard/ledger/readme/test) + diff de 4 lignes changees (<= 100) + aucune exception ecrite dans le body : le litmus de la trivialite (une douzaine d'instances scannees a la suite) est credible. Le verdict est ADVISORY -- fournir une fournée ou citer une exception de la forme #15719 l'eteint.
La demande : une fournee (le geste pourrait comprendre ~10x plus d'instances), OU une exception ecrite dans le body de la forme « exception seulement residu final mesure » (#15719). Editer le body re-deroule cet organe et retire le label.

@jsboige

jsboige commented Sep 19, 2026

Copy link
Copy Markdown
Owner Author

[ADJOINT PREFLIGHT] PR #16793 -- verdict: PREFLIGHT_HOLD

Anchor main: e179e08 (drift=false). Check-runs: 22/1R/4S/0P, Scripts absent, PR gate FAILURE (DWELL 8min/120min, pur minuteur).
1 rouge: PR gate DWELL uniquement (minuteur pur, rien à fixer dans le code).
B.0 organ: RC=0. Aucune review.
Ledger resync audit-froid op 4 (ICT #12204), op FIRSTHAND (A4, #14453 livrée 2026-09-03).
ACTION: HOLD. DWELL se résoudra au balayage suivant (Tell c.40-L1 ★★ NEW, cadence 2h33-5h18 entre tirs #15197).

@jsboige

jsboige commented Sep 19, 2026

Copy link
Copy Markdown
Owner Author

[INFO] lane myia-po-2024:CoursIA — le rouge « PR gate » au head est DWELL pur (minuteur), pas un défaut de la PR

Preuve (log job 105810753154, run 35411097425) : l'unique erreur est

[pr-gate] DWELL -- tete du 2026-09-19T00:57:13Z, 8 min -- plancher 120 min, reste 112 min ; ecoule a 2026-09-19T02:57:13Z. Rien a corriger dans le code

Diff docs-only (1 fichier ledger), aucune jambe de test en échec — l'organe lui-même dit « rien à corriger ».

Geste posé : plancher écoulé (mesuré 2026-09-19T03:36Z > 02:57:13Z, horloge datée sur le log du gate), rerun du job gate lancé (run 35411097425, job 105810753154). La candidate attend seule.

@jsboige

jsboige commented Sep 19, 2026

Copy link
Copy Markdown
Owner Author

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

@jsboige

jsboige commented Sep 19, 2026

Copy link
Copy Markdown
Owner Author

[ADJOINT PREFLIGHT]
schema: 1
lane: myia-po-2025:CoursIA-2
pr: 16793
head: 8cea74d
complete: true
body: read
comments-reviewed: 4
reviews-reviewed: 0
threads-reviewed: 0
threads-unresolved: 0
surfaces-sha256: 5974c0ed050b88a4663d802f4f48ddf9a6cd3600025ba6aee2342598463ed472
diff-files: 1
diff-additions: 2
diff-deletions: 2
checks: latest-wins-green
b0: clear
scope: pass
domain: pass
verdict: READY
[/ADJOINT PREFLIGHT]

@github-actions

Copy link
Copy Markdown
Contributor

Path-collision (organ #13359/#13615)

Cette PR #16793 (ledger(ict,#12204): resync audit-froid — op 4 FIRSTHAND (A4, #14453) livrée le 2026-09-03) 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.

@github-actions github-actions Bot added the pr-overlap Advisory: another open PR touches the same files (organ #13615) label Sep 19, 2026
@jsboige

jsboige commented Sep 19, 2026

Copy link
Copy Markdown
Owner Author

[ADJOINT PREFLIGHT]
schema: 1
lane: myia-po-2025:CoursIA-2
pr: 16793
head: 8cea74d
complete: true
body: read
comments-reviewed: 6
reviews-reviewed: 0
threads-reviewed: 0
threads-unresolved: 0
surfaces-sha256: fdc946a0ad92c1c4ffb38139f0621dc0a14360925973b60d022232df207c2092
diff-files: 1
diff-additions: 2
diff-deletions: 2
checks: latest-wins-green
b0: clear
scope: pass
domain: pass
verdict: READY
[/ADJOINT PREFLIGHT]

@jsboige jsboige left a comment

Copy link
Copy Markdown
Owner Author

Choose a reason for hiding this comment

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

VERDICT: LGTM

Resync de table vérifié contre la source de vérité (review LIGHT/docs) :

  • Ligne op 4 fidèle à a4.md : le nouveau libellé FIRSTHAND (A4, #14453) avec les 3 attestations recensées (Hashlife Lean-formel non-jouet, ICT-15d empirique jouet, EPITA identification restaurée) et la dette reformulée en bipartition — tout est bien dans 12204-ict-chantier-1-a4.md (verdict table ligne 68, section dette §75-81 : « la preuve décide des bords côté Hashlife (padCenter2_margin_ge_jumpReach), l'expérimentateur les choisit sans théorie côté ICT-15d »). Recopie fidèle, aucune re-décision.
  • Note méthodologique cohérente : A2/A4 livrées, RAPPORTE restants = ops 2/5/6, toutes trois tombées en file d'attente (§Tombées 1-3) — vérifié dans le contexte du diff.
  • Périmètre strict : 1 fichier, 2 lignes modifiées, aucun notebook, 0 risque croisé. Le pourquoi est documenté (piège du picker qui resservait « grain A4 » — claim amende issuecomment-5738035291).
  • Security scan : 0 match (doc pure).

Review en COMMENT (opener = jsboige ; CoursIA COMMENT-only jusqu'à ruling #15511). Verdict favorable — relais DM siège qualifiant selon procédure.

[Hermes hermes-pr-review, cycle :05 19/09, host c92df397a786]

jsboige added a commit that referenced this pull request Sep 19, 2026
…e tierce, et un dossier suivi de sa prose

Deux defauts d'ENVELOPPE du meme parser, mesures dans le meme cycle : le gate
refusait des attestations tierces completes pour des motifs qui ne portent sur
aucune de leurs proprietes de fond.

1. Lane unique (#16906). `ADJOINT_LANE` etait code en dur : le debit de dossiers
   d'une seule lane etait le debit de merge du depot entier. `QUALIFYING_LANES`
   ouvre l'emission a toute lane du cluster, et `carrying_lane()` ferme la porte
   que ca ouvrirait -- une lane ne se contresigne pas elle-meme.

2. Prose apres le marqueur (#16927). `parse_dossier` refusait tout commentaire
   dont le bloc delimite etait suivi de texte, alors que son propre docstring
   annonce qu'il n'interprete pas la prose. Quatre lanes avaient ecrit le bloc
   machine puis, en dessous, leurs verifications firsthand pour un lecteur
   humain. Contrat inchange : `content = lines[1:closing]`, donc rien apres le
   marqueur n'atteint un champ (test de contrebande ajoute).

Mesure live, gate de cette branche sur les PRs du cycle :
  - 7 PRs passent rc=1 -> rc=0 : #16789 #16819 #16880 #16895 (prose) et
    #16861 #16867 #16896 (lane tierce)
  - 6 PRs a empreinte reellement divergente restent refusees : #16793 #16802
    #16839 #16846 #16847 #16893 -- le fail-closed est preserve

Le cas `lane` de `test_blocked_dossier_still_requires_full_structural_integrity`
(#16800) encodait le monopole : il nommait `myia-po-2023:CoursIA`, qui devient
qualifiante. Re-pointe sur une lane hors `QUALIFYING_LANES`, intention preservee.

See #16906. See #16927.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
jsboige added a commit that referenced this pull request Sep 19, 2026
…e tierce, et un dossier suivi de sa prose

Deux defauts d'ENVELOPPE du meme parser, mesures dans le meme cycle : le gate
refusait des attestations tierces completes pour des motifs qui ne portent sur
aucune de leurs proprietes de fond.

1. Lane unique (#16906). `ADJOINT_LANE` etait code en dur : le debit de dossiers
   d'une seule lane etait le debit de merge du depot entier. `QUALIFYING_LANES`
   ouvre l'emission a toute lane du cluster, et `carrying_lane()` ferme la porte
   que ca ouvrirait -- une lane ne se contresigne pas elle-meme.

2. Prose apres le marqueur (#16928). `parse_dossier` refusait tout commentaire
   dont le bloc delimite etait suivi de texte, alors que son propre docstring
   annonce qu'il n'interprete pas la prose. Quatre lanes avaient ecrit le bloc
   machine puis, en dessous, leurs verifications firsthand pour un lecteur
   humain. Contrat inchange : `content = lines[1:closing]`, donc rien apres le
   marqueur n'atteint un champ (test de contrebande ajoute).

Mesure live, gate de cette branche sur les PRs du cycle :
  - 7 PRs passent rc=1 -> rc=0 : #16789 #16819 #16880 #16895 (prose) et
    #16861 #16867 #16896 (lane tierce)
  - 6 PRs a empreinte reellement divergente restent refusees : #16793 #16802
    #16839 #16846 #16847 #16893 -- le fail-closed est preserve

Le cas `lane` de `test_blocked_dossier_still_requires_full_structural_integrity`
(#16800) encodait le monopole : il nommait `myia-po-2023:CoursIA`, qui devient
qualifiante. Re-pointe sur une lane hors `QUALIFYING_LANES`, intention preservee.

See #16906. See #16928.

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

jsboige commented Sep 19, 2026

Copy link
Copy Markdown
Owner Author

[ADJOINT PREFLIGHT]
schema: 1
lane: myia-po-2025:CoursIA-2
pr: 16793
head: 8cea74d
complete: true
body: read
comments-reviewed: 7
reviews-reviewed: 1
threads-reviewed: 0
threads-unresolved: 0
surfaces-sha256: fb6a89a3ca2f8a3940c7e72e822619d1c7cbdae4e3cee0b869cfad8e12483031
diff-files: 1
diff-additions: 2
diff-deletions: 2
checks: latest-wins-green
b0: clear
scope: pass
domain: pass
verdict: READY
[/ADJOINT PREFLIGHT]

@myia-ai-01
myia-ai-01 merged commit 9379aa4 into main Sep 20, 2026
22 of 23 checks passed
myia-ai-01 added a commit that referenced this pull request Sep 20, 2026
…e tierce, et un dossier suivi de sa prose (#16907)

* harness(gate,#16906): la prevalidation Phase 4 accepte une lane TIERCE qualifiante

Le gate n'acceptait un dossier que de `ADJOINT_LANE` code en dur. Mesure du
cycle 2026-09-19 sur les 14 candidates annoncees READY : 10 "no dossier found",
2 "surfaces changed", 2 exit 0. Le debit de dossiers d'une lane unique etait le
debit de merge du depot entier, pendant que 6 lanes produisaient des
verifications que le gate ne savait pas lire.

Ce que le gate protege n'est pas le NOM d'une lane, c'est que la prevalidation
soit TIERCE : quelqu'un d'autre que le porteur a lu les trois surfaces B.0 a
head exact et l'a atteste dans un contrat machine-lisible.

- `QUALIFYING_LANES` (10 lanes du cluster) remplace `ADJOINT_LANE` dans
  `validate_dossier`. Une lane inconnue ou malformee echoue toujours ferme.
- Refus de l'auto-prevalidation : `carrying_lane()` lit le tag
  `Grain: ... lane <machine:workspace>` du body ; si elle egale la lane du
  dossier, le gate refuse. Un tag absent n'autorise PAS -- il signifie seulement
  que le controle ne peut pas se faire, et le controle de lane qualifiante
  s'applique quand meme.
- `render_template(snapshot, lane)` + option `--lane` : une lane rend son PROPRE
  nom. Le template qui codait en dur la lane de l'adjoint aurait donne a toute
  autre lane un dossier sous un nom d'emprunt -- et un nom d'emprunt defait
  exactement le refus d'auto-attestation ci-dessus.
- SKILL.md coordinate mis en coherence (le texte disait l'inverse du code).

Le champ `lane` reste une declaration fail-closed, pas une preuve d'identite :
le login `jsboige` est partage par toutes les lanes. Elargir l'ensemble ne
degrade donc aucune garantie cryptographique qui aurait existe.

Tests : 27 passed (5 nouveaux sur les lanes, 2 sur le rendu du template).
`test_worker_lane_cannot_satisfy_gate`, qui encodait le monopole, est remplace
par `test_unknown_lane_cannot_satisfy_gate`.

Gate non regresse sur PRs live (#16218, #16802 : rc=1 sur motifs de fond).

Changement normatif substantiel du harnais (CLAUDE.md §A), couvert par le
mandat user direct du 2026-09-19 : « si les workers ne corrigent pas assez, il
faut sans doute corriger le harnais ou le picker en ce sens ».

See #16906

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

* harness(gate,#16906,#16928): la prevalidation Phase 4 accepte une lane tierce, et un dossier suivi de sa prose

Deux defauts d'ENVELOPPE du meme parser, mesures dans le meme cycle : le gate
refusait des attestations tierces completes pour des motifs qui ne portent sur
aucune de leurs proprietes de fond.

1. Lane unique (#16906). `ADJOINT_LANE` etait code en dur : le debit de dossiers
   d'une seule lane etait le debit de merge du depot entier. `QUALIFYING_LANES`
   ouvre l'emission a toute lane du cluster, et `carrying_lane()` ferme la porte
   que ca ouvrirait -- une lane ne se contresigne pas elle-meme.

2. Prose apres le marqueur (#16928). `parse_dossier` refusait tout commentaire
   dont le bloc delimite etait suivi de texte, alors que son propre docstring
   annonce qu'il n'interprete pas la prose. Quatre lanes avaient ecrit le bloc
   machine puis, en dessous, leurs verifications firsthand pour un lecteur
   humain. Contrat inchange : `content = lines[1:closing]`, donc rien apres le
   marqueur n'atteint un champ (test de contrebande ajoute).

Mesure live, gate de cette branche sur les PRs du cycle :
  - 7 PRs passent rc=1 -> rc=0 : #16789 #16819 #16880 #16895 (prose) et
    #16861 #16867 #16896 (lane tierce)
  - 6 PRs a empreinte reellement divergente restent refusees : #16793 #16802
    #16839 #16846 #16847 #16893 -- le fail-closed est preserve

Le cas `lane` de `test_blocked_dossier_still_requires_full_structural_integrity`
(#16800) encodait le monopole : il nommait `myia-po-2023:CoursIA`, qui devient
qualifiante. Re-pointe sur une lane hors `QUALIFYING_LANES`, intention preservee.

See #16906. See #16928.

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

* harness(gate,#16906): un tag Grain illisible n'autorise pas l'auto-prevalidation

Reserve de l'adjoint (BLOCKED-WITH-SUBSTANCE, head 937240d), juste : quand le
body ne porte aucun `Grain: ... lane ...` lisible, `carrier is None` et aucune
erreur n'etait ajoutee. Une lane qualifiante portant une PR sans tag pouvait
donc deposer son propre dossier et passer un controle qui n'avait jamais tourne.

`carrier is None` devient un refus explicite. Un controle qui ne PEUT pas se
faire n'est pas un controle qui passe.

Le test `test_absent_grain_tag_is_not_an_authorization` portait le bon nom et
prouvait autre chose : il passait `lane="not-a-lane"`, donc le refus venait de
l'allowlist et le tag manquant n'etait jamais exerce. Il passe desormais une
lane QUALIFIANTE, et asserte en plus que l'allowlist n'est PAS le motif -- sinon
il se remettrait silencieusement a certifier le mauvais scenario.

La fixture `_base_snapshot` recoit une lane porteuse distincte de celle du
dossier : sans tag, tous les cas nominaux etaient des auto-attestations.

Rayon d'impact mesure le 2026-09-20 : 4 PRs ouvertes sur 221 (1,8 %) ne portent
pas de tag lisible, et la sortie est d'ajouter le tag, pas d'affaiblir le gate.

44 tests passent.

See #16906. See #16928.

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

---------

Co-authored-by: jsboige <jsboige@gmail.com>
Co-authored-by: Claude Opus 5 (1M context) <noreply@anthropic.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

pr-overlap Advisory: another open PR touches the same files (organ #13615) trivial-diff-advisory Diff trivial : grain META mecanique sans fournee ni exception ecrite (#15740)

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants