用途
wtf.create-pr 用于在为已完成的 trace 分支(trace branch)打开拉取请求(Pull Request)时使用。典型触发场景包括开发者希望「创建一个 PR」「打开一个拉取请求」等。该技能的核心目标是:读取完整的规范层级(Trace + Feature + Epic)以及分支差异,撰写一段解释变更「为什么存在」而不仅是「做了什么」的 PR 描述。
主要能力
- 检查当前分支,确认其不是 main。
- 检查该分支是否已存在打开的 PR。
- 从分支名称中识别 Trace 编号(如 trace/42-date-range-filter → #42),也兼容遗留的 task/42-<slug> 分支。
- 执行生命周期检查(若已关联 Trace)。
- 抓取规范层级:从 Trace 提取 story、Scenario Claim、Spine position、Technical Approach、DoD;从 Feature 提取 ACs、Trace Plan、交付覆盖与约束;从 Epic 提取 Goal。
- 检查分支差异(git log、git diff --stat)。
- 生成 PR 标题(可选用子代理,基于 haiku 模型)与正文。
- 与用户复核草稿后创建 PR。
- 在已关联的 Trace issue 下发布链接 PR 的评论。
- 可选择添加评审者,并支持 gh-stack 原生堆叠。
使用方式
该技能按以下步骤执行:
- GitHub CLI 设置:运行 ../references/gh-setup.md 的第 1–2 步(安装检查与认证检查),若 gh 未安装或未认证则停止。
- 确认分支:检查当前分支并确认不是 main;检查是否已存在 PR。
- 识别 Trace:尝试从分支名提取 trace 编号。
- 生命周期检查(若关联 Trace)。
- 抓取规范层级(Trace → Feature → Epic)。
- 检查差异:确定基础分支并收集分支差异。
- 草拟 PR:生成标题与正文,遵守严格 STE。
- 与用户复核草稿。
- 创建 PR:确定基础分支并通过 gh body helper 创建。
- 更新 Trace issue(若已关联)。
- 提供后续步骤(如邀请评审者)。
创建 PR 时使用如下形式的命令:
python3 .wtf/gh-body.py create --pr \
--title "<title>" \
--body-file "$BODY" \
--base <base_branch>
Trace 评论使用:
python3 .wtf/gh-body.py comment <trace_number> --body-file "$COMMENT"
添加评审者使用:
gh pr edit <pr_number> --add-reviewer <username>
适用场景
- 开发者为已完成的 trace 分支打开 PR。
- 需要基于 Trace/Feature/Epic 规范层级撰写解释「为什么」的 PR 描述。
- 采用 trunk 或 staged 交付模式的仓库。
- 希望将多个 Trace PR 链接为原生堆叠(需 gh-stack 扩展)。
限制
- 若 gh 未安装或未认证,技能会停止。
- 需要 .wtf 目录下的参考文件与辅助脚本。
- 基础分支必须遵循 Base-branch policy,绝不能指向该分支未从其分叉的分支。
- 原生堆叠功能需 gh extension list 显示 gh-stack。
- 关于收费、价格、平台支持范围等具体信息暂未提供。