diff --git a/.blueprint/modules/governance-feedback-loop.md b/.blueprint/modules/governance-feedback-loop.md index 45f5674..6f27bb4 100644 --- a/.blueprint/modules/governance-feedback-loop.md +++ b/.blueprint/modules/governance-feedback-loop.md @@ -32,6 +32,22 @@ 每一环都有数据留痕,管理动作可回溯。 +## 设计档案:agent 自验协议的辩证与务实版选择(2026-07-06) + +用户确立的协作协议:**需求对话 → 构建默认 agent 按钮化 → agent 自验 → 快速自修 → 结构化反馈 → 人终验**。经多角度辩证后识别出五个内生张力与对应调节器,最终按"大量开发者经验(流程死于执行成本而非设计错误;检查单短才有效;机制记的留下、靠记忆的蒸发)"选择**最小执行版**落地,完整辩证存档于此备查: + +| 内生张力 | 调节器 | 关键点 | +|---------|--------|--------| +| 运动员兼裁判(验证与功能共享理解偏差) | 负面披露(「没验什么」一节) | 只覆盖已知盲区;未知盲区由人终验兜底——两柱互补,缺一超载。实证:mcp-single-server 自验全绿但 git-bash 层全挂,靠端到端终验抓住 | +| Goodhart(宽松断言让自己过) | 改断言需报备 | 非自觉依赖:断言修改在 diff 天然可审计 | +| 橡皮图章化(终验退化为签字) | 意外感触发深查 | 深查频率是自由参数,框架内无机制阻止衰减——最终锚是人的纪律,框架诚实承认此点方自洽 | +| 默认按钮化 vs 少而稳 | 默认分层 | 默认的是"存在可验证路径",不是"永久驻军测试";豁免需声明 | +| 不可按钮化工作(审美/体感/探索) | 显式豁免 | 强推得到仪式性假按钮 | + +**关键澄清(两把尺子)**:acceptance 由 agent 参与撰写,可能继承需求理解偏差——agent 自验对 acceptance,人终验必须对**意图**,否则是拿被污染的尺子量两次。 + +**落地物**(最小版,执行成本趋零):AGENTS.md / 接入包模板 / agents-meta-rules 增设「自验报告纪律」三条;用户侧两个习惯(先看「没验什么」;意外感或外部契约变更时深查)。刻意不做:新工具、强制 hook、报告模板系统——坑驱动增量,人肉版跑出疼点后再在本模块机制化。 + ## 任务卡 (concept 阶段,L 级——待 /architect 设计确认后由 /splitter 拆卡) diff --git a/AGENTS.md b/AGENTS.md index 881014d..4666394 100644 --- a/AGENTS.md +++ b/AGENTS.md @@ -214,6 +214,10 @@ docs/templates/ 炼境接入包模板草案(设计层) - 正例:`[Tauri command] apply_onboarding_pack(project_id) → written≥1,文件在磁盘存在` - 正例:`[HTTP API] POST /api/users → 201,body.id 非空` - 反例:`功能正常可用`(模糊,agent 无法自验) +6. **自验报告纪律**:交人终验前的反馈必须含「**没验什么**」一节(未覆盖的路径、依赖的 + 假设、不确定的地方);自修过程中改了断言/验收标准必须显式声明理由(改功能让测试过是 + 常规,改测试让功能过需报备);agent 自验对 acceptance,人终验对意图——acceptance + 可能继承需求理解偏差,两把尺子不可合一 ### 炼境自己的 Agent 按钮清单 diff --git a/docs/templates/agents-meta-rules.md b/docs/templates/agents-meta-rules.md index ee64c7f..e50e81f 100644 --- a/docs/templates/agents-meta-rules.md +++ b/docs/templates/agents-meta-rules.md @@ -124,6 +124,15 @@ acceptance 是 agent 自验的唯一判断依据,必须是**可执行断言** 含 acceptance 的任务卡才可派发;acceptance 可执行,自验才是真自验——这是整个体系的核心关节。 +### 自验报告纪律 + +- 交人终验前的反馈必须含「**没验什么**」一节:未覆盖的路径、依赖的假设、不确定的地方 +- 自修过程中改了断言/验收标准必须显式声明理由(改功能让测试过是常规,改测试让功能过需报备) +- agent 自验对 acceptance,人终验对**意图**——acceptance 可能继承需求理解偏差,两把尺子不可合一 + +> 为什么:自验的结构性盲区是"验证代码与功能代码共享同一份理解偏差",负面披露收窄已知盲区, +> 人终验(对意图、带意外感触发的深查)兜底未知盲区。两者互补,缺一另一超载。 + ### 自验失败降级约定 - **失败 2 次内**:自行修正,继续自验 diff --git a/src-tauri/resources/onboarding/AGENTS.md.tmpl b/src-tauri/resources/onboarding/AGENTS.md.tmpl index bbd881b..56ba9b5 100644 --- a/src-tauri/resources/onboarding/AGENTS.md.tmpl +++ b/src-tauri/resources/onboarding/AGENTS.md.tmpl @@ -60,6 +60,10 @@ - 正例:`[Tauri command] apply_onboarding_pack(project_id) → written≥1,文件在磁盘存在` - 正例:`[HTTP API] POST /api/users → 201,body.id 非空` - 反例:`功能正常可用`(模糊,agent 无法自验) +6. **自验报告纪律**:交人终验前的反馈必须含「**没验什么**」一节(未覆盖的路径、依赖的 + 假设、不确定的地方);自修过程中改了断言/验收标准必须显式声明理由(改功能让测试过是 + 常规,改测试让功能过需报备);agent 自验对 acceptance,人终验对意图——acceptance + 可能继承需求理解偏差,两把尺子不可合一 ## 多 AI CLI 协作