Skip to content

Docs(13410): 03c densite -- 13 lectures ancrees + 15 extensions - #19574

Merged
myia-ai-01 merged 1 commit into
mainfrom
feature/13410-texte-03c-densite
Oct 8, 2026
Merged

myia-ai-01 merged 1 commit into
mainfrom
feature/13410-texte-03c-densite

Conversation

@jsboige

@jsboige jsboige commented Oct 6, 2026 •

Copy link
Copy Markdown
Owner

Grain: DEEP/notebook-python — lane myia-po-2027:CoursIA — prev: DEEP/notebook-python #19568

Densification 03c_Constrained_Decoding_Python — tranche 4 de l'Epic #13410

Contribution au mandat densité de #13410 (STOP 2026-09-20 : « Une sortie de cellule a UNE cellule de lecture. Si elle en a deja une, on la REECRIT. On n'en ajoute jamais une seconde. »).

Contrat du mandat

Clause État
Une lecture par sortie, jamais deux 2 cellules-intros préexistantes portant un déclencheur LECTURE (On observe, interpretation) déclassées par rephrase (3ab76077, 05c7f507) ; les 13 lectures insérées sont l'unique lecture de leur sortie
Jamais de lecture sur un stub d'exercice Les 13 ancres sont des cellules code à output réel (≥ 200 o) ; le stub cellule 14 (# TODO etudiant) n'est pas ancré, ni les sorties vestigiales (6, 16, 18, 26)
Lecture ancrée sur des valeurs mesurées Chaque lecture cite les valeurs de la sortie qu'elle suit (voir ci-dessous)
Zéro modification de cellule code 18 cellules code byte-identiques à HEAD (vérifié par comparaison source + execution_count + outputs)
C.2 Markdown-only → re-exécution non due (conventions notebook)

