Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
6.1 KiB
| id | kind | title | status | state_hub_workstream_id |
|---|---|---|---|---|
| CB-WP-0042 | product | H2 — scoped problem stress | ready | 8f11d55b-3452-49f3-9857-d0bf06752f68 |
Purpose
structural tier M (touches a canonical interface: edition loading
becomes variant-parameterised, and the kernel gains
per-Problem state)
chaos d8 = 4 → no override
declared tier M
Declaration 2 of chaos window 4.
Why, and it is a direct answer to ours
We reported that H1-A behaves as a solve-rate tax: a flat +1 to every seat while any Problem is unclaimed, so the pressure scales with the number of Problems while the intended effect does not.
ground-game responded with H2 — scoped problem stress. Unclaimed
Problems now tick only the seats in their scope:
| scope | who takes the +1 |
|---|---|
global |
all seats |
personal |
the Problem's owner |
bond |
the owner's Bond network — owner plus every seat reachable over Bond edges only, never Rivalry; degree 0 falls back to personal |
Assigned by hidden priority: 0 (Surface) global, 1 personal, 2 personal, 3 bond, 4 personal — which is a seat-band dial without a difficulty card, since 2p never has the bond card in play.
It does not stack with H1. replaces_experiments: [h1-problem-stress],
base is ground-darvo-r0, and there is no ATTACK self-soothe.
Why this is bigger than H1 was
H1 was two arithmetic deltas on existing state. H2 needs three things we do not have:
- Variant-scoped edition data. H2 overrides
Problems.csvwith a newstress_scopecolumn.edition.rsinclude_str!s r0's copy at compile time — the data is currently a constant, not a parameter. - Per-Problem ownership, assigned at setup. That is new state, so it reaches the state hash and every recording.
- Bond-network reachability — a graph traversal over Bond edges only, with a degree-0 fallback.
Task: variant-scoped edition data
id: CB-WP-0042-T01
status: todo
priority: high
state_hub_task_id: "37f9bc34-05d1-4a12-9a98-6c61ab3ec23f"
Controls:
- the baseline's data is bit-for-bit what it was, and its state hashes do not move — the control that protected CB-WP-0038 and the one that invalidates every prior measurement if it fails;
- the H2 package is vendored with digests like every other borrowed
file, and
edition-checkcovers it — sibling discovery walks the disk now, so an undigested file fails (CB-REV-0003 #8); stress_scope's assignment is read from the file, not hardcoded. The delta states the priority→scope mapping; it is the edition's to state and ours to read, and F25 exists because we hardcoded numbers the edition already carried.
Task: ownership at setup
id: CB-WP-0042-T02
status: todo
priority: high
state_hub_task_id: "65b9b2b8-8160-488f-8cd4-b7f734d03b22"
H2-OWN: ascending hidden priority among in-play non-global Problems,
starting at Lead, stepping clockwise. Global Problems have no owner.
Controls:
- deterministic, and asserted so — the delta says "deterministic for sims" and a seeded-but-unstated order would be untestable;
- the baseline carries no owners and its hash does not move. New
state that is
Noneunder baseline must serialise as it did before, or every recorded scenario breaks; - exactly one owner per eligible Problem, checked at every seat count, because the assignment walks two sequences at once and off-by-one is the obvious failure.
Task: scoped pressure
id: CB-WP-0042-T03
status: todo
priority: high
state_hub_task_id: "8426e79c-579e-4aba-a695-381020016206"
H2-A, at Round End, before the clamp and the DARVO arm check — the same
ordering H1-A needed, and the same trap.
Controls:
- each scope fails on its own, by mutation: global hitting only the owner, personal hitting everyone, bond stopping at the owner;
stacking: trueis tested — two open bond Problems must tick the network twice, and a careless implementation applies it once;- Rivalry edges are not traversed. The delta says Bond only, and a traversal that follows any relation is the single most likely defect;
- degree 0 falls back to personal, which is the branch a test forgets;
- ordering asserted as in CB-WP-0038: pressure before the arm check.
Task: SOLVE is not restricted by scope
id: CB-WP-0042-T04
status: todo
priority: medium
state_hub_task_id: "6606cb3b-733d-486c-9e46-37a2a2b0c2c9"
H2-SOLVE: any seat with a matching suit may claim; the owner need not be
the solver, and altruistic clearing is intended.
Control: our engine has no owner concept today, so this is already true — which makes it a regression test, not a feature. T02 adds ownership, and the risk is that ownership silently becomes a permission. The test must fail if it does.
Task: measure, and report what fails
id: CB-WP-0042-T05
status: todo
priority: high
state_hub_task_id: "0bcd97da-60b8-46b2-ae86-7a94f6af8dd5"
Same instrument as H1, same panel, both variants in one run.
Controls:
- greedy and
reactiveboth, because H1's whole verdict turned on which policy was asked (CB-EV-0031); - report against ground-game's own criteria for H2, from their design note — read it, do not reuse H1's §3.2 from memory;
- the bond-scope hypothesis is the interesting one and must be measured directly: their claim is that a shared tick makes a Bond network jointly motivated to solve that card. Whether a policy that does not model other seats can express that at all is an open question, and the honest answer may be "our panel cannot test this hypothesis";
make panelsruns it, or the figures come from an ungated binary again (CB-REV-0002 #7).
Not in this workplan
- No stacking with H1. The package forbids it explicitly.
- No felt-play. H2's central claim is about motivation — a bonded
pair caring about each other's card — and 200-game aggregates measure
dynamics, not that (
Taxonomy.md§4).