Context
Tree line E1 (#14564 map) — the drift-class ROOT FIX (fable-tier): config.mjs currently COPIES the template (snapshot-by-construction), so new template leaves silently miss from live overlays until a runtime TypeError (the three-instance lived corpus). The graduated OQ3 shape: the template exports an extendable base; the operator overlay becomes the singleton subclass carrying delta-only data — a new template leaf is inherited BY CONSTRUCTION.
The Problem
This is a migration of the config plane's fundamental shape, executed without breaking a single live deployment: existing snapshot-style overlays must keep loading (fail-open) while the new shape becomes the written/documented standard.
The Architectural Reality
GPT's graduation V-B-A grounded buildability at source: src/state/Provider.mjs:98-114 deep-merges data_; ai/ConfigProvider.mjs:90-109 documents hierarchical thin-child composition; ai/config.template.mjs:21-39 declares the singleton shape directly. So: a file-shape/migration leaf, NOT a new Provider world. ADR-0019 is the read-gate (rule 10) and the SSOT this must write INTO. Grace's reviewer hook (OQ2/OQ3 authority) applies.
The Fix
One PR: template exports the base class · a migration script converting an existing overlay to the subclass+delta shape (idempotent, diff-shown-before-write) · loader accepts BOTH shapes with the snapshot path marked deprecated-honest · the three lived drift instances as regression fixtures (E6's seed).
Acceptance Criteria
Out of Scope
Version-stamp canary (E3) · preflight detector (E4) · PR-delta emitter (E5).
Related
Parent #14564 (line E1) · authority: graduated OQ3 + ADR-0019 · DR (#14671) cites · gates E2-E6. Sweeps: 03:47Z clean.
Origin Session ID: fa2a6fd5-7488-4af6-a0d2-3855c86003e4
Retrieval Hint: "template extendable base overlay subclass delta migration root fix"
Context
Tree line E1 (#14564 map) — the drift-class ROOT FIX (fable-tier):
config.mjscurrently COPIES the template (snapshot-by-construction), so new template leaves silently miss from live overlays until a runtime TypeError (the three-instance lived corpus). The graduated OQ3 shape: the template exports an extendable base; the operator overlay becomes the singleton subclass carrying delta-only data — a new template leaf is inherited BY CONSTRUCTION.The Problem
This is a migration of the config plane's fundamental shape, executed without breaking a single live deployment: existing snapshot-style overlays must keep loading (fail-open) while the new shape becomes the written/documented standard.
The Architectural Reality
GPT's graduation V-B-A grounded buildability at source:
src/state/Provider.mjs:98-114deep-mergesdata_;ai/ConfigProvider.mjs:90-109documents hierarchical thin-child composition;ai/config.template.mjs:21-39declares the singleton shape directly. So: a file-shape/migration leaf, NOT a new Provider world. ADR-0019 is the read-gate (rule 10) and the SSOT this must write INTO. Grace's reviewer hook (OQ2/OQ3 authority) applies.The Fix
One PR: template exports the base class · a migration script converting an existing overlay to the subclass+delta shape (idempotent, diff-shown-before-write) · loader accepts BOTH shapes with the snapshot path marked deprecated-honest · the three lived drift instances as regression fixtures (E6's seed).
Acceptance Criteria
Out of Scope
Version-stamp canary (E3) · preflight detector (E4) · PR-delta emitter (E5).
Related
Parent #14564 (line E1) · authority: graduated OQ3 + ADR-0019 · DR (#14671) cites · gates E2-E6. Sweeps: 03:47Z clean. Origin Session ID: fa2a6fd5-7488-4af6-a0d2-3855c86003e4 Retrieval Hint: "template extendable base overlay subclass delta migration root fix"