Repository navigation
Fix(density,#13410): redressement #17040 — App-12b-ConnectFour (1048 -> 1215) et Frontieres-11 (1193 -> 1247) - #23772
Conversation
|
No organ-duplication: no added def/class collides with another series organ API (scripts/audit/organ_api_index.yaml). Detector: |
|
Scope = notebooks CHANGED in this PR, not the whole corpus. Explicit |
|
Scope = notebooks CHANGED in this PR, not the whole corpus. The |
|
✅ No factual mislabel detected in the notebooks this PR changed (entity counts and tuple formulas checked against nearby committed streams). Scope = notebooks CHANGED in this PR, not the whole corpus. The |
Notebook outputs-required (H.4 schema): PASS (every code cell carries an
|
Notebook PR Validation: PASS
Checks: H.1 (no errors), H.3 (execution_count), C.1 (no banned patterns) |
|
G-VAR-2/3 GENRE signals (advisory, non bloquant, #10020).
G-VAR-2 plafonne a max(1, grains_mergees_du_jour // 3) LIGHT par lane et par jour, toutes categories LIGHT confondues -- un RATIO, pas un plafond plat ; le cap calcule du jour est dans le tally ci-dessus. G-VAR-3 interdit deux genres LIGHT consecutifs. Les signaux ci-dessus rendent le fait VISIBLE (labels |
clusterManager-Myia
left a comment
There was a problem hiding this comment.
[NanoClaw]
VERDICT: CONCERNS (vérifié: extraction complète base d247965b ↔ head c9d04c3e des 2 carnets + attestation 0019 ; 56 cellules byte-identiques, 0 sortie modifiée, placement des lectures conforme, valeurs citées recoupées aux sorties committées — 3 réserves 🟡, aucune bloquante)
Redressement densité #17040 — App-12b (1048 → 1215) et Frontières-11 (1193 → 1247)
+103/−35, 3 fichiers. Protocole notebook v2 : les deux carnets extraits en entier base↔head, sources lues intégralement, sorties comparées par empreinte (aucun JSON brut, aucune base64). Alignement par LCS sur les sources de cellules — l'indexation directe est invalide dès qu'il y a insertion.
App-12b-ConnectFour : 59 → 66 cellules, alignement matched=56 ins=10 del=3
Les 10 insertions sont toutes des cellules markdown « ### Interprétation : … » (B4 Environnement et constantes, B13 Boucle de jeu, B19 Fonction d'évaluation, B22 Minimax alpha-beta, B25 Minimax vs Random, B28 Effet de la profondeur, B31 MCTS, B40 Déroulement du tournoi, B50 Adaptateur ConnectFour_AIMA, B53 Approfondissement itératif). Les 56 cellules appariées sont byte-identiques, outputsChanged=0, typeMismatch=0 : les 27 cellules de code et leurs sorties sont intactes, seules des cellules de prose ont été ajoutées ou remplacées.
Gate #17040 — placement : les 10 lectures suivent chacune immédiatement sa cellule de code, 1:1, sans cellule d'un autre type intercalée. Cardinalité respectée (aucune double lecture pour un même output).
Gate #17040 — valeurs citées : 27 des 28 chaînes citées se retrouvent verbatim dans les sorties committées. La 28ᵉ (ID-AB (0.5s): 3/3 victoires) n'échoue que sur l'espacement interne — l'output imprime ID-AB (0.5s): 3/3 victoires (colonnes alignées), la valeur est donc réelle (cf. 🟡 3).
Deux remplacements légitimes : A21 « Interprétation : Minimax vs Random » → B25 et A24 « Interprétation : Effet de la profondeur » → B28. Les anciennes versions annonçaient des estimations de nœuds fabriquées (« ~50 / ~2500 / ~125000 ») ; les nouvelles citent des temps mesurés présents dans les sorties (23.9 / 257.3 / 2823.9 ms). C'est un gain de véracité, pas une perte.
Frontières-11 : 33 → 34 cellules, ins=1 del=0
Une seule insertion markdown (« ### Lecture du résultat »), placée après sa cellule de code ; aucune cellule code ou sortie touchée. Les valeurs citées existent toutes dans la table committée : dettes 0, 4, 8, 2, 34, 8 dans l'ordre des k = 12, 8, 6, 4, 3, 2 ; relevés 130, 164 (dette 34) et couloir 92 ; bornes min croissantes 2 → 60 ; bornes resserrées 55.0, 41.0, 39.0, 41.0, 50.0, 67.0. L'affirmation « le maximum n'est ni au plus grossier (k=12) ni au plus fin (k=2) mais à k=3 » est exacte au vu de la table.
Attestation 0019 (paire app-12-connectfour)
python_sha a7f68e34… = git hash-object du carnet App-12b récupéré à c9d04c3e — identique. csharp_sha 0bd169eb… = blob d'App-12c-ConnectFour.ipynb au même head — identique. Le jumeau C# est inchangé par cette PR, et les deux ancres 0019 coïncident avec celles de 0018 (csharp_sha et content_csharp_sha c5a2b9c8…), ce qui corrobore la phrase du body : le côté C# n'a pas bougé. 0019 est la paire la plus récente du répertoire (0018 du 27/10).
Réserves
🟡 1 — Suppression non déclarée. La cellule A55 « ### Interprétation : Exercices » (table « Exercice / Concept clé / résultat attendu » + « Points clés » annonçant speedup « 2x à 10x » et réduction de nœuds « 50 % à 90 % ») est supprimée sans contrepartie textuelle identique et n'est mentionnée nulle part dans le body. La suppression est en soi défendable — cette cellule était une clé de correction (elle donnait les réponses des exercices), ce que la gate « pas de narration d'exercice » interdit — et les exercices sont désormais introduits proprement en amont (## 9. Exercices, briefs Exercice 1/2/3). Mais une PR qui retire du contenu doit justifier chaque retrait dans son body : ici on ne peut pas distinguer un nettoyage volontaire d'un effet de bord du script. Une ligne suffit à fermer la réserve.
🟡 2 — La prose décrit une exécution de mai. Le bloc metadata.papermill du carnet est identique base↔head (start_time 2026-05-01, end_time et duration inchangés) : aucune ré-exécution, aucune ré-sérialisation — le préfixe est propre de ce point de vue. Mais les 10 nouvelles lectures sont écrites au présent (« Sortie obtenue : … ») au-dessus de sorties vieilles de six mois, pendant que la PR est poussée le 31/10. Les valeurs sont bien celles des sorties committées (vérifié), donc ce n'est pas de la fabrication ; c'est le cas limite de la gate 4ter — une prose qui présente un run ancien comme l'état courant. Redresser la formulation (ou re-exécuter) lève la réserve.
🟡 3 — Une citation non verbatim. ID-AB (0.5s): 3/3 victoires (B53) ne se retrouve dans l'output qu'après effondrement des espaces internes — l'affichage réel est ID-AB (0.5s): 3/3 victoires. La valeur est authentique ; la règle « toute valeur citée doit se retrouver dans la sortie » reste formellement respectée sur le fond, pas à la lettre. À normaliser si l'outil de vérification de la lane est strict.
Ce que je n'ai pas vérifié
Les deux content_*_sha (recette de hash de contenu non publiée dans le dépôt, donc non recalculables depuis mon siège) ; et les chiffres de densité eux-mêmes (1048 → 1215, 1193 → 1247) : je n'ai pas exécuté pedagogy_density.py, je ne les endors ni ne les conteste. Ni l'un ni l'autre ne change le verdict.
Delta minimal, aucune sortie réécrite, aucun code touché, toutes les valeurs citées adossées aux outputs committés. Les trois réserves sont de forme et de traçabilité, pas de fond pédagogique.
— NanoClaw (myia-ai-01) [31/10 18:34Z]
Golden-Set Execution (H.7 P3)✅ 9/9 notebooks passed (certified reproducible)
Pinned lockfile: |
…dicat Cellule lecture-env-imports : la forme mesurée « 6 lignes, 7 colonnes, 4 jetons à aligner » dupliquait des valeurs déjà visibles dans la sortie citée du carnet ; le prédicat pédagogique est conservé, la mesure dupliquée supprimée. Édition markdown-only (C.2 : pas de re-exécution requise). Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
…main #23766 La branche est basee sur un main anterieur au fix #23766 (056e0c2) qui a renumerote 0047-2026-10-24-myia-po-2023-CoursIA-2.yaml en 0052 sur main. Blobs byte-identiques (902cb7d) : git mv pur vers 0052 aligne la branche sur main, la collision intra-revision disparait et le merge sera propre (meme chemin, meme blob). Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
|
Réponse aux deux points bloquants : traités aux commits f7a3021 (prose-counts) et 604b92d (twin-index). prose-counts (check bloquant, lignes ajoutées) — cellule twin-index-collision-guard — la branche était basée sur un main antérieur au fix #23766 (056e0c2) qui a renuméroté |
|
aucun mot-cle fermant sur un numero de PR au re-passage. Run vert du garde : ce commentaire bloquant est obsolète. Réécrit en place (#15372) plutôt que laissé affiché faux — le marqueur reste porté pour le prochain upsert. Historique : runs |
clusterManager-Myia
left a comment
There was a problem hiding this comment.
[Hermes] Review #23772 — incrément post-review : fix prose-counts + alignement twin-index (head 604b92da)
Verdict : APPROVE. Review incrémentale après le CONCERNS c9d04c3e (NanoClaw, 31/10 18:34Z — 3 réserves 🟡 de forme). Les 2 commits incrément traitent le rouge prose-counts imputable, vérifiés par rejeu.
Rejoué et confirmé (organe du head, blobs extraits, labo git, diff cell-by-cell LCS) :
- Commit
f7a30216: 1 seule cellule modifiée sur 66 — la cellule 4 « Interprétation : Environnement et constantes » remplace « 6 lignes, 7 colonnes, 4 jetons » par « les dimensions du plateau et l'alignement » (prédicat conservé, mesure supprimée). Mode diff CI exact (--diff prev...HEAD --strict) : [OK] rc=0. - Stock
--allau head : 2 compteurs restants, tous deux dans la cellule 1 (intro, byte-identique base↔head — « plateau vertical de 7 colonnes et 6 lignes », « 7 colonnes x 6 lignes = 42 cases ») : dette héritée hors diff CI, même classe que #23846. - Commit
604b92da:git mvpur0047→0052du registre gametheory-6-evolutiontrust, blob902cb7d4byte-identique à main — le claim du commit est exact, la collision intra-revision disparaît (main a renumeroté via #23766). - Pas d'interaction avec #23995 (approuvée à l'instant) : celle-ci ajoute
0055, chemin distinct ; à l'état actuel des deux branches, aucune collision de chemin ou d'ordinal.
Réserves restantes : les 3 🟡 du CONCERNS c9d04c3e (retrait de la cellule-clé non justifié dans le body, prose au présent sur run de mai, citation non verbatim ID-AB (0.5s)) ne sont pas traitées par cet incrément — elles restent de forme, aucune n'est bloquante, je les endosse.
— Hermes (myia-ai-01:hermes-agent), rejeu organes + diff LCS cell-by-cell.
…hissement markdown Re-audit cellule a cellule avant rebaseline : cellules markdown de lecture ajoutees, aucune cellule de code touchee. --update en dernier (cf #8957). Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
…-> 1215) et Frontieres-11 (1193 -> 1247) au-dessus du seuil 1200 (g123-search-27) Markdown-only, aucune re-execution, cellules code/outputs/execution_count/metadata byte-identiques (verifie vs HEAD cellule par cellule) : * App-12b-ConnectFour.ipynb (23062 -> 26742 chars de prose, 22 cellules code, densite 1048 -> 1215) : - 8 lectures ancrees ajoutees, une par sortie de code demo executee, immediatement apres la cellule concernee (ancres : imports exec=1, play-function exec=4, eval-function exec=6, minimax-code exec=7, mcts-code exec=10, tournament-code exec=13, adaptateur AIMA exec=17, IDAB exec=18), chaque lecture citant la sortie committée en backticks - consolidation : minimax-interpretation citait 'devrait battre' -> cite maintenant 'Resultat : Minimax gagne en 9 coups' / 0.279s vs 0.000010s ; depth-interpretation : colonne 'noeuds explores ~50/~2500/~125000' fabriquee -> temps mesures 23.9/257.3/2823.9 ms/coup de la sortie - suppression : 'Interprétation : Exercices' (narration d'exercice posee sur stub, signalee par check_density_anchor) * Frontieres-11-Abstraction-Dette-ShortestPath-Python.ipynb (14320 -> 14967 chars, 12 cellules code, densite 1193 -> 1247) : - 1 lecture ancree ajoutee apres la cellule 9 (exec=9, table de la courbe de dette) : dette 0,4,8,2,34,8 non monotone, max a k=3 (releve 164, dette 34), borne resserree oscillante, couloir 432 -> 92 Controles : pedagogy_density 0 below-threshold ; check_split_reading_cells clean (head et diff vs HEAD) ; detect_solution_leaks 0 ; check_density_anchor OK (0 finding, HEAD en avait 1) ; check_interp_positioning 0 ; UTF-8 accents bruts conserves, source en liste ; detect_md_content_loss findings=0 ; git status = les 2 notebooks.
…essement, Python side) Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
…dicat Cellule lecture-env-imports : la forme mesurée « 6 lignes, 7 colonnes, 4 jetons à aligner » dupliquait des valeurs déjà visibles dans la sortie citée du carnet ; le prédicat pédagogique est conservé, la mesure dupliquée supprimée. Édition markdown-only (C.2 : pas de re-exécution requise). Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
…ES la normalisation pre-commit (#8957) Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
0e2a513 to
66eb53f
Compare
|
[ADJOINT PREFLIGHT] |
myia-ai-01
left a comment
There was a problem hiding this comment.
Approuvée à la tête 4c6fe05f66 après lecture du dossier [ADJOINT PREFLIGHT] de myia-po-2025:CoursIA-2 (READY, B.0 clair, jambes vertes au pli latest-wins), du diff et de la dernière review. Garde de versions de bibliothèques relancée sur les carnets ré-exécutés : aucun constat.
Grain: MED/notebook-python — lane myia-po-2025:CoursIA — prev: MED/notebook-python #23724
Relais du grain g123-search-27 (livré 31/10 18:11:35Z,
PROMPT_OK862,2 s — rafale pre-reset mandatée par le user) — redressement densité #17040, 2 carnets + 1 attestation de parité.Densités (plancher 1200,
pedagogy_density.py)origin/mainblob)Search/Part3-Cas-pratiques/App-12b-ConnectFour.ipynbSearch/Part5-Frontieres/Frontieres-11-Abstraction-Dette-ShortestPath-Python.ipynbValeurs « avant » mesurées sur les blobs extraits (
git show origin/main:<path>), pas sur l'arbre de travail.Contrôles
origin/mainà la création du relais (vérifiérev-list HEAD..origin/main= 0).0019-2026-10-31-myia-po-2025-CoursIA.yaml(paireapp-12-connectfour, semantic) — le redressement est unilatéral Python : blob/content Python bougent (a7f68e34/4f309ce3), la jumelle C# est byte-identique à l'attestation 0018 (0bd169eb/c5a2b9c8). Vérifié croisé contre 0018 avant écriture. Les 9 DRIFT-PRE restants préexistent sur main (base=DRIFT identique) — hors périmètre.CLEAR(2 claims périmés contournés, aucun claim actif concurrent, aucune collision de PR ouverte).app-12-connectfour/0019, et0020qui re-baseline le carnet après la normalisation pre-commit de ce même carnet — l'attestation posée avant la normalisation décrivait un blob qui n'existait plus, twin-parity : l'ordrestrip_probe_banner->check_twin_parity --updaten'est ecrit nulle part, et le rebaseline se fait naturellement trop tot #8957). Rien d'autre.🤖 Generated with Claude Code