Some checks failed
ci / check (push) Has been cancelled
objective() reads GroundState::score (now public) rather than restating
what winning is; a copy in the bot would disagree with the kernel the
first time ground-game rules on F28.
Working out WHERE the modes can differ was most of the task and it
bounds the result: SOLVE always claims for the actor, so own-score and
group-score want the same SOLVE nearly everywhere. That is a fact about
GROUND's action set, not a shortcoming of the bot. Two real divergences,
both readable off the table: SUPPORT regulates someone else (worth less
against a rival, worth MORE under coalitions where a Bond merges them
into my side), and SOLVE's value is the card's value, which greedy
ignores entirely.
THE RESULT — F27 splits in two:
group success UNCHANGED in 34 of 36 cells
who wins MOVES: BONDED COALITIONS at 4p goes 2.04 -> 2.98,
2.12 -> 3.29, 2.05 -> 3.01 winning seats per game
So "the competitive modes are scoring lenses over cooperative play" was
too strong and is withdrawn. The sharper claim: GROUND's scoring modes
change WHO WINS, not WHETHER THE GROUP SUCCEEDS. And the effect is
seat-band dependent -- 2p none, 4p largest, 6p none under coalitions;
two relation slots capping network growth is a candidate explanation and
is untested.
The panel now prints BOTH policies side by side. That was a correction
mid-task: the first version printed only the new one and I compared it
against a figure remembered from CB-WP-0047 -- a comparison against a
board nobody re-ran.
Control that makes the numbers mean anything: under SHARED GROUND the
two policies agree at all but <=2 decision points across 12 boards, so a
moving column is mode-awareness and not simply a different bot.
Also: two T01 tests keyed on `status: proposed`, which ground-game
renamed to `ready-for-implement` mid-session. They now find the module
by asking resolve() -- the structural property is ours and does not move
when another repo edits its vocabulary.
Also: `make vendor` replaces three hand re-vendors with a tool that
regenerates digests by walking editions/, and reports one-sided files
rather than resolving them.
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2.2 KiB
2.2 KiB
Module: end_condition.hybrid_clear_collapse
| aspect | end_condition |
| module_id | end_condition.hybrid_clear_collapse |
| role | End on board clear, group collapse, or max rounds |
| status | ready-for-implement (draft frozen for v0 kernel) |
| rules_delta | rules_delta.yaml |
| design | history/260808-deal-end-sequences-design.md |
Independent of problem_stress / problem_deal / attack_relief. Measure
alone first, then profile scoped_plus_hybrid_end.
Frozen v0 rules
END-CLEAR
After the Solve step: if zero unclaimed Problems remain in play → end the game immediately.
- Apply mode scoring as usual.
- Threshold: if total claimed value ≥ scenario threshold for seat band → group success (SHARED mastery / semi-coalition personal winners as normal).
- If claimed value < threshold but board is empty (should be rare) → group failure (nothing left to claim).
END-COLLAPSE
After Round End stress clamp (and problem-stress ticks if any module active), before Lead rotation:
Collapse if either:
- No seat has Stress ≤ 3, or
- Majority of seats are in an active DARVO sequence (stage ≠ OFF).
Effect:
- End the game.
- Group success = false (SHARED fails).
- Semi / coalition: no personal / coalition winners (table broke).
END-CEILING
If Round 5 completes without CLEAR or COLLAPSE → end with current threshold + mode scoring (identical to baseline fixed-rounds behaviour).
Round max is 5 in v0 (same product length as r0). Changing max is a different module later if needed.
Non-goals (v0)
- Soft collapse (one seat at 5 only).
- Extending rounds when board not clear.
- Mode-specific collapse exceptions.
Success criteria (when clay-borg implements)
- Alone on baseline content: some games end before round 5 (clear or collapse).
- Mean game length ≤ 5 rounds; no hangs.
- With
problem_stress.scoped: collapse rate non-zero for unregulated policies; clear rate non-zero for greedy SHARED at 3–4p. - Does not recreate H1-style 0% greedy wins solely via collapse spam.