ground-game/reports/260809-clay-borg-attack-relief-correction.md
codex b5730f280b fix(workplans): adopt ADR-007 derived identifiers
Records absent from central carried random pre-ADR-007 identifiers minted by
the retired local hub, which C-06 refused as stale references. Deriving from
the canonical record id takes no identity from anything.

Refs CUST-WP-0068-T06

Assistant: claude-code
Assistant-Model: opus
Assistant-Process: 2583210@bnt-lap001
Assistant-Session: f2bff2d5-e9b2-4338-92ca-10282a927006
2026-08-25 19:30:13 +02:00

116 lines
4.3 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

---
id: GROUND-RPT-0007
type: report
title: "clay-borg: correction — H1-B was never measured, and it does something"
domain: consumer
repo: ground-game
status: informational
owner: bernd
topic_slug: whynot
created: "2026-08-09"
extends: GROUND-WP-0006
---
# Correction to GROUND-RPT-0004 (H1 measured)
Upstream: clay-borg `specs/FindingRegister.md` F31,
`games/ground/examples/module-panel.rs`.
**This is a correction we owe you, not a new result we chose to send.**
---
## 1. What we got wrong
We reported H1 as measured and rejected. **Half of it was never
measured.**
H1 is two modules: flat problem→stress pressure (H1-A) and ATTACK
self-soothe at Stress ≥ 4 (H1-B). Every game behind that verdict was
played by bots that **never attacked, in any game, at any seat count**.
H1-B acts only on an uncancelled ATTACK by a seat at the stress gate, so
it had no opportunity in a single one of them.
**The rejection itself stands** — group success is 0 with or without
H1-B, and that is H1-A's doing. But *"H1-B does nothing"* was never
established, and is now known to be false.
The cause was on our side and is not subtle: our bot ranked GROUND at
100 when the gate bites and ATTACK at 10, so at exactly the position
where self-soothe would pay, GROUND won the comparison every time.
---
## 2. H1-B is unreachable in the printed game
We built a probe that attacks at the gate. **Selected on its own,
`attack_relief.self_soothe_ge4` still never fires.**
Peak Stress in the baseline never exceeds its starting 2. The gate is at
4. So no ATTACK can ever *be* gated, however eagerly a seat attacks —
the baseline has no inbound Stress at all, which is the same observation
as F17 seen from the other side.
**A module can be unreachable because of an aspect it does not name.**
`attack_relief` needs a `problem_stress` module before it can act, and
nothing in its own declaration says so. That may be worth a field in the
catalog — a module's *preconditions*, distinct from its aspect — so that
"unreachable in this configuration" is detectable rather than discovered.
---
## 3. Once reachable, it does something
Same probe throughout, varying **only** the module:
| seats | `problem_stress.scoped` | `+ attack_relief.self_soothe_ge4` | group wins | DARVO arms |
|---|---|---|---|---|
| 3p | 12 | **21** | +9 | 299 → 221 |
| 4p | 19 | **28** | +9 | 294 → 213 |
| 6p | 50 | **57** | +7 | 334 → 164 |
Under flat pressure the effect shows in DARVO alone: `h1` arms **200**
against `problem_stress.flat_any_open`'s 300 / 400 / 600, with group wins
0 in both.
**Read this as the conditional it is.** *Given seats that attack at the
gate*, self-soothe raises group success by ~79 per 100 and cuts DARVO
arming by a quarter to a half. The probe is deliberately poor play — it
wins 12/100 where our ordinary bot wins 60/100 under the same module — so
this is **not** a claim that attacking is good, and **not** evidence
against F17.
**Sensitivity:** vary only the ATTACK rank. At 10 and at +55 the module
never fires; at 110 it fires in every game. Nothing about the module
changed — only whether any seat gave it a turn.
---
## 4. What we are not saying
- **Not** that H1 should be reconsidered. H1-A drives group success to 0
at every seat band and self-soothe does not move that.
- **Not** that ATTACK is good play.
- **Not** that these numbers describe a table. Every one is bots, and the
seats that produce them play badly on purpose.
**Ask:** is a *reachability* declaration worth adding to a module — the
conditions under which it can act at all — so a consumer can report "not
reachable in this configuration" instead of a number that looks like a
null result?
---
## 5. Two earlier items still open on your side
Neither is new; both were in GROUND-RPT-0006 and are unanswered.
**(a) The competitive modes are weakly tested.** No bot of ours models a
*rival* playing their objective. A mode whose point is that players
compete, measured by seats that never anticipate an opponent, is a weak
test of that mode — and we cannot fix it by measuring harder.
**(b) `problem_stress.scoped` cannot reach a decision in round one.**
Only the Surface Problem is face up, so there is never a choice between
two Problems for scope to decide. Any read of that module weighted toward
early rounds is measuring a mechanism that has not started.