0052 auditabilite des sessions du comite d experts
ADR-52 — Auditabilité des sessions du comité d'experts¶
Statut : Décidé (2026-04-09)
Contexte : Le comité d'experts (#476) produit des verdicts advisory qui influencent les décisions d'architecture et de production readiness. Sans traçabilité formelle, il est impossible de retrouver quelles sessions ont contribué à une décision, quels profils d'experts ont été consultés, et avec quelles versions de prompts. L'auditabilité est essentielle pour la reproductibilité et la gouvernance.
Décision : Chaque session du comité d'experts est archivée avec un lien explicite vers l'issue GitHub associée, les versions des profils experts utilisés, et le verdict complet. L'archive est la source de vérité pour les décisions advisory.
Invariants :
- Lien issue obligatoire : chaque session DOIT porter un champ issue_ref (ex: #481) reliant le verdict à l'issue GitHub qui l'a déclenché. Une session sans issue_ref est invalide.
- Versionnement des profils : chaque session DOIT enregistrer la version des prompts experts utilisés (champ expert_versions). Les prompts sont versionnés dans prompt-library/experts/*.yaml via le champ version du frontmatter.
- Archive structurée : les sessions sont stockées dans committee/sessions/ avec le format {session_id}_committee.json. L'index committee/AUDIT_LOG.md est maintenu à jour.
- Retrouvabilité par issue : il DOIT être possible de retrouver toutes les sessions associées à une issue via grep "issue_ref.*#NNN" committee/sessions/*.json ou via l'AUDIT_LOG.
- Immuabilité : une session archivée ne DOIT JAMAIS être modifiée. Les corrections se font via une nouvelle session avec supersedes: "{session_id}".
- Données complètes : chaque session contient : question, artifact_path, expert_opinions (avec dual-LLM consensus), verdict (status/code/reason), timestamps, models utilisés, expert_versions.
- Advisory-only : advisory_only: true et human_review_required: true sont des champs obligatoires. Aucune session ne constitue une autorisation de déploiement.
Fichiers concernés : scripts/expert_committee.py, committee/, prompt-library/experts/*.yaml