Break down the genlocke tracking epic into 8 child beans with checklists, dependency chains, and success criteria. Add CLAUDE.md instruction for updating parent checklists on child completion. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
3.0 KiB
3.0 KiB
title, status, type, priority, created_at, updated_at, parent, blocking
| title | status | type | priority | created_at | updated_at | parent | blocking | |
|---|---|---|---|---|---|---|---|---|
| Genlocke transfer UI | todo | feature | normal | 2026-02-09T07:42:33Z | 2026-02-09T07:46:06Z | nuzlocke-tracker-25mh |
|
After completing a genlocke leg, the user selects which surviving Pokemon to carry forward to the next leg. Transferred Pokemon appear as egg encounters in the next run.
Flow
Transfer Step (between legs)
- User completes a leg (beats the Champion / enters Hall of Fame)
- A transfer screen is shown, displaying all surviving Pokemon from the completed leg
- User selects which Pokemon to transfer (typically up to 6, the HoF team)
- Selected Pokemon are "bred" — they'll appear as level 1 eggs/starters in the next leg
- The transfer is recorded and the next leg's run is started
Transfer Records
- Each transfer links a source encounter (from the completed leg) to a new egg encounter (in the next leg)
- The new encounter in the next leg should:
- Be the base form of the evolutionary line (e.g., Charizard → Charmander egg)
- Have a special status/flag indicating it's a genlocke transfer (not a wild encounter)
- Optionally keep the same nickname
- Not count against any route's first-encounter rule
UI Components
- Transfer selection screen: grid of surviving Pokemon with checkboxes
- Show each Pokemon's sprite, nickname, species, and level
- "Transfer Selected" button to confirm
- Option to skip transferring (transfer none) for added challenge
Backend
POST /api/v1/genlockes/{id}/legs/{leg_id}/transfer— Accept list of encounter IDs to transfer- Creates
GenlockeTransferrecords linking source encounters to new egg encounters - Auto-creates the egg encounters in the next leg's run
Data Model
GenlockeTransfertable: from_leg_id, to_leg_id, from_encounter_id, to_encounter_id- Egg encounters need a way to be distinguished from regular encounters (possibly a flag or encounter method)
Checklist
- Create
GenlockeTransferSQLAlchemy model (from_leg_id, to_leg_id, from_encounter_id, to_encounter_id) - Create Alembic migration for the GenlockeTransfer table
- Add logic to resolve a Pokemon's base form from its evolutionary chain (e.g., Charizard → Charmander)
- Implement
GET /api/v1/genlockes/{id}/legs/{leg_order}/survivors— return surviving (non-fainted) encounters from a completed leg - Implement
POST /api/v1/genlockes/{id}/legs/{leg_order}/transfer— accept encounter IDs, create GenlockeTransfer records, create egg encounters in the next leg's run - Build the transfer selection screen: grid of surviving Pokemon with checkboxes, sprites, nicknames, and levels
- Add a "Transfer Selected" confirmation action and a "Skip" option
- Wire up the transfer screen to appear after leg completion (integrate with leg progression flow)
- Ensure transferred egg encounters don't count against route first-encounter rules
- Add TypeScript types for transfer API request/response