- docs/plans/implementation.md: the meta plan (alkstore pattern) — nine waves, dependency logic, decided points, review gates. Scope authority: v0.1.0 ships the full surface (all five engines, fleet GC, ops). - Wave 1 decomposed: scaffold-crate-features, core-error-model, core-hashing-keys, core-trait-and-types, suite-scaffold, review-wave-1 (the one-way-door gate). - Waves 2-9 shaped in the plan; each decomposes after the prior wave's review gate. Verification: cargo test / clippy -D warnings / fmt --check green (docs-only change).
3.0 KiB
3.0 KiB
id, name, status, depends_on, scope, risk, impact, level, tags
| id | name | status | depends_on | scope | risk | impact | level | tags | |||
|---|---|---|---|---|---|---|---|---|---|---|---|
| suite-scaffold | Conformance suite — home, convention, and invariant backlog | pending |
|
narrow | low | project | implementation |
|
Description
Establish tests/conformance/ — the in-crate conformance harness home
(decided point: engines are features of one crate, so the suite lives
in-crate, factory-parameterized over engine constructors; the
alkstore ADR-017/022 pattern adapted) — with the convention that waves
2–6 grow columns against:
- The convention document (a
tests/conformance/README.mdor module doc): row naming, the ADR-stamp format (every row cites the ADR § / spec § that pins it — the alkstore version-stamping convention), the one-normative-owner-per-property rule, and the factory contract: each factory opens a fresh, isolated store instance (no shared state between rows) with idempotent teardown; engine factories for SQL engines skip cleanly when no server is reachable (the alkstore SKIP posture) while acceptance requires green against the server. - The invariant backlog: store-api.md's seven invariants
registered as the rows-to-grow table (round-trips per engine/tier/
put-path; dedup; stage hygiene; sweep safety incl. the engine-gated
fleet form; list-correctness-through-sweep-outcomes;
stat-without- content; engine-conformance uniformity) — each row's first column lands with the mem engine in wave 2 (mem is the contract-reference engine; every other engine's rows mirror its column). - The harness skeleton: the factory trait shape and the row
registration structure, compile-able as a stub (the
Storefacade type arrives in wave 2 — the skeleton pins the shape, wave 2's first column binds it; if binding reveals a shape correction, that is wave 2's to make and record).
This task is deliberately convention-first: the harness shape is easier to grow row by row as engines land than to retrofit onto five finished engines (the alkstore wave-1 rationale, which applies identically here).
Acceptance Criteria
tests/conformance/exists with the convention doc (row naming, ADR-stamp format, one-owner rule, factory isolation + teardown contract, SKIP posture)- The invariant backlog table registered, traceable to store-api.md's seven invariants, with the mem-first column plan noted
- The harness skeleton compiles (
cargo testgreen — a stub with no rows yet is acceptable and expected) - No engine-specific code; the task adds no dependencies
References
- docs/architecture/store-api.md (§Invariants — the test gate)
- docs/architecture/backends-and-dispatch.md (§Per-engine conformance; POC #7 gate as the norm)
- /workspace/@alkdev/alkstore/docs/plans/implementation.md (wave 1 + wave 5 sections — the convention's source pattern)
- docs/plans/implementation.md (Decided points — suite home)
Notes
To be filled by implementation agent
Summary
To be filled on completion