|
Some checks failed
ci / check (push) Failing after 4s
H2 is ground-game's answer to our H1 reading — that a flat +1 to every seat is a solve-rate tax scaling with the number of Problems. Unclaimed Problems now tick only the seats in scope: global (all), personal (the owner), bond (the owner's Bond network over Bond edges only, degree 0 falling back to personal), assigned by hidden priority so 2p never has the bond card in play. T01: the package is vendored with digests, and H2's Problems.csv is r0's with one column added and NOTHING else changed — checked, not assumed, because the delta claims deal_and_thresholds unchanged and a silent difference would make every H2-vs-baseline comparison a comparison of two boards as well as two rule sets. Scopes are read from the column, not derived from the priority in Rust: F25 exists because we hardcoded numbers the edition already carried. T02: owner and scope are new ProblemState fields, both Option and both skipped when None, so a baseline state serialises without them and every recorded scenario's hash is untouched — asserted on the JSON, not assumed. with_variant() replaces the bare field write, because state.variant = v would leave owners unassigned: a silently wrong game rather than a failing one. T03: every named defect is mutation-proven — traversing Rivalry edges, applying stacking once, a degree-0 owner ticking everyone, personal hitting everyone. The degree-0 mutation MISSED first: the fallback lives inside bond_network and the mutation broke the None-owner arm instead, a different branch. It stayed green until aimed at the path the test exercises. A mutation that misses is not evidence the test works. T04: ownership is not a permission. Filtering SOLVE to the owner turns it red, which is the regression this task exists for — the engine had no owner concept before T02 added one. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> |
||
|---|---|---|
| .. | ||
| CB-WP-0001-inner-loop.md | ||
| CB-WP-0002-cost-accounting.md | ||
| CB-WP-0003-loop-hardening.md | ||
| CB-WP-0004-mechanical-work.md | ||
| CB-WP-0005-assertion-coverage.md | ||
| CB-WP-0006-instrument-the-table.md | ||
| CB-WP-0007-session-shape.md | ||
| CB-WP-0008-ship-stage-0.md | ||
| CB-WP-0009-adaptive-gates.md | ||
| CB-WP-0010-consolidation.md | ||
| CB-WP-0011-inspectable-table.md | ||
| CB-WP-0012-render-port.md | ||
| CB-WP-0013-instrument-corrections.md | ||
| CB-WP-0014-execute-the-javascript.md | ||
| CB-WP-0015-the-inert-clauses.md | ||
| CB-WP-0016-the-drop-target.md | ||
| CB-WP-0017-legible-interaction.md | ||
| CB-WP-0018-the-browser-is-a-client.md | ||
| CB-WP-0019-the-am4-family.md | ||
| CB-WP-0020-the-table-you-can-read.md | ||
| CB-WP-0021-import-the-edition.md | ||
| CB-WP-0022-the-design-instrument.md | ||
| CB-WP-0023-solve-legality.md | ||
| CB-WP-0024-the-table-you-can-watch.md | ||
| CB-WP-0025-could-we-have-won.md | ||
| CB-WP-0026-collect-the-rulings.md | ||
| CB-WP-0027-the-commentary-track.md | ||
| CB-WP-0028-the-table-you-sit-at.md | ||
| CB-WP-0029-the-tokens-on-the-table.md | ||
| CB-WP-0030-a-number-that-does-not-move.md | ||
| CB-WP-0031-the-comment-box-outlives-the-game.md | ||
| CB-WP-0032-the-comments-in-the-account.md | ||
| CB-WP-0033-a-game-is-the-unit.md | ||
| CB-WP-0034-who-you-are-bonding-with.md | ||
| CB-WP-0035-a-session-that-answers-nothing.md | ||
| CB-WP-0036-interactive-mode.md | ||
| CB-WP-0037-the-fourteen-unread-files.md | ||
| CB-WP-0038-h1-variant.md | ||
| CB-WP-0039-a-seat-that-does-not-regulate.md | ||
| CB-WP-0040-what-a-statement-is-about.md | ||
| CB-WP-0041-the-extensive-form-foundation.md | ||
| CB-WP-0042-h2-scoped-problem-stress.md | ||