with one click
pr-retro
PR Review Retrospective -- actionable analysis of a PR's review cycle
Install with Codex or Claude Copy this prompt, paste it into Codex, Claude, or another assistant, and let it review the skill page and install it for you.
Menu
PR Review Retrospective -- actionable analysis of a PR's review cycle
Install with Codex or Claude Copy this prompt, paste it into Codex, Claude, or another assistant, and let it review the skill page and install it for you.
Based on SOC occupation classification
Run a single-session AI optimization audit on the codebase
Run a single-session code review audit on the codebase
Run a single-session engineering productivity audit on the codebase
Run a comprehensive enhancement audit across the entire project - code, product, UX, content, workflows, infrastructure, external services, and meta-tooling.
Run a single-session performance audit on the codebase
Run a comprehensive multi-stage automation audit with parallel agents
| name | pr-retro |
| description | PR Review Retrospective -- actionable analysis of a PR's review cycle |
Document Version: 3.3 Last Updated: 2026-02-28 Status: ACTIVE
Analyze the review cycle for a completed PR and produce a comprehensive, actionable retrospective.
Invocation:
/pr-retro (no args) → Missing Retros Dashboard/pr-retro <PR#> → Single-PR retrospectiveWhen to use: When the user decides the review cycle is done, or wants to discover which PRs are missing retros.
/pr-retroIf no PR# argument is provided, run Dashboard Mode (below) instead of the single-PR retro (Steps 1-5).
If a PR# is provided, skip to Step 1.
When invoked as /pr-retro with no arguments, show a dashboard of merged PRs
that are missing retrospectives.
gh pr list --state merged --limit 100 --json number,title,mergedAt,author
Grep docs/AI_REVIEW_LEARNINGS_LOG.md and docs/archive/REVIEWS_*.md for retro
headers using a relaxed pattern:
/^###\s+PR\s+#(\d+)\s+Retrospective/
Collect all PR numbers that already have retros.
A PR needs a retro only if it had review activity. Skip PRs that:
docs/AI_REVIEW_LEARNINGS_LOG.md,
docs/archive/REVIEWS_*.md, or docs/reviews/reviews.jsonl[bot], or title starts with
chore(deps), build(deps), or Bump )Diff merged PRs against existing retros and non-candidates → missing retros.
Show a markdown table sorted by merge date (newest first):
| PR# | Title | Merged | Author |
|-----|-------|--------|--------|
| #NNN | ... | YYYY-MM-DD | ... |
If no PRs are missing retros, say: "All reviewed PRs have retros. Nice work!"
End with: Run /pr-retro <PR#> to create a retro for any of these.
Dashboard mode ends here -- do NOT continue to Steps 1-5.
Search docs/AI_REVIEW_LEARNINGS_LOG.md and docs/archive/REVIEWS_*.md. Read
EVERY entry in full -- item-level detail is required for churn analysis.
For each round: number, date, source, total items (by severity), fixed/deferred/ rejected counts, pattern categories, files modified, new issues from prior fixes.
git log --oneline --grep="PR #${PR_NUM}" --grep="R[0-9]" --all-match
grep "pr-review" docs/technical-debt/MASTER_DEBT.jsonl | grep "${PR_NUM}"
Read last 3-5 retros. For each action item: was it implemented? If not, how many avoidable rounds did the gap cause?
Every section is MANDATORY. Scale depth to match review cycle complexity.
Required sections:
Step 4.1 is the source of truth. Step 4.2 is the legacy view maintained during transition. Both must be written.
cd scripts/reviews && npx tsc && node dist/write-retro-record.js --data '{"pr":PR_NUM,"date":"YYYY-MM-DD","schema_version":1,"completeness":"full","completeness_missing":[],"origin":{"type":"pr-retro","pr":PR_NUM,"tool":"write-retro-record.ts"},"session":null,"top_wins":["win1"],"top_misses":["miss1"],"process_changes":["change1"],"score":8.0,"metrics":{"total_findings":N,"fix_rate":0.8,"pattern_recurrence":N}}'
Append the complete retrospective to docs/AI_REVIEW_LEARNINGS_LOG.md. Then
display the full retro to the user.
Run npm run reviews:sync -- --apply to sync to JSONL.
node dist/write-invocation.js --data '{"skill":"pr-retro","type":"skill","duration_ms":null,"success":true,"error":null,"context":{"pr":PR_NUM,"trigger":"user-invoked"}}'
After producing the retro, sync any rejected items to reviewer configs:
If any review items were rejected 2+ times with the same rationale (in this PR or across PRs):
This prevents reviewers from re-raising the same rejected finding.
Every action item not immediately implemented MUST get a DEBT entry via
/add-debt with severity S2 (or S1 if cross-PR systemic), category
engineering-productivity, source review:pr-retro-<PR#>.
Same action item in 2+ retros without implementation: escalate to S1, bold warning "BLOCKING -- recommended N times, never implemented", present as blocking issue.
grep "pr-retro" docs/technical-debt/MASTER_DEBT.jsonl
Create retroactive DEBT entries for untracked action items.
create() function has CC >10, extract helpers
IMMEDIATELY using the visitChild/visitAstChild pattern. Do not wait for
SonarCloud to flag it.Before saving, verify ALL mandatory sections present:
npm run reviews:sync -- --apply| Finding Type | Action | Target |
|---|---|---|
| New automation candidate | Add pattern rule | Pattern compliance checker |
| New fix template needed | Add template | FIX_TEMPLATES.md |
| Pre-push check missing | Add to Step 0.5 | pr-review SKILL.md |
| Recurring noise | Add suppression | Reviewer config files |
| Systemic issue | Create DEBT | TDMS via /add-debt |
/session-end -- verify TDMS entries for action items/session-begin -- check open retro DEBT items/pr-review Step 0.5 -- check for recommended pre-push checks| Version | Date | Description |
|---|---|---|
| 3.3 | 2026-02-28 | Add JSONL dual-write in Step 4, invocation tracking |
| 3.2 | 2026-02-27 | Add Step 5.0: reviewer config sync for rejected items |
| 3.1 | 2026-02-27 | Add retro baseline filter to dashboard D3 |
| 3.0 | 2026-02-26 | Upgrade Pattern 8 to BLOCKING. Add Patterns 12-13 |
| 2.9 | 2026-02-26 | Add dashboard mode: /pr-retro (no args) shows missing retros |
| 2.8 | 2026-02-25 | Add Pattern 11 (cross-platform path normalization) |
| 2.7 | 2026-02-24 | Trim to <500 lines: archive patterns 1-5 |
| 2.6 | 2026-02-24 | Add Pattern 10 (stale reviewer comments) |
| 2.5 | 2026-02-22 | Add Pattern 9 (dual-file JSONL sync) |
| 2.4 | 2026-02-19 | Add Pattern 8 (algorithm hardening) |
| 2.3 | 2026-02-18 | Add Patterns 6-7 |