Skip to content

0023 feature retrieval must be version pinned fail fast

ADR-23 — Feature retrieval must be version-pinned (fail-fast)

Statut : Décidé (issue #333 R1, 2026-03-26)

Contexte : Le système utilisait 7 fallbacks pour récupérer les features d'un modèle, dont des heuristiques (date du jour, parsing de nom, introspection modèle). Cela introduisait du non-déterminisme et des dérives silencieuses de features, rendant tout audit discriminant (#380) impossible.

Décision : Seules les sources versionnées et contractuelles sont autorisées pour le feature retrieval.

Sources autorisées : 1. JSON versionné (data/model_features/{model}_v{version}.json) 2. Tags MLflow de la version spécifique

Invariants : - JAMAIS de fallback sur un fichier non-versionné (latest.json) - JAMAIS d'introspection modèle (feature_names_, feature_names_in_) - JAMAIS de cache basé sur datetime.now() ou stratégie devinée - Si aucune source version-pinned n'est disponible → RuntimeError (fail-fast) - Un backtest avec des features non vérifiées est interdit

Fichiers concernés : src/backtest/cvntrade_backtest_data_loader.py