isSafeAnswer classifies 'gate' as defensive — gate is the amplification/transition symbol #68

Closed
opened 2026-09-15 04:49:09 +00:00 by Mark · 0 comments
Owner

Summary

reactiveConditions.ts:361 declares defensiveSymbols = ['veil', 'mirror', 'gate']. But 'gate' is the amplification and transition symbol — it sets up spells like 'gate, fang, gate, spark' (Primordial Collapse) or 'spark, spark, spark, gate' (Cinder Storm). Tagging gate as defensive is wrong: a gate is offensive if it sets up an execution.

Where

  • src/engine/reactiveConditions.ts: defensiveSymbols list (line 361)

Why this matters

  • A player setting up Primordial Collapse is treated as playing 'safely' — they don't trigger the safe-answer conditions
  • Misclassifies offensive plays as defensive, breaking the safe-answer signal

Acceptance criteria

  • Either remove 'gate' from defensiveSymbols
  • Or split gate into two concepts: gate-as-suffix (after a setup, marks completion — defensive) vs gate-as-prefix (starts an amplification chain — offensive)
  • Add tests covering each scenario
## Summary reactiveConditions.ts:361 declares defensiveSymbols = ['veil', 'mirror', 'gate']. But 'gate' is the amplification and transition symbol — it sets up spells like 'gate, fang, gate, spark' (Primordial Collapse) or 'spark, spark, spark, gate' (Cinder Storm). Tagging gate as defensive is wrong: a gate is offensive if it sets up an execution. ## Where - src/engine/reactiveConditions.ts: defensiveSymbols list (line 361) ## Why this matters - A player setting up Primordial Collapse is treated as playing 'safely' — they don't trigger the safe-answer conditions - Misclassifies offensive plays as defensive, breaking the safe-answer signal ## Acceptance criteria - Either remove 'gate' from defensiveSymbols - Or split gate into two concepts: gate-as-suffix (after a setup, marks completion — defensive) vs gate-as-prefix (starts an amplification chain — offensive) - Add tests covering each scenario
Mark closed this issue 2026-09-18 13:34:08 +00:00
Sign in to join this conversation.
No description provided.