01
The voice memo
2:56 of talking. This is the only input Murmur got.
So, uh, Poké Clash or Creature Clash is a mobile creature battling game built around the fantasy of becoming the greatest trainer alive. You start with a single companion creature and set out on a journey, walking routes, catching wild creatures to grow your collection, and battling other trainers along the way. Every battle is a duel of stats. Each creature is scored against a handful of categories like attack, attack, defense, speed, and special powers. And in battle, you pick which category to fight on turn by whittling down your opponent's health. On top of the raw numbers sit 2 layers of depth. First, elemental types— fire, water, grass, electric, and rock— that beat the— that beat and lose to each other in a rock-paper-scissors triangle. So your strongest strat can be neutralized by a bad matchup, and category choice becomes a real read against your opponent. Second unique abilities each creature carries bend the rules of the duel: stealing a strat, forcing a category, shrugging off a type disadvantage. This is of course V3. The world is structured as a series of gems— gyms, G-Y-M-S, gyms. Each themed around a type and guarded by a leader. Beat the leader, earn a badge, and after a hard-won victory of a 3v3 duel, you even get to swap one of your creatures for one of theirs. Collect all the badges, top the leaderboard, and prove you're the best. The long-term vision is online multiplayer where trainers battle each other directly, but the heart of it is a single-player story mode you can lose yourself in. In the initial phase of project, the multi— we would go with the single-player story mode where the other trainers would be AI-powered. This is a passion project first, an idea that's been kicking around for years, and this is about finally building it as interactive and as fun as it can possibly be. On strategy, the plan is to prototype privately against real creature data to nail down whether the loop is generally fun, even without worrying about art or originality. And only later, if the game proves worth it, invest in a set of original creatures. For anything that goes public, validate the fun first, own the world second. Another feature that we should be adding in this would be XP and progression. With each battle, with each duel of a creature, with each winning, losing, or drawing, of a creature, the creature would be earning XP, experience points, and those experience points would then be used by their trainer to increase their categories. Any of the categories could be used by that. So yeah, that's all.
02
Competitor map
Live web search for who's already building nearby, with a source link for every competitor.
- 2 competitors
- 6 table stakes
- 7 ways to differentiate
Market summary
The competitive set is small but directly adjacent to the proposed idea: mobile creature-collector games that borrow heavily from the Pokémon formula (hatching, evolving, elemental type advantages, and a trainer journey). Creature Clash: Echoes is the closest analog, already live on iOS and Android as a free-to-play card-based roguelite with a 4-element triangle, evolution, and light narrative, though it reports very low download numbers on Google Play. Poke Clash is an older (2018-era) mobile title using gesture-drawing combat rather than stat-based dueling, with a simpler catch-and-train loop. Neither competitor is stated to offer a persistent open-world gym/badge structure, direct trainer-vs-trainer swapping of creatures, or player-vs-player online multiplayer, leaving room for differentiation in structured progression and social battling.
Competitors 2
Creature Clash: Echoes (CYBERWARD, LLC.)
creatureclashgame.comA monster card roguelite with Pokémon-style collection depth, strategic card combat, and a story-driven corrupted world, designed from the ground up for mobile.
PricingFree to download and play with optional in-app purchases (energy packs, bundles, Champion's Pass subscription); stated as no pay-to-win
+5 strengths /−5 weaknesses
Strengths
- Already live on App Store and Google Play
- Clear elemental-triangle strategy layer similar to proposed idea
- Strong narrative/lore hook layered onto collection mechanics
- No pay-to-win positioning may build trust
- Evolution and progression systems already implemented
Weaknesses
- Uses card-based combat rather than direct stat-category duels
- Roguelite run structure (losing resets zone runs) rather than persistent open-world journey/gyms
- No stated multiplayer/PvP battling between trainers
- Only 10+ downloads reported on Google Play, suggesting limited traction
- Only 4 elements/types vs. proposed 5 (fire, water, grass, electric, rock)
Poke Clash: Monster Hunter (vCubegame)
apkpure.comA fast-paced monster battling and catching game using gesture-drawing controls, framed around becoming the best monster hunter.
+3 strengths /−4 weaknesses
Strengths
- Distinct, novel gesture-drawing combat mechanic differentiates it from stat-duel games
- Simple, catch-and-battle loop similar to genre conventions
- Has boss/mining mode for added challenge variety
Weaknesses
- Combat is based on drawing/gesture matching rather than strategic stat-category or type decisions, so lower strategic depth
- Last updated 2018, suggesting the game may be outdated/unsupported
- No stated gym/badge structure or trainer-vs-trainer swapping mechanic
- No stated multiplayer battling, only friend leaderboard racing
Table stakes 6
- Creature collecting/catching mechanic
- Elemental type advantage system (rock-paper-scissors style triangle)
- Creature evolution or stat growth over time
- Egg hatching or similar creature acquisition ritual
- Free-to-play mobile release with optional in-app purchases
- A journey/adventure framing with a story or world to progress through
Where to differentiate 7
- Persistent gym/badge structure with named leaders guarding themed types, not seen as stated in competitor feature lists
- Post-gym-battle creature swap mechanic between trainer and leader, not offered by either competitor
- Direct stat-category duel system (attack/defense/speed/special picked turn-by-turn) versus card-hand or gesture-based combat used by competitors
- Unique creature abilities that bend duel rules (stealing a strat, forcing a category, negating type disadvantage) — deeper ability layer than competitors' Marks/Momentum systems
- XP-driven trainer-directed stat allocation (player chooses which category to grow) rather than automatic evolution stages
- Long-term online trainer-vs-trainer multiplayer battling, which neither competitor states as a feature
- Open-world route-walking exploration structure vs. procedurally generated roguelite runs
Where existing mobile creature collectors lean on card-based roguelite combat (Creature Clash: Echoes) or gesture-drawing capture mechanics (Poke Clash), this product differentiates with a classic stat-duel battle system layered with type match-ups and rule-bending unique abilities, wrapped in a persistent gym-and-badge journey with trainer-vs-leader creature swaps and, eventually, direct online PvP — validating the core duel loop first before investing in original creature art.
03
Product requirements document
Every feature carries a rationale tied back to the memo or the research.
- 9 must
- 2 should
- 3 could
- 7 won't
- 4 success metrics
One-liner
A private single-player prototype testing whether a classic stat-category duel, type triangle, and rule-bending abilities can out-strategize the card-based and gesture-based combat that current mobile creature collectors ship with.
Problem
Trainers who grew up on Pokémon-style games want the fantasy of raising a creature, out-thinking a rival, and proving mastery through direct head-to-head duels — but today they either play nostalgia-driven originals or settle for mobile alternatives that reframe combat as card-hand play (Creature Clash: Echoes) or gesture-drawing minigames (Poke Clash), diluting the read-your-opponent tension of picking a stat category under a type disadvantage. The founder has held this idea for years and currently has no way to test it beyond imagination; there is no build yet, private or public, and no evidence the stat-duel-plus-abilities loop is actually fun before investing in original art or a live release. Existing competitors also lack a persistent gym/badge journey or a post-battle creature swap, meaning even players drawn to the genre have no mobile product offering structured trainer-vs-leader progression with tangible stakes for winning.
Target user
The founder themself, acting as the sole private playtester of a personal passion project, prototyping to determine if the core battle loop is fun before showing it to anyone else.
Features
Open a card for the full description and rationale
Must have 9
Player begins with a single companion creature and can catch additional wild creatures encountered while walking routes.
WhyNamed as the opening hook of the journey in the transcript and is table-stakes for the genre per competitor analysis.
Battles are turn-based duels where each side picks a category (attack, defense, speed, special) to fight on, whittling down opponent HP.
WhyThis is the heart of the idea as described by the founder and the product's core differentiator from competitors' card- and gesture-based combat.
Five types — fire, water, grass, electric, rock — beat and lose to each other in a rock-paper-scissors pattern that modifies duel outcomes.
WhyExplicitly specified by the founder as the first depth layer on top of raw stats, and type triangles are table stakes across all competitors.
Each creature carries an ability that bends duel rules — stealing a strat, forcing a category, or negating a type disadvantage.
WhyFounder describes this as the second core depth layer; research flags it as a whitespace deeper than competitors' Marks/Momentum systems.
World is organized into gyms, each themed around a type and guarded by a leader; beating a leader awards a badge.
WhyDirectly specified in the transcript as the world's structure and identified as a differentiation opportunity neither competitor offers.
After winning a 3v3 duel against a gym leader, the player swaps one of their creatures for one of the leader's.
WhyExplicitly described by the founder as a reward mechanic and confirmed by research as a gap no competitor addresses.
Creatures earn XP from every battle outcome (win, lose, or draw), which the trainer allocates across any stat category.
WhyFounder explicitly calls this out as a feature to add, and research flags player-directed stat allocation as a gap versus competitors' automatic evolution stages.
In this initial phase, all opposing trainers encountered on routes and in gyms are AI-controlled rather than live players.
WhyTranscript explicitly scopes phase one to single-player story mode with AI trainers, deferring multiplayer.
Build and balance the loop using existing/placeholder creature data and stats rather than original designs.
WhyFounder's stated strategy: validate the fun of the loop privately before investing in original creatures or art.
Should have 2
Routes and gyms form a continuous walkable world state that persists between sessions, rather than resetting.
WhyCreature Clash: Echoes resets progress via procedurally generated roguelite runs on defeat; a persistent journey better matches the founder's route-walking framing and is a stated differentiation opportunity.
Leaderboard ranks the player against tracked AI trainers by badges earned, not just battles won.
WhyPoke Clash offers only a simple friend-ranking leaderboard; tying ranking to badge/gym progression better reflects the founder's 'top the leaderboard, prove you're the best' framing.
Could have 3
Direct PvP battles between real trainers using the same stat-duel, type, and ability system.
WhyFounder names this as the long-term vision but explicitly defers it past the initial phase; research confirms neither competitor offers stated PvP.
Replace placeholder/real creature data with an original, owned set of creature designs and art.
WhyFounder's own stated sequencing: invest in original creatures only after the loop proves fun, so it belongs later than V1.
Grow the pool of unique, rule-bending abilities beyond the initial launch set once the base loop is validated.
WhyResearch identifies the ability layer as deeper than competitors' systems and worth expanding once core viability is proven.
Won't have 7
No energy systems, currency packs, or subscription passes in this version.
WhyThis is a private prototype validating fun first, not a public release, so monetization is out of scope per the founder's stated strategy.
No mechanism to trade creatures with other trainers.
WhyOffered by Creature Clash: Echoes but not mentioned by the founder and irrelevant to a single-player private prototype.
No egg-based creature acquisition system.
WhyThe founder specifies catching wild creatures on routes as the acquisition method, not hatching, explicitly diverging from both competitors' egg systems.
No procedurally generated maps or run-based resets on defeat.
WhyCompetitor Creature Clash: Echoes uses this structure; the founder's route-walking, persistent-world framing explicitly rejects it.
No card-hand mechanics or gesture/shape-drawing inputs for battling.
WhyBoth competitors use these mechanics; the founder's stat-category duel system is the explicit alternative being tested.
No App Store/Google Play publishing, sign-in, or cloud save/backup in this phase.
WhyTranscript frames this explicitly as a private prototype to validate fun before any public investment.
No Proving-Grounds-style daily challenge modes, equippable relic items, or shiny/rare cosmetic creature variants.
WhyThese are extra systems from Creature Clash: Echoes that add scope without testing the core duel loop the founder wants validated first.
Success metrics 4
Story-mode completion rate
≥70% of prototype playtest sessions reach the final gym badge within the first 30 days of internal testing
Playtest session frequency
≥3 play sessions per week sustained across a 4-week private playtest period
Self-reported fun score (1-5 scale)
Average score of ≥4/5 collected across all playtest sessions within the first 30 days
Category-choice variety per battle
≥3 distinct stat categories used on average per duel, measured across the first 100 test battles within 60 days
Non-goals 5
- Not building or publishing to app stores in this phase — remains a private prototype.
- Not implementing online multiplayer or live PvP battling in V1.
- Not designing or commissioning original creature art or IP for this phase.
- Not building any monetization, account, or cloud-sync systems.
- Not supporting more than the five specified elemental types at launch.
Risks 4
- The stat-duel-plus-abilities loop may not prove meaningfully more fun than card- or gesture-based alternatives once actually played, invalidating the core bet.
- Balancing five types plus per-creature unique abilities and trainer-directed XP allocation could produce dominant strategies that flatten the intended 'read your opponent' tension.
- Using real/existing creature data during prototyping carries IP risk if the build is ever shown publicly or shared before original creatures are developed.
- As a solo passion project, the combined scope of gyms, swap mechanics, abilities, and XP allocation risks stalling before the core loop is even validated.
Open questions 4
- How many gyms/badges constitute a complete V1 story mode for playtesting purposes?
- What threshold of fun/completion data triggers the decision to invest in original creature art?
- Should XP-driven stat allocation be fully player-controlled per category, or guided with suggested distributions?
- Which existing creature dataset will be used for prototyping, and what are the legal constraints on using it even privately?
Want this structure for your own PRD? Start from the free product requirements document template, with a guide to each section.
04
Brand kit
Name notes, tagline, values, palette, type and a logo direction, written from the PRD.
- 4 core colors
- 5 brand values
- Space Grotesk headings
Pick your category. Prove the loop.
- Primary#1F2A44
- Secondary#2F8F8B
- Accent#E8622C
- Neutral#B9C0CC
Space Grotesk / Inter / JetBrains Mono5 brand values
Brand values 5
- Strategic tension over spectacle
- Prototype honesty — test fun before polish
- Read-your-opponent depth
- Structured mastery through gyms and badges
- Solo-builder pragmatism
Semantic colors
- error #C4432E
- success #3FA66B
- warning #E0A62E
Name notes
- Could shorten internally to 'Duel Loop' for day-to-day builds and playtest logs.
- Alt working title 'Clash Core' if a leaner internal codename is preferred over the full franchise-style name.
Logo direction
- Form
- A hexagonal badge shield containing an abstract triangular loop motif
- Style
- Minimal strategic emblem, badge-inspired, flat and geometric — reads as an internal dev/prototype mark rather than a consumer game logo
- Symbol concept
- A closed triangular arrow-loop (referencing the type triangle and the repeating duel/category-pick cycle) set inside a gym-badge silhouette, suggesting both strategy and progression
- Iconography
- Flat geometric line icons with rounded joins, badge and shield motifs for progression states, triangular arrow forms for type/category relationships, limited two-tone fills using palette accents, no illustrative or mascot-style artwork
05
Tech design
The engineering brief: architecture, data flow, data models, schema, stack and the first tasks.
- 9 components
- 15 data models
- 10 first tasks
Overview
A private, single-player web prototype for validating a stat-category duel loop before any art or public release is built. There are no other players, no accounts, and no cloud sync in scope, so the architecture is deliberately local-first: a Next.js client running entirely in the founder's browser, with all creature, battle, and playtest data stored in an on-device SQLite database. Nothing about the duel, the world, or the AI trainers depends on a server, so no backend API is built. The one thing this project must get right is the turn-resolution logic for the stat duel (type triangle + abilities + growth), so that component is designed first and in depth; everything else (world navigation, roster growth, gym/badge progression, AI opponents, telemetry) is built around feeding it clean inputs and recording its outputs for balance analysis.
Data flow
On launch, the Next.js client loads the Creature & Content Data Layer and the founder's save file from local SQLite. The player navigates the route/gym map (World Route Navigation); encountering a wild creature or trainer starts a Battle row. Each round, the player picks a category in the UI while the AI Trainer Decision Engine picks for the opponent; both choices go into the Duel Battle Engine, which applies the type chart and any ability effects, resolves HP deltas, and appends a BattleTurn row. When a battle ends, Creature Roster & Growth awards XP and prompts stat allocation (written as an idempotent XPAllocation); if it was a deciding gym battle, Gym & Badge Progression issues a Badge and runs the idempotent GymSwap. All writes land in the local SQLite database — nothing is sent to a server. Playtest Telemetry logs the session and the founder periodically exports the SQLite file/JSON to review against the success metrics.
Tech stack 7
- frontend
- Next.js (App Router) as a local-first single-page client; no SSR or multi-tenant needs for a solo private prototype.
- backend
- No server/API layer. All game, duel, and progression logic runs client-side in the browser — this is a single local player with no accounts or multiplayer, so a backend would add infrastructure the PRD explicitly excludes.
- database
- Client-side SQLite via sql.js (WASM), persisted to the browser's OPFS/IndexedDB on the founder's own device. No cloud database, so no game or playtest data is ever transmitted anywhere — matches the PRD's explicit 'no cloud sync' non-goal.
- auth
- Not required. Single local player, no account system per PRD non-goals; the app opens straight into the on-device save file.
- llm
- Not required. AI trainers use deterministic, rule-based heuristics (e.g. counter the player's last category, lean into a type advantage, protect low-HP creatures) rather than a generative model, so battle outcomes stay reproducible for the seeded-RNG replay requirement and the 'category-choice variety' success metric. All stat math, type-triangle multipliers, XP, and swap logic are deterministic code, never model output.
- infra
- No cloud infra required to run the prototype; launched via local dev/build on the founder's machine. Optional unlisted Vercel static deploy only to test on a phone browser — it would serve JS/asset bundles only, never game data, keeping the 'no public release' non-goal intact.
- devtools
- TypeScript, ESLint/Prettier as standard; Vitest unit tests specifically around the Duel Battle Engine's round-resolution function, since its correctness and determinism are what the whole validation effort depends on.
Components 9
Duel Battle Engine
The core of the product. Inputs per round: the two active creatures (stats after growth allocation, current HP, ability, elemental type), the category each side picks that round (attack/defense/speed/special), and a seeded RNG value for the battle. Outputs: which side wins the round, the HP delta applied, whether an ability fired and what it changed, and an immutable BattleTurn log row. Category choices are revealed simultaneously, the type-triangle multiplier is applied, abilities resolve in a fixed documented order (steal > force > negate-disadvantage > other), and the same battle_id, rng_seed and choice sequence always reproduce the same outcome, so balance bugs are reproducible.
Ability Rules Registry
Defines the launch set of unique creature abilities as structured trigger/effect data (steal-category, force-category, negate-type-disadvantage, etc.) that the Battle Engine reads and resolves; keeps rule-bending logic declarative and testable rather than hard-coded per creature.
AI Trainer Decision Engine
Deterministic, rule-based (non-LLM) heuristics that choose a category for every AI-controlled opponent — wild creatures, route trainers, and gym leaders — e.g. counter the player's last category, lean into a type advantage, or protect a low-HP creature. Kept deterministic so duel outcomes stay reproducible for balance testing.
Creature Roster & Growth
Tracks each owned CreatureInstance's stats, HP, and ability; awards XP after every battle (win, lose, or draw) and exposes the trainer-directed allocation UI that lets the player assign earned XP to any stat category, writing an idempotent XPAllocation record per battle per creature.
Gym & Badge Progression
Models the ordered sequence of gyms, each with a type theme and a leader trainer; issues a Badge on a 3v3 gym win and runs the post-gym creature swap (player gives one creature, receives one of the leader's), recorded as a single idempotent GymSwap transaction keyed to the deciding battle.
World Route Navigation & Wild Catching
Renders the persistent, walkable route/gym map, resolves wild encounters from each route's weighted species table, and handles the starter-selection and catch flow that adds a new CreatureInstance to the roster.
Creature & Content Data Layer
Loads and serves the placeholder/real creature species, base stats, types, and ability definitions used for prototyping (per the founder's stated strategy of validating the loop before original art); isolated behind one module so the real dataset can later be swapped for original creatures without touching the Battle Engine.
Local Persistence & Save Layer
Owns the on-device SQLite database (schema below): reads/writes all game state, exposes save export/import as a file so the founder can back up a playtest run manually, since no cloud sync is in scope.
Playtest Telemetry & Leaderboard
Logs PlaytestSession records (duration, self-reported 1–5 fun score, battles played) and derives the four success metrics (completion rate, session frequency, fun score, category variety) plus a simple badge-count leaderboard against the tracked AI trainers, all computed locally from the SQLite tables.
Data models 15
Open a model for its fields
Trainer6 fields
- iduuid
- nametext
- roletext
- gymIduuid | null
- decisionProfiletext | null
- createdAttimestamp
- Trainer has many CreatureInstance (as owner)
- Trainer has many Badge (as earner, for leaderboard)
- Trainer 1:1 Gym (as leader)
ElementType2 fields
- idtext
- nametext
- ElementType referenced by Species, Gym, Route, TypeEffectiveness
TypeEffectiveness3 fields
- attackerTypetext
- defenderTypetext
- multipliernumeric
- Composite key (attackerType, defenderType)
Ability6 fields
- iduuid
- nametext
- descriptiontext
- triggerTypetext
- effectTypetext
- effectParamsjsonb
- Ability referenced by Species.abilityId and CreatureInstance.abilityId
- Ability referenced by BattleTurn.abilityTriggeredId
Species11 fields
- iduuid
- nametext
- primaryTypetext
- baseAttackint
- baseDefenseint
- baseSpeedint
- baseSpecialint
- abilityIduuid
- catchRatenumeric
- isLeaderExclusiveboolean
- sourceNotetext
- Species has many CreatureInstance
- Species has many RouteEncounter
CreatureInstance16 fields
- iduuid
- speciesIduuid
- ownerTrainerIduuid
- nicknametext | null
- levelint
- xpTotalint
- attackStatint
- defenseStatint
- speedStatint
- specialStatint
- currentHpint
- maxHpint
- abilityIduuid
- teamSlotint | null
- caughtAttimestamp | null
- createdAttimestamp
- CreatureInstance belongs to Species and Trainer
- CreatureInstance referenced by BattleTurn, XPAllocation, GymSwap
Gym6 fields
- iduuid
- nametext
- typeThemetext
- leaderTrainerIduuid
- sequenceOrderint
- badgeNametext
- Gym has one leader Trainer
- Gym has many Badge
- Gym has many GymSwap via Battle
Badge4 fields
- iduuid
- trainerIduuid
- gymIduuid
- earnedAttimestamp
- Badge belongs to Trainer and Gym
- unique (trainerId, gymId)
Route4 fields
- iduuid
- nametext
- sequenceOrderint
- typeThemetext | null
- Route has many RouteEncounter
- Route referenced by Battle.routeId
RouteEncounter4 fields
- iduuid
- routeIduuid
- speciesIduuid
- encounterWeightnumeric
- RouteEncounter belongs to Route and Species
Battle11 fields
- iduuid
- kindtext
- routeIduuid | null
- gymIduuid | null
- playerTrainerIduuid
- opponentTrainerIduuid | null
- rngSeedbigint
- winnerSidetext | null
- startedAttimestamp
- endedAttimestamp | null
- idempotencyKeytext
- Battle has many BattleTurn
- Battle has 0..1 GymSwap
- Battle has many XPAllocation
BattleTurn12 fields
- iduuid
- battleIduuid
- turnNumberint
- playerCreatureIduuid
- opponentCreatureIduuid
- playerCategorytext
- opponentCategorytext
- typeMultiplierPlayernumeric
- typeMultiplierOpponentnumeric
- abilityTriggeredIduuid | null
- hpDeltaPlayerint
- hpDeltaOpponentint
- BattleTurn belongs to Battle
- unique (battleId, turnNumber)
- source data for category-choice-variety metric
XPAllocation8 fields
- iduuid
- battleIduuid
- creatureInstanceIduuid
- xpEarnedint
- allocatedStattext | null
- allocatedAmountint | null
- allocatedAttimestamp | null
- idempotencyKeytext
- XPAllocation belongs to Battle and CreatureInstance
GymSwap5 fields
- iduuid
- battleIduuid
- playerCreatureGivenIduuid
- leaderCreatureReceivedIduuid
- swappedAttimestamp
- GymSwap belongs to Battle (1:1)
PlaytestSession7 fields
- iduuid
- startedAttimestamp
- endedAttimestamp | null
- durationSecint | null
- funScoreint | null
- battlesPlayedCountint
- notestext | null
- Standalone; aggregated for success-metric reporting
SQL schema (excerpt)
View the SQL20 lines
CREATE TABLE type_effectiveness (
attacker_type text NOT NULL REFERENCES element_types(id),
defender_type text NOT NULL REFERENCES element_types(id),
multiplier numeric NOT NULL,
PRIMARY KEY (attacker_type, defender_type)
);
CREATE TABLE abilities (
id uuid PRIMARY KEY DEFAULT gen_random_uuid(),
name text NOT NULL,
trigger_type text NOT NULL,
effect_type text NOT NULL,
effect_params jsonb
);
CREATE TABLE trainers (
id uuid PRIMARY KEY DEFAULT gen_random_uuid(),
name text NOT NULL,
role text NOT NULL CHECK (role IN ('player','ai_route','gym_leader'))
);First engineering tasks 10
Stand up the sql.js (SQLite/WASM) database from the schema above inside the browser, with OPFS/IndexedDB-backed storage, a migration runner, and a manual save-file export/import so a multi-week playtest isn't lost to browser storage eviction.
Confirm the app boots directly into one local save with no login screen, and add a guard/lint rule preventing any accidental network or cloud-service calls from creeping into the client, per the no-accounts/no-cloud-sync non-goals.
Configure `next dev`/local static build as the primary way to run the prototype; wire an optional unlisted Vercel deploy for phone-browser testing that ships client assets only, with no data endpoints.
Implement the deterministic round-resolution algorithm: category reveal, type-triangle multiplier lookup, fixed-order ability resolution, stat comparison, HP delta, and BattleTurn logging, backed by a seeded RNG and a full Vitest suite covering type/ability edge cases.
Build the trigger/effect data model for abilities (steal-category, force-category, negate-type-disadvantage) and author the initial roster's abilities against it, decoupled from the Battle Engine's core loop.
Implement rule-based category-selection heuristics for wild encounters, route trainers, and gym leaders, with distinct difficulty/decision profiles per Trainer.decisionProfile.
Build the XP-earning logic for every battle outcome (win/lose/draw) and the trainer-directed stat-allocation UI, writing one idempotent XPAllocation row per battle per creature.
Implement gym sequencing, badge issuance on a 3v3 gym win, and the post-gym creature swap as a single idempotent GymSwap transaction keyed to the deciding battle.
Build the persistent route/gym map, weighted wild-encounter resolution from RouteEncounter data, starter selection, and the catch flow that creates a new CreatureInstance.
Log PlaytestSession records (duration, 1-5 fun score, battles played) and add an export view that computes the four PRD success metrics directly from the local SQLite tables.
Open engineering questions 8
- How many gyms/badges constitute a 'complete' V1 story mode for playtesting purposes? (from PRD)
- What threshold of fun/completion data should trigger investment in original creature art? (from PRD)
- Should XP-driven stat allocation be fully free-form per category, or guided with suggested distributions? (from PRD)
- Which existing creature dataset will be used for prototyping, and what legal exposure exists even for a private, unreleased build? (from PRD)
- What is the exact round-resolution/damage formula and tie-break rule when both sides pick the same category or land equal adjusted stats? (this doc assumed 'difference in stat value, no damage on tie' — needs founder sign-off)
- When more than one ability could trigger in the same round, what is the intended precedence beyond the placeholder steal > force > negate order used here?
- Is browser OPFS/IndexedDB persistence reliable enough across a 4+ week playtest, or should the prototype be wrapped in a thin desktop shell (e.g. a Tauri build) for a guaranteed on-disk SQLite save file?
- Is the prototype meant to be played on a phone browser (touch input, small screen) during validation, or is desktop-only acceptable for this phase?
06
Confluence space
A new space named after the brand, with six pages written from the artifacts above.
Creature Clash
Confluence space · 6 pages
- 01 - Product
- 02 - Brand & Identity
- 03 - Engineering
- 04 - Competitor Analysis
- 05 - Roadmap
- 06 - Research Notes
07
Roadmap
Every story is placed in one of three phases.
- 3 phases
- 47 stories placed
Phase 1 Now
19stories
12 epics
- Engineering & Infrastructure
- Starter creature & wild catching
- Stat-category duel system
- Elemental type triangle
- Unique creature abilities
- Gym/badge structure with leaders
- Post-gym 3v3 creature swap
- XP and trainer-directed stat growth
- AI-powered single-player trainers
- Prototype on real creature data, no original art
- Persistent open-world route exploration
- Badge-linked trainer leaderboard
Phase 2 Next
19stories
11 epics
- Starter creature & wild catching
- Stat-category duel system
- Elemental type triangle
- Unique creature abilities
- Gym/badge structure with leaders
- Post-gym 3v3 creature swap
- XP and trainer-directed stat growth
- AI-powered single-player trainers
- Prototype on real creature data, no original art
- Persistent open-world route exploration
- Badge-linked trainer leaderboard
Phase 3 Later
9stories
9 epics
- Engineering & Infrastructure
- Stat-category duel system
- Unique creature abilities
- Gym/badge structure with leaders
- Post-gym 3v3 creature swap
- XP and trainer-directed stat growth
- AI-powered single-player trainers
- Prototype on real creature data, no original art
- Persistent open-world route exploration
08
Jira board
A new Jira project (CREAT67) created in the owner's own Atlassian site: 12 epics, 47 stories.
CREAT6712 epics · 47 stories
- P1 Now
- P2 Next
- P3 Later