Voir aussi : ADR-003 — Shared kernels secondaires · Retour à l'index
ADR-005 — Famille Tools.* hétérogène : Tools.Web et Tools.EventHub dépendent de Application
Statut : Accepté · Date : 2026-06 · Portée : Orkeon.Tools.Web → Orkeon.Application ; Orkeon.Tools.EventHub → Orkeon.Application
Contexte
La famille de paquets d'outils Tools.* n'est pas homogène dans ses dépendances :
- Quatre paquets (
Tools.Code,Tools.Data,Tools.FileSystem,Tools.Analysis) se contentent deOrkeon.Tools.Abstractions(+ abstractions), conformément au profil attendu : un outil ne devrait dépendre que des contrats d'outils et duDomain. - Deux paquets (
Tools.WebetTools.EventHub) montent jusqu'àOrkeon.Application.
Cette asymétrie peut surprendre un contributeur qui s'attend à ce que tous les paquets Tools.*
partagent le même socle de dépendances.
Décision
Accepter et documenter que Tools.Web et Tools.EventHub dépendent de Application, parce que
leurs outils ont besoin de services applicatifs (ports/use cases) que Tools.Abstractions seul
n'expose pas — par exemple la coordination de tâches, les canaux A2A, ou des services de
contexte applicatif.
Le sens de dépendance reste correct : Tools.Web/Tools.EventHub sont des paquets périphériques qui
dépendent de Application (couche interne), et non l'inverse. Aucun cycle, aucune inversion.
Alternatives rejetées
- Forcer tous les
Tools.*à ne dépendre que deTools.Abstractions. Rejeté : cela exigerait de dupliquer ou de remonter dansTools.Abstractionsdes contrats applicatifs qui n'ont pas leur place dans un paquet d'abstractions d'outils pures, ou d'introduire des indirections artificielles. - Déplacer
Tools.Web/Tools.EventHubhors de la familleTools.*. Rejeté : ce sont bien des fournisseurs d'outils ; leur place dans la nomenclatureTools.*est cohérente côté découverte et packaging.
Conséquences
- Positif : la règle implicite « un paquet
Tools.*peut dépendre deApplicationquand ses outils requièrent des services applicatifs » est désormais explicite. Les revues n'ont plus à trancher ce cas au coup par coup. - Vigilance : préférer dépendre de
Tools.Abstractionsseul tant qu'un outil n'a pas de besoin applicatif avéré ; ne remonter versApplicationque sur nécessité documentée.
Amendement (2026-08-23)
La répartition des packages du Contexte a dérivé — exactement la dérive que la
clause de Vigilance existe pour consigner. État courant : seul Tools.Code colle
encore au profil « abstractions seulement » parmi les quatre listés à l'origine.
Tools.Data, Tools.FileSystem et Tools.Rag référencent désormais le concret
Orkeon.Rag (pour les outils de recherche adossés au RAG), qui référence lui-même
Orkeon.Application (amendement ADR-006 du 2026-07-25) — ils atteignent donc
Application transitivement ; Tools.Analysis référence le concret
Orkeon.Analysis. La décision elle-même est inchangée : monter est légitime quand
c'est documenté, et l'ADR-006 documente les couplages RAG.