Files
alkstore/tasks/fork-substrate-scaffold.md
T
glm-5.3-flash 49743c690e Implementation plan: wave-based decomposition; waves 1-2 decomposed (11 tasks)
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.
2026-10-07 14:37:31 +00:00

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
scaffold-workspace
narrow low component implementation
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