Install any skill in seconds. Free to start, no credit card required.
Get Started Free →Run a structured after-action review (postmortem, retrospective) on a launch, incident, or completed project to capture timeline, root cause analysis, contributing factors, and actionable lessons. Use this skill whenever the user wants to run a postmortem, retrospective, AAR, or after-action review on any past event. Triggers on after-action report, AAR, postmortem, retrospective, retro, post-incident review, what went well what didn't, lessons learned, blameless postmortem, root cause analysis,
.claude/skills/rampstackco-after-action-report/SKILL.md| Test case | Without → With | Effect | Δ tokens | Δ turns |
|---|---|---|---|---|
| case-01 | ✗→✓ | ▲ Improved | 70% | 0% |
| case-03 | ✗→✓ | ▲ Improved | 49% | 0% |
| case-05 | ✗→✓ | ▲ Improved | 65% | 0% |
| case-11 | ✗→✓ | ▲ Improved | 90% | 0% |
| case-13 | ✗→✓ | ▲ Improved | 107% | 0% |
Run a structured retrospective on a launch, incident, or completed project. Produce actionable lessons, not just a document.
This skill is for after-the-fact analysis. For active incident response, use incident-response. For planning launches, use launch-runbook.
incident-response)launch-runbook)The most important principle: blameless. Without it, retrospectives produce hidden information and theatrical lessons rather than real ones.
A complete AAR covers six sections.
A 2 to 3 paragraph overview. Captures:
This is what executives read. Anyone who reads only this section should leave with the most important information.
A reconstructed timeline of events.
For incidents:
For launches:
For projects:
The timeline is the source of truth. Disagreements about what happened get resolved here.
What caused this, in plain language.
Use one or both of:
Five whys. Start with the surface symptom. Ask "why?" Repeat 5 times (or until you reach a true root). Each "why" should yield a substantive answer, not a tautology.
Example:
The fifth why often reveals the system fix. In this case: improve the review process.
Causal chain. Multiple contributing factors that combined.
No single fix addresses the incident. Multiple gaps need attention.
Factors that didn't cause the event but made it worse, or removed safety nets that would have caught it.
A "would have been caught earlier if..." factor.
Real lessons require capturing successes, not just failures.
This is not consolation. It's calibration. Things that worked here should be reinforced and replicated.
Specific, owned, dated.
| Action | Owner | Due | Type | |---|---|---|---| | Add alert on connection pool saturation | name] | date] | Monitoring | | Add error handling checklist to PR template | name] | date] | Process | | Audit other background jobs for similar issue | name] | date] | Code |
Action item criteria:
Action items that don't close in their committed timeframe should re-surface in the next AAR. Patterns of unclosed actions point to deeper organizational issues.
Within 1 to 2 weeks of the event. Long enough that emotions cooled and facts gathered. Short enough that memories are fresh.
For incidents: pre-decided in the response procedure. For launches: schedule on the runbook. For projects: schedule at project closeout.
Before the meeting:
Typical agenda (60 to 90 minutes):
A facilitator runs the meeting. Often the IC for an incident, or a project lead for a project. The facilitator is not the scribe.
Within a few days of the meeting. The full AAR includes all 6 sections.
Internal: post in a known location. Make searchable. Reference in onboarding.
For high-severity incidents: external summary may be appropriate (status page, customer email, public blog).
Every action item should be tracked to closure. The next AAR re-surfaces unclosed ones.
A markdown document at aar-[date]-[event-name].md.
Structure:
markdown# AAR: [Event name] **Date of event:** [YYYY-MM-DD] **AAR date:** [YYYY-MM-DD] **Severity / scope:** [SEV-1 / Major launch / Project closeout] **Facilitator:** [Name] **Participants:** [Names] ## Summary [2 to 3 paragraphs] ## Impact - Users affected: [number, segment] - Duration: [time] - Revenue / business impact: [if applicable] ## Timeline [Timestamped events] ## Root cause analysis [Five whys or causal chain] ## Contributing factors [List] ## What went well [List] ## Action items | Action | Owner | Due | Type | Status | |---|---|---|---|---| | | | | | | ## Lessons [Reflections that don't fit elsewhere. Often the most quotable section.]
This skill's output depends on data, measurements, or tool results it cannot generate on its own. When a required input, tool, or data source is unavailable or unverifiable, the sanctioned output is the deliverable with the gap stated: what was needed, what was actually obtained or verified, and which parts of the output are affected. Fabricating, estimating, or interpolating a required number to complete the deliverable is never sanctioned. A stated gap is a complete answer.
references/aar-template.md - Fillable AAR template covering incidents, launches, and projects.| Case | Status | Duration (ms) | Turns | Tokens | Tool calls | ||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Without | With | Δ | Without | With | Δ | Without | With | Δ | Without | With | Δ | ||
case-01 | fail→pass | 15,678 | 14,818 | -5% | 1 | 1 | 0% | 2,990 | 5,090 | +70% | 0 | 0 | — |
case-02 | fail→fail | 17,060 | 15,950 | -7% | 1 | 1 | 0% | 3,074 | 4,914 | +60% | 0 | 0 | — |
case-03 | fail→pass | 17,242 | 14,788 | -14% | 1 | 1 | 0% | 3,241 | 4,839 | +49% | 0 | 0 | — |
case-04 | pass→pass | 9,816 | 5,459 | -44% | 1 | 1 | 0% | 1,662 | 3,075 | +85% | 0 | 0 | — |
case-05 | fail→pass | 18,137 | 16,953 | -7% | 1 | 1 | 0% | 3,036 | 5,019 | +65% | 0 | 0 | — |
case-06 | pass→pass | 7,996 | 3,844 | -52% | 1 | 1 | 0% | 1,238 | 2,788 | +125% | 0 | 0 | — |
case-07 | pass→pass | 14,976 | 15,018 | +0% | 1 | 1 | 0% | 2,416 | 4,623 | +91% | 0 | 0 | — |
case-08 | pass→pass | 11,846 | 8,886 | -25% | 1 | 1 | 0% | 1,844 | 3,508 | +90% | 0 | 0 | — |
case-09 | pass→pass | 14,883 | 13,872 | -7% | 1 | 1 | 0% | 2,227 | 4,255 | +91% | 0 | 0 | — |
case-10 | pass→pass | 17,073 | 15,943 | -7% | 1 | 1 | 0% | 2,851 | 4,697 | +65% | 0 | 0 | — |
case-11 | fail→pass | 10,498 | 6,896 | -34% | 1 | 1 | 0% | 1,732 | 3,286 | +90% | 0 | 0 | — |
case-12 | pass→pass | 10,084 | 5,439 | -46% | 1 | 1 | 0% | 1,559 | 3,059 | +96% | 0 | 0 | — |
case-13 | fail→pass | 11,309 | 8,109 | -28% | 1 | 1 | 0% | 1,699 | 3,514 | +107% | 0 | 0 | — |
case-14 | fail→pass | 6,363 | 1,885 | -70% | 1 | 1 | 0% | 1,209 | 2,530 | +109% | 0 | 0 | — |
case-15 | pass→pass | 10,959 | 4,135 | -62% | 1 | 1 | 0% | 1,701 | 2,825 | +66% | 0 | 0 | — |
case-16 | pass→pass | 11,967 | 11,132 | -7% | 1 | 1 | 0% | 1,817 | 3,830 | +111% | 0 | 0 | — |
case-17 | pass→pass | 15,315 | 13,105 | -14% | 1 | 1 | 0% | 2,289 | 4,348 | +90% | 0 | 0 | — |
case-18 | pass→pass | 14,338 | 9,331 | -35% | 1 | 1 | 0% | 2,059 | 3,353 | +63% | 0 | 0 | — |
case-19 | pass→pass | 12,346 | 5,445 | -56% | 1 | 1 | 0% | 2,010 | 3,009 | +50% | 0 | 0 | — |
case-20 | fail→pass | 5,319 | 2,455 | -54% | 1 | 1 | 0% | 859 | 2,578 | +200% | 0 | 0 | — |
case-21 | pass→pass | 12,217 | 8,126 | -33% | 1 | 1 | 0% | 1,790 | 3,395 | +90% | 0 | 0 | — |
case-22 | pass→pass | 9,737 | 8,563 | -12% | 1 | 1 | 0% | 1,449 | 3,415 | +136% | 0 | 0 | — |
DecimalAI ran this skill against gemini-3.6-flash twice over the same eval suite — once with the skill loaded and once without — and compared the two runs case by case. 22 cases were attempted. The headline lift of +32 percentage points is the difference between those two pass rates over the 22 comparable cases.
Without the skill loaded, the model failed this case. With it loaded, the same prompt on the same model passed. This is one improved case from the latest verified run; every case, including any that regressed, is in the table above.
Other measured skills in the registry, with their headline benchmark lift.