Context
Leaf 1 of epic #14581 (Convergence-weighted Golden Path), graduated from Discussion #14548 with cross-family [GRADUATION_APPROVED]. This is the foundation leaf: it lays the convergence-snapshot node schema, resolves the self-fulfilling firewall render-target (OQ8), fixes canonical-id provenance (OQ1), and seeds the born-scheduled longitudinal falsifier + risk-node annotation. Leaves 2 (compute) and 3 (render-ledger) build on this substrate. Composable sibling of #14565 (Direction-weighted GP), sharing the EVOLUTION_GOAL schema.
The Problem
Convergence-weighting annotates the goal→sub-goal lattice with how invariant a sub-goal is across imagined futures ("structure not events" — the sub-goals worth doing regardless of which future wins). Before any compute can run, two hazards must be closed at the schema layer:
- Node-identity drift (OQ1). A convergence annotation is meaningless if it floats free of a stable, provenance-carrying canonical id for the goal/sub-goal it annotates. The schema must key every snapshot on a canonical id and record that id's provenance.
- Self-fulfilling contamination (OQ8). If convergence output re-enters the agent future-generation context, convergence becomes a prophecy that fulfils itself. The render-target must resolve to a surface no agent boot-path consumes — decision-support for humans, invisible to generation.
The Architectural Reality
- Owning folder:
ai/services/graph/ — sibling to GoldenPathSynthesizer.mjs, computedGoldenPathRouting.mjs, goldenPathTimestamp.mjs (the existing computed-GP substrate). Joins the established GP compute layer; no new folder.
- New node class: the convergence-snapshot node is a new Native Edge Graph class, so per epic it MUST carry a named ADR-0024 (native-edge-graph-model) decay/protection disposition — as #14565 does for its direction nodes.
- Shared schema:
depends-on #14565's ADR-0024 / ADR-0028 amendments for the shared EVOLUTION_GOAL schema (materializing via #14626 / #14567); aligned-with ADR-0023 (DreamService organism-map fidelity). If those amendments have not merged, this leaf binds against the epic's schema contract and reconciles when they land.
The Fix
In ai/services/graph/:
- Define the convergence-snapshot node schema keyed on canonical goal/sub-goal ids; each node records the annotated canonical id and that id's provenance (OQ1).
- Resolve the render-target (OQ8) to a standalone ledger artifact consumed by no agent boot-path — long-run home a terrain panel in the FM cockpit (a surface agents never boot from); the redaction-filter branch is the reserved fallback, documented not built.
- Carry born-scheduled longitudinal-falsifier metadata on the schema (a re-measurement schedule field, so the convergence claim is falsifiable over time, not a one-shot assertion).
- Carry a risk-node annotation field.
Acceptance Criteria
Out of Scope
- Convergence compute (Leaf 2) and the human-facing render-ledger rendering (Leaf 3).
- The fold-rung deliverable (deliberately gated in the epic).
- FM-cockpit terrain-panel UI (named as home; built with the FM cockpit lane).
Related
Epic #14581 · sibling #14565 (+ its leaf #14626 / #14567 shipping EVOLUTION_GOAL) · source Discussion #14548 · ADR-0023 / ADR-0024 / ADR-0028 · GP substrate ai/services/graph/GoldenPathSynthesizer.mjs.
Decision Record impact
aligned-with ADR-0023; depends-on ADR-0024 (new node class → named decay/protection disposition); depends-on ADR-0028 (via #14565's EVOLUTION_GOAL amendment).
Origin Session ID: 9a6b25ba-1dd8-4269-8fbf-57a461fd0978
Retrieval Hint: "convergence-snapshot canonical-id schema render-target firewall OQ1 OQ8 #14581 Leaf 1"
Context
Leaf 1 of epic #14581 (Convergence-weighted Golden Path), graduated from Discussion #14548 with cross-family
[GRADUATION_APPROVED]. This is the foundation leaf: it lays the convergence-snapshot node schema, resolves the self-fulfilling firewall render-target (OQ8), fixes canonical-id provenance (OQ1), and seeds the born-scheduled longitudinal falsifier + risk-node annotation. Leaves 2 (compute) and 3 (render-ledger) build on this substrate. Composable sibling of #14565 (Direction-weighted GP), sharing theEVOLUTION_GOALschema.The Problem
Convergence-weighting annotates the goal→sub-goal lattice with how invariant a sub-goal is across imagined futures ("structure not events" — the sub-goals worth doing regardless of which future wins). Before any compute can run, two hazards must be closed at the schema layer:
The Architectural Reality
ai/services/graph/— sibling toGoldenPathSynthesizer.mjs,computedGoldenPathRouting.mjs,goldenPathTimestamp.mjs(the existing computed-GP substrate). Joins the established GP compute layer; no new folder.depends-on#14565's ADR-0024 / ADR-0028 amendments for the sharedEVOLUTION_GOALschema (materializing via #14626 / #14567);aligned-withADR-0023 (DreamService organism-map fidelity). If those amendments have not merged, this leaf binds against the epic's schema contract and reconciles when they land.The Fix
In
ai/services/graph/:Acceptance Criteria
ai/services/graph/, keyed on canonical goal/sub-goal ids; each node records the annotated canonical id + its provenance (OQ1).EVOLUTION_GOALbinding declared against #14565's amendments; if unmerged, stubbed against the epic schema contract with a reconciliation note.Out of Scope
Related
Epic #14581 · sibling #14565 (+ its leaf #14626 / #14567 shipping
EVOLUTION_GOAL) · source Discussion #14548 · ADR-0023 / ADR-0024 / ADR-0028 · GP substrateai/services/graph/GoldenPathSynthesizer.mjs.Decision Record impact
aligned-with ADR-0023;depends-on ADR-0024(new node class → named decay/protection disposition);depends-on ADR-0028(via #14565'sEVOLUTION_GOALamendment).Origin Session ID: 9a6b25ba-1dd8-4269-8fbf-57a461fd0978 Retrieval Hint: "convergence-snapshot canonical-id schema render-target firewall OQ1 OQ8 #14581 Leaf 1"