grounded-decision
Act when the evidence holds. Hold back when it doesn't.
Automated systems act on scores. This library sits between the score and the action: an agent proposes, checks test the proposal against the evidence, and the gate acts, abstains, or falls back to a safe default, and records why either way.
Here you can watch it decide in eleven games, play against it, or let it guard your own moves, live in your browser on the same Python package as the command line.
An agent proposes each move
- Propose —
- Check —
- Act or fall back to a safe move
How one decision is made
-
Propose
An agent proposes an action: a search, a rule of thumb, a learned model, or you. Its score is a suggestion, not a licence.
-
Check
Each check tests the proposal against evidence it can stand behind: is it legal, does it lose material, can the opponent force a win? Every check records its evidence, pass or fail.
-
Act, abstain or degrade
Every check passes: the gate acts. One fails: it degrades to a safe fallback, or abstains and hands the decision to a person. The record says which check, and why.
- Acted
- The proposal passed every check and was played.
- Overrode
- A check failed, so the safe fallback was played instead: the verdict degrade.
- Abstained
- No safe action was certified, so the gate held back for a person.
Every game, three ways
Watch the agents and inspect every decision, take a seat against them, or play guarded: the gate checks your moves and explains each override.
Tic-tac-toe
Tic-tac-toe with exact advice and a gated rule-of-thumb player
Snake
Snake made provably safe by a gate over a greedy player
Checkers
Checkers with a verified tactical gate
Chinese checkers
Chinese checkers with progress and no-stranding checks
Go
Go under Tromp-Taylor rules with a gated move proposer
Tetris
Tetris with exact look-ahead checks and piece-picking worlds
Hexxagon
Hexxagon with exact two-ply exchange checks
Minesweeper
Minesweeper, acting only on proved-safe cells and pricing every guess
2048
2048 with expectimax, worst-case search and a survival gate
Connect Four
Connect Four with exact threat checks and an exact solver
Breakout
Breakout with an exact intercept gate and spin-proof bounces
Beyond games
Learn the settings
Choose the error rate you accept; Learn-then-Test chooses the check settings from labelled history and certifies them.
Watch the error rate
A risk monitor on a drifting stream of outcomes, and the moment it says to stop trusting the settings.
Step through decisions
The reference service’s loop: an event in, the policy’s proposal, six checks, a decision record out.
One implementation, everywhere
The browser runs the very Python package the command line runs, in a background worker (Pyodide), so the tests and proofs behind it cover what you see here. Nothing is rewritten in JavaScript.
Every replay and every live game comes with the terminal command that plays it again, move for move, and a link that reopens it exactly: the settings, your moves and the position on show.