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.
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.
Additional information
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).
Frequently asked questions
Does this replace our standup?
Will it spam the channel if nothing changed?
Can I run it per team or per project?
Why Linear's active cycle and not all open issues?
How does it decide what is at risk?
Related templates
Every weekday at 8am, your billing team gets a Slack rundown of yesterday's failed Braintree charges, the revenue at risk, and who to chase first.
Every weekday morning, roll up your sprint's work items into a clear per-person standup summary and post it to your team's Slack channel before you meet.
Every three hours we scan Braintree for new disputes and chargebacks, open a tracked ticket with a tailored evidence checklist, and alert your team in Slack before the response deadline slips.
Every weekday morning we check your most important Databricks tables for freshness and data problems, and ping Slack only when something actually looks wrong.
Every Monday, automatically find which employee accounts on your company domain turned up in data breaches and get a plain-English briefing in Slack.
When a pipeline build fails, we post a tight Slack card naming who pushed, the likely cause, and a link to the build so on-call can triage in seconds.
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.