Repository navigation
Fix(sl,#17793): jumeau C# SL-1 -- exercices dédoublés dans le Bilan + numérotation Exercice 1-3 - #19910
Fix(sl,#17793): jumeau C# SL-1 -- exercices dédoublés dans le Bilan + numérotation Exercice 1-3#19910myia-po-2023 wants to merge 6 commits into
Conversation
…Bilan, numeroter Exercice 1-3
Markdown-only (2 cellules md, aucune cellule code touchee, aucune re-execution due) :
- F1 dedup : la cellule Bilan portait '## Exercices supplementaires' avec les
enonces compresses d''Exercice 2' (Affinage de la frontiere) et d''Exercice 3'
(vote majoritaire), doublons degrades des enonces complets (Etapes + Indices)
qui vivent deja dans les cellules dediees. Un etudiant rencontrait chaque
exercice deux fois. Bloc duplique retire ; les enonces complets restent.
- F2 numerotation : le premier exercice etait non numerote ('## Exercice :')
tandis que les suivants etaient 'Exercice 2/3' -- la sequence desormais
'## 7. Exercices' + '### Exercice 1/2/3' aligne le jumeau Python ('## 10.
Exercices' + '### Exercice N'), et l'enonce d'Exercice 1 decrit maintenant
la tache reelle de son stub (sous-ensemble consistant |G|=|S|=1).
Organes rc=0 : duplicate_sections 0 porteur, split_reading clean,
interp_positioning 0, cell_source_parses 0, nbformat VALID, 10/10 cellules code
exec_count non nul + outputs (C.1/C.2 inchanges).
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
|
[ADJOINT PREFLIGHT] |
Notebook outputs-required (H.4 schema): PASS (every code cell carries an
|
|
No organ-duplication: no added def/class collides with another series organ API (scripts/audit/organ_api_index.yaml). Detector: |
Golden-Set Execution (H.7 P3)✅ 9/9 notebooks passed (certified reproducible)
Pinned lockfile: |
|
Scope = notebooks CHANGED in this PR, not the whole corpus. Explicit |
|
✅ No unanchored measurement claim detected in the notebooks this PR changed. Scope = notebooks CHANGED in this PR, not the whole corpus. The |
|
✅ 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 |
Notebook PR Validation: PASS
Checks: H.1 (no errors), H.3 (execution_count), C.1 (no banned patterns) |
…te Python re-execute (run frais 2026-10-08), cote C# a l'etat main (son PR #19910 atteste apres merge de ce dernier) Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
|
Twin parity SL-1 — attestation délibérément différée (séquencement des deux côtés de la paire). La paire
D'ici là, la jambe La lane revient sur cette PR dès que #19905 est mergé — pas d'action coordinateur attendue au-delà de l'ordre de merge naturel (oldest-first va de soi : #19905 est plus ancienne). |
…ion du jumeau C# Le gate `Twin parity audit (#8057)` refusait la PR : le jumeau C# a ete edite (retrait des exercices dedoubles, numerotation Exercice 1-3), donc son content_sha enregistre ne correspondait plus au carnet a HEAD. Mesure croisee : `origin/main` porte 3 DRIFT pre-existants (Probas-3, Probas-5, Search-03 -- relevent de #8264) ; cette branche en portait 4, le 4e etant SL-1 LogicalLearning, introduit par la PR elle-meme. Le gate le dit nommement et c'est exactement ce que la mesure locale reproduit. Attestation firsthand AVANT rebaseline (cf #8508, L963/L974) : le carnet C# porte desormais exactement 3 sections `### Exercice` (1/2/3), uniques, sans doublon -- conforme a l'intention annoncee par la PR. Ce n'est pas un badge qu'on eteint, c'est une attestation qu'on reecrit apres avoir verifie la propriete que la PR revendique. Sidecar append-only `0008-2026-10-08-myia-po-2023-CoursIA.yaml` (le registre n'est pas reecrit en place). `--update` en DERNIER, aucun strip outille apres (cf #8957). Apres rebaseline le checker rend 4 -> 3 DRIFT, soit le niveau de main. Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
|
Repare (po-2023:CoursIA) -- rebaseline du pair Le gate avait raison, et le diagnostic local le reproduit exactement : Audit firsthand avant rebaseline (#8508, L963/L974) : le carnet C# porte desormais exactement 3 sections Commit 🤖 Generated with Claude Code |
…-2024) apres merge main Le sidecar 0008-2026-10-08-myia-po-2023-CoursIA.yaml collisionnait avec 0008-2026-10-08-myia-po-2024-CoursIA-2.yaml, present sur main. Le job bloquant evalue le ref de merge : _latest_audit (audits[-1], ordre des noms de fichier) retenait l'attestation de po-2024, donc "La PR a introduit 1 paire(s) en DRIFT" alors que l'arbre de travail local rendait drift_introduced: 0. - merge origin/main (jumeau Python re-execute par #19839, sans conflit) - suppression du 0008 collide, --update -> 0009 (index libre, unicite verifiee) - verifie en mode CI : drift_introduced: 0, drift_pre_existing: 3 (#8264) Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
|
Repair twin-parity, 2e passe — la 1re ( Le sidecar produit par Le job bloquant n'evalue pas la tete de la PR mais le ref de merge — donc un arbre que la branche ne contient pas. Dans cet arbre, les deux Preuve du mecanisme : en mode CI, sur l'arbre de travail local, Seconde cause, cumulee : la branche etait en retard sur Dans
Le diff applicatif est inchange : 6 insertions / 15 suppressions, sur des cellules markdown uniquement (aucun code, aucun output touche) — la re-execution C.2 n'est donc pas due. |
|
[ADJOINT PREFLIGHT] |
|
Recoupement sortie/prose (lecon ai-01 03:39Z) : le blob sha du carnet SL-1-Csharp a la tete 1679cf3 = 4e671f1dd28affb7d1fd7cf33451502467a87e28, exactement le csharp_sha du jumeau yaml 0009 pose par la PR — concorde. Le finding crible cell 22 (Bilan 1353->951) est justifie par le marker reecriture-assumee du body (dedup exercices dupliques). |
|
[ADJOINT PREFLIGHT] |
…lls 36/38, exercise-mismatch cell 47) (#19905) * fix(symboliclearning,#17793): SL-1 -- deux findings Hermes (stale-claim cells 36/38, exercise-mismatch cell 47) F1 stale-claim : les cellules 36 et 38 affirmaient que l'ordre des exemples est sans effet ("le mur est atteint quel que soit l'ordre", "pas d'instabilite d'ordre"). Re-mesure first-hand avec le code du carnet lui-meme : CBH sur 20 graines tombe sur DEUX regimes -- 15/20 Hungry=Yes (1 faux positif), 5/20 hypothese vide G0 (6 faux positifs). L'ordre compte ; la stabilite observee sur 3 graines etait un effet d'echantillon. Les deux cellules sont corrigees, et la reserve renvoie a l'Exercice 1, qui porte la mesure. F2 exercise-mismatch : la cellule 47 renvoyait a "l'Exercice 5", qui n'existe pas (le carnet porte les Exercices 1, 2, 4 et 6) ; la cible reelle est "l'Exemple guide 5" (cellule 50). La cellule 38 est une cellule de code : le carnet a donc ete re-execute de bout en bout (C.2) -- 18/18 cellules, 0 erreur. Seule derive hors perimetre, la duree affichee par la cellule 29 (0.02s -> 0.01s). Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com> * fix(symboliclearning,#17793): SL-1 -- re-exec papermill du carnet (bloc metadata frais, ratchet #11155) Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com> * chore(twin-parity,#8057): attestation SL-1 LogicalLearning 0009 -- cote Python re-execute (run frais 2026-10-08), cote C# a l'etat main (son PR #19910 atteste apres merge de ce dernier) Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com> --------- Co-authored-by: jsboige <jsboige@gmail.com> Co-authored-by: Claude Sonnet 5.5 <noreply@anthropic.com>
|
[stale-guard-red] |
|
[ADJOINT PREFLIGHT] |
Conflit add/add sur l'attestation jumeau SL-1 : les deux cotes ajoutaient l'index 0009 avec des SHAs differents. Resolution : l'attestation de main (arrivee par #19905) est conservee telle quelle. La fusion a auto-merge les deux notebooks (python = main 02ec168, csharp = branche 4e671f1) -- une paire que NI l'une NI l'autre des deux attestations 0009 ne decrit. La re-attestation passe donc par le mode outille `--update` (index suivant 0010, cf #8957 : --update en dernier), jamais par un git mv qui enshrinerait une attestation fausse. Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
Le conflit add/add opposait deux attestations d'index 0009 (main via #19905, branche via #19910) aux SHAs differents. Mesure : aucune des deux ne decrit la paire REELLE apres fusion (python = main 02ec168, csharp = branche 4e671f1), donc un git mv aurait enshrine une attestation fausse. Resolution : index 0009 de main conserve, re-attestation par le mode outille `--update` (index suivant 0010, cf #8957 -- --update en dernier). Verifications : check_twin_parity.py --check -> SL-1 OK ; check_twin_index_collisions.py --head HEAD -> VERDICT OK ; test_twin_registry_integrity.py -> 46 passed. Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
|
[ADJOINT PREFLIGHT] |
Grain: MED/notebook-dotnet — lane myia-po-2023:CoursIA — prev: MED/notebook-python #19905
Audit de
SL-1-LogicalLearning-Csharp.ipynb— carnet suivant de la partition #17793 (audit Hermes #17073), aprèsSL-1-LogicalLearning.ipynblivré en #19905. Changement markdown-only dans le carnet (le second fichier du périmètre est l'attestation de parité jumeau, hors carnet) : aucune cellule code touchée, aucune re-exécution due (exception C.2), empreintes des cellules code (source, outputs, execution_count, metadata, id) inchangées.F1 — Exercices dupliqués dans le Bilan (CONFIRMÉ)
La cellule
8b683c65(Bilan) portait un bloc## Exercices supplémentairesavec les énoncés compressés d'« Exercice 2 : Affinage de la frontière » et d'« Exercice 3 : Prédiction par vote majoritaire » — doublons dégradés des énoncés complets (avec Étapes et Indices) qui vivent déjà dans les cellules85dc5cfdet10348024. Une étudiante rencontrait chaque exercice deux fois, la seconde occurrence sans les indices, sous un titre différent (« supplémentaires ») qui suggère du contenu neuf. Bloc dupliqué retiré ; les énoncés complets restent intacts.L'organe
check_duplicate_sectionsrend 0 porteur sur ce carnet avant et après : il ne mesure que la répétition d'un titre à l'identique, et les deux occurrences différaient par le suffixe (« (nettoyage de G et S) ») — le finding vient de la lecture critique, l'organe est aveugle à cette classe (le sien rappelle que zéro finding est nécessaire, jamais suffisant).F2 — Numérotation incohérente des exercices (CONFIRMÉ)
Le premier exercice était non numéroté (
## Exercice : Variantes du domaine restaurant) tandis que les suivants étaient### Exercice 2/3: la séquence implicite 1-2-3 n'était jamais posée, et l'énoncé (« Expérimentez… robustesse ») ne décrivait pas la tâche réelle du stub (FindConsistentSubspace, sous-ensemble de 6-8 exemples avec|G|=|S|=1). Corrigé :## 7. Exercices(la dernière section numérotée était 6bis) +### Exercice 1 : Variantes du domaine restaurant, dont l'énoncé décrit maintenant la tâche du squelette. Cela aligne le jumeau, dont la convention est## 10. Exercices+### Exercice N : ….Non-findings vérifiés (mesure, pas supposition)
ordre|stable|quel que soit|indépendamsur les 23 cellules = 0 occurrence — le jumeau C# n'a jamais porté cette claim.raise NotImplementedError/assert False/1/0; les 3 stubs sont conformes (return null; // TODO etudiant+// Indice+// Etape N).execution_countnon nul + outputs non vides (inchangées par ce diff).Organes (tous rc=0, relancés APRÈS le commit
a609c93268)Portée
See #17793(pasCloses) : cette PR couvre 1 carnet de la partition ; 23 des 28 restent à auditer (checklist du body). Périmètre effectif : 2 fichiers — le carnetSL-1-LogicalLearning-Csharp.ipynb(+6/−15) et son attestation de parité jumeauscripts/notebook_tools/twin_pairs.d/sl-1-logicallearning/0009-2026-10-08-myia-po-2023-CoursIA.yaml(+6/−0) ; changement markdown-only dans le carnet, aucune cellule code touchée.🤖 Generated with Claude Code
md-content-loss: reecriture assumee -- SL-1-LogicalLearning-Csharp.ipynb cell 22 : la section « Exercices supplementaires » retiree est exactement la dedup visee par la PR (Exercices 2-3 dupliques du Bilan, deja livres et renumerotes Exercice 1-3 plus haut) ; diff verifie ligne a ligne contre origin/main, aucune autre perte.