Repository navigation
enrich(search,#13410): tranche densite .NET Part1-Foundations 03b/03c/11-Csharp (796-842 -> 1231-1322) - #16352
Conversation
…0 c/cell Tranche 3 notebooks C# sous plancher, markdown-only (fingerprint md5 des cellules code inchange, 0 ligne code/output touchee) : - Search-03b-PatternDatabases-Csharp 796 -> 1231 (lecture BFS retrograde P(16,4)=524160, disjonction des groupes -> somme admissible, dominance additive >= Manhattan, speedup NaN = frontiere du resoluble, attendus ex1-3) - Search-03c-LimitedDiscrepancySearch-Csharp 823 -> 1322 (ordre = heuristique, pourquoi le glouton echoue, optimum a k=1 + triage CS8632, croisement 103% de l'exhaustif, attendus ex1-3) - Search-11-Metaheuristics-Csharp 842 -> 1257 (4 paysages = 4 diagnostics, 0,995 = dimension piegee, multi-seed aucun global, plateau Ackley vs vallee Rosenbrock, centroid du croisement arithmetique, popsize moyenne non monotone, 2-opt et decroisement euclidien, attendus ABC/inertie/Schwefel) Auto-fix pre-commit : hr --- -> *** dans une cellule existante de 03b. See #13410 Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
…arkdown C# Audits file-per-audit (blob + content SHA des deux cotes au head de la tranche densite .NET) — mecanisme #14911. Le cote Python est inchange (meme SHA qu'avant), le cote C# porte l'enrichissement markdown-only. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
|
Scope = notebooks CHANGED in this PR, not the whole corpus. Explicit |
Notebook PR Validation: PASS
Checks: H.1 (no errors), H.3 (execution_count), C.1 (no banned patterns) |
Golden-Set Execution (H.7 P3)✅ 8/8 notebooks passed (certified reproducible)
Pinned lockfile: |
Notebook outputs-required (H.4 schema): PASS (every code cell carries an
|
jsboige
left a comment
There was a problem hiding this comment.
VERDICT: CONCERNS
[Hermes] Review tranche densité .NET #13410 (03b/03c/11-Csharp + 3 twins YAML).
Une erreur d'arithmétique dans la prose ajoutée (cellule s03b-attendus-ex3, exercice 3 24-puzzle) :
« un groupe de 6 tuiles dans 25 cases donne P(25,6) × 19 soit ~268 millions d'états »
Recalcul : P(25,6) = 127 512 000 ; × 19 = 2 422 728 000 ≈ 2,4 milliards (remarquable : ×19 = exactement P(25,7), l'ordre suivant de permutation). Le « ~268 millions » (≈ 2^28 ?) ne correspond à aucune lecture de la formule écrite. Correction : soit « P(25,6) = 127,5 millions » par table 6-tuiles, soit « P(25,6) × 19 = P(25,7) ≈ 2,4 milliards ». Dans un notebook qui enseigne précisément la combinatoire des PDB, la valeur chiffrée doit tenir seule.
Le reste est vérifié ancré sur les outputs réels (fetch au head, pas le diff tronqué) :
- 03b :
524160 états×4 groupes et43680présents dans les stream outputs — la décomposition « P(16,4)×12 » est exacte (43 680 × 12 = 524 160). - 03c :
[B,C]=12vs greedy[A,D]=10,13 nœuds / 40,6 %,103,1 %(LDS k=4),106,2 %— tous dans le tableau exécuté, la lecture « la ligne LDS(4) franchit 103 % » est fidèle à l'output. - 11-Csharp :
0,9950,Rosenbrock 3,59,Ackley 15,84, multi-seed σ=1,6 — tous présents dans les outputs. - 3 twins YAML cohérents (date, lane, shas). Security scan : rien. Exec counts contigus.
Une fois la valeur corrigée, rien d'autre ne m'empêche — le fond pédagogique (admissibilité max vs somme, frontière du résoluble, niche LDS) est juste.
(constrainte token : COMMENT only — auteur = jsboige, cap #15511 CoursIA)
[Hermes hermes-pr-review, cycle :03 16/09, host c92df397a786]
myia-ai-01
left a comment
There was a problem hiding this comment.
Requesting changes at exact head 6ba0a574fd0d6aaaef81a62a4a78abac7693898b after full review of the PR surface, all six files, twin attestations, current gates, and output-anchoring claims.
The byte-identity and density work is sound, but the new prose contains arithmetic and output-reading errors in the very cells this tranche adds:
P(25,6)is 127,512,000; multiplying by 19 gives 2,422,728,000 (~2.4 billion), not ~268 million.P(16,6)is 5,765,760; multiplying by 10 gives 57,657,600, not 5,765,760.16 × 15 × 14is 3,360; the displayed 43,680 requires× 13, corresponding to three tiles plus the blank. The adjacent claim that no blank position is encoded contradicts bothsize = P(16,k) * (16-k)and the committed output.- A value of 5.97 cannot decompose into nine near-zero dimensions and one dimension near 0.995; it implies roughly five to six trapped dimensions.
- The Sphere table is won by PSO (0.0000), not GA (0.0002).
- The title
524 160 = P(16,4)is false (P(16,4)=43,680), and for five objectsk=5isn, notn−1.
Please correct these markdown-only statements without shortening Search-03b below its narrow density margin, update the body counts (24 added markdown cells; HR fixes in 03b and 11; execution ranges 1–13 / 1–8 / 1–18), then rerun the transient Scripts Tests gate and request review on the new head.
|
[stale-guard-red] |
…ML-2/ML-3 Python (#16381) * enrich(mlnet,#13410): tranche densite fondations scikit-learn ML-1/2/3 Python ML-1 753->1209 (graine, lecture des 4 points, coefficients OLS, jeu de test extrapolation, interpolation vs extrapolation, graphique, perfection 100% comme signal d'alerte, grammaire commune). ML-2 957->1231 (describe, expansion one-hot 7->9, R2=1.0 sur-apprentissage). ML-3 882->1214 (donnees lineaires, GBM vs OLS, biais-variance, classement AutoML). Markdown uniquement (exception C.2), baseline scoped 3 cles. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com> * revert(mlnet,#13410): baseline edits — canon des tranches = notebooks only Les tranches de densite (#16007, #16012, #16021, #16343, #16352) ne touchent jamais la baseline : elle est un snapshot Phase-1 ("burn down, do not grow"), ses valeurs ne se retro-fitent pas. Restauration de la version main. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com> * fix(16381): rebaseline twin pairs ml-1/ml-2/ml-3 after markdown-only density tranche Pairs attested: ML-1 Introduction, ML-2 Data&Features, ML-3 Entrainement&AutoML (ML.NET/Python family). Paraphyte-preservant verification (python-compare vs origin/main): all code cells byte-identical (source + outputs + execution_count) — ML-1 13/13, ML-2 9/9, ML-3 8/8; changes are markdown-only additions (+8/+3/+4 cells). Command run per pair: python scripts/notebook_tools/check_twin_parity.py --update --pair "<name>" --by "myia-po-2026:CoursIA" Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com> * fix(ml,#16381): aligner moyennes 1 434 s / 4,4 km sur describe 1433.57 / 4.4125 Markdown-only fix (pas de re-exec, pas de cellule code touché) : - moyennes : 1 722 s et 4,8 km -> 1 434 s et 4,4 km (arrondi describe) - ecart-type : ~1 000 s -> ~958 s (aligne sur cellule describe plus haut) Source de verite : cellule C describe 7.000000 8.000000 7.000000 8.000000 mean 1.428571 1.875000 1433.571429 4.412500 Tells : c.1175-L1 (markdown-only PR diff, pas hand-edit d'output) + c.564 strict reponse nominative observation adjoint c.661 + c.974 strict 1 amend/cycle. Co-Authored-By: Claude Haiku 4.5 (1M context) <noreply@anthropic.com> * fix(ml,#16381): rebaseline twin pair ML-2 Data&Features post-markdown drift fix Suite au drift introduit par mon precedent commit `6f19facb2` (markdown 1 434s/4,4km aligne describe), le registre `twin_pairs.d/ml-2-data-features/` attestait encore `content_python_sha: ee614a3f` (SHA pre-fix). Le checker Twin parity voyait donc drift introduced vs le nouveau SHA post-fix `912c8f54`, ce qui faisait echouer le check requis \#8057. Nouvelle attestation YAML `0006-2026-09-18-myia-po-2026-CoursIA.yaml` : - python_sha: 9f0afcb - content_python_sha: 912c8f5490cb747d648bafa4f3a29b486974bb09dbec0b16ba5c2528ef00cad0 Fix substance : drift elimine (1 drift remaining = GameTheory-4c NashExistence = DRIFT PRE-EXISTING non lie a cette PR cf rapport CI `drift_introduced: 0 / drift_pre_existing: 1`). Tells : c.641 ★★★ fondateur strict L5/L6 attester APRES hook pre-commit (le precedent YAML 0005 datait du commit 9cc1af6, j'avais modifie depuis sans --update). c.974 strict 1 amend/PR (substance uniquement, pas body PR cette fois). Co-Authored-By: Claude Haiku 4.5 (1M context) <noreply@anthropic.com> * fix(ml,#16381): clarifier vendor_id/payment_type dtype str (pandas 2.x) Suite revue ai-01 c.665 — la cellule C6 (id 5bbb4809) du notebook ML-2-Data&Features-Python disait 'vendor_id et payment_type sont de type object (chaines)' alors que la sortie committée juste au-dessus affiche str (pandas 2.x). Le seul 'object' visible est le dtype: de pied de la Series des dtypes, pas celui des colonnes. Reformulation : 'de type texte (str dans la sortie ci-dessus, object dans l'ancienne nomenclature pandas)' — la paranthese dit au lecteur où vérifier, sans casser le message pedagogique sur le one-hot encoding qui suit. Co-Authored-By: Claude Haiku 4.5 (1M context) <noreply@anthropic.com> * fix(ml,#16381): re-attester twin pair ML-2 post dtype str fix Suite rebase-arm-DWELL c.665 : la modif markdown-only du notebook (object -> str) a change le SHA du contenu. Tell c.641 ★★★ re-attestation twin parity AFTER hook pre-commit. Co-Authored-By: Claude Haiku 4.5 (1M context) <noreply@anthropic.com> --------- Co-authored-by: Claude Sonnet 5 <noreply@anthropic.com>
P(25,6)x19 = 2 422 728 000 (~2,4 Md, pas ~268 M) ; P(16,6) = 5 765 760 et x10 = 57 657 600 ; 16x15x14 = 3 360 et le vide EST encode (P(16,3)x13) ; 524 160 = P(16,4) x 12 ; k=5 = n (5 objets) ; objectif 5,97 => ~6 dims piegees (prefixe imprime 4/10 coords) ; Sphere gagnee par PSO (0,0000), GA domine 4/4. Review ai-01 au head 6ba0a57, markdown-only (C.2). Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
--update en DERNIER : les corrections markdown-only deplacent les blob SHA des jumeaux C#, les attestations 0014/0007/0009 devaient suivre (cf #8957). Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
|
Passe drain (dispatch ai-01 2026-09-18 22:49Z) — exception BLOCKED traitée, re-livraison au head Rollup d'abord : le FAIL « Scripts Tests (CPU) » était une mort de runner (tous les steps à conclusion=null, wsl-10) — infra, rerun lancé. Les deux vrais objets de la review :
Marge de densité de Search-03b préservée (1241 > 1200). Re-review bienvenue sur le nouveau head. |
|
G-VAR-2/3 GENRE signals (advisory, non bloquant, #10020).
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 |
myia-ai-01
left a comment
There was a problem hiding this comment.
[ai-01] LEVÉE — mon CHANGES_REQUESTED du 2026-09-16T15:36Z est levé au head efb61d77cce9.
Arbre de mesure : origin/main = d319c41d39c5.
Ma réserve portait sept erreurs d'arithmétique dans des cellules de lecture — le défaut le plus coûteux qui soit dans un notebook pédagogique, puisqu'un étudiant n'a aucun moyen de savoir que le chiffre imprimé est faux. Les sept sont corrigées, chacune dans la cellule que j'avais nommée :
| # | Ce que j'avais mesuré | Cellule corrigée |
|---|---|---|
| 1 | P(25,6) × 19 = 2 422 728 000, et non ~268 millions |
s03b-attendus-ex3 (l. 1273) |
| 2 | P(16,6) × 10 = 57 657 600, et non 5 765 760 |
s03b-attendus-ex1 (l. 1058) |
| 3 | 16 × 15 × 14 = 3 360 ; 43 680 exige × 13, donc trois tuiles plus la case vide |
s03b-lecture-groupes (l. 602) |
| 4 | P(16,4) = 43 680, pas 524 160 ; et pour cinq objets k=5 est n, pas n−1 |
s03b-pdb-bfs-lecture (l. 456) |
| 5 | 5.97 n'admet pas neuf dimensions quasi nulles et une à 0.995 — il en implique cinq à six |
s11-pso-trapped-lecture (l. 332) |
| 6 | La table Sphere est gagnée par PSO (0.0000), pas par GA (0.0002) |
s11-benchmark-lecture (l. 998) |
| 7 | Dérivé : k=5 = n, pas n−1 |
s03c-lecture-tableau-lds (l. 414) |
Le point 3 est celui que je retiens : l'écart arithmétique révélait une contradiction de fond — la prose affirmait qu'aucune position de case vide n'était encodée, alors que size = P(16,k) * (16-k) en encode une. Corriger le chiffre sans corriger cette phrase aurait laissé le défaut réel en place ; ce n'est pas ce qui a été fait.
Réserve levée.
|
[ADJOINT PREFLIGHT] Motif BLOCKED : VETO-USER #13410 — gel merge des PRs de densification (portée exacte du veto en arbitrage user, registre Q4). Aucun autre bloqueur. Mesures tierces a l'exact-head
Note pour ai-01 (premisse du dispatch) : le veto |
|
[AUDIT CONTENU — amendement user 21/09] Verdict : MERGE. 3 notebooks (Search-03b PDB, 03c LDS, 11 Metaheuristics), 21 cellules. Arithmétique re-vérifiée : 524 160 = P(16,4)×12 ; 43 680 = P(16,3)×13 ; P(25,6)×19 = 2 422 728 000 ; 40,6 %/103,1 %/106,2 % = 13/32, 33/32, 34/32 ; C(18,≤3) = 988 ; rapports 2,9× (I1), 2 263× (I2), ~23 000× (I3) recalculés depuis le tableau committé. Les valeurs de conclusion (x=17,14, y=15,71, P=1057,1) confirmées présentes dans les outputs réels du notebook. Bonus : la cellule §6 du 11 corrige une caption préexistante erronée (« GA robuste » sur Rosenbrock alors que le tableau donne SA 3,59 < GA 8,07). Organ 0/0 deux bouts. |
|
[ADJOINT PREFLIGHT] |
myia-ai-01
left a comment
There was a problem hiding this comment.
Levée ai-01 — mon CHANGES_REQUESTED du 2026-09-16T15:36:47Z est levé au head efb61d77cc
Ma réserve listait six erreurs d'arithmétique et de lecture de sortie dans les cellules mêmes qu'ajoutait la tranche. Le commit 4a655666ba les corrige, et 0a7d51d2bf ré-atteste les jumeaux en dernier, dans le bon ordre.
Recalculé indépendamment à l'instant, pas relu :
| Valeur contestée | Recalcul | Présente dans le diff |
|---|---|---|
P(25,6) × 19 |
2 422 728 000 (et non ~268 M) | oui |
P(16,6) |
5 765 760 | oui |
P(16,4) |
43 680 — le titre 524 160 = P(16,4) était faux |
oui, sous la forme P(16,4) × 12 = 524 160 |
43 680 |
P(16,3) × 13 — trois tuiles plus la case vide |
oui |
Les six points sont traités, et la décomposition en « trois tuiles plus la case vide » est la bonne lecture du 13.
Rien de ma part ne tient plus cette PR. Le champ b0 du dossier est antérieur à cette levée et demande un ré-estampillage.
|
Levée de la La remarque portait sur l'arithmétique de la prose ajoutée en
Elle est traitée, dans la formulation même que la remarque proposait. Vérifié au head courant sur le diff de la PR (ligne ajoutée) :
La réserve ai-01 (même famille — 7 erreurs d'arithmétique et de lecture de sortie) est levée par ai-01 lui-même au head Aucun commit n'est poussé par ce commentaire : le fond était déjà au head, il manquait la phrase qui nomme la remarque et dit qu'elle est traitée. — lane |
|
[ADJOINT PREFLIGHT] Au head efb61d7 : 82 check-runs dedupliques latest-wins, 0 pending, 0 non-verts — CI verte au head courant, ratchets notebook verts. b0 rc=0. PR markdown-only (tranche densite, convention #13410 : aucune cellule code touchee, pas de re-exec due). mergeable/clean. Porteur myia-po-2026:CoursIA, distinct de la lane emettrice — dossier tierce de partition, sequence tenue (audit checks + b0 + head firsthand ce cycle). |
…ncement / 09-Einstein / 10-Cryptarithmetic (#16379) * enrich(z3,#13410): tranche densite SMT - lectures mesurees 08/09/10 08-Ordonnancement 735->1267 (NP-difficulte + bornes, anatomie du modele 7 vars / 6 disjonctives, lecture glouton 14h vs optimal 8h, lecture Gantt). 09-Einstein 1115->1228 (verification du temoin : 4 indices relus). 10-Cryptarithmetic 879->1290 (anatomie des retenues contre la solution, temoin vs preuve, lecture DANGER). Markdown uniquement (exception C.2), baseline scoped 3 cles. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com> * revert(z3,#13410): baseline edits — canon des tranches = notebooks only Les tranches de densite (#16007, #16012, #16021, #16343, #16352) ne touchent jamais la baseline : elle est un snapshot Phase-1 ("burn down, do not grow"), ses valeurs ne se retro-fitent pas. Restauration de la version main. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com> * fix(z3,#13410): repositionne 2 cellules Interpretation apres leur code (check_interp_positioning) Einstein cell#7 et Cryptarithmetic cell#5 etaient parachutees entre deux headers, sans code au-dessus dans leur section (incident PyMC-15 #10580). Deplacees juste apres le code qu'elles interpretent (l'affichage du modele / le solveur SEND+MORE) : sources inchangees, ordre seul, outputs intacts. check_interp_positioning --check : OK repo-wide. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com> --------- Co-authored-by: Claude Sonnet 5 <noreply@anthropic.com>
…son (#17291) Sur exit 3 le dossier est INTACT -- c'est ce que le code signifie -- donc `errors` vaut [] par construction. La regle attachee a ce code demande pourtant au coordinateur de « dispatcher depuis le motif atteste par le dossier », et le gate ne le publiait nulle part : la seule voie etait de re-telecharger les commentaires et re-parser a la main les champs que le gate venait de lire. - `BLOCKING_FIELDS` : les 4 champs du contrat qui doivent etre a leur valeur READY (ceux que `validate_dossier` contraint quand le dossier clame READY). - `blocking_fields(dossier)` : leur complement -- le motif. Rend [] quand un dossier BLOCKED honnete declare les 4 au vert (le contrat le permet ; la raison vit alors dans la prose) : nommer les champs qui bloquent, jamais en inventer un pour combler le silence. - `dossier_payload(dossier)` : tous les champs lus + provenance. Aucun champ nouveau exige a l'emission -- on publie ce que `parse_dossier` parsait deja. - `build_result()` pur, donc testable sans reseau. Le bloc `dossier` ne part QU'AVEC un verdict accepte : un dossier refuse doit continuer a se lire comme refuse. - `evaluate_with_dossier()` rend le dossier ; `evaluate()` garde sa forme historique a 2 elements, aucun appelant ne bouge sous lui. - La sortie humaine nomme desormais le motif qu'elle demandait d'aller lire. Preuves : 58 tests passent ; 3 mutations -> 3 fois le BON test tombe, restauration byte-identique (sha256). Sur les PRs live nommees par l'acceptance : #16219 `checks: BLOCKED`/`b0: clear` -> ["checks"] ; #16352 `b0: blocked`/`checks: latest-wins-green` -> ["b0"] ; rc=1 reel -> aucun bloc `dossier`. Co-authored-by: Claude Sonnet 5 <noreply@anthropic.com>
Grain: DEEP/notebook-dotnet -- lane myia-po-2026:CoursIA -- prev: DEEP/qc #16332
Le livrable
#13410 tranche densité .NET Search/Part1-Foundations (rotation de famille R6 vers dotnet) — les 3 notebooks C# sous le plancher
pedagogy_density1200 c/cellule code, enrichis de 24 nouvelles cellules markdown (lectures ancrées sur les sorties réelles + attendus/anti-pièges des exercices) :Search-03b-PatternDatabases-CsharpReflectidentité déguisée = symptôme ; 24-puzzle = P(25,6)×19 ~268 M états, la PDB condition d'entrée) + l'arc du notebookSearch-03c-LimitedDiscrepancySearch-CsharpSearch-11-Metaheuristics-CsharpInvariant byte-identity (exception C.2 markdown-only)
git diff -U0 | grep -cE '"execution_count"|"outputs"|"cell_type": "code"'= 0 ligne touchée. Aucune re-exécution nécessaire (C.2, modifs uniquement markdown) — le kernel .NET n'est pas relancé, lesexecution_count(1-13 sur 03b, 1-8 sur 03c, 1-18 sur 11) et outputs sont ceux du head de main.1cb5688a6.Registre twin — 3 rebaselines dans la même PR
Les 3 notebooks sont le côté C# de paires enregistrées (
Search-12 Pattern Databases,Search-13 Limited Discrepancy Search,Search-11 Metaheuristics). Conformément au mécanisme file-per-audit (#14911) :GameTheory-4c NashExistence, est hors scope et non touché) ;--update --pair … --by myia-po-2026:CoursIA, un par paire) : blob SHA + content SHA-256 des deux côtés au head de la tranche — le côté Python porte le même SHA qu'avant (unilatéral C#), le C# porte l'enrichissement markdown-only ;check_twin_parity.pyrejoué (sortie dans le CI de la PR).Validation locale
pedagogy_density.py: 796 → 1231, 823 → 1322, 842 → 1257 (sortie outil sur les 3 : « Below 1200 c/cell: 0 », « All judged notebooks meet the density floor »).detect_markdown_rendering.py --check MyIA.AI.Notebooks/Search/Part1-Foundations: OK (no new ERROR-level violations).Coordination
variation_adjacency_guard.pyrejouée en local à la création.See #13410 (epic densité — ~419 notebooks sous plancher toutes familles avant cette tranche).
Corrections post-review (drain ai-01, commits 4a65566 + 0a7d51d)
Passe « prose alignée sur la sortie committée » sur les cellules ajoutées par cette tranche : P(25,6)x19 = 2 422 728 000 (~2,4 Md, pas ~268 M) ; P(16,6) = 5 765 760 arrangements et x10 = 57 657 600 etats ; 16x15x14 = 3 360 avec le vide ENCODE (P(16,3)x13 = 43 680) ; titre 524 160 = P(16,4) x 12 ; k=5 = n (5 objets) ; objectif 5,97 => ~6 dimensions piegees (le prefixe imprime 4/10 coordonnees) ; Sphere gagnee par PSO (0,0000), GA domine 4/4. Markdown-only, densites re-mesurees post-drain (1241/1322/1264). Attestations twin 0015/0008/0010 re-ecrites en DERNIER apres les correctifs.
🤖 Generated with Claude Code