Forge Intelligence

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_*_v1not 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:

  1. Gate inputs against FI-local contract + maturity/allowlist.
  2. Execute declarative lmeta steps (validate_inputs, emit_envelope, fan_in, budget_guard).
  3. Reach models/tools only through forge-lcdl substrate references in contract substrate_reuse.
  4. 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_runtime means 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.