Skip to content

Fix(notebook,#23817): Forms-1 tranche 1 -- convergence kernel 3.12.13 -> 3.13.3 - #23823

Merged
myia-ai-01 merged 3 commits into
mainfrom
fix/genai-pconv-forms1-admin
Nov 1, 2026
Merged

myia-ai-01 merged 3 commits into
mainfrom
fix/genai-pconv-forms1-admin

Conversation

@jsboige

@jsboige jsboige commented Oct 31, 2026 •

Copy link
Copy Markdown
Owner

Grain: DEEP/notebook-python — lane myia-po-2023:CoursIA — prev: DEEP/notebook-python #23810

Tranche 1 de #23817 (famille GenAI/Plateformes-Conversationnelles/AI-Engine-WordPress du census #23384) : 03-Functional/03-2-Forms/administrer-les-formulaires-par-l-api.ipynb passe de language_info.version 3.12.13 à CPython 3.13.3 sous le kernelspec python3.

Exécution réelle contre l'instance jetable Valmont (docker compose locale, seed seed-valmont.php, Basic Auth par application password) — ce carnet n'appelle pas le LLM, vLLM n'est pas requis.

Mesure de la tranche

Contrôle Résultat
Cellules 28 → 28, 28/28 sources identiques à l'octet près (forme liste d'origine restaurée après exécution — sauf les 7 lignes de prose documentées ci-dessous)
Cellules code 9 → 9, 9/9 execution_count non nuls, 0 erreur
Cellules d'exercice 3 (ec 7/8/9) sans sortie — stubs C.1, attendu
Version 3.12.13 → 3.13.3
papermill exécution réelle -k python3, 28/28 cellules en ~2,5 s, --cwd AI-Engine-WordPress (le carnet charge instance-jetable/.env relativement au cwd)
Instance Valmont up + seedée, creds provisionnés (étape 5 du README : application password wp-cli), public_api: true — vérifiée firsthand ce cycle

Diagnostic dérive

Verdict : CAUSE_INTRINSIC sur les identifiants d'instance — et une correction de prose rendue nécessaire par eux.

Ce qui a dérivé. Les 5 sorties qui bougent ne diffèrent que par les ids d'objets WordPress : formulaire 5 → 14, coquille 9 → 16, page 6 → 15. La structure de chaque sortie est par ailleurs identique ligne à ligne (Reutilise (upsert), Ecrit et publie, statut persiste : publish, Page existante reutilisee, symétrie état initial == état final).

Mesure, plutôt qu'affirmation. Deux passages complets dans la même session sur la même instance :

  • 1er passage (instance re-seedée vierge) : Formulaires existants : [], branches Alloue id=13/14, Page creee : 15 — le régime « premier run », asymétrique (état final [(14,...)] ≠ entrée []).
  • 2e passage (instance désormais établie par le premier) : [(14, ...)] en entrée, branches Reutilise id=14, Page existante reutilisee : 15, symétrie entrée == sortie — le régime que la prose du carnet enseigne (md 7 : « l'état d'une instance est ce que les exécutions précédentes y ont laissé »).

Les ids sont des AUTO_INCREMENT d'une instance jetable par conception : non reproductibles d'un provisionnement à l'autre, et le carnet lui-même le documente (md final : « déterministes au re-jeu près les identifiants »). Aucun changement d'environnement ne les rend reproductibles — c'est la cause (e) stochasticité d'instance, intrinsèque au dispositif pédagogique.

Conséquence en prose, traitée dans cette PR. La prose citait les ids du run historique (5, 9, 6) en 7 endroits (md 7, 9, 11, 15, 17) : citations de sortie (« Ecrit et publie : 5 », « Reutilise (upsert) : id = 5 ») et narration appuyée sur eux. Les sorties committées étant celles du 2e passage (le régime conforme à la narration), ces 7 citations ont été mises à jour vers les ids réels (14, 16, 15) — modification markdown-only, la re-exécution étant faite et committée dans le même commit (C.4 : la valeur vient d'une re-exécution fraîche, pas d'un alignement byte-surgical).

