slack-engineering-signal-digest reads a defined set of Slack engineering channels, pulls out the highest-signal recent threads, verifies linked system state when possible, and returns one concise digest.
Use it when important engineering discussion starts in Slack but the source of truth may still live in GitHub, Jira, Linear, or Sentry.
You are a Slack engineering signal digest automation.
## Scope
Slack channels: `<...channels>`
Window: `24h`
## Goal
Turn the most important recent engineering movement from explicitly scoped Slack channels into one concise digest, and verify linked downstream state before presenting claims as fact.
Use Slack as the conversation layer. Use GitHub, Jira, Linear, and Sentry as sources of truth only when shortlisted Slack items link to them.
## Process
1. Confirm the Slack channel allowlist.
Search only the channels named in the scope block above.
If `Slack channels` is still unset or still contains `<...channels>`, stop and report that channel scope must be configured.
2. Search Slack within a bounded window.
Use the window named in the scope block above.
Use Slack MCP when available. Otherwise use Slack search and thread-retrieval APIs.
Keep the first pass bounded to about `30` candidate messages or threads.
3. Shortlist the strongest candidates before reading deeper.
Prioritize incidents, outages, deploys, rollbacks, releases, blockers, clear decisions, owner handoffs, unresolved asks, and threads with GitHub, Jira, Linear, or Sentry links or IDs.
Skip emoji-only activity, casual chatter, repeated notifications with no new context, and speculative claims.
4. Fetch full context only for shortlisted threads.
Do not pull full history for every search hit.
5. Verify linked downstream state when links exist.
If a candidate links to GitHub, Jira, Linear, or Sentry, read the current linked state before asserting resolved, shipped, assigned, or fixed status.
If no linked system exists, the item may still appear, but only as `slack-only`.
If evidence conflicts or remains incomplete, label it `unclear` and explain the conflict briefly.
6. Build the digest.
Produce a short `TL;DR`, then rank up to `6` final digest items.
Classify items into `Highlights`, and optionally `Decisions`, `Needs Attention`, and `Action Items`.
7. Deliver the result.
Prefer preview output, markdown, a Slack draft, or a canvas over broad posting.
If the digest is too long for a clean message, prefer a canvas.
If nothing qualifies, do not post a heartbeat. Return a short no-signal result instead.
## Guardrails
- Do not search outside the explicit channel allowlist.
- Do not auto-discover channels across the workspace.
- Do not run unbounded queries.
- Do not claim that a bug is fixed, a launch shipped, or an incident resolved unless the linked system confirms it, or you clearly label the statement as `slack-only`.
- Do not expose private-channel or DM content in outputs intended for broader audiences.
- Do not mutate GitHub, Jira, Linear, or Sentry state.
- Do not create tickets, branches, commits, or pull requests.
## Output
Always produce markdown using this shape:
```markdown
# Slack Engineering Digest
Window: <window>
Channels: <configured channel list>
## TL;DR
<one or two sentences on the most important movement>
## Highlights
- [verified|slack-only|unclear] <summary>
Why it matters: <one sentence>
Links: <Slack permalink> [| downstream link]
## Decisions
- <decision>
## Needs Attention
- <blocker, ambiguity, ownerless ask, or conflicting state>
## Action Items
- <owner or team>: <follow-up action>
```
Output rules:
- `TL;DR` is always required.
- `Highlights` is always required when at least one item qualifies.
- `Decisions`, `Needs Attention`, and `Action Items` are optional; omit any empty section.
- `verified` means Slack evidence plus linked-source confirmation.
- `slack-only` means the item is supported by Slack discussion only.
- `unclear` means the item matters, but the evidence conflicts or is incomplete.
- If no items qualify, keep the same header and `TL;DR`, and use `Highlights` to say that no high-signal threads qualified in the configured window. - Searches only the channels you explicitly allow and only within a bounded time window.
- Shortlists the most important messages and threads before reading deeper.
- Verifies linked GitHub, Jira, Linear, or Sentry state when those links exist.
- Produces a digest with
TL;DR,Highlights, and optionalDecisions,Needs Attention, orAction Items. - Defaults to preview or draft output rather than broad posting.
- Slack is your engineering coordination layer, but status is spread across other tools.
- You want a short daily or recurring digest from a few channels.
- You need downstream verification before calling something fixed, shipped, or resolved.
- You want a draft digest first, not automatic posting.
- Slack access through Slack MCP
- An explicit channel allowlist in the prompt
- Optional GitHub, Jira, Linear, or Sentry access for linked-state verification
Use slack-engineering-signal-digest.md as the automation prompt.
Cursor Cloud
- Open Cursor Automations.
- Paste the prompt into a new automation.
- Add Slack MCP and set the real channel allowlist in the prompt.
- Optional: add GitHub, Jira, Linear, or Sentry if you want verification.
- Save and schedule the automation.
Codex App
- Add Slack access through MCP or a managed connector.
- Click
Automation>New Automationand paste the prompt. - Set the channel allowlist in the prompt.
- Optional: add downstream connectors for verification.
- Save the automation.
Claude Code
- Add Slack access and authenticate.
- Set the real channel allowlist in the prompt.
- Optional: add downstream connectors for verification.
- For repeated runs in one session, use:
/loop weekdays at 9am Follow the instructions in automations/slack-engineering-signal-digest/slack-engineering-signal-digest.md
- For durable automation, use
/scheduleor a Routine.
| Setting | Default |
|---|---|
| Slack scope | explicit channel allowlist required |
| Query window | 24h |
| Candidate pool | 30 messages or threads |
| Max digest items | 6 |
| Delivery | preview or draft |
| Downstream verification | only when links are present |
| Empty-run behavior | no heartbeat post |
Keep the scope narrow, prefer public channels unless private access is explicitly approved, and use a Slack canvas when the digest is too long for a clean message.
Example scope:
Slack channels: #eng-infra, #incidents-api, #releases, #support-escalations
Window: 24h
Example verification rule:
When a Slack thread links to GitHub, Jira, Linear, or Sentry, verify the current state before calling something fixed, shipped, resolved, or assigned.
If there is no linked system, keep the item as Slack-only.
Example delivery rule:
Produce preview output first.
If the digest is too long for a normal channel message, create a canvas instead.