Rust S-Expression L1 Corpus Review

Decision

The Rust parser-only corpus slice is accepted. It closes the promoted KiCad corpus round-trip gate. Typed PCB, schematic, rendering, and downstream interchange expansion remained outside this decision until the later Phase 1 promotion review.

Reviewed Boundary

Evidence

Review Findings

Retained Gates

  1. Measure peak memory and throughput on named small, medium, and large content-addressed corpus cases before ratifying performance floors.
  2. Measure select-everything sorting, deepest-path ownership, and many-path selector scaling before changing the indexed representation.
  3. Retain streaming-select, source-patch, and browser-WASM transfer measurements for pre-cutover budgets or a profile-triggered review.

Gate Closed Since This Review

The build-operation envelope was initially private pending a handwritten TypeSpec-union semantic validator. Phase 1 closed that gate with kind/payload exclusivity, identity, depth, node-count, integer-range, bounded-output, native, and executable WASM evidence.

TypeSpec now also generates strict Python msgspec models and strict TypeScript declarations. Rack rejects stale generated output, unknown Python fields, and TypeScript consumer compilation failures.

The Phase 1 promotion review accepted the parser correctness and architecture boundary. Streaming, patch, and actual WASM resource-limit correctness are covered; additional performance measurements are advisory until a real typed-reader profile or pre-cutover review calls for them.

Next Authorized Slice

Begin the TypeSpec-first footprint reader/writer vertical slice. Further profiling is advisory until real typed-reader workloads or pre-cutover budgets require it.