- code-shaped fixture set: writer + validator template kinds over one
composed partial, no-op escaper, strict mode, all public API
- ADR-004 mappings in builder Rust (kind->call names, struct name,
string-kind flag, source-quoted literals); templates stay dumb
- document order (not sort/hash/reverse) drives rendered order;
reordered arrays render in the array's new order
- determinism: byte-identical across repeated renders, registry
rebuilds, differing registration orders, fresh contexts, and both
sinks (render vs render_to_write)
- banner stays an emit-layer obligation; no banner assertions in the
proof (gap recorded in task Notes, honestly)
Verification: cargo test (38 passed), cargo clippy --all-targets --
-D warnings, cargo fmt --check, taskgraph validate
- w2-ssr-proof and w2-code-proof: the two consumer-shaped proofs,
parallel by construction (own test binaries, own fixture modules
per the wave-1 convention)
- w2-conformance-battery: the standing verification set, ordered
after the proofs so it consolidates over the final wave-2 tree and
absorbs any stop-and-book findings; folds the wave-1 gate's
reminder (b) (wasm build standing, not ad-hoc)
- review-wave-2: the wave gate, depends on all three
- decomposition record added to docs/plans/implementation.md with
the logistic-ordering rationale; wave-2 status flipped to
decomposed
Verification: taskgraph validate (18 tasks valid); em-dash grep
clean on all changed files