Daily Slack sprint health digest from Linear

Every weekday at 9am, post a Linear cycle health digest into Slack so your team walks into standup already aligned on what shipped and what is at risk.

Agentic Task
LinearSlack BotEngineeringProductDaily DigestsAI ReportsNotifications & Alerts
PromptCreate

Build me an agent workflow that posts a Linear sprint health digest into a Slack engineering channel every weekday morning, so the team walks into standup already aligned on what shipped, what is in flight, and what needs attention.

Trigger: cron, every weekday (Monday through Friday) at 9:00am in the team's local timezone. I will configure the channel ID and timezone when I run it.

What the agent should do on each run:

1. Use Linear List Issues to pull every issue in the team's currently active cycle. For each issue, capture identifier, title, state (and state category), assignee (name plus Linear handle), priority, updatedAt, completedAt, cycle dueDate, and URL. Page through results until the cycle is fully covered.

2. Group the issues into four buckets:

- Shipped yesterday: completed or merged in the last 24 hours.

- In progress: state category Started or In Review, with activity in the last 48 hours.

- Blocked or stale: Started or In Review with no update in 48+ hours, or explicitly labeled blocked.

- At risk for the cycle: not done, with priority Urgent or High, or due before the cycle ends with too much remaining work, or already past due.

3. Compose a single Slack message for the configured channel using Slack Bot Send a Message. Keep the tone tight, skim-friendly, and skip any bucket that is empty. Lead with one sentence on what changed since yesterday. Under each non-empty bucket, list issues as `LIN-123 Title (@assignee-handle)` with a link to the Linear issue. For Blocked or stale and At risk, call out the assignee Slack handle so the right person sees it. End with a one-line cycle progress note (X of Y issues done, N days left in the cycle).

4. If nothing meaningful changed and no items are blocked or at risk, post a single short line rather than an empty digest. Never post filler.

The output should answer "what changed since yesterday and what needs attention today" rather than dumping every ticket. Optimize for a 30-second skim before standup.

What does this prompt do?

  • Pulls every issue in the active Linear cycle each weekday morning, including state, assignee, priority, and last update.
  • Buckets the work into shipped yesterday, in progress, blocked or stale, and at risk for the cycle.
  • Posts a single tight Slack message that calls out blockers by assignee handle and skips empty buckets.
  • Answers what changed since yesterday and what needs attention today, instead of dumping every ticket.

What do I need to use this?

  • A Linear workspace with an active cycle on the team you want to report on.
  • A Slack workspace and the channel ID where the digest should land.
  • Linear OAuth connection with read access to issues and cycles.
  • Slack Bot OAuth connection with chat:write for the target channel.

How can I customize it?

  • Change the cron from weekdays at 9am to whatever cadence and timezone matches your standup.
  • Swap the channel, or post per-team digests to per-team channels by running the workflow once per Linear team.
  • Tune the at-risk and stale thresholds (default 48 hours without an update, plus priority and due-date heuristics).

FAQs

Does this replace our standup?
No. It removes the status-reading part so the live standup can focus on blockers and decisions instead of round-robin updates.
Will it spam the channel if nothing changed?
No. Empty buckets are skipped, and if nothing meaningful moved the agent posts a one-line note rather than a full digest.
Can I run it per team or per project?
Yes. Duplicate the workflow per Linear team or filter the issues query by project, label, or assignee group, and point each copy at a different Slack channel.
Why Linear's active cycle and not all open issues?
Cycle scope is what the team committed to this sprint, so health and at-risk signals are meaningful. Pulling all open issues would drown the message in backlog noise.
How does it decide what is at risk?
The agent considers priority, days remaining in the cycle, current state, and last update time. You can tighten or loosen these rules in the prompt.

Related templates

Build a credential rotation checklist when someone leaves

When someone leaves, we check which shared passwords they used in their final months and post a ranked rotation list to your security channel.

1Password
Rippling
Slack Bot
+1
Agentic Task
Weekly Amazon S3 bucket security audit posted to Slack

Every Monday, check every S3 bucket for public exposure, missing encryption and weak backup settings, then get the risks ranked in Slack.

Amazon S3
Slack Bot
Google Sheets
Agentic Task
Log Agorapulse social conversations to HubSpot contacts

Twice every weekday, the conversations from your social inbox land on the right HubSpot contact timelines, with a Slack recap for sales.

Agorapulse
HubSpot
Slack Bot
Agentic Task
Clean up HubSpot contacts from your Amazon SES suppression list

Every morning, find the addresses that hard bounced or filed a spam complaint, update the matching HubSpot contacts, and post a short Slack recap.

Amazon SES
HubSpot
Slack Bot
Agentic Task
Draft polite follow-ups for emails that never got a reply

Every weekday at 4pm, spot the threads that went quiet, stage a ready-to-send nudge in your mailbox, and get a ranked Slack recap.

Aurinko
Google Sheets
Slack Bot
Agentic Task
Replay failed SQS messages when a bug fix is merged

When you merge a fix in GitHub, this agent checks the matching dead-letter queue, replays the failed messages, and reports back on the pull request and in Slack.

Amazon SQS
GitHub
Slack Bot
Agentic Task

Stop reading status updates out loud at standup.

Connect Linear and Slack once, and Geni posts a tight sprint health digest every weekday at 9am.