he-bing

Compare original and translation side by side

🇺🇸

Original

English
🇨🇳

Translation

Chinese

合并 (Work With PR)

合并 (PR协作)

完整 PR 生命周期管理。从工作树到合并,自动化全流程。 Complete PR lifecycle management. From worktree to merge, automated end-to-end.
完整PR生命周期管理,覆盖从工作树创建到合并的全自动化流程。

Quick Commands

快速命令

命令/Command功能/Function
/合并 <任务>
启动完整 PR 工作流
/合并 create <任务>
创建 PR
/合并 check
检查验证状态
/合并 status
查看 PR 状态
/pr <task>
Start full PR workflow
/pr create <task>
Create PR
/pr check
Check verification status
/pr status
Check PR status
命令功能
/合并 <任务>
启动完整PR工作流
/合并 create <任务>
创建PR
/合并 check
检查验证状态
/合并 status
查看PR状态
/pr <task>
启动完整PR工作流
/pr create <task>
创建PR
/pr check
检查验证状态
/pr status
查看PR状态

工作流架构/Workflow

工作流架构

┌─────────────────────────────────────────────────────────────────────┐
│                  PR 完整生命周期/Complete PR Lifecycle               │
├─────────────────────────────────────────────────────────────────────┤
│                                                                      │
│  Phase 0: 准备/Preparation                                          │
│  ├── 解析仓库上下文/Resolve repo context                            │
│  ├── 创建分支/Create branch                                         │
│  └── 设置工作树/Setup worktree (git worktree)                       │
│                                                                      │
│  Phase 1: 实现/Implementation                                       │
│  ├── 实现功能/Implement feature                                     │
│  ├── 原子提交/Atomic commits                                        │
│  └── 本地验证/Local verification                                    │
│                                                                      │
│  Phase 2: PR 创建/PR Creation                                        │
│  ├── 推送分支/Push branch                                           │
│  ├── 创建 PR/Create PR (target: dev branch)                         │
│  └── 填写 PR 模板/Fill PR template                                    │
│                                                                      │
│  Phase 3: 验证循环/Verification Loop                                │
│  ├── Gate A: CI 检查/CI checks                                       │
│  ├── Gate B: 代码审查/Code review                                    │
│  ├── Gate C: Cubic 批准/Cubic approval                               │
│  └── {任一失败/Any fail → 修复/fix → 重新验证/re-verify}             │
│                                                                      │
│  Phase 4: 合并/Merge                                                │
│  ├── 压缩合并/Squash merge                                          │
│  ├── 清理工作树/Cleanup worktree                                    │
│  └── 输出合并报告/Output merge report                               │
│                                                                      │
└─────────────────────────────────────────────────────────────────────┘
┌─────────────────────────────────────────────────────────────────────┐
│                          PR完整生命周期                              │
├─────────────────────────────────────────────────────────────────────┤
│                                                                      │
│  Phase 0: 准备阶段                                                  │
│  ├── 解析仓库上下文                                                  │
│  ├── 创建分支                                                       │
│  └── 设置工作树 (git worktree)                                       │
│                                                                      │
│  Phase 1: 功能实现                                                   │
│  ├── 开发需求功能                                                     │
│  ├── 原子提交                                                        │
│  └── 本地验证                                                        │
│                                                                      │
│  Phase 2: PR创建                                                     │
│  ├── 推送分支                                                        │
│  ├── 创建PR (目标:dev分支)                                          │
│  └── 填写PR模板                                                      │
│                                                                      │
│  Phase 3: 验证循环                                                   │
│  ├── 关卡A: CI检查                                                   │
│  ├── 关卡B: 代码审查                                                 │
│  ├── 关卡C: Cubic批准                                                │
│  └── {任意失败 → 修复 → 重新验证}                                     │
│                                                                      │
│  Phase 4: 合并阶段                                                   │
│  ├── 压缩合并                                                        │
│  ├── 清理工作树                                                      │
│  └── 输出合并报告                                                    │
│                                                                      │
└─────────────────────────────────────────────────────────────────────┘

Phase 0: 准备工作树/Setup Worktree

阶段0:准备工作树

bash
undefined
bash
undefined

1. 解析仓库上下文/Resolve context

1. 解析仓库上下文/Resolve context

