Reviews

Some operations should wait for a person.

Risky operations escalate to a human for one-off approval. The agent holds on the wire with the exact statement attached, then continues the moment someone decides.

prod-db
$hoop exec prod-db -i "
AI Risk Analysisin-transit
Table users: 2.4M rows, 18 indexes
WHERE clause matches 1 row (safe scope)
Column status has CHECK constraint
Risk: LOW. Route to DBA on-call.
#
#dba-approvalsjust now
@alice requested on prod-db
UPDATE users SET status = 'inactive' WHERE id = 123
AI: LOW risk. 1 row affected. CHECK constraint on status column.

The gap

Pass and block are not enough.

Most operations are obviously fine or obviously not, and a rule handles those. The expensive ones are in between: a migration that has to run, a backfill on a live table, a cleanup that is correct on Tuesday and a disaster on Friday.

Block them and you have an agent that cannot do the work you gave it. Allow them and you are trusting a model with a decision nobody signed off on.

How it works

The operation stops in the sidecar and waits.

Nothing reaches your resource while a review is open. The statement sits where it was intercepted until a person approves it or turns it down.

One operation, one decision

A review approves this statement, this time. It does not open a window, grant a role, or widen access for anything that comes after it.

The statement is attached

The approver reads the exact operation, not a ticket describing it. No paraphrase to check and nothing to reconstruct later.

The agent waits on the wire

The connection is held open. Nothing is queued for a retry and no work is thrown away, so the agent resumes where it stopped.

The record writes itself

Who asked, what they asked for, who decided, and when. The evidence is a byproduct of the decision rather than something reconstructed for an auditor.

The pause is the product

A held operation is not a failed one.

The agent is not told no. It is told to wait, and the connection stays open while it does. When the approval lands, the statement runs and the agent carries on with the work it was doing.

That is the difference between a control that governs an agent and one that just stops it.

Decide what needs a person.

Everything else passes or gets refused on its own. Free and open source under MIT.

Ask AI how hoop.dev reviews work