### Quantum circuits: `wai.quantum.circuit2`, and `wai.quantum.circuit` stated exactly

- **A new capability, `wai.quantum.circuit2`** ([quantum-sim](extensions/quantum-sim.md),
  SPEC §5). Magic `WQC2`, contract `ext` `wai.quantum.circuit2/1`, numeric
  `wai.det.amp64`, gateset `cliffordT+dyadicP.rn`. The container layout, the gate IR and
  the arithmetic are those of `wai.quantum.circuit`; the phase table is not. Each
  `P(k)` holds the integers nearest to `2^30·cos(2π/2^k)` and `2^30·sin(2π/2^k)`, so its
  controlled-phase ladder gives the QFT. The literal table is normative (§3.2, Appendix
  B.2, digest `d34cb793…3510`); an exact-integer interval procedure certifies every entry,
  informatively. The contract and the measurement are byte-canonical, and the op-log ends
  exactly after its last op. Registered in the machine-readable registry and the
  vocabularies, with `wai.det.amp64` as an identifier.
- **`wai.quantum.circuit` is frozen, and its table stated for the first time** (§3.1,
  Appendix B.1, digest `3fa9805f…8466`). The text gives the exact recurrence — the sine
  formula, the truncating halving, the floor square root — and the deviation of every
  entry from the ideal phase: from `P(8)` on the imaginary part is too large, by up to
  7032 units of `2^−30`, and `P(19..32)` apply no phase. The claim that this table gives the
  QFT is withdrawn. Writers SHOULD NOT emit new circuit/1 content.
- **Both capabilities are specified to the bit** (§2–§4): little-endian integers, section
  bounds computed without overflow, a repeated known section refused, the contract and
  the measurement read as I-JSON (RFC 7493) by rules stated in full: no repeated member
  name, no surrogate or noncharacter, no number of magnitude 2^1024 − 2^970 or more, at
  most 127 levels deep, and an integer read exactly; the three refusal
  classes (malformed, contract, invalid) in the order a reader checks them, the
  complex-product composition, the index convention, the gate matrices, the hash layouts
  and the shot sampler. `circuit_hash` covers the canonical contract, so it names the
  capability and its table; `statevector_hash` does not. §5 states the error per
  capability, and a new §8 why circuit2 is a capability of its own and what an older
  reader does with it (it refuses `WQC2` at the magic).
- **Newly non-conforming circuit/1 payloads** (quantum-sim §8, SPEC §5): a contract whose
  `ext`, `numeric`, `frac` or `gateset` is missing or carries another value; an
  `n_qubits` that is not an unsigned integer of at most 255; a known section kind more
  than once; section bounds that overflow; a contract or measurement that repeats a
  member name within one object, holds a noncharacter, or holds a number of magnitude
  2^1024 − 2^970 or more that an earlier build's float parser let through (some builds
  also refused numbers just below it, which are now accepted). No file a reference writer
  wrote is among them.
- **Corpus.** `quantum-conformance/` keeps its four original vectors and manifest entries
  byte for byte and adds qft5_x22, dyadic_ladder and qft8_ones, which see the phase table:
  under either table, `dyadic_ladder`'s statevector hash changes with every ±1 change of
  any `P(1..32)` component. `v2/` holds the same seven circuits as circuit2; `reject/` at
  least one payload for each refusal a payload can carry, with its class; and `accept/`
  payloads at the edges of the same rules that a reader must accept, with how each reads.
  `tools/referee.py`, integers only, derives both tables, requires Appendix B to state
  them, reads every JSON section by the same rules, and rebuilds and checks every file. The
  Appendix B tables are rendered from the reference constants by
  `wai_quantum_vectors appendix`, and a test fails when the text differs.

