labfy-investigation/docs/architecture/decisions/0003-controlled-polyglot.md
fy59 d65f9559e6 chore(checkpoint): preserve local investigation workbench
Preserve the local graph-first investigation stack through macro V1.

Include reviewed source, tests, contracts, documentation and synthetic assets.

Retain the standalone financial V21 test foundation without runtime migration.

Runtime remains V20; operational JobStore remains V3.

Local experimental checkpoint, not a stable release.
2026-09-27 08:34:46 +02:00

44 lines
1.8 KiB
Markdown

# ADR-0003 — Réutilisation et polyglottisme contrôlé
- **Statut :** accepté pour la cible
- **Date :** 2026-09-25
- **Portée :** critères de choix technologique
## Contexte
Le cœur C17 contient des modèles, DAO, services, migrations et parcours GTK
utiles. Les outils spécialisés et un futur frontend peuvent employer d'autres
technologies plus adaptées. Une réécriture de principe ferait perdre des
contrats déjà testés ; une intégration sans limites compromettrait sécurité et
reproductibilité.
## Décision
Conserver le cœur C17 utile et extraire progressivement ses responsabilités.
Autoriser Python, JavaScript/TypeScript, SQL, CLI, bibliothèques et API HTTP
lorsque fiabilité, isolation, licence, maintenance et coût d'intégration sont
documentés. Les composants communiquent par des contrats versionnés ; aucun
adapter ne dépend de l'UI ni ne publie directement dans SQLite.
## Conséquences
- Make reste la chaîne `CURRENT` ; J0 n'ajoute ni Node/npm, ni Meson, ni Docker ;
- les outils absents rendent une capability indisponible, sans installation
silencieuse ;
- les sorties non fiables sont bornées, conservées comme brut puis normalisées ;
- les versions, paramètres expurgés, erreurs et transformations participent à
la provenance.
## Alternatives examinées
- **tout réécrire en C :** rejeté lorsque des outils matures apportent une
solution mieux maintenue ;
- **tout réécrire autour du frontend :** rejeté, car l'UI ne doit pas devenir
propriétaire des contrats métier ;
- **ABI de plugins dynamiques immédiate :** reportée : un contrat de processus
ou HTTP versionné est plus simple à isoler et à faire évoluer au départ.
## Révision
Chaque intégration est réévaluée si sa licence, sa maintenance, ses conditions
d'usage, sa surface réseau ou son coût de confinement ne sont plus acceptables.