Compare commits
2 commits
c4eda9e1cd
...
edda653db2
| Author | SHA1 | Date | |
|---|---|---|---|
| edda653db2 | |||
| 6c3f6949e9 |
3 changed files with 134 additions and 1 deletions
|
|
@ -9,10 +9,11 @@
|
|||
| Kind | ID | Status | Lane | Source |
|
||||
| --- | --- | --- | --- | --- |
|
||||
| workplan | GROUND-WP-0001 | done | — | workplans/GROUND-WP-0001-statehub-bootstrap.md |
|
||||
| workplan | GROUND-WP-0002-REPORT-260805 | informational | — | workplans/GROUND-WP-0002-clay-borg-report-260805.md |
|
||||
| workplan | GROUND-WP-0002 | finished | — | workplans/GROUND-WP-0002-rulings-clay-borg-is-blocked-on.md |
|
||||
| workplan | GROUND-WP-0003 | ready | — | workplans/GROUND-WP-0003-playtest-semi-and-coalitions.md |
|
||||
| workplan | GROUND-WP-0004 | finished | — | workplans/GROUND-WP-0004-the-threshold-ruling-rests-on-a-bad-premise.md |
|
||||
| workplan | GROUND-WP-0005 | backlog | — | workplans/GROUND-WP-0005-difficulty-tiers-and-pressure-dial.md |
|
||||
| workplan | GROUND-WP-0005 | active | — | workplans/GROUND-WP-0005-difficulty-tiers-and-pressure-dial.md |
|
||||
| task | GROUND-WP-0001-T01 | done | — | workplans/GROUND-WP-0001-statehub-bootstrap.md |
|
||||
| task | GROUND-WP-0001-T02 | done | — | workplans/GROUND-WP-0001-statehub-bootstrap.md |
|
||||
| task | GROUND-WP-0001-T03 | done | — | workplans/GROUND-WP-0001-statehub-bootstrap.md |
|
||||
|
|
|
|||
|
|
@ -9,6 +9,7 @@ owner: bernd
|
|||
topic_slug: whynot
|
||||
created: "2026-08-05"
|
||||
extends: GROUND-WP-0002
|
||||
state_hub_workstream_id: "09350395-f628-4d8e-8c36-3cea330a8b6f"
|
||||
---
|
||||
|
||||
# clay-borg finding report — 2026-08-05
|
||||
|
|
|
|||
131
workplans/GROUND-WP-0005-clay-borg-difficulty-260805.md
Normal file
131
workplans/GROUND-WP-0005-clay-borg-difficulty-260805.md
Normal file
|
|
@ -0,0 +1,131 @@
|
|||
---
|
||||
id: GROUND-WP-0005-REPORT-260805
|
||||
type: report
|
||||
title: "clay-borg difficulty measurement, 2026-08-05 — and a retraction of what we nearly sent instead"
|
||||
domain: consumer
|
||||
repo: ground-game
|
||||
status: informational
|
||||
owner: bernd
|
||||
topic_slug: whynot
|
||||
created: "2026-08-05"
|
||||
extends: GROUND-WP-0005
|
||||
---
|
||||
|
||||
# clay-borg difficulty report — 2026-08-05
|
||||
|
||||
GROUND-WP-0005 (*difficulty tiers and the Pressure dial*) has both tasks
|
||||
in `wait`, blocked on a measured baseline. This is that baseline, with its
|
||||
limits stated.
|
||||
|
||||
Generated by `make difficulty`
|
||||
(`games/ground/examples/difficulty.rs`), governed by
|
||||
`clay-borg/specs/RetrospectiveAnalysis.md` §4, under
|
||||
[CB-WP-0025](../../clay-borg/workplans/CB-WP-0025-could-we-have-won.md) T06.
|
||||
|
||||
---
|
||||
|
||||
## 0. First, what we nearly sent you and did not
|
||||
|
||||
**Earlier today this report was going to say: "a greedy bot wins 200 of
|
||||
200 games at five and six seats — the game is too easy there."**
|
||||
|
||||
It would have invited you to move thresholds. **It was wrong**, and an
|
||||
adversarial review caught it before it left our repo.
|
||||
|
||||
A `FirstLegal` policy — take the first legal command, no heuristic
|
||||
whatsoever — scores **0%** at five and six seats on the identical deals
|
||||
where `GreedyPolicy` scores **100%**. At two seats it *beats* greedy
|
||||
(76.7% vs 60.0%).
|
||||
|
||||
**Two unsophisticated agents span the entire range.** A single policy's
|
||||
win rate is therefore a statement about the policy, not about GROUND, and
|
||||
we have written that into our spec as a prohibition rather than a
|
||||
preference.
|
||||
|
||||
This is the fifth claim we would have sent you on a wrong premise. It is
|
||||
the second stopped before sending.
|
||||
|
||||
## 1. The measurement
|
||||
|
||||
`make difficulty`, 60 seeds per cell:
|
||||
|
||||
| seats | winnable | greedy | random | first-legal | spread | undecided |
|
||||
|---|---:|---:|---:|---:|---:|---:|
|
||||
| 2 | **60%** | 60.0% | 5.0% | 76.7% | 71.7 | 0 |
|
||||
| 3 | **93%** | 88.3% | 6.7% | 25.0% | 81.7 | 2 |
|
||||
| 4 | **100%** | 93.3% | 6.7% | 30.0% | 86.7 | 4 |
|
||||
| 5 | **100%** | 100.0% | 3.3% | 0.0% | 100.0 | 0 |
|
||||
| 6 | **100%** | 100.0% | 3.3% | 0.0% | 100.0 | 0 |
|
||||
|
||||
**`winnable`** is the column that is not about a bot. It is the fraction
|
||||
of deals in which an **exhaustive search finds a winning line in the final
|
||||
round**. The other three columns are what named policies actually achieve,
|
||||
and **`spread`** is the range between them.
|
||||
|
||||
## 2. How to read it, including what it is not
|
||||
|
||||
**Read `spread` first.** It ranges from 71.7 to 100.0 percentage points.
|
||||
Wherever it is large — everywhere — **no single policy's rate tells you
|
||||
anything about the game.** That is the finding behind §0.
|
||||
|
||||
**`winnable` is conditioned on greedy's play up to the final round.** It
|
||||
is *"winnable from where greedy got to"*, not a property of the deal
|
||||
alone. A genuinely policy-free figure would search from round 1, which we
|
||||
measured as unaffordable: our search exceeded 2×10⁶ nodes at **two** seats
|
||||
over two rounds. We are telling you this rather than presenting the number
|
||||
as cleaner than it is.
|
||||
|
||||
**It is a lower bound.** A one-round search cannot see a line that needed
|
||||
an earlier round, so the true winnable fraction is **at least** these
|
||||
figures.
|
||||
|
||||
**`undecided` deals are excluded, not counted as losses.** Those are deals
|
||||
whose search hit the node budget. Folding *"we stopped looking"* into
|
||||
*"not winnable"* is the collapse our spec forbids.
|
||||
|
||||
## 3. What we think this supports, offered as reading not as ruling
|
||||
|
||||
**The rules are yours. This is what the numbers appear to say.**
|
||||
|
||||
- **Two seats is the tight configuration.** 60% winnable in the final
|
||||
round, and every policy struggles. If any seat count is under-tuned for
|
||||
*difficulty*, the evidence does not point here.
|
||||
- **Four seats and up: every deal we sampled was still winnable in the
|
||||
final round.** 100% at 4, 5 and 6 seats. That is compatible with "too
|
||||
generous at high seat counts" — but it is **not** the claim we withdrew
|
||||
in §0, because it is a statement about deal winnability rather than
|
||||
about a bot's success.
|
||||
- **The 5–6 seat rows deserve the most suspicion.** `first-legal` scores
|
||||
0% there while `greedy` scores 100%, which is the widest spread in the
|
||||
table. Something about those configurations makes play matter *more*,
|
||||
not less — the opposite of "too easy" — and we do not yet understand it.
|
||||
|
||||
**We are not proposing threshold changes.** The measurement's confound
|
||||
(§2) is large enough that we would rather you saw it than acted on it.
|
||||
|
||||
## 4. What would make this a better instrument
|
||||
|
||||
- **Search from round 1** rather than the last round, which removes the
|
||||
greedy confound entirely. Needs transposition or move-ordering; we have
|
||||
neither.
|
||||
- **A resolution figure** — the smallest threshold change the measurement
|
||||
can distinguish, with its N. Our spec requires it and we cannot yet
|
||||
supply it.
|
||||
- **Your Pressure dial**, if it lands, gives a second axis to measure
|
||||
against and would make the table two-dimensional.
|
||||
|
||||
## 5. Reproduction
|
||||
|
||||
Per GROUND-WP-0004 T02, arithmetic findings cite their reproduction by
|
||||
path:
|
||||
|
||||
```
|
||||
clay-borg$ make difficulty # the table above
|
||||
clay-borg$ make self-tests # includes the difficulty controls
|
||||
```
|
||||
|
||||
Controls, so the figure can fail rather than merely print: a witness must
|
||||
replay to a win; an unwinnable position must be reported as **searched
|
||||
out** rather than as a budget cut; a budget of one node must not claim
|
||||
exhaustion; and the policy panel must actually disagree, or reporting
|
||||
three policies would be ceremony.
|
||||
Loading…
Add table
Add a link
Reference in a new issue