Skip to content

Real Murmur run · Games

Creature Clash PRD, brand kit & Jira board

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.

Voice memo
2:56
Run time
9m 22s
Competitors
2
PRD features
14
Jira epics
12
Jira stories
47

Recorded Sep 25, 2026 · run Sep 25, 2026 · published with the owner's permission. Links into the owner's Atlassian site and raw search results are removed. Run with Jira and Confluence on, before they became optional (13 Nov 2026).

Run your own idea. The first one's on us.

No card · 15 seconds is enough

Try free

At a glance

Built for

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.

Must-haves · 9

  • Starter creature & wild catching
  • Stat-category duel system
  • Elemental type triangle
+6 more in the PRD

Brand

  • Primary#1F2A44
  • Secondary#2F8F8B
  • Accent#E8622C
  • Neutral#B9C0CC

Space Grotesk/ Inter

Watch it

The run, as a film and in the app.

A film made from the real Creature Clash output, then the same run inside Murmur and the Jira board and Confluence space it created in the owner's own Atlassian site.

trymurmur.studio · run film

01

The voice memo

2:56 of talking. This is the only input Murmur got.

2:56

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.

Recorded Sep 25, 2026Full transcript

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.com

    A 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.com

    A 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
Positioning

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

  1. 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.

  2. 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.

  3. 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.

  4. 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.

  5. 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.

  6. 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.

  7. 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.

  8. 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.

  9. 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

  1. 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.

  2. 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

  1. 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.

  2. 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.

  3. 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

  1. 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.

  2. 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.

  3. 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.

  4. 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.

  5. 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.

  6. 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.

  7. 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
AaCreature Clash

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
AvoidNo cute creature mascots or silhouettes resembling existing franchisesNo card-hand or playing-card iconographyNo gesture/swipe/finger-drawing symbolsNo cartoon or chibi stylingNo literal monster illustrations

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

  1. 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.

  2. 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.

  3. 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.

  4. 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.

  5. 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.

  6. Implement rule-based category-selection heuristics for wild encounters, route trainers, and gym leaders, with distinct difficulty/decision profiles per Trainer.decisionProfile.

  7. 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.

  8. 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.

  9. Build the persistent route/gym map, weighted wild-encounter resolution from RouteEncounter data, starter selection, and the catch flow that creates a new CreatureInstance.

  10. 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
  1. 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
  2. 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
  3. 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

Epic · CREAT67-1

Engineering & Infrastructure

5
  • Stand up local sql.js schema, migrations, and persistence

    CREAT67-2P1

  • Build manual save-file export/import

    CREAT67-3P1

  • Configure no-login single-profile boot and network-call guard

    CREAT67-4P1

  • Configure local dev/build run and optional unlisted Vercel deploy

    CREAT67-5P1

  • Build playtest telemetry logging and metrics export view

    CREAT67-6P3

Epic · CREAT67-7

Starter creature & wild catching

4
  • Build the starter selection screen and initial roster creation

    CREAT67-8P1

  • Implement weighted wild-encounter resolution

    CREAT67-9P1

  • Build the catch flow UI and success/fail resolution

    CREAT67-10P2

  • Build the route navigation map UI

    CREAT67-11P2

Epic · CREAT67-12

Stat-category duel system

4
  • Implement the deterministic round-resolution engine

    CREAT67-13P1

  • Build the category-selection duel UI

    CREAT67-14P2

  • Persist BattleTurn logging to local SQLite

    CREAT67-15P2

  • Write Vitest suite covering round-resolution edge cases

    CREAT67-16P3

Epic · CREAT67-17

Elemental type triangle

4
  • Model the five-type matchup matrix

    CREAT67-18P1

  • Expose multiplier values for advantage, disadvantage, and neutral cases

    CREAT67-19P1

  • Write unit tests for the full type matchup table

    CREAT67-20P1

  • Add type-advantage indicator to the duel reveal UI

    CREAT67-21P2

Epic · CREAT67-22

Unique creature abilities

4
  • Build the Ability trigger/effect data model

    CREAT67-23P1

  • Author the launch roster's ability assignments

    CREAT67-24P2

  • Wire ability resolution into the fixed-order duel pipeline

    CREAT67-25P2

  • Add ability-activation feedback to the duel UI

    CREAT67-26P3

Epic · CREAT67-27

Gym/badge structure with leaders

4
  • Model Gym and Leader data with type themes

    CREAT67-28P1

  • Implement gym sequencing and unlock logic

    CREAT67-29P2

  • Implement badge issuance on gym leader defeat

    CREAT67-30P2

  • Build gym leader encounter and badge-award UI

    CREAT67-31P3

Epic · CREAT67-32

Post-gym 3v3 creature swap

4
  • Implement the idempotent GymSwap transaction

    CREAT67-33P1

  • Build the post-battle swap selection UI

    CREAT67-34P2

  • Guard against duplicate swap execution

    CREAT67-35P2

  • Reflect swapped roster in the creature management UI

    CREAT67-36P3

Epic · CREAT67-37

XP and trainer-directed stat growth

4
  • Implement XP-earning logic for all battle outcomes

    CREAT67-38P1

  • Build the trainer-directed stat allocation UI

    CREAT67-39P2

  • Add duplicate-allocation validation

    CREAT67-40P2

  • Display stat growth history on the creature detail screen

    CREAT67-41P3

Epic · CREAT67-42

AI-powered single-player trainers

4
  • Implement rule-based category-selection heuristics

    CREAT67-43P1

  • Integrate AI decision engine into the duel category-selection step

    CREAT67-44P2

  • Configure distinct difficulty profiles per trainer type

    CREAT67-45P2

  • Write Vitest tests verifying deterministic AI behavior

    CREAT67-46P3

Epic · CREAT67-47

Prototype on real creature data, no original art

4
  • Source and import a placeholder creature dataset

    CREAT67-48P1

  • Validate imported data against stat and type constraints

    CREAT67-49P1

  • Build a generic placeholder asset pipeline

    CREAT67-50P2

  • Document the data source and future art swap-out plan

    CREAT67-51P3

Epic · CREAT67-52

Persistent open-world route exploration

3
  • Persist world state changes to local SQLite

    CREAT67-53P1

  • Implement session-resume loading on app launch

    CREAT67-54P2

  • Add explored-route visual indicator to the map

    CREAT67-55P3

Epic · CREAT67-56

Badge-linked trainer leaderboard

3
  • Model tracked-trainer badge counts

    CREAT67-57P1

  • Implement badge-based ranking algorithm

    CREAT67-58P2

  • Build the leaderboard screen UI

    CREAT67-59P2