← ClaudeAtlas

retrospectivelisted

Backwards analysis of the last N closed cards — cluster by tag, surface recurring failure modes and generalization candidates, give a rough velocity feel. Read-only suggestion mode; may propose Skill(create-card) invocations for generalization candidates but never files them. AUTO-INVOKE when user says "what have we learned", "review recent work", "any patterns lately", "look back", "retrospective", "retro", "what's our velocity", or "what keeps going wrong".
zauberzeug/game-of-cards · ★ 2 · AI & Automation · score 68
Install: claude install-skill zauberzeug/game-of-cards
## Preflight If any `!` block below shows `goc: command not found`, `Permission for this action has been denied`, or `no such file or directory: .game-of-cards/deck/`, **stop and invoke `Skill(kickoff)` first**. Kickoff detects which setup step is missing (CLI not installed, Bash allowance not granted, project state not scaffolded) and walks the user through it. Re-invoke this skill only after kickoff completes. ## Context !`goc --status done --json | head -100` # Retrospective Scrum's **Sprint Retrospective** (Schwaber & Sutherland) applied to the full card history. This skill looks *backwards* at completed work — something no other skill does. `Skill(audit-deck)` hunts NEW defects in the codebase; this skill reads the last N `log.md` closure entries, clusters by tag, and surfaces patterns: which failure modes recur, which closures mention the same root cause, which clusters are candidates for a generalization card. **Read-only** — this skill inspects history and proposes actions. It never files cards, flips status, or mutates the deck. Any generalization card it identifies must be filed via a subsequent `Skill(create-card)`. N = $ARGUMENTS (default 10 if not provided). ## Step 1 — Gather recent closures ```bash # Read the last N done cards sorted by closed_at goc --status done --json 2>/dev/null | \ python3 -c " import json, sys cards = json.load(sys.stdin) closed = [c for c in cards if c.get('closed_at')] closed.sort(key=lambda c: c.get('closed_at', ''), reverse