docs(@projects): 📝 update research port objective status details

Co-Authored-By: Lilith Autocommit <noreply@atlilith.com>
This commit is contained in:
Natalie 2026-06-06 00:07:32 -07:00
parent 1336dc73d0
commit 413f6ea828

View file

@ -1,16 +1,20 @@
---
id: p0-26b
title: "Port _pick_research from GDScript into mc-ai (finish Rail-1 for the AI decision surface)"
title: Port _pick_research from GDScript into mc-ai (finish Rail-1 for the AI decision surface)
priority: p1
status: missing
status: partial
scope: game1
owner: warcouncil
tags: [ai, rust, rail-1, tech-debt]
updated_at: 2026-05-27
relates_to: [p0-26, p0-29, p1-29c]
owner: warcouncil
updated_at: 2026-06-06
evidence:
- "src/simulator/crates/mc-ai/src/evaluator.rs:304 ScoringEvaluator::pick_tech reproduces per-pillar personality multipliers + p1-29 catch-up (bullet 1)"
- "src/simulator/api-gdext/src/ai.rs:713 GdAiController::pick_research(available_json, personality_axes_json, research_behind) surfaces chosen tech; all 3 live GDScript call sites route through src/game/engine/src/modules/management/turn_processor_helpers.gd:275 pick_research_via_bridge (bullet 2)"
- "src/game/engine/scenes/tests/auto_play.gd:1252, src/game/engine/src/entities/auto_play.gd:1219, src/game/engine/src/modules/management/turn_processor.gd:154 now delegate to bridge; _auto_pick_research deleted; both _pick_research bodies are pure dispatch wrappers (doc comment: 'no scoring logic lives here') — no inline scoring remains (bullet 3)"
- "src/simulator/crates/mc-ai/tests/pick_research_parity.rs: 5-clan parity 8/8 green; cargo test -p mc-ai = 268 lib + parity 8/8 + all sibling binaries pass, 0 failed. Re-verified 2026-06-06 on canonical HEAD d016d530a from EDIT host (pure-Rust crate, no Godot) (bullet 4)"
- ".local/batches/p0-26b-proof/turn_stats.jsonl: headless T120 seed=12345 run proves non-impersonated P1 (turn_processor path) advances 1->23 techs, tier_peak 1->2, zero bridge errors (bullet 2/3 proof — RUN-host artifact from 2026-06-03; regression-batch acceptance bullet still needs a fresh RUN-host T300 run before status can move partial->done)"
blocked_by: []
---
## Context
p0-26 ported the tactical AI (movement, production, combat, settle, promotion)