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