helder. bob · bob2
agentsmail-checker README.md
Search ⌘F Fluid ⌘L Hidden ⌘. Note ⌘N Git ⌘G ?
runs mail check once an hour
staged changes3
agents/mail-checker
MmdREADME.md
scheduler
Mymlscheduler.yaml
state
Mtsvskill-usage.tsv
changes3
.
MmdCLAUDE.md
scripts
MmdREADME.md
Mshcheck-docs-rot.sh
3 staged · 3 unstaged
explorerbob
agents
knowledge-researcher
lead-agent
mail-checker
mdPROMPT.md
mdREADME.mdM
mdSTATE.md
ok-monitor
sterrenkijker
tony
mdREADME.md
assets
data
docker
logs
scheduler
prompts
mdREADME.md
mdruns-2026H2.md
mdruns.md
ymlscheduler.yamlM
shtest.sh
shtick.sh
scripts
state
jsonmail-state.json
jsonread-counts.json
mdREADME.md
tsvskill-usage.tsvM
mdCLAUDE.mdM
mdGUARDRAILS.md
mdLOOP.md
mdMEMORY.md
bob
modified +2 −2
Actual Original Preview Diff
M M
1# mail-checker — how I dispatch it 2 3This file is for me (Bob), the dispatcher. It says when to run this agent and how. The agent's own prompt is [`PROMPT.md`](PROMPT.md). I do not read that file myself. 6 7## What it does 8 9It works through imported mails that no AI has looked at yet. Per mail it does three things: 11 121. Judges whether Jonathan should actually read it. 132. Cleans the body into readable Markdown. 143. Makes a todo when the mail asks for a concrete action. 15 16New people it meets get a Vault note, so Blijnder remembers them. 17 18## The hard boundary 19 20It reads, cleans, classifies and records. It never replies to a mail, never deletes a mail, and never chooses a recipient. Nothing that it touches leaves Blijnder, and there is no exception to that. 23 24Between 2026-08-22 and 2026-08-27 there was one: an invoice went to the administration through a script of its own. Skynet does that job now (skynet#41), thus the workspace gave it up (bob#371). The agent is mute again, and the outbound gate refuses every command that would speak for it. 28 29## When to dispatch 30 31- The scheduler fires it. Job `mail-checker-ronde`, every hour, on the hour. 32- Jonathan asks for a mail sweep. 33- The mail step of my tick shows unchecked mail piling up. 34 35## How to dispatch 36 37Send a subagent the path, not the content: 38 39``` 40Agent tool → "Read agents/mail-checker/PROMPT.md and follow it." 41```
98:| [`check-docs-rot.sh`](check-docs-rot.sh) | It checks my rule files for references that are not correct any more: a script or a flag that does not exist, a dead markdown link, an orphan script, an
└ Allowed by auto mode classifier
The column is gone. CLAUDE.md now names which agents exist, and nothing about their clock.
Why it was there. The table was written as one map with three columns, and check-docs-rot.sh section L then enforced the third against the cron lines. That made the coupling real: each change of a schedule broke the check until somebody opened a pull request on the root.
What changed. The table is two columns. Below it stands one rule: when a job runs, and whether it runs at all, stands in scheduler/scheduler.yaml and only there. Section L still holds the table against agents/ in both directions, and it no longer reads a clock.
The check is cleaner now. It reported knowledge-researcher and sterrenkijker as wrong; both were this same duplication, and both are gone.
Five files stand changed and uncommitted. CLAUDE.md is a root file, so it needs a pull request when you commit it.
✳ Churned for 2m 49s · done 8:10 AM
[Opus 5 · 1M] bob |⑂ bob2 /rc
▸▸ auto mode on (shift+tab to cycle) · ← for agents
[bob2][~/code/bob]$
⑂ bob2 +22−66 agents/mail-checker/README.md ·Ln 1, Col 1·UTF-8·LF·Markdown