CB-WP-0023: SOLVE is legal only where it can do something
Some checks failed
ci / check (push) Failing after 4s

Implements ground-game's ruling of 2026-08-03. make all exits 0, 26
scenarios, rule coverage 59/59, and no scenario encoded the bug.

The rule ended up somewhere other than where I put it, and a gate moved
it. It went into legal_commands first; the AM-1 coverage gate then
demanded a scenario for the new GR-P05, and scenarios drive validate, not
the offer layer. A rule enforced only by the offer is enforced only for
clients that ask what is legal -- the browser would be filtered and a
scenario file would walk straight past it. Once GR-P05 moved into
validate, every condition in legal_commands was dead code, and the
layering test said so in those words.

And the reported case was not the one I reported. CB-WP-0018 and the
message to ground-game described SOLVE offered on a FACE-DOWN Problem.
Measured: validate already rejected face-down, so it never was offered.
Problem 1 is the Surface Problem, face-up from the deal -- the
maintainer's three inert SOLVEs were the HAND case, holding no Clarify
for a Clarify Problem. The ruling covers both so nothing is invalidated,
but the record was wrong.

Four conditions asserted separately, because one 'SOLVE is filtered' test
would pass with three of four implemented.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This commit is contained in:
tegwick 2026-08-04 00:18:40 +02:00
parent 46c2fb652e
commit 6487d33f27
7 changed files with 321 additions and 16 deletions

View file

@ -177,6 +177,17 @@ terms.
printed value for scoring; a Problem can be claimed at most once.
- **GR-P04** Competing SOLVEs on the same Problem in the same round
resolve in Lead order (GR-R07); losers keep their Solution (GR-A02).
- **GR-P05** *(ruled by ground-game 2026-08-03, GROUND-WP-0002 T02)*
**SOLVE is offered only where it can do something.** A seat may select
SOLVE on a Problem only if it is face-up, non-Denied, **unclaimed**, and
the seat **holds a Solution of the required suit**. A Problem claimed in
a *prior* round is not a legal target; the same-round race of GR-P04 is
unaffected, because both seats select before either resolves.
*Not a bluff mechanic.* CB-WP-0018 raised the possibility that
selecting an unfulfillable SOLVE was an intended face-down bluff. The
ruling is that it was a filter bug: *"the player always knows their
hand… physical tables self-police the same way."*
## 9. Protection, Focus and Blame (GR-T)

View file

@ -87,8 +87,8 @@ rule 4).
a rule a scenario claims should also appear in the aggregate source, or
the claim rests on a tag and nothing else.
Measured 2026-07-31: **49 of 58** claimed rules are named in <!-- fact:gr_linked --><!-- fact:gr_rules -->
`games/ground/src/lib.rs`. **Unmet**, target 58. The nine unlinked:
Measured 2026-08-04: **50 of 59** claimed rules are named in <!-- fact:gr_linked --><!-- fact:gr_rules -->
`games/ground/src/lib.rs`. **Unmet**, target 59. The nine unlinked:
```text
GR-D07 GR-F02 GR-L03 GR-O03 GR-P01 GR-P02 GR-P03 GR-P04 GR-T01