Skip to content

Docs(genai,#16638): tranche deaccent GenAI/Video/01-Foundation -- 28 cures canoniques - #20241

Merged
myia-ai-01 merged 1 commit into
mainfrom
fix/16638-deaccent-video
Oct 11, 2026
Merged

myia-ai-01 merged 1 commit into
mainfrom
fix/16638-deaccent-video

Conversation

@jsboige

@jsboige jsboige commented Oct 10, 2026

Copy link
Copy Markdown
Owner

Grain: LIGHT/docs — lane myia-po-2027:CoursIA-2 — prev: MED/notebook-python #20237

Tranche deaccent GenAI/Video/01-Foundation — 28 cures canoniques

Suite de la tranche deaccent de la série, sur l'issue de rollout #16638.

Mesure avant / après

Organe detect_markdown_deaccent.py (bucket auto, contrôle par jumeau accentué dans le même carnet), sur origin/main puis sur cette branche :

carnet auto avant auto après cures canoniques cellules markdown
01-1-Video-Operations-Basics 68 68 7 5
01-1b-Video-Slideshow-Bonus 3 6 1 1
01-2-GPT-5-Video-Understanding 53 51 3 3
01-3-Qwen-VL-Video-Analysis 45 39 9 7
01-4-Video-Enhancement-ESRGAN 68 66 6 4
01-5-AnimateDiff-Introduction 0 0 2 2
total 237 230 28 22

Le compte brut auto n'est pas la mesure du geste, et il remonte même sur un carnet. Le bucket auto est contrôlé par jumeau : réparer une occurrence crée le jumeau accentué qui expose les autres occurrences du même mot. C'est pourquoi 01-1b passe de 3 à 6 sans qu'aucune forme n'ait été dégradée. La mesure du stock réellement traitable est l'organe canonique lui-même :

python scripts/notebook_tools/restore_accents_canonical.py <carnet> --check   ->  rc=0 sur les six

Le stock canonique de la série est épuisé : plus aucune cure n'est proposée par la table canonique.

Ce qui reste, et pourquoi ce n'est pas dans cette tranche

restore_accents_canonical.py --dry-run classe le reste en hors_table : 226 occurrences, 99 formes, hors de la table de cure canonique. Elles sont laissées telles quelles — élargir la table depuis une seule série fabriquerait une convention divergente. Le compte cité ici est le compte après tri, jamais le brut, conformément au garde-fou de l'issue.

Geste

Markdown-cell-source strict, par le fixer canonique (registre #2876) : scripts/notebook_tools/restore_accents_canonical.py --apply.

Validation

  • Markdown seul : le diff porte 30 insertions(+) et 30 deletions — les seules lignes touchées sont des source de cellules markdown, chacune remplacée par sa variante accentuée.
  • Rien d'autre n'a bougé : comparaison cellule par cellule entre HEAD et l'arbre de travail — nombre de cellules identique, et pour chaque cellule les champs hors source (outputs, execution_count, metadata, id) sérialisés de façon canonique sont identiques. Aucune source de cellule de code n'est modifiée. Sorties committées intactes, aucun metadata.papermill retiré.
  • Seuls des accents ont été ajoutés : pour chaque cellule markdown modifiée (22 au total), l'ensemble des lignes privées de leurs diacritiques est inchangé avant/après — aucune ligne ajoutée, supprimée ni reformulée. C'est l'invariant qui attrape une correction qui déborderait du geste.
  • Organe d'invariants : check_accent_restoration_invariants.py <carnet> --base-sha 07593d0bde0c → TOTAL 0 finding(s) sur les six carnets.
  • Aucune ré-exécution due : markdown seul (exception C.2). execution_count reste renseigné partout, aucune cellule nulle.
  • Hooks pre-commit : passés (H.3 notebooks non exécutés, source-list-newlines, gitleaks, probeAddresses, scrub papermill).

Hors périmètre

  • Pas d'élargissement de la table de cure canonique : les 226 occurrences hors_table restent en l'état, elles relèvent d'un geste de registre, pas d'une tranche de série.
  • Les autres séries de GenAI/Video/ ne sont pas touchées par cette PR.

See #16638

🤖 Generated with Claude Code

…cures canoniques sur 22 cellules markdown

Serie GenAI/Video/01-Foundation (six carnets), fixer canonique
restore_accents_canonical.py --apply. Markdown-cell-source strict :
30 insertions / 30 deletions, aucune source de cellule de code modifiee,
sorties et metadata.papermill intacts, aucune re-execution due (C.2).

Stock canonique de la serie epuise (--check rc=0 sur les six).
226 occurrences hors_table laissees en l'etat (hors perimetre).

Co-Authored-By: Claude Haiku 4.5 (1M context) <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

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

⚠️ Stale-claim review needed: a markdown cell claims a measurement value that appears in NO committed output of the notebook. Advisory, NOT a merge gate — triage against the JSON artifact.

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

Golden-Set Execution (H.7 P3)

✅ 9/9 notebooks passed (certified reproducible)

Notebook Status Time
2.1-Workflow-ML.ipynb ✅ SUCCESS 4.5s
2.2-Descente-de-gradient.ipynb ✅ SUCCESS 4.6s
2.3-Regression-lineaire-logistique.ipynb ✅ SUCCESS 5.4s
2.4-Arbres-Forets-Ensembles.ipynb ✅ SUCCESS 5.0s
Search-01-StateSpace.ipynb ✅ SUCCESS 3.7s
SL-1-LogicalLearning.ipynb ✅ SUCCESS 2.3s
RL-04-Bandits-Manchots-Python.ipynb ✅ SUCCESS 25.6s
GameTheory-04c-NashExistence-Python.ipynb ✅ SUCCESS 2.8s
GameTheory-13d-Optimistic-CFR-Python.ipynb ✅ SUCCESS 11.9s

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

@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: undefined
  • Code cells validated: undefined
  • 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 Oct 10, 2026

Copy link
Copy Markdown
Owner Author

Rouges de cette PR — deux causes mesurees, aucune reparable par la lane.

1. Exec-sequence ratchet (base vs PR) — le verdict CI est refute localement

La jambe tombe sur chacun des carnets touches (CLEAN at origin/main, is PARSE_ERROR in this PR), alors que le meme organe rejoue localement a la meme tete contre origin/main rend l'inverse :

execution_count ratchet -- base origin/main (merge-base 07593d0bde0c)
changed notebooks : 6
regressions       : 0
  CLEAN->CLEAN (les six carnets)

Mecanisme, lu dans scripts/notebook_tools/check_exec_ratchet.py : la base est lue par blob git (verdict_at_base, l.113), la tete est lue dans l'arbre de travail (verdict_at_head, l.128, Path(path).read_text(...)), le tout sous un except Exception -> PARSE_ERROR (l.201). Un arbre CI incomplet produit donc un PARSE_ERROR indiscernable d'une regression de contenu.

Deja tracke, rien a corriger de mon cote :

Le rouge est partage : mesure aussi sur #20231.

Gitleaks secret scanner — derive de configuration du depot, base-heritee

Message de la jambe : « CI pins 8.24.3 but .pre-commit-config.yaml pins v. Update both to the same value. » Ni un secret, ni mon diff : le pin de la CI et celui du .pre-commit-config.yaml ont diverge. Aucune valeur de secret n'est en jeu (la jambe Gitleaks positive controls echoue de la meme facon sur #20088, hors de cette PR).

Ce que je fais : rien a corriger cote contenu — le geste est dans l'organe, pas dans la lane. La candidate reste en attente de ces jambes ; je poursuis ma file. Pas de update-branch : une fusion content-free perimerait les dossiers exact-head sans rien lever.

See #20195 · #20202

@github-actions

Copy link
Copy Markdown
Contributor

[stale-guard-red] Gitleaks secret scanner -- rouge date de la base 07593d0bde0c, ANTERIEURE au fix 43927e66d2f7 du garde sur main (garde vert a sa version courante).
Remede : gh pr update-branch 20241 (recalcule la base). NE PAS gh run rerun : gh run rerun rejouerait la base gelee 07593d0 (le fix 43927e6 n'y est PAS) et rendrait le meme rouge ; seul gh pr update-branch recalcule la base.
Re-mesure non concluante : aucun node ID pytest dans le log (organe non-pytest ?) -- le dating ci-dessus reste la reference.

@github-actions github-actions Bot added the stale-guard-red Rouge datant d'une base anterieure au fix du garde (sweep #13321) label Oct 10, 2026
@jsboige

jsboige commented Oct 11, 2026

Copy link
Copy Markdown
Owner Author

[ADJOINT PREFLIGHT]
schema: 1
lane: myia-ai-01:CoursIA-2
pr: 20241
head: c83a049
complete: true
body: read
comments-reviewed: 9
reviews-reviewed: 0
threads-reviewed: 0
threads-unresolved: 0
surfaces-sha256: 7259ed625d9bb42a0cf1e3d473c2c80dd053db9d4203acd8be6018b227067c60
diff-files: 6
diff-additions: 30
diff-deletions: 30
checks: latest-wins-green
b0: clear
scope: pass
domain: pass
verdict: READY
organ: check_adjoint_prevalidation.py
organ-command: python scripts/check_adjoint_prevalidation.py --derive-verdict 20241
organ-rc: 0
[/ADJOINT PREFLIGHT]

Tierce lecture au blob de la tete c83a04986. Pli 0 rouge latest-wins, B.0 rc=0 (9 commentaires, 0 review).

Tranche deaccent canonique GenAI/Video/01-Foundation : 28 cures sur 6 carnets, diff +30/-30 strictement limite a la prose markdown. Verifications :

  • Diff integralement relu : chaque ligne changee est une cure d'accent (Creation->Création, cles->clés, etape->étape, metrique->métrique, elements->éléments, evenements->événements) dans des sources de cellules markdown ; aucune ligne de code touchee (aucun contenu python dans le diff, Source-collapse ratchet vert).
  • Liens preserves : le texte affiche du lien retour est accentue (01-1-Video-Opérations-Basics) tandis que la cible .ipynb reste non accentuee — le nom de fichier n'est pas mute, comportement correct du correctif canonique.
  • Gardes de la famille : Markdown deaccent advisory success par carnet, navlinks/nav-chain verts (les cibles de liens sont intactes).

Aucun verdict d'approbation n'est emis par cette lecture : la decision de merge revient au coordinateur.

@myia-ai-01
myia-ai-01 merged commit 764d93d into main Oct 11, 2026
100 of 109 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

stale-guard-red Rouge datant d'une base anterieure au fix du garde (sweep #13321)

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants