HardYards/SPRINT13.md

130 lines
8.1 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# 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 45 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
```