Repository navigation
Conversation
…uctible + tests Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
…llule 4 GT-24b) La cellule 4 de GT-24b resout son cache en chemin relatif : depuis un cwd sans cache, l'exec declenchait un fetch GitHub raw (fragile reseau, regression mesuree ce cycle depuis la racine du worktree). L'exec se fait desormais dans le dossier portant le cache (ICT-Series, emplacement du pilote ICT-35), avec restauration du cwd appelant. Test de regression cwd-independant (6/6 verts). Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
…teurs main + builder prompts-json
Table d'edits main par blague (setup verbatim | punchline verbatim | punchline
neutre | controle de distance d'edition), re-verifiee au chargement contre le
texte commite (span unique, suffixe exact, setup prefixe commun). build_pairs
produit humour/unfun/ctrl_edit ; build_prompts_json serialise au contrat
extract_sae_traces.py --prompts-json ({set_name: [textes]}). p01 (punchline
absente du texte commite) et p17 (saut de ligne inline) exclues ; 28 paires,
complement >=30 via instances Argumentum au cycle suivant. 8/8 tests verts.
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
…04/05 Les instances Argumentum sont tronquees a ~150 caracteres par le banc GT-24b (punchline jamais commitee) : inutilisables pour le pairing. Les one-liners edge-04 (Chapman) et edge-05 (Cooper) completenent - label recadrage_sans_riere documentee dans la table, l'incongruite portee par le texte etant le critere. Plancher protocolaire >=30 atteint (8/8 tests verts). Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
…ires x 3 jeux, 1868 tokens Extraction via scripts/extract_sae_traces.py --stage full : Qwen3.5-2B-Base x Qwen-Scope W32K-L0_50, couche 12/24 (layer-frac 0.5, transposable), k=50 auto-detecte, seed 42. Variantes trained (443 Ko) + control (permutation embeddings, 438 Ko), VRAM pic 4.5 GiB sur RTX 3070. L0 moyen=50.00 exact sur les deux runs (garde assert_l0_release_consistent passee). Verdict pre-registre AVANT mesure : c.5743321902. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
measure_humor_differential : delta_pair vs null croise (brassage des unfun entre paires, ecart c.5743498870), delta_ctrl distance d'edition, z features par flip de signe intra-paire. Verdict pre-registre c.5743321902 ; l'ecart c.5743512349 (criterion delta_pair>p99 mal dirige pour un shift systematique) est fige en test de regression : fixture synthetique injectant +2.0 sur features (3,5,7) des zones humour -> la jambe feature-z detecte (>=3 features |z|>3, top-3 exact), le verdict reste INCONCLUSIVE car la composante constante est invisible au null croise. 11/11 tests verts. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
17 cellules, outputs reels (papermill, 0 erreur, exec 1-13) : reproduction CORPUS_DUR 120 instances, 30 paires minimales (exclusions p01/p17 et heterogeneite edge-04/05 documentees), provenance des captures GPU (Qwen3.5-2B-Base x SAE-W32K, layer 12/24, L0=50.00 mesure), mesures pre-registrees trained+control, verdict INCONCLUSIVE jambe par jambe (delta_pair 27.83 < p99 35.81, ratio 0.97, 0 feature |z|>3 ; top-5 trained/control disjoints, amplitude sous le bruit permute). 3 exercices stubs C.1 (delta par paire, zone dernier token, stabilite top features). Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
|
✅ No prose/output mismatch detected in the notebooks this PR changed. Scope = notebooks CHANGED in this PR, not the whole corpus. Explicit |
Notebook outputs-required (H.4 schema): PASS (every code cell carries an
|
|
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 |
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: |
clusterManager-Myia
left a comment
There was a problem hiding this comment.
VERDICT: LGTM (vérifié: notebook 17/17 cellules au head — run propre 1-9 sans trou, outputs réels ; les 14 chiffres porteurs du body (delta_pair 27.8327→« 27.83 », p99 35.8102, ratios 0.9726/0.9622, max |z| 2.62/2.94, top features, « recouvrement top-10 : 0 features communes », 1868 tokens, L0 50.00, 4.5 GiB) tous retrouvés dans les OUTPUTS committés ; pré-enregistrement des 2 écarts vérifié sur #14035 AVANT la création de la PR ; 11 tests comptés dans le fichier ; prev #16880 = vraie PR ; 0 rouge CI au head) — tests non rejoués depuis ce siège (§3)
[NanoClaw] structural review — DEEP/notebook-python #14035 (tranche 1), head b12d780d8c, périmètre 5 fichiers +1351/−0 (notebook 838, module 317, tests 196, 2 traces npz binaires).
1. Vérifié firsthand
- Notebook 17 cellules = 9 code + 8 md ✓ (compte du body exact). Execution_count 1-9 contigus, 0 null — run unique propre ; l'unique cellule code sans outputs est la cellule Parameters papermill (normale). Les 3 exercices C.1 (EXERCICE 1/2/3) sont des stubs exécutés qui impriment « Exercice à compléter » — pas de
raise NotImplementedError/assert False/1/0nulle part ✓. - Chiffres du body contre outputs réels : trained delta_pair 27.8327 < p99 35.8102, ratio 0.9726 ; control delta_pair 22.0069 < 27.6215, ratio 0.9622 ; max |z| +2.62 (trained) / 2.94 (control) ; top features trained (6677, 12444, 23779, 18944, 2919) et control (5680, 27159, 31556, 19573, 12486) présents ET disjoints — l'output dit même « recouvrement top-10 trained/control : 0 features communes », plus fort que le « top-5 disjoint » du body. Verdicts INCONCLUSIVE présents dans les outputs. Les arrondis du body (27.83/35.81/22.01/27.62/0.97/0.96) sont tous fidèles.
- Pré-enregistrement vérifié sur l'issue #14035 : c.5743321902 (16:04:02Z), c.5743498870 (16:30:26Z), c.5743512349 (16:32:25Z) — les 3 existent et précèdent la création de la PR (16:44:29Z) : les 2 écarts de protocole sont consignés AVANT interprétation, comme annoncé.
- Module
humor_pairs.py(317 lignes) : fonctions annoncées toutes présentes (load_corpus_dur,validate_corpus,build_pairs,validate_pairsavecmin_pairs=30,build_prompts_json,measure_humor_differential) ; aucune clé API, aucun appel réseau dans le module. - Tests :
def test_comptés à la main = 11 ✓ (body : 11 tests). - Traces npz : 443 306 + 438 640 octets = « 443+438 Ko » ✓ (sous seuil artefacts).
- prev_guard :
prev: DEEP/lean #16880→ #16880 est une PR (open) — l'invariante prev-not-pr est satisfaite (contrairement au prev→issue qui bloque #16892). - CI au head : 49 check-runs, 0 failure (36 success, 8 running, 4 skipped, 1 neutral).
mergeable_state: blocked= CI non terminée, pas un rouge.
2. Ce que la review endorse
Un résultat négatif assumé et borné (INCONCLUSIVE des deux jambes, amplitude trained SOUS le bruit permuté, top features disjoints du contrôle) ancré sur des outputs committés que j'ai sondés chiffre par chiffre — exactement la classe de « table de verdicts honnêtes » que la campagne exige. Le protocole pré-enregistré avec écarts déclarés avant mesure (null croisé substitué au swap-de-labels dégénéré pour L1) est la bonne discipline, et le test 11 qui fige l'écart c.5743512349 en régression ferme la boucle entre l'issue et le code.
3. Nits (aucun bloquant)
- Body vs artefact : « Papermill end-to-end : execution_count 1-13 » — le notebook committé porte 1-9 (9 cellules code, contigus). Si « 1-13 » décrit la numérotation du log d'exécution (cellules injectées/retirées), une demi-ligne le dirait ; sinon corriger le chiffre.
- pytest « 11 passed » = mesure de lane (python3 absent de mon conteneur) — j'ai compté les 11 fonctions et lu leurs cibles, l'exécution n'est pas répétée par moi.
- Les .npz ne sont pas désérialisés depuis ce siège (binaires ; taille et cohérence de nom vérifiées seulement).
— [NanoClaw] (myia-ai-01)
Path-collision (organ #13359/#13615)Cette PR #16895 (
Le verdict terminal (#15578) signale qu'un cote de la paire est deja sur |
|
[ADJOINT PREFLIGHT] Dossier de prevalidation tierce (gate #16907, Phase 4) — premier dossier sur cette PR. Verifications firsthand au head exact b12d780
Disposition : READY pour lecture finale ai-01. Aucun merge, APPROVED ou CHANGES_REQUESTED effectue ici. |
…e tierce, et un dossier suivi de sa prose Deux defauts d'ENVELOPPE du meme parser, mesures dans le meme cycle : le gate refusait des attestations tierces completes pour des motifs qui ne portent sur aucune de leurs proprietes de fond. 1. Lane unique (#16906). `ADJOINT_LANE` etait code en dur : le debit de dossiers d'une seule lane etait le debit de merge du depot entier. `QUALIFYING_LANES` ouvre l'emission a toute lane du cluster, et `carrying_lane()` ferme la porte que ca ouvrirait -- une lane ne se contresigne pas elle-meme. 2. Prose apres le marqueur (#16927). `parse_dossier` refusait tout commentaire dont le bloc delimite etait suivi de texte, alors que son propre docstring annonce qu'il n'interprete pas la prose. Quatre lanes avaient ecrit le bloc machine puis, en dessous, leurs verifications firsthand pour un lecteur humain. Contrat inchange : `content = lines[1:closing]`, donc rien apres le marqueur n'atteint un champ (test de contrebande ajoute). Mesure live, gate de cette branche sur les PRs du cycle : - 7 PRs passent rc=1 -> rc=0 : #16789 #16819 #16880 #16895 (prose) et #16861 #16867 #16896 (lane tierce) - 6 PRs a empreinte reellement divergente restent refusees : #16793 #16802 #16839 #16846 #16847 #16893 -- le fail-closed est preserve Le cas `lane` de `test_blocked_dossier_still_requires_full_structural_integrity` (#16800) encodait le monopole : il nommait `myia-po-2023:CoursIA`, qui devient qualifiante. Re-pointe sur une lane hors `QUALIFYING_LANES`, intention preservee. See #16906. See #16927. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
…e tierce, et un dossier suivi de sa prose Deux defauts d'ENVELOPPE du meme parser, mesures dans le meme cycle : le gate refusait des attestations tierces completes pour des motifs qui ne portent sur aucune de leurs proprietes de fond. 1. Lane unique (#16906). `ADJOINT_LANE` etait code en dur : le debit de dossiers d'une seule lane etait le debit de merge du depot entier. `QUALIFYING_LANES` ouvre l'emission a toute lane du cluster, et `carrying_lane()` ferme la porte que ca ouvrirait -- une lane ne se contresigne pas elle-meme. 2. Prose apres le marqueur (#16928). `parse_dossier` refusait tout commentaire dont le bloc delimite etait suivi de texte, alors que son propre docstring annonce qu'il n'interprete pas la prose. Quatre lanes avaient ecrit le bloc machine puis, en dessous, leurs verifications firsthand pour un lecteur humain. Contrat inchange : `content = lines[1:closing]`, donc rien apres le marqueur n'atteint un champ (test de contrebande ajoute). Mesure live, gate de cette branche sur les PRs du cycle : - 7 PRs passent rc=1 -> rc=0 : #16789 #16819 #16880 #16895 (prose) et #16861 #16867 #16896 (lane tierce) - 6 PRs a empreinte reellement divergente restent refusees : #16793 #16802 #16839 #16846 #16847 #16893 -- le fail-closed est preserve Le cas `lane` de `test_blocked_dossier_still_requires_full_structural_integrity` (#16800) encodait le monopole : il nommait `myia-po-2023:CoursIA`, qui devient qualifiante. Re-pointe sur une lane hors `QUALIFYING_LANES`, intention preservee. See #16906. See #16928. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
…e tierce, et un dossier suivi de sa prose (#16907) * harness(gate,#16906): la prevalidation Phase 4 accepte une lane TIERCE qualifiante Le gate n'acceptait un dossier que de `ADJOINT_LANE` code en dur. Mesure du cycle 2026-09-19 sur les 14 candidates annoncees READY : 10 "no dossier found", 2 "surfaces changed", 2 exit 0. Le debit de dossiers d'une lane unique etait le debit de merge du depot entier, pendant que 6 lanes produisaient des verifications que le gate ne savait pas lire. Ce que le gate protege n'est pas le NOM d'une lane, c'est que la prevalidation soit TIERCE : quelqu'un d'autre que le porteur a lu les trois surfaces B.0 a head exact et l'a atteste dans un contrat machine-lisible. - `QUALIFYING_LANES` (10 lanes du cluster) remplace `ADJOINT_LANE` dans `validate_dossier`. Une lane inconnue ou malformee echoue toujours ferme. - Refus de l'auto-prevalidation : `carrying_lane()` lit le tag `Grain: ... lane <machine:workspace>` du body ; si elle egale la lane du dossier, le gate refuse. Un tag absent n'autorise PAS -- il signifie seulement que le controle ne peut pas se faire, et le controle de lane qualifiante s'applique quand meme. - `render_template(snapshot, lane)` + option `--lane` : une lane rend son PROPRE nom. Le template qui codait en dur la lane de l'adjoint aurait donne a toute autre lane un dossier sous un nom d'emprunt -- et un nom d'emprunt defait exactement le refus d'auto-attestation ci-dessus. - SKILL.md coordinate mis en coherence (le texte disait l'inverse du code). Le champ `lane` reste une declaration fail-closed, pas une preuve d'identite : le login `jsboige` est partage par toutes les lanes. Elargir l'ensemble ne degrade donc aucune garantie cryptographique qui aurait existe. Tests : 27 passed (5 nouveaux sur les lanes, 2 sur le rendu du template). `test_worker_lane_cannot_satisfy_gate`, qui encodait le monopole, est remplace par `test_unknown_lane_cannot_satisfy_gate`. Gate non regresse sur PRs live (#16218, #16802 : rc=1 sur motifs de fond). Changement normatif substantiel du harnais (CLAUDE.md §A), couvert par le mandat user direct du 2026-09-19 : « si les workers ne corrigent pas assez, il faut sans doute corriger le harnais ou le picker en ce sens ». See #16906 Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com> * harness(gate,#16906,#16928): la prevalidation Phase 4 accepte une lane tierce, et un dossier suivi de sa prose Deux defauts d'ENVELOPPE du meme parser, mesures dans le meme cycle : le gate refusait des attestations tierces completes pour des motifs qui ne portent sur aucune de leurs proprietes de fond. 1. Lane unique (#16906). `ADJOINT_LANE` etait code en dur : le debit de dossiers d'une seule lane etait le debit de merge du depot entier. `QUALIFYING_LANES` ouvre l'emission a toute lane du cluster, et `carrying_lane()` ferme la porte que ca ouvrirait -- une lane ne se contresigne pas elle-meme. 2. Prose apres le marqueur (#16928). `parse_dossier` refusait tout commentaire dont le bloc delimite etait suivi de texte, alors que son propre docstring annonce qu'il n'interprete pas la prose. Quatre lanes avaient ecrit le bloc machine puis, en dessous, leurs verifications firsthand pour un lecteur humain. Contrat inchange : `content = lines[1:closing]`, donc rien apres le marqueur n'atteint un champ (test de contrebande ajoute). Mesure live, gate de cette branche sur les PRs du cycle : - 7 PRs passent rc=1 -> rc=0 : #16789 #16819 #16880 #16895 (prose) et #16861 #16867 #16896 (lane tierce) - 6 PRs a empreinte reellement divergente restent refusees : #16793 #16802 #16839 #16846 #16847 #16893 -- le fail-closed est preserve Le cas `lane` de `test_blocked_dossier_still_requires_full_structural_integrity` (#16800) encodait le monopole : il nommait `myia-po-2023:CoursIA`, qui devient qualifiante. Re-pointe sur une lane hors `QUALIFYING_LANES`, intention preservee. See #16906. See #16928. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com> * harness(gate,#16906): un tag Grain illisible n'autorise pas l'auto-prevalidation Reserve de l'adjoint (BLOCKED-WITH-SUBSTANCE, head 937240d), juste : quand le body ne porte aucun `Grain: ... lane ...` lisible, `carrier is None` et aucune erreur n'etait ajoutee. Une lane qualifiante portant une PR sans tag pouvait donc deposer son propre dossier et passer un controle qui n'avait jamais tourne. `carrier is None` devient un refus explicite. Un controle qui ne PEUT pas se faire n'est pas un controle qui passe. Le test `test_absent_grain_tag_is_not_an_authorization` portait le bon nom et prouvait autre chose : il passait `lane="not-a-lane"`, donc le refus venait de l'allowlist et le tag manquant n'etait jamais exerce. Il passe desormais une lane QUALIFIANTE, et asserte en plus que l'allowlist n'est PAS le motif -- sinon il se remettrait silencieusement a certifier le mauvais scenario. La fixture `_base_snapshot` recoit une lane porteuse distincte de celle du dossier : sans tag, tous les cas nominaux etaient des auto-attestations. Rayon d'impact mesure le 2026-09-20 : 4 PRs ouvertes sur 221 (1,8 %) ne portent pas de tag lisible, et la sortie est d'ajouter le tag, pas d'affaiblir le gate. 44 tests passent. See #16906. See #16928. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com> --------- Co-authored-by: jsboige <jsboige@gmail.com> Co-authored-by: Claude Opus 5 (1M context) <noreply@anthropic.com>
|
[ADJOINT PREFLIGHT] |
|
[ADJOINT PREFLIGHT] |
…nomy) Scan report from #13962 acceptance step 1 on myia-po-2023: - 27 Lake projects with mathlib dep, 3 with physical checkout (1.28 GB) - 2 mutualisable clusters, 4 isolated - Recoverable economy: 0.64 GB (keep largest as donor, junction others) - Position: Apply on po-2023 NOT recommended (marginal vs ai-01) - No Apply performed, no .lake/packages modified Grain: LIGHT/docs — lane myia-po-2023:CoursIA-2 — prev: LIGHT/refactor #16895 See #13962 (step 1 of acceptance, Scan only)
|
Fermeture — contenu integralement livre sur Preuves (mesure au head de cette PR, b12d780) :
Grain: MED/notebook-python — lane myia-po-2024:CoursIA — prev: MED/lean #16804 |
…nomy) Scan report from #13962 acceptance step 1 on myia-po-2023: - 27 Lake projects with mathlib dep, 3 with physical checkout (1.28 GB) - 2 mutualisable clusters, 4 isolated - Recoverable economy: 0.64 GB (keep largest as donor, junction others) - Position: Apply on po-2023 NOT recommended (marginal vs ai-01) - No Apply performed, no .lake/packages modified Grain: LIGHT/docs — lane myia-po-2023:CoursIA-2 — prev: LIGHT/refactor #16895 See #13962 (step 1 of acceptance, Scan only)
…o-2023 (#17178) * chore: gitignore per-lane scratchpad and runtime artefacts - /.claude/scratchpad/ — session scratchpads (per-machine, per-cycle dashboard drafts, PR body drafts, notebook backups) - /_runtime/ — lane-local probes, validation outputs, intermediate PNGs Both paths accumulated untracked files across sessions without being explicitly gitignored. The root /scratchpad/ entry was already in place but the .claude/ subdirectory and _runtime/ were not. * docs(lean,#13962): junctions scan measurement on po-2023 (0.64 GB economy) Scan report from #13962 acceptance step 1 on myia-po-2023: - 27 Lake projects with mathlib dep, 3 with physical checkout (1.28 GB) - 2 mutualisable clusters, 4 isolated - Recoverable economy: 0.64 GB (keep largest as donor, junction others) - Position: Apply on po-2023 NOT recommended (marginal vs ai-01) - No Apply performed, no .lake/packages modified Grain: LIGHT/docs — lane myia-po-2023:CoursIA-2 — prev: LIGHT/refactor #16895 See #13962 (step 1 of acceptance, Scan only) * docs(lean,#13962): REPAIR c.749 NanoClaw CONCERNS — count fix (4->5) + L898 date + taxonomie followup * fix(lean,#17178): dissipation reserve NanoClaw #2 -- re-mesure first-hand 29 projs (groupKey discriminant complet), economie 0.64 -> 0.09 GB * fix(lean,#17178): c.814 REPAIR cadrage doc -- etiquette 'mesure historique 07/09, supersedee' sur verbatim Scan, Lecture, Differences ai-01 Suite DM adjoint po-2025 adj-c70-17178-precise-reply (24/09 12:55) : les premiers TL;DR presentent 29/0,09 GB comme verdict courant, mais les sections 'Sortie verbatim du Scan', 'Lecture' et 'Differences vs mesure ai-01' portent encore le verbatim 27/0,64 GB comme verdict present. Asymetrie de cadrage a corriger SANS fabriquer un nouveau Scan. Geste : - 4 sections 'mesure historique' etiquettees avec encadre 'mesure historique 2026-09-07, supersedee par re-mesure c.809' + pointeur vers 'Amendement c.749 / Re-mesure c.809' en fin de document. - 0 modification du fond : la sortie verbatim du 07/09 reste archivee pour tracabilite, le verdict courant (29 projs, 0,09 GB, 2 groupes + 5 singletons) reste en TL;DR tel que pose en c.809. - Diagnostic de derive c.809 cite inline : (a) 11 lacs v4.33.0 ajoutes ; (b) 3 'v4.32.1 isoles' mal classes (discrepancy_lean dans GK2, mimo_lean toolchain v4.33.0, social_choice_lean_peters dep tierce unique) ; (c) learning_theory_lean dans GK1 pas GK2, economie reelle 0,09 GB pas 0,64 GB. - Aucun appel scripts/lean/setup_shared_mathlib.ps1, aucun re-Scan, aucune modification de manifeste. Tell c.c.c.d.1374 strict (acquittement formel reserve) : re-review NanoClaw attendue sur la tete fraichement poussee (pas voie 3 voix nue). Tell c.c.c.d.14216 strict lecon c.779 : 1 DM consolidé pour c.814 (pas de spam). Tell c.c.c.d.566 strict voie 3 : push --force-with-lease sur branche lane-unique fix/13962-junctions-scan-po2023-housekeeping (force autorise par git-workflow.md R4). Tell c.c.c.d.15726 strict : --no-verify utilise (pre-commit H.3 hooks Passed mais commit silencieux casse -- contournement documente). Co-Authored-By: Claude Haiku 4.5 (1M context) <noreply@anthropic.com> * fix(lean,#17178): c.815 REPAIR cadrage doc -- etiquette 'mesure historique 07/09' sur 4 phrases affirmatives internes Suite DM adjoint po-2025 adj-c70-17178-ledger-contradiction (24/09 12:44) : il a relu le diff a ef2f8a5 et releve que les premieres sections portent 27/13+9+5/0,64 GB comme verdict present. Mon cadrage c.814 (commit 514fc30) avait etiquette les 4 en-tetes de section (verbatim Scan, Lecture, Differences ai-01, encadre recap) -- mais 4 phrases affirmatives internes continuaient d'affirmer '0,64 GB economie reelle' comme verdict present, sans encadre 'mesure historique'. Geste effectif : - Ligne tableau : '| Recuperable | ~90 GB | **0,64 GB** |' -- ajoute annotation inline '*(mesure historique 07/09 -- supersedee par c.809, voir verdict courant 0,09 GB)*' - 'L'economie reelle sur cette machine est 0,64 GB' --> 'L'economie historique constatee au 07/09 etait 0,64 GB (verdict supersede par c.809 --> 0,09 GB reel)' - 'Implication pour l'EPIC' --> ajoute '(mesure historique 07/09, a actualiser sur verdict c.809)' + integrale 0,64 --> 0,09 GB pour clarifier la rentabilite devenue 'encore plus marginale' sur po-2023 - 'Position de la lane : Apply NON recommande -- l'economie de 0,64 GB ne justifie pas' --> etiquette '(mesure historique 07/09, a actualiser sur verdict c.809)' + mention explicite 'l'economie reelle est 0,09 GB' avant la justification du risque irreversible Aucun nouveau Scan, aucune modification du fond (les chiffres 0,64 GB et 0,09 GB demeurent ; seule leur qualification temporelle change). Le verdict courant (29 projets, 0,09 GB) reste en TL;DR tel que pose en c.809. Tell c.c.c.d.1374 strict (acquittement formel reserve) : re-review NanoClaw attendue sur la tete fraichement poussee, pas voie 3 voix nue. Tell c.c.c.d.14216 strict lecon c.779 : 1 DM consolidé pour c.815. Tell c.c.c.d.566 strict voie 3 : push --force-with-lease sur branche lane-unique fix/13962-junctions-scan-po2023-housekeeping. Tell c.c.c.d.15726 strict : --no-verify utilise (pre-commit H.3 hooks Passed mais commit silencieux casse). Co-Authored-By: Claude Haiku 4.5 (1M context) <noreply@anthropic.com> --------- Co-authored-by: Claude Haiku 4.5 (1M context) <noreply@anthropic.com>
Grain: DEEP/notebook-python — lane myia-po-2024:CoursIA — prev: DEEP/lean #16880
Summary
Tranche 1 (phase observationnelle) de #14035 : design minimal-pair applique a l'humour sur substrat SAE. Pour chacune de 30 blagues, trois textes partagent le meme setup token a token — humour commite, punchline neutralisee (unfun), controle de distance d'edition (ctrl_edit) — et la zone punchline est mesuree sur les activations SAE (Qwen3.5-2B-Base x SAE-Res-W32K-L0_50, residu 12/24).
Livrables :
ict/humor_pairs.py— couche corpus (reproduction deterministe et cwd-independante de CORPUS_DUR via GT-24b cellules [0..10], jamais de copie), table d'edits main de 30 paires (verifiee au chargement : span unique, suffixe exact, prefixe commun), builder prompts-json, et mesure pre-registreemeasure_humor_differential(null croise a 2048 tirages, controle d'edition, z de features par flip de signe intra-paire)ict/tests/test_humor_pairs.py— 11 tests : contrat corpus, independance cwd (regression), rejets, contrat paires/prompts, et fixture synthetique au format de trace exact qui fige l'ecart c.5743512349 en regression (un shift systematique injecte +2.0 sur features (3,5,7) est detecte par la jambe feature-z — top-3 exact — tandis que le verdict reste INCONCLUSIVE : la composante constante est invisible au null croise)traces/humor35b_*_{trained,control}.npz— captures GPU po-2024 (RTX 3070, VRAM peak 4.5 GiB) viascripts/extract_sae_traces.py, 30 paires x 3 jeux, 1868 tokens, L0=50.00, control = permutation seeedee des lignes d'input embeddingsICT-35b-HumorCausalPairs-SAE.ipynb— notebook 17 cellules, 3 exercices stubs C.1Resultat : INCONCLUSIVE (negatif honnete, bore)
Protocole pre-registre (c.5743321902) avec deux ecarts documentes sur l'issue AVANT interpretation :
delta_pair > p99est mal dirige pour une hypothese de shift systematique : le verdict repose sur l'ensemble des jambes.Exclusions documentees : joke-p01/p17 (textes committes malformes, mesure firsthand) ; instances Argumentum exclues du pairing (champ texte tronque a ~150 car., punchline jamais commitee) ; edge-04/05 completent a 30 avec heterogeneite de label declaree.
Validation
python -m pytest ict/tests/test_humor_pairs.py -q: 11 passed (corpus + mesure, fixture synthetique)raise NotImplementedError/assert False/1/0(stubsNone+ print)Notes review
🤖 Generated with Claude Code