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
This commit is contained in:
codex 2026-08-25 19:30:13 +02:00
parent 9458d0256a
commit b5730f280b
55 changed files with 2937 additions and 150 deletions

View file

@ -0,0 +1,7 @@
# Module: `problem_deal.fixed_setup`
| | |
|---|---|
| **aspect** | `problem_deal` |
| **role** | **Default.** Surface + hidden 1..k at setup only; no mid-game Problem influx. |
| **status** | baseline-default |

View file

@ -0,0 +1,77 @@
# Module: `problem_deal.pressure_deck`
| | |
|---|---|
| **aspect** | `problem_deal` |
| **module_id** | `problem_deal.pressure_deck` |
| **role** | Small start set + mid-game **Pressure deck** draws |
| **status** | **ready-for-implement** (draft frozen for v0 kernel) |
| **rules_delta** | [`rules_delta.yaml`](rules_delta.yaml) |
| **design** | [history/260808-deal-end-sequences-design.md](../../../history/260808-deal-end-sequences-design.md) |
Independent of end_condition. **Recommended** compose with
`problem_stress.scoped` so drawn scopes matter. Measure alone first if
possible (with default problem_stress.none, influx still adds board clutter).
## Frozen v0 rules
### DEAL-START
- **Always in play at setup:** Surface Problem (priority 0).
- **Also deal face-down:** hidden priority **1** (and priority **2** only if
seats ≥ 4).
- All other scenario Problems for that scenario go into the **Pressure deck**,
shuffled with the game seed (deterministic).
- Seat-band `k` from r0 does **not** bulk-deal the rest; influx replaces
“deal all k at once.”
| seats | starters in play | rest → pressure deck |
|------:|------------------|----------------------|
| 23 | Surface + H1 | H2… |
| 46 | Surface + H1 + H2 | H3… |
### DEAL-INFLUX
At **Round End** (after problem-stress ticks if any, before DARVO arm):
- If Pressure deck non-empty **and** unclaimed Problems in play < **open_cap**,
draw **1** card into play.
- **open_cap** = number of seats.
- Placement: face-down if hidden/personal/bond as printed; Surface-like global
face-up if scope is global.
- Stop drawing for that End once one card is drawn (v0: max 1 per round).
### DEAL-OWN (if problem_stress.scoped also active)
- **personal:** owner = Lead at time of draw (or next free seat clockwise if
Lead already owns ≥2 personal — v0 simplify: **drawer seat = current Lead**).
- **bond:** same owner rule; network = Bond network of owner.
- **global:** no owner.
If `problem_stress.none`, owners may still be recorded for table clarity but
have no stress effect.
### DEAL-POINTS (v0)
- Cards that entered via **Pressure deck draw** have **point_value 0** for
scoring (stress / fiction only).
- **Starters** keep printed `point_value`.
- Scenario **thresholds unchanged** (5/7/9) and apply only to starter claims
+ any printed values that were starters.
This avoids reopening GR-E01 arithmetic while testing influx.
## Non-goals (v0)
- Problems in Solution hand.
- Multiple draws per round.
- Owner-only SOLVE.
- Changing thresholds mid-game.
## Success criteria (when clay-borg implements)
1. Games show mid-game influx (deck depletes or open_cap binds).
2. With scoped stress: variance and DARVO still possible; greedy SHARED 34p
wins not collapsed to H1-zero.
3. Threshold success still well-defined (starter points only).
4. Composable: works with default end_condition and with hybrid end.

View file

@ -0,0 +1,45 @@
# 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