From e61fce5f7207ad383e97c12ed63bed99b4beee02 Mon Sep 17 00:00:00 2001 From: Julian Tabel Date: Wed, 11 Feb 2026 17:00:16 +0100 Subject: [PATCH] Refine Naming Generator Epic --- ...ame-suggestions-into-encounter-registra.md | 28 ++++++++++++++++++ ...cker-c6ly--build-name-suggestion-engine.md | 28 ++++++++++++++++++ .../nuzlocke-tracker-igl3--name-generation.md | 23 ++++++++++++--- ...g-scheme-selection-to-run-configuration.md | 28 ++++++++++++++++++ ...-ueyy--create-name-dictionary-data-file.md | 29 +++++++++++++++++++ 5 files changed, 132 insertions(+), 4 deletions(-) create mode 100644 .beans/nuzlocke-tracker-bi4e--integrate-name-suggestions-into-encounter-registra.md create mode 100644 .beans/nuzlocke-tracker-c6ly--build-name-suggestion-engine.md create mode 100644 .beans/nuzlocke-tracker-m86o--add-naming-scheme-selection-to-run-configuration.md create mode 100644 .beans/nuzlocke-tracker-ueyy--create-name-dictionary-data-file.md diff --git a/.beans/nuzlocke-tracker-bi4e--integrate-name-suggestions-into-encounter-registra.md b/.beans/nuzlocke-tracker-bi4e--integrate-name-suggestions-into-encounter-registra.md new file mode 100644 index 0000000..53dcacd --- /dev/null +++ b/.beans/nuzlocke-tracker-bi4e--integrate-name-suggestions-into-encounter-registra.md @@ -0,0 +1,28 @@ +--- +# nuzlocke-tracker-bi4e +title: Integrate name suggestions into encounter registration UI +status: todo +type: task +created_at: 2026-02-11T15:56:44Z +updated_at: 2026-02-11T15:56:44Z +parent: nuzlocke-tracker-igl3 +--- + +Show name suggestions in the encounter registration flow so users can pick a nickname with a single click. + +## Requirements + +- When a user clicks an encounter slot and registers a new Pokemon, display 5-10 name suggestions below/near the nickname input +- Each suggestion is a clickable chip/button that fills in the nickname field +- Include a "regenerate" button to get a fresh batch of suggestions +- Only show suggestions if the run has a naming scheme selected +- The nickname input should still be editable for manual entry + +## Checklist + +- [ ] Add a name suggestions component (chips/buttons with regenerate) +- [ ] Integrate the component into the encounter registration modal/form +- [ ] Wire up the name suggestion engine to the component +- [ ] Ensure clicking a suggestion populates the nickname field +- [ ] Ensure regenerate fetches a new batch without repeating prior suggestions +- [ ] Hide suggestions gracefully if no naming scheme is set on the run \ No newline at end of file diff --git a/.beans/nuzlocke-tracker-c6ly--build-name-suggestion-engine.md b/.beans/nuzlocke-tracker-c6ly--build-name-suggestion-engine.md new file mode 100644 index 0000000..4a6d948 --- /dev/null +++ b/.beans/nuzlocke-tracker-c6ly--build-name-suggestion-engine.md @@ -0,0 +1,28 @@ +--- +# nuzlocke-tracker-c6ly +title: Build name suggestion engine +status: todo +type: task +priority: normal +created_at: 2026-02-11T15:56:44Z +updated_at: 2026-02-11T15:56:48Z +parent: nuzlocke-tracker-igl3 +blocking: + - nuzlocke-tracker-bi4e +--- + +Build the core logic that picks random name suggestions from the dictionary based on a selected naming scheme (category). + +## Requirements + +- Given a category and a list of already-used names in the run, return 5-10 unique suggestions +- Suggestions must not include names already assigned to other Pokemon in the same run +- Support regeneration (return a fresh batch, avoiding previously shown suggestions where possible) +- Handle edge case where category is nearly exhausted gracefully (return fewer suggestions) + +## Checklist + +- [ ] Create a service/utility module for name suggestion logic +- [ ] Implement random selection from a category with exclusion of used names +- [ ] Implement regeneration that avoids repeating previous suggestions +- [ ] Add unit tests for the suggestion logic \ No newline at end of file diff --git a/.beans/nuzlocke-tracker-igl3--name-generation.md b/.beans/nuzlocke-tracker-igl3--name-generation.md index ad22cf5..072a2a5 100644 --- a/.beans/nuzlocke-tracker-igl3--name-generation.md +++ b/.beans/nuzlocke-tracker-igl3--name-generation.md @@ -1,11 +1,26 @@ --- # nuzlocke-tracker-igl3 title: Name Generation -status: draft +status: todo type: epic -priority: deferred +priority: normal created_at: 2026-02-05T13:45:15Z -updated_at: 2026-02-10T12:05:44Z +updated_at: 2026-02-11T15:57:27Z --- -For nuzlockes I want to implement name generation. The user should be able to provide a naming scheme or a list of nick names that can then be selected when a new encounter is registered. +Implement a dictionary-based nickname generation system for Nuzlocke runs. Instead of using an LLM API to generate names on the fly, provide a static dictionary of words categorised by theme. A word can belong to multiple categories, making it usable across different naming schemes. + +## Approach + +- **Static dictionary**: A local data file (JSON) containing words tagged with categories (e.g. mythology, food, space, nature, warriors, music, etc.) +- **~150-200 words per category**: A typical Nuzlocke has ~100 encounters, so this provides ample variety without repetition. +- **Name suggestion UX**: When registering a new encounter, the user is shown 5-10 suggested names from their chosen naming scheme. They can click one to select it, or regenerate for a fresh batch. +- **Naming scheme selection**: Users pick a naming scheme (category) per run, either at run creation or in run settings. + +## Success Criteria + +- [ ] Word dictionary data file exists with multiple categories, each containing 150-200 words +- [ ] Name suggestion engine picks random names from the selected category, avoiding duplicates already used in the run +- [ ] Encounter registration UI shows 5-10 clickable name suggestions +- [ ] User can regenerate suggestions if none fit +- [ ] User can select a naming scheme per run \ No newline at end of file diff --git a/.beans/nuzlocke-tracker-m86o--add-naming-scheme-selection-to-run-configuration.md b/.beans/nuzlocke-tracker-m86o--add-naming-scheme-selection-to-run-configuration.md new file mode 100644 index 0000000..47d6d35 --- /dev/null +++ b/.beans/nuzlocke-tracker-m86o--add-naming-scheme-selection-to-run-configuration.md @@ -0,0 +1,28 @@ +--- +# nuzlocke-tracker-m86o +title: Add naming scheme selection to run configuration +status: todo +type: task +priority: normal +created_at: 2026-02-11T15:56:44Z +updated_at: 2026-02-11T15:56:48Z +parent: nuzlocke-tracker-igl3 +blocking: + - nuzlocke-tracker-bi4e +--- + +Allow users to select a naming scheme (category) for their Nuzlocke run. + +## Requirements + +- Add a `namingScheme` field to the run model/settings (optional, nullable — user may not want auto-naming) +- Provide a dropdown/selector in run creation and run settings where the user can pick a category +- List available categories dynamically from the dictionary data +- Allow changing the naming scheme mid-run + +## Checklist + +- [ ] Add `namingScheme` field to the NuzlockeRun type/model +- [ ] Add naming scheme selector to run creation UI +- [ ] Add naming scheme selector to run settings UI +- [ ] Persist the selected naming scheme with the run data \ No newline at end of file diff --git a/.beans/nuzlocke-tracker-ueyy--create-name-dictionary-data-file.md b/.beans/nuzlocke-tracker-ueyy--create-name-dictionary-data-file.md new file mode 100644 index 0000000..98d66ba --- /dev/null +++ b/.beans/nuzlocke-tracker-ueyy--create-name-dictionary-data-file.md @@ -0,0 +1,29 @@ +--- +# nuzlocke-tracker-ueyy +title: Create name dictionary data file +status: todo +type: task +priority: normal +created_at: 2026-02-11T15:56:26Z +updated_at: 2026-02-11T15:56:48Z +parent: nuzlocke-tracker-igl3 +blocking: + - nuzlocke-tracker-c6ly +--- + +Create a JSON data file containing themed words for nickname generation. + +## Requirements + +- Each word entry has: `word` (string) and `categories` (string array) +- Categories should include themes like: mythology, food, space, nature, warriors, music, literature, gems, ocean, weather, etc. +- Target 150-200 words per category +- Words can belong to multiple categories +- Words should be short, punchy, and suitable as Pokemon nicknames (ideally 1-2 words, max ~12 characters) + +## Checklist + +- [ ] Define the data schema / TypeScript type for dictionary entries +- [ ] Create the JSON data file with initial categories +- [ ] Populate each category with 150-200 words +- [ ] Validate no duplicates exist within the file \ No newline at end of file