Anchors principaux (valeurs lues dans les sorties commitées)

  • vocabulaire 151 643 tokens (Qwen2.5-0.5B-Instruct), tokenizer seul chargé
  • top-5 sans contrainte : ' Ensure' / ' העלי' / 'ควบคุม' / ' giành' / '[]\r\n\r\n' (logits 4.77→4.08)
  • DFA accepte 2026-13-45 : syntaxe garantie, plage numérique orthogonale (pivot de l'exercice 3)
  • masque : état initial 10 tokens → état (4,0) 1 token '-' sur 151 643
  • génération '2927-70-45' conforme, trace 10 étapes, tokens_disponibles=1 aux étapes 4 et 7
  • CFG ISO : 9 règles / 81 productions, expansement déterministe '0000-00-00'
  • parité CFG/DFA au départ (10 chiffres) ; après '2927-' → 0 token (limitation V2 documentée)
  • coûts : compilation 0.758 s, surcoût 1.158 s/token incrémental vs lmfe 0.04 ms / 0.30 ms
  • tableau modèle réel (CUDA greedy) : libre 24 pas 0 % forces → inventeur "Qwen" ; minimal 7 pas 86 % → sortie cassée ; lmfe 19 pas 11 % → JSON propre ; ZIP minimal '{{' (2 pas, 100 %) vs lmfe '{"zip": "75000"}'
  • pattern ignoré : cardinal 11 ('{{', '""'…, 0.0073 %) — compilateur permissif = contrat creux
  • 19 constructs non couverts sur 5 types ; additionalProperties: false ignoré silencieusement
  • permissive 2 vs strict 10 tokens : la comparaison relative est le bon instrument

Détail du diff

  • 13 cellules Lecture NOUVELLE (d3c-lect-01..13), insérées chacune après sa cellule code d'ancre
  • 15 extensions prospectives (intro série, transitions §2/§3.1–3.5, bilans tranches 1 et 2, cadrages exemples guidés) — aucune valeur de sortie future, aucune phrase-déclencheur
  • 2 rephrases ciblées (déclenchement LECTURE retiré, fond identique)
  • bilan de formes : 13 NOUVELLE, 0 RÉÉCRITE, 0 FUSIONNÉE (aucune sortie ancrée n'avait de lecture préexistante) ; 39 → 52 cellules (18 code inchangées) ; la densité est vérifiée en contrôle par l'organe (preuves ci-dessous), elle n'est pas la cible

Preuves d'organes (rejouées après écriture)

check_density_anchor.py       → OK
check_split_reading_cells.py  → clean
detect_consecutive_code_cells → rc=0 (max=2 runs=1)
pedagogy_density.py           → below_threshold: 0 (contrôle de conformité, pas une cible)

Commit 792493add0b9 (+177/−17, le fichier du carnet seul). Le décompte de fichiers relève de gh pr view --json files.

See #13410

🤖 Generated with Claude Code

…ectives

- 13 cellules Lecture (d3c-lect-01..13) ancrees sur sorties reelles: vocab
  151643, top-5 sans contrainte, DFA syntaxe vs plage, masque 10->1 token,
  trace 10 etapes, CFG 9 regles/81 productions, parite puis limitation V2,
  compilation 0.758s vs 1.158s/token, lmfe 0.04ms/0.30ms, tableau modele
  reel (libre/minimal/lmfe), pattern ignore cardinal 11, 19 constructs non
  couverts, permissive 2 vs strict 10
- 15 extensions prospectives (intros, transitions, bilans) sans valeur future
- 2 rephrases de declencheurs preexistants (3ab76077 'On observe',
  05c7f507 'interpretation') pour garder une seule lecture par sortie
- prose 17536 -> 31883 (cible >= 21600); 18 cellules code byte-identiques
- organes: anchor OK, split clean, consecutive rc=0, density floor met

See #13410

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

github-actions Bot commented Oct 6, 2026

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

github-actions Bot commented Oct 6, 2026

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

github-actions Bot commented Oct 6, 2026

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

github-actions Bot commented Oct 6, 2026

Copy link
Copy Markdown
Contributor

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

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 github-actions Bot added the consecutive-code-cells Modified notebook has >=2 consecutive code cells (#12797) label Oct 6, 2026
@github-actions

github-actions Bot commented Oct 6, 2026

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 commented Oct 6, 2026

Copy link
Copy Markdown
Contributor

Notebook PR Validation: PASS

  • Notebooks checked: 1
  • Code cells validated: 18
  • 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 commented Oct 6, 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 10.4s
2.2-Descente-de-gradient.ipynb ✅ SUCCESS 12.2s
2.3-Regression-lineaire-logistique.ipynb ✅ SUCCESS 5.6s
2.4-Arbres-Forets-Ensembles.ipynb ✅ SUCCESS 4.0s
Search-01-StateSpace.ipynb ✅ SUCCESS 3.5s
SL-1-LogicalLearning.ipynb ✅ SUCCESS 2.4s
RL-04-Bandits-Manchots-Python.ipynb ✅ SUCCESS 25.4s
GameTheory-04c-NashExistence-Python.ipynb ✅ SUCCESS 4.6s
GameTheory-13d-Optimistic-CFR-Python.ipynb ✅ SUCCESS 19.0s

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

@github-actions

github-actions Bot commented Oct 6, 2026

Copy link
Copy Markdown
Contributor

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

@github-actions

github-actions Bot commented Oct 6, 2026 •

Copy link
Copy Markdown
Contributor

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

La collision de chemins signalée sur #19574 n'existe plus au passage du 2026-10-08T01:53Z : 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).

@jsboige jsboige changed the title Docs(13410): 03c densite -- 13 lectures ancrees + 15 extensions, prose 17536->31883 Docs(13410): 03c densite -- 13 lectures ancrees + 15 extensions Oct 7, 2026
@jsboige

jsboige commented Oct 7, 2026

Copy link
Copy Markdown
Owner Author

[ADJOINT PREFLIGHT]
schema: 1
lane: myia-po-2025:CoursIA-2
pr: 19574
head: 792493a
complete: true
body: read
comments-reviewed: 9
reviews-reviewed: 0
threads-reviewed: 0
threads-unresolved: 0
surfaces-sha256: cf70dfd4f9b3c12aa57931064351164260b196952e0849a819ffaa6b1e3a5a67
diff-files: 1
diff-additions: 177
diff-deletions: 17
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 19574
organ-rc: 0
[/ADJOINT PREFLIGHT]

@myia-ai-01
myia-ai-01 merged commit 32a2d54 into main Oct 8, 2026
127 of 131 checks passed
jsboige pushed a commit that referenced this pull request Oct 8, 2026
…dossier READY

Le gate n'evaluait `frozen_umbrella_exclusion` que si `verdict == VERDICT_READY`. Une PR sans dossier sortait en `NO-DOSSIER` (rc=1) et le gel n'etait jamais lu, alors qu'il etait detectable depuis le snapshot des la recuperation. Mesure : 6 PRs sur 9 portees par po-2027 etaient gelees sans que la lane le sache (#19539, #19554, #19558, #19561, #19568, #19574, campagne densite #13410) -- le gate rendait un rapport silencieux sur du faux merge-ready.

Fix : evaluation systematique du gel depuis le snapshot, mention dans la sortie (stdout et JSON payload `frozen`) quelle que soit la presence d'un dossier. Le verdict fonctionnel n'est pas inverse -- un NO-DOSSIER reste NO-DOSSIER -- mais l'output le complete d'une note gel. Le gate passe en EXIT_BLOCKED_WITH_SUBSTANCE (rc=3) sur un PR gelee, qu'il y ait dossier ou non. Le gel reste bloquant ; il devient lisible.

Tests : 150/150 PASSED en 0.48 s. Quatre cas couverts (gel+READY, gel+READY JSON, gel+BLOCKED, gel+NO-DOSSIER) plus le temoin negatif non-gel+NO-DOSSIER qui reste rc=1 sans mention de gel.

Co-Authored-By: Claude Haiku 4.5 (1M context) <noreply@anthropic.com>
myia-ai-01 pushed a commit that referenced this pull request Oct 10, 2026
…dossier READY (#19661)

* fix(prevalidation,#19630): nommer le gel de campagne sur une PR sans dossier READY

Le gate n'evaluait `frozen_umbrella_exclusion` que si `verdict == VERDICT_READY`. Une PR sans dossier sortait en `NO-DOSSIER` (rc=1) et le gel n'etait jamais lu, alors qu'il etait detectable depuis le snapshot des la recuperation. Mesure : 6 PRs sur 9 portees par po-2027 etaient gelees sans que la lane le sache (#19539, #19554, #19558, #19561, #19568, #19574, campagne densite #13410) -- le gate rendait un rapport silencieux sur du faux merge-ready.

Fix : evaluation systematique du gel depuis le snapshot, mention dans la sortie (stdout et JSON payload `frozen`) quelle que soit la presence d'un dossier. Le verdict fonctionnel n'est pas inverse -- un NO-DOSSIER reste NO-DOSSIER -- mais l'output le complete d'une note gel. Le gate passe en EXIT_BLOCKED_WITH_SUBSTANCE (rc=3) sur un PR gelee, qu'il y ait dossier ou non. Le gel reste bloquant ; il devient lisible.

Tests : 150/150 PASSED en 0.48 s. Quatre cas couverts (gel+READY, gel+READY JSON, gel+BLOCKED, gel+NO-DOSSIER) plus le temoin negatif non-gel+NO-DOSSIER qui reste rc=1 sans mention de gel.

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

* fix(prevalidation,#19661): NO-DOSSIER+gel garde rc=1 -- acceptance 1 de #19630

Rebase sur main post-#19721 (reouverture user de #13410) : FROZEN_TITLE
cite desormais le parapluie encore gele #11601, l'assert du test suit le
fixture au lieu de l'historique de branche. Le rouge CI du 07/10 22:52Z
etait une collision de merge-ref (asserts #13410 de la branche x fixtures
#11601 de main), reproduit et confirme localement.

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

---------

Co-authored-by: Claude Haiku 4.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

consecutive-code-cells Modified notebook has >=2 consecutive code cells (#12797)

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants