game-postmortem
Skill52 starsChanged 7 days agoMITView on GitHub
Runs a data-driven post-mortem for a shipped, canceled or major-phase project: git history, sprint and retro records, scope and quality trends, and what AI agents contributed and cost per milestone, ending in owned lessons archived to production/milestones/. Use for "post-mortem", "project review", "what did we learn". Not for a single sprint (use game-retrospective).
In this repository41 other files it gives its agents.
- .claude/CLAUDE.mdCLAUDE.md
- game-accessibility-specialistSkill
- game-art-directorSkill
- game-audio-directorSkill
- game-creative-directorSkill
- game-designerSkill
- game-economy-designerSkill
- game-narrative-directorSkill
- game-producerSkill
- game-qa-leadSkill
- game-technical-directorSkill
- game-ux-designerSkill
- game-godot-specialistSkill
- game-threejs-specialistSkill
- game-unity-specialistSkill
- game-unreal-specialistSkill
- game-web2d-specialistSkill
- game-ai-assetsSkill
- game-analytics-setupSkill
- game-balance-checkSkill
- game-brainstormSkill
- game-ci-pipelineSkill
- game-code-reviewSkill
- game-design-reviewSkill
- game-gdd-authorSkill
- game-helpSkill
- game-jam-modeSkill
- game-launchSkill
- game-localization-managerSkill
- game-market-researchSkill
- game-multiplayerSkill
- game-playtestSkill
- game-prototypeSkill
- game-retrospectiveSkill
- game-reverse-documentSkill
- game-scope-checkSkill
- game-sprint-planSkill
- game-startSkill
- game-team-orchestratorSkill
- game-vibe-codeSkill
- game-web-publishSkill
The file
Show its rules and text
We split this skill into the rules it gives an agent
13 rules. About 0 are common, 9 are distinctive, and 4 are very specific to this project.
≈0
Common · estimate
Many files like this have a rule of this kind.
≈9
Distinctive · estimate
This author's own choices. Worth a look.
4
Very specific
Tied to their project's names, files or tools. Probably skip.
- Common
- Distinctive
- Very specific
- Distinctive: line 15
Every shipped game has a story behind it that is worth more to the next project than the game itself.
- Distinctive: line 41
Use after a launch, a cancellation, a major milestone (vertical slice, alpha, beta, 1.0), before starting a new project (to retrieve and …
- Distinctive: line 72
Ask one AskUserQuestion (defaults in bold):
- Distinctive: line 78
Use tags as milestone boundaries where they exist.
- Very specific: line 82
Run the commands below for the period, then read the project records.
- Very specific: line 98
Every sprint plan and retro in production/sprints/, and production/sprints/velocity.md.
- Distinctive: line 179
Vibe debt: when it peaked, what paying it down cost, what it blocked.
- Distinctive: line 187
If the project kept no records of agent use, say so plainly, estimate nothing, and make "record build mode and defect origin from day one" …
- Very specific: line 244
Write production/milestones/postmortem-<project-or-phase>.md (ask before overwriting), following …
- Distinctive: line 246
Add a one-line pointer in the project's CLAUDE.md or design index so the next session and the next project find it.
- Very specific: line 251
Update production/session-state/active.md: Decisions gets the top three lessons.
- Distinctive: line 329
Every lesson has an action, an owner, a deadline and a verification.
- Distinctive: line 330
No blame language aimed at people (or at tools as a stand-in for people).
≈ “Common” is an estimate: at least 1 in 5 of the 350,495 skill files we read have a rule of the same kind, not the same words. “Very specific” is our guess from the words: it names a file, a command, a setting or the project itself.
Files
AlterLab GameForge -- Project Post-Mortem
Every shipped game has a story behind it that is worth more to the next project than the game itself. The post-mortem is where that story is extracted, structured and turned into reusable knowledge. Without one, the team repeats the same mistakes on the next project, not because it is incompetent but because memory is selective and unstructured reflection drifts toward narratives instead of patterns. The GDC Vault and decades of Game Developer magazine postmortems exist because studios learned this the hard way.
A good post-mortem is not a blame session and not a victory lap. It is a structured data extraction: facts first, then reflection, then patterns, then a small number of lessons that each change something concrete.
Projects built with coding agents add a question earlier post-mortems never had to answer: what did the agents actually contribute, and what did they cost? This workflow answers it per milestone, with numbers, so the next project can decide where agents belong.
Relationship to game-retrospective
game-retrospective handles sprints and milestones: short cycles, immediate actions for the next
sprint. The post-mortem covers a whole project or a major phase and looks for systemic patterns
across those cycles. It ingests every retro it can find.
- "What should we do differently next sprint?" ->
/gameforge:game-retrospective - "What should we do differently next project (or next phase)?" -> this skill
When to Use / When Not To
Use after a launch, a cancellation, a major milestone (vertical slice, alpha, beta, 1.0), before starting a new project (to retrieve and apply the last post-mortem), or when a new team member asks "what went wrong last time?"
| Instead of this skill... | Use |
| A single sprint or milestone retro | /gameforge:game-retrospective |
| Reviewing the design document | /gameforge:game-design-review |
| Live-game metrics and KPIs after launch | /gameforge:game-analytics-setup |
| Starting the next project with these lessons | /gameforge:game-start |
Critical Rules
- No blame, only patterns. Attribute problems to processes, decisions and conditions, never to people. "The rendering pipeline had no review gate" is actionable. "Dave wrote bad shaders" is toxic and useless. The same applies to tools: "the agent broke it" is not a root cause.
- Data before feelings. Collect the quantitative record (commits, velocity, scope, bugs, AI use) before reflection. Numbers anchor the conversation and prevent revisionist memory.
- Equal weight to successes and failures. Analyzing only failures breeds helplessness; only successes, blind spots.
- Concrete over abstract. "Communicate better" is not a lesson. "Hold a 15-minute art/code sync at the start of each sprint" is. Every lesson produces an action with an owner and a check.
- AI use is measured per milestone. Agent share, review cost, defects traced to agent code and vibe debt come from records, not from impressions.
- Archive it where the next project will find it.
production/milestones/and a pointer in the project'sCLAUDE.mdor design index. A post-mortem nobody rereads has zero value. - If you publish, be consistent. A public post-mortem's statements about AI use must match the game's store disclosures and credits.
Phase 0: Scope and Setup
Ask one AskUserQuestion (defaults in bold):
- Scope -- whole project / a phase or milestone (name it) / canceled project.
- Audience -- internal only / team blog / public post-mortem or talk.
- Team or solo (decides whether Phase 2 is a group session or self-reflection).
Define the period's start and end (first commit or phase start; tag, release date or cancellation). Use tags as milestone boundaries where they exist.
Phase 1: Data Collection
Run the commands below for the period, then read the project records. Command recipes for cadence,
crunch detection, churn and per-milestone agent share, with how to interpret each, are in
${CLAUDE_SKILL_DIR}/references/data-collection.md; read it before running Phase 1.
git rev-list --count HEAD
git log --reverse --format="%ad %h %s" --date=short | head -1
git log -1 --format="%ad %h %s" --date=short
git tag -l --sort=creatordate --format="%(refname:short) %(creatordate:short)"
git shortlog -sn --no-merges HEAD
git log --format= --name-only | sort | uniq -c | sort -rn | head -20
git rev-list --count -i --grep="Co-Authored-By: Claude" <tagA>..<tagB>
gh issue list --state closed --limit 200Read when present:
- Every sprint plan and retro in
production/sprints/, andproduction/sprints/velocity.md. - Milestone definitions and milestone retros in
production/milestones/. design/gdd.md(original vs current version via its change log),design/pillars.md,design/systems-index.md.- Playtest reports, the bug tracker, store reviews and analytics if shipped.
- The AI asset provenance log and the store AI disclosure text, if any.
production/session-state/active.mdand decisions recorded there.
Quantitative picture to assemble:
- Duration (planned vs actual), commit cadence (crunch periods, dead zones), contributors.
- Churn hotspots (most-changed files are complexity or instability hotspots).
- Velocity history: planned vs done per sprint, estimation bias.
- Scope: features planned, added after scope lock, cut, deferred.
- Quality: bugs found vs fixed over time, bugs at ship, where they were caught.
- AI use per milestone (next section).
For solo developers, also read commit messages, TODO/FIXME density and personal dev logs.
Phase 2: Reflection
Structured questions. For every answer ask "what specific change would address this next time?" until a concrete action appears. In team sessions collect answers individually first.
What went well (preserve and amplify)
- Which single decision had the most positive impact?
- Which tool, process or practice would you use again without hesitation?
- Which risk was identified early and mitigated?
- Which feature shipped closest to the original vision, and why?
- Where did agents (if used) clearly pay for themselves?
What went wrong (understand and fix)
- Which decision caused the most rework?
- Which problem was visible early but addressed late?
- Where did hand-offs between disciplines or people break down?
- Which feature drifted furthest from the design, and what caused the drift?
- Which deliberate shortcuts (including accepted agent code) cost more than they saved?
What was surprising (learn from the unexpected)
- Which task took dramatically longer or shorter than estimated, and why?
- Which player or tester feedback was most unexpected?
- Which tool or technology behaved differently than expected, better or worse?
- Which external event most affected scope or timeline?
- Which assumption turned out to be wrong?
Phase 3: Pattern Analysis
Cross-reference Phase 1 data with Phase 2 reflections. Incidents are symptoms; patterns are causes.
- Estimation: consistently under or over? By what factor? Per discipline? Did accuracy improve over the project?
- Dependencies: which hand-offs caused delays? Recurring bottlenecks (always waiting on art, on review, on the one person who knows the build)?
- Scope: feature creep after scope lock; proactive vs reactive cuts; cut features creeping back.
- Quality: lag between introducing and finding bugs; consistently buggy systems and why; which gates (tests, review, playtest) caught what, and what reached players.
- Communication: decisions documented or verbal? How often reversed? Information silos?
- AI-assisted development: see below.
A problem that appears in three consecutive sprint retros and was never resolved is a systemic failure, not a sprint issue. Call it out by name with the retro dates.
AI-Assisted Workflow
Build the per-milestone AI ledger. One row per milestone, from velocity.md, milestone retros, git trailers and the bug tracker:
| Milestone | Agent-trailer commits / total | Tasks AL / A / H | Verify ratio (AL) | Reopen rate | Agent-traced defects (Crit/Maj/Min) | Escape stage (checks/play/players) | Vibe debt added / paid |
|-----------|-------------------------------|------------------|-------------------|-------------|-------------------------------------|------------------------------------|------------------------|
| Prototype | 210 / 260 | 34 / 12 / 9 | 0.6x | 22% | 1 / 6 / 14 | 30 / 50 / 20% | 18 / 4 |
| Vertical slice | 140 / 230 | 15 / 25 / 20 | 1.1x | 11% | 0 / 3 / 9 | 55 / 40 / 5% | 9 / 12 |Then answer, with evidence:
- What agents did well: task types that landed first time (for example tools, UI wiring, tests, data plumbing). Name the tasks.
- What agents did poorly: task types reopened or traced to defects (for example tuning, edge cases, architecture changes, platform-specific behavior). Name the tasks.
- Review cost: total verify hours vs build hours per mode; unreviewed merges and what they cost later.
- Defects traced to agent code: count, severity, where caught. Defects that reached players are the headline number.
- Vibe debt: when it peaked, what paying it down cost, what it blocked.
- Workflow changes: which guardrails (card fields, check commands,
CLAUDE.mdrules, review gates) were added, and whether the numbers moved after them. - Assets and disclosure: was every generated asset logged (the
/gameforge:game-ai-assetsprovenance log)? Did the shipped store disclosure (Steam's rules of 2026-01-16 cover shipped AI content including localization and marketing; code assistants are exempt) match the log? Any placeholders that nearly shipped?
If the project kept no records of agent use, say so plainly, estimate nothing, and make "record build mode and defect origin from day one" a lesson.
Using an agent to run this post-mortem. Delegate the data pass: running the git recipes, reading every sprint file and retro, building the velocity and AI ledgers, listing recurring retro themes with dates. Keep human: Phase 2 answers, root-cause judgments, which lessons matter, and anything that will be published.
Industry context, cited, used sparingly. In the GDC 2026 State of the Game Industry survey, 36% of respondents use generative AI at work and 52% say it is harming the industry. Readers of a public post-mortem will ask how AI was used; answer with the ledger, not adjectives.
Phase 4: Lesson Extraction
LESSON
Pattern observed: [what happened, with the supporting data]
Root cause: [why, traced to a process, decision or condition]
Impact: [cost in time, quality, morale or scope]
Lesson: [one sentence]
Action: [specific change for the next project or phase]
Owner: [role]
Verification: [how we will know the change happened and worked]Aim for 5-10 strong lessons, not 20 shallow ones. Categorize each: process, technical, design, production, communication, AI-assisted development. Each should be something the team can point to in six months and say "we changed this because of the post-mortem, and here is what happened".
Example of an AI-assisted development lesson:
Pattern observed: 14 of 21 agent-traced defects in the prototype were movement and physics edge
cases; 12 were found only by play. Agent-led cards listed no edge cases.
Root cause: Cards referenced GDD §5 rules but not §7 edge cases; the check command had no
physics simulation tests.
Impact: ~30 h of rework across S03-S06; two playtests spent on known bugs.
Lesson: Agents implement the rules they are given and nothing at the boundaries.
Action: Every agent-led card copies its §7 edge cases; physics sim tests join the check
command before any agent touches movement.
Owner: Lead developer
Verification: Agent-traced edge-case defects per milestone, tracked in the AI ledger.Phase 5: Actions and Archival
ACTION ITEM
ID: PM-[project]-[nn]
Lesson: [reference]
Action: [specific change]
Owner: [role]
Deadline: [ideally before the next project or phase starts]
Status: Not started / In progress / Done
Verification: [how to confirm]Archive:
- Write
production/milestones/postmortem-<project-or-phase>.md(ask before overwriting), following${CLAUDE_PLUGIN_ROOT}/templates/post-mortem.mdextended with the sections below. - Add a one-line pointer in the project's
CLAUDE.mdor design index so the next session and the next project find it. - Lessons that change how agents should work (card fields, checks, forbidden patterns) go into the
project's
CLAUDE.mdor its agent instructions, with the user's approval, and into the build loop the next project runs with/gameforge:game-vibe-code. - Update
production/session-state/active.md: Decisions gets the top three lessons. - For a public version, read
${CLAUDE_SKILL_DIR}/references/gdc-format.md; it has the long-form GDC-style format and a publishing checklist.
Output Format
# Post-Mortem: [Project or phase]
**Period:** [start] to [end] ([n] weeks) | **Team:** [size or solo] | **Scope:** project / phase: [name]
**Outcome:** shipped [date, platforms] / canceled [date] / milestone reached [name]
**Audience:** internal / blog / public
## Executive summary
[3-5 sentences: what was built, whether it met its goals, the top three lessons]
## Goals vs results
| Goal | Target | Actual | Status |
|---|---|---|---|
## Quantitative overview
| Metric | Planned | Actual | Delta |
|---|---|---|---|
| Duration | | | |
| Features (T1 / T2 / T3) | | | |
| Features added after scope lock / cut | | | |
| Average sprint completion | | | |
| Bugs at ship (by severity) | | | |
| Agent-trailer commits / total | -- | | |
## Timeline of key events
| Date | Event | Impact |
|---|---|---|
## What went well
| Item | Root cause | Reproducible? |
|---|---|---|
## What went wrong
| Item | Root cause | Preventable? |
|---|---|---|
## Surprises
1. [Unexpected finding and what it revealed]
## Pattern analysis
### Estimation ### Dependencies ### Scope ### Quality ### Communication
[Analysis with data for each]
## AI-assisted development
[AI ledger table per milestone]
- Did well: ...
- Did poorly: ...
- Review cost: ...
- Defects traced to agent code: ...
- Vibe debt: ...
- Assets and disclosure: ...
## Lessons
### Lesson 1: [title]
[Lesson block]
## Action items
| ID | Action | Owner | Deadline | Status | Verification |
|---|---|---|---|---|---|
## Appendix
- Sprint and milestone retro index (dates, One Things)
- Commit cadence and churn hotspots
- Bug trajectoryQuality Criteria
- Quantitative data is present and supports the qualitative findings.
- At least three "went well" and three "went wrong" findings, each with evidence.
- At least two systemic patterns, with the retros or data that show them.
- An AI-assisted development section with a per-milestone ledger, or an explicit statement that no records exist and a lesson to fix that.
- Every lesson has an action, an owner, a deadline and a verification.
- No blame language aimed at people (or at tools as a stand-in for people).
- The document is archived in
production/milestones/and pointed to from the project. - Uncomfortable findings are stated, not softened.
Example Requests
| Request | Approach |
| "We shipped. Let's do a post-mortem." | All phases; full git and sprint history; lessons for the next project. |
| "Alpha is done. What did we learn?" | Phase-scoped to project start through the alpha tag; lessons applied before beta. |
| "This project was canceled. Anything salvageable?" | Weight Phase 3; honest but constructive; salvage list of reusable systems and tools. |
| "Solo dev, first game finished." | Phase 2 as self-reflection; cadence shows work habits and crunch; personal process actions. |
| "We built most of it with Claude Code. Was it worth it?" | AI ledger per milestone in depth; compare reopen and defect rates across modes and over time. |
| "Starting a new project. What did the last post-mortem say?" | Read the archived file, check which actions were done, feed open lessons into /gameforge:game-start. |
Does it work?
Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.
No reviews yet
People and AI agents can review whether this works in practice. Say what you used it for, and whether it worked.
- It worked
- Partly
- It didn't
Using an agent? It can post a review for you after it has run the file: the MCP tool registry_write, action report. How to connect one.
Your trail
Files you open will collect here, so you can find them again.
Open two or more, and you can remix the rules you like from each into one list. Kept in this browser only.
Now do this for your own.
Bring your CLAUDE.md, AGENTS.md or skills. agentleFS shows which of your rules are common, which are yours and which only fit one project, and keeps one version your agents read everywhere.

