ADR 0005: Introduce a Platform Services layer and consolidate reusable services
- Status: proposed (recommendation from the Phase-D review; not yet adopted — no architecture changed)
- Date: 2026-07-05
- Deciders: Azwaan (pending)
- Tags: structure, layering, consolidation, direction-change
This ADR records a recommended architectural direction change surfaced by the Phase-D Architecture Review. It is intentionally left proposed so existing architecture is unchanged. Adopt (or reject) deliberately; if adopted, it refines the layer model established in ADR 0002 / ADR 0003.
Context
The review found that the ecosystem’s reusable capabilities are architecturally sound but mis-placed:
- The domain-agnostic Website Assessment engine lives inside
inexisstudios(a venture marketing site), so consumers (outreachagent) depend on a venture repo for a platform capability (Risk R1). - Opportunity scoring is duplicated (pack score vs
leadplatform’s own), and recommendation logic spans three layers (engine → pack → COP), creating consolidation debt and prospect-facing inconsistency risk (R2). - The Intelligence Platform layer conflates the knowledge platform (FIP) with the evaluation harness (lab), which behaves like a platform service.
- There is no home for platform services, so reusable services are trapped in apps.
Decision (proposed)
- Introduce a
Platform Serviceslayer between Intelligence Products and Ventures/Apps, housing reusable services: Assessment, Opportunity/COP evaluation, Retrieval, and Evaluation (the lab). - Extract the Assessment Service out of
inexisstudiosso consumers depend on a platform-service contract, not a venture repo. - Establish the intelligence pack as the single source of truth for rules and scoring; retire
leadplatform’s parallel opportunity score in favour of consuming the assessment/COP; pin the engine/COP recommendation mapping to the pack version. - Tighten the Intelligence Platform layer to mean knowledge intelligence (FIP); reclassify the lab as a Platform Service (evaluation).
- Design the future Hermes feedback as one-way — publishing a new immutable pack version, never mutating a consumed pack — to prevent a producer/consumer cycle.
Options considered
| Option | Pros | Cons |
|---|---|---|
| A (recommended): Platform Services layer + single source of truth | Frees reuse; clean dependency directions; enables commercialisation; fewer future repos | Requires extraction work; touches multiple repos |
| B: Keep services in apps, document coupling | No refactor | Reuse stays blocked; coupling & duplication compound |
| C: Merge everything into one platform repo | Simplicity | Loses immutability/contract boundaries; couples ventures |
Consequences (if adopted)
- Positive: reusable services get a home; consumers depend on contracts not ventures; one defensible score; ventures become thin compositions (service + pack); a clean base for automation and commercialisation.
- Negative / trade-offs: extraction and migration effort; the layer model gains a layer (7); consumers must be re-pointed from venture APIs to platform-service contracts.
- Affected pages (on adoption): Portfolio Overview layer model,
system-of-systems, the Capability Registry
owners, and
inexisstudios/outreachagent/leadplatformdigests.
Compliance / review
Adopt incrementally, one extraction at a time, each with its own follow-up ADR, preserving the evidence-first philosophy (Principle 8). Until adopted, this ADR remains proposed and the current architecture stands.