pr-retro

Learn from PR outcomes. Analyzes accept/reject patterns and updates contribution lessons. Triggers: "pr retro", "learn from PR", "PR outcome", "why was PR rejected", "analyze PR feedback".

Safety Notice

This listing is imported from skills.sh public index metadata. Review upstream SKILL.md and repository scripts before running.

Copy this and send it to your AI assistant to learn

Install skill "pr-retro" with this command: npx skills add boshu2/agentops/boshu2-agentops-pr-retro

PR Retro Skill

Learn from PR outcomes by analyzing accept/reject patterns.

Overview

After a PR is merged or rejected, analyze what worked and what didn't to improve future contributions.

Output: .agents/learnings/YYYY-MM-DD-pr-{repo}-{outcome}.md

When to Use:

  • After a PR is merged (capture success patterns)
  • After a PR is rejected (understand why)
  • After receiving significant review feedback
  • Periodically to review contribution patterns

Workflow

1.  PR Discovery    -> Find the PR to analyze
2.  Outcome Analysis -> Merged/rejected/changes requested
3.  Feedback Extraction -> What did reviewers say?
4.  Pattern Identification -> What worked/didn't
5.  Lesson Extraction -> Reusable learnings
6.  Output -> Write retro document

Phase 1: PR Discovery

# If PR number provided
gh pr view <number> --json state,reviews,comments,mergedAt,closedAt

# Find recent PRs by you
gh pr list --state all --author @me --limit 10

# Find PRs to a specific repo
gh pr list -R <owner/repo> --state all --author @me --limit 10

Phase 2: Outcome Analysis

OutcomeMeaningFocus
MergedSuccessWhat worked?
Closed (not merged)RejectedWhy?
Open (stale)Ignored/abandonedWhat went wrong?
Changes requestedNeeds workWhat feedback?
# Get PR outcome
gh pr view <number> --json state,mergedAt,closedAt,reviews

Phase 3: Feedback Extraction

# Get all review comments
gh pr view <number> --json reviews --jq '.reviews[] | "\(.author.login): \(.body)"'

# Get all comments
gh api repos/<owner>/<repo>/pulls/<number>/comments --jq '.[].body'

# Get requested changes
gh pr view <number> --json reviews --jq '.reviews[] | select(.state == "CHANGES_REQUESTED")'

Feedback Categories

CategoryExamples
StyleNaming, formatting, conventions
TechnicalAlgorithm, architecture, patterns
ScopeToo big, scope creep, unrelated changes
TestingMissing tests, coverage, edge cases
DocumentationMissing docs, unclear comments
ProcessWrong branch, missing sign-off

Phase 4: Pattern Identification

Success Patterns (If Merged)

What WorkedEvidence
Small, focused PR< 5 files
Followed conventionsNo style comments
Good testsNo "add tests" requests
Clear descriptionQuick approval

Failure Patterns (If Rejected)

What FailedEvidence
Too large"Please split this PR"
Scope creep"This is out of scope"
Missing tests"Please add tests"
Wrong approach"Consider using X instead"

Phase 5: Lesson Extraction

Lesson Template

## Lesson: [Title]

**Context**: [When does this apply?]
**Learning**: [What did we learn?]
**Action**: [What to do differently?]

**Evidence**:
- PR #N: [quote or summary]

Common Lessons

LessonAction
PR too largeSplit PRs under 200 lines
Missing contextAdd "## Context" section
Style mismatchRun linter before PR
Missing testsAdd tests for new code
Slow reviewPing after 1 week

Phase 6: Output

Write to .agents/learnings/YYYY-MM-DD-pr-{repo}-{outcome}.md

# PR Retro: {repo} #{number}

**Date**: YYYY-MM-DD
**PR**: {url}
**Outcome**: Merged / Rejected / Stale

## Summary

{What was the PR about? What happened?}

## Timeline

| Date | Event |
|------|-------|
| {date} | PR opened |
| {date} | First review |
| {date} | {outcome} |

## Feedback Analysis

### Positive Feedback
- {quote}

### Requested Changes
- {quote}

### Rejection Reasons (if applicable)
- {quote}

## Lessons Learned

### Lesson 1: {title}
**Context**: {when this applies}
**Learning**: {what we learned}
**Action**: {what to do differently}

## Updates to Process

{Any changes to make to pr-prep, pr-plan, or other skills}

## Next Steps

{Future actions based on this retro}

Anti-Patterns

DON'TDO INSTEAD
Skip retros on merged PRsLearn from success too
Blame maintainersFocus on what YOU can change
Generic lessonsSpecific, actionable learnings
Skip rejected PRsMost valuable learning source

Examples

Learn From Rejected PR

User says: "Run a retro on why this PR was rejected."

What happens:

  1. Analyze reviewer feedback and timeline.
  2. Identify preventable process and scope issues.
  3. Capture reusable lessons for future PRs.

Learn From Successful Merge

User says: "Extract what worked from this merged PR."

What happens:

  1. Identify patterns that sped review/approval.
  2. Distill actionable playbook updates.
  3. Save lessons for future contribution flows.

Troubleshooting

ProblemCauseSolution
Retro is genericFeedback not tied to evidenceCite specific comments/decisions and outcomes
No clear lesson extractedAnalysis stayed descriptiveConvert observations into behavior changes
Maintainer signal is mixedContradictory review commentsSeparate hard blockers from preference feedback
Process changes not adoptedLessons not operationalizedAdd explicit updates to prep/plan/validate workflow

Source Transparency

This detail page is rendered from real SKILL.md content. Trust labels are metadata-based hints, not a safety guarantee.

Related Skills

Related by shared tags or category signals.

Automation

council

No summary provided by upstream source.

Repository SourceNeeds Review
-1.5K
boshu2
Automation

swarm

No summary provided by upstream source.

Repository SourceNeeds Review
-280
boshu2
Automation

bug-hunt

No summary provided by upstream source.

Repository SourceNeeds Review
-258
boshu2