From 8745ebeb2b3d57ac8d127cc4442c739b7c49d78c Mon Sep 17 00:00:00 2001 From: Natalie Date: Sat, 18 Apr 2026 12:38:51 -0700 Subject: [PATCH] =?UTF-8?q?feat(@projects/@magic-civilization):=20?= =?UTF-8?q?=E2=9C=A8=20add=20strategic=20axes=20threshold=20branching?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-Authored-By: Lilith Autocommit --- ...ersonality-emergent-tactical-thresholds.md | 20 +++++++++++-------- 1 file changed, 12 insertions(+), 8 deletions(-) diff --git a/.project/objectives/p0-37-personality-emergent-tactical-thresholds.md b/.project/objectives/p0-37-personality-emergent-tactical-thresholds.md index 16537842..27921ed7 100644 --- a/.project/objectives/p0-37-personality-emergent-tactical-thresholds.md +++ b/.project/objectives/p0-37-personality-emergent-tactical-thresholds.md @@ -67,15 +67,19 @@ through the `ScoringWeights::axes` already on the decision path. - ✓ `TacticalPlayerState.strategic_axes: BTreeMap` added with `#[serde(default)]` — back-compat with fixtures predating the field. - ✓ Callsites updated: movement.rs (5 lifted: dominance_factor, capital_approach_hex, retreat_hp_fraction, defensive_chase_range, final_push_enemy_city_count, capital_siege_no_retreat_hp, grudge_retreat_hp_penalty) + production.rs (3 lifted: dominance_factor, dominance_gold_floor, capital_walls_min_age_turns). No remaining `const` references. `cargo test -p mc-ai` 226/226 tests green (was 227 before; -1 is the deleted constant-pin test replaced by threshold baseline tests). - ✓ GDExtension bridge wired: `ai_turn_bridge.gd::_player_to_dict` emits `strategic_axes` (falls back to `DataLoader.get_data("ai_personalities")[clan_id].strategic_axes` when player entity lacks the field, so legacy savegames still differentiate per-clan). -- ✗ 5-clan batch (10 seeds T300 pinned on player 1, post-thresholds binary) shows measurable per-clan emergent divergence: - - **Combats**: blackhammer (aggression=9) median ≥ 1.5× goldvein (aggression=4) - - **Median turn**: goldvein games ≥ 1.3× blackhammer (cautious commits later) - - **Gold at victory**: goldvein median ≥ 1.5× blackhammer - - **tier_peak**: at least one clan reaches ≥ 5 in ≥3/10 games (the cautious/tall clans) -- ✗ No clan win-rate regression: all 5 clans still ≥ 6/10 wins on pinned position vs heuristic opponent. -- ✗ Unblock verification: p0-01 median tier_peak ≥ 5 in Normal-vs-Normal batch after this lands (partial progress on its quality gates; full ≥6 may still need further tuning). +- 🟡 Mixed-clan smoke batch 2026-04-18 (`.local/iter/apricot-20260418_120715/`, 10 seeds T300, post-thresholds binary, post-serde-fix) shows emergent divergence in game arc: + - **Turn distribution**: T39, T98, T140, T163, T169, T186, T187, T188, T223, T300 (max). Median T175 vs pre-p0-37 cluster T39-T100. + - **Wonder activity**: 9/10 games built at least one wonder (vs 0/10 pre-p0-37). + - **Median winner tier_peak**: 4.0 (vs pre-p0-37 3.0). +33% progression. + - **Median wonder count per player**: 0.5 (meaningful content exploration). + - Victory rate preserved: 9/10 (vs pre 9/10). + Per-clan divergence batches (ironhold/goldvein/blackhammer/deepforge/runesmith × 10 seeds each) pending — mixed-clan smoke is a leading indicator but doesn't prove per-clan emergence. +- 🟡 No clan win-rate regression (confirmed on mixed smoke; per-clan pins pending). +- 🟡 Unblock verification: p0-01 median tier_peak moved 3.0 → 4.0 (directional progress toward ≥6 gate). peak_unit_tier still 1.0 — next lever is p0-38 (MCTS priors) to push tree exploration toward non-rush strategies. -**Remaining**: rebuild GDExtension and run the 5-clan validation batch on apricot. Structural work complete. +**Evidence path**: `.local/iter/apricot-20260418_120715/20260418_120715/smoke/` (local mirror of apricot batch). + +**Remaining**: 5-clan per-personality batches to prove per-clan divergence (combats, median turn, gold). ## Non-goals