Aller au contenu

ADR-007 — Adoption formelle de la charte philosophique v2

Statut

Acceptée


Contexte

Forge a fonctionné depuis ses origines avec un ensemble de principes implicites et une charte documentaire (v1) qui définissait les conventions de rédaction de la documentation.

L'audit de la phase 14 a révélé plusieurs tensions dans le code :

  • Des modules avancés (core/auth/mfa.py, core/workflow/, core/stats/) hébergés dans le core/ alors qu'ils relèvent de modules optionnels.
  • Une API publique exposant du code expérimental ou partiel (OIDC).
  • Deux façons parallèles de faire la même chose (API française legacy, API anglaise moderne) sans cadre de décision explicite.
  • Des exceptions avalées silencieusement (try: log_auth_event(...) except: pass) masquant des problèmes observables.
  • L'absence de règles d'évolution écrites, rendant les décisions architecturales implicites et non opposables.

Ces tensions ont été résolues par les tickets de la phase 14.1, mais sans cadre philosophique formalisé pour les guider. La charte v2 fournit ce cadre.


Décision

La charte philosophique v2 est adoptée formellement comme document de référence de Forge.

Elle remplace la charte documentaire v1 (qui définissait les conventions de rédaction) et étend son périmètre à l'ensemble des décisions d'architecture, de développement et d'évolution du framework.

La charte v2 ajoute par rapport à la v1 :

  • Principe 8 — Noyau minimal, briques opt-in
  • Principe 9 — Pas d'écriture invisible dans le code utilisateur
  • Principe 10 — Une API publique est un contrat de complétude
  • Principe 11 — Une seule façon officielle de faire chaque chose
  • Règles d'évolution A-D — cadre explicite pour gérer les changements
  • Périmètre du noyau — définition canonique de ce qui appartient à core/
  • Formule de décision finale — critère opérationnel pour évaluer toute proposition

La charte v2 est publiée dans CHARTE_DOC.md à la racine du dépôt. La charte v1 est archivée dans docs/history/charte-v1.md.

Toute décision future — ticket, PR, refactoring, extraction de module — doit pouvoir s'appuyer sur un ou plusieurs principes de la charte v2.


Conséquences

  • Les ADR 003 à 006 (langue, périmètre, packaging, Python) s'appuient sur la charte v2 pour leur justification.
  • Les tickets de la phase 14.3 (reconstruction) se réfèrent explicitement aux principes de la charte.
  • Le test garde-fou tests/test_charter_v2_adoption_001.py vérifie la présence et la cohérence des documents fondateurs.
  • Les contributeurs futurs sont invités à lire la charte avant de soumettre une PR.

Ce que cette ADR ne fait pas

  • N'applique pas les décisions des autres ADR (003-006) — ce sont des tickets de la phase 14.3.
  • Ne supprime pas la charte v1 — elle est archivée, pas effacée.
  • Ne définit pas de processus d'amendement de la charte — les amendements futurs feront l'objet de nouvelles ADR.