A wake signal enters from the work surface.
GitHub, Linear, Slack, or a schedule can activate the role. A watch observes activation but does not authorize mutation.
Static reading
The story remains complete without the 3D layer.A field guide to recurring maintenance
A daemon reads its contract, checks current state, and returns reviewable work.
THE THESISRecurring maintenance needs a role with a clear purpose, wake condition, routines, and deny rule.
GitHub, Linear, Slack, or a schedule can activate the role. A watch observes activation but does not authorize mutation.
The runtime reads `.agents/daemons/<daemon-id>/DAEMON.md` and uses its fields to frame one narrow job.
Role contract
---
id: pr-maintenance
purpose: Keep pull request checks current
watch: pull request check changes
routines: inspect, repair, report
deny: merge or change protected policy
schedule: optional
--- Every activation stays attached to a repo-defined identity.
The activation combines the current event, past activation, and repository policy or state before a routine begins.
The activation that woke this role, with its current payload.
The role refreshes current state and verifies its evidence before it changes a file, posts an update, or opens a reviewable result.
Refresh current state before any routine writes.
Routines are finite and reviewable. A deny rule is a hard prohibition, not a suggestion or a traffic light.
Routines can repair checks. The deny rule makes merge authority a dead end.
Visible work returns to GitHub, Linear, or Slack as a commit, comment, issue update, or reviewable artifact.
Reviewable result
The work stays visible in the system that owns the review.
Begin narrow: PR maintenance, docs freshness, or issue triage. One repository can host several roles without giving them the same job.
Repair checks and return a reviewable update without merging.
Begin narrow
Start with PR maintenance, docs freshness, or issue triage. Keep the first role small enough to explain.
Open daemon docs