关于 piv-create-pr
piv-create-pr 是一项用于在实现完成后创建 GitHub 拉取请求的开发技能。它会检查仓库状态、整理变更背景,并交接给后续评审。
主要功能
- 01检测仓库基准分支
- 02检查分支与提交状态
- 03整理变更及验证信息
- 04使用 gh 创建拉取请求
- 05输出评审所需的 PR 信息
适用场景
- 01完成特性分支后创建 PR
- 02根据提交和报告编写 PR 正文
- 03检查分支是否已有 PR
安装
复制下面的命令,在终端中运行。
$
npx skills add https:/ / github.com/ coleam00/ skills --skill piv-create-pr安装后在 Claude Code 中输入/piv-create-pr确认已加载。
详细介绍
创建 PR:打开拉取请求,交由审核
这是 PIV 循环中的 交付 步骤:实现在功能分支上已提交;现在打开 PR,
以便进行审核(先由 piv-review-pr 智能体审核关卡审核,再由人工审核)。
阶段 0 — 检测基分支
不要将 main 硬编码。请解析:
- 如果
$ARGUMENTS包含--base <branch>,使用该分支。 - 否则:
git symbolic-ref refs/remotes/origin/HEAD 2>/dev/null | sed 's@^refs/remotes/origin@@' - 备用方案:
git remote show origin 2>/dev/null | grep 'HEAD branch' | awk '{print $NF}' - 最后尝试:
main。将其存储为{base}。
阶段 1 — 验证 git 状态
git branch --show-current
git status --short
git log origin/{base}..HEAD --oneline
| 状态 | 操作 |
|---|---|
位于 {base} 分支 | 停止:"请先创建功能分支(此任务应位于自己的分支上)。" |
| 有未提交的更改 | 停止:"打开 PR 前请先提交(或暂存)更改。" |
没有领先 {base} 的提交 | 停止:"没有内容可创建 PR。" |
此分支已有 PR(gh pr list --head $(git branch --show-current) --json url) | 停止并打印 URL。 |
| 状态干净、有领先提交且没有 PR | 继续 |
阶段 2 — 收集 PR 正文所需的上下文
- **项目约定:**如果
.claude/references/conventions.md存在,请阅读其中的## pr部分——其中的规则 优先于下面的默认模板(包括章节、语气以及必须说明的内容)。该文件用于记录项目的 特定要求;此技能保持通用。 - 提交:
git log origin/{base}..HEAD --pretty=format:"- %s" - 文件:
git diff --stat origin/{base}..HEAD - 实现报告(如果
piv-implement已生成报告——.claude/reports/<…>-report.md):提取摘要、 验证结果和已记录的偏差(这些内容应放入 PR 正文,以便告诉审核者哪些变更是有意为之)。 - 关联的任务单/问题:检查提交信息或分支名称中是否有
ACC-…、#123、Fixes #…。 - PR 模板:如果
.github/PULL_REQUEST_TEMPLATE.md存在,请填写;否则使用下面的默认模板。
阶段 3 — 推送并打开 PR
git push -u origin HEAD
gh pr create --base "{base}" --title "{type}: {concise description}" --body "$(cat <<'EOF'
## Summary
{1-2 sentences: what this ticket delivers}
## What changed
{commit summaries}
## Validation
- Tests / type-check / lint: {pass/fail from the implementation report or a fresh run}
- Manual check: {what was exercised, or "pending review"}
## Notes for the reviewer
{documented deviations from the plan — intentional decisions — or "none"}
## Linked
{ticket / issue refs, or "none"}
_Ready for review._
EOF
)"
({type} = 根据工作内容选择 feat/fix/refactor/… 未准备好接受正式审核时,请使用 --draft。)
输出
gh pr view --json number,url,title,baseRefName,headRefName
报告 PR 编号和 URL、基准分支 ← 头部分支,并注明**“已准备好审核 → 运行 piv-review-pr <number>,然后由人工批准。”** 这是交接点:Agent 的循环到打开 PR 为止;审核和合并是后续关卡。
注意事项
- 理念上与工具无关:此技能使用 GitHub(
gh);在 GitLab 上,同样的操作是“打开合并请求”, 在其他平台则是“标记为准备好审核”。如果是没有远程仓库的独立开发者?跳过 PR——在{base}上 提交,并在继续之前自行审核差异。 - 为并行工作做好准备:每个任务单使用一个分支 → 每个任务单对应一个 PR,这正是让工作树并行处理 (同时运行彼此独立的任务)保持清晰的方式。
评论
支持 Markdown