W15: conflict resolution — E7 CRITICAL gate, T11/T18 audit refs, §5 metadata check, PROMPT_TEMPLATE Fixes (W15.4-W15.9)
- W15.4 (杨帆): §11/§14 cross-reference audit — PASS-WITH-NOTES, 3 fixes needed - W15.5 (王测): §14 internal consistency — PASS-WITH-NOTES, 4 fixes needed - W15.6 (胡桐): self-check script + YAML verification — PASS - W15.7 (杨帆): Add E7 (no OPEN CRITICAL) to EXPRESS conditions, update T11 to include §14.4 A1-A4, add T18 finding status in §14.5 - W15.8 (王测): Fix findings-registry Close Date, add historical finding time-limit rule, add legacy audit Findings Summary note, add Fixes annotation to PROMPT_TEMPLATE - W15.9 (胡桐): Fix false-positive warning in check_agents_metadata.py (skip audits/ dir), add metadata check to §5 Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
This commit is contained in:
@@ -38,6 +38,7 @@
|
||||
1. <文件路径>: <具体改动内容> — 验收: <可观测的通过条件>
|
||||
2. <文件路径>: <具体改动内容> — 验收: <可观测的通过条件>
|
||||
3. `agents/<agent-id>/profile.md`: performance_log 追加 W<n>.<m> — 验收: 新条目出现在文件中
|
||||
- **Finding 关联**(如有):Fixes: F-<Wave>-<N>
|
||||
|
||||
**验证步骤**:
|
||||
cmake --build build --config Release && ctest --test-dir build -C Release
|
||||
@@ -118,6 +119,18 @@ cmake --build build --config Release && ctest --test-dir build -C Release
|
||||
"可做"是子代理的自由发挥区,"不做"是硬边界。
|
||||
```
|
||||
|
||||
### 反模式 7: 缺少 Finding 关联
|
||||
|
||||
```
|
||||
❌ 案例: W14.3 曹武的修复任务修复了 F-13.5-1 (network_plugin TLS 证书验证),
|
||||
但 prompt 和报告均未标注 Fixes: F-13.5-1,
|
||||
导致 findings-registry 无法追踪修复进度,发现状态停留在 OPEN。
|
||||
|
||||
✅ 修复: 所有修复审计发现的任务必须在 prompt 交付清单中标注
|
||||
Fixes: F-<Wave>-<N>(对应 findings-registry.md 中的发现 ID)。
|
||||
示例:W14.3 曹武的修复任务应标注 `Fixes: F-13.5-1`。
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## 正模式示例: W9.4 林深 (回写)
|
||||
|
||||
@@ -45,6 +45,7 @@
|
||||
- **每波结束**:跑一次完整 `cmake --build build --config Release` + `ctest -R smoke`
|
||||
- **预存 bug**:发现编译错时先 `git stash` 试 master 是否干净——区分"子代理引入"和"预存 bug"。预存 bug CEO 自己改不甩锅
|
||||
- **stale obj 问题**:clang-cl 增量构建偶尔不识别源文件修改(lsp_plugin/tools_plugin 踩过坑),症状是编译报告的行号源码内容与磁盘不符。解法:`rm -f build/**/<file>.cpp.obj` 强制重编
|
||||
- **元数据完整性**:每波开始前运行 `python scripts/check_agents_metadata.py` 验证 agents/ 元数据完整性(YAML / rating / 引用一致性),0 error 才能进入执行阶段
|
||||
- **CEO 验收通过后立刻 commit + push**(用户硬规则:"别忘了每次通过ceo验收的提交git并推送")
|
||||
|
||||
## 6. 关键技术约束(已踩坑,全员必读)
|
||||
@@ -195,7 +196,7 @@
|
||||
|
||||
### 11.2.1 EXPRESS 快跳路径
|
||||
|
||||
快跳(EXPRESS)是将 PROPOSE→VOTE→OPTIMIZE→INTEGRATE 压缩为 PROPOSE→EXECUTE 的合法短路径。快跳适用条件为以下 **全部 6 条** 同时满足:
|
||||
快跳(EXPRESS)是将 PROPOSE→VOTE→OPTIMIZE→INTEGRATE 压缩为 PROPOSE→EXECUTE 的合法短路径。快跳适用条件为以下 **全部 7 条** 同时满足:
|
||||
|
||||
| # | 条件 | 验证方式 |
|
||||
|---|------|----------|
|
||||
@@ -205,8 +206,9 @@
|
||||
| E4 | 不新增公共 API 面:无新 `dstalk_` 前缀函数声明、无新插件接口结构体 | diff 中公共头文件无新增函数声明 |
|
||||
| E5 | 不涉及跨模块依赖变更:改动文件涉及 ≤ 2 个顶层目录(如 `dstalk-core/`、单个 `plugins/<name>/`) | `git diff --dirstat HEAD` 目录数 ≤ 2 |
|
||||
| E6 | CEO 在 WORKFLOW.md §7 任务条目中显式标注 `[EXPRESS]` | 人工核对 §7 |
|
||||
| E7 | 无 OPEN 状态的 CRITICAL 发现(见 §14.3 CRITICAL 阻塞规则) | `grep "CRITICAL.*OPEN" agents/audits/findings-registry.md` 输出为空 |
|
||||
|
||||
满足全部 E1-E6 → CEO 可声明 EXPRESS 快跳,任务直接进入 EXECUTE(跳过 VOTE / OPTIMIZE / INTEGRATE),对应转换规则 **T17**。
|
||||
满足全部 E1-E7 → CEO 可声明 EXPRESS 快跳,任务直接进入 EXECUTE(跳过 VOTE / OPTIMIZE / INTEGRATE),对应转换规则 **T17**。
|
||||
|
||||
**EXPRESS 升级**:若执行者在 EXECUTE 阶段发现任务实际超出 EXPRESS 条件(E1-E5 任一条不再成立),须立即报告 CEO。CEO 核实后移除 `[EXPRESS]` 标签并替换为 `[ESCALATED]`,任务从 EXECUTE 退回 VOTE 走完整治理路径,对应转换规则 **T18**。
|
||||
|
||||
@@ -224,13 +226,13 @@
|
||||
| T8 | EXECUTE | INSPECT | 所有指派的执行者子代理均已返回 done 报告(含 cmake build 0 error + ctest 100% pass 自述) | 自动(全员 done) |
|
||||
| T9 | EXECUTE | ROLLBACK | 任一执行者报告以下任一情况且 CEO 判定不可原地修复:段错误 / ABI 破坏 / CMake 无法 configure / 数据文件损坏 | CEO |
|
||||
| T10 | EXECUTE | ABORT | CEO 判定需求不再成立 OR 外部依赖不可用 | CEO |
|
||||
| T11 | INSPECT | SUCCESS | §12 验收清单全部通过:cmake configure 0 error AND cmake build 0 error 0 warning(改动文件) AND ctest 100% pass AND 测试目标数 ≥ 上一波 AND profile.md 已更新 AND 无未跟踪临时文件 AND git diff 无无关改动 | CEO |
|
||||
| T11 | INSPECT | SUCCESS | §12 验收清单 + §14.4 A1-A4 全部通过:cmake configure 0 error AND cmake build 0 error 0 warning(改动文件) AND ctest 100% pass AND 测试目标数 ≥ 上一波 AND profile.md 已更新 AND 无未跟踪临时文件 AND git diff 无无关改动 | CEO |
|
||||
| T12 | INSPECT | EXECUTE | 验收失败但满足全部:根因可定位到具体文件+行号 AND ≤2 个文件 AND ≤30 行改动 AND 不需重新设计 | CEO |
|
||||
| T13 | INSPECT | OPTIMIZE | 验收暴露以下任一设计问题:接口不兼容(编译通过但运行时错)/ 性能偏差 >50% / 架构假设被证伪(如单线程假设在多线程场景崩溃) | CEO |
|
||||
| T14 | INSPECT | ROLLBACK | 验收发现不可逆副作用:文件错误删除或覆盖 / 二进制损坏 / .git 目录状态异常 | CEO |
|
||||
| T15 | INSPECT | ABORT | CEO 判定继续修复成本 > 重新执行成本(需改 >5 个文件且涉及多个执行者重新协调) | CEO |
|
||||
| T16 | ANY | ABORT | 用户明确指令中止 OR 触发安全红线(凭证泄露、未加密敏感数据落盘) | CEO |
|
||||
| T17 | PROPOSE | EXECUTE | EXPRESS 快跳:同时满足 E1-E6(见 §11.2.1 EXPRESS 条件表)AND CEO 在 §7 任务条目标注 `[EXPRESS]` | CEO |
|
||||
| T17 | PROPOSE | EXECUTE | EXPRESS 快跳:同时满足 E1-E7(见 §11.2.1 EXPRESS 条件表)AND CEO 在 §7 任务条目标注 `[EXPRESS]` | CEO |
|
||||
| T18 | EXECUTE | VOTE | EXPRESS 升级:执行者报告任务实际范围超出 EXPRESS 条件(E1-E5 任一条不再成立)AND CEO 核实后将 `[EXPRESS]` 改为 `[ESCALATED]` | CEO |
|
||||
|
||||
### 11.4 状态进入/退出动作
|
||||
@@ -439,6 +441,8 @@ CRITICAL 阻塞规则:
|
||||
- 如果进入 EXECUTE 阶段时仍有 OPEN 状态的 CRITICAL 发现,CEO 必须明确决策:(a) 本波优先修 CRITICAL,或 (b) 标记 WONTFIX(附理由),或 (c) 降级为 HIGH(附降级理由)
|
||||
- 不允许带着 OPEN CRITICAL 发现进入 SUCCESS
|
||||
|
||||
**历史发现时限计算**:对于在本机制建立之前已存在的审计发现(如 F-11.x 系列),时限从 findings-registry.md 初始化日期(2026-05-27)开始计算,而非从原始审计日期计算。即 F-11.1-1 (HIGH) 的修复期限为 2026-05-27 + 2 Wave = W17 前。
|
||||
|
||||
### 14.4 CEO 审查协议(新增验收项)
|
||||
|
||||
在 §12 验收清单基础上,INSPECT 阶段追加以下检查项:
|
||||
@@ -468,6 +472,7 @@ CRITICAL 阻塞规则:
|
||||
| INSPECT | 1. 执行 §14.4 A1-A4 检查 2. 通过的发现 FIXED → VERIFIED → CLOSED 3. 失败的发现退回 ASSIGNED(REOPEN) | CEO |
|
||||
| SUCCESS | 1. 本波 CLOSED 的发现从 Open 分区移到 Closed 分区 2. 记录关闭日期和 Fix Wave | CEO |
|
||||
| ABORT | 本波 ASSIGNED 的发现回退到 OPEN(修复未发生) | CEO |
|
||||
| (T18) | 本波 ASSIGNED 的 finding 保留 ASSIGNED 状态,不回退 OPEN(升级不是中止) | CEO |
|
||||
|
||||
### 14.6 审计人职责
|
||||
|
||||
@@ -479,6 +484,8 @@ CRITICAL 阻塞规则:
|
||||
|
||||
审计人完成登记后通知 CEO 或 QA 组长进行 triage。
|
||||
|
||||
**存量审计报告**:`agents/audits/` 中已有的审计报告(W11.1-W13.6)缺少 Findings Summary 小节。QA 组长应在每个存量报告被引用时补充该小节,优先级为 MEDIUM,不阻塞当前工作。
|
||||
|
||||
### 14.7 关联文档
|
||||
|
||||
- [findings-registry.md](audits/findings-registry.md) — 发现注册表(单一事实来源)
|
||||
|
||||
@@ -29,5 +29,11 @@ performance_log:
|
||||
- date: 2026-05-27
|
||||
event: "W15.1: 为 WORKFLOW.md §11 协作状态机设计 EXPRESS 快跳路径。定义 E1-E6 六项客观准入条件,新增 T17(快跳入口) + T18(升级回退) 两条转换规则,§11.2 图增加快跳边标注,新增 §11.2.1 完整说明。建议将 EXPRESS 作为正式快跳标签(非新增状态,避免状态爆炸)"
|
||||
rating: completed
|
||||
- date: 2026-05-27
|
||||
event: "W15.4: 交叉审查 §11 EXPRESS 快跳与 §14 审计闭环集成。发现 2 处程序性遗漏(EXPRESS 准入缺 §14.3 CRITICAL 阻断检查、T18 升级缺少 ASSIGNED finding 状态处置)和 1 处措辞不一致(T11 未引用 §14.4 A1-A4)。结论 PASS-WITH-NOTES,建议追加 E7 条件 + §14.5 补充 T18 行 + 修正 T11 措辞"
|
||||
rating: completed
|
||||
- date: 2026-05-27
|
||||
event: "W15.7: 根据 W15.4 审查发现修复 WORKFLOW.md 3 处交叉引用。Fix1: §11.2.1 新增 E7 条件(CRITICAL 发现清零) + 正文 6→7 条 + E1-E6→E1-E7 + T17 同步更新。Fix2: §11.3 T11 验收标准追加 §14.4 A1-A4。Fix3: §14.5 集成点表新增 (T18) 行(ASSIGNED finding 不回退 OPEN)。无源代码修改,无 §13 变动"
|
||||
rating: completed
|
||||
current_groups: []
|
||||
---
|
||||
|
||||
@@ -25,7 +25,9 @@
|
||||
|
||||
## Closed Findings
|
||||
|
||||
| ID | Severity | Source | Title | Closed Date | Fix Wave | Verified By |
|
||||
> Closed Findings 表必须包含 Close Date 字段(格式 YYYY-MM-DD),记录发现关闭日期。字段定义见 WORKFLOW.md §14.1。
|
||||
|
||||
| ID | Severity | Source | Title | Close Date | Fix Wave | Verified By |
|
||||
|----|----------|--------|-------|-------------|----------|-------------|
|
||||
| — | — | — | 暂无已关闭发现 | — | — | — |
|
||||
|
||||
|
||||
@@ -42,6 +42,23 @@ performance_log:
|
||||
${CMAKE_BINARY_DIR}/bin 作为防御性显式声明;删除陈旧 build/dstalk-cli/dstalk-cli.exe。
|
||||
验证: clean rebuild 后仅 build/bin/dstalk-cli.exe 存在,ctest 4/4 pass。
|
||||
rating: done
|
||||
- date: 2026-05-27
|
||||
event: "W15.6: 验证 check_agents_metadata.py 运行结果 + 集成分析 + YAML 解析确认"
|
||||
detail: >
|
||||
运行结果: default/json 模式 0 error 1 warning (audits/ 目录无 profile.md, 假阳性);
|
||||
--strict 模式 exit code 2 (warning 升格为 error)。
|
||||
YAML 验证: engineer-sun + security-cao 的 profile.md 均被 yaml.safe_load 正确解析。
|
||||
集成建议: refresh_status.py 可 import 调用 check 函数作为前置门禁, 发现 error 时拒绝生成 STATUS.md。
|
||||
WORKFLOW.md §5 缺少元数据自查项, 建议新增 "每波开始前运行 check_agents_metadata.py"。
|
||||
rating: done
|
||||
- date: 2026-05-27
|
||||
event: "W15.9: 修复 check_agents_metadata.py 假阳性 warning + 更新 WORKFLOW.md §5"
|
||||
detail: >
|
||||
Fix 1: check_agents_metadata.py 目录扫描跳过 agents/audits/ (非 agent 目录),将所有
|
||||
`child.name == 'groups'` 改为 `child.name in ('groups', 'audits')`。
|
||||
Fix 2: WORKFLOW.md §5 新增 "元数据完整性" 条目,要求每波开始前运行 check_agents_metadata.py 验证。
|
||||
Fix 3: 修复后运行 0 errors 0 warnings,5 checks passed。
|
||||
rating: done
|
||||
- date: 2026-05-27
|
||||
event: "W15.3: 设计 agents/ 目录元数据自检机制 (scripts/check_agents_metadata.py)"
|
||||
detail: >
|
||||
|
||||
@@ -39,6 +39,12 @@ performance_log:
|
||||
- date: 2026-05-27
|
||||
event: "W15.2: 设计审计→修复闭环机制。定义 findings-registry.md 格式 + OPEN→ASSIGNED→FIXED→VERIFIED→CLOSED 状态生命周期 + 4级严重度自动转化规则 + WORKFLOW.md §14 完整草案。从 W11.1/W11.7 提取 10 条历史发现初始化注册表"
|
||||
rating: A
|
||||
- date: 2026-05-27
|
||||
event: "W15.5: §14 审计闭环内部一致性检查。发现 5 项不一致:Closed Date 未定义/C3 历史发现时限歧义/8 份审计报告缺 Findings Summary/PROMPT_TEMPLATE 缺 Fixes 标注/findings-registry L4 引用偏差。结论 PASS-WITH-NOTES,4 项修复建议已提交。"
|
||||
rating: A
|
||||
- date: 2026-05-27
|
||||
event: "W15.8: 根据 W15.5 审查发现修复 §14 内部问题 + PROMPT_TEMPLATE 缺失标注。Fix1: findings-registry.md Closed Date→Close Date + 字段定义补注。Fix2: WORKFLOW.md §14.3 新增历史发现时限计算说明。Fix3: WORKFLOW.md §14.6 新增存量审计报告缺失 Findings Summary 处理指南。Fix4: PROMPT_TEMPLATE.md 交付清单新增 Finding 关联行 + 反模式7。4项全部完成。"
|
||||
rating: A
|
||||
current_groups:
|
||||
- grp-quality-core (组长)
|
||||
---
|
||||
|
||||
Reference in New Issue
Block a user