six rules.
no exceptions.
This is the entire decision-maker. Every rule is arithmetic on the proposal โ no model, no clock, no network. Same proposal, same policy, same verdict, anywhere.
Allowed symbols
SPYx, QQQx, GLDxAn allowlist, never a blocklist. If a ticker isn't named, it's refused โ including tickers that didn't exist when you wrote the rule.
Allowed sides
buyBuy, sell, or both. A policy that only buys cannot be talked into selling, however good the argument sounds.
Size cap
$500The most a single trade may commit. Sitting exactly on the cap passes โ and is flagged EDGE, because that's the limit you authorized.
Daily budget
$2000/dayMeasured as this trade on top of what today already spent. One good trade doesn't unlock ten more.
Confidence floor
0.62The agent must claim at least this much conviction. It can lie โ which is exactly why it isn't the only rule.
Reasoning written
180 charsA minimum length of actual argument, whitespace stripped. Cheap to satisfy, but it stops a one-line hunch becoming a position.
A REFUSE tells you which line stopped the trade. An ALLOW tells you every line passed โ and if it passed by sitting exactly on a limit, it's stamped EDGE, because a rule you only just cleared is a rule worth re-reading.
attack your own rules
A hostile model is told your policy and asked for the worst trades it still permits โ thin theses, minimum confidence, maximum size. Then the same engine rules on them, in public.