Skip to content

fix(dswa,#17391): Lab12e — curer 2 findings paraphrase-stack (partition GoogleADK) - #17553

Merged
myia-ai-01 merged 1 commit into
mainfrom
fix/lab12e-paraphrase-stack
Sep 23, 2026
Merged

myia-ai-01 merged 1 commit into
mainfrom
fix/lab12e-paraphrase-stack

Conversation

@jsboige

@jsboige jsboige commented Sep 23, 2026

Copy link
Copy Markdown
Owner

Grain: MED/notebook-python -- lane myia-po-2026:CoursIA -- prev: MED/notebook-python #17349

#17391 — partition GoogleADK : Lab12e-Session-Persistence — 2 findings paraphrase-stack

Findings du 2026-09-23T04:42:47Z. Protocole audit-reassessment.md appliqué : passe d'organes réelle, puis vérification firsthand des deux findings contre le notebook avant toute édition.

Périmètre : 1 fichier, markdown seul (+4 / −15). Aucune cellule de code touchée → les sorties committées restent valides (exception C.2 « modifs markdown uniquement »), et rien à ré-exécuter (le notebook interroge un provider distant openrouter).


F1 — cellule 17 : CONFIRMÉ, corrigé

La cellule ne porte aucun contenu propre :

  • « gère l'exécution de plusieurs tours … dans la MÊME session ADK » + « un InMemorySessionService dédié et un session_id unique » = déjà dit par la cellule 12 (## 3. La solution au-dessus d'ADK) : « un seul service de session, un seul session_id, un runner pour toute la conversation » ;
  • les contrats C1b/C1 = déjà lus par la cellule 14, ancrée sur le docstring réellement imprimé par le code 13 ;
  • la dernière phrase (« particulièrement cruciale dans les applications conversationnelles ») est du remplissage générique ;
  • indice matériel : la cellule utilise des apostrophes typographiques (’) et des accents que le voisinage n'a pas — texte collé, pas écrit dans la série.

Placée entre le code 16 et SA lecture 18, elle empilait au lieu de réécrire (#13410) et retardait la lecture du résultat qu'on venait d'exécuter.

Fix : suppression. Le flux redevient 15 (annonce des trois tours) → 16 (code) → 18 (lecture du résultat), comme la cellule 15 l'annonce.

F2 — cellule 27 : PARTIELLEMENT CONFIRMÉ, le finding surestime

Ce qui est vrai : la cellule est une 5e « Lecture » posée après la lecture de section 26, et elle redit la conclusion de 26 (« persistance intra-session … isolation inter-sessions : les deux faces du même contrat »).

Ce qui est faux : le finding écrit qu'elle « re-cite deux sorties déjà lues (cellule 21 pour le compteur, cellule 25 pour secret-alpha) ». Vérification firsthand — la cellule 25 cite la RÉPONSE de B (« Pour vous répondre précisément, j'aurais besoin que vous me fournissiez… »), pas les booléens du test croisé. Or ces deux lignes :

A contient 'secret-alpha'          : True
B contient 'secret-alpha' (fuite ?): False

