/cs:post-mortem <decision> — Honest retrospective on an executed decision, scored against original assumptions and dissent. Closes the strategic sprint loop. Use when a decision hits its 90-day review checkpoint or its kill criteria trigger — e.g. scoring last quarter's pricing change against its pre-committed success metrics.
19392f7Command: /cs:post-mortem <decision-path>
Closes the strategic sprint loop. Scores a decision against the success and kill criteria written before the decision (not retro-fitted) and revisits the preserved dissent. This is the rigor that compounds over time.
/cs:office-hours → /cs:brief → /cs:boardroom → /cs:decide → /cs:execute → /cs:post-mortem
↑ you are here
/cs:decide)/cs:decide)/cs:execute)Saved to ~/.claude/postmortems/YYYY-MM-DD-<slug>.md:
# Post-Mortem: <decision title>
**Decision date:** YYYY-MM-DD
**Post-mortem date:** YYYY-MM-DD
**Status:** WIN / PARTIAL / LOSS / MIXED
## Outcome Scoring (against pre-committed criteria)
| Success Criterion | Threshold | Actual | Met? |
|---|---|---|---|
| <metric 1> | <threshold> | <actual> | ✅ / ❌ |
| <metric 2> | <threshold> | <actual> | ✅ / ❌ |
| Kill Criterion | Threshold | Actual | Triggered? |
|---|---|---|---|
| <metric> | <threshold> | <actual> | ✅ / ❌ |
**Overall:** WIN / PARTIAL / LOSS / MIXED
## What We Got Right
- <factor 1>
- <factor 2>
## What We Got Wrong
- <factor 1>
- <factor 2>
## Preserved Dissent — Revisited
[Original dissent from the boardroom memo, scored:]
- **<dissenter>:** <original concern>
- **Did it materialize?** YES / NO / PARTIAL
- **Cost if YES:** <quantified impact>
- **Lesson:** <one sentence>
## Assumption Audit
[Original brief's assumptions, scored:]
- **Assumption 1:** <text>
- **Held?** YES / NO / PARTIAL
- **Why:** <explanation>
## Process Lessons
- **Phase 2 isolation worked?** YES / NO
- **Devil's advocate concerns played out?** YES / NO / PARTIAL
- **Cadence was right?** YES / TOO LOOSE / TOO TIGHT
## Forward Actions
- [ ] <change to operating system or routing logic>
- [ ] <new decision to make based on this learning>
- [ ] <update company-context.md>
## Status
- WIN → archive, log lesson
- LOSS → schedule follow-up boardroom: `/cs:brief` for the next call
The biggest temptation in post-mortems is retroactive justification: "we always knew X, that's why we did Y." Pre-committed criteria, signed at /cs:decide time, eliminate that move. The numbers either matched or they didn't.
The dissent column from /cs:boardroom is the single most useful piece of organizational memory. Most of the time, the dissenter was directionally right. Revisiting and scoring it builds calibration over years.
/cs:brief — if the post-mortem surfaces a new decision/cs:freeze — if the post-mortem reveals a process gap that needs cooldown enforcementcs-onboarddecision-loggercs-chief-of-staff/em:postmortem — adversarial single-decision post-mortemVersion: 1.0.0
Copy a source-pinned command for your client. You run it yourself.
Destination: .claude/skills/post-mortem · pinned to the source commit
# Run from your project root
git clone https://github.com/alirezarezvani/claude-skills.git .skillboard-tmp
git -C .skillboard-tmp checkout 19392f7a08264ed00486a251f5b2098321771f94
mkdir -p ".claude/skills"
cp -r ".skillboard-tmp/.gemini/skills/post-mortem" ".claude/skills/"
rm -rf .skillboard-tmpReview the source before running. This copies files into your project; it is not a one-click install and does not verify runtime safety.
sudo apt update && sudo apt install -y gitnpm install -g @anthropic-ai/claude-code# Run from your project root
git clone https://github.com/alirezarezvani/claude-skills.git .skillboard-tmp
git -C .skillboard-tmp checkout 19392f7a08264ed00486a251f5b2098321771f94
mkdir -p ".claude/skills"
cp -r ".skillboard-tmp/.gemini/skills/post-mortem" ".claude/skills/"
rm -rf .skillboard-tmpDestination: .claude/skills/post-mortem
Scanner static-checks@0.1.0 · commit 19392f7a0826. Static checks cannot prove runtime safety – review the source and the exact diff before installing. How checks work.
References parent-directory traversal, which can escape a target directory.
Evidence: ../· fingerprint fa08499e14d0113b