Agent SkillsSethGammon/Citadel › postmortem

postmortem

GitHub

自动生成交接复盘报告,分析项目失败原因、安全系统拦截情况及模式。通过收集战役文件、遥测数据和Git历史,识别问题与漂移,输出结构化文档。

skills/postmortem/SKILL.md SethGammon/Citadel

Trigger Scenarios

用户询问发生了什么或什么出错了 完成调试会话后 收到postmortem或retro指令

Install

npx skills add SethGammon/Citadel --skill postmortem -g -y
More Options

Use without installing

npx skills use SethGammon/Citadel@postmortem

指定 Agent (Claude Code)

npx skills add SethGammon/Citadel --skill postmortem -a claude-code -g -y

安装 repo 全部 skill

npx skills add SethGammon/Citadel --all -g -y

预览 repo 内 skill

npx skills add SethGammon/Citadel --list

SKILL.md

Frontmatter
{
    "name": "postmortem",
    "effort": "medium",
    "license": "MIT",
    "description": "Auto-generates a structured postmortem from a completed campaign. Reads the campaign file, telemetry logs, and feature ledger. Produces a documented analysis of what broke, what the safety systems caught, and what patterns emerged. Can also be invoked manually for any incident.",
    "auto-trigger": false,
    "user-invocable": true,
    "trigger_keywords": [
        "postmortem",
        "retro",
        "what broke",
        "what happened",
        "debrief"
    ]
}

/postmortem — Campaign Postmortem Generator

Orientation

Use when: A campaign just completed and you want a structured analysis of what broke, what safety systems caught, and what patterns emerged. Also for ad-hoc incident analysis from recent git history.

Don't use when: You want to preserve session context for the next conversation (use /session-handoff), extract reusable patterns from findings into the knowledge base (use /learn), or score and improve quality iteratively (use /improve).

When to Use

  • After any Archon campaign completes (Archon should suggest it)
  • After a difficult debugging session
  • When the user says "what just happened" or "what broke"
  • When /do routes "postmortem", "retro", "what broke", "what happened"

Inputs

