# SPRINT 13 — THE GARDEN MATTERS, AND THE NIGHT LOOKS LIKE A NIGHT

*Sprint 12 made the trap real and the paperwork beautiful, and the integrator's
QA pass (THREADS, last [I] entry — read it FIRST, it is this sprint's evidence
base) found the gap that's left: the game PLAYS dramatically and LOOKS calm.
The sail died at t=3 on the funnelled buster and the bare bed still finished
83%; a 65 km/h southerly ran under a noon-blue sky; and the public URL
(partly.party/hardyards is LIVE — strangers can reach this game now) had an
Enter exploit that paid full price for a storm that never ran. 335/0/0 at
integration; the Enter fix is hot-fixed and deployed, unpinned.*

Baseline: selftest **335/0/0**. Every landing keeps it green and adds asserts
that can actually fail — mutation-check anything you'd call coverage.

## Gate 1 — THE GARDEN MATTERS (C owns the model, B the audit, D the verdict, A rules)

Three independent sightings of one variable (QA entry, 🌱 section): the sim's
garden outcome barely responds to whether a sail is up. A's GARDEN_DRAIN
comment in main.js names the suspect — the rain shadow decays to ~nothing as
wind builds (driving rain walks under the sail), so a perfect rig is ~23%
drier than a bare bed and NO drain constant can separate good rigging from
none. The core fantasy ("the seedlings are the whole point") is not currently
true in the sim.

1. **C — the shadow geometry is yours.** Diagnose where protection actually
   goes: measure rain-shadow-over-bed and hail-shadow-over-bed across wind
   speeds for (a) a held honest rig, (b) a bare bed, both yards, all five
   storms. Then fix the MODEL, not the constant. Candidate levers, yours to
   choose with measurements: hail carrying more of the damage budget on windy
   nights (stones fall ≤20° off vertical — a sail honestly stops them; rain
   at a 73° lean honestly doesn't), a bed-level occlusion term (the bed has
   sides; driving rain at 73° hits the planting from the side the FENCE and
   sail edge shadow, not the sky), or storm-profile hail timing. The DESIGN
   target A rules on (propose it in THREADS before you tune to it): **a held
   honest rig vs a bare bed must separate by enough that the garden bonus
   reads as earned — think alive-vs-dead on the wild nights, not 88-vs-83.**
2. **B — cover% and bed-HP must become the same quantity.** Your audit's
   "cover" told three people a $20 rig was bad while the sim paid it +$97.
   Whatever C lands, your audit must PREDICT the sim's garden outcome — same
   number, two harnesses, or the tool goes back to lying politely. Re-post
   the per-night winnable-lines table once C's model lands; expect the cheap
   lines to finally price honestly. If the fix re-breaks night balance
   (nights 4–5 were already bank-funded), propose fee/bonus retunes in
   THREADS with the table as evidence — A rules.
3. **D — the verdict.** Replay the three QA scenarios exactly: night 2 cheap
   line, night 3 carport line (sail dead at t=3), night 3 honest line. The
   acceptance is felt, not asserted: losing the sail must COST the garden,
   holding it must SAVE it, and the invoice's garden line must feel earned in
   both directions. File numbers like always.
4. **A — two rulings.** The separation target (C proposes, you rule), and
   whether GARDEN_DRAIN itself moves once the geometry is honest (your
   comment says the constant was compensating; it may want lowering back).

## Gate 2 — THE NIGHT LOOKS LIKE A NIGHT (C + E + D judges; A wires camera)

The QA 🌤 section, in priority order. All sim-visible work stays deterministic
`(dt, t)` — no Date.now, no Math.random in the render path keyed off wall time.

1. **C — storm grade.** Sky colour, light intensity, and shadow softness keyed
   on storm intensity: as the wind builds the sky dims toward slate, the sun
   loses its noon edge, the yard reads WEATHER. Cheap version first (lerp the
   sky/hemisphere/directional intensities off the same intensity curve the
   rain already uses); a dusk baseline palette for the whole week is in scope
   if it stays one constant away from reversible — it is the NIGHT shift.
