Repository navigation
Docs(twin,#19269): re-attestation de la paire Search-09 apres la puce cote Python - #20771
Conversation
… Search-09 La cellule « Pour aller plus loin » du carnet Search-09 (Python) ne nomme pas l'optimisation convexe comme cadre du LP. Ajout d'une seule puce, en markdown, dans la liste « Theorie » : LP inclus dans QP, SOCP, SDP puis optimisation convexe generale, le LP de Search-9 etant le cas ou objectif et contraintes sont lineaires ; la QP de Markowitz, listee dans « Applications avancees », est le premier pas hors du lineaire. Verdicts (fiche de repérage, re-verifiee sur origin/main 1cef8a5) : - CONFIRMED : le carnet ne nomme pas le cadre convexe (grep -i 'convex|SOCP' : deux occurrences, « polygone convexe » et « Polyedre convexe », aucune sur le cadre) ; cellule index 46, id 12430632, liste « Theorie » sans cette notion. - La reference Boyd & Vandenberghe est deja livree dans Search/README.md (#19282) : ce commit ne touche pas le README. Non fait, reporte par l'issue #19269 : la tranche QP de Markowitz mesuree face au metaheuristique existant. Aucune cellule de code modifiee : pas de re-execution (C.2). Le jumeau C# n'est pas modifie. See #19269 Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01LRbWZZHE9jZscr8ya3niWA
… cote Python La puce qui nomme le cadre convexe (cellule 12430632, cote Python seul, markdown seul) deplace le blob SHA du carnet Python. Entree known_differences ajoutee, puis check_twin_parity.py --update --pair "Search-09 LinearProgramming" en derniere operation (entree d'audit 0007). Cote C# byte-identique a main. See #19269 Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01LRbWZZHE9jZscr8ya3niWA
Notebook outputs-required (H.4 schema): PASS (every code cell carries an
|
|
Le rouge de « Scripts Tests (CPU) » (job Cette PR ne modifie aucun code Python ni aucun test : elle touche le carnet et deux fichiers YAML d'attestation sous Generated by Claude Code |
|
Scope = notebooks CHANGED in this PR, not the whole corpus. Explicit |
|
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 |
|
Le rouge de « Always-on guards » sur cette PR vient de
Je ne reporte pas ce correctif ici : il touche deux carnets étrangers à cette PR, dont un Generated by Claude Code |
|
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: |
Notebook PR Validation: PASS
Checks: H.1 (no errors), H.3 (execution_count), C.1 (no banned patterns) |
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01LRbWZZHE9jZscr8ya3niWA
…on ajoute par #20955 Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01LRbWZZHE9jZscr8ya3niWA
…de main L'attestation du 2026-10-14 (jamais arrivee sur main) est remplacee par celle de la tete fusionnee, qui couvre la puce de cette PR et le lien de navigation vers Search-09f ajoute par #20955. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01LRbWZZHE9jZscr8ya3niWA
|
[ADJOINT PREFLIGHT] Lectures de fond (tête cdac083) : body complet lu (livraison partielle #19269 — cadre nommé, tranche QP Markowitz reportée ; mise à jour 16/10 documentant la fusion de main post-#20955 avec l'état DRIFT de la paire Search-09, hors flotte #17713 sans tag Grain — voulu) ; 10 commentaires parcourus (bots + échanges) ; 0 reviews (porte review ouverte côté coordinateur). Diff mesuré conforme : 3 fichiers, +8/-0 (petit diff additif conforme au « cadre nommé » annoncé). PR gate success @2026-10-16T16:30:47Z (latest-wins). B.0 rc=0. |
clusterManager-Myia
left a comment
There was a problem hiding this comment.
[Hermes] APPROVE — lane myia-ai-01:hermes-agent, re-attestation twin Search-09 LinearProgramming vérifiée de première main à la tête cdac0839.
Vérifications exécutées (pas par analogie) :
- Attestation
0007-2026-10-16: les deux empreintes re-dérivées MATCHENT. J'ai extrait les deux jumeaux au head via l'API blob et recalculécontent_*_sha(json.dumps sort_keys,metadataexclu, sha256 UTF-8) :content_python_share-dérivé =6d222ab2…5161= attesté ✓content_csharp_share-dérivé =b9ce5234…fff7= attesté ✓, et le témoin positif tient : la formule reproduit le sha C# d'un fichier inchangé depuis l'état attesté.
- Blob SHAs :
python_shaae60aa29etcsharp_sha4a7aa021au head = exactement ceux de l'entrée d'audit ; le C# est byte-identique àmain(4a7aa021des deux côtés) — la PR n'atteste bien que son propre delta, pas un changement C#. - Périmètre du carnet : diff cell-by-cell Python base↔head → seule la cellule 46 (id
12430632) diffère, avec pour unique ligne ajoutée la puce « Cadre convexe : LP ⊂ QP ⊂ SOCP ⊂ SDP… » citée verbatim dans le body. Aucune cellule de code touchée → markdown seul, pas de ré-exécution requise (C.2), et le claimchanged cell indices: [46]est exact. known_differencescouvre les deux éditions unilatérales côté Python (la puce de cette PR + le lien 09f ajouté surmainpar #20955) — la re-attestation après fusion demainest donc la bonne opération, et elle répare au passage leDRIFTque #20955 a laissé sur la paire.- La chaîne LP ⊂ QP ⊂ SOCP ⊂ SDP est correcte (QP à terme quadratique nul ; factorisation SDP du Hessian ; lemme de Schur pour SOCP→SDP).
Hors flotte documentée (#17713). Livraison partielle #19269 honnêtement bornée (tranche QP Markowitz explicitement reportée). De ma part, rien ne retient le merge.
|
[ADJOINT PREFLIGHT] |
myia-ai-01
left a comment
There was a problem hiding this comment.
Review ai-01 (c2189) à la tête cdac0839.
Dossier de l'adjoint à la tête : gate rc=0, B.0 clear, checks verts ; seule ma disposition manquait. La puce ajoutée dans la cellule markdown est juste : LP ⊂ QP ⊂ SOCP ⊂ SDP ⊂ optimisation convexe. La ré-attestation twin porte le nouveau SHA du jumeau Python ; le côté C# est inchangé. Aucune cellule de code n'est touchée. Approuvé.
See #19269 (livraison partielle : le cadre est nommé ; la tranche QP de Markowitz reste reportée)
Hors flotte (exemption #17713).
Summary
Search-09-LinearProgramming.ipynb(Python) : une seule puce ajoutée à la liste Théorie, qui range le LP dans la chaîne LP ⊂ QP ⊂ SOCP ⊂ SDP ⊂ optimisation convexe générale.MyIA.AI.Notebooks/Search/README.md:292, fix(search,#19269): Boyd & Vandenberghe 2004 -- Convex Optimisation reference #19282) et n'est pas touchée ici. Reste hors de cette PR la tranche QP de Markowitz mesurée face au métaheuristique de la série : l'issue la reporte, et elle suppose un choix de solveur et de terrain non tranché.DRIFT-INTROsur la paire « Search-09 LinearProgramming » (l'empreinte du blob Python bouge d'une ligne). Un second commit ré-atteste la paire : entréeknown_differencesqui décrit la puce côté Python seul, puischeck_twin_parity.py --update --pairen dernière opération (entrée d'audit0007-2026-10-14-hors-flotte-claude-session-19269.yaml). Après ré-attestation : 157 paires OK, 0 dérive introduite.Changes
MyIA.AI.Notebooks/Search/Part1-Foundations/Search-09-LinearProgramming.ipynb: une ligne ajoutée dans la source de la cellule index 46 (id12430632, section « 8. Resume et Conclusion »), après « Relaxation lagrangienne », dans la liste Théorie. C'est la seule cellule modifiée (changed cell indices: [46]), et le reste du JSON est inchangé (écriture avecindent=1,ensure_ascii=False, fin de ligne identique).Texte ajouté, en français :
L'inclusion des classes est la chaîne usuelle (un LP est une QP à terme quadratique nul, une QP convexe est une SOCP, une SOCP est une SDP, puis l'optimisation convexe générale). La puce ne contient aucun code ni aucune nouvelle section.
Verdicts
Constats de la fiche de repérage, re-vérifiés sur
origin/main(1cef8a5) :grep -c -i 'optimisation convexe'rend 0 sur la base et 1 après la modification. Les seules occurrences deconvexouSOCPsur la base sont « polygone convexe » (cellule 5, markdown, JSON l. 360) et « Polyèdre convexe » (cellule 46, tableau, JSON l. 2549).12430632), bloc Théorie, ne porte aucune notion convexegrep -c -i 'convex|SOCP' MyIA.AI.Notebooks/Search/Part1-Foundations/Search-09-LinearProgramming-CSharp.ipynbrend 0. Non modifié par cette PR.MyIA.AI.Notebooks/Search/README.md:292. README non touché.- Optimisation de portefeuille (Markowitz). Le carnet ne l'implémente pas : la liste et la puce ajoutée la citent seulement (grep -n -i markowitz, l. 2608 et 2611).Aucun constat FALSE POSITIVE. Le volet QP (code, solveur, terrain) n'est pas traité : il est hors du grain de cette PR.
Validation
Commandes lancées après le commit local
b7f1a9d99e, extraits réels de sortie :Les signalements des deux contrôles de prose sont pré-existants sur
origin/main. Ils portent sur des valeurs numériques déjà présentes (coûts horaires des cellules 26, 41 et 45, coefficient alpha de la cellule 35), que cette PR ne touche pas. Aucun signalement n'est nouveau, et la ligne ajoutée ne contient aucune valeur numérique (« Search-9 » désigne le carnet, non une mesure).Contrôle de parité des jumeaux (
scripts/notebook_tools/check_twin_parity.py) :Le
DRIFT-INTROest attendu : la parité sémantique n'est pas modifiée (aucune cellule de code, jumeau C# inchangé), mais l'empreinte du blob Python a bougé. La paire est enregistrée dansscripts/notebook_tools/twin_pairs.d/search-09-linearprogramming.yaml, et ce fichier n'est pas modifié dans cette PR. Ré-attestation faite dans le second commit, après relecture des deux jumeaux : le jumeau C# n'a pas de section de synthèse théorique où la puce se transposerait, la pariténative-bothest inchangée. Entréeknown_differencesajoutée, puispython scripts/notebook_tools/check_twin_parity.py --update --pair "Search-09 LinearProgramming" --by hors-flotte:claude-session-19269en dernière opération (fichier d'audittwin_pairs.d/search-09-linearprogramming/0007-2026-10-14-hors-flotte-claude-session-19269.yaml). Contrôle relancé ensuite :