### wai-quantum: what is new, what is a known construction found again, and aberrations

Feature 9 of the co-design report: a novelty, rediscovery and serendipity ledger.

- **What is new** (`engine::novelty`):
  - the inspiring set: GHZ by a chain of CNOTs, by doubling and by fan-out, the uniform superposition and the toolchain's quantum Fourier transform, each built at the program's width (to 12 qubits), and whatever programs the caller adds;
  - a structural distance, 0 to 1: the weighted Jaccard distance between two programs' multisets of gate tokens (a gate's kind and its qubits relative to its first) and of consecutive pairs of them;
  - rediscovery: a program the engine proves does what a known construction does (`equiv::same_state` for a preparation, `equiv::equivalent_programs` otherwise; never on random inputs alone) is that construction found again. Built unlike it (a distance of 0.5 or more) it is a different route to a known result. A program that is itself one known construction is not a different route to another;
  - novelty, the distance to the nearest of the set, named;
  - with a reference, the measures a program beats it on that the cost does not weigh.
- **Aberrations** (Wiggins's term) in the workbench: a candidate that breaks only the specification's rules (its gates, its connectivity) is judged again without them. If it is verified there, its evaluation carries the rule it broke (`broke`: the gate, or the line), its reason, and the cost, axes and strength it would have. It is never kept.
- `discover::novelty` reads one archive entry at the specification's largest size against the archive's other elites.
- **The command line:** `wai-quantum novelty` (`--against`, `--reference`, `--weigh`, `--input`) and `discover novelty`; `discover eval` and `discover submit` say an aberration's rule and the cost it would have.
- **For agents:** `novelty_qasm` and `discover_novelty`.
- **The Studio:**
  - each Alternatives card says what is new in it, against the known constructions and the draft, and marks a different route to a known result;
  - the Workbench names each kept generator for what it is, shows it on the entry with what it beats the reference on unasked, and logs an aberration with "Try without that rule", which loosens the specification for a new archive;
  - Found keeps what is worth a second look (a different route, an aberration, a verified entry far from everything compared) to open, save with a note, or dismiss, and counts what was flagged and saved;
  - the assistant has the tool, and may call a program new only when the engine says so.
- **For hosts:** `novelty::call`, `engine_novelty` and `engine_discover_novelty` in the page, `novelty` and `discover_novelty` in the desktop app, which now builds the toolchain's QFT into its inspiring set.
- **CI:** wai-web's native engine tests count 10.

