Projects
Solution · Drill 9 — Rehearse a Routine for Free
Reference solution. Read the drill first.
Reference solution. Read the drill first.
Worked example
Repo: a real personal project. Routine created with the full form filled in (see A2 for the field list):
- Repo: the target project, read-only connector scope.
- Trigger: schedule, every 20 minutes (fast cadence, for testing).
- Prompt: the dry-run instruction from the drill, verbatim.
- Permissions: read-only grant — no write scope on the connector at all, so even a prompt mistake can't produce a real write.
Three fired beats, loop-run-log.md:
{"run_id":"...T14:00Z","pattern":"routine-dryrun","outcome":"dry-run: would read src/ for new TODOs, would append 2 items to backlog.md — did not write"}
{"run_id":"...T14:20Z","pattern":"routine-dryrun","outcome":"dry-run: nothing new since last beat — would write nothing"}
{"run_id":"...T14:40Z","pattern":"routine-dryrun","outcome":"dry-run: would flag one stale TODO older than 30 days — did not write"}
git status after all three beats: clean — no file changes, confirmed independently of
the loop's own claim.
Why this satisfies "done when"
- The permission grant, not the prompt, is what guarantees zero writes — tested by
confirming
git statusstays clean even though the prompt only asks for a dry run. - Three unattended, real-schedule beats fired without anyone at the keyboard.
Common wrong turns
- Granting write scope "just in case" and relying on the prompt to hold back — defeats the entire point; the first Routine you ever run should have the narrowest possible scope, expanded only after a proven history.