From c295a7dd526b7ef872cdb882233479e487c89700 Mon Sep 17 00:00:00 2001 From: cfdaily Date: Sat, 6 Jun 2026 08:55:31 +0800 Subject: [PATCH] auto-sync: 2026-06-06 08:55:31 --- docs/design/13-toolchain-and-dev-workflow.md | 100 +++++++++++++++++-- 1 file changed, 93 insertions(+), 7 deletions(-) diff --git a/docs/design/13-toolchain-and-dev-workflow.md b/docs/design/13-toolchain-and-dev-workflow.md index 12bf97f..9f37df4 100644 --- a/docs/design/13-toolchain-and-dev-workflow.md +++ b/docs/design/13-toolchain-and-dev-workflow.md @@ -685,11 +685,11 @@ Agent spawn 走生产 openclaw 的决策理由: | 问题Review → Issue创建 | Review结论达成 | 庞统或司马懿创建 | Gitea API `POST /repos/{owner}/{repo}/issues` | | Issue创建 → 分支创建 | 庞统指派任务给开发者 | Mail 通知被指派者,含 Issue #N + 分支名 | Mail API + Agent 读取 Issue | | 分支创建 → 编码 | 开发者看到 Mail 后开始 | 无额外通知 | Agent 启动时 Skill 注入分支信息 | -| 编码 → CI 快速门控 | **git push 自动触发** | CI 结果自动评论到 commit | Gitea Actions webhook(内置) | +| 编码 → CI 快速门控 | **git push 自动触发** | CI 结果显示在 commit 状态(Gitea Status Check 内置) | Gitea Actions `on: push` | | CI 快速门控 → PR创建 | 开发者主动(认为代码写完) | 无自动通知 | 开发者在 Gitea Web UI 或 git push + 浏览器创建 PR | | PR创建 → CI 标准门控 | **PR 创建/更新自动触发** | CI 结果自动评论到 PR | Gitea Actions `on: pull_request` | | CI 标准门控 → 代码审查 | **CI 通过后 Gitea 自动通知审查者** | Gitea PR Review 请求通知 | Gitea branch protection + Reviewer 指定 | -| 代码审查 → 修改(不通过) | 审查者提交 Review 意见 | PR 评论通知改动者 | Gitea PR Review API | +| 代码审查 → 修改(不通过) | 审查者提交 Review 意见 | Mail 通知改动者(附 Review 摘要) | Gitea PR Review + Mail API | | 代码审查 → Merge(通过) | **审查者点 Approve** | 无额外通知 | Gitea PR Review `APPROVE` | | Merge → 部署 | **merge 到 main 自动触发** | 无需通知(自动化) | Gitea Actions `on: push: branches: [main]` | | 部署 → E2E | **部署 job 成功后触发 E2E job** | E2E 结果评论到 merge commit | Gitea Actions `needs: [deploy]` | @@ -723,12 +723,14 @@ Merge 到 main **2. Mail 通知(Agent 间协调)** -CI/CD 之外的人工衔接靠 Mail: +CI/CD 之外的衔接靠 Mail。Agent 不会自己去看 Gitea PR 评论,所以所有需要 Agent 行动的情况都通过 Mail 推送: - 需求Review完成 → Mail 通知开发者开始 - Bug确认 → Mail 通知改动者(含根因) - Hotfix确认 → Mail 通知执行者 -- 审查不通过 → 已通过 Gitea PR 评论解决,Mail 不介入 +- CI 失败 → Mail 通知改动者 Agent(CI workflow 里调 Mail API) +- 审查不通过 → Mail 通知改动者(附 Review 摘要) +- 部署失败回滚 → Mail 通知庞统/姜维(人工介入) **3. Gitea branch protection(硬门控)** @@ -742,11 +744,93 @@ CI/CD 之外的人工衔接靠 Mail: | 场景 | 通知方式 | 为什么不用另一种 | |------|---------|----------------| | 人→Agent任务指派 | Mail | Gitea Issue 不会主动通知 Agent,需要 Mail 推送 | -| CI 结果 | Gitea 自动评论 | 自动化,不需 Mail | -| Review 请求 | Gitea Reviewer 指定 | Gitea 内置通知 | -| Review 意见 | Gitea PR 评论 | 附带行号,Mail 不方便 | +| CI 结果 | Gitea Status Check(PR页面)+ Mail(Agent通知) | Status Check 给人看,Mail 给 Agent 推送 | +| Review 请求 | Gitea Reviewer 指定 | 人(司马懿)看 Gitea | +| Review 意见不通过 | Gitea PR 评论 + Mail | 评论存档,Mail 推送 Agent | | 跨Agent协作请求 | Mail | Gitea 不支持跨 Agent 私信 | +### 9.0.1 通知模板 + +所有自动化通知统一格式,确保 Agent 收到后能直接行动。 + +**模板 1:任务指派(庞统 → 开发者)** +``` +From: pangtong-fujunshi +To: {被指派者} +Title: 任务指派: Issue #{N} - {Issue 标题} +Text: + {Issue 标题} + Issue: http://192.168.2.154:3000/{repo}/issues/{N} + 分支: feat/issue-{N}-{简述} + 风险级别: {high/standard/low} + 要点: + - {需求要点1} + - {需求要点2} + 验收标准: + - {验收标准1} + - {验收标准2} +``` + +**模板 2:CI 失败通知(CI workflow → 改动者)** +``` +From: ci-notifier +To: {PR 作者} +Title: CI 失败: PR #{N} - {PR 标题} +Text: + PR #{N} CI 未通过。 + PR: http://192.168.2.154:3000/{repo}/pulls/{N} + 失败测试: + - {test_path}::{test_name} FAILED + - {test_path}::{test_name} FAILED + 失败 step: {step_name} + 错误摘要: {error_output_tail_20_lines} + 请修复后重新 push。 +``` + +**模板 3:Review 不通过通知(审查者 → 改动者)** +``` +From: {审查者} +To: {改动者} +Title: Review 不通过: PR #{N} - {PR 标题} +Text: + PR #{N} 审查未通过。 + PR: http://192.168.2.154:3000/{repo}/pulls/{N} + 风险级别: {confirmed_level} + 审查意见: + 1. [{文件}:{行号}] {问题描述} → {修改方向} + 2. [{文件}:{行号}] {问题描述} → {修改方向} + 必须全部修改后重新 push。 +``` + +**模板 4:部署失败回滚通知(CI workflow → 庞统/姜维)** +``` +From: ci-notifier +To: pangtong-fujunshi, jiangwei-infra +Title: 部署失败已回滚: {repo} {commit_hash} +Text: + {repo} 部署失败,已自动回滚到上一版本。 + 触发 commit: {commit_hash} + 部署脚本: scripts/deploy.sh + 失败原因: {deploy_stderr_tail} + 当前版本: {previous_version} + 请人工介入排查。 +``` + +**模板 5:Bug 确认通知(司马懿 → 改动者)** +``` +From: simayi-challenger +To: {改动者} +Title: Bug 确认: Issue #{N} - {Issue 标题} +Text: + 根因: {根因描述} + 复现步骤: {steps} + 影响范围: {scope} + 风险级别: {level} + Issue: http://192.168.2.154:3000/{repo}/issues/{N} + 分支: fix/issue-{N}-{简述} + 请修复并添加回归测试。 +``` + ### 9.1 场景 A:新功能开发 ``` @@ -946,6 +1030,8 @@ CI/CD 之外的人工衔接靠 Mail: - 标准流程 10 步 + Hotfix 分支 4 步 - 新增工具链衔接总览表 - 新增衔接机制详解:每一步怎么触发下一步、靠什么技术、怎么通知 +- §9.0.1 新增 5 个通知模板(任务指派/CI失败/Review不通过/部署回滚/Bug确认) +- 修正:Agent 不看 Gitea PR 评论,所有需 Agent 行动的场景都走 Mail 推送 ---