wai-quantum: a person's taste, learned from their own choices between equals #497

Merged
dcharlot merged 1 commit from wai/quantum-taste-r2 into main 2026-10-26 16:41:32 -04:00
Owner

Feature 10 of the co-design report: a personal, plural taste model.

Replays #496 on main after #495 merged, as one commit with the same tree. #496's checks were green except one: the macOS energy job's eoc-meter test a_child_processs_work_is_not_attributed. That is a process-energy test in another workspace, and it failed while the shared macOS host was loaded. The same job passed on #495, and the forge has no rerun, so this is pushed once, fresh. #496 is closed.

Engine (engine::taste)

  • Only between equals. A choice is recorded only when the engine proves the two programs the same circuit, or the same state. The proof must be a tableau, exact or state check, never random inputs. So a choice is about taste, never correctness.
  • The model. A Bradley–Terry logistic over differences of measured features: gates, two-qubit gates, depth, two-qubit depth, T gates and the modelled error, plus the text's statements, gate kinds, repetition and comments. It is fitted by ridge-penalised Newton's method, so the same choices give the same weights everywhere. A floor on each feature's spread stops a feature that barely varied from extrapolating to certainty.
  • Decomposed. Each of economy, clarity, insight, precision and utility is learned from its own choices. A ranking names where a part, or the cost, puts another first.
  • Plural and personal. Profiles are kept by name and never pooled.
  • Typicality is shown, never learned. Typicality is 1 − novelty (#495). The novelty dial blends the standardised order by taste with the order by novelty.
  • Measured.
    • Choices predicted as made (each from the ones before it) and held out (over the last 100).
    • Choices that nothing measured separates.
    • Whether a ranking's first three are built more alike than the first three by cost: the collapse check.
  • next: the least certain pair that the engine proves equal.

CLI and MCP

  • wai-quantum taste choose | show | rank | next, over files or a specification's elites (--spec). Profiles are kept in quantum-taste.json beside the user's key.
  • MCP: taste_rank and taste_next read the person's profile. No tool records a choice. At initialize, an agent is told so, and told to call a program new only when novelty_qasm says so.

Studio

  • "Your taste" in the Workbench:
    • Compare two, with the part the choice was about;
    • Rank by my taste, with each program's typicality and the dial;
    • profiles by name.
  • In Alternatives, an alternative that is the same circuit as the draft, taken whole or refused whole, counts as a choice. Improve orders its candidates by the profile.
  • Bindings: engine_taste in the page, taste in the desktop app.

CI: wai-web's native engine test count goes from 10 to 11.

Checked on the build host:

  • engine engine:: 105 pass, 7 of them new;
  • CLI 15 pass, clippy clean with default and no default features;
  • wai-web native engine tests: 11 pass;
  • desktop: 5 pass, clippy clean;
  • Studio e2e: 121 checks pass, 10 of them new;
  • the public-names check is clean.

🤖 Generated with Claude Code

Feature 10 of the co-design report: a personal, plural taste model. **Replays #496** on main after #495 merged, as one commit with the same tree. #496's checks were green except one: the macOS energy job's `eoc-meter` test `a_child_processs_work_is_not_attributed`. That is a process-energy test in another workspace, and it failed while the shared macOS host was loaded. The same job passed on #495, and the forge has no rerun, so this is pushed once, fresh. #496 is closed. **Engine (`engine::taste`)** - **Only between equals.** A choice is recorded only when the engine proves the two programs the same circuit, or the same state. The proof must be a tableau, exact or state check, never random inputs. So a choice is about taste, never correctness. - **The model.** A Bradley–Terry logistic over differences of measured features: gates, two-qubit gates, depth, two-qubit depth, T gates and the modelled error, plus the text's statements, gate kinds, repetition and comments. It is fitted by ridge-penalised Newton's method, so the same choices give the same weights everywhere. A floor on each feature's spread stops a feature that barely varied from extrapolating to certainty. - **Decomposed.** Each of economy, clarity, insight, precision and utility is learned from its own choices. A ranking names where a part, or the cost, puts another first. - **Plural and personal.** Profiles are kept by name and never pooled. - **Typicality is shown, never learned.** Typicality is 1 − novelty (#495). The novelty dial blends the standardised order by taste with the order by novelty. - **Measured.** - Choices predicted as made (each from the ones before it) and held out (over the last 100). - Choices that nothing measured separates. - Whether a ranking's first three are built more alike than the first three by cost: the collapse check. - **`next`:** the least certain pair that the engine proves equal. **CLI and MCP** - `wai-quantum taste choose | show | rank | next`, over files or a specification's elites (`--spec`). Profiles are kept in `quantum-taste.json` beside the user's key. - MCP: `taste_rank` and `taste_next` read the person's profile. No tool records a choice. At initialize, an agent is told so, and told to call a program new only when `novelty_qasm` says so. **Studio** - "Your taste" in the Workbench: - Compare two, with the part the choice was about; - Rank by my taste, with each program's typicality and the dial; - profiles by name. - In Alternatives, an alternative that is the same circuit as the draft, taken whole or refused whole, counts as a choice. Improve orders its candidates by the profile. - Bindings: `engine_taste` in the page, `taste` in the desktop app. **CI:** wai-web's native engine test count goes from 10 to 11. **Checked on the build host:** - engine `engine::` 105 pass, 7 of them new; - CLI 15 pass, clippy clean with default and no default features; - wai-web native engine tests: 11 pass; - desktop: 5 pass, clippy clean; - Studio e2e: 121 checks pass, 10 of them new; - the public-names check is clean. 🤖 Generated with [Claude Code](https://claude.com/claude-code)
wai-quantum: a person's taste, learned from their own choices between equals
All checks were successful
wai-quantum CPU vector units / member · vector unit, rvv 128-bit (riscv64, emulated) (pull_request) Successful in 18s
standards workspaces build + test / joule-code-rs (joule-code/joule-code-rs, joule-code-rs, linux-arm64, true) (pull_request) Successful in 6m5s
WAI energy receipts / energy receipts · linux-arm64 (pull_request) Successful in 10m6s
wai-quantum CPU vector units / member · vector unit, sve 2048-bit (aarch64, emulated) (pull_request) Successful in 11s
wai-quantum CPU vector units / member · vector unit, avx2 (x86_64 silicon) (pull_request) Successful in 13s
wai-quantum CPU vector units / member · vector unit, sve 512-bit (aarch64, emulated) (pull_request) Successful in 13s
wai-quantum HIP member / member · HIP absent (linux-arm64) (pull_request) Successful in 26s
wai-quantum npu-cores member / member · npu-cores absent (linux-arm64) (pull_request) Successful in 25s
wai-quantum tensor-engine member / member · tensor engine absent (linux-arm64) (pull_request) Successful in 19s
WAI energy receipts / energy receipts · linux (pull_request) Successful in 10m4s
wai-quantum tensor-engine member / member · tensor engine, the kernel toolchain's simulator (linux) (pull_request) Successful in 5m5s
wai-quantum studio and desktop / desktop app · macos (pull_request) Successful in 2m46s
wai-quantum WebGPU member / member · software Vulkan (linux) (pull_request) Successful in 2m25s
wai-quantum portable tensor program / tensor program · Metal and the arm64 CPU (macos) (pull_request) Successful in 16s
wai-quantum CPU vector units / member · vector unit absent (macos) (pull_request) Successful in 14s
wai-quantum WebGPU member / shader checks · browser build · wasip2 inertness · MSRV (pull_request) Successful in 3m3s
WAI conformance / cargo-class corpora · macos (pull_request) Successful in 19m48s
WAI conformance / cargo-class corpora · linux-arm64 (pull_request) Successful in 19m4s
WAI conformance / cargo-class corpora · linux (pull_request) Successful in 15m51s
wai-web reach builds / wai-web reach builds · the package of record, every output as recorded (pull_request) Successful in 2m45s
wai-quantum WebGPU member / member · Metal (macos) (pull_request) Successful in 2m40s
wai-quantum WebGPU member / member · browser WebGPU (macos) (pull_request) Successful in 1m48s
wai-web wasm32 / wai-web wasm32 build · corpus, menu and writers (pull_request) Successful in 4m26s
wai-quantum WebGPU member / member · discrete GPU, Vulkan (jetson-hub) (pull_request) Successful in 21m26s
wai-quantum neural-processor member / member · neural processor (macos) (pull_request) Successful in 10m4s
WAI mbt2018_mean integer decode (regenerated vectors) / regenerate mbt2018_mean integer vectors → Rust decode, required (pull_request) Successful in 5m4s
wai-web reach builds / wai-web reach builds · this tree's wai-web, every rung on its engine line (pull_request) Successful in 4m28s
wai-quantum signal processor / processor and member · signal processor, emulated (pull_request) Successful in 13m26s
wai-quantum WebGPU member / member · DX12 and Vulkan (cbio-windows) (pull_request) Successful in 33m29s
WAI conformance / independent verifiers · claims, JWP, key discovery and integer payloads (Python) (pull_request) Successful in 49m41s
dcb5391f90
Feature 10 of the co-design report: a personal, plural taste model.

- engine::taste:
  - a choice is recorded only when the engine proves the two programs the
    same circuit or the same state, by a proof (tableau, exact, state),
    never by random inputs: it is about taste, never correctness;
  - a Bradley-Terry logistic over differences of measured features (gates,
    two-qubit gates, depth, two-qubit depth, T gates, modelled error) and
    of the text (statements, kinds of gate, repetition, comments), ridge
    penalised and fitted by Newton's method: deterministic everywhere;
  - the rubric's parts (economy, clarity, insight, precision, utility),
    each learned from its own choices; a ranking names where a part or the
    cost puts another first;
  - profiles personal and plural, by name, never pooled;
  - typicality (one less engine::novelty's novelty) shown and never
    learned; the novelty dial blends the standardised order by taste with
    the order by novelty; a floor on each feature's spread keeps a feature
    that barely varied from turning into certainty;
  - measured: choices predicted as made and held out (last 100), the ones
    nothing measured separates, and whether a ranking's first three are
    built more alike than the cost's; scores about the candidates' mean;
  - next: the least certain pair the engine proves equal; call for hosts.
- novelty::token is shared with it.
- The command line: taste choose | show | rank | next (files or --spec),
  profiles in quantum-taste.json beside the user's key.
- MCP: taste_rank and taste_next read the person's profile; no tool
  records a choice. initialize tells an agent so, and to call a program
  new only when novelty_qasm says so.
- The Studio: "Your taste" in the Workbench (Compare two with the part a
  choice was about, Rank by my taste with typicality and the dial,
  profiles by name); an alternative that is the same circuit as the draft,
  taken whole or refused whole, is a choice; Improve orders by the profile.
- Bindings: engine_taste in the page, taste in the desktop app.
- CI: wai-web's native engine tests count 11.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
Sign in to join this conversation.
No reviewers
No labels
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set

Reference
Transaction-Science/open-standards!497
No description provided.