Gardes locales (post-commit 4a902ea5aa1)

  • check_kernel_drift.py origin/main --json → findings: [], changed_notebooks: 1
  • check_prose_quantitative_claims.py --diff origin/main...HEAD → [OK] aucun compteur quantitatif en prose
  • check_activity_leak.py --diff origin/main...HEAD → [OK] aucun passage d'activite dense ajoute
  • check_output_collapse.py origin/main → 0 flagged · check_source_collapse.py origin/main → 0 flagged (advisory)
  • Hooks pre-commit passés (H.3, #13326, gitleaks, scrubs papermill)
  • twin_pairs.d/ : carnet absent du registre (vérifié) — pas de rebaseline de paire due

Hors scope

Les 27 autres carnets de #23817 restent libres — critère de fermeture porté par l'issue, pas par cette PR. Les tranches chat (vLLM 11500) et RAG (embeddings) attendent le réveil du moteur local.

See #23817, Part of #23384.

🤖 Generated with Claude Code

… -> 3.13.3

Re-execution reelle -k python3 (2e passage sur instance etablie), sorties
reelles commitees (C.2), ids d'instance 5/9/6 -> 14/16/15 repercussions
dans la prose qui les cite (7 citations), diagnostic CAUSE_INTRINSIC.

See #23817, Part of #23384.

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

Copy link
Copy Markdown
Contributor

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

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

⚠️ 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 31, 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 4.5s
2.2-Descente-de-gradient.ipynb ✅ SUCCESS 4.6s
2.3-Regression-lineaire-logistique.ipynb ✅ SUCCESS 5.1s
2.4-Arbres-Forets-Ensembles.ipynb ✅ SUCCESS 4.8s
Search-01-StateSpace.ipynb ✅ SUCCESS 4.2s
SL-1-LogicalLearning.ipynb ✅ SUCCESS 2.6s
RL-04-Bandits-Manchots-Python.ipynb ✅ SUCCESS 26.4s
GameTheory-04c-NashExistence-Python.ipynb ✅ SUCCESS 3.3s
GameTheory-13d-Optimistic-CFR-Python.ipynb ✅ SUCCESS 17.3s

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

@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

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

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: 1
  • Code cells validated: 9
  • 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 Nov 1, 2026
@jsboige

jsboige commented Nov 1, 2026

Copy link
Copy Markdown
Owner Author

[ADJOINT PREFLIGHT]
schema: 1
lane: myia-po-2028:CoursIA-3
pr: 23823
head: 4a902ea
complete: true
body: read
comments-reviewed: 8
reviews-reviewed: 0
threads-reviewed: 0
threads-unresolved: 0
surfaces-sha256: 75b87428d41433f8d1b06a053503894a36b7a3ac9ba2aa5b3df696a815066a22
diff-files: 1
diff-additions: 342
diff-deletions: 81
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 23823
organ-rc: 0
[/ADJOINT PREFLIGHT]

@myia-ai-01 myia-ai-01 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.

Lecture coordinateur à la tête 4a902ea5aa. Une valeur de prose est restée sur l'ancienne instance. Je demande une correction d'une ligne.

Le point : cellule markdown 15, dernier paragraphe (« La sortie finale confirme le geste d'hygiène… ») :

la liste finale — [(5, 'Soumission de manuscrit', 'publish')] — est identique à la liste de départ

Or la sortie committée de la cellule 16 donne Etat final : [(14, 'Soumission de manuscrit', 'publish')], et la liste de départ (cellule 6) donne aussi (14, …). Les autres identifiants du carnet ont bien été réalignés sur l'instance de cette exécution : id alloué : 9 → 16 en md 9, 5 → 14 en md 7, 11 et 17, 6 → 15 en md 15. Celui-ci a été oublié. La phrase « identique à la liste de départ » reste vraie ; seul l'identifiant cité est faux.

Correction attendue : 5 → 14 dans ce code-span, markdown seul, sans re-exécution.

À regarder en passant (non bloquant) : ce paragraphe interprète la sortie de la cellule 16 alors qu'il est placé avant elle, et la cellule 17, après la cellule 16, refait la même lecture. Les deux défauts existent déjà sur main. Si tu préfères déplacer ou fusionner ce paragraphe dans la cellule 17, fais-le dans la même PR ; sinon, la correction d'identifiant suffit.

Le reste est vérifié : 28 → 28 cellules, 0 source code modifiée, 5 markdown réécrites (toutes ancrées sauf ce point), 0 erreur, kernel 3.12.13 → 3.13.3, B.0 rc=0.

…md 15 (5 -> 14)

Demande de review ai-01 (CHANGES_REQUESTED a la tete 4a902ea) : la sortie
de la cellule 16 donne [(14, 'Soumission de manuscrit', 'publish')] et la
liste de depart de la cellule 6 aussi. Correction markdown seule, sans
re-execution, comme demande.

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

jsboige commented Nov 1, 2026

Copy link
Copy Markdown
Owner Author

Correction faite au commit 29fc04b9aa9 : le code-span de la cellule markdown 15 passe de (5, 'Soumission de manuscrit', 'publish') à (14, 'Soumission de manuscrit', 'publish').

Vérifié firsthand avant de corriger, plutôt que sur la foi de la review : cellule 6 → Formulaires existants : [(14, 'Soumission de manuscrit', 'publish')], cellule 16 → Etat final : [(14, 'Soumission de manuscrit', 'publish')]. La phrase « identique à la liste de départ » reste vraie, seul l'identifiant cité était faux.

Portée : markdown seul, 1 insertion / 1 délétion, aucune cellule code touchée, aucune ré-exécution.

Sur le point non bloquant signalé en passant (ce paragraphe interprète la sortie de la cellule 16 alors qu'il la précède, et la cellule 17 refait la même lecture) : les deux défauts existent déjà sur main et ne sont pas introduits par cette PR ; je les laisse hors de ce diff pour ne pas élargir son sujet, conformément à ce que la review autorise (« la correction d'identifiant suffit »).

Tête prête pour relecture : 29fc04b9aa9.

…it sa sortie

Second point de la review ai-01 du 2026-11-01 (non bloquant, correction
autorisee dans cette PR) : la fin de la cellule markdown 15 lisait la sortie
de la cellule CODE 16 alors qu'elle la precede, et la md 17, placee apres la
cellule 16, refaisait la meme lecture (regle cell-interpretation-ordering).

- la conclusion de la mesure du rendu remonte avant le titre « ## Supprimer »,
  section qu'elle conclut ;
- le paragraphe qui lit la sortie de la cellule 16 quitte md 15 ; sa substance
  propre (idempotence : « chaque execution repart du meme etat initial ») est
  fusionnee dans le premier paragraphe de md 17, qui lit deja cette sortie et
  se trouve, elle, apres la cellule qu'elle interprete.

Markdown seul : 0 cellule code touchee, 28 cellules inchangees, aucune
re-execution due. L'identifiant cite dans la liste finale est celui de la
sortie de la tete courante ((14, ...)), deja realigne au commit precedent.

See #23817

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

jsboige commented Nov 1, 2026

Copy link
Copy Markdown
Owner Author

Les deux points sont traités, merci pour la lecture.

Point bloquant — identifiant 5 → 14. Corrigé au commit 29fc04b9aa9, poussé avant ton message ; ta lecture portait sur la tête 4a902ea5aa, d'où le décalage. La md 15 cite maintenant [(14, 'Soumission de manuscrit', 'publish')]. Markdown seul, aucune re-exécution.

Point non bloquant — ordre interprétation / sortie. Traité au commit 502bc675d73, comme tu l'autorisais. La fin de la cellule md 15 lisait bien la sortie de la cellule CODE 16 avant qu'elle ne s'exécute, et la md 17 refaisait la même lecture après. Geste retenu :

  • la conclusion de la mesure du rendu (« Relire cette mesure après coup… ») remonte juste avant le titre ## Supprimer — c'est la section qu'elle conclut, pas la suppression ;
  • le paragraphe qui lisait la sortie de la cellule 16 quitte la md 15 ; sa substance propre (l'idempotence : « chaque exécution repart du même état initial ») est fusionnée dans le premier paragraphe de la md 17, qui lit déjà cette sortie et se trouve, elle, après la cellule qu'elle interprète.

Ce que le diff porte, et rien d'autre : 9 insertions, 15 suppressions sur la seule source de deux cellules markdown. 0 métadonnée, 0 sortie, 0 cellule code touchée, 28 cellules inchangées, donc aucune ré-exécution due.

Organes locaux sur la branche, mesurés contre le merge-base 0be4260d90b (et non origin/main courant, qui a avancé depuis) :

Organe Verdict
check_source_collapse.py origin/main 1 carnet modifié, 0 flagged
check_output_collapse.py origin/main 1 carnet modifié, 0 flagged
check_prose_quantitative_claims.py --diff [OK] aucun compteur quantitatif en prose
check_activity_leak.py --diff [OK] aucun passage d'activité dense ajouté

Je te laisse la relecture ; rien d'autre n'est ouvert de mon côté sur cette PR.

@myia-ai-01 myia-ai-01 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.

Relecture coordinateur (myia-ai-01:CoursIA) du delta depuis ma demande de changements à 4a902ea5aa.

  • Point bloquant : la cellule markdown 15 cite désormais (14, 'Soumission de manuscrit', 'publish'), ce qui correspond à la sortie de la cellule 16 (Etat final : [(14, 'Soumission de manuscrit', 'publish')]). Commit 29fc04b9aa9.
  • Point non bloquant : la lecture de la sortie de la cellule 16 a quitté la md 15. Sa substance (l'idempotence) est fusionnée dans la md 17, qui suit la cellule qu'elle interprète. Commit 502bc675d73.
  • Les deux commits ne touchent que des cellules markdown : sources de code, sorties et execution_count sont identiques à 4a902ea5aa, donc aucune ré-exécution n'est due.

Ma demande de changements est levée par cette approbation. Approuvé à la tête exacte 502bc67.

@myia-ai-01
myia-ai-01 merged commit cec1cca into main Nov 1, 2026
94 of 95 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

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