Anthropic publishes a Claude Managed Agents reference build: a scheduled brief that reads Slack and GitHub, reports only changes, and flags sources it could not read
Synopsis
Anthropic built a reference implementation of a scheduled agent automation on Claude Managed Agents (beta): it reads Slack channels and GitHub pull requests from per-source bookmarks, reports only what changed since the last run, and posts the result to one Slack channel. Against the usual failures of scheduled jobs, the configuration keeps a source's bookmark when a read fails and names that source as unreadable at the end of the brief, and it updates bookmarks and its ledger only after Slack confirms a post.
Interpretation
A scheduled agent automation is packaged as a deployable configuration: the agent reads Slack channels and GitHub pull requests on a schedule and writes what changed since the previous run into one dated Slack brief. Such automations previously could lose access to a source without anyone noticing or fail to follow the reader's preferences, and a fixed time window leaves a gap when a run is late and repeats items when it is early. The reference implementation replaces the fixed window with bookmarks: at the end of each run the agent writes the timestamp of the newest item read from each source into bookmarks.json, and the next run starts from those bookmarks so its window stretches or shrinks with the interval.
A failed read is not treated as a quiet day: when a source is unavailable, the agent keeps that source's bookmark, writes the brief from the other sources, and ends with one line naming what it could not read. If an MCP server is down or its token has expired, the run still starts without that server's tools, the session logs an error, and the agent sees nothing from that source and reports nothing new. Posting follows the same confirm-before-recording rule: a post counts as sent only when Slack returns ok true and a message ts, and only then are the ledger and bookmarks updated; when the result is unclear the run is marked maybe posted and nothing else changes.
Perspective
The implementation targets background briefs that run on a cron schedule on Anthropic's infrastructure, reading Slack channels and GitHub pull requests by default and writing to one Slack channel, with the template extensible to other sources. Running it requires a Slack app and a GitHub token, and the configuration is created in a Claude API workspace with ant apply.
The spending cap is meant to start at three to five times the cost of a normal run and then be tightened, and a cap set too low pauses a run so it looks like a brief that went quiet. A planted instruction can still change what the brief says, including through notes the agent keeps between runs; the GitHub token and preferences store are read-only and the environment reaches only allowlisted hosts, but the Slack token also posts, so the bot should be invited only where it needs to read or post.
