130 lines
8.1 KiB
Markdown
130 lines
8.1 KiB
Markdown
# 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
|
||
```
|