Detect stalled doorbells with herdr's own signal; require briefs to state how to falsify themselves #7
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "fix-mail-nudge-and-brief-rules"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Two fixes that came out of asking eleven working agents what was actually costing
them time.
1. Stalled doorbells were skipped for exactly the agents that stalled
Delivery hand-rolled its stall check: prompt,
sleep 2, then nudge unless therecipient's status was
workingordone.doneis a resting state — it is where an agent sits after finishing a turn,which is precisely the state a pane is in when a doorbell lands in its input line
unsubmitted. So the recovery was skipped for the only agents that needed it.
Observed at 5 of 11 sends in one session; every stalled pane read
done, andall five had to be flushed by hand.
herdr already detects this properly — from a non-working state,
--waitrequiresan observed state change and exits non-zero with
agent_prompt_stalledwhen nonecomes. Using that instead of guessing from a status poll also drops the fixed 2s
delay from the happy path.
mail selftestpins the contract the fix rests on: an unsubmitted prompt mustexit non-zero. If that ever changes, every stalled doorbell would read as
delivered and the nudge would silently stop firing again — the same failure, back
without a symptom.
Verified end to end against a live
doneagent: doorbell submitted with nomanual intervention.
2. Briefs must say how to falsify their own premises
The skill's rule 3 ("dump the diagnosis you already did") is right, and is also
what makes a brief dangerous: a confidently stated diagnosis is the part a fresh
agent will not re-check.
Seen here. An agent was spawned with an otherwise textbook brief whose central
claim was "the exact code, which I have confirmed is still present on
origin/main." The author had grepped their own working tree, sitting on a stale
branch, inside a command that also ran
git fetch origin— so it read as aremote check without being one. The fix had already merged. That agent verified
before typing and stopped; trusting the brief would likely have produced a
second implementation of an existing fix.
Adds rule 5 and a
Check this first:line to the skeleton, placed ahead of"where to start" so a spawned agent's first action is an attempt to prove the
brief wrong.
Testing
mail selftest— passes; asserts the CLI contract the nudge depends on.doneagent — auto-submitted.python3 -m py_compile herdr-mail/bin/mail— clean.Note (added after merge): the
※ recap:caveat documented in this PR wasoverstated — see the correction and the agent-labelling work in the follow-up PR.
🤖 Generated with Claude Code
Detect stalled doorbells with herdr's own signal; require briefs to state how to falsify themselvesto Make agent-to-agent mail legible: real sender names, reliable doorbells, briefs that can be checkedMake agent-to-agent mail legible: real sender names, reliable doorbells, briefs that can be checkedto Detect stalled doorbells with herdr's own signal; require briefs to state how to falsify themselves