Review a risky migration
An agent proposes an 8-statement migration. Run it through the gate and watch each statement get graded on reversibility and live data impact.
Five additive statements are auto-allowed. A DROP COLUMN over 2.3M rows needs approval, an unrecognized ALTER COLUMN fails closed, and a DROP TABLE over 84M rows is blocked.
This faithfully reproduces the novyx-blast-radius gate. Run it yourself:cd packages/novyx-blast-radius && PYTHONPATH=. python examples/demo.py
An agent proposes an 8-statement migration. Five are additive. Three are not.
CREATE TABLE feature_flags (id bigint, name text)additive / reversible
ALTER TABLE users ADD COLUMN last_seen_at timestamptzadditive / reversible
ALTER TABLE users ADD COLUMN referral_code textadditive / reversible
CREATE INDEX idx_users_last_seen ON users (last_seen_at)additive / reversible
ALTER TABLE orders ADD COLUMN coupon_id bigintadditive / reversible
ALTER TABLE users DROP COLUMN legacy_password_hashusers.legacy_password_hash · 2,300,000 rows · irreversible; 2,300,000 rows destroyed
ALTER TABLE events ALTER COLUMN payload TYPE varchar(255)unrecognized statement — fail-closed to human review
DROP TABLE audit_events_2019audit_events_2019 · 84,000,000 rows · irreversible; 84,000,000 rows destroyed — catastrophic
Statement 6 of 8 drops column users.legacy_password_hash, which holds 2,300,000 rows — irreversible. Statement 7 is an unrecognized narrowing ALTER COLUMN — fail-closed to human review. Statement 8 drops table audit_events_2019, which holds 84,000,000 rows — catastrophic. The other 5 are additive.
Gated 3 of 8 statements; the rest auto-allowed.
Why it's a gate, not a filter
Argument-aware
The gate reads the real statement and its target — users.legacy_password_hash, not a keyword match — so the verdict is about what actually changes.
Graded on live data
Row counts come from a schema probe. The same DROP COLUMN is auto-allowed on an empty column and needs approval on 2.3M rows.
Fails closed
Anything it does not explicitly recognize — like a narrowing ALTER COLUMN ... TYPE — routes to human review instead of silently passing.
A verdict is only the front door. Behind it, Novyx Core records the decision on a tamper-evident audit chain, captures recovery metadata and checkpoints, and retains memory as context — so an approved change runs once and a mistake has a documented recovery path. See how Control governs the effect →
Put the gate in front of a real change
Start with the first agent action that can mutate production — a migration, a deploy, a refund, a CRM write — and expand from there.