Phase 2: Season 1 Vertical Slice (Soil) - Discussion Log
Audit trail only. Do not use as input to planning, research, or execution agents.
Decisions are captured in CONTEXT.md — this log preserves the alternatives considered.
Date: 2026-05-09
Phase: 2 — Season 1 Vertical Slice (Soil)
Areas discussed: Garden geometry & input · Time density (growth + offline) · Lura's Season 1 arc shape · Letter-from-the-garden composition · Begin screen treatment · Memory Journal access + layout · Visual placeholder treatment for plants · Phase 2 Settings UI scope
Garden Geometry & Input
Garden shape
| Option |
Description |
Selected |
| Small fixed grid (4×4 = 16 tiles) |
Intimate walled-garden feel; matches cozy/contemplative tone and Phase 2 minimum-viable bias. |
✓ |
| Medium fixed grid (6×6 = 36 tiles) |
More room to experiment and more strategic depth, but Season 1 will feel emptier with sparse early plantings and authored-content scope grows. |
|
| Freeform / non-grid (5–7 named planting points) |
Bespoke, painterly walled-garden feel. More work upfront and harder to cleanly extend in Seasons 2+. |
|
Seed placement input
| Option |
Description |
Selected |
| Click empty tile → inline seed picker |
Clicking an unoccupied tile pops a small inline picker. Honors UX-01 'no UI clutter'. |
✓ |
| Persistent seed sidebar + click empty tile |
More discoverable but introduces a permanent UI element that fights the A Dark Room rule. |
|
| Drag-from-inventory to tile |
Tactile, but more failure modes and more Phase 3 polish to feel right. |
|
Plant type count
| Option |
Description |
Selected |
| 2–3 plant types |
Player exercises real choice; small enough to author + concept-art under Phase 2's minimum-viable bias. |
✓ |
| Just 1 plant type |
Most minimum-viable possible; risks slice feeling like a single-mechanic demo. |
|
| 4–6 plant types |
Richer Season 1 with more variety, but ≈4× the authored-content + concept-art surface. |
|
Seed supply
| Option |
Description |
Selected |
| Infinite seeds from start |
Anti-FOMO; meaningful constraint is time, not seed inventory. |
✓ |
| Harvest yields seeds + fragment |
Adds a light economy; risks turning the cozy slice into a resource-management loop. |
|
| Limited starter seeds + replenish via composting |
Couples composting and planting tightly; risks player feeling soft-locked. |
|
Plant unlock progression
| Option |
Description |
Selected |
| First plant from start, others unlock by fragment-count |
Drip-feeds discovery without ceremony. |
✓ |
| All available from start |
Simplest sim; loses small but real beat of progression. |
|
| Unlocks tied to specific authored fragments |
Most narrative; brittle if deterministic selector reorders things. |
|
Empty tile look in Phase 2
| Option |
Description |
Selected |
| Faint outlined tile + subtle hover state |
Readable but unembellished; Phaser primitive; no asset work. |
✓ |
| Visible 'empty plot' placeholder texture |
More legible at a glance, but bakes in a visual Phase 3 will throw away. |
|
| Invisible tiles (only become visible on hover) |
Maximum tonal restraint; risks confusing first-time players. |
|
Post-harvest tile state
| Option |
Description |
Selected |
| Returns to empty + brief acknowledgement |
Fastest loop, cleanest sim, honors cozy 'release' feel. |
✓ |
| Leaves a 'spent' state for a short cooldown |
Adds an extra plant lifecycle state to sim and save schema. |
|
| Fragment must be 'taken to the journal' first |
Tactile but couples sim and UI tightly and adds dangling state. |
|
Time Density (Growth + Offline)
First-plant growth duration in active play
| Option |
Description |
Selected |
| ~2–5 minutes |
Cozy but watchable; lets a playtest session complete the loop in ~10 minutes. |
✓ |
| ~30 seconds – 2 minutes |
Demo-pace; reads less 'idle'. |
|
| ~15–60 minutes |
True idle; hard to playtest end-to-end without a debug fast-forward. |
|
| ~6–12 hours (long-form idle) |
Anchors 24h cap; risks empty active play; demands strong return-screen. |
|
Per-plant duration variance
| Option |
Description |
Selected |
| Vary (short / medium / longer) within band |
Real time-vs-yield tradeoffs; tonal identity per plant. |
✓ |
| All identical growth times |
Simplest sim; loses 'patience-is-rewarded' beat. |
|
| All identical for Phase 2; vary later |
Avoids re-litigating; means Season 1 plants feel interchangeable. |
|
Ready-state behavior
| Option |
Description |
Selected |
| Auto-harvest during offline; manual in active play |
Cleanest idle-game shape; lets the letter tell a story. |
✓ |
| Wait indefinitely — manual always |
Maximum agency; offline payoff feels thin. |
|
| Decay if unharvested past a threshold |
Adds tension and soft FOMO undercurrent — likely runs into anti-FOMO doctrine. |
|
24h offline cap surfacing
| Option |
Description |
Selected |
| Capped silently in the letter's voice |
Anti-FOMO; tonally consistent. |
✓ |
| Explicit cap notice in the letter |
Honest about the cap; risks reading as a system message. |
|
| Cap silently and never mention it |
Cleanest tone; player returning after 3 days might be confused. |
|
Lura's Season 1 Arc Shape
Lura form
| Option |
Description |
Selected |
| Discrete visits at the gate |
Bounded each visit; matches bible's 'she appears at the garden gate' framing. |
✓ |
| Single ongoing text-message thread |
More 'friend texting,' but loses gate-arrival beat. |
|
| Hybrid: gate + occasional texts between visits |
Two narrative-state mechanisms; risks Phase-2 scope creep. |
|
Beat count
| Option |
Description |
Selected |
| 3 beats: arrival · mid · farewell |
Tight Season 1 arc; small authoring surface; load-bearing for tone. |
✓ |
| 5 beats (arrival, two mid, late, farewell) |
More texture; doubles authoring + Ink-state plumbing surface. |
|
| Just 1 arrival beat in Phase 2 |
Simplest; Season 1 loses tonal anchor and prologue feels unfinished. |
|
Beat gating
| Option |
Description |
Selected |
| Fragment count thresholds (1st / 4th / 8th harvest) |
Simple, content-coupled, robust to varying play sessions. STRY-10 satisfied. |
✓ |
| Specific authored-fragment IDs unlock specific beats |
Most narratively rich; brittle if selector reorders things. |
|
| Pure tick-count thresholds |
Cleanest against STRY-10; least responsive to player action. |
|
Beat-fire UX
| Option |
Description |
Selected |
| Subtle gate indicator + player-initiated visit |
Honors A Dark Room rule and player's pace. |
✓ |
| Auto-opens dialogue when beat fires |
Disrupts gardening flow; less cozy. |
|
| Queues silently; player finds Lura by clicking gate when curious |
Most A-Dark-Room; risks player missing all 3 beats. |
|
Letter-from-the-Garden Composition
Composition method
| Option |
Description |
Selected |
| Authored skeleton + templated insertions |
Best balance of voice and reactivity. |
✓ |
| Fully procedural from event-log templates |
Risks tonal drift; voice depends on templates not authoring. |
|
| Fully hand-authored prose, conditional inclusion only |
Maximum voice control; least reactive. |
|
Authoring format
| Option |
Description |
Selected |
| Ink (.ink files in /content/dialogue/) |
Reuses STRY-06 stack — one runtime path, one tooling path. |
✓ |
| Markdown with frontmatter (in /content/letters/) |
Aligns with fragment authoring; adds a second narrative-rendering path. |
|
| Both — Ink for branching, Markdown for prose passages |
Maximum power; introduces a third loader path. |
|
Offline event log scope
| Option |
Description |
Selected |
| Compact summary (counts + IDs of bloomed/harvested + any unfired Lura beat) |
Compact, sufficient, bounded in size. |
✓ |
| Full ordered timeline (every state transition with timestamp) |
Most powerful; biggest schema surface and storage cost. |
|
| Just last/biggest event(s) |
Smallest schema; letter has less to say across multiple returns. |
|
Letter UX (when shown / dismiss)
| Option |
Description |
Selected |
| On return after ≥5 minutes; full-screen overlay; one tap to dismiss |
Avoids letter-spam; full-screen honors tonal weight. |
✓ |
| Always show on tab return regardless of duration |
Most consistent; risks feeling intrusive. |
|
| Inline pane (slides in from a corner) |
Less disruptive; loses 'sit with this' tonal beat. |
|
Begin Screen Treatment
Phase 2 vs Phase 3 split
| Option |
Description |
Selected |
| Tasteful placeholder; Phase 3 paints |
Honors no-aesthetic-polish bias; avoids Phase 3 rework. |
✓ |
| Real painted gesture-gate now |
Strongest first impression today; pulls Phase 3 work earlier and risks scope creep. |
|
| Title text only (no visual treatment) |
Most-A-Dark-Room; risks reading as unfinished. |
|
Subsequent-load behavior
| Option |
Description |
Selected |
| Every load (browser autoplay policy demands it) |
Honest with browser constraints; Recommended option. |
|
| Only first run; subsequent loads skip to garden + audio enables on first interaction |
Smoother return; brief silent moment until first interaction. |
✓ |
| Only first run; explicit 'enable sound' prompt later |
Two surfaces to maintain; risks system-message feel. |
|
Notes: User picked the smoother-return path, accepting the brief silent moment until the first interaction as a worthwhile tradeoff for cozy pacing. CORE-05 + AEST-07 are both still satisfied — the gesture happens on first run; subsequent loads use any first interaction as the gesture.
Memory Journal Access + Layout
Open mechanism
| Option |
Description |
Selected |
| Small persistent icon + keyboard shortcut |
Most discoverable without violating UX-01; Recommended option. |
|
| Reveals after first harvest, then persistent |
Most A-Dark-Room (UI grows as player progresses). |
✓ |
| Hidden until journal hotkey is discovered |
Maximum tonal restraint; high risk players miss it. |
|
Layout
| Option |
Description |
Selected |
| Slide-in side panel; click a fragment to expand inline |
Garden stays visible; lets player feel rooted; Recommended option. |
|
| Full-screen modal overlay; back button to return to garden |
More tonal weight per visit; player can't see plants ripening while reading. |
✓ |
| Dedicated 'journal view' you navigate to, like a separate room |
Most narratively rich; biggest implementation lift. |
|
New-fragment surfacing in active play
| Option |
Description |
Selected |
| Immediate full-text reveal modal; dismiss to return to garden |
Honors harvest as a small event; creates a memorable beat. |
✓ |
| Quiet deposit — small acknowledgement, find it in journal later |
Most A-Dark-Room; risks player never reading the prose. |
|
| Inline reveal at the harvested tile; tap to dismiss |
Tactile but fragile (DOM positioned over Phaser canvas resizes). |
|
Visual Placeholder Treatment for Plants
Plant look per growth stage
| Option |
Description |
Selected |
| Simple Phaser-primitive shape per stage, single color per type |
No PNG asset work; firewall stays clean; Phase 3 swaps in painted sprites. |
✓ |
| Programmer-art sprite per stage per plant (PNG placeholders) |
Differentiates more legibly; produces throwaway assets that go through provenance gate. |
|
| Text labels at the tile instead of any visual |
Most A-Dark-Room; reads as severe. |
|
Ready-state cue
| Option |
Description |
Selected |
| Subtle glow / pulse on ready tiles |
Reads at a glance without text; Phase 3 paints over with warmer light. |
✓ |
| Bright color shift on the placeholder shape |
Most legible; bakes a specific color Phase 3 will rework. |
|
| Text indicator at tile ('ready') |
Very explicit; least cozy. |
|
Phase 2 Settings UI Scope
Settings UI scope
| Option |
Description |
Selected |
| Save management only (Export/Import + Restore prior snapshot) |
Smallest scope that completes deferred Phase-1 surfaces; audio + accessibility stay in Phase 8. |
✓ |
| Save management + audio sliders |
Doesn't fit 'no aesthetic polish' framing; risks dragging in keyboard nav and accessibility. |
|
| No settings menu at all in Phase 2 |
Smallest Phase-2 lift; deferred items still aren't player-reachable. |
|
Access
| Option |
Description |
Selected |
| Small icon in a corner of the main view + keyboard shortcut |
Same restraint pattern as Memory Journal affordance. |
✓ |
| Hidden in a 'cog' on Begin screen + accessible from Lura's gate |
Risks burying critical save-recovery affordances. |
|
| Only accessible via hotkey (no visual affordance) |
Risks players losing access to save recovery in a crash recovery moment. |
|
navigator.storage.persist() outcome surfacing
| Option |
Description |
Selected |
| One-time soft toast on first save if denied; nothing if granted |
Honors UX-01 + cozy tone; respects 'surfaces the result respectfully'. |
✓ |
| Always show 'persistent storage: yes/no' indicator in Settings only |
Player won't know save is at risk if persistence denied. |
|
| Modal dialog if denied |
Strongest call to attention; reads anti-cozy. |
|
Claude's Discretion
Areas where the user explicitly deferred to implementation choice (full list in CONTEXT.md <decisions> § "Claude's Discretion"):
- Specific growth-duration values per plant within the 2–5min band.
- Exact fragment-count thresholds for plant unlocks and Lura beats (model is locked, values may shift ±1–2 in playtest).
- Form of the post-harvest acknowledgement beat (text / particle / pause).
- Form of Lura's gate indicator on beat-unlock.
- Tick rate / sim cadence (likely 4–10Hz).
- Internal Zustand store slice shapes.
- Internal Phaser scene tree.
- Specific copy of Begin screen, persistence-denied toast, post-harvest acknowledgement (must match bible voice; user reviews).
- e2e fast-forward mechanism (hidden hotkey vs URL flag vs sim-clock injection).
- Memory Journal empty-state copy.
Deferred Ideas
Items mentioned during discussion that belong in other phases (full list in CONTEXT.md <deferred>):
- Hybrid Lura presence (gate + ambient drip) — possibly Phase 4+.
- Plant-type unlocks tied to specific authored fragments — possibly Phase 4+.
- Fully procedural letter from event-log templates — reconsider if slot vocabulary too small in playtest.
- Audio sliders, keyboard nav, browser-zoom guarantees, color-redundant icons, tab-title bloom, Lura-not-numbers UX — Phase 8.
- Visual regression for asset library — Phase 8.
- Roothold prestige, Season transitions, die-off, finite ceiling enforcement, cross-pollination — Phase 4.
- Memory Storms, place-memory vignettes, Nameless Man's full arc — Phase 5.
- The Below, ecosystem planting, the Loom, the Archivist — Phase 6.
- Final binary choice + credits/coda rest state — Phase 7.
- Watercolor post-process, painted plants, painted Begin screen, solo cello + ambient buses, reduced-motion toggle — Phase 3.
- Real production-volume AI assets + locked north-star reference set — Phase 5 (Phase 1 IOU AEST-09).
- Real
migrate_v1_to_v2 — Phase 4 (when Roothold lands). Phase 2 only extends V1Payload shape.
- Compost yielding seeds back — rejected; Phase 4's cross-pollination is the proper place for seed-as-economy.
- Persistent Settings element on Begin screen — rejected in favor of in-garden corner icon + hotkey.