refactor(policy): extract combat selection and context modules

This commit is contained in:
0xrsydn 2026-09-22 12:45:46 +07:00
commit 484551047c
9 changed files with 1247 additions and 1167 deletions

View file

@ -6,9 +6,9 @@ This pass replaces per-screen globals with explicit session memory. It follows
[the correctness pass](12-correctness-pass.md). It does not redesign recording,
identify runs, or establish persistent-deck provenance.
`brain.py` remains one file. Moving policy code and changing its state behavior
at the same time would make failures harder to diagnose. A later extraction
can preserve the interface and the runner-level tests.
This state pass kept `brain.py` as one file. Moving policy code and changing its
state behavior together would make failures harder to diagnose. The subsequent
[policy extraction](../POLICY.md) preserves the interface and runner-level tests.
## Lifecycle
@ -103,9 +103,9 @@ use the actual runner and policy together, with isolated game/model boundaries.
## Next boundaries
The state interface now gives a stable boundary for extracting combat and
selection policy without changing execution behavior. Keep a small dispatcher;
no plugin framework or class hierarchy is needed.
Combat and selection policy have since been extracted without changing execution
behavior. See [the current policy structure](../POLICY.md). No plugin framework
or class hierarchy was added.
The next state work is run identity and deck provenance. Recording should then
link observations, proposals, action attempts, results, and reconciliation.