68 lines
2.7 KiB
Markdown
68 lines
2.7 KiB
Markdown
# Gift Zone CityTeam Mashup Implementation Plan
|
|
|
|
> **For agentic workers:** REQUIRED SUB-SKILL: Use superpowers:subagent-driven-development (recommended) or superpowers:executing-plans to implement this plan task-by-task. Steps use checkbox (`- [ ]`) syntax for tracking.
|
|
|
|
**Goal:** Add the MVP cat album and local cityTeam entry flow, then wire the mashup home tile into a playable standalone round with local rewards.
|
|
|
|
**Architecture:** Extend the existing `contentSystem` and `scene-store` contracts instead of refactoring core navigation. Reuse the current gameplay session for mashup by feeding it generated board metadata and handling mashup completion in a separate local reward path.
|
|
|
|
**Tech Stack:** ES modules, Node test runner, WeChat mini-game canvas shell
|
|
|
|
---
|
|
|
|
### Task 1: Docs And Data Contracts
|
|
|
|
**Files:**
|
|
- Create: `docs/superpowers/specs/2026-03-29-gift-zone-cityteam-mashup-design.md`
|
|
- Create: `docs/superpowers/plans/2026-03-29-gift-zone-cityteam-mashup.md`
|
|
- Modify: `js/content/index.js`
|
|
|
|
- [ ] Define the MVP cat album contract in `contentSystem`
|
|
- [ ] Keep `animals` and `maps` out of scope
|
|
- [ ] Add any helper projections needed for cityTeam and mashup
|
|
|
|
### Task 2: Gift Zone And CityTeam
|
|
|
|
**Files:**
|
|
- Modify: `tests/content-system.test.js`
|
|
- Modify: `tests/scene-store.test.js`
|
|
- Modify: `js/content/index.js`
|
|
- Modify: `js/ui/scene-store.js`
|
|
- Modify: `js/main.js`
|
|
|
|
- [ ] Write failing tests for `cats` album visibility and counts
|
|
- [ ] Write failing tests for cityTeam selection flow
|
|
- [ ] Implement `cats` album projections with existing city cat data
|
|
- [ ] Implement `city-team-select` scene and local selection writeback
|
|
- [ ] Render cityTeam status and entry buttons in the canvas UI
|
|
- [ ] Re-run targeted tests until green
|
|
|
|
### Task 3: Mashup Gameplay
|
|
|
|
**Files:**
|
|
- Modify: `tests/difficulty-generator.test.js`
|
|
- Modify: `tests/scene-store.test.js`
|
|
- Modify: `js/gameplay/difficulty/generate-board.js`
|
|
- Create: `js/gameplay/difficulty/generate-mashup-board.js`
|
|
- Modify: `js/gameplay/difficulty/index.js`
|
|
- Modify: `js/gameplay/session/index.js`
|
|
- Modify: `js/ui/scene-store.js`
|
|
- Modify: `js/main.js`
|
|
|
|
- [ ] Write failing tests for mashup board generation
|
|
- [ ] Write failing tests for mashup scene entry and reward writeback
|
|
- [ ] Implement mashup board builder from unlocked city content
|
|
- [ ] Implement mashup scene/session creation in `scene-store`
|
|
- [ ] Implement mashup win reward path and result messaging
|
|
- [ ] Re-run targeted tests until green
|
|
|
|
### Task 4: Full Verification
|
|
|
|
**Files:**
|
|
- Modify: `tests/*` as needed
|
|
- Modify: `js/*` as needed
|
|
|
|
- [ ] Run the full test suite with `npm test`
|
|
- [ ] Verify no unrelated placeholders were implemented
|
|
- [ ] Summarize remaining placeholder areas in the final report
|