Sprint 17 plan + prompts: the book of clients pt 1 — the board; John's seven-night ruling recorded

This commit is contained in:
type-two 2026-07-21 00:09:22 +10:00
parent f27539d716
commit a1b7d468a4
3 changed files with 216 additions and 0 deletions

View File

@ -1012,3 +1012,101 @@ get pinned — no pre-ruling number survives into a pin.
> projectile, priced like it matters). Flag D in THREADS as each lands. Axis
> trap stands: measure exported GLBs in three.js coords, look at the render
> in assetcheck, never trust a docstring about orientation.
---
# SPRINT 17 prompts (the book of clients, part 1: the board)
Same rules: own clone, own branch, `git fetch origin && git reset --hard
origin/lane/<x>` on a clean tree. Remote is monster/hardyards.git. Read
THREADS' last two [I] entries (the TEETH integration + John's seven-night
ruling), then SPRINT17.md, then ROADMAP.md arc 2. Ports: A 8824, B 8825,
C 8826, D 8827, E 8828. Baseline **473/0/0**. FIRING ORDER matters this
sprint: D's gate-0 rewire lands first (A builds the board on the wired week);
then A/B/C/E; D returns at the end for yard 4 + the cold play.
## Lane D — Sprint 17, first pass (gate 0.1 ONLY — land it fast)
> You are Lane D on HARD YARDS, Sprint 17, first pass. Rebase onto main, read
> THREADS' last two [I] entries, SPRINT17.md gate 0.1. John ruled SEVEN
> nights: restore the wildnight to the week (your S16 filing's own
> alternative). You own the order under the one-variable law; the obvious slot
> is between the swing lawn and the icenight, but it's your call — write the
> restored night's brief in the voice the week has earned. Your six-night law
> pins and a.test's week asserts MOVE with the ruling (that's them working).
> Selftest green, push origin lane/d, [D] THREADS entry with the ladder as
> wired. Nothing else this pass — A is waiting on you. Yard 4 and the cold
> play come back to you at the end of the sprint.
## Lane A — Sprint 17
> You are Lane A on HARD YARDS, Sprint 17. Rebase onto main AFTER D's gate-0.1
> seven-night rewire lands (check origin/lane/d or main). Read THREADS' last
> two [I] entries, SPRINT17.md, ROADMAP arc 2. Three jobs: (1) gate 0.4 —
> RULE the hail-light balance question B filed (retune, or canon that some
> nights the sail is for the steel; write it either way) and consult on B's
> gate-0.3 score-header wording. (2) Gate 1, the sprint's spine: THE JOB
> BOARD — two offers each morning (the scripted spine + one seeded
> alternative), offer cards showing client/site/forecast/fee/collateral
> exposure, the chosen job running the entire existing ledger unchanged.
> Publish the offer/night data shapes in THREADS EARLY — B, C and D all build
> against them. Deterministic seeding (week + night index; no Date.now).
> (3) Gate 2 data shape: constraints as night data ("nothing attached to the
> house", "cheapest option and I'll sue" budget cap), premium priced (you
> rule the number), stated on BOTH papers and on the offer. B enforces; agree
> the seam in THREADS. Selftest green (baseline moves with D's rewire);
> mutation-check; look at every card you touch. Shepherd as always.
## Lane B — Sprint 17
> You are Lane B on HARD YARDS, Sprint 17. Rebase onto main, read THREADS'
> last two [I] entries, SPRINT17.md. Four jobs, roughly in order: (1) gate
> 0.2 — the heal re-arm edge from D's poison poke (a fully-broken sail can't
> re-arm the heal); fix + negative control. (2) Gate 0.3 — the soaker
> score-header disclosure: one honest line naming the card's cloth charter
> ("scored on CLOTH — the F key is not the audit's to bet" or better; A
> consults on wording). (3) Gate 2 — enforcement: the rigging session refuses
> constrained picks with the client's words (house ban), enforces the budget
> cap at commit, and SCORE IT honours constraints when scoring a constrained
> night — a card that recommends a forbidden line is the card lying. Build
> against A's published shapes (fetch origin/lane/a mid-flight; the seam
> pattern). (4) Gate 3 support: when D's pool yard lands, gauntlet it —
> winnable lines, separation pinned XOR refused, corroded steel priced
> honestly in the card. Selftest green; mutation-check; tables in THREADS.
## Lane C — Sprint 17
> You are Lane C on HARD YARDS, Sprint 17. Rebase onto main, read THREADS'
> last two [I] entries, SPRINT17.md. Two jobs: (1) gate 1 support — the offer
> card's forecast lines: each board offer shows its storm's honest band
> (forecastFor/leadFor are yours; lead 0 for tonight's offers), and the
> seeded alternative pool's storm pairings respect every per-storm honesty
> gate you shipped (a storm the forecast can't describe honestly doesn't get
> offered). Build against A's published shapes; fetch origin/lane/a
> mid-flight. (2) Second-harness the board's collateral-exposure number
> against your envelope on at least one offer (two harnesses, one number, by
> construction — the S14 pin pattern). Optional if room: your own wind-panel
> or forecast polish, your call, filed with reasons. Deterministic (dt,t) as
> always; selftest green; disclose any assert that can't fail.
## Lane E — Sprint 17
> You are Lane E on HARD YARDS, Sprint 17. Rebase onto main, read THREADS'
> last two [I] entries, SPRINT17.md gate 3.1. One job, your standard: THE
> CORRODED TIER for the pool yard — a corroded post variant with a visual
> tell readable at a glance (corrosion a player can't see is a trap with no
> tell, which this repo doesn't ship), reduced rating_hint (your number,
> reasoning baked beside it), manifest entry (unambiguous — one rating per
> type — or refuse-to-guess with the why), wreck if priceable, negative
> controls red-then-green, byte-identical factory runs, LOOK at the render.
> File the editor palette hunk verbatim in THREADS (the _v1 suffix is
> load-bearing) and flag D the moment it's placeable — their pool yard waits
> on you. If ANCHOR_TYPE needs a word, make the edit and flag A (the
> swing_frame precedent).
## Lane D — Sprint 17, second pass (gates 3.2 + cold play — after A/B/C/E land)
> You are Lane D on HARD YARDS, Sprint 17, second pass. Rebase onto the
> integrated tree (the integrator will tell you, or main). Author THE POOL
> YARD cold in the editor — E's pool kit + corroded tier, fence compliance as
> the thesis, scored iteratively, separation pinned XOR refused — and enter
> it in the board's alternative pool, the first yard whose only route into
> the game is being CHOSEN. Then cold-play a full seven-night week through
> the board: take at least one alternative offer and one constrained job,
> and judge everything as the playtester — does choosing feel like running a
> business? Does a constraint read as a client or as a rule? Numbers and
> feel, your standard. Push, THREADS, verdicts per gate.

111
SPRINT17.md Normal file
View File

@ -0,0 +1,111 @@
# SPRINT 17 — THE BOOK OF CLIENTS, PART 1: THE BOARD
*TEETH shipped whole: six nights, warranty on the sheet, reputation on the
letterhead, the membrane night, three new props — 473/0/0, live. Gate 6's
eviction question is RULED (John, 2026-07-21): **seven nights — the wildnight
comes back.** This sprint lands that ruling, clears TEETH's filed follow-ups,
and opens ROADMAP arc 2: the week stops being a script and starts being a
choice. Part 1 is the BOARD; part 2 (Sprint 18) is the callout job types.*
Read THREADS from the last two [I] entries. Baseline **473/0/0**; keep it
green; mutation-check anything you'd call coverage. Every arc ends live
(ROADMAP principle 1) — main stays shippable.
## Gate 0 — THE RULINGS LAND (small, sequenced FIRST — everyone builds on them)
1. **D: the seven-night week.** Wildnight restored (your S16 filing's own
alternative, now ruled). You own the order — the obvious slot is between
the swing lawn and the icenight, but it's yours to wire under the
one-variable law. Your six-night law pins MOVE with the ruling (that's them
working, not breaking); a.test's week asserts likewise. Brief for the
restored night is yours. Land this FAST — A's board builds on the wired
week, so this gate is the sprint's critical path for about an hour.
2. **B: the heal re-arm edge** (your own S16 filing via D's poison poke: a
fully-broken sail can't re-arm the heal). Fix + negative control.
3. **A + B: the soaker score-header disclosure** (D's surface question): SCORE
IT reads "WINNABLE at $80" over an all-DEAD cloth garden without naming its
cloth charter. One honest line in the score header ("scored on CLOTH — the
F key is not the audit's to bet"), B's card, A consulted on wording.
4. **A: the hail-light balance ruling** (B's S16 filing: on the earlybuster
and southerly nights the whole rig market buys ~$4 of garden bonus — bare
beds win by 30+). B named the levers in THREADS. Rule it: retune, or canon
("some nights the sail is for the STEEL and the collateral, not the bed" —
which the refused pins already document honestly). Either way, write it.
## Gate 1 — THE JOB BOARD (A owns; the arc's spine)
From ROADMAP arc 2: mornings offer callouts, you take ONE. Minimum honest
version this sprint:
1. Each morning offers **two jobs**: tonight's scripted night (the seven-night
spine survives — it is the campaign and the test fixture) plus ONE
alternative drawn from a pool (seeded from the week + night index —
deterministic, no Date.now; same week, same offers, always).
2. The offer card shows what a tradie would demand before saying yes: client,
site, storm forecast band (C's honest lines), the fee, and the risk surface
(collateral exposure at minimum — B's engines already price it; a full
score is gate-2 material, not needed to ship the board).
3. Take one; the other vanishes (no backlog, no reputation effect for
declining — Sprint 18 decides if saying no costs you). The chosen job IS
the night: brief, quote, invoice, ledger, rep — everything already works
per-night and must keep working unchanged on a chosen night.
4. Publish the offer/night data shapes in THREADS EARLY (the seam pattern) —
B (constraints), C (forecast lines), D (cold play) all build against them.
5. The alternative pool this sprint can be small and honest: the two unused
yard/storm pairings the one-variable law allows, plus repeat visits at
different pay. Variety scales in Sprint 18 with the callout types.
## Gate 2 — CLIENT CONSTRAINTS (A data · B enforcement · both argue it on paper)
ROADMAP: "client personalities as constraints — data on the night, enforced by
the rigging session, argued on the job sheet." Ship TWO this sprint, end to end:
1. **"Nothing attached to the house."** The rigging session refuses house
anchors with the client's words in the ticker; the job sheet says it up
front; the yard's honest lines shrink accordingly (B: SCORE IT must honour
the constraint when scoring a constrained night — a card that recommends a
forbidden line is the card lying).
2. **"Cheapest option and I'll sue."** A hard rig budget below START_BUDGET on
that night (the client caps your spend, not your wallet); the sheet names
it; the session enforces it at commit.
3. Constraints are data on the night entry (A's shape), enforcement is B's
session, and BOTH papers state them — the invoice repeats the constraint it
was paid under. A constrained night pays a premium (A rules the number);
the board (gate 1) shows the constraint on the offer, so taking it is a
choice.
## Gate 3 — YARD 4: THE POOL YARD (E supplies · D authors · the gauntlet prices)
1. **E: the corroded tier.** The pool yard's thesis (ROADMAP): fence
compliance + corroded cheap hardware. Supply corrosion as a first-class
fact your family of honesty rules covers: a corroded post variant (visual
tell + reduced rating_hint, your call on the number with reasoning baked
beside it, manifest entry, wreck if priceable). It must be READABLE at a
glance — corrosion a player can't see is a trap with no tell, which this
repo doesn't ship.
2. **D: author the pool yard COLD in the editor** — E's pool kit (fourteen
honest noes) plus the corroded steel plus whatever the palette offers.
Score it iteratively (that's what S15 bought), separation pinned XOR
refused, then play it. It enters the BOARD's alternative pool (gate 1),
not the scripted spine — the first yard whose only route into the game is
being chosen.
3. Placement facts and wreck aprons per E's THREADS entries — the axis trap
is paid for in advance now, keep it that way.
## Gate 4 — JOHN PLAYS THE SEVEN (live URL, the standing gate)
partly.party/hardyards after integration: seven nights, one wallet, the board
offering choices, a constrained client or two, ★ on the letterhead. Three
sentences in THREADS — and this sprint they steer Sprint 18's callout types
(emergency mid-storm arrival vs the cowboy audit vs warranty-as-a-night: which
sounds like YOUR game?).
```
gate 0: seven nights wired · heal re-arms · score header discloses cloth ·
hail-light balance ruled in writing
gate 1: two offers each morning, seeded honest, chosen job runs the whole
ledger unchanged · shapes published early
gate 2: two constraints enforced by the session, argued on both papers,
priced with a premium, visible on the offer
gate 3: corroded tier readable at a glance · pool yard authored cold, priced,
pinned-or-refused, in the alternative pool
gate 4: John's three sentences aim Sprint 18
```

View File

@ -8198,3 +8198,10 @@ anchors are your GLB), but the tooling is now waiting, not TODO.
home — is currently NOT IN THE WEEK. D's one-line alternative: a seven-night week. John: play
the six at partly.party/hardyards, then rule — six without the wildnight, or seven with it.
Everything else about arc 1 (teeth) is DONE.
[I] 2026-07-21 — ⚖️ **JOHN RULED: SEVEN NIGHTS. The wildnight comes back.** Gate 6's eviction
question, answered by the man himself: the week grows to seven rather than ship without its
marquee storm. D's one-line alternative is now the plan — wildnight restored (D owns the order;
the S16 law pins move WITH the ruling, which is them working), hud already reads NIGHTS.length
so the papers tell the truth by construction. SPRINT17 gate 0 lands it; arc 2 (THE BOOK OF
CLIENTS) begins in the same sprint. The play half of gate 6 stands as ever.