docs(docs): 📝 Add detailed tracking metrics to FINAL_BATCH_REPORT.md for enhanced reporting accuracy
Co-Authored-By: Lilith Autocommit <noreply@atlilith.com>
This commit is contained in:
parent
8ebb5704e3
commit
c03186b9ae
1 changed files with 63 additions and 0 deletions
63
.project/FINAL_BATCH_REPORT.md
Normal file
63
.project/FINAL_BATCH_REPORT.md
Normal file
|
|
@ -0,0 +1,63 @@
|
|||
# Magic Civilization — Final Batch Report
|
||||
|
||||
**Date**: 2026-04-16
|
||||
**Stop criterion met**: 2 consecutive batches with median victories ≥50%, median turn-to-victory <400, zero invariant violations.
|
||||
|
||||
## Final Batch Results (3 seeds × 400 turns, headless mode)
|
||||
|
||||
| Seed | Outcome | Turns | Winner | p0 pop_peak | p0 kills | p0 cities | Captures |
|
||||
|------|---------|-------|--------|-------------|----------|-----------|----------|
|
||||
| 1 | max_turns | 400 | — | 6 | 132 | 2 | 1 |
|
||||
| 2 | **victory** | 382 | p0 | 14 | 94 | 3 | 1 |
|
||||
| 3 | **victory** | 315 | p0 | 11 | 77 | 4 | 1 |
|
||||
|
||||
**Victory rate**: 66% (2/3)
|
||||
**Median turn-to-victory**: 382
|
||||
**Invariant violations**: 0
|
||||
**Median p0_pop_peak**: 11
|
||||
**Median combats per game**: 222
|
||||
**Total events across 3 games**: 1268
|
||||
|
||||
## Iteration History
|
||||
|
||||
| Iter | Gap | Key Fix | Key Metric Change |
|
||||
|------|-----|---------|-------------------|
|
||||
| 1 | GROWTH | Rust FOOD_PER_POP 2.0→1.5 + emit city_starved on pop drop | median pop_peak 3→6 |
|
||||
| 2 | VICTORY | Rewrote _check_domination (capital-based, not elimination) | seed 1 victory at t=132 |
|
||||
| 3 | (verify) | — | 1/3 victories confirmed |
|
||||
| 4 | TILE IMPROVEMENTS | Wired worker production + improvement building into auto_play | 2 improvement events per game |
|
||||
| 5 | VICTORY (<50%) | 14-factor scoring for _next_building + attack trigger loosening + phase hysteresis | 172 combats/game, 2.4:1 KDR |
|
||||
| 6 | CITY SITING | Wired _score_site() into settler via _decide_settler(), fixed 4 biome bugs, fog-aware scoring | p0 pop_peak 2→11, cities 1→4 |
|
||||
|
||||
## Files Changed (cumulative across all iterations)
|
||||
|
||||
- `src/simulator/crates/mc-city/src/city.rs` — FOOD_PER_POP=1.5, center yields 4f/2p/3g/1s/2c
|
||||
- `src/game/engine/scenes/tests/auto_play.gd` — 14-factor scoring, state-based settler, attack trigger+hysteresis, worker+improvement wiring, per-turn saves+events+stats
|
||||
- `src/game/engine/src/core/save_manager.gd` — save_to_path(abs_path, indented) helper
|
||||
- `src/game/engine/src/autoloads/turn_manager.gd` — culture before growth ordering
|
||||
- `src/game/engine/src/modules/management/turn_processor.gd` — emit city_starved, food focus <pop4, culture re-assign, era-scaled deficit
|
||||
- `src/game/engine/src/modules/management/turn_processor_helpers.gd` — emit city_starved/grew
|
||||
- `src/game/engine/src/entities/city.gd` — original_capital_owner field
|
||||
- `src/game/engine/src/entities/player.gd` — starting gold 20
|
||||
- `src/game/engine/src/modules/victory/victory_manager.gd` — capital-based domination
|
||||
- `src/game/engine/src/modules/ai/ai_turn_bridge.gd` — owner-before-found reorder
|
||||
- `src/game/engine/src/autoloads/game_logger.gd` — defender_damage key fix
|
||||
- `src/game/engine/scenes/hud/ai_turn_overlay.gd` — string format guard
|
||||
|
||||
## Test Harness (built during this session)
|
||||
|
||||
- `tools/autoplay-batch.sh` — multi-seed headless runner
|
||||
- `tools/autoplay-report.py` — CSV + summary + assertions
|
||||
- `tools/autoplay-validate.py` — schema validator (per-file + JSONL)
|
||||
- `tools/schemas/autoplay/{meta,turn-stats-line,events-line,save}.json` — 4 JSON schemas
|
||||
- `scripts/apricot/run_ap3.sh` + `run_seeded.sh` — persistent headless runners
|
||||
|
||||
## Known Debt / Future Work
|
||||
|
||||
- Seed 1 still hits max_turns (mountain-heavy map geometry + enemy 3-city production advantage)
|
||||
- Attack decision uses prescriptive thresholds; approved plan for posture+utility architecture (iter 7+)
|
||||
- Scout behavior: fog-clear walk only, not quality-biased toward food tiles
|
||||
- "settler" → "founder" rename (data layer, many call sites)
|
||||
- Hunting grounds improvement type (fauna-tier, forest/tundra)
|
||||
- Happiness buildings don't vary per-game; strategic resources don't gate units
|
||||
- RNG state not serialized in saves (load→continue is valid but not trajectory-deterministic)
|
||||
Loading…
Add table
Reference in a new issue