rabadon

overview / incident rules / no-shell-rewrite-of-guard-or-promise

no-shell-rewrite-of-guard-or-promise

guard-weaken and promise-tamper are sealed in the binary but they judge Edit/Write TOOL calls only (gate.cpp:1860 gates on isEditTool) — a shell redirect, an in-place editor or an rm reaches the same two files without ever passing that law.

in the rabadon guard

the deny pattern

(>\s*|\btee\s+(-a\s+)?)(\./)?\.rabadon/(guard|promise)\.json\b|\b(sed|perl|python3?|ruby)\b[^\n]*(\s-[0-9a-z]*i\b|--in-place)[^\n]*\.rabadon/(guard|promise)\.json|\b(rm|mv)\b[^\n]*\.rabadon/(guard|promise)\.json
fieldvalue
projectrabadon
kindbash
census verdictfires
probe> .rabadon/guard.json
probe toolBash
gate exit on the probe2
refused byno-shell-rewrite-of-guard-or-promise

in the field

2 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_BLOCK2

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

rules

guard-weaken · promise-tamper

measurements

the refusals that cannot be undone