Storm fires nonlethal Grapeshot into open blue mana #9

Closed
opened 2026-07-06 17:51:03 +00:00 by bstein · 1 comment
Owner

What happened

In deployed Draw-Go vs Storm g03, Storm used the core payoff as a one-damage face poke under the compiled Grapeshot Lethal Targeting policy. Draw-Go correctly countered it with Spell Pierce, and Storm could not pay.

What should have happened

Grapeshot should be cast only for lethal, material removal, survival, or a justified storm/payoff setup. The compiled policy and evaluator should reject a nonlethal face target that spends the payoff into visible counter mana.

Category

  • kind: misplay
  • severity: obvious

Context

  • correction target: ["compiled_policy", "pilot_policy", "card_note", "atomic_evaluator"]
  • evidence: [{"frames": "41-53", "game id": "edge_1v1_storm__1_g1_2026070603", "level": 3, "local log": "artifacts/deployed_batteries/edge_case_0521_live_20260706T124234Z/logs/dashboard/edge-case-smoke-deployed-proof-20260706t101310z-edge-1v1-draw-go-vs-storm-g03-level-3/edge_1v1_storm__1_g1_2026070603/game.jsonl", "run group": "edge-case-smoke-deployed-proof-20260706t101310z-edge-1v1-draw-go-vs-storm-g03-level-3", "summary": "Storm cast Grapeshot for one face damage via compiled Grapeshot Lethal Targeting, then Draw-Go countered it with Spell Pierce while Storm could not pay.", "turn": "4"}]
  • feedback issue key: explicit:grapeshot_lethal_policy_matched_nonlethal_payoff
  • recommended source files: ["src/veles/strategy_policy_runtime/policy_ranking.py", "src/veles/playtest_decisions/decision_caches.py", "src/veles/codex_decision_worker/legal_action_context.py", "../veles-content/strategies/modern/edge_1v1_storm/1/guide.md"]
  • root cause: grapeshot_lethal_policy_matched_nonlethal_payoff
  • source findings file: reports/edge_case_atomic_eval/0.5.21_live/draw_go_storm_unique_feedback_findings_20260706.json
## What happened In deployed Draw-Go vs Storm g03, Storm used the core payoff as a one-damage face poke under the compiled Grapeshot Lethal Targeting policy. Draw-Go correctly countered it with Spell Pierce, and Storm could not pay. ## What should have happened Grapeshot should be cast only for lethal, material removal, survival, or a justified storm/payoff setup. The compiled policy and evaluator should reject a nonlethal face target that spends the payoff into visible counter mana. ## Category - kind: misplay - severity: obvious ## Context - correction target: ["compiled_policy", "pilot_policy", "card_note", "atomic_evaluator"] - evidence: [{"frames": "41-53", "game id": "edge_1v1_storm__1_g1_2026070603", "level": 3, "local log": "artifacts/deployed_batteries/edge_case_0521_live_20260706T124234Z/logs/dashboard/edge-case-smoke-deployed-proof-20260706t101310z-edge-1v1-draw-go-vs-storm-g03-level-3/edge_1v1_storm__1_g1_2026070603/game.jsonl", "run group": "edge-case-smoke-deployed-proof-20260706t101310z-edge-1v1-draw-go-vs-storm-g03-level-3", "summary": "Storm cast Grapeshot for one face damage via compiled Grapeshot Lethal Targeting, then Draw-Go countered it with Spell Pierce while Storm could not pay.", "turn": "4"}] - feedback issue key: explicit:grapeshot_lethal_policy_matched_nonlethal_payoff - recommended source files: ["src/veles/strategy_policy_runtime/policy_ranking.py", "src/veles/playtest_decisions/decision_caches.py", "src/veles/codex_decision_worker/legal_action_context.py", "../veles-content/strategies/modern/edge_1v1_storm/1/guide.md"] - root cause: grapeshot_lethal_policy_matched_nonlethal_payoff - source findings file: reports/edge_case_atomic_eval/0.5.21_live/draw_go_storm_unique_feedback_findings_20260706.json
bstein added the
misplay
battery-0.5.21
manual-review
draw-go-vs-storm
labels 2026-07-06 17:51:03 +00:00
Author
Owner

Verified in Cassandra 0.5.30.

Release proof: source bebd4c7 (Prepare Cassandra 0.5.30 feedback backlog closeout), Jenkins Veles #209 SUCCESS published version-only backend/frontend/sim-worker 0.5.30 images, Titan-IAC 1bf84977 deployed them, live /api/v1/app-config reports backend/frontend/sim_worker 0.5.30, /api/v1/ready is green, backend pod and both frontend pods are Running with 0 restarts, and VELES_SIM_IMAGE is registry.bstein.dev/veles/veles-sim-worker:0.5.30.

Local/source gate on the deployed source: bridge/runtime 42 tests OK; evaluator/audit/policy/API suite 504 tests OK; frontend maybeboard/compact-replay/prompt Playwright 22 tests passed; frontend build and git diff --check passed.

Issue-specific proof: evaluator/policy/audit coverage now guards nonlethal Grapeshot face lines into open interaction, requiring lethal/material/survival justification instead. Closing.

Verified in Cassandra 0.5.30. Release proof: source bebd4c7 (Prepare Cassandra 0.5.30 feedback backlog closeout), Jenkins Veles #209 SUCCESS published version-only backend/frontend/sim-worker 0.5.30 images, Titan-IAC 1bf84977 deployed them, live /api/v1/app-config reports backend/frontend/sim_worker 0.5.30, /api/v1/ready is green, backend pod and both frontend pods are Running with 0 restarts, and VELES_SIM_IMAGE is registry.bstein.dev/veles/veles-sim-worker:0.5.30. Local/source gate on the deployed source: bridge/runtime 42 tests OK; evaluator/audit/policy/API suite 504 tests OK; frontend maybeboard/compact-replay/prompt Playwright 22 tests passed; frontend build and git diff --check passed. Issue-specific proof: evaluator/policy/audit coverage now guards nonlethal Grapeshot face lines into open interaction, requiring lethal/material/survival justification instead. Closing.
Sign in to join this conversation.
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: cassandra-alpha/feedback#9
No description provided.