Skip to content

CVN-N001-EI-S03 — Verdict closure note (defi_top5 / fold_id=3)

  • Story: CVN-N001-EI-S03 (wp#226, In testingClosed).
  • PR fix: #1093 (squash b84526ee sur main, 2026-05-31T13:46:43Z) — Q1.g harness lgb.Dataset(feature_name=...) + s41_io simplification.
  • Cluster dry-run: SHA 21addbab (head of fix branch), trigger 2026-05-30T20:21Z, all cells settled 23:41Z. 5/5 pins stored cleanly.
  • Précurseurs: PR #1090, RCA §12 (Q1.g resolution).

1. Résultat brut (Loki)

event=s41_group_outcome group=defi_top5 status=INCONCLUSIVE_TOOLING
    systematic_outcome=None conclusive=0/5
    counts={'INCONCLUSIVE_TOOLING': 4, 'BASELINE_LEAK_INFLATED': 1}

Per-cell (post-Q1.g, parquet self-describing, feature_names sémantiques) :

Cell n_features s41_cell_outcome cd_confirmed notes
OPUSDC 316 BASELINE_LEAK_INFLATED False Δ_leak + Δ_cd, AUC-gated
ARBUSDC 318 INCONCLUSIVE_TOOLING False Δ_leak + Δ_cd, AUC-gated
UNIUSDC 317 INCONCLUSIVE_TOOLING False Δ_leak + Δ_cd, AUC-gated
LDOUSDC 319 INCONCLUSIVE_TOOLING False Δ_leak + Δ_cd, AUC-gated
AAVEUSDC 320 INCONCLUSIVE_TOOLING False Δ_leak + Δ_cd, AUC-gated

Gate 2 opportunistic drift event firé sur LDOUSDC seul (1 orphan préexistant, schema-dominated drift — prediction opérateur confirmée).

2. Interprétation méthodologique

2.1 — Les 4× INCONCLUSIVE_TOOLING (ARB/UNI/LDO/AAVE)

Ce ne sont pas des erreurs d'outillage (tooling KO) — c'est le label que le décideur S41 émet quand la règle pré-enregistrée (Δ_leak + Δ_cd, AUC-gated) a tourné et n'a pas atteint le seuil de matérialité pré-enregistré (ΔAUC ≥ +0.02, CI excludes 0). cd_confirmed=False + notes=split/regime ablation: Δ_leak (naive↔purged-WF) + Δ_cd (regime↔purged-WF), AUC-gated.

C'est "non-décidable" — entre SPLIT_STABLE (pas de signal détecté avec power adequate) et INCONCLUSIVE_UNDERPOWERED (power gate failed). Pour S03 pré-enregistré, c'est un verdict scientifique valide mais qui demande une classification ad-hoc.

2.2 — 1× BASELINE_LEAK_INFLATED (OPUSDC)

Finding méthodologique latéral : la baseline naïve d'OPUSDC est artificiellement gonflée par rapport au purged-WF. Pas un verdict sur l'hypothèse S03 (regime vs purged) — un signal sur la validité de la baseline naïve pour cette cellule. À noter à part, peut influencer la lecture des autres cellules du groupe si elles ont une dérive similaire non-détectée.

2.3 — Tension de labeling à résoudre (follow-up séparé)

Le label INCONCLUSIVE_TOOLING couvre actuellement deux états sémantiquement différents : - "Tooling KO" — l'instrument a échoué (cas matin 2026-05-30 sous PR #1090 buggué : feature_names integrity invariant failed: length_mismatch). - "Décideur non-décidable" — la règle scientifique a tourné, n'a pas convergé (cas nuit 2026-05-30 sous Q1.g : Δ_leak + Δ_cd, AUC-gated).

Le décideur devrait émettre INCONCLUSIVE_UNDECIDABLE ou INCONCLUSIVE_UNDERPOWERED quand la règle scientifique a tourné mais n'a pas convergé, distinct du cas où l'outillage a échoué. Refinement de labeling out-of-scope pour cette fermeture, follow-up séparé (issue à ouvrir si pertinent pour les Stories suivantes).

3. Disposition group

Group verdict pour S03 / defi_top5 / fold_id=3 : SPLIT_INCONCLUSIVE_DEFI_TOP5 (conclusive=0/5, scientifiquement-distinct ≠ tooling failure).

Ne ferme pas la question "validation/regime design drive le weak signal vs le model" (C-d/C-c hypothesis) mais ferme la Story sur son scope pré-enregistré : pour defi_top5, fold_id=3, les preuves disponibles ne supportent ni SPLIT_MOVES_VALIDATION ni SPLIT_STABLE.

Pour un verdict plus dur (SPLIT_STABLE), il faudrait : - (a) Revoir le materiality bar (descendre ΔAUC ≥ +0.02 → +0.01, mais power dégradé → INCONCLUSIVE_UNDERPOWERED probable) - (b) Étendre à d'autres groupes pour gagner en puissance (autres cohortes que defi_top5, ou autres folds que 3) - (c) Acceptation BASELINE_LEAK_INFLATED OPUSDC comme contre-indication méthodologique — refactor baseline avant ré-évaluation

Aucune de ces 3 voies n'est dans le scope S03 pré-enregistré. Décisions reportées aux Stories suivantes ou à un re-design pré-enregistré.

4. Validation Q1.g cluster dry-run (rappel pour clôture)

ADR-0093 r2 satisfait sur cette PR : - 5/5 event=s41_feature_names_loaded source=parquet_self_describing avec noms sémantiques (open,high,low,close,volume,...). - 5/5 event=s41_pin_stored avec input_data_sha individuels. - 0 length_mismatch (le bug récurrent depuis PR #1090). - 1× gate2_drift_observation_opportunistic sur LDOUSDC (orphan préexistant, prédit schema-dominated). - event=s41_group_outcome émis proprement par synthesize.

Q1.g a libéré le diagnostic. Avant Q1.g : tooling tuait le diagnostic avant qu'il puisse parler. Après Q1.g : le décideur scientifique S41 émet ses vrais verdicts. 0/5 conclusive est un résultat SCIENTIFIQUE valide, pas une absence de résultat.

5. Actions de fermeture

  • PR #1093 merged (b84526ee sur main).
  • PR #1092 ouverte (ADR-0093 r4 deploy-CI gap).
  • Cluster dry-run validé (Loki events captured + linked in PR description).
  • Cette note de fermeture commitée + linkée depuis wp#226 (à faire au /story-advance).
  • Re-évaluer issue #1091 (probablement close ou downscope significatif sous Q1.g).
  • /story-advance 226 → Closed (opérateur).

6. Ce qui n'est PAS dans cette fermeture

  • Refinement labeling INCONCLUSIVE_TOOLING vs INCONCLUSIVE_UNDECIDABLE — follow-up séparé si pertinent.
  • Verdict scientifique C-d/C-c global (au-delà de defi_top5/fold_id=3) — out-of-scope S03.
  • Investigation OPUSDC BASELINE_LEAK_INFLATED (cause root) — méthodologique latéral.
  • Suite ADR-0093 r4 gap (#1092 ouverte, traitement séparé).
  • Suite #1091 (re-éval post-fermeture S03).