125 lines
7.5 KiB
Markdown
125 lines
7.5 KiB
Markdown
# SPRINT 18 — THE BOOK OF CLIENTS, PART 2: THE NIGHT YOU DIDN'T RIG
|
||
|
||
*Part 1 shipped whole: the board offers two jobs a morning, client terms refuse
|
||
in the client's own voice, the pool yard is in the game only by being chosen —
|
||
515/0/0. D's cold play asked one question the board couldn't answer and **John
|
||
has RULED it (2026-07-21): declining a booked night COSTS YOU. "It adds
|
||
pressure."** This sprint lands that ruling and opens the arc's second half: job
|
||
types that are not "rig for tonight". The headline is DESIGN.md's own line 29 —
|
||
**the emergency callout: mid-storm, right now, double rates, someone's sail
|
||
flogging itself to death over their glasshouse.***
|
||
|
||
Read THREADS from the last two `[I]` entries. Baseline **515/0/0**; keep it
|
||
green; mutation-check anything you'd call coverage. Every arc ends live
|
||
(ROADMAP principle 1) — main stays shippable.
|
||
|
||
⚠️ **THE ONE-VARIABLE LAW BINDS THIS SPRINT HARDER THAN ANY BEFORE IT.** We are
|
||
shipping a new JOB TYPE (the emergency callout) and a new YARD (the glasshouse)
|
||
in the same sprint, and DESIGN.md pairs them in one sentence. They may **not**
|
||
debut on the same night. The emergency callout debuts over a yard the player has
|
||
already rigged; the glasshouse debuts as an ordinary rig-for-tonight job. The
|
||
sentence they were written for is the payoff, not the introduction — it belongs
|
||
to a later week, and A's ordering must make that impossible to get wrong by
|
||
accident.
|
||
|
||
## Gate 0 — ⚖️ THE RULING LANDS: DECLINING COSTS YOU (A owns; FIRST, fast)
|
||
|
||
John's ruling on D's filing. The board currently lets a fee-maximizer dodge the
|
||
wildnight and the designed-loss icenight — the week's two hardest lessons — at
|
||
zero cost. That is the hole. Close it:
|
||
|
||
1. **A booked night is a promise.** The "TONIGHT, AS BOOKED" offer has a client
|
||
expecting you; the alternative callout does not. Taking the alternative
|
||
stands the booked client up, and standing someone up costs **standing** —
|
||
the currency the whole of arc 1 built for exactly this. A rules the number
|
||
(the mirror of `REP.CLEAN` is the obvious candidate; it is yours to rule and
|
||
to write down as measured-or-unmeasured per house rule).
|
||
2. **The cost is on the CARD, before the choice.** No hidden tax — the offer
|
||
card names what declining the booked job costs, in the client's terms
|
||
("the Hendersons are expecting you"). A choice whose price is invisible
|
||
until the invoice is a trap, and this repo doesn't ship traps without tells.
|
||
3. **The stood-up client remembers.** Their next appearance on the board, or
|
||
their next brief, carries it. Cheap to build (the job log already exists),
|
||
and it is the whole point of "your work follows you".
|
||
4. **The invoice states which job you took and what it cost you to take it** —
|
||
both papers, same as gate 2 constraints in part 1.
|
||
5. **Two callouts, no booked job** is a legal board state: then declining is
|
||
free, and it must READ as free. Pin the asymmetry.
|
||
|
||
## Gate 1 — THE EMERGENCY CALLOUT (the arc's new job type; A spine · B rig · C dispatch · D verbs)
|
||
|
||
ROADMAP: *"you arrive MID-STORM at double rates to someone else's failing rig:
|
||
triage, repair, cut-away. The storm phase already does everything this needs
|
||
except spawn you at t=30 with a rig you didn't build."* Ship it end to end:
|
||
|
||
1. **A — the phase.** A night that starts in `storm`, not `prep`: no rigging
|
||
session, no quote, a **dispatch** instead of a job sheet (there was no time
|
||
to quote — that's the drama). Emergency rates (A rules the multiplier), and
|
||
the ledger runs unchanged: invoice, rep, warranty, all of it.
|
||
2. **B — the rig you didn't build.** Someone else's work, authored as data:
|
||
hardware below what the night needs, at least one corner already gone, the
|
||
rating hints telling the truth about why. The economy of **triage**: paid on
|
||
the callout plus what you SAVE, not on a garden you never had a prep phase
|
||
to protect. B rules whether the garden bonus applies at all and writes why.
|
||
3. **D — the verbs, and DESIGN.md's signature decision: release, cut, or ride
|
||
it out.** The knife is canon (line 165: *cut a sail loose — lose the sail,
|
||
save the anchors*). Ship the knife: a deliberate cut-away that spends the
|
||
sail to save the steel and the collateral. It needs its input, its HUD read,
|
||
and its line on the paperwork in this sprint (principle 2, no exceptions).
|
||
Seam with B: B exposes the cut on the rig, D owns the verb and the input.
|
||
4. **C — the dispatch has no forecast.** You arrive inside weather nobody
|
||
briefed you on. C rules what an honest mid-storm read looks like (what the
|
||
sky and the grass tell you when no paper does), and the honesty gate covers
|
||
emergency storms like any other.
|
||
5. **Publish the shapes EARLY in THREADS** (the seam pattern — it is now the
|
||
thing this repo does best: five lanes, one code conflict in two sprints).
|
||
|
||
## Gate 2 — ⚠️ THE TWO HARNESSES DISAGREE (B owns; the repo's highest-priority class)
|
||
|
||
D's cold play lost p2 and p3 on the wildnight flying a recipe `gardenfly` holds
|
||
0-lost. **"When two harnesses disagree, find the variable"** is a README rule
|
||
and it has never once been wrong. D's candidate: hail impact load reaching the
|
||
rig only in-game. Find it, name it, pin it. If the played path is right, the
|
||
audit has been selling recipes it can't back — say so in the card. If the audit
|
||
is right, D's play found a sim bug. Either way this outranks new features.
|
||
|
||
## Gate 3 — THE $5-TIER CLEAN BOUNDARY (B owns)
|
||
|
||
D flew the audit's own $40 "clean" line on N3 and `tr1b`'s carabiner broke at
|
||
1.17 / 1.2 kN. A card that calls a line clean and then watches it break is the
|
||
card lying — the same defect class as part 1's charter silence, which B fixed
|
||
well. Re-rule the clean/marginal boundary at the cheap tier with measurement,
|
||
not margin-of-taste.
|
||
|
||
## Gate 4 — THE GLASSHOUSE TIER (E owns; DESIGN.md's maximum-fragility asset)
|
||
|
||
*"Highest pay on the board, highest collateral."* Supply glass as a first-class
|
||
fact your family of honesty rules covers: a glasshouse structure whose
|
||
fragility is **readable at a glance** (a tell for "this is the most expensive
|
||
thing you can break in this game"), a collateral price that makes the gnome
|
||
look like pocket change, and a wreck state — your own failure becoming the
|
||
worst debris of all is the whole point. Manifest entry unambiguous or
|
||
refuse-to-guess with the why, as always. It is the emergency callout's eventual
|
||
stage, but per the one-variable law it debuts as an ordinary night — flag A the
|
||
moment it is placeable.
|
||
|
||
## Gate 5 — THE SECOND-RUST-POST LANDMINE (E + A; D's filing, small)
|
||
|
||
Two corroded posts in one yard share the baked `collateral: 'corroded_post'`
|
||
key; first-match resolution plus envelope dedupe would bill or wreck the wrong
|
||
post. The pool yard ships exactly ONE and pins it, so this is armed, not
|
||
firing. Disarm it before a yard author trips it.
|
||
|
||
## Gate 6 — JOHN PLAYS (live URL, the standing gate)
|
||
|
||
partly.party/hardyards after integration. The week where saying no costs you,
|
||
and one night you arrive at somebody else's disaster with a knife. Three
|
||
sentences in THREADS — and this sprint they steer arc 2's close: the cowboy
|
||
audit and warranty-as-a-night are the two job types still unbuilt, and yards
|
||
5–6 (the granny-flat alley, the glasshouse) are waiting on an author.
|
||
|
||
**Deploy note carried from part 1:** main is one sprint ahead of live —
|
||
`tools/deploy_hardyards.sh` needs John's hand or his green light (the
|
||
integrator's session was permission-gated). The rails say the gap never exceeds
|
||
one sprint; part 2 must not ship before part 1 is up.
|