Post Mortem
thananon/9arm-skills
Write the canonical engineering record of a fixed bug — root cause, mechanism, fix, validation, and how it slipped through.
Analyze escaped defects and test suite health through blameless postmortems.
$ npx skills add petrkindlmann/qa-skills --skill quality-postmortem -a claude-codeProject install by default; add -g for ~/.claude/skills/.
$ gh skill install petrkindlmann/qa-skills quality-postmortem --agent claude-codeProject scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).
$ git clone --depth 1 https://github.com/petrkindlmann/qa-skills.git skills-src && mkdir -p .claude/skills && cp -r skills-src/skills/quality-postmortem .claude/skills/quality-postmortem && rm -rf skills-srcUse ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.
Claude Code skills documentation · loads skills from .claude/skills/
Install the "quality-postmortem" agent skill from https://github.com/petrkindlmann/qa-skills/tree/main/skills/quality-postmortem into .claude/skills/quality-postmortem/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "quality-postmortem", then confirm the skill loads.Claude Code copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$skill-installer install https://github.com/petrkindlmann/qa-skills/tree/main/skills/quality-postmortemType this inside Codex. $skill-installer <name> installs a curated skill from openai/skills. The installer writes to $CODEX_HOME/skills (default ~/.codex/skills). Restart Codex if the skill does not show up.
$ npx skills add petrkindlmann/qa-skills --skill quality-postmortem -a codexProject install goes to .agents/skills/; add -g for ~/.codex/skills/.
$ gh skill install petrkindlmann/qa-skills quality-postmortem --agent codexProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/petrkindlmann/qa-skills.git skills-src && mkdir -p .agents/skills && cp -r skills-src/skills/quality-postmortem .agents/skills/quality-postmortem && rm -rf skills-srcUse ~/.agents/skills/ instead of .agents/skills for a personal install.
Codex skills documentation · loads skills from .agents/skills/
Install the "quality-postmortem" agent skill from https://github.com/petrkindlmann/qa-skills/tree/main/skills/quality-postmortem into .agents/skills/quality-postmortem/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "quality-postmortem", then confirm the skill loads.Codex copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add petrkindlmann/qa-skills --skill quality-postmortem -a cursorProject install goes to .agents/skills/; add -g for ~/.cursor/skills/.
$ gh skill install petrkindlmann/qa-skills quality-postmortem --agent cursorProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/petrkindlmann/qa-skills.git skills-src && mkdir -p .cursor/skills && cp -r skills-src/skills/quality-postmortem .cursor/skills/quality-postmortem && rm -rf skills-srcUse ~/.cursor/skills/ instead of .cursor/skills for a personal install.
Cursor skills documentation · loads skills from .cursor/skills/, .agents/skills/, .claude/skills/, .codex/skills/
Install the "quality-postmortem" agent skill from https://github.com/petrkindlmann/qa-skills/tree/main/skills/quality-postmortem into .cursor/skills/quality-postmortem/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "quality-postmortem", then confirm the skill loads.Cursor copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gemini skills install https://github.com/petrkindlmann/qa-skills.git --path skills/quality-postmortem--scope user (default) or --scope workspace; --path is the subfolder of the repo that holds the skill; --consent skips the security confirmation prompt.
$ npx skills add petrkindlmann/qa-skills --skill quality-postmortem -a gemini-cliProject install goes to .agents/skills/; add -g for ~/.gemini/skills/.
$ gh skill install petrkindlmann/qa-skills quality-postmortem --agent gemini-cliProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/petrkindlmann/qa-skills.git skills-src && mkdir -p .gemini/skills && cp -r skills-src/skills/quality-postmortem .gemini/skills/quality-postmortem && rm -rf skills-srcUse ~/.gemini/skills/ instead of .gemini/skills for a personal install, then run /skills reload.
Gemini CLI skills documentation · loads skills from .gemini/skills/, .agents/skills/
Install the "quality-postmortem" agent skill from https://github.com/petrkindlmann/qa-skills/tree/main/skills/quality-postmortem into .gemini/skills/quality-postmortem/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "quality-postmortem", then confirm the skill loads.Gemini CLI copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gh skill install petrkindlmann/qa-skills quality-postmortemInstalls for Copilot at project scope by default; add --scope user for a personal install. Preview a skill first with gh skill preview. Needs GitHub CLI 2.90.0 or later (public preview).
$ npx skills add petrkindlmann/qa-skills --skill quality-postmortem -a github-copilotProject install goes to .agents/skills/; add -g for ~/.copilot/skills/.
$ git clone --depth 1 https://github.com/petrkindlmann/qa-skills.git skills-src && mkdir -p .github/skills && cp -r skills-src/skills/quality-postmortem .github/skills/quality-postmortem && rm -rf skills-srcUse ~/.copilot/skills/ instead of .github/skills for a personal install. Commit .github/skills so cloud agent and code review can use it.
GitHub Copilot skills documentation · loads skills from .github/skills/, .claude/skills/, .agents/skills/
Install the "quality-postmortem" agent skill from https://github.com/petrkindlmann/qa-skills/tree/main/skills/quality-postmortem into .github/skills/quality-postmortem/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "quality-postmortem", then confirm the skill loads.GitHub Copilot copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add petrkindlmann/qa-skills --skill quality-postmortem -a opencodeOpenCode documents no install command of its own. Project install goes to .agents/skills/; add -g for ~/.config/opencode/skills/.
$ gh skill install petrkindlmann/qa-skills quality-postmortem --agent opencodeProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/petrkindlmann/qa-skills.git skills-src && mkdir -p .opencode/skills && cp -r skills-src/skills/quality-postmortem .opencode/skills/quality-postmortem && rm -rf skills-srcUse ~/.config/opencode/skills/ instead of .opencode/skills for a personal install.
OpenCode skills documentation · loads skills from .opencode/skills/, .claude/skills/, .agents/skills/
Install the "quality-postmortem" agent skill from https://github.com/petrkindlmann/qa-skills/tree/main/skills/quality-postmortem into .opencode/skills/quality-postmortem/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "quality-postmortem", then confirm the skill loads.OpenCode copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
quality-postmortemAnalyze escaped defects and test suite health through blameless postmortems.
Quality Postmortem is an agent skill from petrkindlmann/qa-skills. Analyze escaped defects and test suite health through blameless postmortems. Covers bug pattern analysis, test suite health reviews, 5 Whys root cause analysis, process improvement cycles, and postmortem/retro meeting templates with action item tracking. Use when: "QA retro," "escaped bugs," "postmortem," "quality incident," "defect analysis," "improvement cycle." Not for: live release go/no-go decisions — use release-readiness. Not for ongoing metric dashboards — use qa-metrics. Not for reviewing existing test…
Its SKILL.md is about 5.9k tokens, which your agent loads only when the skill is triggered. The skill folder holds 2 other files, including reference files (for example `references/templates.md`).
It sits in DevOps & Cloud, covering Runbooks and postmortems, Root cause analysis and Feature launches and release readiness. The repository describes itself as: 50 QA and test-automation skills for Claude Code, Codex, Cursor, and any Agent Skills Standard runtime. The licence is MIT.
6 steps, taken from the step headings in SKILL.md.
Read from SKILL.md and the folder at commit b3bb61b. It shows what the files ask for, not the result of running them.
Pre-approves nothing: there is no allowed-tools line, so your agent's usual permission prompts apply.
From allowed-tools in the SKILL.md frontmatter.
Shell commands in SKILL.md call:
gitghjqFrom the folder's file list and the shell code blocks in SKILL.md.
No URLs in SKILL.md. Its commands use git and gh, which can reach the network depending on how they are called.
From URLs in SKILL.md, links to its own repository left out.
Names no API keys, tokens, secrets or passwords.
From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.
Quality Postmortem loads about 5.9k tokens when it runs, and up to ~7.6k if it reads all its reference files. Until then it costs about 156 tokens; SKILL.md has 2,548 words of instructions outside code blocks.
Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.
The automated check found no risky patterns in SKILL.md.
Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); files beside SKILL.md are not scanned.
The full file from petrkindlmann/qa-skills at commit b3bb61b, republished under its MIT licence (© petrkindlmann). 2,548 words, ~5,879 tokens.
.claude/skills/quality-postmortem/SKILL.md (or your agent's skills folder). This skill also uses 1 other file; get the full folder from GitHub.<objective>
Analyze escaped defects, test suite health, and quality process gaps through structured, blameless postmortems. Every postmortem produces 1-3 concrete, tracked action items -- not vague commitments to "be more careful." The goal is systemic improvement, not individual blame.
</objective>
| You have... | Go to | Template |
|---|---|---|
| One escaped bug to dissect | Bug Pattern Analysis | Escaped Bug Analysis (references/templates.md) |
| 10+ escaped bugs, looking for themes | Aggregating Patterns Over Time | — |
| A proactive quarterly check (no incident) | Test Suite Health Review | — |
| A P0/P1 production incident | Postmortem Template for Quality Incidents | references/templates.md |
| A recurring sprint/monthly review | Retro Meeting Template | references/templates.md |
Check .agents/qa-project-context.md in the project root first — it carries quality goals, risk areas, and test suite details that anchor any postmortem. Use it and skip anything already answered there. Then clarify:
Do you have a regular retro cadence? Per-sprint, monthly, or only after incidents? Regular cadence catches slow-burn problems. Incident-only cadence misses patterns until they explode.
What triggered this postmortem? A production incident? A pattern of escaped bugs? A feeling that the test suite is not catching enough? Test suite degradation? The trigger determines the focus.
What data is available? Bug tracker with severity and discovery phase? CI history with pass rates? Flaky test reports? Coverage trends? Without data, postmortems devolve into opinion sessions.
What happened with previous postmortem action items? Were they completed? Tracked? Forgotten? If past action items are abandoned, the team has learned that postmortems do not matter. Fix the follow-through before running another postmortem.
Who should participate? Engineers who worked on the affected area. QA who tested (or did not test) it. Product owner if the impact was user-facing. Engineering manager if systemic changes are needed. Keep the group to 4-8 people.
What are the current test suite health concerns? Rising flakiness? Slow execution? Coverage gaps in critical areas? Stale quarantine? Health reviews are proactive postmortems -- they prevent incidents instead of reacting to them.
Blameless does not mean "no one is accountable." It means the analysis focuses on systems, processes, and tools rather than individual performance. "Why did the system allow this defect to escape?" is a blameless question. "Why did the developer not write a test?" is a blame question that stops the analysis too early. The developer did not write a test because: the test framework was hard to use, the PR checklist did not require it, there was no pairing to transfer knowledge, or time pressure made it feel optional. Those are systemic issues with systemic fixes.
A single escaped bug is an anecdote. Three escaped bugs in the same feature area over two months is a pattern. Postmortems should aggregate incidents to find recurring themes: same root cause, same team, same test gap, same phase of the pipeline. Patterns are actionable. Individual incidents are just fire-fighting.
An action item is concrete when it has: a specific deliverable ("add integration tests for the coupon API"), an owner ("assigned to Alex"), a deadline ("by end of sprint 14"), and a verification method ("PR merged, tests passing in CI"). "Improve testing" is not an action item. "Write 5 integration tests for the payment service edge cases by March 30" is.
Action items that are not tracked are not completed. Use the team's existing work tracker (Jira, Linear, GitHub Issues). Tag them (postmortem-action or equivalent). Review completion status at the start of the next postmortem. If items are consistently abandoned, either the items are too large (break them down) or they are not prioritized (make them sprint commitments).
After implementing action items, measure whether the problem recurred. If the postmortem identified a gap in payment testing and the action was to add integration tests, track: did another payment bug escape? Without measurement, postmortems are rituals, not tools.
Track two metrics together:
A high closure rate with rising escape rate means the team is doing the work but doing the wrong work. A low closure rate means the postmortems are theater. Modern incident response platforms (incident.io, Rootly, FireHydrant) track action-item follow-through natively — owner, due date, completion status — so derive both numbers from what's already there before building a dashboard.
If your team uses AI SRE tooling (Rootly AI SRE, incident.io's AI SRE / auto-drafted post-mortems), let it draft the incident timeline and propose candidate root causes from logs and traces. Then a named blameless RCA owner — distinct from the incident commander who managed the response — runs the 5 Whys, picks the real root cause, and writes the action items. AI is good at correlation across noisy data; it is bad at deciding what mattered. Treat AI output as a starting deck, not the conclusion. For cheap timeline drafting, Sonnet 4.6 is sufficient; reserve heavier models for ambiguous causation.
When a bug reaches production, classify it along three dimensions to identify prevention opportunities. The single-bug worksheet (Escaped Bug Analysis) lives in references/templates.md.
| Category | Description | Example |
|---|---|---|
| Logic error | Business logic incorrect or incomplete | Discount not applied for edge case currency |
| Integration failure | Two components do not communicate correctly | API returns different format than frontend expects |
| Data issue | Unexpected data shape, null values, encoding | User with emoji in name breaks CSV export |
| Race condition | Timing-dependent behavior | Two concurrent checkouts oversell last item |
| Configuration | Environment-specific settings wrong | Feature flag enabled in staging, disabled in prod |
| Regression | Previously working behavior broken | Refactor removed null check, old bug returns |
| Missing requirement | Behavior not specified, gap in product spec | No error handling for expired OAuth tokens |
| Performance | Functional but too slow under load | Search timeout with 100K+ records |
| Level | What it catches | If it escaped this level |
|---|---|---|
| Unit | Logic errors, edge cases, boundary conditions | Tests exist but missing edge case? Or no tests at all? |
| Integration | API contracts, data flow, service interactions | Integration tests exist? Do they cover error responses? |
| E2E | User journey failures, UI state management | Is this critical path covered? Was the specific scenario tested? |
| Manual/Exploratory | Visual issues, usability problems, unusual workflows | Was exploratory testing performed? Was the area in scope? |
| Monitoring | Performance degradation, error rate spikes | Are alerts configured? Are thresholds correct? |
| Opportunity | Action | Example |
|---|---|---|
| Add test | Write a test at the appropriate level | Add unit test for currency rounding edge case |
| Improve existing test | Existing test was too narrow | Extend checkout E2E to include coupon + international currency |
| Add quality gate | CI check would have caught it | Add schema validation for API responses in CI |
| Improve requirements | Spec was ambiguous or incomplete | Add acceptance criteria for error states to story template |
| Add monitoring | Detect sooner even if not prevented | Add alert for error rate > 1% on payment endpoint |
| Training/Process | Knowledge gap or process gap | Run a session on defensive coding for nullable fields |
After analyzing 10+ escaped bugs, look for patterns:
Escaped Bug Summary: [Q1 2026]
═══════════════════════════════
Total escaped bugs: 14
By root cause:
Logic error: 5 (36%) ← unit tests needed
Integration failure: 4 (29%) ← API contract tests needed
Data issue: 3 (21%) ← input validation gaps
Configuration: 2 (14%) ← env parity issues
By area:
Checkout: 6 (43%) ← highest risk, needs investment
User management: 4 (29%)
Reporting: 2 (14%)
Settings: 2 (14%)
By should-catch level:
Unit: 5 (36%) ← developers not testing edge cases
Integration: 4 (29%) ← missing integration test layer
E2E: 3 (21%)
Monitoring: 2 (14%)
Top action themes:
1. Add integration tests for checkout API (covers 4 of 14 bugs)
2. Mandate unit tests for all calculation/validation logic (covers 5 of 14)
3. Add currency and encoding edge cases to test data fixtures (covers 3 of 14)This aggregation reveals where investment has the highest return: fixing one systemic issue (integration tests for checkout) would have prevented 29% of all escaped bugs. Patterns that recur across multiple quarters belong in the test-strategy doc, not just the next sprint's action items — promote them so the strategy reflects where defects actually escape.
A proactive postmortem for the test suite itself. Conduct quarterly or when symptoms appear.
Flaky Test Trend Review
═══════════════════════
Current flaky rate: _____ % (target: <2%)
Trend (last 3 months):
Month 1: _____ %
Month 2: _____ %
Month 3: _____ %
Direction: [ ] Improving [ ] Stable [ ] Worsening
Top 5 flakiest tests (by failure count):
1. _____________________ — _____ failures — root cause: _____
2. _____________________ — _____ failures — root cause: _____
3. _____________________ — _____ failures — root cause: _____
4. _____________________ — _____ failures — root cause: _____
5. _____________________ — _____ failures — root cause: _____
Quarantine:
Tests in quarantine: _____ count
Oldest quarantine: _____ days (target: <14)
Quarantine resolved this month: _____ countTrack current full suite duration, 3-month trend, and the 5 slowest tests. If duration is increasing, check for: tests that can move to nightly, sequential stages that can parallelize, slow test data setup (use API instead of UI), large test files that need splitting for better shard distribution.
Track overall coverage (lines/branches), critical paths with insufficient coverage (payments, auth, data export should be 90%+), recently changed code without test updates (cross-reference git log --since="30 days ago" with the coverage report), and features shipped without E2E coverage.
Audit all skipped/disabled tests by age and reason. Tests skipped < 1 week are likely in progress. Tests skipped 1-4 weeks need a ticket and timeline. Tests skipped 1-3 months are overdue -- fix or delete. Tests skipped > 3 months should be deleted -- they will never be fixed. For each: fix and unskip, delete (obsolete), or move to quarantine with a ticket link.
Dedicate a fixed portion of each sprint (10-15% of capacity) to quality improvement, drawn from postmortem action items and health review findings.
Structure:
1. IDENTIFY — Top 3 pain points from latest retro/postmortem
2. ROOT CAUSE — 5 Whys analysis for the #1 pain point
3. PROPOSE — Solution with effort estimate (S/M/L)
4. IMPLEMENT — One improvement per sprint (start small)
5. MEASURE — Did the metric improve? By how much?
6. ITERATE — If not improved, dig deeper. If improved, tackle #2.The 5 Whys technique peels back surface symptoms to reveal systemic causes. The key discipline: keep asking "why" until you reach a process, system, or structural cause -- not an individual's action.
Example: Payment bug escaped to production
Problem: Users were charged twice for a single purchase.
Why 1: The payment API was called twice on form submit.
Why 2: The submit button was not disabled after the first click.
Why 3: The frontend developer did not implement button disabling.
Why 4: The acceptance criteria did not mention double-submit prevention.
Why 5: The story refinement process does not include edge case review
for payment-related stories.
Root cause: Process gap — payment stories are not reviewed for transaction
safety edge cases before development begins.
Action: Add a "Payment Safety Checklist" to the story template for any
story touching payment flows. Checklist includes: idempotency,
double-submit prevention, partial failure handling, timeout behavior.
Owner: [Product Manager] — Due: [Next sprint]5 Whys guidelines:
For each root cause, propose 1-3 solutions at different effort levels. Example for a recurring flaky-test problem:
Root Cause: E2E tests fail intermittently on async-loaded content
Solution A (Small — 1 day):
Replace fixed waitForTimeout calls with explicit wait-for-condition
assertions in the 5 flakiest specs.
+ Quick to implement, kills the most common flake source
− Manual, one spec at a time; new flakes can creep back in
Solution B (Medium — 1 sprint):
Solution A across the suite + add a flaky-test detector to CI that
reruns failures once and tags any test that passes on retry.
+ Automated detection, surfaces flakes before they erode trust
− Requires CI config change; reruns add pipeline time
Solution C (Large — 2 sprints):
Solution B + auto-quarantine tagged tests and route them to an
owner-assigned backlog with a 14-day fix-or-delete SLA.
+ Self-healing trust in the green build; flakes can't block releases silently
− Needs quarantine infrastructure and ownership process buy-in
Recommendation: Start with A immediately, implement B this sprint,
plan C for next quarter as strategic work.Two heavy, copy-paste formats live in references/templates.md:
Both open by reviewing the previous retro's action items — that closed loop is the accountability mechanism; without it, items vanish silently.
Focusing on who made the mistake rather than what system allowed the mistake to reach production. Blame creates fear. Fear creates hiding. Hiding creates bigger incidents. When the question is "who wrote this bug?" people learn to avoid visibility. When the question is "what process gap allowed this?" people learn to improve the process.
A cathartic discussion that produces understanding but no change. If the meeting ends without specific, assigned action items, the same problem will recur. Worse, the team learns that postmortems are therapy sessions, not improvement tools.
Generating action items that go into a backlog and are never prioritized. This is worse than no action items because it creates the illusion of improvement. If postmortem actions are not completed within 2 sprints, escalate. Action items die for predictable reasons — audit your closure rate against this checklist before blaming "we forgot":
Counter-pattern: open every retro with a 5-minute "previous action items" review. Mark each as Done / In Progress (with current ETA) / Dropped (with reason).
Waiting for a production fire to conduct a quality review. Proactive health reviews (test suite health, coverage trends, flaky test inventory) prevent incidents. Conduct proactive reviews monthly. Reactive incident postmortems supplement the proactive cadence — they do not replace it.
"The developer did not write a test" is not a root cause. It is a symptom. Why did they not write a test? Was the framework hard to use? Was there no time? Was there no requirement? Was there no pairing or review? Stopping at the individual level prevents systemic improvement.
"Improve test coverage" and "be more careful with deployments" are not action items. They cannot be tracked, measured, or verified. Compare: "Add integration tests for payment webhook handling, covering success, failure, and timeout scenarios. Owner: Alex. Due: Sprint 14. Verification: PR merged with 3 new integration tests passing in CI."
Running quality retrospectives based on feelings and opinions rather than data. "It feels like we have more bugs lately" might be true or might be recency bias. Check the data: is the escaped bug count actually increasing? Where are the bugs concentrated? Without data, the team solves the loudest problem, not the most important one.
The artifact is the written postmortem plus its tracked, closed-loop action items. Prove it landed — smallest check first.
# Every action item became a real, owned, dated ticket — not a doc bullet.
# (gh example; swap for `jira issue list` / Linear API as appropriate)
gh issue list --label postmortem-action --json number,title,assignees,milestone \
| jq '[.[] | select(.assignees == [] or .milestone == null)]'
# Expect: [] (empty). Any item missing an owner or due milestone is not done.
# The escaped defect's timeline is reconstructable from evidence, not memory.
git log --since="<introduced-date>" --until="<detected-date>" --oneline -- <affected/path>
# Expect: the introducing commit is in this range and named in the postmortem.
# The fix/regression test the action item promised actually exists and passes.
git log --grep="<INCIDENT-ID>" --oneline # the fix commit references the incident
<your test runner> <new regression test path> # exits 0Then confirm by reading: the 5 Whys ends on a process/tool/structure cause (not "developer didn't write a test"), and both the action-item-closure rate and the escaped-defect rate are recorded — not just one.
references/)© petrkindlmann, MIT. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file
SKILL.md and 1 other file (references) in skills/quality-postmortem of petrkindlmann/qa-skills.
Open the folder on GitHubat commit b3bb61b
Quality Postmortem next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.
| Skill | Stars | Used in | Tokens | Auto-check | Licence | Repo updated |
|---|---|---|---|---|---|---|
| Quality Postmortem this skillpetrkindlmann/qa-skills | 163 | — | ~5.9k | Automated safety check: Pass | MIT | |
| Post Mortemthananon/9arm-skills | 3.2k | — | ~3.4k | Automated safety check: Pass | None | |
| Post-Incident DebriefVeryGoodOpenSource/vgv-wingspan | 108 | — | ~1.9k | Automated safety check: Pass | MIT | |
| Postmortemalirezarezvani/claude-skills | 28k | 2 repos | ~2k | Automated safety check: Pass | MIT | |
| Launch Day Conductoraaron-he-zhu/aaron-marketing-skills | 2.9k | — | ~3.4k | Automated safety check: Pass | Apache-2.0 | |
| Postmortemdralgorhythm/claude-agentic-framework | 124 | — | ~708 | Automated safety check: Pass | None |
thananon/9arm-skills
Write the canonical engineering record of a fixed bug — root cause, mechanism, fix, validation, and how it slipped through.
VeryGoodOpenSource/vgv-wingspan
Produces a blameless post-incident debrief with timeline, root cause and follow-up actions after an outage, failed release or significant bug, while details are fresh.
alirezarezvani/claude-skills
/em:postmortem — Honest analysis of what went wrong. An agent skill from alirezarezvani/claude-skills.
aaron-he-zhu/aaron-marketing-skills
A skill your agent uses when the user asks to "run my launch day", "build a launch day runbook / war room", or "decide CONTINUE or ROLLBACK after the push"; produces a pre-conditions gate check…
dralgorhythm/claude-agentic-framework
Runs this framework's blameless postmortem workflow — reconstruct the incident timeline from evidence, drive five-whys to a mechanism-level root cause, and produce owner-and-due-date action items…
mukul975/Anthropic-Cybersecurity-Skills
Facilitate structured post-incident reviews to identify root causes, document what worked and failed, and produce actionable recommendations to improve future incident response.
petrkindlmann/qa-skills
Test for WCAG 2.2 AA compliance with axe-core + Playwright, keyboard navigation audits, screen reader testing, ARIA pattern validation, and legal compliance mapping (ADA, EAA, Section 508).
petrkindlmann/qa-skills
Goal-driven E2E testing where a browser agent (Playwright MCP / computer-use) reads a natural-language goal and explores the app via the accessibility tree to assert outcomes — no pre-written script.
petrkindlmann/qa-skills
Use AI to write NEW test code from specs, PRDs, user stories, code diffs, bug reports, or OpenAPI specs.
petrkindlmann/qa-skills
Test REST and GraphQL APIs with Playwright APIRequestContext, Supertest, or standalone HTTP clients.
petrkindlmann/qa-skills
Design CI/CD pipelines that run test suites. An agent skill from petrkindlmann/qa-skills.
petrkindlmann/qa-skills
Test for regulatory compliance: GDPR/CMP consent verification, Google Consent Mode v2, Global Privacy Control (GPC), CCPA/US state opt-out, EU AI Act Article 50 transparency, Better Ads Standards…
Categories
Analyze escaped defects and test suite health through blameless postmortems. Quality Postmortem is an agent skill from petrkindlmann/qa-skills. Analyze escaped defects and test suite health through blameless postmortems.
Quality Postmortem fits situations like: quality incident; defect analysis; improvement cycle. Not for: live release go/no-go decisions — use release-readiness.
Run `npx skills add petrkindlmann/qa-skills --skill quality-postmortem -a claude-code`. Or copy the skill folder (skills/quality-postmortem in petrkindlmann/qa-skills) into .claude/skills/quality-postmortem in your project. Claude Code loads it when a task matches its description.
Run `npx skills add petrkindlmann/qa-skills --skill quality-postmortem -a codex`. Or copy the skill folder (skills/quality-postmortem in petrkindlmann/qa-skills) into .agents/skills/quality-postmortem in your project. Codex loads it when a task matches its description.
Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add petrkindlmann/qa-skills --skill quality-postmortem -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/quality-postmortem, .gemini/skills/quality-postmortem, .github/skills/quality-postmortem and .opencode/skills/quality-postmortem in your project.
Going by SKILL.md and its folder, Quality Postmortem needs the command-line tools its instructions call (git, gh and jq).
SKILL.md contains no URLs. Its commands use git and gh, which can reach the network depending on how they are called. This is read from the text; nothing was executed.
Our automated static check of SKILL.md found no risky patterns, such as piping downloads into a shell, reading credential files or hidden Unicode. It is not a guarantee. Review the folder before installing.
Quality Postmortem is published under the MIT licence (declared in SKILL.md). It allows redistribution, so the full SKILL.md is shown on this page.
About 5.9k tokens (SKILL.md is roughly 24k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full. Its references folder adds about 1.7k tokens, read only when the agent opens those files.
Skills that share tags, products or a category with Quality Postmortem: Post Mortem (thananon/9arm-skills, 3.2k stars), Post-Incident Debrief (VeryGoodOpenSource/vgv-wingspan, 108 stars), Postmortem (alirezarezvani/claude-skills, 28k stars) and Launch Day Conductor (aaron-he-zhu/aaron-marketing-skills, 2.9k stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.
petrkindlmann (a GitHub user) maintains it in petrkindlmann/qa-skills, which has 163 GitHub stars. The repository holds 45 skills in this directory. The repository was last updated on June 10, 2026.
Source: petrkindlmann/qa-skills on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.