Handbook
ADR-0002: FI ↔ forge-lcdl ownership boundary (thin adapter)
Accepted — Phase 0 correlation audit remediation (2026-07-22).
Updated
Status
Accepted — Phase 0 correlation audit remediation (2026-07-22).
Context
The Human-Life Intelligence Pack v4.1 correlation audit (C-02, C-03, C-06) found conflicting claims about where executable tasks live, whether Forge Intelligence is a second LCDL runtime, and which surface is canonical for manifests, LMETA semantics, LCDL contracts, and generated HTML.
Consumers need one consistent model: forge-lcdl as governed execution substrate; Forge Intelligence as pack policy, knowledge, bindings, DAG composition, and audit projections.
Decision
Adopt the thin-adapter boundary:
| Concern | Canonical owner | Notes |
|---|---|---|
| Intelligence identity, capability meaning, invariant graph | Normative manifest + LMETA (bundles/, wiki/semantic/) |
Immutable vendor bundle; FI indexes |
| Executable I/O contract (FI-local) | forge-intelligence/lcdl/contracts/ |
intelligence_*_v1 — not in forge-lcdl |
| Generic LLM transport, FlowExecutor, operators, retry | forge-lcdl | Reuse; do not fork |
| Domain-agnostic LCDL tasks (≥2 domains) | forge-lcdl contracts/<task_id>/ |
Promotion rule below |
| Pack policy, bindings, DAG, maturity, allowlist | forge-intelligence | packs/, registries/, orchestration/ |
| lmeta unit per capability | forge-intelligence lmeta/units/ |
Declarative adapter steps |
node_executor |
FI adapter only | Loads FI unit + contract; calls substrate via approved interfaces |
| Session machine JSON + human report | FI projection | Non-authoritative; attach to ForgeRun/Lenses SoR |
| Generated handbook HTML | fiw (derived) | Built from fi docs/ |
Forbidden duplication in FI
Forge Intelligence must not implement:
- Direct model HTTP transport (bypassing forge-lcdl tasks/operators)
- A second FlowExecutor or duplicate operator semantics
- Generic retry/backoff policy that belongs in forge-lcdl
- Intelligence-specific contracts inside the forge-lcdl repository
Promotion rule (domain → LCDL core)
A task moves from FI-local lcdl/contracts/ into forge-lcdl only when ≥2 domains
need the same domain-agnostic atom. Until then, contracts stay FI-local.
node_executor semantics
forge_intelligence.orchestration.node_executor is an adapter:
- Gate inputs against FI-local contract + maturity/allowlist.
- Execute declarative lmeta steps (
validate_inputs,emit_envelope,fan_in,budget_guard). - Reach models/tools only through forge-lcdl substrate references in contract
substrate_reuse. - Emit pack-compliant artifact envelopes into the session store.
Sessions are non-authoritative projections — classification, retention, and SoR attachment follow SESSION-DATA-GOVERNANCE.md.
Source-of-truth matrix
| Artifact | Authoritative | Derived / projection |
|---|---|---|
| Pack manifest | bundles/human-life-v4.1-audited/manifests/ |
registries/capability_index.json |
| LMETA semantics | wiki/semantic/ (+ bundle seeds) |
Concept wiki HTML |
| LCDL execution overlay | wiki/execution/ |
Handbook execution pages |
| FI executable contract | lcdl/contracts/<task_id>/ |
Maturity contract field |
| Runtime maturity | registries/capability_maturity.yaml |
NODE-CATALOG.md, intelligence_maturity.yaml |
| Session trace | sessions/<id>/machine/*.json |
human/report.md, fiw pages |
Consequences
- Handbook pages (Architecture, Specific intelligence, Product boundaries, Node runtime) align on one model.
I1_runtimemeans envelope/adapter runtime (contract + fixture evidence), not domain assurance.- Correlation audit items C-02, C-03, C-06 move to resolved when this ADR ships and docs sweep lands.