From fae6532b8a5dc2723824cfc953615884aedc411d Mon Sep 17 00:00:00 2001 From: Julian Tabel Date: Tue, 10 Feb 2026 10:00:14 +0100 Subject: [PATCH] Add Game Data Cleanup epic with subtasks Track the work needed to audit and complete encounter data and route ordering across all supported games. Covers automated source exploration, Gen 8+ stub population, ORAS/Let's Go completion, route ordering for Gen 5+, Gen 1-4 ordering audit, and special encounters review. Co-Authored-By: Claude Opus 4.6 --- ...ate-encounter-data-for-gen-8-stub-games.md | 49 +++++++++++++++++++ ...b4r--add-route-ordering-for-gen-5-games.md | 35 +++++++++++++ ...nd-fix-route-ordering-for-gen-1-4-games.md | 30 ++++++++++++ ...complete-special-encounters-for-all-gam.md | 33 +++++++++++++ ...tomated-data-sources-for-encounter-data.md | 27 ++++++++++ ...uzlocke-tracker-rzu4--game-data-cleanup.md | 31 ++++++++++++ ...omplete-oras-and-lets-go-encounter-data.md | 27 ++++++++++ 7 files changed, 232 insertions(+) create mode 100644 .beans/nuzlocke-tracker-1e9k--populate-encounter-data-for-gen-8-stub-games.md create mode 100644 .beans/nuzlocke-tracker-2b4r--add-route-ordering-for-gen-5-games.md create mode 100644 .beans/nuzlocke-tracker-6lud--audit-and-fix-route-ordering-for-gen-1-4-games.md create mode 100644 .beans/nuzlocke-tracker-7jba--review-and-complete-special-encounters-for-all-gam.md create mode 100644 .beans/nuzlocke-tracker-q5vd--explore-automated-data-sources-for-encounter-data.md create mode 100644 .beans/nuzlocke-tracker-rzu4--game-data-cleanup.md create mode 100644 .beans/nuzlocke-tracker-v5zc--complete-oras-and-lets-go-encounter-data.md diff --git a/.beans/nuzlocke-tracker-1e9k--populate-encounter-data-for-gen-8-stub-games.md b/.beans/nuzlocke-tracker-1e9k--populate-encounter-data-for-gen-8-stub-games.md new file mode 100644 index 0000000..7ea6607 --- /dev/null +++ b/.beans/nuzlocke-tracker-1e9k--populate-encounter-data-for-gen-8-stub-games.md @@ -0,0 +1,49 @@ +--- +# nuzlocke-tracker-1e9k +title: Populate encounter data for Gen 8+ stub games +status: todo +type: task +created_at: 2026-02-10T08:59:02Z +updated_at: 2026-02-10T08:59:02Z +parent: nuzlocke-tracker-rzu4 +--- + +Fill in encounter data for games that currently have null/stub seed files. These games are not covered by PokeAPI and require manual curation or an alternative data source. + +## Games with null/stub data: +- [ ] Sword (null) +- [ ] Shield (null) +- [ ] Brilliant Diamond (null) +- [ ] Shining Pearl (null) +- [ ] Scarlet (null) +- [ ] Violet (null) +- [ ] Legends Arceus (null) + +## Format requirements: +Each game's JSON file must follow the existing structure: +\`\`\`json +[ + { + "name": "Route Name", + "order": 1, + "encounters": [ + { + "pokeapi_id": 25, + "pokemon_name": "pikachu", + "method": "walk", + "encounter_rate": 10, + "min_level": 5, + "max_level": 8 + } + ], + "children": [] + } +] +\`\`\` + +## Notes: +- This is likely the largest manual task unless the "explore automated sources" task finds a viable alternative +- Depends on findings from the automated data sources task — if automation is viable, this becomes much easier +- Sword/Shield and Scarlet/Violet use open-world/Wild Area mechanics that may need special handling +- Legends Arceus has a fundamentally different encounter system (overworld encounters, alpha Pokémon, space-time distortions) +- BD/SP are remakes of Diamond/Pearl — existing D/P data could serve as a starting point \ No newline at end of file diff --git a/.beans/nuzlocke-tracker-2b4r--add-route-ordering-for-gen-5-games.md b/.beans/nuzlocke-tracker-2b4r--add-route-ordering-for-gen-5-games.md new file mode 100644 index 0000000..56519f2 --- /dev/null +++ b/.beans/nuzlocke-tracker-2b4r--add-route-ordering-for-gen-5-games.md @@ -0,0 +1,35 @@ +--- +# nuzlocke-tracker-2b4r +title: Add route ordering for Gen 5+ games +status: todo +type: task +created_at: 2026-02-10T08:58:55Z +updated_at: 2026-02-10T08:58:55Z +parent: nuzlocke-tracker-rzu4 +--- + +Add route progression ordering in `route_order.json` for all games that currently lack it. Routes should be ordered to match the typical in-game progression (main story first, post-game after). + +## Games needing route ordering: +- [ ] Diamond/Pearl (could alias to Platinum if progression is similar enough) +- [ ] Black/White +- [ ] Black 2/White 2 +- [ ] X/Y +- [ ] Sun/Moon +- [ ] Ultra Sun/Ultra Moon (could alias to Sun/Moon if similar enough) +- [ ] Sword/Shield +- [ ] Brilliant Diamond/Shining Pearl (could alias to Platinum/Diamond-Pearl) +- [ ] Scarlet/Violet +- [ ] Legends Arceus +- [ ] Legends Z-A +- [ ] Let's Go Pikachu/Eevee (currently aliased to firered-leafgreen — verify this is correct) + +## Approach: +- Reference Bulbapedia "walkthrough" or "appendix" pages for progression order +- Consider aliasing games that share the same region and route progression +- Mark a clear divider between main story and post-game routes where applicable +- The format is an array of route name strings in `route_order.json`, keyed by version group slug + +## Notes: +- This is primarily manual work — play order guides are widely available online +- Verify route names match exactly what's in the encounter data files (case-sensitive) \ No newline at end of file diff --git a/.beans/nuzlocke-tracker-6lud--audit-and-fix-route-ordering-for-gen-1-4-games.md b/.beans/nuzlocke-tracker-6lud--audit-and-fix-route-ordering-for-gen-1-4-games.md new file mode 100644 index 0000000..e71fd79 --- /dev/null +++ b/.beans/nuzlocke-tracker-6lud--audit-and-fix-route-ordering-for-gen-1-4-games.md @@ -0,0 +1,30 @@ +--- +# nuzlocke-tracker-6lud +title: Audit and fix route ordering for Gen 1-4 games +status: todo +type: task +created_at: 2026-02-10T08:59:16Z +updated_at: 2026-02-10T08:59:16Z +parent: nuzlocke-tracker-rzu4 +--- + +Review the existing route ordering for Gen 1-4 games that already have ordering defined. The current ordering may not accurately reflect typical game progression. + +## Games to audit: +- [ ] FireRed/LeafGreen (and aliased: Red/Blue, Yellow, Let's Go) +- [ ] HeartGold/SoulSilver (and aliased: Gold/Silver, Crystal) +- [ ] Emerald (and aliased: Ruby/Sapphire, Omega Ruby/Alpha Sapphire) +- [ ] Platinum + +## What to check: +- Routes are in correct progression order (match typical walkthrough) +- No routes are missing from the ordering +- No routes are listed that don't exist in the encounter data +- Aliases make sense (e.g. Red/Blue may have slightly different progression from FR/LG) +- Post-game areas are placed after main story areas +- Sub-areas (children) inherit parent ordering correctly + +## Notes: +- Cross-reference with Bulbapedia walkthrough pages +- The Platinum ordering currently starts with cities and mines rather than the starting town/routes — this may be incorrect +- Diamond/Pearl currently aliases to nothing — check if it should alias to Platinum or needs its own ordering \ No newline at end of file diff --git a/.beans/nuzlocke-tracker-7jba--review-and-complete-special-encounters-for-all-gam.md b/.beans/nuzlocke-tracker-7jba--review-and-complete-special-encounters-for-all-gam.md new file mode 100644 index 0000000..e7cbcbe --- /dev/null +++ b/.beans/nuzlocke-tracker-7jba--review-and-complete-special-encounters-for-all-gam.md @@ -0,0 +1,33 @@ +--- +# nuzlocke-tracker-7jba +title: Review and complete special encounters for all games +status: todo +type: task +created_at: 2026-02-10T08:59:24Z +updated_at: 2026-02-10T08:59:24Z +parent: nuzlocke-tracker-rzu4 +--- + +Audit \`special_encounters.json\` to ensure starters, gifts, fossils, and other non-wild encounters are covered for all games. + +## What counts as special encounters: +- **Starters** — the three (or more) starter Pokémon choices +- **Gift Pokémon** — NPCs that give you Pokémon (e.g. Eevee in Celadon, Lapras in Silph Co.) +- **Fossils** — Pokémon revived from fossils (e.g. Omanyte/Kabuto, Lileep/Anorith) +- **In-game trades** — Pokémon received via NPC trades (if tracked) +- **Static encounters** — Legendaries, Snorlax blocking the road, Sudowoodo, etc. +- **Event-specific** — One-time encounters tied to story events + +## Checklist: +- [ ] Audit Gen 1 (Red/Blue/Yellow/FR/LG) special encounters +- [ ] Audit Gen 2 (Gold/Silver/Crystal/HG/SS) special encounters +- [ ] Audit Gen 3 (Ruby/Sapphire/Emerald/ORAS) special encounters +- [ ] Audit Gen 4 (Diamond/Pearl/Platinum/BD/SP) special encounters +- [ ] Audit Gen 5 (Black/White/B2/W2) special encounters +- [ ] Audit Gen 6 (X/Y) special encounters +- [ ] Audit Gen 7 (Sun/Moon/USUM) special encounters +- [ ] Audit Gen 8+ (Sword/Shield/Scarlet/Violet/Legends) special encounters + +## Notes: +- Cross-reference with Bulbapedia "Gift Pokémon" and "In-game trade" pages +- The current file appears focused on Gen 1-2 — later gens likely need additions \ No newline at end of file diff --git a/.beans/nuzlocke-tracker-q5vd--explore-automated-data-sources-for-encounter-data.md b/.beans/nuzlocke-tracker-q5vd--explore-automated-data-sources-for-encounter-data.md new file mode 100644 index 0000000..6c59407 --- /dev/null +++ b/.beans/nuzlocke-tracker-q5vd--explore-automated-data-sources-for-encounter-data.md @@ -0,0 +1,27 @@ +--- +# nuzlocke-tracker-q5vd +title: Explore automated data sources for encounter data +status: todo +type: task +created_at: 2026-02-10T08:58:47Z +updated_at: 2026-02-10T08:58:47Z +parent: nuzlocke-tracker-rzu4 +--- + +Research and evaluate automated or semi-automated options for populating encounter data, especially for games where PokeAPI has no data (Gen 8+). + +## Potential sources to investigate: +- **PokeAPI CSV/database dumps** — the raw data behind PokeAPI may have more than the REST API exposes +- **veekun/pokedex** — community-maintained Pokémon database with encounter data +- **Bulbapedia / Serebii** — structured wiki data that could be scraped (check terms of use) +- **pkNX / game data extraction** — tools that extract data directly from game files +- **Community GitHub repos** — search for curated encounter datasets (e.g. for romhack tools, fan wikis) + +## Goals: +- Determine which games can realistically be populated via automation vs. manual entry +- If a viable source is found, prototype a script/tool to import data into the existing seed JSON format +- Document findings even if no automated approach is viable, so we know what's available + +## Notes: +- The existing Go tool (`tools/fetch-pokeapi/`) could serve as a template for new data fetchers +- Output format must match the existing `{game}.json` structure (routes with encounters, children for sub-areas) \ No newline at end of file diff --git a/.beans/nuzlocke-tracker-rzu4--game-data-cleanup.md b/.beans/nuzlocke-tracker-rzu4--game-data-cleanup.md new file mode 100644 index 0000000..e0a402f --- /dev/null +++ b/.beans/nuzlocke-tracker-rzu4--game-data-cleanup.md @@ -0,0 +1,31 @@ +--- +# nuzlocke-tracker-rzu4 +title: Game Data Cleanup +status: todo +type: epic +created_at: 2026-02-10T08:58:36Z +updated_at: 2026-02-10T08:58:36Z +--- + +Audit and fix the game seed data to ensure all supported games have accurate encounter data and correct route ordering. PokeAPI provides a solid basis for Gen 1-7, but later games (Gen 8+) have no encounter data at all (stub/null JSON files), and route ordering is only defined for Gen 1-4. This is mostly manual work, but we should explore automated/semi-automated options where possible (e.g. scraping community wikis, leveraging existing fan-curated datasets). + +## Current State + +### Encounter data status: +- **Complete (from PokeAPI):** Red, Blue, Yellow, FireRed, LeafGreen, Gold, Silver, Crystal, HeartGold, SoulSilver, Ruby, Sapphire, Emerald, Diamond, Pearl, Platinum, Black, White, Black 2, White 2, X, Y, Sun, Moon, Ultra Sun, Ultra Moon +- **Stub/null (no data):** Sword, Shield, Scarlet, Violet, Brilliant Diamond, Shining Pearl, Legends Arceus +- **Minimal/partial:** Omega Ruby, Alpha Sapphire (96 lines each), Let's Go Pikachu/Eevee (134 lines each), Legends Z-A (1298 lines, partially complete) + +### Route ordering status (route_order.json): +- **Defined:** firered-leafgreen (+ aliases: red-blue, yellow, lets-go), heartgold-soulsilver (+ aliases: gold-silver, crystal), emerald (+ aliases: ruby-sapphire, omega-ruby-alpha-sapphire), platinum +- **Missing:** diamond-pearl, black-white, black-2-white-2, x-y, sun-moon, ultra-sun-ultra-moon, sword-shield, brilliant-diamond-shining-pearl, scarlet-violet, legends-arceus, legends-z-a + +### Special considerations: +- Existing PokeAPI data may have inaccurate encounter rates or missing special encounters (gifts, fossils, starters) +- Sub-area grouping (children) may need review — some routes are split into too many/few sub-areas +- The `special_encounters.json` file handles manual additions but may be incomplete for later gens + +## Approach +- Manual curation is the primary approach for most tasks +- Explore automated options: community datasets (e.g. veekun/pokedex, PokeAPI CSV data), wiki scraping, or other structured data sources +- Use the admin panel and export CLI to verify/edit data after seeding \ No newline at end of file diff --git a/.beans/nuzlocke-tracker-v5zc--complete-oras-and-lets-go-encounter-data.md b/.beans/nuzlocke-tracker-v5zc--complete-oras-and-lets-go-encounter-data.md new file mode 100644 index 0000000..9d2e125 --- /dev/null +++ b/.beans/nuzlocke-tracker-v5zc--complete-oras-and-lets-go-encounter-data.md @@ -0,0 +1,27 @@ +--- +# nuzlocke-tracker-v5zc +title: Complete ORAS and Let's Go encounter data +status: todo +type: task +created_at: 2026-02-10T08:59:09Z +updated_at: 2026-02-10T08:59:09Z +parent: nuzlocke-tracker-rzu4 +--- + +Omega Ruby, Alpha Sapphire, Let's Go Pikachu, and Let's Go Eevee have minimal stub data that needs to be completed. + +## Current state: +- **Omega Ruby:** 96 lines (stub — likely just a skeleton) +- **Alpha Sapphire:** 96 lines (stub — likely just a skeleton) +- **Let's Go Pikachu:** 134 lines (minimal) +- **Let's Go Eevee:** 134 lines (minimal) + +## Approach: +- **ORAS:** These are Gen 3 remakes. Emerald data could be used as a base, but ORAS added new areas (Mirage spots, soaring encounters), DexNav encounters, and different encounter tables. Supplement from community sources. +- **Let's Go:** These are Gen 1 remakes with simplified mechanics. FireRed/LeafGreen data could serve as a base, but encounters are different (no wild battles in traditional sense, overworld spawns). Version exclusives differ between Pikachu and Eevee versions. + +## Checklist: +- [ ] Review and complete Omega Ruby encounter data +- [ ] Review and complete Alpha Sapphire encounter data +- [ ] Review and complete Let's Go Pikachu encounter data +- [ ] Review and complete Let's Go Eevee encounter data \ No newline at end of file