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.
This commit is contained in:
1 parent
83767e880b
commit
49743c690e
12 files changed
+1009
No files matched your search
@@ -0,0 +1,60 @@
|
||||
---
|
||||
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
|
||||
Reference in new issue
Block a user