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>
45 lines
1.1 KiB
YAML
45 lines
1.1 KiB
YAML
# module: problem_deal.pressure_deck
|
|
# status: ready-for-implement (v0 rules frozen in MODULE.md)
|
|
module_id: problem_deal.pressure_deck
|
|
aspect: problem_deal
|
|
schema_version: 1
|
|
base: ground-darvo-r0
|
|
status: ready-for-implement
|
|
implementation: pending_kernel
|
|
|
|
deltas:
|
|
- id: DEAL-START
|
|
name: reduced_initial_deal
|
|
phase: setup
|
|
effect:
|
|
seats_2_3_initial: [surface, hidden_priority_1]
|
|
seats_4_6_initial: [surface, hidden_priority_1, hidden_priority_2]
|
|
remainder_to: pressure_deck
|
|
pressure_deck_shuffle: deterministic_seeded
|
|
|
|
- id: DEAL-INFLUX
|
|
name: end_round_draw_if_room
|
|
phase: round_end
|
|
when:
|
|
pressure_deck_nonempty: true
|
|
unclaimed_count_lt: open_cap
|
|
effect:
|
|
open_cap: seat_count
|
|
draw_problems: 1
|
|
max_draws_per_end: 1
|
|
place: face_down_unless_global_scope
|
|
|
|
- id: DEAL-OWN
|
|
name: owner_on_draw
|
|
phase: on_pressure_draw
|
|
effect:
|
|
personal_or_bond_owner: current_lead
|
|
global_owner: none
|
|
|
|
- id: DEAL-POINTS
|
|
name: drawn_card_scoring
|
|
phase: data
|
|
effect:
|
|
drawn_point_value: 0
|
|
starter_printed_values: unchanged
|
|
thresholds: unchanged_5_7_9
|