Built so agents are first-class operators.
Most sites are built for humans and bolt agents on afterwards. This one is the other way round: every action an agent can take is a declared contract, every invocation is authorized against a scoped grant, and every task is durable and fully traced.
Declared capabilities
12
Tasks executed
0
Success rate (30d)
100%
Human approvals
96
The four pillars
Contracts and discovery
Nothing runs unless it is declared: an id, an owning agent, a typed input schema, a side-effect class, a timeout, and a retry policy. The same catalog is published as a machine-readable discovery document.
Identity and delegated authority
Agents have their own identities and kill switches. External machine clients present scoped, expiring, revocable credentials bound to a grant that limits which capabilities they may call and how far their side effects may reach.
Durable task state
Work is a task, not a request. Tasks checkpoint as they go, hold an execution lease, resume after a crash instead of restarting, and record every step and event along the way.
Observability and governance
Every allow-or-deny decision is logged with its reason. Higher-risk capabilities pause for human approval, and each one is measured against its own success, latency, and cost targets.
What happens on every invocation
Step 1
Validate
Input is parsed against the declared schema
Step 2
Authorize
Policy checks role or grant, scope, and kill switches
Step 3
Persist
A durable task row exists before any work starts
Step 4
Execute
Steps and checkpoints stream into the trace
Step 5
Settle
Completed, retried from checkpoint, or failed with a reason
The capability catalog
The full, live contract — the same list the discovery endpoint publishes at /api/public/agents/discovery.
Sync podcast RSS feed
writeintake.rss-parsing
Pull the podcast RSS feed, create rows for any new episodes, and enrich the newest ones through the full chain.
Backfill episode enrichment
writecontent_architect.enrich-episode-backlog
Run intake → architect → editor → SEO → governance over episodes that have not been enriched yet.
Draft LinkedIn posts
writelinkedin.post-drafting
Draft three LinkedIn variants in the configured voice for episodes without one.
Backfill internal links
writesite_editor.internal-linking
Extract and persist episode links from approved drafts.
Enrich guest bios
writeguest_bios.guest-bio-enrichment
Generate reviewable bio candidates for guests that are missing one.
Run prospecting cycle
spendtrend_scout.prospecting-cycle
Run trend, guest, peer-podcast and question prospecting into the staging area for review.
Run observability cycle
spendcoverage_analyst.observability-cycle
Run observe → belief → recommendation across the knowledge base.
Clear stuck runs
writeescalation_router.reap-stuck-runs
Fail legacy agent runs that have been stuck in `running` past the timeout.
Reap expired task leases
writeplatform.reap-expired-tasks
Return tasks whose execution lease expired to a retryable state, or fail them once attempts are exhausted.
Check capability SLOs and alert
notifyplatform.slo-alert
Compare every capability's 7-day success rate and p95 duration against its SLO target and email admins about breaches (once per capability per day).
Prune task telemetry
writeplatform.prune-telemetry
Delete task steps, events, tool calls and policy decisions older than the retention window. Task rows (status, cost, timings) are kept.
Import historical runs into the task model
writeplatform.backfill-task-history
Project historical agent_runs and a2a_tasks rows into `tasks` as terminal, read-only records so admin views cover the full history. Source tables are never modified.
