refactor(#74) P1: capture golden prompt baselines for the ability-module refactor
Adds deterministic golden fixtures (server/abilities/goldens/) pinning the EXACT output of buildSystemPrompt (no-tool + tool modes) and buildUserPrompt for a fixed wwii-1939 preset plus a crafted state that exercises every optional payload branch (regions, frontier, frontierMilitary, takeoverRisks, unowned, markers, wars, relations, trades, embargoes, resources, industry). These are the target: the v0.40.0 modular ability registry (P2-P5) must reproduce these byte-for-byte. Part of #74.
This commit is contained in:
@@ -0,0 +1,209 @@
|
||||
{
|
||||
"state": {
|
||||
"turn": 4,
|
||||
"date": "1940-02-14",
|
||||
"playerNationId": "a1",
|
||||
"nations": {
|
||||
"a1": {
|
||||
"id": "a1",
|
||||
"name": "Alpha",
|
||||
"type": "major",
|
||||
"stats": {
|
||||
"military": 60,
|
||||
"economy": 55,
|
||||
"stability": 70,
|
||||
"population": 80
|
||||
},
|
||||
"territory": [
|
||||
"a-r1",
|
||||
"a-r2"
|
||||
],
|
||||
"relations": {
|
||||
"b2": "ally",
|
||||
"c3": "rival"
|
||||
},
|
||||
"leader": {
|
||||
"name": "Alpha Leader"
|
||||
},
|
||||
"ideology": "democracy",
|
||||
"nuclear": true
|
||||
},
|
||||
"b2": {
|
||||
"id": "b2",
|
||||
"name": "Bravo",
|
||||
"type": "major",
|
||||
"stats": {
|
||||
"military": 75,
|
||||
"economy": 40,
|
||||
"stability": 20,
|
||||
"population": 30
|
||||
},
|
||||
"territory": [
|
||||
"b-r1",
|
||||
"b-r2"
|
||||
],
|
||||
"relations": {
|
||||
"a1": "ally"
|
||||
},
|
||||
"ideology": "fascism",
|
||||
"nuclear": false
|
||||
},
|
||||
"c3": {
|
||||
"id": "c3",
|
||||
"name": "Charlie",
|
||||
"type": "major",
|
||||
"stats": {
|
||||
"military": 30,
|
||||
"economy": 35,
|
||||
"stability": 80,
|
||||
"population": 20
|
||||
},
|
||||
"territory": [
|
||||
"c-r1"
|
||||
],
|
||||
"relations": {
|
||||
"a1": "rival"
|
||||
},
|
||||
"nuclear": false
|
||||
}
|
||||
},
|
||||
"recentEvents": []
|
||||
},
|
||||
"playerActions": [
|
||||
"Rearm the northern border",
|
||||
{
|
||||
"to": "b2",
|
||||
"message": "We can still talk terms, no?"
|
||||
}
|
||||
],
|
||||
"pending": [
|
||||
{
|
||||
"kind": "action",
|
||||
"text": "Rearm the northern border"
|
||||
},
|
||||
{
|
||||
"kind": "diplomacy",
|
||||
"to": "b2",
|
||||
"text": "We can still talk terms, no?"
|
||||
}
|
||||
],
|
||||
"roundInstruction": "This period the player (Alpha) takes the following actions and sends the following diplomatic messages: [\"Rearm the northern border\",{\"to\":\"b2\",\"message\":\"We can still talk terms, no?\"}]. Simulate the combined consequences across all nations and advance the world by one period. Return a single TurnResult.",
|
||||
"playerRegionStats": {
|
||||
"a-r1": {
|
||||
"military": 60,
|
||||
"economy": 55,
|
||||
"stability": 70,
|
||||
"population": 80
|
||||
},
|
||||
"a-r2": {
|
||||
"military": 58,
|
||||
"economy": 53,
|
||||
"stability": 72,
|
||||
"population": 78
|
||||
}
|
||||
},
|
||||
"regions": {
|
||||
"a-r1": "Alpha North (US)",
|
||||
"a-r2": "Alpha South (US)",
|
||||
"b-r1": "Bravo Plain (RU)",
|
||||
"b-r2": "Bravo Coast (RU)",
|
||||
"c-r1": "Charlie Isle (FR)",
|
||||
"x-unowned": "X Released (UN)"
|
||||
},
|
||||
"frontier": [
|
||||
"b-r1"
|
||||
],
|
||||
"frontierMilitary": [
|
||||
"[Your military: 60] vs [Bravo: 75] — a direct invasion could succeed"
|
||||
],
|
||||
"takeoverRisks": [
|
||||
"Bravo (stability 20, a gathering is in progress)"
|
||||
],
|
||||
"unowned": [
|
||||
"x-unowned"
|
||||
],
|
||||
"markers": [
|
||||
{
|
||||
"id": "mk0001",
|
||||
"type": "gathering",
|
||||
"name": "Bravo Rally",
|
||||
"regionKey": "b-r1",
|
||||
"owner": "b2"
|
||||
},
|
||||
{
|
||||
"id": "mk0002",
|
||||
"type": "rocket",
|
||||
"name": "Charlie Silo",
|
||||
"regionKey": "c-r1",
|
||||
"owner": "c3"
|
||||
},
|
||||
{
|
||||
"id": "mk0003",
|
||||
"type": "capital",
|
||||
"name": "Alpha Cap",
|
||||
"regionKey": "a-r1",
|
||||
"owner": "a1"
|
||||
}
|
||||
],
|
||||
"wars": [
|
||||
{
|
||||
"id": "w1",
|
||||
"sides": [
|
||||
"a1",
|
||||
"b2"
|
||||
],
|
||||
"aims": [
|
||||
"control the border"
|
||||
]
|
||||
},
|
||||
{
|
||||
"id": "w2",
|
||||
"sides": [
|
||||
"b2",
|
||||
"c3"
|
||||
]
|
||||
}
|
||||
],
|
||||
"relations": {
|
||||
"b2": "ally",
|
||||
"c3": "rival"
|
||||
},
|
||||
"trades": [
|
||||
{
|
||||
"a": "a1",
|
||||
"b": "c3"
|
||||
}
|
||||
],
|
||||
"embargoes": [
|
||||
{
|
||||
"from": "a1",
|
||||
"target": "b2"
|
||||
}
|
||||
],
|
||||
"resources": {
|
||||
"a1": {
|
||||
"oil": 0.5,
|
||||
"iron": 0.2,
|
||||
"food": 0.3,
|
||||
"industry": 0.8
|
||||
},
|
||||
"b2": {
|
||||
"oil": 0.1,
|
||||
"iron": 0.9,
|
||||
"food": 0.1,
|
||||
"industry": 0.2
|
||||
},
|
||||
"c3": {
|
||||
"oil": 0.2,
|
||||
"iron": 0.3,
|
||||
"food": 0.7,
|
||||
"industry": 0.4
|
||||
}
|
||||
},
|
||||
"industry": [
|
||||
{
|
||||
"regionKey": "a-r1",
|
||||
"type": "industry"
|
||||
}
|
||||
]
|
||||
}
|
||||
Reference in New Issue
Block a user