Scheduled agent rounds, kept like a garden. Raked every morning, touched by no one, and quiet when all is well.
Roops is a thin harness for recurring agent jobs — the boring, valuable kind: audits, drift checks, health sweeps. Each loop wakes on its schedule, looks at one thing carefully, files its findings, and disappears.
Every firing is a fresh agent with no memory of the last run. State lives in the harness — run history, findings, dispositions — never in the model. The patrol is the same every night; only the garden changes.
While on patrol, a loop can only look and speak. That is enforced beneath the model — write sandbox, tool restrictions, no network — not promised in a prompt. But don’t mistake the patrol for the product: findings are written as fully-specified actions, precise enough to execute as-is. Nothing changes during a round; things change because of one.
Findings flow to one place — roops stamp. Acknowledge, dismiss, snooze only quiet the garden. Approval, 承, is different: an approved finding becomes an order, executed on its own audited path — dry-run, execute, confirm — never mid-patrol. Approve the same thing often enough and Roops asks to make the approval standing. Autonomy is earned, one seal at a time.
Prompts are written for no particular model. Engines are switchable per loop — one CLI-driven agent today, a different one tomorrow, a local model later. The harness outlives any engine it runs.
A firing is five moves, always the same five. Nothing is resident between them: the round starts empty, and what it brings back waits for you.
Nothing runs between rounds. The operating system wakes the loop at its hour and hands it a clean process.
No memory of the last round, and no way to alter this one: write sandbox, restricted tools, no network. All of it sits beneath the model; none of it is prompt text.
Few stems, deliberate placement, everything that does not belong cut away. An empty arrangement is the healthy one.
The first three quiet the garden, and the loop stops raising what you have already answered. The fourth is not a quieting.
Dry-run, execute, confirm — each step with its own record, and none of it inside the round that proposed it.
The same round, from the terminal.
A zen garden is not built once — it is tended on a schedule, and the raking is the product. Roops keeps a garden’s default state too: silence, the ma (間) of meaningful empty space, where a quiet dashboard is not “no data” but the deliberate display of nothing being wrong.
maps to → scheduled firings · fresh session per run · empty findings = healthy · whitespace-first dashboardA castle guard walks the same perimeter at the same hour every night, whether or not anything happened the night before — that patrol is junkai (巡回), and it is exactly what a scheduled run is. The patrol itself is read-only, enforced at the engine level, and the acting comes after: the blade is drawn on command, never on patrol.
maps to → cron-like reliability · per-loop permission axes · rounds propose · 承 approves · execution on its own audited pathClassical ikebana arranges three stems at three heights — shin (真) tallest, soe (副) middle, hikae (控) lowest — which is, with no forcing at all, a severity hierarchy: shin = alert, soe = warn, hikae = info. A run’s findings are a small arrangement of few stems and deliberate placement, with everything that does not belong cut away — dismissal is part of the art.
maps to → severity levels · ack / dismiss / snooze as pruning · effective_status = the tallest stem in the vaseThe run matrix as a tended garden. Runs are rake-lines; findings are stems; human dispositions are stamps.
This is a working excerpt — toggles and stamps are simulated. The full interface concept — running rounds, the live engawa view, the ledger — is a page of its own: enter the garden.