W-018: demo-totalwar product brief¶
Type: design · Size: S · Epic: E-totalwar-m1 · Target: docs/products/demo-totalwar.md · Breaking: no Depends: – Refs: concept §8 (demo-totalwar row, performance risk), README (demo table), apps/demo-totalwar (exists, empty, no scaffold item yet); docs/products/demo-totalwar.md does not exist yet; model: W-016, W-017, demo-dnd brief
Goal¶
Write the product brief for the Total War style mass-battle demo demo-totalwar with ProductOwner: vision, core loop, ECS showcase, and a backlog with at most 6 M1 features, each small enough for one S or M feature item. Follow the product-brief format and concept §8 (many units, formations, SoA traits, cached queries, updateEach, useStores, R3F instanced meshes; benchmarks vs. bitECS; koota's limits shown honestly, no workers; ecs-schedule is fixed-step and later, not v0). Decided by the user (2026-11-02): genre is Total War style mass battles with multiple units and individual soldiers modeled. Scale is the maximum koota allows, derived from reference/koota: entity IDs are 20 bits (ENTITY_ID_BITS = 20), so one world holds at most 1,048,576 entity IDs (0 to 1,048,575). allocateEntity does not check this limit, so the brief must state the cap and the demo must guard it. Target: up to 1,048,576 entities alive at once per world (soldiers, units, formations, projectiles); koota's 16-world cap (4 world bits) is noted. Still open: M1 scope. When the brief is approved, Triage creates the scaffold and spec items and the M1 feature items.
Steps¶
- S1: draft the brief with the user (interview: confirm genre, M1 scope, and target unit count for the benchmark); files: docs/products/demo-totalwar.md
- S2: user approves the brief
Log¶
- 2026-11-02 created (Triage); file added for an item that was on Later without a file
- 2026-11-02 ready check passed (target, refs, goal, size S, Depends none); epic E-totalwar-m1 set (new epic, mirrors E-anno-m1 and E-ck3-m1); moved Later -> Next (Triage). Open question for user: confirm the Total War style mass-battle genre and M1 scope and battle size
- 2026-11-02 started (Triage) at user request, state active, moved Next -> Now (Now was empty; priority overridden by user). Genre and scale answers recorded in Goal; scale = koota max of 1,048,576 entities per world
- 2026-11-02 user approved the brief; S1 and S2 ticked. Brief status line in docs/products/demo-totalwar.md still says draft (outside Triage's edit scope; user to update)
- 2026-11-02 active -> done (Triage): follow-ups W-074 (scaffold) and W-075 (spec) created; W-073 (spike) Later -> Next