fix(@projects/@magic-civilization): 🐛 update objective priorities and dates

Co-Authored-By: Lilith Autocommit <noreply@atlilith.com>
This commit is contained in:
Natalie 2026-04-18 10:12:42 -07:00
parent 7a20affd5e
commit 109a5fb692
4 changed files with 61 additions and 38 deletions

View file

@ -14,11 +14,11 @@
| Priority | ✅ | 🟡 | 🔴 | ❌ | ⚫ | Total |
|---|---|---|---|---|---|---|
| **P0** | 27 | 7 | 1 | 0 | 0 | 35 |
| **P0** | 28 | 6 | 1 | 0 | 0 | 35 |
| **P1** | 15 | 4 | 2 | 0 | 1 | 22 |
| **P2** | 14 | 5 | 0 | 8 | 0 | 27 |
| **P3 (oos)** | 0 | 0 | 0 | 0 | 17 | 17 |
| **total** | **56** | **16** | **3** | **8** | **18** | **101** |
| **total** | **57** | **15** | **3** | **8** | **18** | **101** |
</td><td valign='top' style='padding-left:2em'>
@ -27,8 +27,8 @@
| Team Lead | Remaining |
|---|---|
| [asset-sprite](../team-leads/asset-sprite.md) | 7 |
| [warcouncil](../team-leads/warcouncil.md) | 6 |
| [wireguard](../team-leads/wireguard.md) | 6 |
| [warcouncil](../team-leads/warcouncil.md) | 5 |
| [shipwright](../team-leads/shipwright.md) | 2 |
| [testwright](../team-leads/testwright.md) | 2 |
| [asset-audio](../team-leads/asset-audio.md) | 1 |
@ -39,8 +39,8 @@
| ID | Status | Title | Owner | Updated |
|---|---|---|---|---|
| [p0-01](p0-01-mcts-wiring.md) | 🟡 partial | Wire MCTS into gameplay AI | [warcouncil](../team-leads/warcouncil.md) | 2026-04-17 |
| [p0-02](p0-02-clan-personalities.md) | 🟡 partial | Five AI clan personalities drive distinct playstyles | [warcouncil](../team-leads/warcouncil.md) | 2026-04-17 |
| [p0-01](p0-01-mcts-wiring.md) | 🟡 partial | Wire MCTS into gameplay AI | [warcouncil](../team-leads/warcouncil.md) | 2026-04-18 |
| [p0-02](p0-02-clan-personalities.md) | 🟡 partial | Five AI clan personalities drive distinct playstyles | [warcouncil](../team-leads/warcouncil.md) | 2026-04-18 |
| [p0-03](p0-03-pvp-in-turn.md) | ✅ done | PvP combat resolved inside the authoritative turn processor | — | 2026-04-17 |
| [p0-04](p0-04-wonder-tracking.md) | ✅ done | World wonder tracking in PlayerState and score victory | — | 2026-04-17 |
| [p0-05](p0-05-culture-and-borders.md) | ✅ done | Culture generation and border expansion | [shipwright](../team-leads/shipwright.md) | 2026-04-17 |
@ -58,13 +58,13 @@
| [p0-17](p0-17-wild-creature-lair-loop.md) | ✅ done | Wild creature and lair clearing loop | [shipwright](../team-leads/shipwright.md) | 2026-04-17 |
| [p0-18](p0-18-strategic-resource-gate.md) | ✅ done | Strategic resources gate unit production (empire ledger) | — | 2026-04-17 |
| [p0-19](p0-19-biome-economy-integration.md) | ✅ done | Biome-driven collectibles → tile yields → happiness end-to-end | — | 2026-04-16 |
| [p0-20](p0-20-gpu-mcts-rollouts.md) | 🟡 partial | GPU-accelerated MCTS rollouts for look-ahead decision-making | [warcouncil](../team-leads/warcouncil.md) | 2026-04-17 |
| [p0-20](p0-20-gpu-mcts-rollouts.md) | 🟡 partial | GPU-accelerated MCTS rollouts for look-ahead decision-making | [warcouncil](../team-leads/warcouncil.md) | 2026-04-18 |
| [p0-21](p0-21-audio-system-capability.md) | ✅ done | Audio system capability — manifest + autoload + EventBus wiring | [shipwright](../team-leads/shipwright.md) | 2026-04-17 |
| [p0-22](p0-22-ultimate-ai-stress-test.md) | 🟡 partial | Ultimate AI stress test — 5 clans, huge map, deep lookahead | [warcouncil](../team-leads/warcouncil.md) | 2026-04-17 |
| [p0-22](p0-22-ultimate-ai-stress-test.md) | 🟡 partial | Ultimate AI stress test — 5 clans, huge map, deep lookahead | [warcouncil](../team-leads/warcouncil.md) | 2026-04-18 |
| [p0-23](p0-23-sprite-rendering-capability.md) | ✅ done | Sprite rendering capability — replace procedural draw_* with texture rendering | [shipwright](../team-leads/shipwright.md) | 2026-04-17 |
| [p0-24](p0-24-difficulty-calibrated-ai-progression.md) | 🔴 stub | Difficulty-calibrated AI progression — Easy / Normal / Hard tier-peak distributions | [warcouncil](../team-leads/warcouncil.md) | 2026-04-17 |
| [p0-24](p0-24-difficulty-calibrated-ai-progression.md) | 🔴 stub | Difficulty-calibrated AI progression — Easy / Normal / Hard tier-peak distributions | [warcouncil](../team-leads/warcouncil.md) | 2026-04-18 |
| [p0-25](p0-25-game-quality-metrics-instrumentation.md) | ✅ done | Game-quality metrics instrumentation — tier_peak, peak_unit_tier, wonder_count | [shipwright](../team-leads/shipwright.md) | 2026-04-17 |
| [p0-26](p0-26-ai-tactical-rust-port.md) | 🟡 partial | Port tactical AI from GDScript to mc-ai (Rail-1 compliance) | [warcouncil](../team-leads/warcouncil.md) | 2026-04-18 |
| [p0-26](p0-26-ai-tactical-rust-port.md) | ✅ done | Port tactical AI from GDScript to mc-ai (Rail-1 compliance) | [warcouncil](../team-leads/warcouncil.md) | 2026-04-18 |
| [p0-27](p0-27-gd-culture-bridge.md) | ✅ done | GdCulture bridge — live game delegates culture to mc-culture | [shipwright](../team-leads/shipwright.md) | 2026-04-17 |
| [p0-28](p0-28-gd-economy-bridge.md) | ✅ done | GdEconomy bridge — live game delegates gold/upkeep to mc-economy | [shipwright](../team-leads/shipwright.md) | 2026-04-17 |
| [p0-29](p0-29-gd-tech-bridge.md) | ✅ done | GdTechWeb bridge — live game delegates research to mc-tech | [shipwright](../team-leads/shipwright.md) | 2026-04-17 |