REPO=$(gh repo view --json nameWithOwner -q .nameWithOwner) REPO_NAME=$(basename "$PWD") BASE_BRANCH="dev" # 默认目标分支/Default target
REPO=$(gh repo view --json nameWithOwner -q .nameWithOwner) REPO_NAME=$(basename "$PWD") BASE_BRANCH="dev" # 默认目标分支/Default target

2. 创建分支/Create branch

2. 创建分支/Create branch

BRANCH_NAME="feature/$(echo "$TASK" | tr '[:upper:] ' '[:lower:]-' | head -c 50)" git fetch origin "$BASE_BRANCH" git branch "$BRANCH_NAME" "origin/$BASE_BRANCH"
BRANCH_NAME="feature/$(echo "$TASK" | tr '[:upper:] ' '[:lower:]-' | head -c 50)" git fetch origin "$BASE_BRANCH" git branch "$BRANCH_NAME" "origin/$BASE_BRANCH"

3. 创建工作树 (目录外)/Create worktree (outside repo)

3. 创建工作树 (目录外)/Create worktree (outside repo)

WORKTREE_PATH="../${REPO_NAME}-wt/${BRANCH_NAME}" mkdir -p "$(dirname "$WORKTREE_PATH")" git worktree add "$WORKTREE_PATH" "$BRANCH_NAME"
WORKTREE_PATH="../${REPO_NAME}-wt/${BRANCH_NAME}" mkdir -p "$(dirname "$WORKTREE_PATH")" git worktree add "$WORKTREE_PATH" "$BRANCH_NAME"

4. 设置工作上下文/Setup context

4. 设置工作上下文/Setup context

cd "$WORKTREE_PATH" [ -f "bun.lock" ] && bun install
undefined
cd "$WORKTREE_PATH" [ -f "bun.lock" ] && bun install
undefined

Phase 1: 实现功能/Implementation

阶段1:功能实现

markdown
undefined
markdown
undefined

实现原则/Implementation Principles

实现原则

范围纪律/Scope Discipline

范围规范

  • Bug 修复/Bug fix: 最小改动/Minimal changes,只修复 bug+测试
  • 新功能/Feature: 按需求实现/As specified,不额外重构/no extra refactor
  • 技术债/Tech debt: 单独 PR/Separate PR,不与功能混合/not mixed
  • Bug修复:最小改动原则,仅修复bug和补充对应测试
  • 新功能:严格按照需求实现,不额外进行重构
  • 技术债:单独提交PR,不与功能需求混合提交

原子提交/Atomic Commits

原子提交规范

每个提交应该/Each commit should:
  • 完成一个独立功能/Complete one feature
  • 有清晰的提交信息/Clear commit message
  • 可通过测试/Passes tests
  • 不破坏现有功能/No breaking changes
每个提交应当满足:
  • 完成一个独立功能点
  • 包含清晰的提交信息
  • 可通过所有测试用例
  • 不破坏现有功能

提交信息格式/Commit Format

提交信息格式

<type>(<scope>): <subject>

<body>

<footer>
示例/Example:
feat(auth): 添加 JWT 认证/Add JWT auth

- 实现 JWT 生成和验证/Implement JWT
- 添加认证中间件/Add middleware
- 更新 API 文档/Update docs

Closes #123
undefined
<type>(<scope>): <subject>

<body>

<footer>
示例:
feat(auth): 添加JWT认证

- 实现JWT生成和验证逻辑
- 添加认证中间件
- 更新API文档

Closes #123
undefined

Phase 2: 创建 PR/Create PR

阶段2:创建PR

bash
undefined
bash
undefined

1. 推送分支/Push branch

1. 推送分支/Push branch

git push -u origin "$BRANCH_NAME"
git push -u origin "$BRANCH_NAME"

2. 创建 PR/Create PR

2. 创建PR/Create PR

gh pr create
--base "$BASE_BRANCH"
--head "$BRANCH_NAME"
--title "<type>: <subject>"
--body-file "pr-template.md"
gh pr create
--base "$BASE_BRANCH"
--head "$BRANCH_NAME"
--title "<type>: <subject>"
--body-file "pr-template.md"

3. 关联 Issue/Link Issue (if any)

3. 关联Issue/Link Issue (if any)

gh pr edit "$PR_NUMBER" --add-label "bug" --add-label "urgent"
undefined
gh pr edit "$PR_NUMBER" --add-label "bug" --add-label "urgent"
undefined

Phase 3: 验证循环/Verification Loop

阶段3:验证循环

