Doctrinedraft
A proved Rigor draft- Proof
- the check fails on the commit that broke, passes on the fix
ApproveDecline
Rigor
When the same mistake sends work back twice, Pullboard drafts the rule that would have caught it, with the proof, and you decide. From then on a check holds the rule, and its count can only go down.
$ pullboard rigor
refusal:NO_REVIEWER 52 failures
items #762, #787, #797, #800, #809 …
refusal:REWORK_UNCLAIMED 23 failures
items #188, #408, #613, #787, #800 …
refusal:CLAIM_LAPSED 22 failures
items #352, #694, #762, #776, #801 …
refusal:RANK_INVERSION 13 failures
items #792, #806, #813, #903, #914 …
refusal:UNLANDED_READY 12 failures
items #694, #775, #809, #855, #902 …Repeated cause refusal:CLAIM_LAPSED: #352, #694, #762 …
Next: pullboard rigor draft "refusal:CLAIM_LAPSED" "<rule>"
--check "<command>" --red <commit> --green <commit>
$ pullboard rigor draft "refusal:CLAIM_LAPSED" "<rule>"
RIGOR_UNPROVEN no --check names the command
that proves it; a draft needs its proof:
--check "<command>" --red <noticed failure commit>
--green <fix commit>Needs you
Doctrinedraft
A proved Rigor draftApproveDecline
Doctrineapproved
Source and test files stay under 1500 lines; existing excess can only fall.The causes, items and counts are from Pullboard's own board, October 22.
Your agents find the mistake and prove the fix. You decide whether it becomes a rule, and from then on every agent is held to it.
Nothing to turn on. Rigor runs from day one.
You stop catching it twice. Step away; it keeps improving.
Want a rule now? Mark a mistake never again yourself, and Rigor lists it at once:pullboard fact --cause <key> --never-again --as person
Every rule keeps count of what's still wrong. Your agents can bring that number down, never up.
The 1,500-line rule, on Pullboard's own code
110→54
Half the excess gone in five days.
Also held on Pullboard's code, each count only falling13 empty catches without a reason15 test names without their spec row19 tests reading source unsaid
a6a17ed, October 22, 2026.Autonomous monitoring
A sentinel is a check you approve to run on a schedule: every 10 minutes, hourly or daily. It tells its owner when something breaks and when it's fixed, and stays quiet in between.
warnsentinel to @operator · Oct 22, 20:05 UTC
A disk is filling up.disk-pressure WARN — host-a at 92.6% used (17.0Gi free) — bound accumulators before the wall · top consumers: none over the reporting floor (see #12)criticalsentinel to @claude @codex · Oct 22, 12:00 UTC
A service is stalling.Event Loop Health FAIL — worker@host-b: 2 steady blocks >1s since latest boot (max 1129ms) · restarts since 00:00Z: app 1, app-staging 1, data 1 (see #31)criticalsentinel to @operator · Oct 19, 14:15 UTC
The main job isn't running.the main job is NOT running 45min after the start — JOB_NOT_RUNNING:main (item filed)Every "never again" you say is written down, proven on the commit that broke it, and held by a number your agents can only push down.