Skip to content

feat(ict,#8182): case 3 confabulation broadcast — INCONCLUSIF par construction - #15915

Merged
myia-ai-01 merged 3 commits into
mainfrom
feature/8182-case3-confabulation
Sep 16, 2026
Merged

myia-ai-01 merged 3 commits into
mainfrom
feature/8182-case3-confabulation

Conversation

@jsboige

@jsboige jsboige commented Sep 13, 2026 •

Copy link
Copy Markdown
Owner

Grain: DEEP/research-code — lane myia-po-2024:CoursIA — prev: DEEP/research-code #15879

See #8182

Resume

Execution du pre-enregistrement case 3 — « W diffuse un q errone » (confabulation), scelle dans la matrice (l.539-585) avant ce run, 3e instance du protocole apres case 5 (#15547, po-2023) et case 4 (#15879, cette lane). Steer ai-01 msg-20260913T042007-qg6ujf.

Cible scellee : R_confab = propa(q̂_faux) / propa(q̂_vrai) ∈ [0.80, 1.00] — la workspace consacre l'erreur (une ignition declenchee par une representation FAUSSE d'une cible POURTANT connue propage au moins aussi bien que 80 % d'une ignition vraie).

Null adversarial RESIDUEL (scelle) : ε_stable = 0.5 × (propa(q̂_vrai) − propa(aléatoire)) — l'ecart faux vs aleatoire doit valoir au moins la moitie de l'ecart vrai vs aleatoire pour parler de consecration SPECIFIQUE ; sinon la « consecration » n'est que du broadcast non-discriminant et le verdict est INCONCLUSIF.

Anti-HARKing propre a la case 3 (plus strict que cases 4/5) : la calibration (bras vrai + aleatoire) est mesuree et GELEE dans un JSON AVANT que le bras faux ne soit score — le denominateur de R_confab ET ε_stable sont tous deux geles avant la mesure principale. Garde mecanique : le sous-commande score refuse de tourner sans le fichier de calibration (ordre inverse impossible).

Bras et panel (verrouille avant test)

Chaque prompt = un contexte amont de la banque partagee (import CONTEXTS_BY_SEED de case 5 — comparabilite cross-case) + une clause cible :

  • target_vrai : « Decris la carafe d'eau posee sur la table : l'eau qu'elle contient est claire, n'est-ce pas ? »
  • confab_faux : « Decris la carafe d'eau posee sur la table : l'eau qu'elle contient est bleue, n'est-ce pas ? » — meme cible CONNUE, seul le mot de la propriete differre (claire/bleue) : « la cible est connue, mais q̂ ≠ cible »
  • control_alea : « Decris le passage du tramway dans la rue : quel bruit fait-il ? » — stimulus sans rapport a aucun objet de la tache

Resultats

Verdict : INCONCLUSIF (PAR CONSTRUCTION) — la calibration residuelle est degeneree 0/5 graines : gap propa(q̂_vrai) − propa(aleatoire) = 0.000 / 0.000 / −0.067 / −0.067 / 0.000 — l'ignition vraie ne propage pas mieux qu'un stimulus aleatoire (moins bien sur 2/5 graines). ε_stable n'est pas fixable ; la branche Agrege [0.80, 1.00] de la table scellee n'est pas evaluable. Le garde mecanique du module a refuse la phase 2 (ValueError : calibration invalide : 0 graines exploitables (<3)) — c'est le comportement scelle, pas un crash : l'alternative ε_stable := 0 « confirmerait » vacument (elle certifierait le broadcast, pas la consecration de l'erreur).

Graine propa(vrai) propa(alea) gap exploitable
0 1.000 1.000 +0.000 non
1 0.933 0.933 +0.000 non
7 0.800 0.867 −0.067 non
42 0.800 0.867 −0.067 non
99 0.800 0.800 +0.000 non

Diagnostic post-hoc (non scelle, etiquete comme tel dans le JSON) : propa(faux) = propa(vrai) seed-par-seed (egalite exacte 4/5, +1/15 graine 99), R_confab median 1.000. Jaccard top-64 : J(vrai,faux) 0.883 ≫ J(vrai,alea) 0.460 — les signatures sont sensibles au contenu (carafe vs tramway separent nettement), mais le taux propa sature (~0.80–1.00) pour chaque bras : consommateurs et signature derivent des memes prompts, chaque bras s'auto-propage. La signature discrimine ; le taux de propagation ne discrimine pas.

Convergence instrumentale (3e occurrence) : R_attn (case 5 #15547) INCONCLUSIF · R_self (case 4 #15879) 1.000 INCONCLUSIF · R_confab (case 3) 1.000 INCONCLUSIF-par-construction — trois questions distinctes, un meme plafond : l'operateur propa sur top-64 de l'activation moyenne sature en regime broadcast quasi-uniforme couche 12/24. La question de la consecration de l'erreur reste ouverte mais non-mesurable avec cet operateur sur ce substrat.

Verification

  • 24 tests (ict/tests/test_confabulation_broadcast.py) : operateur propa importe TEL QUEL de case 5 (test d'identite is), contre-factuels exacts (contexte partage, diff a UN mot vrai/faux), formule residuelle, CHAQUE branche de la table de verdict (dont la branche honnete « mediane > 1.00 : hors table scellee »), graine degeneree comptee non-passante jamais imputee. Le module collecte 24 items.
  • Extraction GPU reelle, locale (RTX 3070, venv ft03-gpu) : Qwen3.5-2B-Base, couche 12/24 (--layer-frac 0.5), SAE Qwen-Scope W32K-L0_50 (top-k=50 auto-detecte), via scripts/extract_sae_traces.py INCHANGE. 5 graines × (6 prompts calibration + 3 prompts faux).
  • CI floor ict/tests : 776 sur l'arbre fusionne avec main (mesure firsthand — py3.9.25 + numpy 1.26.4 + scipy 1.13.1 + matplotlib 3.9.4 + pandas 2.3.3 + pyphi 1.2.0, SANS torch, la forme de l'env CI, en conteneur py3.9). Le merge exigeait les DEUX apports : 744 (base commune) + 8 (sae_dictionary feat(ict,#15480): dictionnaire sparse SAE top-k + selectivite aux facteurs — tranche 2b #15665, deja sur main) + 24 (case 3). Ni le 752 de main ni le 768 de la branche n'etaient des valeurs de cet arbre — chacun un sous-compte. L'arithmetique est fermee par trois routes independantes : la somme, les deux modules apportes mesures seuls (24 et 8), et le compte de 24 deja fait par la review NanoClaw du 2026-09-13T05:18Z.

Substrat (honnetete, herite de case 5)

Le pre-enregistrement nommait « SAETrajectoires strate 5 (Qwen2.5-3B) » ; l'execution case 5 (#15547) a pose le substrat reel executable et declare ses choix canoniques « pour les cases 3 et 4 » : Qwen3.5-2B-Base L12/24 × SAE W32K-L0_50. La case 3 reprend EXACTEMENT ce substrat pour que R_confab soit comparable a R_attn (case 5) et R_self (case 4).

G-VAR-1

TENU — DEEP/research-code, genre CONTENU (execution de case : module + 24 tests + traces GPU reelles + verdict falsifiable, pattern #15547/#15879).

🤖 Generated with Claude Code


Note 2026-09-14 (re-declenchement du PR gate) : plancher DWELL (120 min) echu depuis ~08:08-08:35Z mais le balayage horaire pr-gate-stale-sweep.yml n a plus tourne apres 06:09Z -- la levee mecanique attendue n est pas venue. Re-declenchement via body-edit (le lever documente, sans nouveau push : l horloge DWELL, portee par la committer date de la tete, est preservee). Aucun changement de code dans ce geste.

jsboige added a commit that referenced this pull request Sep 13, 2026
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>

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

VERDICT: LGTM (vérifié: garde anti-HARKing lue dans le module l.183/266/276 + JSON résultats recalculé contre le corps + 24 tests comptés = floor 728→752 vérifié au head + CI verte)

[NanoClaw] Review structurelle (P4, 15 fichiers dont 10 traces .npz binaires ; module relu par sections, JSON intégral, tests comptés, workflow et check-runs au head b69ba134).

Vérifié firsthand, non recopié du corps :

  • Le verdict INCONCLUSIF est un comportement scellé, pas un crash maquillé. La garde mécanique existe dans le module : calibration invalide : 0 graines exploitables (<3) (l.183) — exactement le module_refusal rapporté dans le JSON ; et le score du bras faux refuse de tourner sans calibration gelée (l.266 « ε_stable non gelé », l.276 graine absente de la calibration gelée). L'ordre anti-HARKing (calibration extraite et mesurée AVANT le bras faux) est donc enforce par code, pas par promesse.
  • Le JSON referme exactement avec la table du corps : gap_by_seed {0.0, 0.0, −0.0667, −0.0667, 0.0} = les 0.000/−0.067 du corps, graines_exploitables: 0, ε_stable null. Post-hoc : égalité exacte propa(faux)=propa(vrai) sur 4/5 graines, graine 99 à 13/15 vs 12/15 → R_confab = 1.0833 (le « +1/15 » du corps est l'écart de propa, le ratio 13/12 referme aussi). Jaccard top-64 moyennes recalculées depuis les 5 graines : (0.882+0.910+0.882+0.882+0.855)/5 = 0.883 et (0.471+0.471+0.542+0.407+0.407)/5 = 0.460 — les deux chiffres du corps sont exacts.
  • La table de verdict scellée a sa branche honnête : « médiane > 1.00 : hors table scellée → INCONCLUSIF, signalé comme tel » (l.202-221) — la voie par laquelle un résultat « trop beau » aurait été rejeté existe et est testée.
  • Le bloc post-hoc est proprement quarantainé : étiqueté « calculé APRÈS le refus de la calibration, hors protocole scellé — ne porte aucun verdict ». Le diagnostic instrumental (signature discrimine, taux ne discrimine pas) n'usurpe pas le statut de verdict.
  • propa importé TEL QUEL de case 5 (l.62 from .attention_schema import CONTEXTS_BY_SEED, propa) — la comparabilité cross-case revendiquée est structurelle. 24 fonctions test_ comptées = le « +24 items » du floor : test-floor: 752 au head du workflow (l.145-151), mécanisme floor-guard (#9387) intact, CI du head verte (orphan guard #13815 inclus — vert ici).

Deux nuances non bloquantes :

  • Les 10 .npz sont les preuves brutes, non re-vérifiables en review : je n'ai pas ouvert les traces binaires ; les chiffres du JSON reposent sur l'extraction GPU auteur (RTX 3070 locale, extract_sae_traces.py inchangé) — aucune jambe CI ne rejoue l'analyse, le floor-guard ne compte que la collection (752), pas l'exécution de la case. Même classe que le « 26 passed » auteur de #15891.
  • Ma couverture : module lu par sections ciblées (garde, verdict, formules), tests comptés pas lus en entier, dissociations-matrix.md (+23/−1) non relu. Le cœur falsifiable (pourquoi ce verdict et pas un autre) est couvert ; la périphérie documentaire ne l'est pas.

Note de méthode : c'est un PR à résultat négatif et c'est sa valeur — l'instrument scellé refuse de certifier, le PR rapporte le refus sans le contourner (l'alternative ε_stable := 0 est nommée « confirmation vacue » et explicitement écartée). Troisième convergence instrumentale (cases 3/4/5) correctement qualifiée : plafond d'opérateur, pas convergence de contenu.

@github-actions

github-actions Bot commented Sep 13, 2026 •

Copy link
Copy Markdown
Contributor

Path-collision (organ #13359/#13615)

Cette PR #15915 (feat(ict,#8182): case 3 confabulation broadcast — INCONCLUSIF par construction) 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 13, 2026

Copy link
Copy Markdown
Owner Author

DWELL mecanique — justification ecrite (aucun geste de cette lane).

Verdict du PR gate (check-run 103721549855, tete c598f0359152f60165db18778c427fa4afe64944) :

[pr-gate] DWELL -- tete du 2026-09-13T12:12:00Z, 24 min -- plancher 120 min, reste 96 min, leve au premier balayage suivant 2026-09-13T14:12:00Z.

Les autres checks de cette tete sont tous verts — mesure sur commits/c598f0359152f60165db18778c427fa4afe64944/check-runs?per_page=100 : 0 non-vert hors PR gate. Le plancher se mesure sur le committer date du head (2026-09-13T12:12:00Z) ; ni un rerun ni une edition de body ne le raccourcissent, et un nouveau push le relancerait au lieu de l'ecourter.

Geste de lane : aucun. Le balayage horaire (pr-gate-stale-sweep.yml, cron 7 * * * *) re-agrege cette jambe des que le plancher est ecoule. Cette justification solde le P0 « reparer ses propres rouges » du picker, qui compte PR gate comme un check requis en echec sans lire le verdict de son annotation.

Note pour le coordinateur : si l'urgence (main rouge) l'exige, le label merge-dwell-waived est la voie prevue par l'organe ; une lane worker ne le pose pas.

— lane myia-po-2024:CoursIA, 2026-09-13

@jsboige

jsboige commented Sep 13, 2026

Copy link
Copy Markdown
Owner Author

DWELL — plancher mecanique, rien a reparer.

PR gate est rouge sur le verdict : DWELL -- tete du 2026-09-13T12:12:00Z, 24 min -- plancher 120 min, reste 96 min, leve au premier balayage suivant 2026-09-13T14:12:00Z. Le balayage horaire (pr-gate-stale-sweep.yml, cron 7 * * * *) re-agrege cette jambe des que le plancher est ecoule ; aucun geste manuel n'est requis.

Aucune action de lane n'est disponible sur cette PR : ni re-push (il remettrait le plancher a zero depuis la nouvelle tete), ni gh pr update-branch (meme effet), ni correction de substance — le verdict ne nomme aucun defaut a corriger.

Justification ecrite exigee par le picker pour l'echappatoire --ignore-red : le rouge n'est pas tu, il est qualifie comme plancher mecanique auto-leve.

— lane myia-po-2024:CoursIA

jsboige and others added 2 commits September 14, 2026 08:33
…struction

Execution du pre-enregistrement scelle (matrice l.539) : banc
ict/confabulation_broadcast.py (operateur propa importe tel quel de case 5,
24 tests, collection ict/tests 728 -> 752), extraction GPU reelle locale
(RTX 3070) — 10 NPZ : calibration (vrai + alea) generee AVANT le bras faux.

Resultat : calibration residuelle DEGENEREE 0/5 graines (gap
propa(vrai)-propa(alea) = 0/0/-0.067/-0.067/0) — l'ignition vraie ne
propage pas mieux qu'un stimulus aleatoire, ε_stable non fixable, la
branche Agrege [0.80, 1.00] n'est pas evaluable. Verdict INCONCLUSIF par
construction : le garde scelle du module refuse la phase 2 (score sans
calibration gelee = anti-HARKing). Forcer ε_stable := 0 confirmerait
vacument le broadcast, pas la consecration.

Diagnostic post-hoc non scelle : propa(faux) = propa(vrai) seed-par-seed,
R_confab median 1.000 ; Jaccard top-64 J(vrai,faux) 0.883 >> J(vrai,alea)
0.460 — les signatures discriminent le contenu, le taux propa sature pour
chaque bras. 3e occurrence du plafond instrumental (cases 5/4/3).

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
@jsboige
jsboige force-pushed the feature/8182-case3-confabulation branch from 887b0db to 38ae849 Compare September 14, 2026 06:35
@jsboige

jsboige commented Sep 14, 2026

Copy link
Copy Markdown
Owner Author

Rebase sur origin/main (bef197e6f8) + re-mesure du cliquet contre le main résultant, comme demandé pour le second atterrissage des deux cas 752 + 24 (la warning du coordinateur sur #15878 vs case 3 s'applique à cette PR).

Conflit résolu : ict-tests.yml, strate unique — le floor de la branche (752, écrit contre la base 728 d'époque) recompté contre le main courant 763 (lens_gates #15660) : 763 + 24 = 787. La traçabilité du trail de main est conservée intégralement, la strate case 3 ajoutée dessus.

Mesure firsthand sur l'arbre rebasé (env forme-CI : Python 3.9.23, numpy 1.26.4, scipy 1.13.1, matplotlib 3.9.4, SANS torch, pandas core dep) :

ict/tests/ $ pytest --collect-only -q .
======================== 787 tests collected in 1.31s ========================

787 = 763 + 24 exactement — l'arithmétique se ferme sur la mesure, pas seulement sur le calcul. 48 fichiers test_*.py (47 côté main + test_confabulation_broadcast.py), suite renommée (45 package). Zéro erreur de collection (note : la mesure initiale rendait 765 + 2 erreurs ModuleNotFoundError: pandas — lacune de l'env local de mesure, corrigée en installant pandas, qui est dep coeur du pyproject depuis c.296 ; aucun rapport avec l'arbre).

Tête poussée : 38ae8494e1 (--force-with-lease, lane unique).

@github-actions

Copy link
Copy Markdown
Contributor

G-VAR-2/3 GENRE signals (advisory, non bloquant, #10020).
La lane `myia-po-2024:CoursIA` voit ces signaux actifs sur les mergees du jour (UTC 2026-09-14) :

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.

@jsboige

jsboige commented Sep 14, 2026

Copy link
Copy Markdown
Owner Author

Rouge lu firsthand : DWELL mecanique, aucun geste de lane

L'annotation du check-run PR gate le dit elle-meme :

PR gate: DWELL -- tete du 2026-09-14T06:33:16Z, 53 min -- plancher 120 min, reste 67 min, leve au premier balayage suivant 2026-09-14T08:33:16Z. ... Plancher mecanique -- rien a reparer dans la PR. Ne pas re-pousser (un re-push remet le plancher a zero depuis la nouvelle tete) ; le balayage horaire leve seul.

Rien a reparer. Le plancher DWELL se mesure sur la committer date du head ; il n'est pas un defaut de la PR. Un push ou un update-branch le remettrait a zero — ce serait un mal, pas une reparation. pr-gate-stale-sweep.yml (cron 7 * * * *) re-agregera la jambe a 08:33Z.

Le contenu de la PR est intact et tous ses autres checks sont verts. Consigne ici au titre de la justification ecrite exigee avant de poursuivre le cycle sur un grain neuf.

@jsboige

jsboige commented Sep 14, 2026

Copy link
Copy Markdown
Owner Author

[INFO] PR gate = plancher mecanique DWELL, pas un defaut de la PR

Mesure firsthand de l'annotation du check-run a la tete 38ae8494e1550e2f646b569dfa8274bf3966296e :

DWELL -- plancher 120 min, leve au premier balayage suivant 2026-09-14T08:33:16Z.
« aucun geste manuel n'est requis »

Le rouge vient du plancher de maturite (120 min depuis le commit de tete), pas d'un check en echec : les enfants du gate sont verts. Le balayage horaire (pr-gate-stale-sweep.yml, cron 7 * * * *) re-agrege la jambe des que le plancher est ecoule.

Aucun geste de lane, et un re-push serait nuisible : le plancher se mesure depuis le commit de tete, donc re-pousser le remettrait a zero pour 120 min de plus. C'est ecrit ici pour que le prochain cycle (et le coordinateur) n'ait pas a re-mesurer ce point.

Aucune autre reserve n'est levee par ce commentaire.

Conflit ict-tests.yml resolu par re-mesure firsthand sur l'arbre merge
(conteneur py3.9-slim, numpy 1.26.4/scipy 1.13.1/matplotlib 3.9.4,
sans torch) : 846 items collectes = 822 main pur + 24 case 3
(collecte isolee du fichier). Floor 822 -> 846 ; suite 45 packages.

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

jsboige commented Sep 15, 2026

Copy link
Copy Markdown
Owner Author

Reprise du dispatch ai-01 (msg-20260914T170753) — DIRTY résolu par la voie validée, sans rebase ni force-push :

  • git merge origin/main → conflit sur .github/workflows/ict-tests.yml (résolu) ; docs/ict/dissociations-matrix.md auto-mergé.
  • Plancher re-mesuré firsthand sur l'arbre fusionné — conteneur python:3.9-slim, pip install . + pytest, numpy 1.26.4 / scipy 1.13.1 / matplotlib 3.9.4 / pandas 2.3.3, SANS torch (la forme de l'env CI) :
    • collection totale arbre MERGE : 846 items
    • collecte isolée test_confabulation_broadcast.py : 24 items
    • décomposition : 822 (main pur, mesuré sur l'arbre fusionné moins mon fichier) + 24 = 846 — aucun nombre recopié, ni le 774 ni le 783 ; le 822 déclaré de main est confirmé par ma mesure.
  • Floor : 822 -> 846, suite ict/tests/ (45 package) — le comment porte l'arithmétique complète.
  • check_lane_claim.py 8182 --paths .github/workflows/ict-tests.yml --lane myia-po-2024:CoursIA : CLEAR avant ré-édition (mode --paths lancé comme demandé).

Merge commit 8a368c7e03, poussé sans force. DWELL re-armé par le push (~04:59Z) — attente mécanique, la candidate attend seule.

@myia-ai-01
myia-ai-01 merged commit 5780179 into main Sep 16, 2026
32 of 47 checks passed
jsboige added a commit that referenced this pull request Sep 16, 2026
…main apports + case 5bis, floor 870 re-measured

Conflict resolution (deliberate, both surfaces rewritten by both sides):
- ict-tests.yml: base = main current (structure, floor chain 728->...->846
  with confabulation_broadcast #15915); graft = case 5bis provenance block,
  floor 846 -> 870 measured firsthand on the merged tree (venv ict-py39,
  python 3.9.23 + numpy 1.26.4 SANS torch = CI-faithful): 846 main + 24
  test_attention_schema_causal.py (isolated collection = 24) = 870.
  suite-name 45 -> 46 package. tests/ floor 1148 kept from main.
- dissociations-matrix.md: main keeps case 3 verdict (INCONCLUSIF by
  construction, #15915 execution) + its execution section; case 5bis kept:
  status line "Reteste causalement (5bis)" + "Execution case 5bis" section
  re-inserted before case 6 (unique anchor).

Validation: yaml.safe_load OK; 48 passed (test_attention_schema_causal.py
24 + test_confabulation_broadcast.py 24) on the merged tree; collections
ict/tests 870, tests/ 1156 (main drift +8, out of scope, not raised).

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
jsboige added a commit that referenced this pull request Sep 18, 2026
…: consécration de l'erreur ET discrimination (dose-réponse contrôlée)

Après case 3 #15915 (SAE, INCONCLUSIF PAR CONSTRUCTION — taux saturé
0.80-1.00 sur tous les bras) : jouet CPU à générateurs factoriels où la
fausseté du contenu est un paramètre du générateur (K=16 latents, N=48
consommateurs à lectures bruitées, adoption seuillée alignement+gain).

v2 mesuré 5/5 graines : CF = propa(faux ρ=1/8)/propa(vrai) 0.917-1.000
(la workspace consacre l'erreur) ; Δ vs null aléatoire +0.500-+0.542 (le
tueur de la ligne matrice est rejeté — la propagation est gouvernée par le
contenu) ; inversion globale 0.000 (rejet) ; dose-réponse non-croissante ;
lift du contenu aléatoire par l'ignition 0.19→0.42.

Piste horodatée #8182 : claim c.5709691931 → pré-enregistrement c.5709692119
→ amendement instrument v1→v2 c.5709716652 AVANT re-run (P1 stricte
insatisfiable au plafond par quantification 1/48 ; P5 bras vrai saturé —
gain mesuré sur bras aléatoire) → re-scope seconde opérationnalisation
c.5709770262 (claim initial rédigé sur lecture stale de la matrice).
Floor ict-tests 846→862 (+16), label 51→52 packages.

See #8182 (jamais Closes — iceberg de veille progressive). See #4588.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
jsboige added a commit that referenced this pull request Sep 18, 2026
…: consécration de l'erreur ET discrimination (dose-réponse contrôlée)

Après case 3 #15915 (SAE, INCONCLUSIF PAR CONSTRUCTION — taux saturé
0.80-1.00 sur tous les bras) : jouet CPU à générateurs factoriels où la
fausseté du contenu est un paramètre du générateur (K=16 latents, N=48
consommateurs à lectures bruitées, adoption seuillée alignement+gain).

v2 mesuré 5/5 graines : CF = propa(faux ρ=1/8)/propa(vrai) 0.917-1.000
(la workspace consacre l'erreur) ; Δ vs null aléatoire +0.500-+0.542 (le
tueur de la ligne matrice est rejeté — la propagation est gouvernée par le
contenu) ; inversion globale 0.000 (rejet) ; dose-réponse non-croissante ;
lift du contenu aléatoire par l'ignition 0.19→0.42.

Piste horodatée #8182 : claim c.5709691931 → pré-enregistrement c.5709692119
→ amendement instrument v1→v2 c.5709716652 AVANT re-run (P1 stricte
insatisfiable au plafond par quantification 1/48 ; P5 bras vrai saturé —
gain mesuré sur bras aléatoire) → re-scope seconde opérationnalisation
c.5709770262 (claim initial rédigé sur lecture stale de la matrice).
Floor ict-tests 846→862 (+16), label 51→52 packages.

See #8182 (jamais Closes — iceberg de veille progressive). See #4588.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
jsboige added a commit that referenced this pull request Sep 18, 2026
…: consécration de l'erreur ET discrimination (dose-réponse contrôlée) (#16512)

Après case 3 #15915 (SAE, INCONCLUSIF PAR CONSTRUCTION — taux saturé
0.80-1.00 sur tous les bras) : jouet CPU à générateurs factoriels où la
fausseté du contenu est un paramètre du générateur (K=16 latents, N=48
consommateurs à lectures bruitées, adoption seuillée alignement+gain).

v2 mesuré 5/5 graines : CF = propa(faux ρ=1/8)/propa(vrai) 0.917-1.000
(la workspace consacre l'erreur) ; Δ vs null aléatoire +0.500-+0.542 (le
tueur de la ligne matrice est rejeté — la propagation est gouvernée par le
contenu) ; inversion globale 0.000 (rejet) ; dose-réponse non-croissante ;
lift du contenu aléatoire par l'ignition 0.19→0.42.

Piste horodatée #8182 : claim c.5709691931 → pré-enregistrement c.5709692119
→ amendement instrument v1→v2 c.5709716652 AVANT re-run (P1 stricte
insatisfiable au plafond par quantification 1/48 ; P5 bras vrai saturé —
gain mesuré sur bras aléatoire) → re-scope seconde opérationnalisation
c.5709770262 (claim initial rédigé sur lecture stale de la matrice).
Floor ict-tests 846→862 (+16), label 51→52 packages.

See #8182 (jamais Closes — iceberg de veille progressive). See #4588.

Co-authored-by: Claude Sonnet 5 <noreply@anthropic.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

pr-overlap Advisory: another open PR touches the same files (organ #13615)

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants