ADR-013: fold the forked substrate into alkstore-sqlite — no fourth crate

Operator review of ADR-012's fork design re-litigated §1's crate
identity. alkstore-substrate misdescribed what the code is (unpublished,
path-dep-only, one consumer, SQLite-only — not a family-wide substrate);
the mechanical-diff hope was gone at fork time regardless (port deltas,
renames, re-derived half); and the alksocks F-1 lesson applies — a
vendored region under a second, weaker instruction set is a defect seam.
The fork folds into alkstore-sqlite as a bounded module subtree
(src/substrate/); ADR-012 §3–§6 retained verbatim, §2 retained with its
enforcement re-sited from the crate graph to diff fence + review +
contract-suite equivalence pins. OQ-11 item (1) dissolved.
This commit is contained in:
glm-5.3-flash committed 2026-10-05 11:56:01 +00:00
1 parent 2949612e2c
commit 8e68b44194
10 files changed
+309 -55

No files matched your search

+27 -18
View File
@@ -18,11 +18,15 @@ fork trigger fired on the published-artifact facts); **the fork
design follow-through** (2026-10-05,
[ADR-012](decisions/012-forked-substrate-design.md) — substrate
boundaries, fidelity posture, port deltas; its substrate-side residue
is OQ-11). Next: OQ-08 (rides the now-pinned trait shape and the
is OQ-11); **the fork packaging folded** (2026-10-05,
[ADR-013](decisions/013-fold-substrate-into-sqlite.md) — no
`alkstore-substrate` crate; the forked machinery is a module subtree of
`alkstore-sqlite`). Next: OQ-08 (rides the now-pinned trait shape and the
ADR-011 substrate fork), OQ-10 (versioning discipline for contract
extensions; note ADR-011 changes its substrate-side facts for SQLite —
the forked crate is versioned in this repository's Cargo workspace, so
the engine/core contract pairing is what the discipline must track), and
the forked machinery lives in-tree inside the engine crate per
[ADR-013](decisions/013-fold-substrate-into-sqlite.md), so the
engine/core contract pairing is what the discipline must track), and
OQ-11 (fork follow-through items — substrate-side, non-consumer-facing).
Resolved questions stay listed with their resolution; they are not
@@ -262,31 +266,36 @@ narrowed to the pinning work its own record already scoped.)*
### OQ-11: Forked-substrate follow-through — scaffold, provenance register, and cherry-pick discipline
- **Origin**: [ADR-012](decisions/012-forked-substrate-design.md)
(the fork design; substrate-side residue), [ADR-011](decisions/011-sqlite-substrate-fork.md)
- **Status**: open
(the fork design; substrate-side residue), [ADR-011](decisions/011-sqlite-substrate-fork.md),
[ADR-013](decisions/013-fold-substrate-into-sqlite.md)
- **Status**: open (reshaped 2026-10-05 by
[ADR-013](decisions/013-fold-substrate-into-sqlite.md) — item (1)
dissolved)
- **Priority**: medium (nothing consumer-facing rides on it; it
resolves within the fork-scaffold task, which it does not gate)
- **Resolution**: open. ADR-012 fixed the *design* (contract-blind
boundary, fidelity posture, port deltas, bootstrap machinery,
upstream-tracking stance) and also pinned the provenance register's
location, timing, and initial contents (§1). The residue is: (1) the
exact Cargo-workspace layout and build wiring of
`alkstore-substrate` in this repository (crate location, feature
gating of the `bundled-sqlite` interplay with the engine crate's own
rusqlite dependency); (2) the provenance register's *format and
delta-list granularity* (per-commit entries vs per-delta-class;
whether cherry-pick records append at adoption time — location,
timing, and initial contents are ADR-012 §1's, not re-opened here);
location, timing, and initial contents (§1, as carried in-tree by
ADR-013). The residue is: (1) **dissolved** by the fold
([ADR-013](decisions/013-fold-substrate-into-sqlite.md)) — there is
no separate substrate crate to wire; the engine crate carries one
rusqlite dependency and no `bundled-sqlite` interplay question;
(2) the provenance register's *format and delta-list granularity*
(per-commit entries vs per-delta-class;
whether cherry-pick records append at adoption time — the register
lives in-tree beside the substrate subtree per
[ADR-013](decisions/013-fold-substrate-into-sqlite.md) §3; its
timing and initial contents are ADR-012 §1's, not re-opened here);
(3) the cherry-pick *procedure* in practice — how a candidate
upstream fix is evaluated, applied, and recorded so ADR-012 §6's
deliberate-work posture stays auditable. These resolve *within* the
fork-scaffold task (its opening section), not before it and not as a
gate on writing it; the scaffold's build wiring depends on (1)'s
outcome.
gate on writing it.
- **Cross-references**: OQ-08 (the contract surface the engine maps
the substrate under), OQ-10 (the substrate is a crate in this
repository's Cargo workspace — its versioning interacts with the
discipline), ADR-011, ADR-012.
the substrate under), OQ-10 (the engine's versioning discipline now
carries the fold's provenance duties in-tree), ADR-011, ADR-012,
ADR-013.
## Deferred / Blocked