--- id: fork-substrate-scaffold name: Fork scaffold — substrate subtree, provenance register, licenses status: pending depends_on: [scaffold-workspace] scope: narrow risk: low impact: component level: implementation tags: [wave-2, substrate] --- ## 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.md` at the subtree root per ADR-018: upstream identity (honker-core, checkout `/workspace/honker` @ `f4e53c6`, package `node-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 of `fork-port-deltas` are 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 only - [ ] `PROVENANCE.md` complete 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