From 38c676c627f40f0b6c38d399bff394a49d7fa70e Mon Sep 17 00:00:00 2001 From: cfdaily Date: Sun, 21 Jun 2026 23:03:30 +0800 Subject: [PATCH] =?UTF-8?q?[moz]=20docs(=C2=A721):=20v1.2=20=C2=A715b=20Co?= =?UTF-8?q?mment=20@assignee=20=E8=A1=8C=E4=B8=BA=E7=BA=A6=E6=9D=9F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 问题:agent 在 Issue/PR 上写 comment 不 @ 人时,assignee 收不到通知。 方案:prompt 约束(不走代码自动通知),让 agent 自主判断何时 @assignee。 不做:代码路径 3(自动通知 assignee,噪音问题)、subscribe 机制。 Closes #115 --- docs/design/21-unified-toolchain-design.md | 58 +++++++++++++++++++++- 1 file changed, 56 insertions(+), 2 deletions(-) diff --git a/docs/design/21-unified-toolchain-design.md b/docs/design/21-unified-toolchain-design.md index 43d4a2c..a5042b9 100644 --- a/docs/design/21-unified-toolchain-design.md +++ b/docs/design/21-unified-toolchain-design.md @@ -1,9 +1,10 @@ --- title: "Unified Toolchain Design — 统一工具链工作流设计" created: 2026-06-20 -version: v1.1 draft +version: v1.2 draft status: draft -changelog: v1.1 补充 §11b Issue opened 无 assignee 处理 + 修正 §13.1 触发路径 +changelog: v1.2 补充 §15b Comment @assignee 行为约束 +v1.1 补充 §11b Issue opened 无 assignee 处理 + 修正 §13.1 触发路径 v1.0 初版 --- @@ -1079,6 +1080,59 @@ agent 写 Issue/PR comment → webhook: issue_comment/created → daemon 解析 --- +## §15b. Comment @assignee 行为约束 + +### 15b.1 问题 + +`_handle_issue_comment` 只有两条通知路径(CI 关键词 + @mention)。当 agent 在 Issue/PR 上写了 comment 但没有 @ 任何人时,Issue 的 assignee/创建者收不到通知。 + +例:姜维在 Issue #114 上写了排查结论,没有 @ 庞统。庞统不知道排查已完成。 + +### 15b.2 设计决策:prompt 约束 vs 代码路径 + +| 方案 | 优点 | 缺点 | +|------|------|------| +| 代码路径 3(自动通知 assignee) | 不依赖 agent 行为 | 噪音——每条 comment 都通知,review 来回几轮就炸 | +| prompt 约束(agent @assignee) | agent 自主判断,语义精确 | 依赖 agent 遵守 | + +**选择 prompt 约束**。理由: +1. 与 §21 设计哲学一致(agent 自主决策,不过度自动化) +2. 噪音问题是真实的——不是每条 comment 都需要通知 assignee +3. agent 可以根据场景判断:纯确认不 @,有结论/需关注才 @ +4. 兜底机制:round review + 庞统人工检查 + +### 15b.3 约束内容 + +在 ToolchainConstraintsSection §5「所有协作通过 Gitea 完成」中新增一条: + +``` +### 5. 所有协作通过 Gitea 完成 +...(现有内容不变) +- ⚠️ 在 Issue/PR 上写 comment 时,如果内容需要 Issue 的 assignee 或创建者知晓,必须在 comment 中 @对方。纯确认性回复(如"收到")不需要 @。 +``` + +同时在 `_ACTION_HINTS` 中 review_comment 的 hint 补充提示: +``` +"review_comment": "你收到一个 Review 评论,这是一个需要你查看并响应的事件。回复时 @评论者。", +``` + +### 15b.4 不做的事 + +- 不在 `_handle_issue_comment` 中加代码路径 3(自动通知 assignee) +- 不做 subscribe/unsubscribe 机制 +- 不通知 Issue 创建者(只通知 assignee,assignee 是责任人) + +### 15b.5 涉及改动 + +| 文件 | 改动 | +|------|------| +| `src/daemon/toolchain_handler.py` ToolchainConstraintsSection §5 | 加 @assignee 约束 | +| `src/daemon/toolchain_handler.py` `_ACTION_HINTS` | review_comment hint 补充 @提示 | + +约 +5 行,1 文件。 + +--- + ## §16. Round Review 迁移 ### 16.1 当前实现