Skip to Content
ChainsWhen then Then

A chain is When an event happens → Then wait, notify, act on GitHub, or run a report. One grammar powers live cards, Review SLA, weekly digest, personal digest, production changelog, and the optional templates in the kind catalog. We will not add a second scheduler “for compliance.”

A report is a saved query with a run history. The chain is the only thing that decides when it runs and where the result goes. See Reports.

Authoring shape

  1. Pick an opinionated kind.
  2. Choose the supported event and conditions.
  3. Set repository, team, path, or space scope where the kind allows it.
  4. Configure waits and Then steps.
  5. Review the exact definition before saving.

Then destinations can include a Slack channel, Slack Messages role, email, or Linear comment where that kind and integration support it. GitHub-writing steps can request/reroute review, label, comment, or set a check.

Scope

Chains can be repository-scoped, team-scoped, path-scoped, or space-scoped where the event supports that boundary. scheduled_report is space-scoped; personal_digest is member-owned and hidden from the normal Chains list.

Delivery

KindIDWhenThen (typical)
PR Slack live cardpull_request_slack_live_cardPR opened / updatedOne channel message, updated in place
Review SLApull_request_review_slaReview requestedReviewer DM after delay, then owner DM
Production changelogproduction_rollout_changelogDeployment succeeded in production/prodWait briefly for associated PRs; announce what shipped
Scheduled reportscheduled_reportCron you setWeekly digest (or any saved report) to Slack
Personal digestpersonal_digestPerson’s weekday local timePrivate snapshot of Overview › Needs attention › For me

The kinds catalog lists the rest (stale PR, failed workflow, bot approval, deployment review, and more). Most are available in the create flow today; later is first-enablement guidance, not product unavailability. Do not enable a default block_merge or fail_check step at first unless you ask for a gate.

Propose this when

ObservationKind ID
Production PRs need a Slack channel of recordpull_request_slack_live_card
Requested reviews sitting with no human reviewpull_request_review_sla
Successful GitHub deploys in production/prodproduction_rollout_changelog
Need a weekly samplescheduled_report
Reviewers miss GitHub noisepersonal_digest candidates only

Enable and pause

Saving produces a draft. Enable promotes the current definition. Pause stops new executions. Delete pauses, finishes in-flight cleanup, and removes authoring state — it does not restore legacy triggers or remove Slack/Linear address rows.

For chains that act on GitHub, enablement requires a reviewed dry-run of the current definition. Notify-only chains do not require that gate. Deployment, workflow, issue, repository, and schedule triggers do not have historical replay.

Dry-run replays supported stored evidence and sends nothing. Enabling starts with new events; it does not backfill historical PRs into Slack.

Inspect what happened

Automations › Activity records real executions, steps, person-delivery status, and terminal outcomes. It is distinct from both historical dry-run and a report’s query run history.

Last updated on