# Routines — your reports, refreshed on a cron, in the cloud | Comma

Canonical: https://commareports.com/features/routines

> Routines run a Claude skill (or any underlying skill) on a schedule and post the refreshed HTML as a new revision on your report. Hosted, scoped, with bring-your-own Bedrock keys or prepaid credit — unlimited routines at any cadence on every plan.

# Routines

**Wire a skill to a schedule. Comma re-runs it and posts the new HTML as a
revision on the same report.**

Routines are Comma's hosted-cron primitive. You define what to run, how often
to run it, and who to ping when the new revision lands. Comma handles the
schedule, the execution, the cost cap, and the posting. The artifact you and
your team already comment on stays in the same place — only the content
underneath refreshes.

---

## What a routine is

A routine has four parts:

1. **A skill.** The underlying instruction-set Comma will re-run. Typically a
   Claude skill — your repo's analysis script, an eval harness, a weekly
   digest generator. It runs against fresh data on every cadence.
2. **A cadence.** Any cadence you want — monthly, daily, hourly, or
   sub-hourly — on every plan. The schedule lives in Comma; you don't run a
   cron daemon anywhere.
3. **A target report.** The new HTML lands as the next revision on the report
   you specify. Comments, share link, and access rules carry forward.
4. **A compute source.** Each run uses AWS Bedrock — through your own key
   (free on Comma) or Comma's keys drawing down a prepaid credit balance.
   Hosted runs pause at a $0 balance rather than overflowing into a surprise
   invoice.

That's the whole shape. No YAML pipeline, no DAG, no "workflow." Routines are
scheduled runs.

---

## Why hosted, and not your own cron

Most teams shipping recurring AI reports start the same way: a Python script
on someone's laptop, a `crontab` line, a Slack webhook. It works for two
weeks. Then the laptop sleeps, or the script fails silently, or the AWS bill
arrives and nobody can tell which call was the expensive one, or the agent
gets a token leak and there's no scoped credential to revoke.

Routines exist because that path is the wrong place to put your weekly Monday
report. What Comma hosts for you:

- **The schedule itself.** No cron daemon to maintain, no GitHub Action
  burning minutes, no Lambda you forgot you provisioned.
- **The execution.** The skill runs on Comma's infrastructure against AWS
  Bedrock — directly, or through your own keys.
- **The compute budget.** Runs draw on AWS Bedrock — through your own key
  (billed to your AWS account, free on Comma) or Comma's keys against a
  prepaid credit balance. Hosted runs pause at a $0 balance rather than
  overflowing into a surprise invoice.
- **The credential.** A scoped `comma_sk_…` token. Revoke once and the
  schedule, the agent, and the API surface all stop together.
- **The posting.** The new HTML lands as a revision on the target report,
  with the comment thread and access rules intact.

---

## Bring your own Bedrock keys

On any plan, you can bring your own AWS Bedrock keys. Runs bill directly to
your AWS account and are free on Comma. Two reasons teams switch to BYOK:

- **Finance binding.** The AI spend lives inside the AWS account that
  already has your committed-use discounts, your tagging policy, and your
  cost-allocation rules.
- **No Comma compute charge.** Hosted runs draw down prepaid credit at cost
  plus 20%; BYOK skips that entirely — you pay AWS what AWS charges.

Switch in **Settings → Bedrock keys**. A per-run safety cap still applies so
a runaway prompt can't drain the account.

---

## Cadence and compute

Routines are unlimited at any cadence on every plan — monthly, daily,
hourly, or sub-hourly. There's no cadence gate. What you pay for is the AI
compute each run uses, and you pick how that's billed:

- **Bring your own Bedrock key.** Runs bill to your AWS account. Free on
  Comma, available on any plan.
- **Prepaid credit.** Use Comma's keys and draw down a prepaid balance —
  top up, pay only for the runs you make, drawn at cost plus 20%. Hosted
  runs pause at a $0 balance, so there's never a surprise invoice.

Pooled credit across a team, folders, a custom domain, and removing the
"Published on Comma" mark are part of **Team** (sales-led — [let's
talk](/pricing)).

Sub-hourly cadences bring different failure modes — retries, jitter, dedupe —
which Comma handles for you regardless of plan.

---

## What you can run as a routine

A routine re-runs _whatever the underlying skill does_. That means it doesn't
matter where the HTML comes from, as long as a skill can produce it. Common
shapes:

- **A Claude skill.** A self-contained Markdown skill (Anthropic's primitive)
  describing how to generate the report. Comma re-runs it against fresh data.
- **A model + a prompt.** A bare prompt that produces structured HTML
  output. Useful for fixed templates.
- **A custom Python or Node script** that hits your warehouse, your eval
  harness, or your dashboard tool, formats the result as HTML, and returns
  it.
- **A multi-step agentic skill** — the kind a Claude or Cursor agent would
  follow if you asked it to "regenerate the Monday report."

Routines are agnostic about the inside of the run. They care about the
schedule, the cost ceiling, the credential, and the posting.

---

## Skills are the unit, not pipelines

Comma deliberately doesn't ship a visual pipeline editor. Routines are skills
on a cron — the same instruction-set you'd hand to a Claude agent, with a
schedule wrapped around it. If your skill is well-written, your routine is
well-written. If your skill is brittle, your routine is brittle. The
abstraction is a measuring instrument, not a workflow tool.

This is the same reason the comment layer doesn't try to be a project
manager: the shape of a tool is also the shape of what it refuses to be.

---

## Agents as first-class collaborators

Routines compose with the rest of Comma. The same `comma_sk_…` token that
authorizes a routine also gates the REST API and the MCP server. So:

- A Claude Code agent can **create** a routine through the REST API or the
  `/comma-routine` slash command in the official plugin.
- A routine can **post** its output as a revision and **ping** reviewers.
- A human reviewer can **leave anchored comments** on the new revision.
- The agent can **read those comments** via the MCP server's `list_comments`
  tool and **reply** through `reply_to_comment` — same scoped token.

Scoped, revocable, rate-limited per token. The agent isn't a separate
identity to manage — it's a credential you can pull at any time.

---

## Common shapes

- **Daily Claude eval refresh.** Re-run your eval harness against the latest
  model. Post the HTML as the next revision on the eval-results report.
  Stakeholders see the diff against yesterday.
- **Weekly analytics digest.** Query the warehouse, format as HTML, post to
  the team report. Replaces "ops Slack message + screenshot at 9am Monday."
- **Monthly compliance digest.** Run the compliance checks, format the
  output, post to a board-visible report. Audit trail lives in revision
  history.
- **Hourly dashboard refresh.** An hourly routine that re-pulls the
  dashboard and posts the new revision so on-call sees current state.

Each of these has a dedicated page that walks through the setup —
[see use cases below](#use-cases).

---

## How to set one up

1. **Have a report.** Either create one from your skill's current output, or
   start with a placeholder.
2. **Go to Routines.** From the report page, **Add routine →**.
3. **Pick a skill.** Upload a Claude skill markdown file, paste a prompt, or
   reference a skill you've already registered.
4. **Set the cadence.** Monthly, daily, hourly, or sub-hourly — any cadence,
   on any plan.
5. **(Optional) Set a per-run spend limit.** A safety ceiling on what a
   single run can draw from your credit balance.
6. **(Optional) BYO Bedrock keys** to bill runs to your own AWS account —
   free on Comma, on any plan.
7. **Save.** The first run lands at the next cadence boundary. Subsequent
   runs post as new revisions on the same report.

---

## What routines deliberately don't do

- **No visual pipeline.** Skills are the unit. Compose them in your skill,
  not in a DAG editor.
- **No long-running workflows.** A run that takes hours probably wants a
  different tool. Routines are best at "run a focused skill, post the
  result."
- **No data warehousing.** Comma doesn't store your raw data. The skill
  fetches what it needs at run time.
- **No general-purpose cron.** Routines post HTML to a Comma report. They
  are not a hosted cron for arbitrary side-effects.

---

## Use cases

- [Run a Claude skill on a schedule](/features/routines/run-claude-skill-on-schedule)
- [Hosted cron for AI agents](/features/routines/cron-for-ai-agents)
- [Automated HTML report delivery](/features/routines/scheduled-html-reports)
- [Daily Claude eval refresh, on autopilot](/features/routines/daily-claude-eval-refresh)
- [Weekly analytics digest, refreshed in place](/features/routines/weekly-analytics-digest)
- [Monthly compliance digest from your AI pipeline](/features/routines/monthly-compliance-digest)

---

## Pricing

Comma is free: unlimited reports, unlimited commenters, and unlimited
routines at any cadence on every plan. You pay only for the AI compute your
routines use.

- **Bring your own Bedrock key** — runs bill to your AWS account, free on
  Comma, on any plan.
- **Prepaid credit** — use Comma's keys and draw down a prepaid balance
  (drawn at cost plus 20%). Hosted runs pause at a $0 balance rather than
  billing a surprise.
- **Team** — pooled credit, teams and folders, a custom domain, and removal
  of the "Published on Comma" mark. Sales-led — [let's talk](/pricing).
- **Enterprise** — on-prem / self-hosted, SSO/SAML, audit log, DPA, and BYO
  Bedrock at scale. Sales-led.

[See full pricing →](/pricing)

---

## FAQ

**What is a routine?** A hosted cron for a report: a skill, a cadence, a
target report, and a compute source. The new HTML lands as a revision on
the same report.

**What does it cost?** Routines are free and unlimited at any cadence on
every plan. You pay only for AI compute — BYO Bedrock key (free on Comma)
or prepaid credit at cost plus 20%, pausing at $0.

**Can an agent create one?** Yes — REST API, the MCP `create_routine`
tool, or `/comma-routine` in the Claude Code plugin, all under one scoped
token.

**What can it run?** Anything a skill can express: a Claude skill, a
prompt template, a custom script that returns HTML.

**What won't it do?** Visual pipelines, long-running workflows, data
warehousing, or general-purpose cron side-effects.

---

## Try a routine

The fastest way to feel the shape is to wire a Claude skill you already use
to a routine — any cadence, free to set up. The loop closes: report exists,
skill runs, revision appears, comments persist.

**[Create your first routine →](https://commareports.com/)**