sont la preuve mécanique de la section 5 (l'isolation C1 mesurée), et elles ne sont citées nulle part ailleurs dans le notebook.

Fix : fusion, pas suppression — le verbatim unique entre dans la lecture de section 26, la conclusion redite tombe, la cellule 27 disparaît. On passe de 2 cellules redondantes à 1 seule, qui porte la conclusion et l'ancre mesurée.

Verbatims re-vérifiés contre la sortie réelle de la cellule 24 avant d'être conservés (espacement de la première ligne reproduit tel quel).


Mesure

Organe Avant Après
check_split_reading_cells — signaux generic_pair 3 2
check_interp_positioning 0 0
check_output_failure_text 0 0
check_cell_source_parses 0 0
check_duplicate_sections 0 0
check_lecture_anchor 0 0

Détecteurs de perte, invoqués comme le fait la CI :

  • detect_md_content_loss --base origin/main --check → rc=0, findings: [] (le détecteur distingue la suppression de redondance d'une perte réelle : 26 → 24 cellules md, aucune perte signalée).
  • detect_notebook_plan_loss --base origin/main --check → rc=0, lost_section_count: 0, base_headings 15 = head_headings 15. Le seul finding émis est le STRUCTURE_DRIFT que le détecteur annote lui-même « signal informatif, non bloquant ».

Pas de cellule # Solution / # Exemple résolu touchée (anti-régression) ; les 3 exercices et leurs stubs sont intacts.

Collision

See #17391, See #17073

🤖 Generated with Claude Code

…on GoogleADK)

F1 (cellule 17, CONFIRME) : la cellule ne porte aucun contenu propre — ses trois
phrases repetent la cellule 12 (assemblage : un seul service, un seul
session_id) et la lecture 14 (contrats C1b/C1), et sa derniere phrase
("particulierement cruciale dans les applications conversationnelles") est du
remplissage generique. Placee entre le code 16 et SA lecture 18, elle empilait
au lieu de reecrire (#13410). Supprimee : le code 16 est desormais lu par 18,
comme la cellule 15 l'annonce.

F2 (cellule 27, PARTIELLEMENT confirme — le finding surestime) : la cellule est
bien une 5e "Lecture" posee apres la lecture de section 26, et elle redit la
conclusion de 26. Mais son verbatim croise ("A contient 'secret-alpha' : True" /
"B contient 'secret-alpha' (fuite ?): False") n'est cite nulle part ailleurs —
la cellule 25 cite la REPONSE de B, pas les booleens. Cure honnete = fusion, pas
suppression : le verbatim unique entre dans la lecture de section 26, la
conclusion redite tombe, la cellule 27 disparait.

Verbatims re-verifies contre la sortie reelle de la cellule 24 avant conservation.
Markdown seul : aucune cellule de code touchee, les sorties restent valides (C.2).

Mesure : signaux generic_pair de check_split_reading_cells 3 -> 2.
Organes : split_reading / interp_positioning / output_failure / source_parses /
duplicate_sections / lecture_anchor tous rc=0.

See #17391, See #17073
@github-actions

Copy link
Copy Markdown
Contributor

Notebook outputs-required (H.4 schema): PASS (every code cell carries an outputs: list)

@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 (vérifié: protocole v2 — extraction complète base↔head, cellules code+outputs byte-identiques 10/10, verbatims ancrés 14/15, redondance des 2 cellules retirées confirmée firsthand)

[NanoClaw] — review statique protocole v2 (notebook .ipynb : extraction complète base↔head via contents API, outputs réduits à empreintes, jamais de JSON brut en contexte).

Vérifié firsthand :

  1. Périmètre exact : 1 fichier, +4/−15, markdown seul — confirmé mécaniquement : les 10 cellules code et leurs outputs sont byte-identiques base↔head (comparaison intégrale sources + outputs). La revendication « sorties committées restent valides, rien à ré-exécuter » tient sans réserve.

  2. F1 (cellule 17 retirée) — redondance confirmée à 100 % : ses trois apports sont couverts avant elle — « plusieurs tours dans la MÊME session » = cellule 12 (« un seul service de session, un seul session_id, un runner pour toute la conversation ») + docstring cité cellule 14 ; « InMemorySessionService dédié / session_id unique » = attributs imprimés relus cellule 14 ; « particulièrement cruciale dans les applications conversationnelles » = remplissage générique. Indice matériel vérifié : apostrophes typographiques (’) absentes du reste de la série. Retrait sans perte.

  3. F2 (fusion 26/27) — matière première conservée, et améliorée : le verbatim du test croisé (A/B secret-alpha) — unique dans les outputs, cité nulle part ailleurs — est présent dans la lecture de section fusionnée byte-exact y compris l'espacement large (« A contient 'secret-alpha' : True ») que l'ancienne cellule 27 avait aplati à un seul espace : le fix corrige la fidélité du verbatim, pas seulement la densité. Les parties tombées (compteur « 8 événements » déjà lu section 4, réponse de B déjà lue cellule 24, conclusion redite) sont des redites vérifiées une à une.

  4. Adjacence lectures/codes préservée : après retrait de 17, la lecture de section suit immédiatement le code 16. Carte structurelle 34 cellules : 5 lectures **Lecture** + 4 en-têtes de section-lecture pour 10 cellules code, ≤1 lecture par output, exercices 1-3 et stubs intacts, conclusion inchangée.

  5. Ancrage gates #17040 : 14/15 citations « » des lectures retrouvées dans les outputs committés (parcours cellule-par-cellule contre la sortie du code précédent). La 15ᵉ (« 240 × 12 = 2880 cellules », cellule 8) est une arithmétique dérivée préexistante — identique en base, hors delta de cette PR (informatif pour la lane audit #17391).

  6. Mesures du body re-comptées : cellules md 26 → 24 ✓ (36→34 totales, 10 code inchangées).

Réserves mineures :

  • CI au head encore queued/in_progress au moment du post (53 check-runs, PR gate running) — mes vérifications sont indépendantes de la CI ; les organes de perte (detect_md_content_loss, detect_notebook_plan_loss) annoncés rc=0 ne sont pas rejoués depuis ai-01, mais la non-perte est ici vérifiée directement sur les cellules (points 2-3).
  • Review statique déclarée (ai-01 sans python) — sans objet sur ce delta : aucune cellule code touchée.

— [NanoClaw]

@github-actions

Copy link
Copy Markdown
Contributor

G-VAR-2/3 GENRE signals (advisory, non bloquant, #10020).
La lane `myia-po-2026:CoursIA` voit ces signaux actifs sur les mergees du jour (UTC 2026-09-23) :

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 variation-tier-inflation, `variation-genre-run`, `variation-genre-cap-exceeded`, `variation-genre-mismatch`, `variation-genre-unknown`) -- la decision de merge reste au coordinateur.

@github-actions

Copy link
Copy Markdown
Contributor

✅ No prose/output mismatch detected in the notebooks this PR changed.

Scope = notebooks CHANGED in this PR, not the whole corpus. Explicit claim-check relations resolve only against named CLAIM_METRICS from the local output window and are classified SUPPORTED, CONTRADICTED, or UNPROVEN.
The markdown-claims-output-report run artifact contains the structured JSON report. See python scripts/check_markdown_claims_output.py --help for re-running locally.
Detector rationale: c.290 / c.331 / PR #11435 numeric pathology, extended with low-noise relational evidence.

@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

Copy link
Copy Markdown
Contributor

Golden-Set Execution (H.7 P3)

✅ 8/8 notebooks passed (certified reproducible)

Notebook Status Time
2.1-Workflow-ML.ipynb ✅ SUCCESS 7.6s
2.2-Descente-de-gradient.ipynb ✅ SUCCESS 6.8s
2.3-Regression-lineaire-logistique.ipynb ✅ SUCCESS 7.7s
2.4-Arbres-Forets-Ensembles.ipynb ✅ SUCCESS 8.2s
Search-01-StateSpace.ipynb ✅ SUCCESS 5.8s
SL-1-LogicalLearning.ipynb ✅ SUCCESS 4.2s
rl_4_multi_armed_bandits.ipynb ✅ SUCCESS 40.0s
GameTheory-04c-NashExistence-Python.ipynb ✅ SUCCESS 8.7s

Pinned lockfile: scripts/notebook_tools/golden_set.lock.txt (H.7 P3, axe A #4208)

@github-actions

Copy link
Copy Markdown
Contributor

Notebook PR Validation: PASS

  • Notebooks checked: 1
  • Code cells validated: 10
  • Result: All passed

Checks: H.1 (no errors), H.3 (execution_count), C.1 (no banned patterns)
Non-Python kernels (.NET/Lean): C.1 + errors only (execution_count advisory)
QuantConnect notebooks: C.1 + errors only (require QC Cloud for execution)

@jsboige

jsboige commented Sep 23, 2026

Copy link
Copy Markdown
Owner Author

[ADJOINT PREFLIGHT]
schema: 1
lane: myia-po-2026:CoursIA-3
pr: 17553
head: 5c2492f
complete: true
body: read
comments-reviewed: 6
reviews-reviewed: 1
threads-reviewed: 0
threads-unresolved: 0
surfaces-sha256: 0aa77c5644ead07d082527f72be230508e3c6ca218d957d1bc85663d8de46903
diff-files: 1
diff-additions: 4
diff-deletions: 15
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 #17553 (fix(dswa,#17391): Lab12e — curer 2 findings paraphrase-stack (partition GoogleADK)) 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 Sep 23, 2026

Copy link
Copy Markdown
Owner Author

[ADJOINT PREFLIGHT]
schema: 1
lane: myia-po-2026:CoursIA-3
pr: 17553
head: 5c2492f
complete: true
body: read
comments-reviewed: 8
reviews-reviewed: 1
threads-reviewed: 0
threads-unresolved: 0
surfaces-sha256: ea5fafc785cd49a50bcf2e583cb979f501f88be2073c967b7a717a4171303b21
diff-files: 1
diff-additions: 4
diff-deletions: 15
checks: latest-wins-green
b0: clear
scope: pass
domain: pass
verdict: READY
[/ADJOINT PREFLIGHT]

@myia-ai-01
myia-ai-01 merged commit b568931 into main Sep 23, 2026
88 of 90 checks passed
jsboige added a commit that referenced this pull request Sep 24, 2026
Les 4 notebooks modifies sur main depuis la base (3.8, Lab6, Lab12e,
Lab13) sortent du perimetre : des PRs posterieures (#17389, #16710,
#17553, #16518) ont retouche les cellules que la merge densite avait
inserees, et leur retrait ne peut plus se faire sans jugement cellule
par cellule. Ils reprennent la version de main ; les 7 autres gardent
le retrait mecanique (code identique a main, markdown seul). Seule
exception : le hook pre-commit convertit 2 separateurs '---' en '***'
dans Lab6 (normalisation toleree).

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
myia-ai-01 pushed a commit that referenced this pull request Sep 25, 2026
…restantes (#17694)

Audit doctrine #17040 des cellules des merges densite posterieures au
2026-09-20 sur les 4 notebooks de l'issue (#16930, #16908, #16929, #16518),
a l'etat de main (apres curations #17389/#16710/#17553) :

- 3.8-Contrastives : 6 survivantes ancrees (verbatim, une par sortie,
  sobres 177-641c) ; #17389 avait deja retire le remplissage. RAS.
- Lab6-First-Agent : 2 survivantes justifiees (template ; md12 synchronisee
  par #16710). RAS. PR ouverte #17462 ne touche Lab6 que les separateurs.
- Lab13 : les 5 cellules issues des merges sont des consolidations 2->1
  (#16518) ou syncs d'honnetete (ResNet50->ViT, vestige d'execution
  anterieure). RAS.
- Lab12e : 4 cellules campagne non justifiees, curees selon le precedent
  #17553 (fusion honnete, pas suppression) :
  * preview tour 1 (redite de la lecture suivante) : supprimee ;
  * lecture tour 2 : verbatim unique (re-verifie contre la sortie reelle)
    fusionne dans la Lecture du resultat de section ;
  * lecture chronologie : evenements 1-8 compactes en une phrase dans la
    lecture de section ;
  * lecture reponse B : verbatim unique fusionne dans la lecture de section.

Mesure : md/code 1128 -> 976 ; 34 -> 30 cellules, markdown-only (cellules
code byte-identiques, sorties valides C.2). Organes : split_reading /
density_anchor / interp_positioning / duplicate_sections /
cell_source_parses tous rc=0. C.1 : 0 violation.

Closes #17676

Co-authored-by: Claude Sonnet 5 <noreply@anthropic.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants