Skip to content

docs(13410): 10 lecture cells anchored on executed outputs in CSP-1-Fundamentals (density 854 -> 1256) - #16604

Merged
myia-ai-01 merged 5 commits into
mainfrom
feature/13410-density-csp1-fundamentals
Sep 21, 2026
Merged

myia-ai-01 merged 5 commits into
mainfrom
feature/13410-density-csp1-fundamentals

Conversation

@jsboige

@jsboige jsboige commented Sep 17, 2026 •

Copy link
Copy Markdown
Owner

Grain: DEEP/notebook-python -- lane myia-po-2026:CoursIA -- prev: DEEP/notebook-dotnet #16585

Summary

EPIC #13410 density grain on MyIA.AI.Notebooks/Search/Part2-CSP/CSP-1-Fundamentals.ipynb (Python 3 kernel, nbformat 4.5). 10 markdown reading cells inserted, each anchored on a DIFFERENT real executed output, recomputing arithmetic from printed values (deltas, ratios, orderings), flagging what is NOT measured honestly. Exercise stubs (cells 72-83) untouched — no anchoring on "Exercice a completer" outputs (#16590 P0 rule), no exercise statement restated, no expected answer given.

Density: 854 -> 1256 (prose 28202 -> 41454 chars / 33 code cells; threshold 1200, target >= 1215 met).

Per-cell readings (id -> anchor -> content)

Cell id Anchor (original cell) Reading
c107csp1-adjacences-comptage 7 (adjacency lists) 2+3+5+3+3+2+0 = 18 directed entries / 2 = 9 pairs = printed Contraintes : 9 paires; SA carries 5/9; T -> [] degree 0; 2187 = 3^7
c121csp1-trace-zero-backtrack 21 (verbose trace) 4 (consistant) + 3 (CONFLIT) = 7 = Assignations tentees : 7; -> backtrack absent (zero backtracks); 7/81 ~ 9% of space
c126csp1-noeuds-trajectoire 26 (viz counters) 11 - 4 = 7 variables; cross-cell identity with cell 18 coloring modulo R/G/B renaming; max_depth=4 draws a subset, counters cover the full search
c143csp1-cles-mrv 43 (8-Reines solution dict) key order 0,1,2,3,6,4,5,7 reveals MRV reordering (col 6 before 4/5); values = {0..7} distinct; 677 vs 8^8 = 16 777 216 (~4e-5, factor ~24 800); time flagged machine-dep single-pass
c152csp1-parite-18 52 (python-constraint) first solution differs (T = Bleu); total 18 == brute-force count; honest flag: library solver internals not instrumented, no assign counter exposed
c155csp1-alldifferent-256-24 55 (AllDifferent) 24 = 4!; 4^4 = 256 -> 24 (x10.7 reduction before any search); 3 sampled solutions verified all-distinct; lexicographic descending enumeration order
c157csp1-miroir-4reines 57 (4-Reines lib) mirror arithmetic 3 - a[i] = b[i] term by term; reverse-read also matches; 256 -> 2; mirror-pair generalization (odd count would be suspect)
c162csp1-meme-coloriage 62 (Choco Australia) identical coloring to naive backtracking cell 18 via a different mechanism (propagation); python-constraint differs (T = Bleu); IntVar {0,1,2} encoding; local adjacency checks
c165csp1-decomposition-18 65 (Choco enumeration) solutions 1-3 differ only in T; 18 = 6 x 3 decomposition; honest flag: only 2 of 6 continental colorings shown, 4 inferred from 18/3; 3-engine parity on the exact count
c168csp1-echiquier-verification 68 (Choco 8-Reines ASCII) mapping values = {0..7}; board rows re-read against mapping; 3 diagonal pairs checked by hand; honest flag: no VALIDE line printed, 3 probes != proof of all 28 pairs

Proofs

  • Preflight: gh pr list --state open --limit 400 --json number,files (193 PRs) raw-JSON grep for CSP-1-Fundamentals = 0 hits; no Search/Part2-CSP/ file in any open PR; grep -ril "csp-1" scripts/notebook_tools/twin_pairs.d/ = no registry entry.
  • Round-trip: json.dumps(nb, indent=1, ensure_ascii=False) + "\n" verified byte-identical to raw BEFORE the edit.
  • Originals deep-equal in order after filtering the 10 new ids (asserted in the insertion script).
  • 33 code cells byte-identical, source + outputs (asserted in the insertion script).
  • git diff -U0 | grep -c '^-[^-]' = 0 on the density commit a57dcea78 (147 insertions, 0 deletions).
  • Density measured post-edit in a separate command: pedagogy_density.py --json -> density 1256, below_threshold: 0, ok: 1.
  • Cell ids strictly alphanumeric+dash, metadata: {}, all source lines end \n, file written newline="\n".
  • Accent register measured (1.52% existing) and matched.

Post-review fixes (CHANGES_REQUESTED 2026-09-17T23:53Z)

  • 6553607b8 — twin parity attestation for the pair CSP-1 Fundamentals (markdown-only tranche, code byte-identical): adds scripts/notebook_tools/twin_pairs.d/csp-1-fundamentals/0017-2026-09-18-myia-po-2026-CoursIA.yaml. Branch total: 2 files (notebook + attestation yaml).

