Automatically builds structured postmortem documents in Notion by analyzing incident channels in Slack.
Install
mkdir -p .claude/skills/pm && curl -L -o skill.zip "https://agentskills.codes/api/skills/download/2711" && unzip -o skill.zip -d .claude/skills/pm && rm skill.zipInstalls to .claude/skills/pm
Activation
This is the description your AI agent reads to decide when to run this skill — the better it matches your request, the more reliably it fires.
Create incident postmortems by reading Slack incident channels and creating structured postmortem documents in Notion. Use when conducting postmortem reviews or documenting incident responses.Key capabilities
- →Extracts chronological incident events from Slack threads
- →Identifies root causes and technical dependencies
- →Categorizes incident impact on users and systems
- →Collates unresolved technical questions for follow-up
- →Maps message history to structured Notion pages
How it works
Queries Slack APIs for channel history and threads, then maps the conversation metadata into a predefined Notion database template.
Inputs & outputs
When to use pm
- →Generating a postmortem after a production incident
- →Summarizing Slack incident discussions for team review
- →Capturing incident timelines and resolutions
About this skill
Incident Postmortem Generator
Create comprehensive incident postmortem documents by reading Slack incident channels and storing structured postmortems in Notion.
When to Use
- After resolving a production incident
- When conducting postmortem reviews
- When documenting incident responses for team learning
- To generate action items from incident discussions
Prerequisites
This skill requires the following MCP servers to be configured:
- Slack MCP - For reading incident channel history
- Notion MCP - For creating postmortem documents in the Notes database
Optional:
- Betterstack MCP - For including telemetry and uptime links
Process
1. Identify the Incident Channel
Ask the user for the Slack channel name or ID. The channel should be the dedicated incident channel (typically named like #incident-<name> or #inc-<date>-<description>).
2. Read Slack Channel History
Use the Slack MCP to fetch the channel's message history:
mcp__slack__slack_list_channels
Find the channel ID, then fetch history:
mcp__slack__slack_get_channel_history with channel_id
For threaded discussions, also fetch thread replies:
mcp__slack__slack_get_thread_replies with channel_id and thread_ts
Get user information to resolve mentions:
mcp__slack__slack_get_users
3. Analyze the Incident
From the Slack messages, extract:
-
Timeline: Key events in chronological order
- When was the incident first detected?
- When was it acknowledged?
- What investigation steps were taken?
- When was it mitigated/resolved?
-
Root Cause: The underlying technical issue
- What broke?
- Why did it break?
- What dependencies were involved?
-
Impact: The effect on users/systems
- What services were affected?
- How many users impacted?
- What was the duration?
-
Open Questions: Unresolved items from discussion
- Unclear technical details
- Areas needing further investigation
- Decisions that need to be made
-
Action Items: Follow-up tasks with assignees
- Preventive measures
- Monitoring improvements
- Documentation updates
- Process changes
4. Generate Postmortem Document
Create a markdown document following this structure:
# Incident Postmortem: [Brief Title]
**Date:** [Incident Date]
**Severity:** [P0/P1/P2/P3]
**Duration:** [Total incident duration]
**Author:** [Person creating postmortem]
## Summary
[2-3 sentence summary of what happened and the impact]
## Timeline
| Time (UTC) | Event |
|------------|-------|
| HH:MM | Incident detected via [source] |
| HH:MM | Team alerted |
| HH:MM | Investigation began |
| HH:MM | Root cause identified |
| HH:MM | Mitigation deployed |
| HH:MM | Incident resolved |
## Impact
- **Services Affected:** [List of affected services]
- **Users Impacted:** [Number or percentage]
- **Duration:** [How long users were affected]
- **Data Loss:** [Yes/No, details if applicable]
## Root Cause Analysis
### What Happened
[Detailed technical explanation of the failure]
### Why It Happened
[Contributing factors, systemic issues]
### Detection
[How was the incident discovered? Could we have detected it sooner?]
## Telemetry & Monitoring
[If Betterstack MCP is available, include relevant links]
- **Uptime Dashboard:** [Link]
- **Error Metrics:** [Link]
- **Relevant Alerts:** [Link]
## Open Questions
- [ ] [Unresolved question 1]
- [ ] [Unresolved question 2]
## Action Items
| Action | Assignee | Priority | Status |
|--------|----------|----------|--------|
| [Action description] | @[username] | High/Medium/Low | Open |
| [Action description] | @[username] | High/Medium/Low | Open |
## Lessons Learned
### What Went Well
- [Positive aspects of incident response]
### What Could Be Improved
- [Areas for improvement]
## References
- **Incident Channel:** #[channel-name]
- **Related PRs:** [Links to fix PRs]
- **Related Docs:** [Links to relevant documentation]
5. Create Notion Page
Use the Notion MCP to create the postmortem in the Notes database:
First, search for the Notes database:
mcp__claude_ai_Notion__notion-search with query: "Notes"
Or use the Notion skill:
Skill: notion-search with "Notes database"
Then create the page with the postmortem content:
mcp__claude_ai_Notion__notion-create-pages with:
- parent: Notes database ID
- title: "Incident Postmortem: [Brief Title]"
- content: [Generated markdown content]
Important: Add the required tags to the page:
engpostmortem
If the Notion MCP supports tags/properties, set them during creation. Otherwise, use the update page tool:
mcp__claude_ai_Notion__notion-update-page with:
- page_id: [created page ID]
- properties: { tags: ["eng", "postmortem"] }
6. Share Results
After creating the postmortem:
- Provide the Notion page link to the user
- Optionally post a summary back to the Slack channel:
mcp__slack__slack_post_message with:
- channel: [incident channel ID]
- text: "Postmortem document created: [Notion link]"
Tips for Quality Postmortems
Blameless Culture
- Focus on systems and processes, not individuals
- Use "the system failed to..." rather than "person X failed to..."
- Treat failures as learning opportunities
Be Specific
- Include exact timestamps when available
- Reference specific commits, PRs, or deployments
- Quantify impact with numbers when possible
Actionable Items
- Each action item should be specific and achievable
- Assign clear owners
- Set priorities to help with planning
Capture Context
- Include relevant Slack threads and discussions
- Link to monitoring dashboards and alerts
- Reference any related incidents
Output
Provide to the user:
- Summary of what was extracted from Slack
- Notion link to the created postmortem
- List of action items for easy reference
- Any gaps that need manual filling (if information was missing from Slack)
When not to use it
- →When the incident was discussed primarily over voice/video calls
- →When sensitive PII or restricted data exists in Slack threads
Prerequisites
Limitations
- →Cannot resolve missing context from off-channel communications
- →Requires consistent thread usage for accurate timeline reconstruction
How it compares
Automates the manual synthesis of scattered chat logs into a standardized review format.
Compared to similar skills
pm side by side with the closest alternatives in the catalog.
| Skill | Installs | Updated | Safety | Difficulty |
|---|---|---|---|---|
| pm (this skill) | 2 | 6mo | No flags | Intermediate |
| trello | 41 | 2mo | Review | Beginner |
| linear | 10 | 2mo | No flags | Beginner |
| zapier-workflows | 11 | 8mo | Review | Beginner |
Try saying
Example prompts that trigger this skill in your AI assistant.
More by flowglad
View all by flowglad →You might also like
trello
openclaw
Manage Trello boards, lists, and cards via the Trello REST API.
linear
lobehub
Linear issue management guide. Use when working with Linear issues, creating issues, updating status, or adding comments. Triggers on Linear issue references (LOBE-xxx), issue tracking, or project management tasks. Requires Linear MCP tools to be available.
zapier-workflows
davila7
Manage and trigger pre-built Zapier workflows and MCP tool orchestration. Use when user mentions workflows, Zaps, automations, daily digest, research, search, lead tracking, expenses, or asks to "run" any process. Also handles Perplexity-based research and Google Sheets data tracking.
attio-skill-generator
kesslerio
Generate use-case-specific Attio workflow skills from templates. Use when creating new skills for lead qualification, deal management, customer onboarding, or custom Attio workflows.
automation-brainstorm
MacroMan5
Interactive workflow design advisor for Power Automate, n8n, Make, Zapier and other platforms. Guides users through planning automation workflows with smart questions about triggers, actions, data flow, and error handling. Uses research sub-agent to find best practices and generates detailed implementation plan. Triggers when user mentions "create workflow", "build flow", "design automation", "need ideas for", or describes workflow requirements without having a complete design.
daily-briefing
anthropics
Start your day with a prioritized sales briefing. Works standalone when you tell me your meetings and priorities, supercharged when you connect your calendar, CRM, and email. Trigger with "morning briefing", "daily brief", "what's on my plate today", "prep my day", or "start my day".