two¢ents

The traps

Most of these bite after the cron takes over, when you’ve stopped watching.

1 · Metered search on a daily cron

Uncapped, a thorough agent will make thirty to fifty Portal calls a morning “to be safe”, every day, including days nothing happened. That’s why the briefing caps calls and prints the count. If the count creeps up, your beat probably didn’t get busier. Tighten the query list.

2 · The local backend

If you skipped the Docker step in setup, your intern is a cron job with shell access, running code it wrote itself at 7 a.m.

3 · Using MEMORY.md as the archive

Tell the intern to “remember what you’ve covered” with the memory tool and it fills the 2,200 characters within a week. Then each new fact pushes out an old one, and the dedupe dies while the file still looks full. Also, there’s no built-in vector store (as of July 2026), and FTS matches keywords, so a reworded story can slip through. Accept the odd repeat, or add a memory plugin once it hurts.

4 · Scrapers that fail quietly

A broken scraper returns zero rows instead of an error. The ministry redesigns its page, the selector matches nothing, and the report gets thinner, which reads like a quiet week. You can lose a source for a month. Prompt 3 makes every scraper print “rows: N” and makes Housekeeping flag any that came back empty.

5 · Switching off write_approval

By week two the approval prompts feel like paperwork. Turn them off and the unattended agent can rewrite its own rules on caps, paywalls and politeness. Keep the gate. A settled intern proposes changes a couple of times a month. If approvals come often enough to annoy you, the briefing is what needs fixing.

6 · Assuming RSS or access

“Just watch these feeds” means building a fetch script or an external service. And no scraper opens closed content. Staying polite also keeps your scrapers working next quarter. If you need a paywalled source, pay for it and use the official API if there is one.

Disagree? Pin a note on it →