┌─────────────────────────────────────────────────────────────────────┐
│                  验证循环/Verification Loop                          │
├─────────────────────────────────────────────────────────────────────┤
│                                                                      │
│    ┌──────────┐                                                     │
│    │  开始    │                                                     │
│    └────┬─────┘                                                     │
│         │                                                           │
│         ▼                                                           │
│    ┌──────────┐     ┌──────────┐     ┌──────────┐                  │
│    │ Gate A:  │────▶│ Gate B:  │────▶│ Gate C:  │                  │
│    │   CI     │     │  审查    │     │  Cubic   │                  │
│    └────┬─────┘     └────┬─────┘     └────┬─────┘                  │
│         │                │                │                         │
│    ┌────▼─────┐    ┌─────▼─────┐   ┌─────▼─────┐                   │
│    │ 通过?   │    │  通过?   │   │  通过?   │                   │
│    └────┬─────┘    └─────┬─────┘   └─────┬─────┘                   │
│         │                │                │                         │
│    YES  │  NO       YES  │  NO      YES  │  NO                     │
│    ┌────┴─────┐    ┌─────┴─────┐   ┌─────┴─────┐                   │
│    ▼          ▼    ▼           ▼   ▼           ▼                   │
│  [下一门]  [修复] [下一门]   [修复] [合并]   [修复]                  │
│                                                                      │
│  修复后回到对应的 Gate 重新验证/After fix, re-verify at that gate      │
│                                                                      │
└─────────────────────────────────────────────────────────────────────┘
┌─────────────────────────────────────────────────────────────────────┐
│                              验证循环                               │
├─────────────────────────────────────────────────────────────────────┤
│                                                                      │
│    ┌──────────┐                                                     │
│    │  开始    │                                                     │
│    └────┬─────┘                                                     │
│         │                                                           │
│         ▼                                                           │
│    ┌──────────┐     ┌──────────┐     ┌──────────┐                  │
│    │ 关卡A:  │────▶│ 关卡B:  │────▶│ 关卡C:  │                  │
│    │   CI     │     │  代码审查 │     │  Cubic   │                  │
│    └────┬─────┘     └────┬─────┘     └────┬─────┘                  │
│         │                │                │                         │
│    ┌────▼─────┐    ┌─────▼─────┐   ┌─────▼─────┐                   │
│    │ 是否通过?│    │ 是否通过? │   │ 是否通过? │                   │
│    └────┬─────┘    └─────┬─────┘   └─────┬─────┘                   │
│         │                │                │                         │
│    是   │  否        是  │  否       是  │  否                     │
│    ┌────┴─────┐    ┌─────┴─────┐   ┌─────┴─────┐                   │
│    ▼          ▼    ▼           ▼   ▼           ▼                   │
│  [进入下一关] [修复问题] [进入下一关] [修复问题] [合并代码] [修复问题]  │
│                                                                      │
│  修复后回到对应关卡重新验证                                            │
│                                                                      │
└─────────────────────────────────────────────────────────────────────┘

Gate A: CI 检查

关卡A: CI检查

bash
undefined
bash
undefined

检查 CI 状态/Check CI status

检查CI状态

gh pr checks "$PR_NUMBER"
gh pr checks "$PR_NUMBER"

等待 CI 完成/Wait for CI

等待CI执行完成

gh pr checks "$PR_NUMBER" --watch
undefined
gh pr checks "$PR_NUMBER" --watch
undefined

Gate B: 代码审查/Code Review

关卡B: 代码审查

markdown
undefined
markdown
undefined

审查清单/Review Checklist

审查清单

架构/Architecture

架构维度

  • 模块划分合理/Good modularity
  • 依赖关系清晰/Clear dependencies
  • 模块划分合理
  • 依赖关系清晰

代码/Code

代码维度

  • 命名清晰/Clear naming
  • 函数简短/Short functions
  • 无重复代码/No duplication
  • 命名清晰易懂
  • 函数逻辑简洁
  • 无重复代码

测试/Tests

测试维度

  • 有单元测试/Unit tests
  • 测试通过/Tests pass
  • 包含单元测试
  • 所有测试通过

文档/Docs

文档维度

  • 更新了文档/Docs updated
  • 有使用说明/Usage examples
undefined
  • 已更新对应文档
  • 包含使用示例
undefined

Gate C: Cubic 批准

关卡C: Cubic批准

