docs(02-02): complete begin-plant-grow plan
- Add 02-02-begin-plant-grow-SUMMARY.md (3 atomic commits, 35 new tests, BLOCKER 3 invariant honored, RESEARCH Assumption A5 verified, deviations documented) - STATE.md — advance to Plan 02-02 complete (2/5 plans in Phase 2; 9 total plans complete) - ROADMAP.md — mark 02-02 plan complete; phase progress 2/5 - REQUIREMENTS.md — mark GARD-01, GARD-02, AEST-07, UX-01 complete (with traceability comments)
This commit is contained in:
@@ -24,8 +24,8 @@ Requirements for initial release. Each maps to roadmap phases. All are user-cent
|
||||
|
||||
### GARDEN — Planting, Growing, Harvesting
|
||||
|
||||
- [ ] **GARD-01**: Player can plant a seed from their seed inventory into an unoccupied tile of the garden.
|
||||
- [ ] **GARD-02**: Each plant has a visible growth state (sprout → mature → ready-to-harvest) that updates from save data on load and advances over time.
|
||||
- [x] **GARD-01**: Player can plant a seed from their seed inventory into an unoccupied tile of the garden. <!-- Plan 02-02: sim/garden plantSeed command (D-05 unlock-gate + occupied silent no-op + immutability) + SeedPicker DOM popover + Garden scene pointerdown → store.enqueueCommand wiring; 14 commands tests + 6 SeedPicker tests green. -->
|
||||
- [x] **GARD-02**: Each plant has a visible growth state (sprout → mature → ready-to-harvest) that updates from save data on load and advances over time. <!-- Plan 02-02: advanceGrowth pure function (sprout→mature@33%→ready@100%) + render/garden/plant-renderer primitives per stage + Garden scene appStore.subscribe drives reactive repaintPlants; 11 growth tests green. Save-load tickCount restore is in Garden.create(). -->
|
||||
- [ ] **GARD-03**: Player can harvest a mature plant to receive a memory fragment; harvesting empties the tile.
|
||||
- [ ] **GARD-04**: Player can compost an immature or unwanted plant, returning a portion of resources and triggering a tonal beat (acknowledging the choice to let go).
|
||||
- [ ] **GARD-05**: Player unlocks new plant types as they progress through Seasons, with each plant type having distinct growth time, harvest yield, and visual identity.
|
||||
@@ -79,13 +79,14 @@ Requirements for initial release. Each maps to roadmap phases. All are user-cent
|
||||
- [ ] **AEST-04**: Ambient garden sounds (wind, birdsong, the creak of a gate) thin and fade as the Unremembering draws closer to the player's region.
|
||||
- [ ] **AEST-05**: Audio crossfades, never hard-cuts, between Seasons; the cello and ambient layers are independent buses with separate volume controls.
|
||||
- [ ] **AEST-06**: Color palette shifts deliberately by Season — golden/autumnal → deep green/storm → dawn/silver.
|
||||
- [ ] **AEST-07**: The first screen of the game is a hand-painted "Tend the garden" / "Begin" gesture gate that satisfies the Web Audio user-gesture requirement and explicitly calls `AudioContext.resume()`.
|
||||
- [x] **AEST-07**: The first screen of the game is a hand-painted "Tend the garden" / "Begin" gesture gate that satisfies the Web Audio user-gesture requirement and explicitly calls `AudioContext.resume()`. <!-- Plan 02-02: BeginScreen (D-21 typographic placeholder; Phase 3 swaps in painted treatment) + use-audio-bootstrap.ts (synchronous-inside-click bootstrapAudioContext defends Pitfall 5: iOS Safari construction-inside-gesture; webkitAudioContext fallback). 4 BeginScreen tests + first-interaction gesture handler one-shot for D-22 returning players. -->
|
||||
- [x] **AEST-08**: All AI-assisted assets carry persisted provenance metadata (`{model_id, checkpoint_hash, prompt, seed, sampler, params}`) and are produced from a pinned model and a locked north-star reference set. <!-- Plan 01-05: Zod ProvenanceSchema (6 fields) + CI gate + 2 placeholder assets with valid sidecars; north-star reference set deferred to Phase 5 per IOU. -->
|
||||
- [x] **AEST-09**: All shipped assets pass a mandatory human curation gate before integration; no asset reaches the production manifest unreviewed. <!-- Plan 01-05: gate mechanism in place (validator + sidecar schema); human curation recorded as explicit decision in 01-05-IOU.md (Path C); real north-star images Phase 5. -->
|
||||
|
||||
### UX — Onboarding, Settings, Accessibility, Return
|
||||
|
||||
- [ ] **UX-01**: First-time player sees a single, painted "Begin" screen with no UI clutter; the garden reveals itself as the player interacts (A Dark Room rule).
|
||||
- [x] **UX-01**: First-time player sees a single, painted "Begin" screen with no UI clutter; the garden reveals itself as the player interacts (A Dark Room rule). <!-- Plan 02-02: BeginScreen mounts as a fixed-position dialog covering the canvas with only title + subtitle + Begin CTA; no HUD, no journal, no settings. Dismissed via session.beginGateDismissed (D-22). Phase 3 paints the treatment. -->
|
||||
|
||||
- [ ] **UX-02**: Player who returns after time away receives a "while you were away" *letter from the garden* — written in voice, not a stat dump — describing what grew, what bloomed, what the wind brought.
|
||||
- [ ] **UX-03**: Player can buy plants/upgrades in multi-buy increments (×1 / ×10 / ×100 / Max) when the option is meaningful for the current scaling.
|
||||
- [ ] **UX-04**: Player can adjust separate Music, Ambient, and SFX volume sliders, with a master mute keybind; settings persist in saves.
|
||||
@@ -202,8 +203,8 @@ Populated by gsd-roadmapper during roadmap creation on 2026-05-08. Updated after
|
||||
| CORE-09 | Phase 1 — Foundations & Doctrine | Complete (Base64 export/import + 50MB DoS cap; Settings UI surface is Phase 2) |
|
||||
| CORE-10 | Phase 1 — Foundations & Doctrine | Complete (ESLint boundary rule + Vitest proof) |
|
||||
| CORE-11 | Phase 2 — Season 1 Vertical Slice (Soil) | Complete (Plan 02-01; drainTicks refuses negative deltas + computeOfflineCatchup clamps to 0; ESLint sim-purity rule mechanically enforces D-33) |
|
||||
| GARD-01 | Phase 2 — Season 1 Vertical Slice (Soil) | Pending |
|
||||
| GARD-02 | Phase 2 — Season 1 Vertical Slice (Soil) | Pending |
|
||||
| GARD-01 | Phase 2 — Season 1 Vertical Slice (Soil) | Complete (Plan 02-02; sim/garden plantSeed + SeedPicker + Garden scene pointerdown wiring) |
|
||||
| GARD-02 | Phase 2 — Season 1 Vertical Slice (Soil) | Complete (Plan 02-02; advanceGrowth state machine + plant-renderer primitives + reactive repaint via appStore.subscribe) |
|
||||
| GARD-03 | Phase 2 — Season 1 Vertical Slice (Soil) | Pending |
|
||||
| GARD-04 | Phase 2 — Season 1 Vertical Slice (Soil) | Pending |
|
||||
| GARD-05 | Phase 4 — Season-Prestige Cycle & Season 2 (Roots) | Pending |
|
||||
@@ -245,10 +246,10 @@ Populated by gsd-roadmapper during roadmap creation on 2026-05-08. Updated after
|
||||
| AEST-04 | Phase 3 — Watercolor & Cello Aesthetic | Pending |
|
||||
| AEST-05 | Phase 3 — Watercolor & Cello Aesthetic | Pending |
|
||||
| AEST-06 | Phase 3 — Watercolor & Cello Aesthetic | Pending |
|
||||
| AEST-07 | Phase 2 — Season 1 Vertical Slice (Soil) | Pending |
|
||||
| AEST-07 | Phase 2 — Season 1 Vertical Slice (Soil) | Complete (Plan 02-02; BeginScreen + bootstrapAudioContext synchronous-inside-click defends Pitfall 5) |
|
||||
| AEST-08 | Phase 1 — Foundations & Doctrine | Complete (Zod ProvenanceSchema 6 fields + CI gate; north-star reference set deferred to Phase 5 per IOU) |
|
||||
| AEST-09 | Phase 1 — Foundations & Doctrine | Complete (human curation gate mechanism in place; recorded human decision in 01-05-IOU.md) |
|
||||
| UX-01 | Phase 2 — Season 1 Vertical Slice (Soil) | Pending |
|
||||
| UX-01 | Phase 2 — Season 1 Vertical Slice (Soil) | Complete (Plan 02-02; single fixed-position Begin overlay; no HUD/journal/settings; D-22 dismissal) |
|
||||
| UX-02 | Phase 2 — Season 1 Vertical Slice (Soil) | Pending |
|
||||
| UX-03 | Phase 8 — UX, Accessibility & Launch Polish | Pending |
|
||||
| UX-04 | Phase 8 — UX, Accessibility & Launch Polish | Pending |
|
||||
|
||||
Reference in New Issue
Block a user