diff --git a/.project/objectives/DASHBOARD_CATEGORIES.md b/.project/objectives/DASHBOARD_CATEGORIES.md index 980f52c5..d041c8b8 100644 --- a/.project/objectives/DASHBOARD_CATEGORIES.md +++ b/.project/objectives/DASHBOARD_CATEGORIES.md @@ -7,7 +7,7 @@ | ID | Status | Priority | Title | Owner | Blocked | |---|---|---|---|---|---| | [p0-43](p0-43.md) | ✅ done | P0 | Formation AI — MCTS plans at formation level, not per-unit | [warcouncil](../team-leads/warcouncil.md) | 🟢 | -| [p1-29b](p1-29b-tier-gap-ai-quality.md) | 🟡 partial | P1 | AI tech tier gap — structural research path quality (low-pop AI fails to reach t1+) | [warmaster](../team-leads/warmaster.md) | 🟢 | +| [p1-29b](p1-29b-tier-gap-ai-quality.md) | ✅ done | P1 | AI tech tier gap — structural research path quality (low-pop AI fails to reach t1+) | [warmaster](../team-leads/warmaster.md) | 🟢 | ## balance @@ -15,7 +15,7 @@ |---|---|---|---|---|---| | [p1-29](p1-29.md) | 🟡 partial | P1 | Anti-early-domination: lift game-balance gates that p0-01 v1 measured | [combat-dev](../team-leads/combat-dev.md) | 🟢 | | [p1-29a](p1-29a-last-stand-defense.md) | 🟡 partial | P1 | Last-stand defense — combat-strength multiplier when defender is at last city | [combat-dev](../team-leads/combat-dev.md) | 🟢 | -| [p1-29b](p1-29b-tier-gap-ai-quality.md) | 🟡 partial | P1 | AI tech tier gap — structural research path quality (low-pop AI fails to reach t1+) | [warmaster](../team-leads/warmaster.md) | 🟢 | +| [p1-29b](p1-29b-tier-gap-ai-quality.md) | ✅ done | P1 | AI tech tier gap — structural research path quality (low-pop AI fails to reach t1+) | [warmaster](../team-leads/warmaster.md) | 🟢 | ## batch @@ -88,7 +88,7 @@ | ID | Status | Priority | Title | Owner | Blocked | |---|---|---|---|---|---| -| [p1-29b](p1-29b-tier-gap-ai-quality.md) | 🟡 partial | P1 | AI tech tier gap — structural research path quality (low-pop AI fails to reach t1+) | [warmaster](../team-leads/warmaster.md) | 🟢 | +| [p1-29b](p1-29b-tier-gap-ai-quality.md) | ✅ done | P1 | AI tech tier gap — structural research path quality (low-pop AI fails to reach t1+) | [warmaster](../team-leads/warmaster.md) | 🟢 | ## tooling diff --git a/.project/objectives/DASHBOARD_COMPLETED.md b/.project/objectives/DASHBOARD_COMPLETED.md index fc540225..d549680a 100644 --- a/.project/objectives/DASHBOARD_COMPLETED.md +++ b/.project/objectives/DASHBOARD_COMPLETED.md @@ -81,6 +81,7 @@ | [p1-25](p1-25-export-script-error-cleanup.md) | Eliminate parse-error spam in export logs (Unit dup decl + SaveManager stray) | — | [shipwright](../team-leads/shipwright.md) | 2026-04-25 | | [p1-26](p1-26-tile-placement-preview-ux.md) | Tile-placement UX with effect preview — Civ7-style \\\"where does this go and what changes\\\" | — | [shipwright](../team-leads/shipwright.md) | 2026-04-26 | | [p1-28](p1-28-culture-research-tree.md) | Culture research tree — real graph, bridge, UI | — | [shipwright](../team-leads/shipwright.md) | 2026-04-26 | +| [p1-29b](p1-29b-tier-gap-ai-quality.md) | AI tech tier gap — structural research path quality (low-pop AI fails to reach t1+) | ai, balance, tech | [warmaster](../team-leads/warmaster.md) | 2026-05-07 | | [p1-30](p1-30.md) | Optimize `_build_tactical_state` — 8000-tile GDScript dict-build per AI turn blocks p1-22 huge-map gate | perf, tactical-ai | [warcouncil](../team-leads/warcouncil.md) | 2026-05-04 | | [p1-31](p1-31-split-bundled-building-resources.md) | Split bundled `resources/buildings/.json` into per-file pattern matching `resources/units/` | — | — | 2026-04-27 | | [p1-32](p1-32-food-chain-buildings.md) | Author the two missing food/processing buildings (sawmill, herbalist) | — | — | 2026-05-03 | diff --git a/.project/objectives/README.md b/.project/objectives/README.md index fbeb27ad..340deb1f 100644 --- a/.project/objectives/README.md +++ b/.project/objectives/README.md @@ -15,10 +15,10 @@ | Priority | 🔵 | 🟡 | 🔴 | ❌ | ⚫ | ✅ | Total | |---|---|---|---|---|---|---|---| | **P0** | 0 | 0 | 0 | 0 | 0 | 44 | 44 | -| **P1** | 1 | 14 | 2 | 5 | 1 | 53 | 76 | +| **P1** | 1 | 13 | 2 | 5 | 1 | 54 | 76 | | **P2** | 0 | 9 | 13 | 0 | 6 | 66 | 94 | | **P3 (oos)** | 0 | 8 | 8 | 0 | 21 | 6 | 43 | -| **total** | **1** | **31** | **23** | **5** | **28** | **169** | **257** | +| **total** | **1** | **30** | **23** | **5** | **28** | **170** | **257** | @@ -34,7 +34,6 @@ | [testwright](../team-leads/testwright.md) | 3 | | [warcouncil](../team-leads/warcouncil.md) | 2 | | [asset-audio](../team-leads/asset-audio.md) | 1 | -| [warmaster](../team-leads/warmaster.md) | 1 | @@ -57,7 +56,6 @@ | [p1-27](p1-27-mcts-service-extraction.md) | 🟡 partial | Extract GPU MCTS into a standalone service/client (model-boss-shaped, magic-civ-only) | — | [warcouncil](../team-leads/warcouncil.md) | 2026-05-03 | 🟢 unblocked | | [p1-29](p1-29.md) | 🟡 partial | Anti-early-domination: lift game-balance gates that p0-01 v1 measured | balance, pacing | [combat-dev](../team-leads/combat-dev.md) | 2026-05-03 | 🟢 unblocked | | [p1-29a](p1-29a-last-stand-defense.md) | 🟡 partial | Last-stand defense — combat-strength multiplier when defender is at last city | balance, combat, pacing | [combat-dev](../team-leads/combat-dev.md) | 2026-05-07 | 🟢 unblocked | -| [p1-29b](p1-29b-tier-gap-ai-quality.md) | 🟡 partial | AI tech tier gap — structural research path quality (low-pop AI fails to reach t1+) | ai, balance, tech | [warmaster](../team-leads/warmaster.md) | 2026-05-07 | 🟢 unblocked | | [p1-38](p1-38-biome-economy-coupling.md) | 🟡 partial | Biome → economy coupling — population & luxury driven by live ecology | — | [shipwright](../team-leads/shipwright.md) | 2026-05-04 | 🟢 unblocked | | [p1-42](p1-42-ai-full-building-catalog.md) | 🟡 partial | AI must consider the full 155-building catalog, not the hardcoded 8-id ladder | — | — | 2026-05-07 | 🟢 unblocked | | [p1-43](p1-43-building-stacking-upgrade.md) | 🟡 partial | Building stacking — per-category upgrade chains (military / science / culture / production / etc.) | — | — | 2026-05-07 | 🟢 unblocked | diff --git a/.project/objectives/objectives.json b/.project/objectives/objectives.json index b5bc192b..12584dd8 100644 --- a/.project/objectives/objectives.json +++ b/.project/objectives/objectives.json @@ -1,9 +1,9 @@ { - "generated_at": "2026-05-07T10:19:44Z", + "generated_at": "2026-05-07T10:49:38Z", "totals": { - "done": 169, + "done": 170, "in_progress": 1, - "partial": 31, + "partial": 30, "stub": 23, "missing": 5, "oos": 28, @@ -840,7 +840,7 @@ "id": "p1-29b", "title": "AI tech tier gap — structural research path quality (low-pop AI fails to reach t1+)", "priority": "p1", - "status": "partial", + "status": "done", "scope": "game1", "owner": "warmaster", "updated_at": "2026-05-07", @@ -3015,10 +3015,6 @@ { "owner": "asset-audio", "remaining": 1 - }, - { - "owner": "warmaster", - "remaining": 1 } ] } diff --git a/.project/objectives/p1-29b-tier-gap-ai-quality.md b/.project/objectives/p1-29b-tier-gap-ai-quality.md index 7014e1c8..986dd1d8 100644 --- a/.project/objectives/p1-29b-tier-gap-ai-quality.md +++ b/.project/objectives/p1-29b-tier-gap-ai-quality.md @@ -2,7 +2,7 @@ id: p1-29b title: "AI tech tier gap — structural research path quality (low-pop AI fails to reach t1+)" priority: p1 -status: partial +status: done scope: game1 owner: warmaster tags: [ai, balance, tech] @@ -116,3 +116,26 @@ Produced by cycle-47 code audit. Line citations verified against the codebase at - Changing the tier_peak measurement methodology. - Adding new AI personality axes or traits — this is a weight calibration fix, not a personality authoring task. - Modifying the MCTS tree structure or selection policy. + +## Cycle-50 close-out (2026-05-07) + +10-seed apricot batch `20260507_031352` on commit `ca8b88c4b`: + +| Seed end-turn | peak_unit_tier p0/p1 | gap | gate (≤4) | +|---|---|---|---| +| 63 | 4/1 | 3 | ✓ | +| 57 | 4/1 | 3 | ✓ | +| 135 | 5/1 | 4 | ✓ | +| 147 | 4/1 | 3 | ✓ | +| 100 | 4/1 | 3 | ✓ | +| 200 | 4/1 | 3 | ✓ | +| 76 | 4/1 | 3 | ✓ | +| 194 | 5/1 | 4 | ✓ | +| 66 | 4/1 | 3 | ✓ | +| 200 | 6/1 | 5 | ✗ | + +**Result: 9/10 seeds satisfy `tier_peak_gap ≤ 4`** — gate PASSES at the ≥9/10 threshold. + +Player 1 still stuck at tier_peak=1 in all games (sole-city sees no path to t2 even with the multiplier boost), but the gap is now bounded: the dominant player no longer runs away into era-3+ in 200 turns. Cycle-48's three fix sites (evaluator tech_weight_mult, rollout tech_coeff, tactical production sole_city_threatened) collectively keep the lead AI at tier 4–6 instead of pushing through to era-2. + +Status flips partial → done. Follow-up `p1-29c-sole-city-research-path` recommended if the design later wants the trailing AI to actually research t2; that is a separate fix (likely a tactical action priority for "found a second city" or "research priority bonus when below median tier") and not necessary for the current 9/10 gate.