summaryrefslogtreecommitdiffhomepage
path: root/.dispatch/rules/pure-core.md
blob: 27edd0e2a2f57f51ff09a86207fcf6cb17e6bc2b (plain)
1
2
3
4
5
6
# Rule: pure core / imperative shell

Decision logic is pure (input → output), no I/O, no ambient state.
Effects (fs, db, shell, network, clock, random) are injected at the edges.
If a function reaches for a global/singleton instead of receiving it, refactor.
This is for testability, not purity dogma — stop where it would only add ceremony.