docs/plans/implementation.md records the wave structure (core -> substrate fork || pg engine -> sqlite engine -> contract suite -> release), the decided points (contract-suite layout = option (a), engine-tests vs equivalence-suite split, no CI, mem-engine/fuzzing deferrals surfaced), and the review-gate rhythm. Wave 1 (foundations): workspace scaffold, core errors/validation, value types, trait surface, contract-suite scaffold (+ADR-022), review gate. Wave 2 (substrate fork): fork scaffold/provenance, connection+watcher port, queue-op re-derivation on contract v1, provenance/floor close, review gate.
2.1 KiB
2.1 KiB
id, name, status, depends_on, scope, risk, impact, level, tags
| id | name | status | depends_on | scope | risk | impact | level | tags | |||
|---|---|---|---|---|---|---|---|---|---|---|---|
| fork-substrate-scaffold | Fork scaffold — substrate subtree, provenance register, licenses | pending |
|
narrow | low | component | implementation |
|
Description
Create the fork's home and its provenance apparatus before any code moves (ADR-011, ADR-012 §1 as amended by ADR-013, ADR-018):
alkstore-sqlite/src/substrate/module subtree, wired into the engine crate's module tree (mod substrate;— internal, never re-exported through the engine's public API; ADR-012 §2's contract-blind boundary starts structurally).PROVENANCE.mdat the subtree root per ADR-018: upstream identity (honker-core, checkout/workspace/honker@f4e53c6, packagenode-v0.5.1-10-gf4e53c6), license (MIT OR Apache-2.0), the fork decision citation (ADR-011), and the empty delta register structure (per-delta, category-tagged entries — the categories ADR-018 pins; the port deltas offork-port-deltasare the first entries).- The dual-license notice carried in-tree (MIT OR Apache-2.0 text, per ADR-012 §1's scaffold-time list).
- The substrate's
Cargo.toml-independent posture: the subtree compiles as engine-crate modules; its dependencies (rusqlite) come from the engine crate's manifest.
This task moves no machinery — it establishes where the fork lives, who it is, and how its lineage is tracked, so the port tasks land into a finished frame.
Acceptance Criteria
src/substrate/exists, wired as an internal module, empty or stub content onlyPROVENANCE.mdcomplete per ADR-018 (identity, revision, license, decision citation, delta-register structure)- Dual-license notice in-tree
- Engine crate still compiles; clippy/fmt clean
References
- docs/architecture/decisions/011-sqlite-substrate-fork.md
- docs/architecture/decisions/012-forked-substrate-design.md §1
- docs/architecture/decisions/013-fold-substrate-into-sqlite.md
- docs/architecture/decisions/018-provenance-register-and-cherry-picks.md
Notes
To be filled by implementation agent
Summary
To be filled on completion