vault: rewrite Billo workflow - merge PR review + merge into single flow

This commit is contained in:
Yaojia Wang
2026-03-17 23:45:30 +01:00
parent 708ce2e927
commit 0b4967488e

View File

@@ -9,7 +9,7 @@ source: "C:/Users/yaoji/git/Billo/release-workflow/SKILL.md"
## 概述 ## 概述
基于 Azure DevOps + Jira + Slack 的半自动化发布和 PR review 工作流。通过告知 Claude PR 链接或指令触发,自动执行 Jira 状态变更、PR merge、release notes 生成、Slack 通知等操作。 基于 Azure DevOps + Jira + Slack 的半自动化发布和 PR review 工作流。通过告知 Claude PR 链接或指令触发,自动执行 code review、Jira 状态变更、PR merge、release notes 生成、Slack 通知等操作。
## 工具栈 ## 工具栈
@@ -51,11 +51,11 @@ TICKET_ID=$(echo "$BRANCH" | sed -E 's#[^/]+/([A-Z]+-[0-9]+)_.*#\1#')
``` ```
Dev in Progress Dev in Progress
↓ (PR 提交 review) ↓ (PR 给 Claude review)
code review code review
↓ (review 有 comment) ↓ (review 有 comment → REQUEST CHANGES)
Code review comment Code review comment
↓ (review 通过PR merge to develop) ↓ (review 通过 → 用户确认 merge)
Ready for stage (2) Ready for stage (2)
↓ (release PR merge to main) ↓ (release PR merge to main)
Done Done
@@ -63,37 +63,50 @@ Done
--- ---
## 工作流一PR Merge 到 develop ## 触发关键词速查
**触发**:给 Claude PR 链接approve + merge 场景) | 你说的 | Claude 执行 |
|--------|------------|
| PR 链接 | 工作流一+四review → 你确认 → merge + Jira + staging|
| `"准备 release"` | 工作流二:创建 release PR |
| `"release PR merged"` | 工作流三Jira Done + Slack + 归档 |
**执行步骤** ---
1. 解析 PR URL → 提取 repo 名、PR ID
2. 获取 branch 名 → 提取 ticket ID
3. Merge PR`az repos pr update --status completed`
4. 移动 Jira ticket → `Ready for stage (2)`
5. 在 Jira ticket 上记录 PR remote link
6. 计算版本号(从 `releases/` 目录最新版本 patch +1首次为 `v1.0.0`
7. 追加 ticket 信息到 `release-staging.json`
**release-staging.json 格式** ## 工作流一+四合并PR Review + Merge
```json
{ **触发**:给 Claude Azure DevOps PR 链接
"version": "v1.0.0",
"repo": "Billo.Platform.Document", ### 阶段一Review自动执行
"started_at": "2026-03-17",
"tickets": [ ```
{ 1. 解析 PR URL → repo、branch、ticket ID
"id": "ALLPOST-4219", 2. 移动 Jira ticket → "code review"(无 ticket ID 则跳过)
"summary": "Test release bot", 3. git fetch branch + 创建 worktreeC:/Users/yaoji/git/_reviews/pr-{PR_ID}
"pr_id": "10460", 4. code-reviewer agent 分析所有变更 .cs 文件
"pr_url": "https://dev.azure.com/...", 5. 输出结构化报告CRITICAL / HIGH / MEDIUM / LOW
"pr_title": "chore: trigger release bot test", ```
"branch": "feature/ALLPOST-4219_test_release_bot",
"merged_at": "2026-03-17" **结果分支:**
}
] ```
} REQUEST CHANGES APPROVE
↓ ↓
移动 Jira → "Code review comment" 告知用户,等待确认
列出所有 issues
等待开发者修复后重新提交
```
### 阶段二Merge用户确认后执行
```
6. Merge PRaz repos pr update --status completed
7. 移动 Jira ticket → "Ready for stage (2)"
8. 在 Jira ticket 上记录 PR remote link
9. 获取 ticket summary
10. 计算版本号releases/ 最新版本 patch +1
11. 追加 ticket 信息到 release-staging.json
12. 清理 worktree
``` ```
--- ---
@@ -117,10 +130,11 @@ Done
1. Merge release PR 1. Merge release PR
2. 所有 ticket 状态移动 → `Done` 2. 所有 ticket 状态移动 → `Done`
3. 发送 Slack 通知 3. 发送 Slack 通知
4. 归档 `release-staging.json``releases/v1.0.0.json` 4. 归档 `release-staging.json``releases/vX.X.X.json`
5. 重置 `release-staging.json` 准备下个版本 5. 重置 `release-staging.json` 准备下个版本
**Slack 消息格式**rich_text Block Kit **Slack 消息格式**rich_text Block Kit
``` ```
Release - Billo.Platform.Document (2026-03-17) ← 加粗标题 Release - Billo.Platform.Document (2026-03-17) ← 加粗标题
• ALLPOST-4219 Test release bot ← bullet + 可点击 Jira 链接 • ALLPOST-4219 Test release bot ← bullet + 可点击 Jira 链接
@@ -128,25 +142,30 @@ Release - Billo.Platform.Document (2026-03-17) ← 加粗标题
``` ```
> [!important] > [!important]
> 使用 Slack `rich_text` Block Kit非 `mrkdwn`),避免 Windows 环境下 emoji 和中文乱码bullet 正常渲染。 > 使用 Slack `rich_text` Block Kit非 `mrkdwn`),避免 Windows 环境下 emoji 和中文乱码bullet 和换行正常渲染。
--- ---
## 工作流四PR Code Review ## release-staging.json 格式
**触发**:给 Claude PR 链接(说明要 review ```json
{
**执行步骤** "version": "v1.0.0",
1. 解析 PR URL → 提取 repo、branch、ticket ID "repo": "Billo.Platform.Document",
2. 移动 Jira ticket → `code review`(无 ticket ID 则跳过) "started_at": "2026-03-17",
3. `git fetch` branch + 创建 git worktree路径`C:/Users/yaoji/git/_reviews/pr-{PR_ID}` "tickets": [
4. 启动 code-reviewer agent分析所有变更的 `.cs` 文件 {
5. 输出结构化 review 报告CRITICAL / HIGH / MEDIUM / LOW "id": "ALLPOST-4219",
6. **有 comment** → 列出 issues移动 Jira → `Code review comment`,等待用户决定 "summary": "Test release bot",
7. **无 comment** → APPROVE等待用户决定是否 merge "pr_id": "10460",
8. 清理 worktree "pr_url": "https://dev.azure.com/billodev/...",
"pr_title": "chore: trigger release bot test",
--- "branch": "feature/ALLPOST-4219_test_release_bot",
"merged_at": "2026-03-17"
}
]
}
```
## 版本号规则 ## 版本号规则
@@ -156,17 +175,6 @@ Release - Billo.Platform.Document (2026-03-17) ← 加粗标题
--- ---
## 触发关键词速查
| 你说的 | Claude 执行 |
|--------|------------|
| PR 链接 | 工作流一+四review → 你确认 → merge + Jira + staging|
| `"准备 release"` | 工作流二:创建 release PR |
| `"release PR merged"` | 工作流三Jira Done + Slack + 归档 |
| PR 链接 + `"review"` | 工作流四code review |
---
## 环境变量(~/.bashrc ## 环境变量(~/.bashrc
```bash ```bash