mcpField
P
pr-retro

pr-retro

github.com/boshu2开发450607 次安装今天更新
代码仓库

关于 pr-retro

pr-retro 是用于复盘已合并、被拒、停滞或收到大量反馈的拉取请求的技能。它将评审意见和结果整理为具体、可复用的经验,并保存为带日期的 Markdown 文档。

主要功能

  1. 01查找并检查拉取请求
  2. 02归类结果与评审反馈
  3. 03识别成功和失败模式
  4. 04提炼可执行经验
  5. 05保存带日期的 Markdown 复盘

适用场景

  1. 01总结拉取请求被拒的原因
  2. 02记录成功合并的做法
  3. 03梳理反复出现的贡献反馈

安装

复制下面的命令,在终端中运行。

$npx skills add https://github.com/boshu2/agentops --skill pr-retro

安装后在 Claude Code 中输入/pr-retro确认已加载。

附带文件scripts/validate.sh

详细介绍

PR 复盘技能

通过分析 PR 的接受/拒绝模式,从结果中吸取经验。

概述

PR 合并或被拒绝后,分析哪些做法有效、哪些无效,以改进未来的贡献。

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

使用时机:

  • PR 合并后(记录成功模式)
  • PR 被拒绝后(了解原因)
  • 收到重要评审反馈后
  • 定期回顾贡献模式

工作流

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

阶段 1:发现 PR

# 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

阶段 2:结果分析

结果含义重点
已合并成功哪些做法有效?
已关闭(未合并)被拒绝为什么?
开放(停滞)被忽略/放弃哪里出了问题?
要求修改需要改进有哪些反馈?
# Get PR outcome
gh pr view <number> --json state,mergedAt,closedAt,reviews

阶段 3:提取反馈

# 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")'
反馈类别
类别示例
风格命名、格式、约定
技术算法、架构、模式
范围过大、范围蔓延、无关改动
测试缺少测试、覆盖率、边界情况
文档缺少文档、注释不清晰
流程分支错误、缺少签核

阶段 4:识别模式

成功模式(已合并时)
有效之处依据
PR 小而聚焦< 5 个文件
遵循约定没有风格方面的评论
测试充分没有“添加测试”的要求
描述清晰很快获批
失败模式(被拒绝时)
失败之处依据
规模太大“请拆分此 PR”
范围蔓延“这超出了范围”
缺少测试“请添加测试”
方案错误“考虑改用 X”

阶段 5:提炼经验

经验模板
## Lesson: [Title]

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

**Evidence**:
- PR #N: [quote or summary]
常见经验
经验行动
PR 过大将 PR 拆分为不超过 200 行
缺少背景信息添加“## 背景”部分
风格不一致提交 PR 前运行代码检查工具
缺少测试为新代码添加测试
评审缓慢1 周后提醒

阶段 6:输出

写入 .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}

反模式

不要这样做应改为
跳过已合并 PR 的复盘也从成功中学习
责怪维护者聚焦于你能改变的事情
总结泛泛的经验提炼具体、可执行的经验
跳过被拒绝的 PR这是最有价值的学习来源

示例

从被拒绝的 PR 中学习

用户说:“复盘一下这个 PR 被拒绝的原因。”

处理过程:

  1. 分析评审反馈和时间线。
  2. 找出可以避免的流程和范围问题。
  3. 记录可复用于未来 PR 的经验。
从成功合并中学习

用户说:“总结这个已合并 PR 中哪些做法有效。”

处理过程:

  1. 找出加快评审/批准的模式。
  2. 提炼可执行的工作手册更新。
  3. 保存经验,供未来贡献流程参考。

故障排除

问题原因解决方案
复盘内容泛泛反馈未与证据关联引用具体评论/决策及结果
未提炼出明确经验分析停留在描述层面将观察结果转化为行为改变
维护者的信号相互矛盾评审评论相互矛盾区分硬性阻碍与偏好反馈
流程变更未被采用经验未转化为实际行动在准备/计划/验证工作流中明确更新

评论

支持 Markdown