rabadon

overview / rules / red-base

red-base

This project's own check is failing, so anything that is not the fix builds on a broken base.

what it refuses, and what it lets through

Red base: the check is failing, so the run does not continue. While the project's own check is red, the next action does not start, on EVERY action for as long as it stands (a red that complains once can be waited out). The fix path stays open: reading, editing and re-running the check, which is the whole path from red to green and builds nothing on the broken base. The escape hatch is the check passing, so a flaky red clears itself when re-run, and re-running is never refused.

From the comment in native/gate_pre.h above the code that decides it.

the refusal, as the agent reads it

rabadon BLOCKED this action. Rule: red-base — this project's own check is failing, so anything that is not the fix builds on a broken base the check that is red: <the project check> <tail of the check> read and edit freely, and re-run that check — a pass clears this immediately. Adjust the approach instead of retrying the same action. (only the user can override this: they may add "red-base" to disabled[] in .rabadon/guard.json or run `rabadon off`. If this rule looks wrong for the task, stop and ask the user; do not switch supervision off yourself.)

Rendered from the strings in native/gate_pre.h, the rule and the envelope (Judge::refuse) both. A word in <angle brackets> is filled in from the command at the moment it is refused.

in watch mode the same verdict is recorded, and nothing is stopped

rabadon (watch) would have blocked this. Rule: red-base — this project's own check is failing, so anything that is not the fix builds on a broken base the check that is red: <the project check> <tail of the check> read and edit freely, and re-run that check — a pass clears this immediately. Nothing was stopped. `rabadon on` makes this a real refusal.

switching it off

Only the user can switch it off, by id, in the project's guard:

{ "disabled": ["red-base"] }

or by pausing supervision with rabadon off, which records the change. Every other rule keeps running.

in the field

62 of the 778 records in the published field dataset (field.jsonl, 2026-07-27 to 2026-08-26) carry this id. STOP is a refusal in enforce mode; WOULD_BLOCK is the same verdict recorded in watch mode, where nothing is stopped.

eventrecords
WOULD_BLOCK60
STOP2

Counted from field.jsonl, the file the field page is built from.

measurements

false rejects