2. **C — the wall's edges.** From in-yard eye height (not the bench): kill
   the hard vertical seam (soften/feather the bank's ends) and ground the
   base ON the horizon — blue sky under the wall reads as a floating slab.
   D re-judges from inside the yard this time.
3. **C — ambient debris.** A few leaves streaming with the wind from ~30 km/h
   sells the gale better than any HUD number. debris.js is yours; keep the
   count tiny (single digits) and deterministic.
4. **E — wind clips for the player.** Lean/stagger/brace Mixamo clips, staged
   by wind band (calm / working breeze / gale). Ship them like every clip:
   deterministic factory, byte-identical, dims verified, and LOOK at the
   silhouette — your own bike rule. **D wires them** (player.js is D's):
   thresholds off `wind.speedAt(player.pos)`, brace pinned to the C key that
   already exists.
5. **A — two camera fixes.** Spawn framing: the boot camera puts a pole
   dead-centre through the player on every single first impression — bias the
   spawn yaw so the opening frame is player + bed + sail line, no pole. And
   aftermath: the dead draped sail can swallow the camera whole; the cloth
   needs to join the camera's solid set (you own camera.js and its setSolids).
6. **D — judge all of it in play** and fix your two pool nits while you're in
   there: the ladder label says "fascia" on a carport bracket, and the dropped
   spare's whereabouts after a ladder knock are unknown.

## Gate 3 — THE FRONT DOOR (A owns; the public URL earns it)

1. **Pin the Enter fix.** The hot-fix is in main.js with a comment; write the
   regression assert — an `advance()` reachable from 'storm' via keydown must
   go red. Mutation-check it by reverting the guard.
2. **Splash card.** Name, one line of premise ("rig shade sails; keep the
   client's garden alive through the storm"), controls (WASD · mouse orbit ·
   [ ] tension · S spare · E repair · C brace · Enter commit), one START
   button. It is the game's real front door now — a stranger from
   partly.party's arcade should know what to do in five seconds. Keep it in
   hud.js's card system (.card, .go) — it is one more card, not a menu system.
3. **Pause + mute.** P pauses the fixed-dt accumulator (storm only; cards
   already pause by construction), M mutes C's audio bus. Two keys, shown on
   the splash and the help line.
4. **Touch notice.** A coarse-pointer/no-keyboard visitor gets a polite card
   ("HARD YARDS needs a keyboard and mouse — grab a laptop") instead of a
   dead canvas.
5. **Small ones, spread by ownership:** BLOWN label collision when adjacent
   corners die together (B — marker layout is rigging.js); `setHardware()`
   silently no-ops on an unknown key — throw or ticker it (B); dev fps line
   sits under the anchor panel (A); ghost-white sliver near the shed table in
   aftermath — identify and fix or explain in THREADS (D, it smells like the
   ladder ghost); standing-kN preview per corner in prep (B — the panel is
   yours; D's "first lesson costs $60 blind" find); `rig.t` never resets
   between nights (B). **B stretch, only if the gate-1 re-audit leaves room:**
   sweep mixed-hardware lines for fuse behaviour (D's +$147 exhibit) and say
   whether cheap-corner-as-fuse is emergent depth to keep or a hole to close.

## Gate 4 — JOHN PLAYS (six sprints standing, and the URL makes it easy)

partly.party/hardyards, five nights, three sentences in THREADS. The Sprint 14
branch — reputation/warranty vs site_03 vs heatwave days — stays undecided
until they land. Nobody builds any of the three this sprint.

```
gate 1: shadow geometry fixed by measurement · separation target ruled and hit ·
        audit cover% predicts sim garden · D feels the difference both ways
gate 2: storm grade in · wall grounded and seamless from in-yard · leaves fly ·
        player leans into the gale · spawn frame clean · camera can't drown in cloth
gate 3: Enter assert pinned · splash, pause, mute, touch notice shipped ·
        the small-ones list empty or argued in THREADS
gate 4: John's three sentences
```
