关于 pr-implement
pr-implement 是用于在 fork 上执行开源贡献计划的技能。它要求在实施前后检查隔离情况,帮助维护者保持更改聚焦,便于准备 PR。
主要功能
- 01检查竞争中的 PR 和议题分配
- 02设置最新 fork 与隔离工作树
- 03预检未通过时阻止实施
- 04事后检查范围与提交一致性
- 05为 $pr-prep 准备交接
适用场景
- 01执行已完成计划中的贡献
- 02让 PR 分支只处理一个事项
- 03准备 PR 前检查范围偏移
安装
复制下面的命令,在终端中运行。
$
npx skills add https:/ / github.com/ boshu2/ agentops --skill pr-implement安装后在 Claude Code 中输入/pr-implement确认已加载。
附带文件references/pr-implement.featurescripts/validate.sh
详细介绍
PR 实施技能
用于开源贡献的 Fork 式实施,必须执行隔离检查。
概述
通过 Fork 隔离来执行贡献计划。在实施前和实施过程中运行隔离检查,确保 PR 干净且聚焦。
输入:来自 $plan 的计划产物(在 $pr-research 之后)或仓库 URL
适用场景:
- 实施已规划的 OSS 贡献
- 需要强制执行隔离,确保 PR 干净
- 完成
$pr-research和$plan之后
不适用场景:
- 内部项目工作(使用
$implement) - 尚未制定计划(先运行
$pr-research,然后运行$plan)
工作流
-1. Prior Work Check -> BLOCKING: Check for competing PRs
0. Input Discovery -> Find plan artifact or repo
1. Fork Setup -> Ensure fork exists and is current
2. Worktree Creation -> Create isolated worktree
3. Isolation Pre-Check -> BLOCK if mixed concerns
4. Implementation -> Execute plan
5. Isolation Post-Check -> BLOCK if scope creep
6. Commit Preparation -> Stage with proper commit type
7. Handoff -> Ready for $pr-prep
阶段 -1:前序工作检查(阻塞)
# Search for open PRs on this topic
gh pr list -R <owner/repo> --state open --search "<topic>" --limit 10
# Check target issue status
gh issue view <issue-number> -R <repo> --json state,assignees
| 发现 | 操作 |
|---|---|
| 存在未关闭的 PR | 协调或等待 |
| Issue 已分配 | 协调或寻找替代方案 |
| 没有冲突工作 | 继续 |
阶段 3:隔离预检查(阻塞)
# Commit type analysis
git log --oneline main..HEAD | sed 's/^[^ ]* //' | grep -oE '^[a-z]+(\([^)]+\))?:' | sort -u
# File theme analysis
git diff --name-only main..HEAD | cut -d'/' -f1-2 | sort -u
| 检查项 | 通过标准 |
|---|---|
| 单一提交类型 | 0 或 1 个前缀 |
| 主题相关文件 | 全部符合计划范围 |
| 分支是新建的 | 基于近期的 main |
预检查未通过时,禁止继续。
阶段 4:实施
指南
| 指南 | 原因 |
|---|---|
| 单一关注点 | 每个提交 = 一个逻辑变更 |
| 遵循约定 | 完全遵循项目风格 |
| 逐步测试 | 每次变更后运行测试 |
提交约定
git commit -m "type(scope): brief description
Longer explanation if needed.
Related: #issue-number"
阶段 5:隔离后检查(阻塞)
# Commit type analysis
git log --oneline main..HEAD | sed 's/^[^ ]* //' | grep -oE '^[a-z]+(\([^)]+\))?:' | sort -u
# Summary stats
git diff --stat main..HEAD
| 检查项 | 通过标准 |
|---|---|
| 单一提交类型 | 所有提交使用相同前缀 |
| 主题相关文件 | 所有文件都与 PR 范围相关 |
| 原子化范围 | 能用一句话说明 |
阶段 7:交接
Implementation complete. Isolation checks passed.
Branch: origin/$BRANCH_NAME
Commits: N commits, +X/-Y lines
Next step: $pr-prep
反模式
| 不要这样做 | 应这样做 |
|---|---|
| 跳过隔离预检查 | 首先运行阶段 3 |
| 跳过隔离后检查 | 推送前运行阶段 5 |
| 在提交中混杂多个关注点 | 每个 PR 只用一种类型前缀 |
| 未制定计划就实施 | 先运行 $pr-research,然后运行 $plan |
示例
根据贡献计划实施
用户说:“使用隔离检查来实施这份外部 PR 计划。”
执行过程:
- 对分支和范围隔离运行预检查。
- 仅在计划中的文件/区域内实施。
- 运行后检查,并准备 PR 准备工作的交接内容。
强制确保提交集只关注单一事项
用户说:“在我准备 PR 之前,确保这个分支仍然只用于单一目的。”
执行过程:
- 根据声明的范围检查提交/文件模式。
- 标出混杂的关注点并建议拆分步骤。
- 生成清晰的交接内容,交给
$pr-prep。
故障排除
| 问题 | 原因 | 解决方案 |
|---|---|---|
| 隔离检查失败 | 分支上有无关变更 | 将无关修改移到单独的分支/PR |
| 提交混杂多个关注点 | 实施偏离了计划 | 按关注点重新拆分提交并重新验证 |
| 范围不断扩大 | 计划中的边界不明确 | 重新以 Out of Scope 为准,并停止添加变更 |
| 难以交接 | 缺少摘要/测试上下文 | 添加简洁的变更摘要和验证说明 |
参考文档
- references/pr-implement.feature — 可执行规范:在 Fork 分支上执行计划,实施前及实施过程中必须进行隔离检查,确保 PR 范围明确且聚焦(soc-qk4b)
评论
支持 Markdown