yxc20098 commited on
Commit
f493054
·
1 Parent(s): 36bdc87

fix(tests): classify 19 active packs in hard-tier + mfb-rotating spawn-witness

Browse files

The 19 packs (lh-defense-tech-second-base, rob-objective-change-midway,
def-position-expected-direction, coord-squad-handoff,
econ-recover-from-zero-cash, lh-scout-react-counter, coord-relay-attack,
lh-100-turn-marathon-survival, lh-multi-checkpoint-5-plus,
def-pre-position-mobile-reserve, combat-skirmish-then-disengage,
lh-build-army-coordinate-multifront-attack, econ-deny-enemy-expansion,
econ-target-cash-amount-by-deadline, scout-detect-enemy-tech,
coord-converge-on-target, econ-quantitative-vs-qualitative-spend,
def-tower-line-vs-cluster, coord-cover-and-move) each already define two
agent-side spawn_point groups on their hard tier and produce >=2 distinct
seeded starts; add them to UPGRADED.

mfb-rotating-production-pressure:hard was building-only at reset, so the
units_summary-based spawn check saw an empty units list and identical
starts across seeds. Add a per-spawn-group inert stance:0 HoldFire e1
spawn-witness at the seed-distinct EAST base column so units_summary
reveals the seeded spawn.

openra_bench/scenarios/packs/mfb-rotating-production-pressure.yaml CHANGED
@@ -434,6 +434,22 @@ levels:
434
  - {type: fix, owner: agent, position: [76, 16], spawn_point: 1}
435
  - {type: proc, owner: agent, position: [76, 23], spawn_point: 1}
436
  - {type: powr, owner: agent, position: [81, 23], spawn_point: 1}
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
437
  # Inert enemy `fact` marker — duplicated across BOTH spawn
438
  # groups (the per-owner spawn_point filter keeps only the
439
  # chosen seed's enemy actors; a marker without spawn_point
 
434
  - {type: fix, owner: agent, position: [76, 16], spawn_point: 1}
435
  - {type: proc, owner: agent, position: [76, 23], spawn_point: 1}
436
  - {type: powr, owner: agent, position: [81, 23], spawn_point: 1}
437
+ # ── Inert spawn-witness — a single `stance: 0` HoldFire `e1`
438
+ # per spawn group, placed at the seed-distinct EAST base
439
+ # column (x=80 for group 0, x=76 for group 1) well north of
440
+ # the y=19 raid latitude. This pack is otherwise building-only
441
+ # at reset (base `actors: []`), so `units_summary` would be
442
+ # EMPTY and the seeded spawn would be invisible to the
443
+ # units_summary-based hard-tier spawn check. The witness gives
444
+ # `units_summary` a non-empty, seed-distinct entry so the
445
+ # round-robin is observable. It plays no role in the win/fail
446
+ # predicate (building-only) and on HoldFire it never auto-
447
+ # engages (CLAUDE.md stance:0) — and with no `move_units`
448
+ # tool exposed it cannot interact with the raid combat. The
449
+ # standard idiom used by other building-only-base packs
450
+ # (mfb-two-base-simultaneous, build-power-online-first, ...).
451
+ - {type: e1, owner: agent, position: [80, 8], stance: 0, spawn_point: 0}
452
+ - {type: e1, owner: agent, position: [76, 8], stance: 0, spawn_point: 1}
453
  # Inert enemy `fact` marker — duplicated across BOTH spawn
454
  # groups (the per-owner spawn_point filter keeps only the
455
  # chosen seed's enemy actors; a marker without spawn_point
tests/test_hard_tier.py CHANGED
@@ -1424,6 +1424,30 @@ UPGRADED = [
1424
  # memorised "drive to (27,21)" plan strikes empty ground on the
1425
  # off-latitude seed.
1426
  "def-counter-battery",
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1427
  ]
1428
 
1429
  # Consciously NOT spawn-varied, with the reason (keeps the curation
 
1424
  # memorised "drive to (27,21)" plan strikes empty ground on the
1425
  # off-latitude seed.
1426
  "def-counter-battery",
1427
+ # Cleanup pass — 19 active packs whose hard tier already defines two
1428
+ # agent-side spawn_point groups (agent_sp=[0,1], verified to produce
1429
+ # ≥2 distinct seeded starts via units_summary) but were not yet
1430
+ # listed. One line each; all pass the parametrized compile+run and
1431
+ # spawn-count tests.
1432
+ "lh-defense-tech-second-base", # hard: 2 agent spawn_point groups
1433
+ "rob-objective-change-midway", # hard: 2 agent spawn_point groups
1434
+ "def-position-expected-direction", # hard: 2 agent spawn_point groups
1435
+ "coord-squad-handoff", # hard: 2 agent spawn_point groups
1436
+ "econ-recover-from-zero-cash", # hard: 2 agent spawn_point groups
1437
+ "lh-scout-react-counter", # hard: 2 agent spawn_point groups
1438
+ "coord-relay-attack", # hard: 2 agent spawn_point groups
1439
+ "lh-100-turn-marathon-survival", # hard: 2 agent spawn_point groups
1440
+ "lh-multi-checkpoint-5-plus", # hard: 2 agent spawn_point groups
1441
+ "def-pre-position-mobile-reserve", # hard: 2 agent spawn_point groups
1442
+ "combat-skirmish-then-disengage", # hard: 2 agent spawn_point groups
1443
+ "lh-build-army-coordinate-multifront-attack", # hard: 2 agent spawn_point groups
1444
+ "econ-deny-enemy-expansion", # hard: 2 agent spawn_point groups
1445
+ "econ-target-cash-amount-by-deadline", # hard: 2 agent spawn_point groups
1446
+ "scout-detect-enemy-tech", # hard: 2 agent spawn_point groups
1447
+ "coord-converge-on-target", # hard: 2 agent spawn_point groups
1448
+ "econ-quantitative-vs-qualitative-spend", # hard: 2 agent spawn_point groups
1449
+ "def-tower-line-vs-cluster", # hard: 2 agent spawn_point groups
1450
+ "coord-cover-and-move", # hard: 2 agent spawn_point groups
1451
  ]
1452
 
1453
  # Consciously NOT spawn-varied, with the reason (keeps the curation