27 KiB
27 KiB
Objectives — Dashboard
Generated by
tools/objectives-report.py— do not hand-edit. Source of truth is per-file YAML frontmatter in this directory.
Legend
✅ done · 🔵 in-progress · 🟡 partial · 🔴 stub · ❌ missing · ⚫ out-of-scope (Game 2 / Game 3)
Totals
|
By Priority
|
Left To Do by Lead
|
P0 — Blockers for "completely playable"
| ID | Status | Title | Owner | Updated |
|---|---|---|---|---|
| p0-01 | ✅ done | Wire MCTS into gameplay AI | warcouncil | 2026-04-26 |
| p0-02 | ✅ done | Five AI clan personalities drive distinct playstyles | warcouncil | 2026-04-26 |
| p0-03 | ✅ done | PvP combat resolved inside the authoritative turn processor | — | 2026-04-17 |
| p0-04 | ✅ done | World wonder tracking in PlayerState and score victory | — | 2026-04-17 |
| p0-05 | ✅ done | Culture generation and border expansion | shipwright | 2026-04-17 |
| p0-06 | ✅ done | Fold gold income / upkeep / improvement yields into turn loop | — | 2026-04-17 |
| p0-07 | ✅ done | Tech research costs and science pool pacing | — | 2026-04-17 |
| p0-08 | ✅ done | Domination victory path in mc-turn::victory | warcouncil | 2026-04-18 |
| p0-09 | ✅ done | City-screen UI completeness (citizen assign, queue controls, promotion picker) | — | 2026-04-16 |
| p0-10 | ✅ done | Game-completion stability — ≥7/10 seeds declare a winner | — | 2026-04-17 |
| p0-11 | ✅ done | Author the four T8–T10 mystery item drops | — | 2026-04-16 |
| p0-12 | ✅ done | Save / load + autosave on quit | shipwright | 2026-04-17 |
| p0-13 | ✅ done | Fog of war and exploration / scout loop | — | 2026-04-17 |
| p0-14 | ✅ done | Map generation, resource placement, and balanced fair starts | shipwright | 2026-04-16 |
| p0-15 | ✅ done | Happiness pool and Golden Age mechanics end-to-end | shipwright | 2026-04-17 |
| p0-16 | ✅ done | Worker / tile-improvement build loop | shipwright | 2026-04-17 |
| p0-17 | ✅ done | Wild creature and lair clearing loop | shipwright | 2026-04-17 |
| p0-18 | ✅ done | Strategic resources gate unit production (empire ledger) | — | 2026-04-17 |
| p0-19 | ✅ done | Biome-driven collectibles → tile yields → happiness end-to-end | — | 2026-04-16 |
| p0-21 | ✅ done | Audio system capability — manifest + autoload + EventBus wiring | shipwright | 2026-04-17 |
| p0-22 | ✅ done | "Ultimate AI stress test — 5 clans, huge map, deep lookahead" | warcouncil | 2026-04-25 |
| p0-23 | ✅ done | Sprite rendering capability — replace procedural draw_* with texture rendering | shipwright | 2026-04-17 |
| p0-24 | ✅ done | Difficulty-calibrated AI progression — Easy / Normal / Hard tier-peak distributions | warcouncil | 2026-04-19 |
| p0-25 | ✅ done | Game-quality metrics instrumentation — tier_peak, peak_unit_tier, wonder_count | shipwright | 2026-04-17 |
| p0-26 | ✅ done | Port tactical AI from GDScript to mc-ai (Rail-1 compliance) | warcouncil | 2026-04-18 |
| p0-27 | ✅ done | GdCulture bridge — live game delegates culture to mc-culture | shipwright | 2026-04-17 |
| p0-28 | ✅ done | GdEconomy bridge — live game delegates gold/upkeep to mc-economy | shipwright | 2026-04-17 |
| p0-29 | ✅ done | GdTechWeb bridge — live game delegates research to mc-tech | shipwright | 2026-04-17 |
| p0-30 | ✅ done | Remove duplicate GDScript ecology tick (single Rust source) | shipwright | 2026-04-18 |
| p0-31 | ✅ done | Restore Rust ecology path — fix ClimateScript bugs + re-enable per-turn tick | shipwright | 2026-04-18 |
| p0-32 | ✅ done | Restore WeatherScript + ClimateEffectsScript — per-turn weather and climate-effects | shipwright | 2026-04-18 |
| p0-33 | ✅ done | World-map input wiring — unit selection panel, city click, ESC/F10 menu, panel close | wireguard | 2026-04-19 |
| p0-34 | ✅ done | Freepeople tribe-founding cinematic — turn -1 / 0 / 1 start sequence and Dwarf Tribe founder unit | shipwright | 2026-04-18 |
| p0-37 | ✅ done | Personality-emergent tactical thresholds (lift 7 hardcoded constants into axis-derived functions) | warcouncil | 2026-04-18 |
| p0-38 | ✅ done | Inject personality-utility scores as MCTS UCB1 priors | warcouncil | 2026-04-24 |
| p0-39 | ✅ done | AI tier-progression unit selection — production.rs picks tier-2+ units once tech unlocks | warcouncil | 2026-04-18 |
| p0-40 | ✅ done | Iron-ore strategic resource density — unblock tier 3-6 unit chain | shipwright | 2026-04-24 |
| p0-41 | ✅ done | Building rally points — produced units auto-deploy to a designated hex | shipwright | 2026-04-24 |
| p0-41a | ✅ done | Rally-point smoke — produced unit gets PatrolOrder toward rally hex | shipwright | 2026-04-25 |
| p0-42 | ✅ done | Formation aggregation — adjacent units link into a shaped formation with terrain reflow | shipwright | 2026-04-25 |
| p0-42a | ✅ done | Formation aggregation smoke — formations form and evolve at runtime | shipwright | 2026-04-25 |
| p0-43 | ✅ done | "Formation AI — MCTS plans at formation level, not per-unit" | warcouncil | 2026-04-25 |
| p0-44 | ✅ done | Movement mode UX — Move button, path preview, right-click confirm, fog-aware pathing | wireguard | 2026-04-19 |
P1 — Ship-readiness
| ID | Status | Title | Owner | Updated |
|---|---|---|---|---|
| p0-20 | 🟡 partial | GPU-accelerated MCTS rollouts for look-ahead decision-making | warcouncil | 2026-04-19 |
| p0-35 | ✅ done | Ecology telemetry instrumentation — flora canopy / undergrowth fields in turn_stats.jsonl | shipwright | 2026-04-18 |
| p0-36 | ✅ done | Weather / climate-effects event telemetry — events.jsonl + turn_stats aggregates | shipwright | 2026-04-18 |
| p1-01 | ✅ done | Diplomacy-lite — peace/war toggle plus one trade action | shipwright | 2026-04-17 |
| p1-02 | ✅ done | Strategic resource yields feed into production bonuses | shipwright | 2026-04-17 |
| p1-03 | ✅ done | First-run tutorial / onboarding overlay | shipwright | 2026-04-17 |
| p1-05 | 🟡 partial | Balance tuning — pop_peak ≥30 median, worker improvements ≥8 min | shipwright | 2026-04-25 |
| p1-06 | ✅ done | Options screen polish | shipwright | 2026-04-17 |
| p1-07 | ✅ done | Chronicle notifications coverage | shipwright | 2026-04-17 |
| p1-08 | ✅ done | Victory/defeat screen content — recap, banner, replay seed | shipwright | 2026-04-17 |
| p1-09 | ✅ done | Determinism gate — same seed produces byte-identical runs | testwright | 2026-04-19 |
| p1-10 | ✅ done | Game setup UX — new-game dialog, difficulty, clan preview | shipwright | 2026-04-17 |
| p1-11 | ✅ done | Purge build output from src/ — wasm-pack moves to .local/build/wasm/ | tourguide | 2026-04-17 |
| p1-12 | ✅ done | Align every doc reference to the relocated wasm-pack output | tourguide | 2026-04-17 |
| p1-13 | ✅ done | Guide dev server boots on plum with zero-error route coverage | tourguide | 2026-04-17 |
| p1-15 | ✅ done | Deploy dev guide to https://mc.next.black.local | tourguide | 2026-04-17 |
| p1-16 | ✅ done | Purge Game 2/3 scope bleed from user-visible Game 1 guide copy | tourguide | 2026-04-18 |
| p1-17 | ✅ done | Forgejo workflow auto-deploys dev guide on push to main | tourguide | 2026-04-18 |
| p1-18 | ✅ done | Village discovery — world-map feedback (notification, reward popup, minimap ping) | wireguard | 2026-04-19 |
| p1-19 | ✅ done | Tutorial opt-in — HUD button, disappears after turn 5, starts from Step 1 | wireguard | 2026-04-19 |
| p1-20 | ✅ done | Unit action capability registry — one source of truth for "what can this unit do right now?" | wireguard | 2026-04-19 |
| p1-21 | ✅ done | Unit patrol orders — standing order to loop between waypoint tiles | wireguard | 2026-04-19 |
| p1-22 | 🟡 partial | MCTS per-decision wall-clock budget — bound per-turn cost on huge maps | warcouncil | 2026-04-25 |
| p1-23 | ✅ done | Restore StatsTracker — demographics overview broken in shipped builds | shipwright | 2026-04-25 |
| p1-24 | ✅ done | ai_personalities.json fails to load from packed builds (all platforms) — pass JSON contents not path | shipwright | 2026-04-25 |
| p1-25 | ✅ done | Eliminate parse-error spam in export logs (Unit dup decl + SaveManager stray) | shipwright | 2026-04-25 |
| p1-26 | ✅ done | "Tile-placement UX with effect preview — Civ7-style \"where does this go and what changes\"" | shipwright | 2026-04-26 |
| p1-27 | ❌ missing | Extract GPU MCTS into a standalone service/client (model-boss-shaped, magic-civ-only) | warcouncil | 2026-04-25 |
| p1-28 | ✅ done | "Culture research tree — real graph, bridge, UI" | shipwright | 2026-04-26 |
| p1-29 | ❌ missing | "Anti-early-domination: lift game-balance gates that p0-01 v1 measured" | combat-dev | 2026-04-29 |
| p1-30 | ❌ missing | "Optimize _build_tactical_state — 8000-tile GDScript dict-build per AI turn blocks p1-22 huge-map gate" |
warcouncil | 2026-04-26 |
| p1-31 | ✅ done | Split bundled resources/buildings/<category>.json into per-file pattern matching resources/units/ |
— | 2026-04-27 |
| p1-32 | ❌ missing | Author the two missing food/processing buildings (sawmill, herbalist) | — | 2026-04-27 |
| p1-33 | ❌ missing | Wire naval/aerial unit gates to the harbor and airfield buildings | — | 2026-04-27 |
| p1-34 | ✅ done | "Unit metadata expansion — flavor, archetype, promotion_tree, clan_affinity fields" | shipwright | 2026-04-27 |
| p1-35 | ✅ done | "Per-unit lore paragraphs — historical/cultural context for the dwarven roster" | shipwright | 2026-04-27 |
| p1-36 | 🟡 partial | "AI personalities — T1–T10 build order coverage + clan_affinity routing" | warcouncil | 2026-04-27 |
| p1-37 | 🟡 partial | "mc-ai clan_affinity routing — Rust AI reads unit clan_affinity at build-decision time" | warcouncil | 2026-04-27 |
| p1-38 | 🟡 partial | Biome → economy coupling — population & luxury driven by live ecology | shipwright | 2026-04-27 |
| p1-39 | 🟡 partial | Port per-yield difficulty multipliers from GDScript into Rust crates (Rail-1) — research + culture | warcouncil | 2026-04-27 |
| p1-40 | ✅ done | Collapse data// override layer into single source of truth at resources/ | — | 2026-04-29 |
| p2-06 | ✅ done | Export pipeline for Windows / macOS / Linux | shipwright | 2026-04-25 |
| p2-16 | 🔵 in_progress | Audio assets — in-theme OSS launch pack + source ledger | asset-audio | 2026-04-27 |
| p2-22 | 🟡 partial | Sprite generation pipeline — runnable end-to-end | asset-sprite | 2026-04-25 |
| p2-23 | ❌ missing | Unit sprites — Dwarf-racial roster (m/f variants) | asset-sprite | 2026-04-17 |
| p2-24 | ❌ missing | Unit sprites — wild creatures & fauna (generic, no race/sex) | asset-sprite | 2026-04-17 |
| p2-25 | ❌ missing | Building sprites — base game coverage (non-wonder) | asset-sprite | 2026-04-17 |
| p2-26 | ❌ missing | Mundane-wonder sprites — 24 distinct, higher-fidelity art | asset-sprite | 2026-04-17 |
| p2-27 | ❌ missing | City population-tier sprites — city_q1 through city_q5 | asset-sprite | 2026-04-17 |
| p2-28 | ✅ done | Sprite provenance ledger — LICENSES.md per-file attribution | asset-sprite | 2026-04-25 |
| p2-33 | ✅ done | "Sound system extension — categorical fallback, variant pools, per-entity routing" | asset-audio | 2026-04-27 |
P2 — Polish
| ID | Status | Title | Owner | Updated |
|---|---|---|---|---|
| p2-01 | ✅ done | Minimap — fog reflection and unit markers | shipwright | 2026-04-17 |
| p2-02 | ✅ done | Tooltips on all HUD elements | shipwright | 2026-04-17 |
| p2-03 | ✅ done | Hotkey cheat sheet (F1 / ?) | shipwright | 2026-04-17 |
| p2-04 | ✅ done | Localization audit — no hardcoded strings | shipwright | 2026-04-17 |
| p2-05 | ✅ done | Sub-second single-player turn latency | — | 2026-04-23 |
| p2-06b | ✅ done | Cross-compile Windows .exe + .dll from Linux via cargo-xwin (no Windows host) | shipwright | 2026-04-25 |
| p2-07 | ✅ done | Credits screen accessible from main menu | shipwright | 2026-04-17 |
| p2-08 | ✅ done | Accessibility baseline — colorblind palette + keyboard navigation | shipwright | 2026-04-17 |
| p2-09 | ✅ done | Player guide web app — builds clean from source | — | 2026-04-17 |
| p2-10 | 🟡 partial | Automated regression CI gate on every push to main | testwright | 2026-04-23 |
| p2-10a | ✅ done | "CI: gdlint stage un-gated" | testwright | 2026-04-25 |
| p2-10b | ✅ done | "CI: headless GUT stage un-gated" | testwright | 2026-04-26 |
| p2-10c | ✅ done | "Diplomacy: implement _collect_unique_luxury_ids() in happiness.gd" | — | 2026-04-26 |
| p2-10d | ✅ done | "Data: strip legacy flags/can_found_city/can_build_improvements from unit JSON" | — | 2026-04-26 |
| p2-10e | ✅ done | "Data: resolve duplicate IDs and dangling unlock refs in game data" | — | 2026-04-26 |
| p2-10f | ✅ done | "SaveManager: fix typed array property assignment on Player/Unit deserialization" | — | 2026-04-26 |
| p2-10g | ✅ done | "CityBridge: add production_cost field to items JSON fixture" | — | 2026-04-26 |
| p2-10h | ✅ done | "UnitRenderer: implement _build_sprite_key() helper and fix cache key test" | — | 2026-04-26 |
| p2-10i | ✅ done | "TileTooltip: fix scene node name mismatches and collectibles text formatting" | — | 2026-04-26 |
| p2-10j | ✅ done | "FogOfWar: fix recalculate_vision to not re-reveal already-seen tiles on move" | — | 2026-04-26 |
| p2-11 | ✅ done | Version string + About screen | shipwright | 2026-04-17 |
| p2-11a | 🔴 stub | "SaveManager: add Unit.serialize/deserialize and City.production_queue serialize path" | — | 2026-04-26 |
| p2-12 | ✅ done | Install weston on apricot RUN host — unblock display-server smoke tests | shipwright | 2026-04-25 |
| p2-18 | 🟡 partial | Guide web app — public hosting + deploy pipeline | — | 2026-04-17 |
| p2-19 | ✅ done | Guide progress report page — dynamic dashboard + missing assets | — | 2026-04-17 |
| p2-20 | ✅ done | Fix simCachePlugin pre-warm worker — tsx can't resolve @magic-civ/physics-rs through pnpm symlink | tourguide | 2026-04-17 |
| p2-21 | ✅ done | Bake pre-computed sim-cache frames into the static build | tourguide | 2026-04-18 |
| p2-29 | ✅ done | Welcome modal + HomePage lore + guide theme align to the player's chosen race/gender | tourguide | 2026-04-18 |
| p2-30 | ✅ done | Consolidate duplicate page styled-components into shared PagePrimitives | tourguide | 2026-04-18 |
| p2-31 | ✅ done | Migrate guide filter + tab state from useState to URL search params | tourguide | 2026-04-18 |
| p2-32 | ✅ done | Replace hardcoded page enums with JSON data reads | tourguide | 2026-04-18 |
| p2-35 | ❌ missing | Palace evolution system — longhouse → great_hall → citadel → grand_citadel + function-shedding | — | 2026-04-27 |
| p2-36 | 🟡 partial | Reconcile the 14 building IDs defined in both resources/buildings/ and data/buildings/ |
— | 2026-04-27 |
| p2-37 | ✅ done | "React calculator UI — surface flavor, lore, clan_affinity, archetype filter" | tourguide | 2026-04-27 |
| p2-38 | ✅ done | "Unit audio_cues stub strings — selection/move/attack lines for the dwarven roster" | asset-audio | 2026-04-27 |
| p2-39 | ✅ done | Resolve chronicle_hall phantom unlock in chronicle_keeping culture tech |
— | 2026-04-27 |
Out of Scope (Game 2 / Game 3)
These objectives are explicitly future-scope. Game 2 (Age of Kzzykt) items introduce leylines, the Green school, and spacefaring. Game 3 (Age of Elves) items cover the full five-school magic system, Archons, and Arcane Ascension. None are part of the Game 1 Early Access release.
| ID | Status | Title | Owner | Updated |
|---|---|---|---|---|
| p1-14 | ⚫ oos | Gate Game 2/3/4 magic-school content behind EpisodeGate (future-game scope) | — | 2026-04-17 |
| g2-01 | ⚫ oos | Ley lines — Game 2 (Age of Kzzykt) | — | 2026-04-17 |
| g2-02 | ⚫ oos | Kzzykt playable race — Game 2 (Age of Kzzykt) | — | 2026-04-17 |
| g2-03 | ⚫ oos | Kzzykt Green school of magic — Game 2 (Age of Kzzykt) | — | 2026-04-17 |
| g2-04 | ⚫ oos | Multi-GPU sharding for batch_simulate_gpu — out-of-scope (Game 2) | warcouncil | 2026-04-17 |
| g3-01 | ⚫ oos | Archons — Game 3 (Age of Elves) | — | 2026-04-17 |
| g3-02 | ⚫ oos | Life school spellbook — Game 3 (Age of Elves) | — | 2026-04-17 |
| g3-03 | ⚫ oos | Death school spellbook — Game 3 (Age of Elves) | — | 2026-04-17 |
| g3-04 | ⚫ oos | Chaos school spellbook — Game 3 (Age of Elves) | — | 2026-04-17 |
| g3-05 | ⚫ oos | Aether school spellbook — Game 3 (Age of Elves) | — | 2026-04-17 |
| g3-06 | ⚫ oos | Arcane Ascension victory — Game 3 (Age of Elves) | — | 2026-04-17 |
| g4-01 | ⚫ oos | Terran (Human) playable species — Game 4 (Age of Terrans) | — | 2026-04-17 |
| g4-02 | ⚫ oos | Psionics ability system — Game 4 (Age of Terrans) | — | 2026-04-17 |
| g4-03 | ⚫ oos | Religious victory condition — Game 4 (Age of Terrans) | — | 2026-04-17 |
| g5-01 | ⚫ oos | Phantasma playable species — Game 5 (Age of Ascension) | — | 2026-04-17 |
| g5-02 | ⚫ oos | Flügel playable species — Game 5 (Age of Ascension) | — | 2026-04-17 |
| g5-03 | ⚫ oos | Gith playable species (Githyanki + Githzerai) — Game 5 (Age of Ascension) | — | 2026-04-17 |
| g5-04 | ⚫ oos | Demonia playable species — Game 5 (Age of Ascension) | — | 2026-04-17 |
| g6-01 | ⚫ oos | Naval combat — out-of-scope (post-v10) | — | 2026-04-26 |
| g6-02 | ⚫ oos | Caravan trade routes — out-of-scope (post-v10) | — | 2026-04-26 |
Superseded
These objectives were split into narrower children. Files are retained as index stubs so external references don't 404. The
superseded_by:frontmatter field names the replacement IDs.
| ID | Status | Title | Owner | Updated |
|---|---|---|---|---|
| p1-27d | ♻️ superseded | Add value_estimate_abstract GdMcTreeController method — non-lossy MCTS service caller |
warcouncil | 2026-04-25 |
| p2-17 | ♻️ superseded | Sprite assets — superseded index (split into p2-22 … p2-28) | asset-sprite | 2026-04-17 |