{"id":"7117cff6-6a00-488f-8575-1c345ffdb5a0","shortId":"bggG3Q","kind":"skill","title":"postmortem-writing","tagline":"Comprehensive guide to writing effective, blameless postmortems that drive organizational learning and prevent incident recurrence.","description":"# Postmortem Writing\n\nComprehensive guide to writing effective, blameless postmortems that drive organizational learning and prevent incident recurrence.\n\n## Do not use this skill when\n\n- The task is unrelated to postmortem writing\n- You need a different domain or tool outside this scope\n\n## Instructions\n\n- Clarify goals, constraints, and required inputs.\n- Apply relevant best practices and validate outcomes.\n- Provide actionable steps and verification.\n- If detailed examples are required, open `resources/implementation-playbook.md`.\n\n## Use this skill when\n\n- Conducting post-incident reviews\n- Writing postmortem documents\n- Facilitating blameless postmortem meetings\n- Identifying root causes and contributing factors\n- Creating actionable follow-up items\n- Building organizational learning culture\n\n## Core Concepts\n\n### 1. Blameless Culture\n\n| Blame-Focused | Blameless |\n|---------------|-----------|\n| \"Who caused this?\" | \"What conditions allowed this?\" |\n| \"Someone made a mistake\" | \"The system allowed this mistake\" |\n| Punish individuals | Improve systems |\n| Hide information | Share learnings |\n| Fear of speaking up | Psychological safety |\n\n### 2. Postmortem Triggers\n\n- SEV1 or SEV2 incidents\n- Customer-facing outages > 15 minutes\n- Data loss or security incidents\n- Near-misses that could have been severe\n- Novel failure modes\n- Incidents requiring unusual intervention\n\n## Quick Start\n\n### Postmortem Timeline\n```\nDay 0: Incident occurs\nDay 1-2: Draft postmortem document\nDay 3-5: Postmortem meeting\nDay 5-7: Finalize document, create tickets\nWeek 2+: Action item completion\nQuarterly: Review patterns across incidents\n```\n\n## Templates\n\n### Template 1: Standard Postmortem\n\n```markdown\n# Postmortem: [Incident Title]\n\n**Date**: 2024-01-15\n**Authors**: @alice, @bob\n**Status**: Draft | In Review | Final\n**Incident Severity**: SEV2\n**Incident Duration**: 47 minutes\n\n## Executive Summary\n\nOn January 15, 2024, the payment processing service experienced a 47-minute outage affecting approximately 12,000 customers. The root cause was a database connection pool exhaustion triggered by a configuration change in deployment v2.3.4. The incident was resolved by rolling back to v2.3.3 and increasing connection pool limits.\n\n**Impact**:\n- 12,000 customers unable to complete purchases\n- Estimated revenue loss: $45,000\n- 847 support tickets created\n- No data loss or security implications\n\n## Timeline (All times UTC)\n\n| Time | Event |\n|------|-------|\n| 14:23 | Deployment v2.3.4 completed to production |\n| 14:31 | First alert: `payment_error_rate > 5%` |\n| 14:33 | On-call engineer @alice acknowledges alert |\n| 14:35 | Initial investigation begins, error rate at 23% |\n| 14:41 | Incident declared SEV2, @bob joins |\n| 14:45 | Database connection exhaustion identified |\n| 14:52 | Decision to rollback deployment |\n| 14:58 | Rollback to v2.3.3 initiated |\n| 15:10 | Rollback complete, error rate dropping |\n| 15:18 | Service fully recovered, incident resolved |\n\n## Root Cause Analysis\n\n### What Happened\n\nThe v2.3.4 deployment included a change to the database query pattern that inadvertently removed connection pooling for a frequently-called endpoint. Each request opened a new database connection instead of reusing pooled connections.\n\n### Why It Happened\n\n1. **Proximate Cause**: Code change in `PaymentRepository.java` replaced pooled `DataSource` with direct `DriverManager.getConnection()` calls.\n\n2. **Contributing Factors**:\n   - Code review did not catch the connection handling change\n   - No integration tests specifically for connection pool behavior\n   - Staging environment has lower traffic, masking the issue\n   - Database connection metrics alert threshold was too high (90%)\n\n3. **5 Whys Analysis**:\n   - Why did the service fail? → Database connections exhausted\n   - Why were connections exhausted? → Each request opened new connection\n   - Why did each request open new connection? → Code bypassed connection pool\n   - Why did code bypass connection pool? → Developer unfamiliar with codebase patterns\n   - Why was developer unfamiliar? → No documentation on connection management patterns\n\n### System Diagram\n\n```\n[Client] → [Load Balancer] → [Payment Service] → [Database]\n                                    ↓\n                            Connection Pool (broken)\n                                    ↓\n                            Direct connections (cause)\n```\n\n## Detection\n\n### What Worked\n- Error rate alert fired within 8 minutes of deployment\n- Grafana dashboard clearly showed connection spike\n- On-call response was swift (2 minute acknowledgment)\n\n### What Didn't Work\n- Database connection metric alert threshold too high\n- No deployment-correlated alerting\n- Canary deployment would have caught this earlier\n\n### Detection Gap\nThe deployment completed at 14:23, but the first alert didn't fire until 14:31 (8 minutes). A deployment-aware alert could have detected the issue faster.\n\n## Response\n\n### What Worked\n- On-call engineer quickly identified database as the issue\n- Rollback decision was made decisively\n- Clear communication in incident channel\n\n### What Could Be Improved\n- Took 10 minutes to correlate issue with recent deployment\n- Had to manually check deployment history\n- Rollback took 12 minutes (could be faster)\n\n## Impact\n\n### Customer Impact\n- 12,000 unique customers affected\n- Average impact duration: 35 minutes\n- 847 support tickets (23% of affected users)\n- Customer satisfaction score dropped 12 points\n\n### Business Impact\n- Estimated revenue loss: $45,000\n- Support cost: ~$2,500 (agent time)\n- Engineering time: ~8 person-hours\n\n### Technical Impact\n- Database primary experienced elevated load\n- Some replica lag during incident\n- No permanent damage to systems\n\n## Lessons Learned\n\n### What Went Well\n1. Alerting detected the issue before customer reports\n2. Team collaborated effectively under pressure\n3. Rollback procedure worked smoothly\n4. Communication was clear and timely\n\n### What Went Wrong\n1. Code review missed critical change\n2. Test coverage gap for connection pooling\n3. Staging environment doesn't reflect production traffic\n4. Alert thresholds were not tuned properly\n\n### Where We Got Lucky\n1. Incident occurred during business hours with full team available\n2. Database handled the load without failing completely\n3. No other incidents occurred simultaneously\n\n## Action Items\n\n| Priority | Action | Owner | Due Date | Ticket |\n|----------|--------|-------|----------|--------|\n| P0 | Add integration test for connection pool behavior | @alice | 2024-01-22 | ENG-1234 |\n| P0 | Lower database connection alert threshold to 70% | @bob | 2024-01-17 | OPS-567 |\n| P1 | Document connection management patterns | @alice | 2024-01-29 | DOC-89 |\n| P1 | Implement deployment-correlated alerting | @bob | 2024-02-05 | OPS-568 |\n| P2 | Evaluate canary deployment strategy | @charlie | 2024-02-15 | ENG-1235 |\n| P2 | Load test staging with production-like traffic | @dave | 2024-02-28 | QA-123 |\n\n## Appendix\n\n### Supporting Data\n\n#### Error Rate Graph\n[Link to Grafana dashboard snapshot]\n\n#### Database Connection Graph\n[Link to metrics]\n\n### Related Incidents\n- 2023-11-02: Similar connection issue in User Service (POSTMORTEM-42)\n\n### References\n- Connection Pool Best Practices\n- Deployment Runbook\n```\n\n### Template 2: 5 Whys Analysis\n\n```markdown\n# 5 Whys Analysis: [Incident]\n\n## Problem Statement\nPayment service experienced 47-minute outage due to database connection exhaustion.\n\n## Analysis\n\n### Why #1: Why did the service fail?\n**Answer**: Database connections were exhausted, causing all new requests to fail.\n\n**Evidence**: Metrics showed connection count at 100/100 (max), with 500+ pending requests.\n\n---\n\n### Why #2: Why were database connections exhausted?\n**Answer**: Each incoming request opened a new database connection instead of using the connection pool.\n\n**Evidence**: Code diff shows direct `DriverManager.getConnection()` instead of pooled `DataSource`.\n\n---\n\n### Why #3: Why did the code bypass the connection pool?\n**Answer**: A developer refactored the repository class and inadvertently changed the connection acquisition method.\n\n**Evidence**: PR #1234 shows the change, made while fixing a different bug.\n\n---\n\n### Why #4: Why wasn't this caught in code review?\n**Answer**: The reviewer focused on the functional change (the bug fix) and didn't notice the infrastructure change.\n\n**Evidence**: Review comments only discuss business logic.\n\n---\n\n### Why #5: Why isn't there a safety net for this type of change?\n**Answer**: We lack automated tests that verify connection pool behavior and lack documentation about our connection patterns.\n\n**Evidence**: Test suite has no tests for connection handling; wiki has no article on database connections.\n\n## Root Causes Identified\n\n1. **Primary**: Missing automated tests for infrastructure behavior\n2. **Secondary**: Insufficient documentation of architectural patterns\n3. **Tertiary**: Code review checklist doesn't include infrastructure considerations\n\n## Systemic Improvements\n\n| Root Cause | Improvement | Type |\n|------------|-------------|------|\n| Missing tests | Add infrastructure behavior tests | Prevention |\n| Missing docs | Document connection patterns | Prevention |\n| Review gaps | Update review checklist | Detection |\n| No canary | Implement canary deployments | Mitigation |\n```\n\n### Template 3: Quick Postmortem (Minor Incidents)\n\n```markdown\n# Quick Postmortem: [Brief Title]\n\n**Date**: 2024-01-15 | **Duration**: 12 min | **Severity**: SEV3\n\n## What Happened\nAPI latency spiked to 5s due to cache miss storm after cache flush.\n\n## Timeline\n- 10:00 - Cache flush initiated for config update\n- 10:02 - Latency alerts fire\n- 10:05 - Identified as cache miss storm\n- 10:08 - Enabled cache warming\n- 10:12 - Latency normalized\n\n## Root Cause\nFull cache flush for minor config update caused thundering herd.\n\n## Fix\n- Immediate: Enabled cache warming\n- Long-term: Implement partial cache invalidation (ENG-999)\n\n## Lessons\nDon't full-flush cache in production; use targeted invalidation.\n```\n\n## Facilitation Guide\n\n### Running a Postmortem Meeting\n\n```markdown\n## Meeting Structure (60 minutes)\n\n### 1. Opening (5 min)\n- Remind everyone of blameless culture\n- \"We're here to learn, not to blame\"\n- Review meeting norms\n\n### 2. Timeline Review (15 min)\n- Walk through events chronologically\n- Ask clarifying questions\n- Identify gaps in timeline\n\n### 3. Analysis Discussion (20 min)\n- What failed?\n- Why did it fail?\n- What conditions allowed this?\n- What would have prevented it?\n\n### 4. Action Items (15 min)\n- Brainstorm improvements\n- Prioritize by impact and effort\n- Assign owners and due dates\n\n### 5. Closing (5 min)\n- Summarize key learnings\n- Confirm action item owners\n- Schedule follow-up if needed\n\n## Facilitation Tips\n- Keep discussion on track\n- Redirect blame to systems\n- Encourage quiet participants\n- Document dissenting views\n- Time-box tangents\n```\n\n## Anti-Patterns to Avoid\n\n| Anti-Pattern | Problem | Better Approach |\n|--------------|---------|-----------------|\n| **Blame game** | Shuts down learning | Focus on systems |\n| **Shallow analysis** | Doesn't prevent recurrence | Ask \"why\" 5 times |\n| **No action items** | Waste of time | Always have concrete next steps |\n| **Unrealistic actions** | Never completed | Scope to achievable tasks |\n| **No follow-up** | Actions forgotten | Track in ticketing system |\n\n## Best Practices\n\n### Do's\n- **Start immediately** - Memory fades fast\n- **Be specific** - Exact times, exact errors\n- **Include graphs** - Visual evidence\n- **Assign owners** - No orphan action items\n- **Share widely** - Organizational learning\n\n### Don'ts\n- **Don't name and shame** - Ever\n- **Don't skip small incidents** - They reveal patterns\n- **Don't make it a blame doc** - That kills learning\n- **Don't create busywork** - Actions should be meaningful\n- **Don't skip follow-up** - Verify actions completed\n\n## Resources\n\n- [Google SRE - Postmortem Culture](https://sre.google/sre-book/postmortem-culture/)\n- [Etsy's Blameless Postmortems](https://codeascraft.com/2012/05/22/blameless-postmortems/)\n- [PagerDuty Postmortem Guide](https://postmortems.pagerduty.com/)\n\n## Limitations\n- Use this skill only when the task clearly matches the scope described above.\n- Do not treat the output as a substitute for environment-specific validation, testing, or expert review.\n- Stop and ask for clarification if required inputs, permissions, safety boundaries, or success criteria are missing.","tags":["postmortem","writing","antigravity","awesome","skills","sickn33","agent-skills","agentic-skills","ai-agent-skills","ai-agents","ai-coding","ai-workflows"],"capabilities":["skill","source-sickn33","skill-postmortem-writing","topic-agent-skills","topic-agentic-skills","topic-ai-agent-skills","topic-ai-agents","topic-ai-coding","topic-ai-workflows","topic-antigravity","topic-antigravity-skills","topic-claude-code","topic-claude-code-skills","topic-codex-cli","topic-codex-skills"],"categories":["antigravity-awesome-skills"],"synonyms":[],"warnings":[],"endpointUrl":"https://skills.sh/sickn33/antigravity-awesome-skills/postmortem-writing","protocol":"skill","transport":"skills-sh","auth":{"type":"none","details":{"cli":"npx skills add sickn33/antigravity-awesome-skills","source_repo":"https://github.com/sickn33/antigravity-awesome-skills","install_from":"skills.sh"}},"qualityScore":"0.700","qualityRationale":"deterministic score 0.70 from registry signals: · indexed on github topic:agent-skills · 34616 github stars · SKILL.md body (12,531 chars)","verified":false,"liveness":"unknown","lastLivenessCheck":null,"agentReviews":{"count":0,"score_avg":null,"cost_usd_avg":null,"success_rate":null,"latency_p50_ms":null,"narrative_summary":null,"summary_updated_at":null},"enrichmentModel":"deterministic:skill-github:v1","enrichmentVersion":1,"enrichedAt":"2026-04-23T00:51:24.694Z","embedding":null,"createdAt":"2026-04-18T21:42:37.205Z","updatedAt":"2026-04-23T00:51:24.694Z","lastSeenAt":"2026-04-23T00:51:24.694Z","tsv":"'-01':236,864,878,889,1244 '-02':901,912,927,952 '-05':902 '-11':951 '-123':930 '-1234':867 '-1235':915 '-15':237,913,1245 '-17':879 '-2':199 '-22':865 '-28':928 '-29':890 '-42':960 '-5':205 '-567':881 '-568':904 '-7':210 '-89':892 '-999':1321 '/)':1605 '/2012/05/22/blameless-postmortems/)':1599 '/sre-book/postmortem-culture/)':1592 '0':194 '00':1268 '000':271,306,316,699,727 '02':1276 '05':1281 '08':1288 '1':119,198,227,447,762,790,822,993,1175,1345 '10':392,674,1267,1275,1280,1287,1292 '100/100':1016 '12':270,305,690,698,719,1247,1293 '1234':1080 '14':333,340,348,357,366,373,379,385,621,631 '15':167,257,391,398,1368,1404 '18':399 '2':156,216,461,589,730,770,796,832,969,1023,1183,1365 '20':1384 '2023':950 '2024':235,258,863,877,888,900,911,926,1243 '23':334,365,622,711 '3':204,498,776,803,840,1055,1190,1232,1381 '31':341,632 '33':349 '35':358,706 '4':781,811,1091,1401 '41':367 '45':315,374,726 '47':251,265,983 '5':209,347,499,970,974,1126,1347,1418,1420,1482 '500':731,1019 '52':380 '58':386 '5s':1257 '60':1343 '70':875 '8':573,633,736 '847':317,708 '90':497 'achiev':1501 'acknowledg':355,591 'acquisit':1076 'across':223 'action':74,108,217,846,849,1402,1426,1485,1496,1507,1536,1572,1583 'add':855,1208 'affect':268,702,713 'agent':732 'alert':343,356,492,570,599,607,626,639,763,812,872,898,1278 'alic':239,354,862,887 'allow':131,139,1394 'alway':1490 'analysi':407,501,972,976,991,1382,1475 'answer':999,1029,1064,1100,1139 'anti':1456,1461 'anti-pattern':1455,1460 'api':1253 'appendix':931 'appli':66 'approach':1465 'approxim':269 'architectur':1188 'articl':1168 'ask':1374,1480,1639 'assign':1413,1532 'author':238 'autom':1142,1178 'avail':831 'averag':703 'avoid':1459 'awar':638 'back':296 'balanc':555 'begin':361 'behavior':480,861,1148,1182,1210 'best':68,964,1513 'better':1464 'blame':123,1361,1442,1466,1563 'blame-focus':122 'blameless':9,26,98,120,125,1352,1595 'bob':240,371,876,899 'boundari':1647 'box':1453 'brainstorm':1406 'brief':1240 'broken':561 'bug':1089,1109 'build':113 'busi':721,826,1123 'busywork':1571 'bypass':527,533,1060 'cach':1260,1264,1269,1284,1290,1299,1311,1318,1328 'call':352,430,460,585,651 'canari':608,907,1226,1228 'catch':468 'caught':612,1096 'caus':103,127,275,406,449,564,1004,1173,1203,1297,1305 'chang':286,415,451,472,795,1073,1083,1107,1117,1138 'channel':668 'charli':910 'check':685 'checklist':1194,1223 'chronolog':1373 'clarif':1641 'clarifi':60,1375 'class':1070 'clear':579,664,784,1614 'client':553 'close':1419 'code':450,464,526,532,791,1045,1059,1098,1192 'codeascraft.com':1598 'codeascraft.com/2012/05/22/blameless-postmortems/)':1597 'codebas':539 'collabor':772 'comment':1120 'communic':665,782 'complet':219,310,337,394,619,839,1498,1584 'comprehens':4,21 'concept':118 'concret':1492 'condit':130,1393 'conduct':89 'config':1273,1303 'configur':285 'confirm':1425 'connect':279,301,376,424,438,443,470,478,490,508,512,518,525,528,534,548,559,563,581,597,801,859,871,884,943,954,962,989,1001,1013,1027,1037,1042,1062,1075,1146,1154,1163,1171,1216 'consider':1199 'constraint':62 'contribut':105,462 'core':117 'correl':606,677,897 'cost':729 'could':178,640,670,692 'count':1014 'coverag':798 'creat':107,213,320,1570 'criteria':1650 'critic':794 'cultur':116,121,1353,1589 'custom':164,272,307,696,701,715,768 'customer-fac':163 'damag':754 'dashboard':578,940 'data':169,322,933 'databas':278,375,418,437,489,507,558,596,655,742,833,870,942,988,1000,1026,1036,1170 'datasourc':456,1053 'date':234,852,1242,1417 'dave':925 'day':193,197,203,208 'decis':381,660,663 'declar':369 'deploy':288,335,384,412,576,605,609,618,637,681,686,896,908,966,1229 'deployment-awar':636 'deployment-correl':604,895 'describ':1618 'detail':79 'detect':565,615,642,764,1224 'develop':536,543,1066 'diagram':552 'didn':593,627,1112 'diff':1046 'differ':52,1088 'direct':458,562,1048 'discuss':1122,1383,1438 'dissent':1449 'doc':891,1214,1564 'document':96,202,212,546,883,1151,1186,1215,1448 'doesn':806,1195,1476 'domain':53 'draft':200,242 'drive':12,29 'drivermanager.getconnection':459,1049 'drop':397,718 'due':851,986,1258,1416 'durat':250,705,1246 'earlier':614 'effect':8,25,773 'effort':1412 'elev':745 'enabl':1289,1310 'encourag':1445 'endpoint':431 'eng':866,914,1320 'engin':353,652,734 'environ':482,805,1630 'environment-specif':1629 'error':345,362,395,568,934,1527 'estim':312,723 'etsi':1593 'evalu':906 'event':332,1372 'ever':1549 'everyon':1350 'evid':1010,1044,1078,1118,1156,1531 'exact':1524,1526 'exampl':80 'execut':253 'exhaust':281,377,509,513,990,1003,1028 'experienc':263,744,982 'expert':1635 'face':165 'facilit':97,1334,1435 'factor':106,463 'fade':1520 'fail':506,838,998,1009,1387,1391 'failur':183 'fast':1521 'faster':645,694 'fear':150 'final':211,245 'fire':571,629,1279 'first':342,625 'fix':1086,1110,1308 'flush':1265,1270,1300,1327 'focus':124,1103,1471 'follow':110,1431,1505,1580 'follow-up':109,1430,1504,1579 'forgotten':1508 'frequent':429 'frequently-cal':428 'full':829,1298,1326 'full-flush':1325 'fulli':401 'function':1106 'game':1467 'gap':616,799,1220,1378 'goal':61 'googl':1586 'got':820 'grafana':577,939 'graph':936,944,1529 'guid':5,22,1335,1602 'handl':471,834,1164 'happen':409,446,1252 'herd':1307 'hide':146 'high':496,602 'histori':687 'hour':739,827 'identifi':101,378,654,1174,1282,1377 'immedi':1309,1518 'impact':304,695,697,704,722,741,1410 'implement':894,1227,1316 'implic':326 'improv':144,672,1201,1204,1407 'inadvert':422,1072 'incid':17,34,92,162,173,185,195,224,232,246,249,291,368,403,667,751,823,843,949,977,1236,1554 'includ':413,1197,1528 'incom':1031 'increas':300 'individu':143 'inform':147 'infrastructur':1116,1181,1198,1209 'initi':359,390,1271 'input':65,1644 'instead':439,1038,1050 'instruct':59 'insuffici':1185 'integr':474,856 'intervent':188 'invalid':1319,1333 'investig':360 'isn':1128 'issu':488,644,658,678,766,955 'item':112,218,847,1403,1427,1486,1537 'januari':256 'join':372 'keep':1437 'key':1423 'kill':1566 'lack':1141,1150 'lag':749 'latenc':1254,1277,1294 'learn':14,31,115,149,758,1358,1424,1470,1541,1567 'lesson':757,1322 'like':923 'limit':303,1606 'link':937,945 'load':554,746,836,917 'logic':1124 'long':1314 'long-term':1313 'loss':170,314,323,725 'lower':484,869 'lucki':821 'made':134,662,1084 'make':1560 'manag':549,885 'manual':684 'markdown':230,973,1237,1340 'mask':486 'match':1615 'max':1017 'meaning':1575 'meet':100,207,1339,1341,1363 'memori':1519 'method':1077 'metric':491,598,947,1011 'min':1248,1348,1369,1385,1405,1421 'minor':1235,1302 'minut':168,252,266,574,590,634,675,691,707,984,1344 'miss':176,793,1177,1206,1213,1261,1285,1652 'mistak':136,141 'mitig':1230 'mode':184 'name':1546 'near':175 'near-miss':174 'need':50,1434 'net':1133 'never':1497 'new':436,517,524,1006,1035 'next':1493 'norm':1364 'normal':1295 'notic':1114 'novel':182 'occur':196,824,844 'on-cal':350,583,649 'op':880,903 'open':83,434,516,523,1033,1346 'organiz':13,30,114,1540 'orphan':1535 'outag':166,267,985 'outcom':72 'output':1624 'outsid':56 'owner':850,1414,1428,1533 'p0':854,868 'p1':882,893 'p2':905,916 'pagerduti':1600 'partial':1317 'particip':1447 'pattern':222,420,540,550,886,1155,1189,1217,1457,1462,1557 'payment':260,344,556,980 'paymentrepository.java':453 'pend':1020 'perman':753 'permiss':1645 'person':738 'person-hour':737 'point':720 'pool':280,302,425,442,455,479,529,535,560,802,860,963,1043,1052,1063,1147 'post':91 'post-incid':90 'postmortem':2,10,19,27,47,95,99,157,191,201,206,229,231,959,1234,1239,1338,1588,1596,1601 'postmortem-writ':1 'postmortems.pagerduty.com':1604 'postmortems.pagerduty.com/)':1603 'pr':1079 'practic':69,965,1514 'pressur':775 'prevent':16,33,1212,1218,1399,1478 'primari':743,1176 'priorit':1408 'prioriti':848 'problem':978,1463 'procedur':778 'process':261 'product':339,809,922,1330 'production-lik':921 'proper':817 'provid':73 'proxim':448 'psycholog':154 'punish':142 'purchas':311 'qa':929 'quarter':220 'queri':419 'question':1376 'quick':189,653,1233,1238 'quiet':1446 'rate':346,363,396,569,935 're':1355 'recent':680 'recov':402 'recurr':18,35,1479 'redirect':1441 'refactor':1067 'refer':961 'reflect':808 'relat':948 'relev':67 'remind':1349 'remov':423 'replac':454 'replica':748 'report':769 'repositori':1069 'request':433,515,522,1007,1021,1032 'requir':64,82,186,1643 'resolv':293,404 'resourc':1585 'resources/implementation-playbook.md':84 'respons':586,646 'reus':441 'reveal':1556 'revenu':313,724 'review':93,221,244,465,792,1099,1102,1119,1193,1219,1222,1362,1367,1636 'roll':295 'rollback':383,387,393,659,688,777 'root':102,274,405,1172,1202,1296 'run':1336 'runbook':967 'safeti':155,1132,1646 'satisfact':716 'schedul':1429 'scope':58,1499,1617 'score':717 'secondari':1184 'secur':172,325 'servic':262,400,505,557,958,981,997 'sev1':159 'sev2':161,248,370 'sev3':1250 'sever':181,247,1249 'shallow':1474 'shame':1548 'share':148,1538 'show':580,1012,1047,1081 'shut':1468 'similar':953 'simultan':845 'skill':40,87,1609 'skill-postmortem-writing' 'skip':1552,1578 'small':1553 'smooth':780 'snapshot':941 'someon':133 'source-sickn33' 'speak':152 'specif':476,1523,1631 'spike':582,1255 'sre':1587 'sre.google':1591 'sre.google/sre-book/postmortem-culture/)':1590 'stage':481,804,919 'standard':228 'start':190,1517 'statement':979 'status':241 'step':75,1494 'stop':1637 'storm':1262,1286 'strategi':909 'structur':1342 'substitut':1627 'success':1649 'suit':1158 'summar':1422 'summari':254 'support':318,709,728,932 'swift':588 'system':138,145,551,756,1200,1444,1473,1512 'tangent':1454 'target':1332 'task':43,1502,1613 'team':771,830 'technic':740 'templat':225,226,968,1231 'term':1315 'tertiari':1191 'test':475,797,857,918,1143,1157,1161,1179,1207,1211,1633 'threshold':493,600,813,873 'thunder':1306 'ticket':214,319,710,853,1511 'time':329,331,733,735,786,1452,1483,1489,1525 'time-box':1451 'timelin':192,327,1266,1366,1380 'tip':1436 'titl':233,1241 'took':673,689 'tool':55 'topic-agent-skills' 'topic-agentic-skills' 'topic-ai-agent-skills' 'topic-ai-agents' 'topic-ai-coding' 'topic-ai-workflows' 'topic-antigravity' 'topic-antigravity-skills' 'topic-claude-code' 'topic-claude-code-skills' 'topic-codex-cli' 'topic-codex-skills' 'track':1440,1509 'traffic':485,810,924 'treat':1622 'trigger':158,282 'ts':1543 'tune':816 'type':1136,1205 'unabl':308 'unfamiliar':537,544 'uniqu':700 'unrealist':1495 'unrel':45 'unusu':187 'updat':1221,1274,1304 'use':38,85,1040,1331,1607 'user':714,957 'utc':330 'v2.3.3':298,389 'v2.3.4':289,336,411 'valid':71,1632 'verif':77 'verifi':1145,1582 'view':1450 'visual':1530 'walk':1370 'warm':1291,1312 'wasn':1093 'wast':1487 'week':215 'well':761 'went':760,788 'whys':500,971,975 'wide':1539 'wiki':1165 'within':572 'without':837 'work':567,595,648,779 'would':610,1397 'write':3,7,20,24,48,94 'wrong':789","prices":[{"id":"b9c22f3a-78fa-4100-9c5b-2a2197933c7f","listingId":"7117cff6-6a00-488f-8575-1c345ffdb5a0","amountUsd":"0","unit":"free","nativeCurrency":null,"nativeAmount":null,"chain":null,"payTo":null,"paymentMethod":"skill-free","isPrimary":true,"details":{"org":"sickn33","category":"antigravity-awesome-skills","install_from":"skills.sh"},"createdAt":"2026-04-18T21:42:37.205Z"}],"sources":[{"listingId":"7117cff6-6a00-488f-8575-1c345ffdb5a0","source":"github","sourceId":"sickn33/antigravity-awesome-skills/postmortem-writing","sourceUrl":"https://github.com/sickn33/antigravity-awesome-skills/tree/main/skills/postmortem-writing","isPrimary":false,"firstSeenAt":"2026-04-18T21:42:37.205Z","lastSeenAt":"2026-04-23T00:51:24.694Z"}],"details":{"listingId":"7117cff6-6a00-488f-8575-1c345ffdb5a0","quickStartSnippet":null,"exampleRequest":null,"exampleResponse":null,"schema":null,"openapiUrl":null,"agentsTxtUrl":null,"citations":[],"useCases":[],"bestFor":[],"notFor":[],"kindDetails":{"org":"sickn33","slug":"postmortem-writing","github":{"repo":"sickn33/antigravity-awesome-skills","stars":34616,"topics":["agent-skills","agentic-skills","ai-agent-skills","ai-agents","ai-coding","ai-workflows","antigravity","antigravity-skills","claude-code","claude-code-skills","codex-cli","codex-skills","cursor","cursor-skills","developer-tools","gemini-cli","gemini-skills","kiro","mcp","skill-library"],"license":"mit","html_url":"https://github.com/sickn33/antigravity-awesome-skills","pushed_at":"2026-04-22T06:40:00Z","description":"Installable GitHub library of 1,400+ agentic skills for Claude Code, Cursor, Codex CLI, Gemini CLI, Antigravity, and more. Includes installer CLI, bundles, workflows, and official/community skill collections.","skill_md_sha":"4d108ce4ab15439965983b774b3a52b14aeb700e","skill_md_path":"skills/postmortem-writing/SKILL.md","default_branch":"main","skill_tree_url":"https://github.com/sickn33/antigravity-awesome-skills/tree/main/skills/postmortem-writing"},"layout":"multi","source":"github","category":"antigravity-awesome-skills","frontmatter":{"name":"postmortem-writing","description":"Comprehensive guide to writing effective, blameless postmortems that drive organizational learning and prevent incident recurrence."},"skills_sh_url":"https://skills.sh/sickn33/antigravity-awesome-skills/postmortem-writing"},"updatedAt":"2026-04-23T00:51:24.694Z"}}