一键导入
retrospective
// Self-review your aggregate diff before shipping to catch dead weight, junk code, perf misses, pattern drift, AI slop, and scope creep. Use when the user asks to scrub, stranger-review, or clean up changes prior to opening a PR.
// Self-review your aggregate diff before shipping to catch dead weight, junk code, perf misses, pattern drift, AI slop, and scope creep. Use when the user asks to scrub, stranger-review, or clean up changes prior to opening a PR.
Shared atom for running quality checks, committing, and pushing. Background knowledge for workflow commands -- not invoked directly.
Full PR workflow -- ticket, branch, verify, lint, test, commit, push, open PR. Use when the user asks to open, ship, or land a PR; handles fresh work, mid-fix state, and changes already verified in the session.
Shared atom for analyzing a diff and writing a structured PR description. Background knowledge for workflow commands -- not invoked directly.
Root-cause-first debugging by tracing expected behavior to the first unintended side effect before changing contracts, parsing, or types. Use when debugging protocol errors, deserialization failures, null payloads, missing fields, restore or hydration issues, state-ownership bugs, unexpected requests, background mutations, or reviewing code where the visible failure may be downstream noise. Also loaded by /implement during bug-fix flows.
Control and navigate a logged-in macOS GUI session with upstream trycua/cua `cua-driver`. Use for macOS app automation, native dialogs, screenshots, UI inspection, clicking, typing, hotkeys, and any task where a Droid needs reliable computer-use control of macOS.
Reference for using linear-cli (aliased as `linear`) to manage Linear.app issues, projects, cycles, and sprints from the terminal. Use when the user mentions Linear tickets, issues, project management, or sprint planning.
| name | retrospective |
| description | Self-review your aggregate diff before shipping to catch dead weight, junk code, perf misses, pattern drift, AI slop, and scope creep. Use when the user asks to scrub, stranger-review, or clean up changes prior to opening a PR. |
| argument-hint | ["<base-ref>"] |
Take a beat. Reread what you just shipped as if a stranger wrote it. The bar is entropy reduction: leave the diff leaner, sharper, and more consistent than when you started. Every shortcut you leave here is someone else's burden later.
Load skills: single-canon (for legacy/fallback branches). If the session added or moved tests, also load consolidate-test-suites.
At every ## boundary: prior → completed, incoming → in_progress. Every finding you plan to fix becomes its own todo before you edit.
Resolve the comparison base. Default is the remote default branch; override with $ARGUMENTS.
DEFAULT=$(git remote show origin 2>/dev/null | awk '/HEAD branch/ {print $NF}')
BASE="${1:-origin/$DEFAULT}"
git log --oneline "$BASE"..HEAD
git diff --stat "$BASE"..HEAD
State the stated goal of the change (from the ticket, PR description, or recent conversation) in one sentence. Hold it next to the actual diff. Scope creep is the first thing to catch.
You cannot evaluate a helper's necessity, a name's clarity, or a pattern's fit from a 3-line window. For each modified file:
Walk each category. Record every finding as a triage candidate — severity comes next.
console.log / print / dbg!, TODOs without a ticket.try/catch that swallows errors and returns null / {} / a default. Let it throw.any / unknown / Object / interface{} leaks that mask a real type you know.awaits where the calls are independent → Promise.all.format run.slop-scan)For any JS/TS diff, run slop-scan delta "$BASE" HEAD --format json and fold the violations into your triage. Treat the structured rules (swallowed errors, placeholder comments, generic casts, pass-through wrappers, duplicate signatures) as hard finds; don't negotiate with them. If slop-scan isn't on PATH, note it and continue — but prefer to install it rather than skip (npm install -g slop-scan).
Group findings by severity. Keep the list short — longer lists signal you are reviewing style, not substance.
single-canon.Each finding: <path>:<line-range> + one-line reason. No essays.
Wait for user approval before editing. Respect drops and downgrades.
refactor(<scope>): retrospective cleanup.Hard rule: do not escalate into an unrelated refactor. If the cleanup starts sprouting new abstractions, touching files outside the original diff, or invalidating its own triage, stop and log the idea as a follow-up ticket. The retrospective is a scalpel, not an excavator.
If the first pass produced substantive changes, re-read the resulting diff with the same detachment — removing one layer often exposes the next. Stop when a pass yields nothing.