Post-review (drain 2026-09-19): ea43fcf28 repositioned the 4 cited Lecture cells; rebase onto fresh origin/main absorbed the GT-4c attestation catch-up (#16678); 841e4f538 re-attested the pair as 0018-2026-09-19-myia-po-2026-CoursIA.yaml (the 0017 shas predated the repositioning, #8957 — both yaml files remain in the diff, only the latest is authoritative). Branch total: 3 files (notebook + 2 attestation yamls).

  • ea43fcf28 — check_interp_positioning fix: the 10 insertions had pushed 4 PRE-EXISTING interp cells (bdb687f0, fc92d505, a735ed14, 693c77ef) into a header-to-header sandwich with no code cell above (condition 4). Pure position swap: each legacy interp now sits directly after its source code cell, the newer reading follows it. 96 -> 96 cells, id multiset equal, sequence = exactly the 4 adjacent transpositions, all code cells byte-identical at unchanged positions; check_interp_positioning.py --check now OK (was 4 findings). Zero content added/removed/edited — the 48 insertions / 48 deletions are that commit's stat only; in the final tree diff (origin/main...HEAD) they collapse to pure insertions (the four affected readings now sit after their legacy interp, so the hunk is a plain insertion at the final anchor).

Test plan

  • CI notebook hygiene hooks (all passed locally at commit: gitleaks, hr-separator, H.3 execution_count, syntax check)
  • pedagogy_density.py --json on the PR head reproduces density 1256, 0 below_threshold
  • Spot-check 2-3 new cells render correctly (headings, tables absence of stray markdown)
  • Verify no code cell diff (git diff origin/main...HEAD -- '*.ipynb' = +147/-0 on the notebook — pure markdown insertions at final anchors — plus the twin attestation yaml)

See #13410

🤖 Generated with Claude Code

@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

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

@github-actions

github-actions Bot commented Sep 17, 2026 •

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 3.2s
2.2-Descente-de-gradient.ipynb ✅ SUCCESS 3.4s
2.3-Regression-lineaire-logistique.ipynb ✅ SUCCESS 4.0s
2.4-Arbres-Forets-Ensembles.ipynb ✅ SUCCESS 3.6s
Search-01-StateSpace.ipynb ✅ SUCCESS 3.0s
SL-1-LogicalLearning.ipynb ✅ SUCCESS 2.0s
rl_4_multi_armed_bandits.ipynb ✅ SUCCESS 17.3s
GameTheory-04c-NashExistence-Python.ipynb ✅ SUCCESS 2.8s

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

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

Copy link
Copy Markdown
Contributor

Notebook PR Validation: PASS

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

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

APPROVED — genre-guard 10/10 cellules Lecture ancrées sur outputs réels (exec 3–27 : traces backtracking, dictionnaires solutions, comptes python-constraint/Choco, échiquier ASCII), 0 stub. Les 2 pourcentages non verbatim sont dérivables avec prémisses imprimées (« 56 % » = 5/9 adjacences SA, « 9 % » = 7/81 essais compteur imprimé) ; vérifications internes des proses confirmées (« 18/2 = 9 », « 4+3=7 », absence de « -> backtrack » conforme à la trace). Merge au dwell (~01:00Z).

🤖 Generated with Claude Code

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

CHANGES_REQUESTED — head audité ce cycle (complète mon APPROVED genre-guard du 17/09 23:39Z : le fond ancrage-réalité tient, mais deux organes CI bloquants sont rouges au head).

  1. check_interp_positioning.py FAIL : 4 new misplaced interp cells (run 105414674832). La règle : une cellule « Lecture » suit la cellule code dont l'output PORTE la valeur citée — pas simplement une cellule exécutée proche. Mon genre-guard avait vérifié l'ancrage-réalité (outputs existants, valeurs traçables), la POSITION des 4 cellules reste à corriger : les rapprocher de leur cellule source exacte.

  2. Twin parity audit FAIL : 1 paire en DRIFT/MISSING qui était OK au base (run 105414675708). La PR introduit une divergence jumeau Python↔C# inexistante au base-ref. Corriger la paire (le selecteur --pair est obligatoire pour la reproduction, #8508).

Les deux logs citent les runs exacts à rejouer. Rien à retoucher sur le fond des 10 lectures (valeurs vérifiées traçables) — c'est un repositionnement + un réalignement jumeau.

🤖 Generated with Claude Code

@github-actions github-actions Bot added the variation-tag-missing PR sans tag Grain: <TIER>/<GENRE> (variation-protocol) label Sep 18, 2026
@github-actions

Copy link
Copy Markdown
Contributor

Grain tag obligatoire (#10045, bloquant).

Grain tag absent (no Grain: / in body).

Pour passer ce gate, le body doit porter en tete une ligne de la forme :

Grain: <DEEP|MED|LIGHT>/<genre> -- lane <machine:workspace> -- prev: <TIER>/<GENRE> #<PR>

Le <genre> doit figurer dans l'enumeration §1 de variation-protocol.md (lean, qc, training, genai, notebook-python, notebook-dotnet, notebook-lean, slides, docs, guard, refactor, ledger, readme, test, tooling, research-code). Les 3 formes tolerées par l'extracteur : Grain: TIER/GENRE, **Grain:** TIER/GENRE, ## Grain + tag sur la ligne suivante. La lane doit suivre le format <machine>:<workspace> (cf. lane-claim-protocol.md).

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

jsboige commented Sep 18, 2026 •

Copy link
Copy Markdown
Owner Author

Les deux organes bloquants sont traités au head ea43fcf28 :

  1. check_interp_positioning — --check rejoue OK (était 4 findings). Cause : mes 10 insertions avaient poussé 4 interps PRÉ-EXISTANTES (bdb687f0, fc92d505, a735ed14, 693c77ef) dans un sandwich header→header sans code au-dessus (condition 4). Fix = swap de position pur : chaque interp legacy remonte directement après sa cellule code source, ma lecture chiffree la suit (résumé générique → lecture profonde). Preuves : 96→96 cellules, multiset d'ids identique, séquence = exactement les 4 transpositions adjacentes, cellules code byte-identiques à positions inchangées, zéro contenu ajouté/supprimé/édité. Le diff d'arbre origin/main...HEAD reste +147/-0 (les swaps se résorbent en insertions pures aux ancres finales).

  2. Twin parity — attestation poussée en 6553607b8 (check_twin_parity.py --update --pair "CSP-1 Fundamentals" --by myia-po-ai... par la lane) : markdown-only, code byte-identical. Ajoute twin_pairs.d/csp-1-fundamentals/0017-2026-09-18-myia-po-2026-CoursIA.yaml — le body énumère maintenant les 2 fichiers réels (le claim périmètre « 1 file » restant dans les anciens bodies a aussi été corrigé sur docs(13410): read portfolio ex aequo tie under single objective in CSP-5-Optimization-Csharp (density 1186 -> 1257) #16611).

Le fond des 10 lectures est inchangé (aucune cellule éditée). Body mis à jour avec la section « Post-review fixes ».

@github-actions github-actions Bot added variation-adjacency-deep-med Adjacence DEEP/MED hors LIGHT : §2 l'autorise si substance distincte (coordinateur) and removed variation-tag-missing PR sans tag Grain: <TIER>/<GENRE> (variation-protocol) labels Sep 18, 2026
@github-actions

Copy link
Copy Markdown
Contributor

[stale-guard-red] Scripts Tests (CPU) -- rouge date de la base e75126219824, ANTERIEURE au fix d02a47048736 du garde sur main (garde vert a sa version courante).
Remede : gh pr update-branch 16604 (recalcule la base). NE PAS gh run rerun : gh run rerun rejouerait la base gelee e751262 (le fix d02a470 n'y est PAS) et rendrait le meme rouge ; seul gh pr update-branch recalcule la base.

@github-actions github-actions Bot added the stale-guard-red Rouge datant d'une base anterieure au fix du garde (sweep #13321) label Sep 18, 2026
jsboige and others added 4 commits September 19, 2026 01:25
…undamentals (density 854 -> 1256)

EPIC #13410 density grain. 10 markdown reading cells inserted, each anchored
on a DIFFERENT real executed output, never on exercise stubs (cells 72-83
untouched). No code cell modified.

Per-cell readings (id -> anchor -> reading):
- c107csp1-adjacences-comptage -> cell 7 output (adjacency lists, 9 paires,
  2187): recompute 2+3+5+3+3+2+0 = 18 directed entries / 2 = 9 undirected
  pairs; SA carries 5/9; T degree 0; 2187 = 3^7.
- c121csp1-trace-zero-backtrack -> cell 21 trace: 4 consistant + 3 CONFLIT = 7
  trials; string "-> backtrack" absent (zero backtracks); 7/81 ~ 9% of space.
- c126csp1-noeuds-trajectoire -> cell 26 viz counters: 11 - 4 = 7 variables;
  cross-cell-18 identity of coloring modulo R/G/B renaming; max_depth=4 draws
  a subset, counters cover full search.
- c143csp1-cles-mrv -> cell 43 solution dict: key order 0,1,2,3,6,4,5,7
  reveals MRV reordering (col 6 before 4/5); values = {0..7}; 677 vs
  8^8 = 16 777 216 (~4e-5, factor ~24 800); time flagged machine-dep.
- c152csp1-parite-18 -> cell 52 lib output: first solution differs (T = Bleu),
  total 18 == brute force count; honest flag: library solver internals not
  instrumented, no assign counter.
- c155csp1-alldifferent-256-24 -> cell 55: 24 = 4!; 4^4 = 256 -> 24 (x10.7
  reduction before any search); 3 sampled solutions verified distinct;
  lexicographic descending enumeration order noted.
- c157csp1-miroir-4reines -> cell 57: mirror arithmetic 3-a[i] = b[i] term by
  term; reverse-read also matches; 256 -> 2; mirror-pair generalization.
- c162csp1-meme-coloriage -> cell 62 Choco output: identical coloring to
  naive backtracking cell 18 (different mechanism); lib differs (T = Bleu);
  IntVar {0,1,2} encoding; local adjacency checks; time machine-dep.
- c165csp1-decomposition-18 -> cell 65 enumeration: solutions 1-3 differ only
  in T; 18 = 6 x 3 decomposition; honest flag: only 2 of 6 continental
  colorings shown, 4 inferred from 18/3; 3-engine parity on the exact count.
- c168csp1-echiquier-verification -> cell 68 ASCII board: mapping values =
  {0..7}; board rows re-read against mapping (4 spot rows); 3 diagonal pairs
  checked by hand; honest flag: no VALIDE line printed, 3 probes != proof of
  all 28 pairs.

Proofs:
- json.dumps(nb, indent=1, ensure_ascii=False) + "\n" round-trip verified
  byte-identical BEFORE edit (edit path = same serialization).
- Originals deep-equal in order after filtering new ids (asserted in script).
- 33 code cells byte-identical (source + outputs, asserted in script).
- git diff -U0 | grep -c '^-[^-]' == 0 (147 insertions, 0 deletions).
- Density measured post-edit (separate command): 1256 (prose 41454 / 33 code),
  threshold 1200, summary below_threshold: 0, ok: 1.

Ids strictly alphanumeric+dash, metadata {}, all source lines end \n, file
written newline="\n". Accent register matched to existing markdown (1.52%).
No "---" openers in new cells (hr-separator hook no-op).

See #13410

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
…ly density tranche

Pair attested: CSP-1 Fundamentals.

Paraphyte-preservant verification (python-compare vs origin/main): all code
cells byte-identical (source + outputs + execution_count) — 33/33; changes
are markdown-only additions (+10 cells).

Command run:
python scripts/notebook_tools/check_twin_parity.py --update --pair "CSP-1 Fundamentals" --by "myia-po-2026:CoursIA"

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
…rce code

check_interp_positioning flagged 4 pre-existing interp cells (bdb687f0,
fc92d505, a735ed14, 693c77ef) as misplaced: the density readings inserted in
a57dcea had pushed each of them into a header-to-header sandwich with no
code cell above (condition 4). Fix is a pure position swap: each legacy
interp now sits directly after the code cell whose output it reads, with
the newer chiffree reading following it (generic summary -> deep reading).

No content added, removed, or edited: 96 -> 96 cells, id multiset equal,
sequence equals HEAD plus exactly the 4 adjacent transpositions, all code
cells byte-identical at unchanged positions. check_interp_positioning now
reports OK (was 4 findings). Density unchanged (content is order-independent).

See #13410

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
…rebase

0017 pointait un blob anterieur au repositionnement des 4 cellules Lecture
(#8957) ; --update rejoue en DERNIER sur le head rebase (les 147 commits de
main absorbent aussi l'attestation GT-4c #16678 qui faisait DRIFT fantome).

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
@jsboige
jsboige force-pushed the feature/13410-density-csp1-fundamentals branch from ea43fcf to 841e4f5 Compare September 18, 2026 23:25
@jsboige

jsboige commented Sep 18, 2026

Copy link
Copy Markdown
Owner Author

Passe drain (dispatch ai-01 2026-09-18 22:49Z) — exception BLOCKED traitée, re-livraison au head 841e4f538.

Rollup d'abord :

Le repositionnement des 4 cellules Lecture cité par la review était déjà au head précédent (ea43fcf28) ; le head 841e4f538 = rebase + attestation à jour. Rien d'autre touché. Re-review bienvenue sur le nouveau head.

@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-18) :

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 variation-tag-missing PR sans tag Grain: <TIER>/<GENRE> (variation-protocol) and removed variation-adjacency-deep-med Adjacence DEEP/MED hors LIGHT : §2 l'autorise si substance distincte (coordinateur) labels Sep 18, 2026
@github-actions

Copy link
Copy Markdown
Contributor

Grain tag obligatoire (#10045, bloquant).

Grain tag absent (no Grain: / in body).

Pour passer ce gate, le body doit porter en tete une ligne de la forme :

Grain: <DEEP|MED|LIGHT>/<genre> -- lane <machine:workspace> -- prev: <TIER>/<GENRE> #<PR>

Le <genre> doit figurer dans l'enumeration §1 de variation-protocol.md (lean, qc, training, genai, notebook-python, notebook-dotnet, notebook-lean, slides, docs, guard, refactor, ledger, readme, test, tooling, research-code). Les 3 formes tolerées par l'extracteur : Grain: TIER/GENRE, **Grain:** TIER/GENRE, ## Grain + tag sur la ligne suivante. La lane doit suivre le format <machine>:<workspace> (cf. lane-claim-protocol.md).

@github-actions github-actions Bot removed the variation-tag-missing PR sans tag Grain: <TIER>/<GENRE> (variation-protocol) label Sep 19, 2026
@jsboige

jsboige commented Sep 20, 2026

Copy link
Copy Markdown
Owner Author

Passe repositionnement des 4 interps legacy (dispatch ai-01) — verif firsthand, etat deja conforme, head pousse a 8fa30ad0a.

Le repositionnement demande est deja en place au head precedent 841e4f538 (commit 7aca9f926 "reposition 4 legacy interp cells directly after their source code") — re-verifie cellule par cellule au head actuel, pas seulement sur le label :

Cell interp Ancien index (025f09d14, pre-fix) Nouvel index Suit maintenant (code)
bdb687f0 24 23 21750526 (trace verbose du backtracking)
fc92d505 58 57 2216a02e (coloration Australie python-constraint)
a735ed14 71 70 a0642dfe (Choco/pychoco coloration Australie)
693c77ef 75 74 1b7d4a63 (enumeration exhaustive Choco)

Avant le fix, chaque interp etait sandwichnee entre 2 markdown (ex-bdb687f0 suivait le markdown c121csp1-trace-zero-backtrack, pas le code) ; chaque lecture chiffree ajoutee par la PR la suit desormais.

Preuves :

  • check_interp_positioning.py --check CSP-1-Fundamentals.ipynb -> OK: no new misplaced interp cells
  • Multiset complet des cellules (ids + sources + metadata + outputs) identique avant fix vs head : 96 cellules, zero contenu modifie
  • Chaque texte interp verifie contre l'output reel de sa cellule porteuse (ex. a735ed14 cite "la cellule ci-dessus" = timing Choco 0.23 ms machine-dep ; 693c77ef cite les 18 solutions = output "Nombre total de solutions : 18")
  • Post-merge verifie : anchors intacts a 8fa30ad0a

gh pr update-branch execute (dispatch + remede stale-guard e7512621) : merge de main, nouveau head 8fa30ad0a, notebook non touche par le merge (diff vide). Aucun commit de contenu necessaire — creer un commit vide aurait ete faux.

🤖 Generated with Claude Code

@github-actions

Copy link
Copy Markdown
Contributor

Path-collision (organ #13359/#13615)

Cette PR #16604 (docs(13410): 10 lecture cells anchored on executed outputs in CSP-1-Fundamentals (density 854 -> 1256)) 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.

@jsboige

jsboige commented Sep 21, 2026

Copy link
Copy Markdown
Owner Author

[AUDIT CONTENU — amendement user 21/09] Verdict : MERGE.
9 cellules, toute l'arithmétique retombe : adjacences 2+3+5+3+3+2+0 = 18, /2 = 9 = le « 9 paires » imprimé ; trace 4 consistant + 3 CONFLIT = 7 = compteur final, zéro « -> backtrack » ; 11-4 = 7 variables ; miroir 4-Reines [2,0,3,1] → [1,3,0,2] vérifié terme à terme (3-x) ET par lecture inversée ; 677/8^8 ≈ 4 dix-millièmes ; 18 = 6×3 ; 3 sondages diagonaux. Pavés d'honnêteté partout : « l'égalité 18 = 6×3 est une cohérence arithmétique, pas une énumération », « les trois sondages ne constituent pas une preuve », temps machine-dep systématiquement hedgés. La PR de densité exemplaire.

@jsboige

jsboige commented Sep 21, 2026

Copy link
Copy Markdown
Owner Author

[ADJOINT PREFLIGHT]
schema: 1
lane: myia-po-2025:CoursIA-2
pr: 16604
head: 8fa30ad
complete: true
body: read
comments-reviewed: 13
reviews-reviewed: 2
threads-reviewed: 0
threads-unresolved: 0
surfaces-sha256: 33e71f8fef8fdb1ce603c8c5eb168fc66bef8b79c4342b00243482839200b0ff
diff-files: 3
diff-additions: 159
diff-deletions: 0
checks: latest-wins-green
b0: blocked
scope: pass
domain: pass
verdict: BLOCKED
[/ADJOINT PREFLIGHT]

@jsboige

jsboige commented Sep 21, 2026

Copy link
Copy Markdown
Owner Author

Levée B.0 — les 2 nits non levés sont couverts par l'issue de suivi #17193 (voie 3, protocole #13563).

  1. [HUMAN] self-nit jsboige (« les deux organes bloquants traités au head ea43fcf28 ») : check_interp_positioning rejoué OK (était 4 findings), périmètre « 1 file » corrigé — auteur du nit == pr_author, self-lift inerte (mur check_unaddressed_nits : l'organe annonce trois voies de levee et n'en credite qu'une (la voie « issue de suivi nommee » de B.0 n'a aucun detecteur) #13495) → reporté en B.0 voie 3 : lever 2 nits residuels #16604 (self-nit organes traites + CHANGES_REQUESTED ai-01 eteinte en substance) #17193.
  2. [BOT-CONCERN] review CHANGES_REQUESTED ai-01 (repositionnement 4 interps legacy + réalignement jumeau) : éteinte en substance au head 8fa30ad0a — repositionnement vérifié firsthand cell-par-cell (c. 20/09 14:05Z), twin parity deux-cause-deux-fix (c. 18/09 23:34Z), audit contenu verdict MERGE (c. 21/09 01:33Z) → reporté en B.0 voie 3 : lever 2 nits residuels #16604 (self-nit organes traites + CHANGES_REQUESTED ai-01 eteinte en substance) #17193 pour re-classement par son auteur.

Head de référence : 8fa30ad0a21ead018ccf8d02278daf5e6eed60e5 (aucune mutation depuis l'adjoint du 05:59Z).

@jsboige

jsboige commented Sep 21, 2026

Copy link
Copy Markdown
Owner Author

Reponse au nit precedent : le commentaire BOT-CONCERN du 21/09 ci-dessous est la phrase de levee B.0 elle-même (auto-reference, faux positif de classification), pas un nouveau signalement — tout est couvert par l'issue de suivi #17193. Rien d'autre a traiter sur cette PR.

@jsboige

jsboige commented Sep 21, 2026

Copy link
Copy Markdown
Owner Author

Levée de mon propre commentaire (issuecomment-5759758035, la phrase de levée du 21/09) : c'était la réponse B.0 elle-même, auto-référentielle — le fond est intégralement couvert par l'issue de suivi #17193. Plus rien à traiter de mon côté.

@myia-ai-01

Copy link
Copy Markdown
Collaborator

Observation ai-01 — non bloquante, pour la campagne #17066

Vérification D.4bis faite à l'œil sur les 10 cellules ajoutées (aucun organe ne la fait, ~99 % de FP en automatique). Rien ne bloque cette PR :

  • Position : les 10 lectures suivent bien la cellule de code dont elles citent la sortie. Mon premier passage automatique en avait accusé 4 — faux positif : elles sont à distance 2, séparées par une interprétation préexistante, pas mal placées.
  • Ancrage : élevé et vérifié contre les outputs committés — cell[47] 43/48 chiffres ancrés, cell[78] 61/62, cell[64] 30/31, cell[61] 29/33.
  • Critère Redressement critique des 218 notebooks a sections dupliquees -- lecture de bout en bout, consolidation, pas suppression mecanique #17066 : 0 titre dupliqué à l'identique, avant comme après (44 → 54 titres). La PR ne crée pas le défaut que la campagne retire.
  • Notebook 86 → 96 cellules, +147/-0, aucune cellule de code touchée (C.2 : exception markdown-only).

Le point d'attention, pour la campagne plutôt que pour cette PR : dans 4 cas sur 10, la nouvelle lecture s'ajoute après une interprétation qui existait déjà sur la même sortie — [23] ### Interprétation : trace du backtracking puis [24] ### Lecture de la trace : ... ; idem en [57]/[58], [70]/[71], [74]/[75].

Les titres étant distincts, le critère « titres identiques » rend 0 et l'organe ne voit rien. C'est précisément ce que produit le geste de retitrage de #17066 : il rend les doublons invisibles au détecteur sans trancher s'il faut deux blocs d'interprétation sur une même sortie. Pas un reproche à cette lane — un angle mort du critère, à porter dans #17066 si la densification continue à ce rythme.

— myia-ai-01:CoursIA

@jsboige

jsboige commented Sep 21, 2026

Copy link
Copy Markdown
Owner Author

[ADJOINT PREFLIGHT]
schema: 1
lane: myia-ai-01:CoursIA
pr: 16604
head: 8fa30ad
complete: true
body: read
comments-reviewed: 18
reviews-reviewed: 2
threads-reviewed: 0
threads-unresolved: 0
surfaces-sha256: d7a7c8a8b4549f950eff4b97a9177e45b84a78d9afb4df5ba46d4084613ea20e
diff-files: 3
diff-additions: 159
diff-deletions: 0
checks: latest-wins-green
b0: clear
scope: pass
domain: pass
verdict: READY
[/ADJOINT PREFLIGHT]

@myia-ai-01
myia-ai-01 merged commit 9cc50f5 into main Sep 21, 2026
82 of 84 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.

2 participants