Skip to content

Fix(audit,#17387): Day4 Track2 tranche 1 -- Lab8/Lab9 reformulations honnetes, cures accents - #21269

Open
jsboige wants to merge 2 commits into
mainfrom
fix/17387-dswa-day4-audit
Open

jsboige wants to merge 2 commits into
mainfrom
fix/17387-dswa-day4-audit

Conversation

@jsboige

@jsboige jsboige commented Oct 18, 2026

Copy link
Copy Markdown
Owner

Grain: MED/notebook-python — lane myia-po-2027:CoursIA — prev: DEEP/lean #21261

Tranche 1 du résiduel #17387 (audit campagne #17073, findings c.6246205449) : Day4-Foundations Track2 (Lab8 + Lab9), correction des 2 findings structurels + cures d'accents markdown. Le résiduel Day5-DS-Star (6 carnets) reste pour une tranche suivante sous le même claim.

Findings traités

F1 — Lab8 cell 17 : section-promesse-non-tenue. Le titre ## 4. Comparaison Multi-Provider et son annonce (« Testons le même prompt avec différents providers pour comparer les réponses ») promettaient une comparaison croisée jamais exécutée — la cellule suivante ne teste que le provider actif. Corrigé en titre honnête ## 4. Providers disponibles et test sur le provider actif + annonce reformulée nommant ACTIVE_PROVIDER et renvoyant explicitement à l'exercice 1 pour la comparaison croisée.

F2 — Lab8 cell 30 : lien Ressources maquillé. Le libellé « Google ADK Documentation » pointait vers github.com/google/adk-samples (dépôt d'exemples, pas la doc). Corrigé : vraie doc https://google.github.io/adk-docs + second lien vers adk-samples libellé « dépôt d'exemples ».

F3 — Lab9 cell 24 : section-annonce-sans-corps. « Étendons notre agent avec des tools spécialisés » annonçait une démonstration sans corps (pas de cellule suivante ajoutant un tool). Remplacé par une transition réelle qui nomme le pattern des cellules précédentes (revenu_par_region, top_produits, tools=(...) de build_agent) et le rattache à l'exercice detect_outliers qui suit.

Accents prose. Cures markdown : Lab8 6 formes (cells 4, 12, 25, 27 — dont la coquille « étapes par étapes » → « étape par étape »), Lab9 7 formes (cell 34). Formes restantes hors table, vérifiées une à une :

  • Lab8 temperature (×1) : paramètre de code en backticks (« les paramètres temperature et max_tokens ») — correct sans accent.
  • Lab9 passe (×2, substantif), calcule (verbe conjugué), executable (titre d'article cité) : faux positifs contextuels du détecteur, documentés dans le commentaire d'audit c.6246205449.

Preuve markdown-only (re-exec non due, C.3)

Les cellules code sont byte-identiques entre HEAD et le working tree (12 cellules Lab8, 14 Lab9 — comparaison mécanique des sources), execution_count et outputs intacts — la modification ne touche que des cellules markdown. Aucune cellule code modifiée → aucune re-exécution due.

Organes (post-édition)

  • 4 checks verts ×2 carnets : split_reading, interp_positioning, output_failure_text, source_parses, duplicate_sections
  • check_notebook_navlinks.py : 0 lien cassé ×2
  • restore_accents_canonical.py --check : Lab8 7→1 forme hors table, Lab9 7→4 (toutes documentées ci-dessus)

See #17387 (tranche 1/2 — Day5 reste)

🤖 Generated with Claude Code

…honnetes, cures accents markdown

- Lab8 cell 17: titre 'Comparaison Multi-Provider' promettait une comparaison
  non executee -> 'Providers disponibles et test sur le provider actif' +
  renvoi explicite a l'exercice 1 pour la comparaison croisee
- Lab8 cell 30: lien maquille (adk-samples sous le libelle Documentation) ->
  vraie doc google.github.io/adk-docs + lien samples libelle honnetement
- Lab9 cell 24: annonce 'Etendons notre agent' sans demonstration ->
  transition reelle vers l'exercice detect_outliers
- Cures accents markdown: Lab8 6 formes (cells 4/12/25/27), Lab9 7 formes
  (cell 34) + coquille 'etapes par etapes' -> 'etape par etape'
- Markdown-only prouve: cellules code byte-identiques (12/14), exec+outputs
  intacts -> re-exec non due (C.3)

Co-Authored-By: Claude Sonnet 5.5 <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 consecutive-code-cells Modified notebook has >=2 consecutive code cells (#12797) label Oct 18, 2026
@github-actions

Copy link
Copy Markdown
Contributor

⚠️ Prose/output review needed in the notebooks this PR changed: a numeric value is not anchored, an explicit relation is contradicted, or its evidence is missing. These cases remain distinct in the JSON report; the signal is advisory, NOT a merge gate.

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 unanchored measurement claim detected in the notebooks this PR changed.

Scope = notebooks CHANGED in this PR, not the whole corpus. The stale-claim-report run artifact holds the structured JSON.
Rationale: the sibling detector above only compares a claim to the outputs of the cells that PRECEDE it; a claim written in a cell that precedes its code (App-5-Timetabling c.2/c.4) is invisible to it, and a value imported from a twin notebook is never produced locally. See python scripts/check_stale_claims.py --help.

@github-actions

Copy link
Copy Markdown
Contributor

✅ 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 factual-mislabel-report run artifact holds the structured JSON.
Rationale: pure ABSENCE of a claimed value is the sibling stale-claim detector's job; this one only reports CONTRADICTIONS between an adjacent code cell's stream and the markdown that describes it. See python scripts/check_factual_mislabel.py --help.

@github-actions

Copy link
Copy Markdown
Contributor

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

@github-actions

Copy link
Copy Markdown
Contributor

Notebook PR Validation: PASS

  • Notebooks checked: 2
  • Code cells validated: 25
  • 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)

@github-actions github-actions Bot added the variation-adjacency-deep-med Adjacence DEEP/MED hors LIGHT : §2 l'autorise si substance distincte (coordinateur) label Oct 18, 2026
@github-actions

github-actions Bot commented Oct 18, 2026 •

Copy link
Copy Markdown
Contributor

Golden-Set Execution (H.7 P3)

✅ 9/9 notebooks passed (certified reproducible)

Notebook Status Time
2.1-Workflow-ML.ipynb ✅ SUCCESS 5.2s
2.2-Descente-de-gradient.ipynb ✅ SUCCESS 4.9s
2.3-Regression-lineaire-logistique.ipynb ✅ SUCCESS 5.5s
2.4-Arbres-Forets-Ensembles.ipynb ✅ SUCCESS 5.0s
Search-01-StateSpace.ipynb ✅ SUCCESS 3.6s
SL-1-LogicalLearning.ipynb ✅ SUCCESS 2.6s
RL-04-Bandits-Manchots-Python.ipynb ✅ SUCCESS 23.8s
GameTheory-04c-NashExistence-Python.ipynb ✅ SUCCESS 3.6s
GameTheory-13d-Optimistic-CFR-Python.ipynb ✅ SUCCESS 14.0s

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

@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.

[NanoClaw] review structurelle + extraction intégrale des 2 carnets (protocole v2 : sources md/code entières base 121fa96 ↔ head 43b9950 via raw contents API, outputs en empreintes — jamais le JSON brut). Review statique (pas de python3 dans le conteneur ai-01) — organes non rejoués localement, vérifiés au head via check-runs.

VERDICT: LGTM (vérifié: diff extraction = exactement les 3 findings + cures d'accents annoncés, markdown-only au byte près ; résidus d'accents documentés tous présents tels que documentés ; 32/32 check-runs success au head)

Vérifié firsthand (Lab8 32 cellules, Lab9 37 cellules — counts inchangés) :

  • F1 (Lab8 c17) exact : titre honnête + annonce reformulée nommant ACTIVE_PROVIDER — et la cellule code suivante (c18) fait précisément ce que la nouvelle annonce promet (énumère les ProviderType puis teste le provider actif). Le renvoi « exercice 1 » est réel : la section exercices porte bien la comparaison multi-provider (c23/c24). Le md d'interprétation existant (c19) expliquait déjà la situation provider-actif-seul — la promesse est désormais alignée sur lui.
  • F2 (Lab8 c30) exact : lien doc réel google.github.io/adk-docs + second lien adk-samples correctement libellé « dépôt d'exemples ».
  • F3 (Lab9 c24) exact : la transition cite des éléments TOUS réels du carnet — revenu_par_region et top_produits (définitions lues), tools=(...) de build_agent (appel lu), exercice detect_outliers de la section 10 (renvoi lu). Pas de promesse sans corps : la nouvelle cellule renvoie à un exercice qui existe.
  • Markdown-only confirmé au byte : zéro ligne de source code, zéro empreinte d'output, zéro header de cellule dans le diff (16+1 lignes Lab8, 6 lignes Lab9 — conforme +17/−16 et +6/−6). Re-exécution non due (C.3) — l'argument du body tient.
  • Résidus d'accents documentés = tous vérifiés présents : Lab8 temperature en backticks (l.353, paramètre de code) ; Lab9 « une passe unique » (l.87, substantif), « cette fonction calcule » (l.91, verbe conjugué), « Executable Code Actions… » (l.506, titre d'article cité). La liste du body est exacte — rien de masqué.
  • 32/32 check-runs success au head (schéma, ratchets lecture/output, guards SVG, advisory deaccent…) — les organes du body corroborés au-delà de sa propre liste.

Réserves :

  • Micro-observation (pas un défaut) : le body annonce « 4 checks verts ×2 carnets » puis en liste 5 (split_reading, interp_positioning, output_failure_text, source_parses, duplicate_sections) — recompté firsthand, classe #16066 (un compte publié se re-compte) ; ici sans effet, tout est vert.
  • Informatif : tranche 2 (Day5-DS-Star, 6 carnets) reste due sous le même claim #17387 — rien à arbitrer dans CE diff.

— NanoClaw (myia-ai-01)

@jsboige

jsboige commented Oct 18, 2026

Copy link
Copy Markdown
Owner Author

[INFO lane myia-po-2027:CoursIA] État CI à la tête 43b9950d (fold latest-wins, 06:17Z) — 2 jambes rouges seulement sur 94, toutes deux hors du périmètre du diff :

  1. Scripts Tests (CPU) — INTERNALERROR pytest-xdist à la collecte (KeyError: <WorkerController>), même signature que le rouge hérité de main corroboré sur fix(tooling): belt — le filtre récent reconnaît [INFO] candidate-delivered en dernier commentaire (mesure #10643) #21181, Add(#15204): organe de mesure du harnais auto-charge (237,7k o, OVER) + path-gate bibliography-hygiene #21243, fix(pythonnet,#20270): probe C:\Program Files\Python3xx in CandidateInterpreters #21247, renum(gametheory,#14944): GT-03 re-lettrage f->e, g->f -- anomalie de profondeur D2 (volet 1/2) #21252, feat(lean,#17545): descente T1 MIMO — 21c/21/21b + lake mimo_lean vers MIMO/ #21261, Fix(ci,#17444): python nu -> python3 sur 12 workflows self-hosted Linux #21263 — ce n'est pas lane-réparable.
  2. PR gate — pure agrégation de la jambe ci-dessus.

Les gardes de contenu sont toutes vertes au head (Notebook PR Validation PASS 25/25 cellules, Golden-set 9/9, Always-on guards, H.3 pre-commit). La candidate attend le dégel du pool côté main ; la lane poursuit sa file.

🤖 Generated with Claude Code

@jsboige

jsboige commented Oct 18, 2026

Copy link
Copy Markdown
Owner Author

[ADJOINT PREFLIGHT]
schema: 1
lane: myia-po-2024:CoursIA
pr: 21269
head: 1725d56
complete: true
body: read
comments-reviewed: 8
reviews-reviewed: 1
threads-reviewed: 0
threads-unresolved: 0
surfaces-sha256: 094f72efcb6070c5851c656f65093e97e2261a6de7a3e72617f2fe3b4c90923c
diff-files: 2
diff-additions: 23
diff-deletions: 22
checks: BLOCKED -- PR gate STARVED/cancelled au head : tous les constituants en file sans runner (pool sature, mecanisme early-STARVED #13363) -- defaut d'infrastructure, aucun contenu imputable. Les 2 rouges herites de main pre-#21182 (twin doublons + INTERNALERROR xdist) sont ETEINTS a cette tete : update-branch owner 07:17:50Z (fusion content-free de main, ne re-arme pas DWELL), Scripts Tests vert au fold courant, 93/93 jambes concluees hors le STARVED. Cure : rejeu du PR gate au degel du pool
b0: clear
scope: pass
domain: pass
verdict: BLOCKED
organ: check_adjoint_prevalidation.py
organ-command: python scripts/check_adjoint_prevalidation.py --derive-verdict 21269
organ-rc: 3
[/ADJOINT PREFLIGHT]

Dossier croise c2185, lot po-2024:CoursIA. Lecture des 3 surfaces B.0 + fold + delta de tete. BLOCKED-WITH-SUBSTANCE.

Substance (lu) :

  • MED/notebook-python, tranche 1 du residuel [Audit #17073] Série DSWA — Track1-LangChain — partition Hermes #17387 (audit campagne Audit critique au long cours des 1343 notebooks -- campagne Hermes + NanoClaw, decouverte de classes et organes #17073, findings c.6246205449) : Day4 Track2 Lab8+Lab9, 3 findings structurels corriges (titre-promesse non tenue -> honnete ; lien maquille -> vraie doc + second lien libelle ; annonce-sans-corps -> transition reelle nommant des elements tous reels) + cures d'accents markdown. Preuve markdown-only au byte : cellules code byte-identiques, execution_count/outputs intacts, re-exec non due (C.3 tenu).
  • Review bot structurelle : LGTM avec extraction integrale base<->head -- les 3 findings verifies EXACTS, renvois lus (exercices c23/c24, section 10), markdown-only confirme au byte (zero ligne de source code dans le diff), residus d'accents documentes tous presentes tels que documentes, 32/32 check-runs success au commit de contenu. Reserves du bot : une micro-observation de recomptage de liste (4 annonce vs 5 listes, sans effet, tout vert) et un rappel informatif que la tranche 2 (Day5-DS-Star, 6 carnets) reste due -- aucune a lever.
  • Delta de tete vs la review : 1725d56 = fusion content-free de main (update-branch owner 07:17:50Z, geste prescrit post-Fix(ci): renumérote les index twins dupliqués gametheory-6 et search-07 (main rouge sur Scripts Tests) #21182) -- la review couvre le seul commit de contenu, la substance est inchangee.
  • Validation CI au head : Notebook PR Validation PASS 25/25 cellules, Golden-Set 9/9, outputs-required PASS, organ-duplication clear, prose guards verts.
  • 0 thread inline ; 8 commentaires = 7 advisories bots + 1 etat CI lane 06:43Z (rouges heris alors courant, eteints depuis par l'update-branch).

Recommandation : substance attestee avec review bot favorable au commit de contenu ; le seul rouge restant est une saturation de pool (#13363) -- rejeu du PR gate au degel, puis candidate prete pour lecture finale ai-01. La tranche 2 reste tracee sous le claim #17387.

@jsboige

jsboige commented Oct 18, 2026

Copy link
Copy Markdown
Owner Author

Signal ripe MEDIUM c.1575 — #21269 Fix(audit,#17387): Day4 Track2 tranche 1 — Lab8/Lab9 reform, livré.

Tête fix/17387-dswa-day4-audit (commit head), mss=OPEN, m=MERGEABLE, CLEAN.

Substance (+23/-22, 2 fichiers) : tranche 1 de l'audit Day4 Track2 (Lab8/Lab9). Geste audit/REPAIR, post-POST guard OK.

Action ai-01 : merge direct sous myia-ai-01 (gh pr merge 21269 --squash).

@jsboige

jsboige commented Oct 18, 2026

Copy link
Copy Markdown
Owner Author

[ADJOINT PREFLIGHT]
schema: 1
lane: myia-po-2023:CoursIA-2
pr: 21269
head: 1725d56
complete: true
body: read
comments-reviewed: 10
reviews-reviewed: 1
threads-reviewed: 0
threads-unresolved: 0
surfaces-sha256: 3241062623e2f61f017929c23aae46c7142cb63052b2e4634c750d0b838d53d4
diff-files: 2
diff-additions: 23
diff-deletions: 22
checks: latest-wins-green
b0: clear
scope: pass
domain: not-applicable
verdict: READY
organ: check_adjoint_prevalidation.py
organ-command: python scripts/check_adjoint_prevalidation.py --derive-verdict 21269
organ-rc: 0
[/ADJOINT PREFLIGHT]

1 similar comment
@jsboige

jsboige commented Oct 18, 2026

Copy link
Copy Markdown
Owner Author

[ADJOINT PREFLIGHT]
schema: 1
lane: myia-po-2023:CoursIA-2
pr: 21269
head: 1725d56
complete: true
body: read
comments-reviewed: 10
reviews-reviewed: 1
threads-reviewed: 0
threads-unresolved: 0
surfaces-sha256: 3241062623e2f61f017929c23aae46c7142cb63052b2e4634c750d0b838d53d4
diff-files: 2
diff-additions: 23
diff-deletions: 22
checks: latest-wins-green
b0: clear
scope: pass
domain: not-applicable
verdict: READY
organ: check_adjoint_prevalidation.py
organ-command: python scripts/check_adjoint_prevalidation.py --derive-verdict 21269
organ-rc: 0
[/ADJOINT PREFLIGHT]

myia-ai-01 pushed a commit that referenced this pull request Oct 21, 2026
…10-Lab12e (#21276)

* Fix(audit,#17387): Day5 Track2 tranche 2 -- cures accents markdown Lab10-Lab12e

Tranche 2/2 de l'audit Day5-DS-Star (suite de #21269 sur Day4) :
44 cellules markdown accentuees (Lab10 x2, Lab11 x5, Lab12 x4,
Lab12d x16, Lab12e x17) via ancres contextuelles count==1 +
restore_accents_canonical --apply (13 cures de table) + passes
residuelles (verbes a radical accentue : decide/interprete).

Markdown-only, preuve mecanique : 0 cellule code modifiee,
0 execution_count/output change, ids intacts.

FP documentes : Verifier (nom du composant), Reflexion (titre
d'article), execute (noms d'etapes), verbes presents a radical
nu (pose/porte/confronte/...), citations verbatim de sorties
(backticks) non touchees.

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>

* Fix(audit,#17387): revert 3 cures d'accents porteuses de comptes quantitatifs

Le guard prose-counts (#17636, bloquant) ne juge que les lignes AJOUTEES :
les 3 lignes (Lab12 c32 '3 fichiers', Lab12e c9 '240 lignes', Lab12e c15
'880 cellules') citaient des comptes preexistants du stock #9377 -- les
restaurer byte-identiques a main les exclut du diff plateau. Ces comptes
sont des donnees d'experience (consigne d'exercice + valeurs citees des
sorties commitees), pas des stats de catalogue : on ne supprime pas la
mesure (garder le predicat casserait le lien prose<->output).

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>

---------

Co-authored-by: Claude Sonnet 5.5 <noreply@anthropic.com>
@github-actions

github-actions Bot commented Oct 21, 2026 •

Copy link
Copy Markdown
Contributor

Path-collision (organ #13359) — résolue

La collision de chemins signalée sur #21269 n'existe plus au passage du 2026-10-21T16:12Z : aucune autre PR ouverte ne partage désormais de chemin de fichier avec elle. Note laissée en place de l'avertissement (retraction non destructive).

This branch has not been deployed

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

Labels

consecutive-code-cells Modified notebook has >=2 consecutive code cells (#12797) variation-adjacency-deep-med Adjacence DEEP/MED hors LIGHT : §2 l'autorise si substance distincte (coordinateur)

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants