# SPRINT 11 — THE CORNER BLOCK IS MEAN, THEN THE JOB SHEET

*Sprint 10 delivered its headline: sites are data. Two yards load from JSON,
night 3 moves to the corner block, the ladder keys on mechanism not type, the
carport is a priced trap with its own wreck, and the fabric plumbing has an
end-to-end assert. 296/0/0. What's left on the site is TUNING and PROOF —
then the game grows its last missing organ: the job sheet.*

Read THREADS from the last [I] entry.

## Gate 1 — prove the corner block (the site seams, all short)

1. **C + A: reconcile the venturi.** Site JSON ships axis 2.1 / gain 1.5; C
   measured storm_03b's post-change wind at −1.08 and proposed gain 1.35.
   Either A oriented the gap differently (tell C the built angle, C matches)
   or the numbers are placeholders (take C's). One THREADS exchange, one edit.
2. **B: fix site_audit's headless false-negative** (your setWorld ask — A is
   reading THREADS), then run it on site_02 WITH the venturi. If no $80 line
   survives the funnel, C drops the gain (their standing offer) before E
   moves the tree.
3. **D: play site_02 cold** — third sprint waiting, now truly unblocked.
   The carport traps should read tempting-not-buggy; the ladder trip through
   a funnelled southerly is the site's whole thesis. Feel notes in THREADS.
4. **A: two small rulings** — the carport collateral number (E proposes $180
   with reasoning in the asset; change the constant, not the asset) and the
   Anchor.type enum widening D flagged (a carport typed 'post' silently joins
   the sail-post family; typed 'carport' it breaks the contract — widen it).

## Gate 2 — THE JOB SHEET (A owns; the landscaper service arrives)

DESIGN.md's callout structure, minimum viable: the week becomes a JOB — a
client, a brief, and pay that reads like an invoice.
- Each night entry gains client + brief text ("the Hendersons want the
  seedlings alive — they leave for Cairns Friday") and a pay schedule
  (base + garden bonus + no-collateral bonus). The forecast card becomes the
  job sheet; the aftermath becomes the invoice.
- Client flavor is data (site JSON or night entry), not code.
- Keep scope honest: no reputation system yet, no job select — one week, five
  jobs, the framing. Sprint 12 decides if reputation/warranty (DESIGN.md's
  consequence loop) is next.
**E**: client-facing juice — job-sheet letterhead, invoice styling, one
per-client prop if cheap (the Hendersons' kid's bike against the fence).
**C**: per-night forecast lead — the job sheet shows tomorrow's ± band
resolving (your forecastLines lead param has waited two sprints for this).

## Gate 3 — JOHN PLAYS THE WEEK (four sprints standing)

The corner block makes it five nights across two yards. `python3 server.py`,
play it with the mouse, three sentences in THREADS. Sprint 12's shape — more
sites vs reputation vs heatwave days — is genuinely undecidable without them.

```
gate 1: venturi reconciled · site_audit passes site_02 · D's notes filed ·
        carport priced · enum widened
gate 2: five jobs with briefs and invoices; the week reads as a landscaper's
        week, not a survival ladder
gate 3: John's three sentences
```
