SPRINT18 speced: John's ruling (declining costs you), the emergency callout, the glasshouse tier — lane prompts at the tail

This commit is contained in:
type-two 2026-07-25 18:45:06 +10:00
parent 69a24a3f70
commit fcbeea9b40
2 changed files with 217 additions and 0 deletions

View File

@ -1110,3 +1110,96 @@ then A/B/C/E; D returns at the end for yard 4 + the cold play.
> 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.
# SPRINT 18 prompts (the book of clients, part 2: the night you didn't rig)
Same rules: own clone, own branch, `git fetch origin && git reset --hard
origin/lane/<x>` on a clean tree (or merge origin/main — the integrator will
say). Remote is monster/hardyards.git. Read THREADS' last two [I] entries
(the S17 part-1 and part-2 integrations), then SPRINT18.md, then ROADMAP arc 2
and DESIGN.md lines 29 / 165 / 179 (the emergency callout, release-cut-or-ride,
the glasshouse). Ports: A 8824, B 8825, C 8826, D 8827, E 8828. Baseline
**515/0/0**. FIRING ORDER: A's gate 0 ruling + gate 1 phase land first (the
sprint's critical path); E runs independently from the start; B and C build
against A's published shapes; D returns last for the knife and the cold play.
⚠️ Every lane: the one-variable law binds hard this sprint — the emergency
callout and the glasshouse may NOT debut on the same night, however well
DESIGN.md's own sentence pairs them.
## Lane A — Sprint 18
> You are Lane A on HARD YARDS, Sprint 18. Rebase onto main, read THREADS' last
> two [I] entries, SPRINT18.md, ROADMAP arc 2. Two jobs: (1) gate 0, FIRST and
> FAST — ⚖️ John's ruling: DECLINING A BOOKED NIGHT COSTS YOU. You rule the
> number and the memory (the stood-up client remembers), the cost prints on the
> OFFER CARD before the choice and on the invoice after it, and the
> two-callouts-no-booked-job board state reads as free. (2) Gate 1's spine: THE
> EMERGENCY CALLOUT — a night that starts in storm, no prep, no quote, a
> DISPATCH instead of a job sheet, emergency rates (yours to rule), the whole
> existing ledger running unchanged. Publish the dispatch/emergency-night shapes
> in THREADS EARLY — B, C and D all build against them. Enforce the
> one-variable law in the ordering so a new job type and a new yard cannot debut
> together by accident. Selftest green; mutation-check; look at every card you
> touch. Shepherd as always.
## Lane B — Sprint 18
> You are Lane B on HARD YARDS, Sprint 18. Rebase onto main, read THREADS' last
> two [I] entries, SPRINT18.md. Three jobs, in this order: (1) ⚠️ GATE 2, which
> outranks the features — D's cold play lost p2/p3 on the wildnight flying a
> recipe gardenfly holds 0-lost. Two harnesses disagree: FIND THE VARIABLE
> (D's candidate: hail impact load reaching the rig only in-game). Name it, pin
> it, and rule which harness was lying. (2) Gate 3 — the $5-tier clean boundary:
> D flew your audit's own $40 "clean" line and tr1b broke at 1.17/1.2 kN.
> Re-rule the clean/marginal boundary at the cheap tier by measurement. (3) Gate
> 1's half — THE RIG YOU DIDN'T BUILD: someone else's work as data (hardware
> below the night, at least one corner already gone, rating hints telling the
> truth), the economy of triage (paid on the callout plus what you SAVE — you
> rule whether a garden bonus applies at all and write why), and the CUT the
> knife needs: expose cut-away on the rig, D owns the verb. Build against A's
> published shapes (fetch origin/lane/a mid-flight). Selftest green;
> mutation-check; tables in THREADS.
## Lane C — Sprint 18
> You are Lane C on HARD YARDS, Sprint 18. Rebase onto main, read THREADS' last
> two [I] entries, SPRINT18.md. Two jobs: (1) gate 1's dispatch — THE CALLOUT
> HAS NO FORECAST. You arrive mid-storm inside weather nobody briefed you on:
> rule what an honest read looks like when no paper is coming (what the sky, the
> grass and the gust front tell a tradie who just got out of the ute), and give
> the dispatch its surface. Your honesty gate covers emergency storms like any
> other — a storm that cannot be described honestly cannot be dispatched either.
> (2) The mid-storm arrival is a NEW seam for your storm clock: an entry at
> t≈30 must produce the same storm a t=0 run would have at t=30 (determinism at
> a non-zero start is exactly the class of bug this repo hunts) — pin it. Build
> against A's shapes; fetch origin/lane/a mid-flight. Optional if room: your own
> polish, filed with reasons. Selftest green; disclose any assert that can't
> fail.
## Lane E — Sprint 18 (independent — start immediately)
> You are Lane E on HARD YARDS, Sprint 18. Rebase onto main, read THREADS' last
> two [I] entries, SPRINT18.md gates 4 and 5. Two jobs, your standard: (1) THE
> GLASSHOUSE TIER — DESIGN.md's maximum-fragility asset (line 179: highest pay
> on the board, highest collateral, "your own failure is the worst debris of
> all"). Fragility readable at a glance, a collateral price that makes the gnome
> look like pocket change, a wreck state, manifest entry unambiguous or
> refuse-to-guess with the why, 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 A the moment
> it's placeable. (2) Gate 5 with A — the second-rust-post landmine D filed:
> two corroded posts in one yard share the baked collateral key, so first-match
> resolution plus envelope dedupe would bill or wreck the wrong post. Disarm it
> before a yard author trips it.
## Lane D — Sprint 18 (last: the knife, then the cold play)
> You are Lane D on HARD YARDS, Sprint 18, and you are last on purpose. Rebase
> onto the integrated tree (the integrator will tell you, or main). Read THREADS
> from the last two [I] entries, SPRINT18.md, DESIGN.md line 165. Two jobs:
> (1) THE KNIFE — DESIGN.md's signature decision under load is "release, cut,
> or ride it out", and the cut is yours: a deliberate cut-away that spends the
> sail to save the steel and the collateral. Input, HUD read, and its line on
> the paperwork, all in this sprint (principle 2). B exposes the cut on the rig;
> you own the verb. (2) COLD-PLAY the week through the new board: at least one
> emergency callout, at least one booked night DECLINED (feel the ruling's
> price), and judge it as the playtester — does the knife feel like a decision
> or a button? Does declining cost enough to hurt and little enough to be worth
> it sometimes? Numbers and feel, your standard. Push, THREADS, verdicts per
> gate.

124
SPRINT18.md Normal file
View File

@ -0,0 +1,124 @@
# 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
56 (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.