One of:

  1. A campaign file path (.planning/campaigns/*.md)
  2. A time range ("last session", "today", "this week")
  3. Nothing (reads the most recent completed campaign)

Protocol

Step 1: GATHER

Collect data from all available sources:

From the campaign file (if it exists):

  • Direction vs what was actually built (scope drift?)
  • Phase completion timeline (which phases needed rework?)
  • Decision log entries (what architectural choices were made?)
  • Review queue items (what needed human eyes?)
  • Circuit breaker activations (what hit the limit?)
  • Feature ledger (what shipped?)

From telemetry (.planning/telemetry/):

  • hook-timing.jsonl: which hooks fired most, any patterns
  • hook-errors.log: what was blocked, what failed, what had parse errors
  • Circuit breaker trips
  • Quality gate violations

From git history:

  • Commits during the campaign period
  • Files changed (which areas got the most churn?)
  • Any reverts (what was undone?)
  • Commit message patterns (fix: commits indicate bugs found)

From the session itself (if no campaign):

  • Recent tool calls and their outcomes
  • Files edited and errors encountered

Step 2: ANALYZE

Identify patterns across the data:

  1. What broke: List every failure, error, or unexpected outcome. For each: what happened, what caught it (hook/gate/human/nothing), what it cost (time, rework, tokens).

  2. What the safety systems caught: Circuit breaker activations, quality gate blocks, anti-pattern warnings, typecheck failures. This is the "invisible value" section — problems prevented.

  3. What drifted: Compare the campaign direction to what was built. Did scope expand? Did phases get skipped or reordered? Did the architecture change mid-build?

  4. What patterns emerged: Recurring error types, files that kept needing fixes, phases that took longest, common anti-patterns.

Step 3: PRODUCE

Write to .planning/postmortems/postmortem-{slug}-{date}.md:

# Postmortem: {Campaign Name or Session Description}

> Date: {ISO date}
> Campaign: {path to campaign file, or "ad-hoc session"}
> Duration: {time from first to last commit}
> Outcome: {completed | partial | parked}

## Summary
{2-3 sentences: what was attempted, what happened, what the result was}

## What Broke
{Numbered list. For each:}
### {N}. {Short description}
- **What happened:** {the failure}
- **Caught by:** {hook name / quality gate / human / nothing}
- **Cost:** {rework time, files affected, phases repeated}
- **Fix:** {what resolved it}
- **Infrastructure created:** {new hook rule, new anti-pattern, new end condition — or "none needed"}

## What Safety Systems Caught
{Things that WOULD have been problems without the hooks/gates}
| System | What It Caught | Times | Impact Prevented |
|--------|---------------|-------|-----------------|
| {hook/gate name} | {description} | {count} | {what would have happened} |

## Scope Analysis
- **Planned:** {what the campaign direction said}
- **Built:** {what the feature ledger shows}
- **Drift:** {none | minor | significant — with specifics}

## Patterns
{Recurring themes worth watching:}
- {pattern 1}
- {pattern 2}

## Recommendations
{Concrete next actions:}
1. {recommendation — e.g., "Add anti-pattern rule for X"}
2. {recommendation — e.g., "Phase Y needs tighter end conditions"}

## Numbers
| Metric | Value |
|--------|-------|
| Phases planned | {N} |
| Phases completed | {N} |
| Commits | {N} |
| Files changed | {N} |
| Circuit breaker trips | {N} |
| Quality gate blocks | {N} |
| Anti-pattern warnings | {N} |
| Rework cycles | {N} |

Step 4: HANDOFF

Output the HANDOFF block from the Exit Protocol, then suggest: Run /learn {campaign-slug} to extract patterns into the knowledge base.

What /postmortem Does NOT Do

  • Invent failures that didn't happen (real data only)
  • Blame the user or the model (document what happened, not whose fault)
  • Recommend changes to skill files (that's for the user to decide)
  • Run during a campaign (only after completion or on demand)

Quality Gates

  • Every "What Broke" entry has all 5 fields filled
  • Numbers section has real data (not estimates)
  • Recommendations are concrete actions (not "be more careful")
  • If no failures occurred, say so honestly (don't manufacture drama)

Fringe Cases

Campaign not found: If the specified campaign file doesn't exist, check .planning/campaigns/ for the most recently modified campaign. If no campaigns exist, run in ad-hoc mode using recent git history and session context.

No telemetry data: Proceed without telemetry. Mark the "What Safety Systems Caught" table as "No telemetry available" and the Numbers section fields as "N/A". Don't manufacture data.

Partial campaign (parked or in-progress): Generate the postmortem with Outcome: partial. Document what was completed and what was parked. Include a "Remaining Work" section listing incomplete phases.

If .planning/postmortems/ does not exist: Create it before writing. If .planning/ itself doesn't exist, output the postmortem inline and note: "Run /do setup to initialize .planning/ for future storage."

Exit Protocol

---HANDOFF---
- Postmortem: {name}
- Document: .planning/postmortems/postmortem-{slug}-{date}.md
- Failures documented: {count}
- Safety catches: {count}
- Recommendations: {count}
- Reversibility: green — one file written to .planning/postmortems/; git rm to undo
---

After displaying the HANDOFF block, suggest: Run /learn {campaign-slug} to extract patterns into the knowledge base.

Version History

  • 4bac8cd Current 2026-07-25 08:46

Same Skill Collection

skills/architect/SKILL.md
skills/archon/SKILL.md
skills/ascii-diagram/SKILL.md
skills/autopilot/SKILL.md
skills/cost/SKILL.md
skills/create-app/SKILL.md
skills/create-skill/SKILL.md
skills/daemon/SKILL.md
skills/dashboard/SKILL.md
skills/decision-map/SKILL.md
skills/deploy-steward/SKILL.md
skills/design/SKILL.md
skills/do/SKILL.md
skills/doc-gen/SKILL.md
skills/evolve/SKILL.md
skills/experiment/SKILL.md
skills/fleet/SKILL.md
skills/grill/SKILL.md
skills/houseclean/SKILL.md
skills/improve/SKILL.md
skills/infra-audit/SKILL.md
skills/learn/SKILL.md
skills/live-preview/SKILL.md
skills/loop/SKILL.md
skills/map/SKILL.md
skills/marshal/SKILL.md
skills/merge-review/SKILL.md
skills/organize/SKILL.md
skills/pr-watch/SKILL.md
skills/prd/SKILL.md
skills/qa/SKILL.md
skills/refactor/SKILL.md
skills/research-fleet/SKILL.md
skills/research/SKILL.md
skills/review/SKILL.md
skills/scaffold/SKILL.md
skills/schedule/SKILL.md
skills/session-handoff/SKILL.md
skills/setup/SKILL.md
skills/systematic-debugging/SKILL.md
skills/telemetry/SKILL.md
skills/test-gen/SKILL.md
skills/triage/SKILL.md
skills/unharness/SKILL.md
skills/verify/SKILL.md
skills/watch/SKILL.md
skills/wiki/SKILL.md
skills/workspace/SKILL.md
scripts/fixtures/ecosystem/anthropics-template-skill/SKILL.md

Metadata

Files
0
Version
d33c70c
Hash
94add22a
Indexed
2026-07-25 08:46

- 위키
Copyright © 2011-2026 iteam. Current version is 2.155.2. UTC+08:00, 2026-08-20 21:31
浙ICP备14020137号-1 $방문자$