View file

@ -5,7 +5,7 @@ priority: p0
status: partial
scope: game1
owner: warcouncil
updated_at: 2026-04-17
updated_at: 2026-04-18
evidence:
- src/simulator/crates/mc-ai/tests/ultimate_lookahead_stress.rs
- tools/matchup-grid.sh
@ -67,27 +67,28 @@ a foregone conclusion; the grid is the precondition.
- ✓ `python3 tools/test_matchup_and_ultimate.py` passes 26/26
unit tests for matchup_balance and ultimate_stress verdict fns.
- ✗ **`tools/matchup-grid.sh``matchup_balance: PASS`** — NOT yet run.
RUN host stabilized 2026-04-17 ~15:25 PDT (apricot flaky-services cleanup;
10/10 sign-off batch clean — see p0-20 acceptance bullet for evidence
path). Sole remaining blocker: `auto_play.gd` hardcodes 1v1 and doesn't
honor `MAP_SIZE` / `NUM_PLAYERS` env vars, so the script can't target
an asymmetric clan pair.
Structural blocker RESOLVED 2026-04-18: `MAP_SIZE` + `NUM_PLAYERS` env vars
now threaded through `scenes/tests/auto_play.gd` and both local-flatpak +
remote-ssh paths of `autoplay-batch.sh`. Batch execution pending; expected
to be gated by the shared p0-01 gameplay-balance issue (games resolve
T39-T100 via rush domination, so per-pair median-turn may fall below
ultimate_stress's ≥40% of cap threshold).
- ✗ **`tools/huge-map-5clan.sh``ultimate_stress: PASS`** — NOT yet run.
Same blocker as above — needs `MAP_SIZE=standard` and `NUM_PLAYERS=5`
honored by the game binary. matchup_balance does not strictly precede
this bullet for mechanical reasons, but the user has stated matchup_balance
is the precondition per the "deeper validation" rationale in p0-02.
Same env-wiring resolved 2026-04-18. Batch execution pending behind the
matchup-grid precondition and the p0-01 balance fix.
## Remaining to reach done
1. **Game binary reads `MAP_SIZE` and `NUM_PLAYERS` env.** `auto_play.gd`
currently hardcodes a 1v1 setup. Needs minimal wiring to read the env
vars and size the player array / pick the map. This is the sole
remaining blocker for both acceptance bullets.
1. ~~**Game binary reads `MAP_SIZE` and `NUM_PLAYERS` env.**~~ DONE 2026-04-18.
2. **Run matchup-grid** (C(5,2)=10 pairs × seeds). Cite verdict.
3. **Run huge-map-5clan** (5 clans on Civ5 `standard` 80×52 map).
Cite verdict.
4. **MAX_PLAYERS POD expansion** — NOT a blocker for p0-22 (the Civ5
4. **Both batches likely gated by p0-01 gameplay-balance tune** — median-turn
gate in `ultimate_stress` requires ≥40% of cap (≥120 turns of 300). Current
binary resolves most games T39-T100 via rush-domination. Running these
batches now is expected to FAIL the verdict; waiting for p0-01's pacing
tune to land is the cost-effective sequencing.
5. **MAX_PLAYERS POD expansion** — NOT a blocker for p0-22 (the Civ5
`standard` 80×52 runs 8 players but our 5-clan ultimate only needs
5). If we later want to run the actual canonical `huge` (128×80,
12-player) with 8+ AI, the POD's 4-slot-per-entry layout needs

View file

@ -5,7 +5,7 @@ priority: p0
scope: game1
owner: warcouncil
status: stub
updated_at: 2026-04-17
updated_at: 2026-04-18
evidence:
- public/games/age-of-dwarves/data/difficulty.json
---
@ -23,11 +23,33 @@ Added 2026-04-17 as part of the TTV → state-at-end metric reframe (see p0-01).
- ✗ Asymmetric Hard vs Normal, 10 seeds: Hard wins ≥ 7/10. Hard's median tier_peak exceeds Normal's by ≥ 1 era.
- ✗ `difficulty.json` documents the exact knobs each tier modifies (build-speed multipliers, AI aggression clamps, MCTS rollout budgets, yield bonuses). Each knob has a rationale comment.
## Status note (2026-04-18)
`difficulty.json` defines four tiers (easy/normal/hard/insane) with
`ai_modifiers.{production_mult, research_mult, gold_mult, combat_bonus,
extra_starting_units, starting_gold_bonus}`. Grep confirms only
`mc-tech::costs.rs` currently reads the tier (for research cost scaling);
`mc-ai` + the tactical executor do NOT consume the production / gold / unit
bonuses, so the knobs are data-only at the decision layer.
**Pre-work required before batches can be run:**
1. Wire `ai_modifiers.production_mult` into `mc-ai::tactical::production` (or
thread it through `TacticalState.player_stats.production_bonus`) so AI
production outputs scale per tier.
2. Wire `starting_gold_bonus` + `extra_starting_units` into the engine-side
setup path (`auto_play.gd` or `game_state.gd` init).
3. Surface the difficulty id through the game-setup env (`AI_DIFFICULTY=easy|normal|hard`)
+ plumb down to both the mc-tech cost multiplier and the new mc-ai tactical
hook.
4. Unblock p0-01's gameplay-balance issue first — tier differentiation cannot
be measured while every tier resolves T39-T100 via rush-domination.
## Depends on
- **p0-25** — new `turn_stats.jsonl` instrumentation (`tier_peak`, `peak_unit_tier`, `wonder_count`). Cannot measure without the fields.
- **p0-01** — MCTS must be the AI driver under test.
- **p0-25** — new `turn_stats.jsonl` instrumentation (`tier_peak`, `peak_unit_tier`, `wonder_count`). ✅ done.
- **p0-01** — MCTS driver under test; also carries the balance-tune blocker.
- **p0-02** — clan personalities multiplied into each difficulty tier; Easy-Blackhammer must still behave aggressively but less efficiently than Normal-Blackhammer.
- **p0-26** — tactical AI port. ✅ done 2026-04-18; tactical knob hooks must now land in `mc-ai::tactical`, not the deleted GDScript executor.
## Non-goals

File diff suppressed because one or more lines are too long