98 lines
4.6 KiB
Markdown
98 lines
4.6 KiB
Markdown
# LANE HANDOVER LOG
|
|
|
|
Coordination file between lanes (Opus 4.8 execution sessions) and the reviewer
|
|
(Fable). **Append-only** — never edit or delete previous blocks. Newest block at the
|
|
BOTTOM. Push after every session so the reviewer can see state remotely.
|
|
|
|
## Protocol
|
|
|
|
1. Before starting work: read this whole file + your lane file in `lanes/` +
|
|
`docs/CONTRACTS.md`. Check for a REVIEW block addressed to your lane — it
|
|
overrides your lane file where they conflict.
|
|
2. Work only inside your lane's owned directories (see BUILD_PLAN.md §2).
|
|
3. End of session: append a SESSION block (template below), commit, push your
|
|
`lane/<name>` branch.
|
|
4. Never merge to main — the reviewer does that.
|
|
5. Blocked on a contract ambiguity? Don't stall and don't silently change the
|
|
contract: stub locally with `// TODO(contract):`, log a CONTRACT CHANGE REQUEST
|
|
below, keep moving.
|
|
|
|
## SESSION block template
|
|
|
|
```markdown
|
|
---
|
|
### SESSION — <LANE-NAME> — <date> <time>
|
|
**Branch/commits:** lane/<name> @ <short-sha>..<short-sha>
|
|
**Done:** bullet list of what actually works now (be honest — "renders but untested" ≠ "done")
|
|
**How to see it:** exact command + what to click (e.g. `npm run dev` → press D → deny 3 patrons)
|
|
**Tests:** X passing / Y failing (name the failures)
|
|
**Broke / known-wonky:** anything you left imperfect
|
|
**Contract change requests:** none | numbered list with justification
|
|
**Questions for reviewer:** none | numbered list
|
|
**Next session should:** bullet list
|
|
```
|
|
|
|
## REVIEW block template (reviewer only)
|
|
|
|
```markdown
|
|
---
|
|
### REVIEW — Fable — <date>
|
|
**Reviewed:** <lanes/commits>
|
|
**Merged to main:** <yes/no + sha>
|
|
**Contract decisions:** rulings on any open change requests
|
|
**Instructions for <LANE>:** what to do next / what to fix first
|
|
```
|
|
|
|
---
|
|
|
|
*(log starts below)*
|
|
|
|
---
|
|
### SESSION — LANE-0 (executed by Fable, reviewer) — 2026-07-19 16:30
|
|
**Branch/commits:** main (reviewer executed Phase 0 directly; no lane branch)
|
|
**Done:**
|
|
- Vite + strict-TS + Phaser 3.90 + Vitest + ESLint scaffold; `Math.random` banned by lint rule.
|
|
- All CONTRACTS.md types verbatim in `src/data/types.ts`.
|
|
- `core/`: SeededRNG (mulberry32, named streams), typed EventBus (snapshot-emit
|
|
semantics), GameClock (real-ms driven, `ageOn` birthday math incl. leap-day),
|
|
Meters (single-writer, hype multiplies positive vibe only, clicker drift),
|
|
StubBeatClock (128 BPM), versioned corrupt-safe localStorage save.
|
|
- `data/`: outfit vocabulary (+PALETTE), 9 archetypes, 10 contraband items,
|
|
17 Dazza texts (8 rule-bearing with ruleIds).
|
|
- `patrons/`: generator (fake-ID tell system, DOBs clustered near the 18
|
|
boundary, late-arrival drunk drift), pure `dollPlan` + Phaser `renderDoll`
|
|
(3 poses, drunk tells baked), regulars' memory store.
|
|
- `rules/drunk.ts`: drunkStage thresholds.
|
|
- ParadeScene demo: rainy street, kebab-shop + venue dressing, 24-walker parade
|
|
with ID cards rendered from the same data, SPACE reseed / D toggle cards.
|
|
- 49 tests green; lint/build/test gate clean.
|
|
**How to see it:** `npm run dev` → http://localhost:5199 (in the Claude preview
|
|
pane, drive frames per CLAUDE.md "Dev notes"). Watch for an `almost18` label
|
|
walking under an ID card claiming 18+ — that's the whole game in one image.
|
|
**Tests:** 49 passing / 0 failing.
|
|
**Broke / known-wonky:**
|
|
- ID cards overlap when the footpath is crowded — cosmetic, parade-only.
|
|
- `window.game` debug handle exposed in main.ts (deliberate, for pane-driving).
|
|
- Spec deviations: doll renderer split into `dollPlan.ts` (pure) + `doll.ts`
|
|
(Phaser) — better than spec'd, plans are pixel-testable without a GPU; added
|
|
a 5th fake-ID tell (expired real card, no boolean tells); no MainMenu scene
|
|
(Boot → Parade direct) — menu is Phase 2 shell work.
|
|
**Contract change requests:** none (contracts implemented as written).
|
|
**Questions for reviewer:** n/a (self-reviewed).
|
|
**Next session should:** Phase 1 lanes are OPEN — see REVIEW block below.
|
|
|
|
---
|
|
### REVIEW — Fable — 2026-07-19
|
|
**Reviewed:** Phase 0 (self-executed; verified via test gate + in-browser parade).
|
|
**Merged to main:** yes (direct).
|
|
**Contract decisions:** CONTRACTS.md now frozen. Extension requests via this file.
|
|
**Instructions for Phase 1 (LANE-DOOR, LANE-FLOOR, LANE-JUICE):**
|
|
1. Branch from current main into `lane/door` / `lane/floor` / `lane/juice`
|
|
(worktrees if sharing a machine). Read your lane file's new
|
|
"Phase-0 reality" section FIRST — it corrects the original spec where the
|
|
landed code differs.
|
|
2. LANE-DOOR is the critical path; if only one Opus session is available, run
|
|
DOOR first, JUICE second, FLOOR third.
|
|
3. Every session ends with the gate + a SESSION block here + a push. Fable
|
|
reviews on request ("review the lanes").
|