等待 Cubic-dev-ai bot 的"No issues found"评论。 Wait for Cubic-dev-ai bot comment "No issues found".
等待Cubic-dev-ai机器人评论“No issues found”。

Phase 4: 合并清理/Merge & Cleanup

阶段4:合并与清理

bash
undefined
bash
undefined

1. 压缩合并/Squash merge

1. 压缩合并

gh pr merge "$PR_NUMBER" --squash --admin
gh pr merge "$PR_NUMBER" --squash --admin

2. 删除分支/Delete branch

2. 删除远程分支

git push origin --delete "$BRANCH_NAME"
git push origin --delete "$BRANCH_NAME"

3. 清理工作树/Cleanup worktree

3. 清理工作树

git worktree remove "$WORKTREE_PATH" rm -rf "$WORKTREE_PATH"
git worktree remove "$WORKTREE_PATH" rm -rf "$WORKTREE_PATH"

4. 返回主工作目录/Return to main

4. 返回原工作目录

cd "$ORIGINAL_PATH"
cd "$ORIGINAL_PATH"

5. 更新主分支/Update main

5. 更新本地基准分支

git fetch origin git checkout "$BASE_BRANCH" git pull origin "$BASE_BRANCH"
undefined
git fetch origin git checkout "$BASE_BRANCH" git pull origin "$BASE_BRANCH"
undefined

合并报告/Merge Report

合并报告

markdown
undefined
markdown
undefined

PR 合并报告/PR Merge Report

PR合并报告

PR: #{number} - {title} 分支/Branch: {branch_name} 合并时间/Merged: {timestamp}
PR: #{number} - {title} 分支: {branch_name} 合并时间: {timestamp}

验证结果/Verification

验证结果

Gate状态/Status尝试次数/Attempts
CI1
审查/Review2
Cubic1
关卡状态尝试次数
CI1
代码审查2
Cubic1

提交摘要/Commits

提交摘要

Hash信息/Message
abc123feat: 添加功能 A/Add feature A
def456fix: 修复问题 B/Fix issue B
Hash信息
abc123feat: 添加功能A
def456fix: 修复问题B

工作树/Worktree

工作树

  • 路径/Path: {worktree_path}
  • 清理/Cleanup: ✅
  • 路径: {worktree_path}
  • 清理状态: ✅

后续行动/Next Steps

后续行动

  • 通知相关人员/Notify team
  • 更新 Issue 状态/Update issues
  • 部署验证/Deploy verify
undefined
  • 通知相关团队成员
  • 更新关联Issue状态
  • 部署后验证功能
undefined

使用示例/Examples

使用示例

示例 1:完整 PR 流程

示例1:完整PR流程

用户/User: /合并 添加用户登录功能/Add user login

→ Phase 0: 创建工作树/Create worktree
→ Phase 1: 实现登录功能/Implement login
→ Phase 2: 创建 PR/Create PR
→ Phase 3: 验证循环/Verify loop (CI/Review/Cubic)
→ Phase 4: 合并清理/Merge & cleanup
用户: /合并 添加用户登录功能

→ 阶段0: 创建工作树
→ 阶段1: 实现登录功能
→ 阶段2: 创建PR
→ 阶段3: 验证循环 (CI/审查/Cubic)
→ 阶段4: 合并与清理

Example 2: Fix Bug

示例2: 修复Bug

用户/User: /pr fix auth bug in Issue #123

→ 最小改动修复 bug/Minimal fix
→ 添加测试/Add tests
→ 创建 PR/Create PR
→ 验证 → 合并/Verify → Merge
用户: /pr fix auth bug in Issue #123

→ 最小改动修复bug
→ 添加对应测试
→ 创建PR
→ 验证 → 合并

Rules

规则参考

  • rules/worktree.md - 工作树管理/Worktree
  • rules/commit-atomic.md - 原子提交/Atomic Commits
  • rules/verification.md - 验证循环/Verification
  • rules/worktree.md - 工作树管理规范
  • rules/commit-atomic.md - 原子提交规范
  • rules/verification.md - 验证流程规范

配置选项/Configuration

配置选项

参数/Param默认值/Default说明/Description
base_branchdev目标分支/Target branch
worktree_parent../工作树父目录/Parent dir
max_review_cycles5最大审查循环/Max cycles
参数默认值说明
base_branchdev合并目标分支
worktree_parent../工作树父目录
max_review_cycles5最大审查循环次数