From 1041ca10879a65aa0af65f166e318f8acb5d7cfb Mon Sep 17 00:00:00 2001 From: cyning Date: Sun, 31 May 2026 20:06:12 +0800 Subject: [PATCH 01/12] =?UTF-8?q?docs(harness):=20KPI=20rubric=20v1.2=20?= =?UTF-8?q?=E2=80=94=2000=20=E6=80=BB=E8=B0=83=E5=BA=A6=E5=B8=BD=E4=B8=8E?= =?UTF-8?q?=E5=85=B3=E8=B4=A6/50=20=E6=A8=A1=E6=9D=BF=E9=93=BE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 新增 KPI 评分规则、00-orchestrator 帽与 invoke 模板;CLOSE_TRACE、50 复检模板与 SKILL-harness-task 指针对齐 v1.2 关账核对。 Co-authored-by: Cursor --- docs/harness/guides/KPI_RUBRIC_v1_2.md | 242 ++++++++++++++++++ .../prompts/handoff/HANDOFF_CLOSE_TRACE.md | 32 +-- docs/harness/prompts/hats/00-orchestrator.md | 92 +++++++ .../TEMPLATE-independent-reinspect-invoke.md | 50 +++- .../templates/TEMPLATE-orchestrator-invoke.md | 60 +++++ docs/tasks/skills/SKILL-harness-task.md | 147 ++--------- 6 files changed, 460 insertions(+), 163 deletions(-) create mode 100644 docs/harness/guides/KPI_RUBRIC_v1_2.md create mode 100644 docs/harness/prompts/hats/00-orchestrator.md create mode 100644 docs/harness/prompts/templates/TEMPLATE-orchestrator-invoke.md diff --git a/docs/harness/guides/KPI_RUBRIC_v1_2.md b/docs/harness/guides/KPI_RUBRIC_v1_2.md new file mode 100644 index 00000000..d5cbede4 --- /dev/null +++ b/docs/harness/guides/KPI_RUBRIC_v1_2.md @@ -0,0 +1,242 @@ +# Agent 执行任务 KPI 评分规则(v1.2) + +> **状态**:`active`(2026-05-31 定稿) +> **用途**:00 总调度帽、关账轮、维护者抽检时,对 **HatInstance(帽实例)** 打分并汇总 **Task KPI%**。 +> **落盘**:task 正文 **`### KPI(00)`** 表;公式与细则 **以本文件为真值**(不写死在 00 对话行)。 +> **关联**:[`../prompts/00-orchestrator.md`](../prompts/00-orchestrator.md)、[`../HARNESS_V2_PLAN.md`](../HARNESS_V2_PLAN.md) §5.7–§5.8、[`../prompts/HANDOFF_CLOSE_TRACE.md`](../prompts/HANDOFF_CLOSE_TRACE.md)。 + +--- + +## 1. 术语表 + +| 术语 | 含义 | +|------|------| +| **hat_code** | Harness 帽编号:`00` 总调度;`10` 需求;`20` 规格短评;`22` 任务审核;`30` 执行;`40` 自检;`50` 独立复检/全局验收;`CLOSE` 关账 | +| **round** | 同帽多轮:`R1`、`R2`、`close` 等 | +| **agent_mode** | `main_chat`(总 Chat / 00)\| `task_subagent`(Cursor `Task` 派发) | +| **HatInstance** | 本 task 上某帽的 **一次执行**(KPI 表一行) | +| **50** | **帽子** `50-independent-reinspect`(独立复检),**不是**测试套件编号 | +| **返工** | **外部打回**:22 要求 R+1、50 fail 打回 30、人明确要求返工;**不含** 30 内自我修正且未落审查/复检 | +| **CI 绿** | 仅 task 列出的 **关联子仓** + workflow(对齐根 `AGENTS.md` §8) | +| **J-exp** | `experience_capture` 档位判断是否合理 | +| **J-gate** | `human_gate` / 阻塞判断 | +| **J-scope** | 范围、`freeze_id`、静默扩 scope | +| **J-evidence** | 无证据却 pass | +| **J-refuse** | 该拒开工未拒 / 该停未停 | +| **judgment_notes** | 任一大维或 J 为 warn/fail 时 **必填** 的原因说明 | + +--- + +## 2. 大维权重(v1.2 · 合计 100%) + +| 大维 | 权重 | 聚合方式(Task 级) | +|------|------|---------------------| +| **D1** 交付 | 20% | 各帽实例 **算术平均** | +| **D2** 判断 | 30% | 各帽实例 **最小值(min)** | +| **D3** 上下文 | 15% | **平均** | +| **D4** 合规 | 15% | **min** | +| **D5** 结果 | 20% | **min** | + +**D2 子项权重(合成单帽 D2 前,各子项 100/60/0)** + +| 子项 | 占 Task 总权重 | +|------|----------------| +| J-exp | 4% | +| J-gate | 5% | +| J-scope | 5% | +| J-evidence | 6% | +| J-refuse | 10% | + +**单帽 D2 规则**:任一 J 子项 **fail** → 该帽 **D2 = fail(0)**;否则按子项加权平均后映射:≥85→pass(100);60–84→warn(60);<60→fail(0)。 + +--- + +## 3. 评分规则表(pass=100 · warn=60 · fail=0) + +### D1 交付(20%) + +| 等级 | 条件 | +|------|------| +| pass | 下列 checklist **全部满足**(仅勾选本 task **已执行** 的帽所要求项) | +| warn | **缺 1 项** | +| fail | **缺 ≥2 项** | + +**checklist** + +- [ ] task 路径有效,验收节可读 +- [ ] 若走过 **40**:`### 自检结论(执行者)` 已回填 +- [ ] 若走过 **22**:`reviews/task_*_audit_*.md` 存在 +- [ ] 若走过 **50**:`reinspect_results/` 或 50 报告路径存在 +- [ ] 该帽若要求 invoke:对应 `invokes/...` 已落盘 + +### D2 判断(30%) + +| 等级 | 条件 | +|------|------| +| pass | J 子项 **无 fail**;warn ≤1 | +| warn | 无 fail;warn **2 项** | +| fail | **任一** J fail **或** warn ≥3 | + +**J 子项判定要点(附录 A)** + +| 子项 | pass | warn | fail | +|------|------|------|------| +| J-exp | 与 task 档位一致 | 建议升级/降级但理由弱 | 明显应 `required` 仍 n/a 或相反 | +| J-gate | 闸状态判断正确 | 漏标建议闸 | 代签 approved / 误闯 pending 闸 | +| J-scope | 未静默扩 scope | 边界模糊已提示 | 明显扩 scope 或漏升 freeze | +| J-evidence | 证据可定位 | 证据偏弱但已声明 | 无证据却 pass | +| J-refuse | 拒/停正确 | — | 该拒未拒或该停未停 | + +### D3 上下文(15%) + +| 等级 | 条件 | +|------|------| +| pass | 三项全满足 | +| warn | **1 项**不满足 | +| fail | **≥2 项**不满足 | + +1. 父→子 Handoff(00→Task)正文 **≤500 字**(路径列表不计入) +2. **未**粘贴总 Chat / 30 执行过程长文 +3. `worktree_root` / cwd 与 task、invoke **一致**(若已声明 worktree) + +### D4 合规(15%) + +| 等级 | 条件 | +|------|------| +| pass | 无严重违规;须 `approved` 的 gate 已 approved | +| warn | **1 处**轻微违规(缺 invoke 元信息、commit 未含 slug 等) | +| fail | **代签 approved**、跳过 pending 闸开工、在 `main` 上 `semi_auto` 链式提交 | + +### D5 结果(20%) + +| 等级 | 条件 | +|------|------| +| pass | 返工 **0**;关联子仓 **必绿 CI 全绿**;若已跑 **50**:建议合并且无阻塞 | +| warn | 返工 **1**;或 CI 有 **与本 task 无关** 的失败(须在 notes 注明) | +| fail | 返工 **≥2**;或 **本 task 关键** CI 红;或 **50 阻塞合并** | + +**未跑 50 的帽实例**:D5 填 **`—`**,不参与该帽 D5;Task 级 D5 仅对已有 D5 分数的帽取 min。 + +--- + +## 4. Task 汇总 + +### 4.1 公式 + +```text +Task_KPI% = D1×20% + D2×30% + D3×15% + D4×15% + D5×20% +(各大维得分已按 §2 聚合) +``` + +### 4.2 状态(语义) + +| 状态 | 规则 | +|------|------| +| **blocked** | **任一** HatInstance 的 **D2=fail** 或 **D5=fail**(v1.2 收紧;覆盖 KPI%) | +| **pass** | 非 blocked 且 KPI% **≥ 80** | +| **warn** | 非 blocked 且 **60 ≤ KPI% < 80** | +| **fail** | 非 blocked 且 KPI% **< 60** | + +**关账硬规则(并行)**:`human_gate` pending、50 书面阻塞、必绿 CI 红 → **不得关账**,即使 KPI%≥80。 + +### 4.3 task 落盘表(模板) + +```markdown +### KPI(00) + +**rubric**: KPI_RUBRIC_v1_2 · **汇总**: {KPI%} · **状态**: pass|warn|fail|blocked · **帽**: … + +| hat_code | round | agent_mode | D1 | D2 | D3 | D4 | D5 | judgment_notes | +|----------|-------|------------|----|----|----|----|-----|----------------| +| … | … | … | … | … | … | … | … | … | + +**blocked 原因**:(若有) +``` + +**judgment_notes**:任一大维或 J 为 warn/fail → **必填**。 + +--- + +## 5. 版本迁移(v1.1 → v1.2) + +| 变更项 | v1.1 | v1.2 | +|--------|------|------| +| D1 / D5 权重 | 25% / 15% | **20% / 20%** | +| D2 子项 | 均分 6% | **J-refuse 10%**,其余见 §2 | +| blocked | 仅 22/50 的 D2/D5 fail | **任一帽** D2 或 D5 fail | +| Task 维聚合 | 全算术平均 | **D2/D4/D5=min**;D1/D3=平均 | +| Task 状态阈值 | 仅 blocked 覆盖 | **+ pass≥80 / warn 60–79 / fail<60** | +| 经验归纳 | 未纳入 | **`experience_capture`** + Judgment(**无 60 帽**) | + +**存量 task 适配(1 条)** + +- **已关账、无 `### KPI(00)`**:**不强制重算**;新关账或 **`00` 复盘中** 的任务从 v1.2 起算。 +- **进行中 task**:在下次 **50 或 CLOSE** 前补写 KPI 表;`rubric` 标 `KPI_RUBRIC_v1_2`。 +- 若需对比历史,在 notes 注明「按 v1.1 估算,仅供参考」,**勿**与 v1.2 百分比直接排名。 + +--- + +## 6. 完整计算示例(虚构 task · 含 30/40/50) + +**背景**:`task_demo_api_fix_v1` · 已跑 30→40→50 · 50 建议合并,J-exp 建议升 `experience_capture: required`。 + +### 6.1 HatInstance 得分 + +| hat_code | round | agent_mode | D1 | D2 | D3 | D4 | D5 | judgment_notes | +|----------|-------|------------|----|----|----|----|-----|----------------| +| 30 | R1 | task_subagent | 100 | 100 | 100 | 100 | — | — | +| 40 | R1 | task_subagent | 100 | 100 | 100 | 100 | — | — | +| 50 | close | task_subagent | 100 | 60 | 100 | 100 | 100 | J-exp warn: 同类排障将复现,建议 task 升 required;见 reinspect §3 | + +**50 的 D2=60 推导**:J-exp warn(+ 其余 J pass)→ D2 整体 warn → 60。 + +### 6.2 Task 各大维聚合 + +| 大维 | 计算 | 得分 | +|------|------|------| +| D1 | avg(100,100,100) | **100** | +| D2 | min(100,100,60) | **60** | +| D3 | avg(100,100,100) | **100** | +| D4 | min(100,100,100) | **100** | +| D5 | min(—,—,100) → 仅 50 有分 | **100** | + +### 6.3 Task_KPI% 与状态 + +```text +Task_KPI% = 100×20% + 60×30% + 100×15% + 100×15% + 100×20% + = 20 + 18 + 15 + 15 + 20 = 88% + +blocked:无(50 的 D2 为 warn 非 fail) +状态:pass(88 ≥ 80) +``` + +### 6.4 与 `experience_capture` 联动 + +- task 原为 `recommended` → 50 + Judgment 建议升 **required** → **22 或人** 改 task 元信息后再关账;CLOSE 核对 [`HANDOFF_CLOSE_TRACE.md`](../prompts/HANDOFF_CLOSE_TRACE.md) §6。 + +### 6.5 反例(blocked) + +若 50 的 **D5=fail**(阻塞合并): + +```text +blocked = 是(50 · D5 fail) +→ 忽略 KPI%,不得关账,须回 30 +``` + +--- + +## 7. 维护者 rsync(子仓执行真值) + +工作区改本文件及 `00` / 模板后,在 **`Projects/` 根** 按需同步至 `ai-ink-brain-api-python/docs/harness/`(**禁止**整目录覆盖)。清单见 [`RSYNC_PROMPTS_TO_API_PYTHON.md`](RSYNC_PROMPTS_TO_API_PYTHON.md)。 + +--- + +## 修订记录 + +| 日期 | 摘要 | +|------|------| +| 2026-05-31 | v1.2:初版定稿 + §6 演算示例 + §5 迁移 | + +## 给 Cursor + +`KPI_RUBRIC_v1_2`、`00-orchestrator`、`HatInstance`、`judgment_notes`、`blocked`、`experience_capture`、`D1`、`D2`、`J-exp`、`J-refuse` diff --git a/docs/harness/prompts/handoff/HANDOFF_CLOSE_TRACE.md b/docs/harness/prompts/handoff/HANDOFF_CLOSE_TRACE.md index 983f149e..6f006448 100644 --- a/docs/harness/prompts/handoff/HANDOFF_CLOSE_TRACE.md +++ b/docs/harness/prompts/handoff/HANDOFF_CLOSE_TRACE.md @@ -1,7 +1,7 @@ # Harness 通则:流程关闭时的执行路线与 Commit 回溯 > **适用范围**:本轮判定 **无下一棒**、Harness 子流程 **可关闭** 时(任务签收、阶段收口、独立复检建议合并且不再返工等)。 -> **与 [`handoff/HANDOFF_AUTO_COMMIT.md`](handoff/HANDOFF_AUTO_COMMIT.md) 关系**:有下一棒 → 产出 Prompt + 本轮 commit;**无下一棒** → **不**强行编造下一棒 Prompt,改产出本章 **执行路线 + commit 表**(本轮工件仍须按 AUTO_COMMIT 提交,若确有落盘)。 +> **与 [`HANDOFF_AUTO_COMMIT.md`](HANDOFF_AUTO_COMMIT.md) 关系**:有下一棒 → 产出 Prompt + 本轮 commit;**无下一棒** → **不**强行编造下一棒 Prompt,改产出本章 **执行路线 + commit 表**(本轮工件仍须按 AUTO_COMMIT 提交,若确有落盘)。 > **真值层级**:Guides;审查终轮、task `done`、合并决策以各帽规则为准。 --- @@ -17,7 +17,7 @@ | **独立复检 / 全局验收通过** | `50` | 建议合并且无阻塞;不再打回执行帽 | | **用户明示** | 任意帽 | 「本 task 结束」「不要下一棒 Prompt」 | -**仍须下一棒时**:继续用各 `templates/TEMPLATE-*-invoke` §3 + `handoff/HANDOFF_AUTO_COMMIT`,**不得**用空回溯表代替 Prompt。 +**仍须下一棒时**:继续用各 `TEMPLATE-*-invoke` §3 + `HANDOFF_AUTO_COMMIT`,**不得**用空回溯表代替 Prompt。 --- @@ -79,18 +79,6 @@ git -C ai-ink-brain-api-python log --oneline -20 -- docs/tasks/active/task_ 真值:[`docs/tasks/skills/SKILL-harness-loop-batch.md`](../../../tasks/skills/SKILL-harness-loop-batch.md) **§长 Loop 完成汇报**。 - -| 项 | 约定 | -|----|------| -| **何时** | 母单 META 关账 commit **之后**(子 round ≥2 或母 task 明示长 Loop) | -| **落盘** | `docs/harness/invokes/by-task//REPORT_completion_YYYYMMDD_v1.md` | -| **正文** | **§1~§5** 落盘(定位、成果、工件、commit、验收) | -| **§6** | **待你侧后续**(开 PR、meta-reinspect、SKILL accepted 等)**仅对话**,**禁止**写入 REPORT | -| **与 CLOSE_TRACE** | META `invoke_*_CLOSE_*-META` 保留 commit 表;REPORT 链该 invoke,不整段复制 | - --- ## 3. 与各帽子的分工 @@ -108,10 +96,18 @@ git -C ai-ink-brain-api-python log --oneline -20 -- docs/tasks/active/task_ **编号 `00`**:**不插入** SDD 链 10→50 的法定顺序;包在链外,由 **主 Chat Agent** 承担。 +> **真值**:[`../guides/KPI_RUBRIC_v1_2.md`](../guides/KPI_RUBRIC_v1_2.md)、[`TEMPLATE-orchestrator-invoke.md`](TEMPLATE-orchestrator-invoke.md)、[`HANDOFF_SEMI_AUTO.md`](HANDOFF_SEMI_AUTO.md)。 + +--- + +## 身份 + +你是 **总调度** Agent:读 task 元信息与 `human_gate`;决定派哪顶帽、是否 `Task` 子代理;组 **Handoff**;收各帽短报告;汇总 **KPI**;对人类只报阶段结论 / 阻塞 / 待签字。 + +--- + +## 只做什么 + +- 扫描 task:`semi_auto`、`audit_profile`、`human_gate`、`experience_capture`、`test_strategy`、`freeze_id`。 +- 为每顶帽准备 **Handoff**(路径表 + ≤15 行结论;**禁止**贴 30/总 Chat 长文)。 +- 用 **`Task` 工具** 派发子代理(`task_subagent`)或同会话戴帽(维护者明示时)。 +- 每棒结束后按 [`KPI_RUBRIC_v1_2.md`](../guides/KPI_RUBRIC_v1_2.md) 填 **HatInstance** 行;关账前写 task **`### KPI(00)`**。 +- 触发 **CLOSE** 时核对 [`HANDOFF_CLOSE_TRACE.md`](HANDOFF_CLOSE_TRACE.md) + `experience_capture` 档位。 + +--- + +## 禁止什么 + +- 不替人改 `human_gate` 为 `approved`;不代签审查。 +- 不把子代理工具日志贴回主会话(只收结构化短报告)。 +- 不静默扩 task scope;不跳过 22 强制落盘(若 task 要求)。 +- **不新增 60 帽**;经验归纳走 `experience_capture` + CLOSE,见 §5 字段。 + +--- + +## 输入假设 + +- task 路径有效;Open Folder 为 **`Projects/`**(工作区 task)或维护者指定的子仓 + worktree。 +- 子帽 invoke 已替换占位符或你将通过模板生成。 + +--- + +## 输出形状(对人类) + +```text +阶段:{帽} · {pass|blocked|待 HG-xxx} +交付:{Deliverable 路径列表} +下一棒:{帽 | CLOSE | 停—原因} +KPI 摘要:{Task_KPI%} · {pass|warn|fail|blocked}(详见 task ### KPI(00)) +``` + +--- + +## 子代理 Handoff 最小字段 + +| 字段 | 要求 | +|------|------| +| `hat_code` / `round` | 与本次派发一致 | +| `task_path` | 相对 `Projects/` | +| `read_paths` | 必读文件列表 | +| `forbidden` | 禁止粘贴的上下文(如 30 聊天史) | +| `output_shape` | 该帽交接物 + **Judgment** 块(见各 `TEMPLATE-*`) | + +**50 派发**:必须用 [`TEMPLATE-independent-reinspect-invoke.md`](TEMPLATE-independent-reinspect-invoke.md) **§父侧 Task Handoff**。 + +--- + +## 停止条件 + +- 关账完成(task → `done/` + 关闭回溯 + KPI 表)。 +- 或输出 **阻塞清单**(缺 gate、缺自检、KPI blocked、CI 红)。 + +--- + +## 交接物 + +- task **`### KPI(00)`**(rubric 版本 `KPI_RUBRIC_v1_2`)。 +- 各帽 invoke 快照(按 [`../invokes/README.md`](../invokes/README.md))。 +- 关账:**执行路线与 Commit 回溯**(见 `HANDOFF_CLOSE_TRACE`)。 + +--- + +## Judgment(00 自评 · 关账轮) + +- **experience_capture**:关账前档位是否与 50/30 建议一致。 +- **gate/risk**:是否仍有 pending 闸。 +- **hat_self**:编排是否漏帽、Handoff 是否合规。 + +--- + +## 修订记录 + +| 日期 | 摘要 | +|------|------| +| 2026-05-31 | v1:与 KPI v1.2、无 60 帽、Task 派发纪律同批落盘 | diff --git a/docs/harness/prompts/templates/TEMPLATE-independent-reinspect-invoke.md b/docs/harness/prompts/templates/TEMPLATE-independent-reinspect-invoke.md index 2373a5b3..e81de50e 100644 --- a/docs/harness/prompts/templates/TEMPLATE-independent-reinspect-invoke.md +++ b/docs/harness/prompts/templates/TEMPLATE-independent-reinspect-invoke.md @@ -1,10 +1,29 @@ # 独立复检 + 全局验收 · 对话调用模板(与 `50-independent-reinspect` 配套) > **用途**:复制下文 **§3 可复制 Prompt 正文** 到对话,替换 **§2 占位符** 后发起 **`50`**:**§一 独立复检** 与/或 **§二 全局验收**(人签 checklist 辅助)。 -> **帽子真值**:[`hats/50-independent-reinspect.md`](hats/50-independent-reinspect.md)(复检输入裁剪、输出形状、全局验收禁止项)。 -> **前置**:task 内 **`### 自检结论(执行者)`** 应已存在(见 [`hats/40-self-check.md`](hats/40-self-check.md)、[`templates/TEMPLATE-self-check-invoke.md`](templates/TEMPLATE-self-check-invoke.md));缺失则复检帽须在 **阻塞项** 首条写明。 -> **可选输入**:20 帽短评路径(`docs/tasks/review_results/`)或 task 内签收节;无则填 **`无`**。 -> **全量升级(可选)**:需要结构化输出节(`failure_paths` 逐项、`test_strategy` 专节、按子仓 checklist、PR 小结等)时,改用 [`templates/TEMPLATE-independent-reinspect-invoke-full.md`](templates/TEMPLATE-independent-reinspect-invoke-full.md);占位符已填示例见 [`EXAMPLE-invoke-independent-reinspect-both-chatbi-p1-1.md`](EXAMPLE-invoke-independent-reinspect-both-chatbi-p1-1.md)。**§3 短版仍为默认轻量入口**,全量模板不替代短版与 `50` 正文。 +> **帽子真值**:[`50-independent-reinspect.md`](50-independent-reinspect.md)(复检输入裁剪、输出形状、全局验收禁止项)。 +> **前置**:task 内 **`### 自检结论(执行者)`** 应已存在(见 [`40-self-check.md`](40-self-check.md)、[`TEMPLATE-self-check-invoke.md`](TEMPLATE-self-check-invoke.md));缺失则复检帽须在 **阻塞项** 首条写明。 +> **可选输入**:终轮任务审核 **`签收 / 关闭`** 节路径(`docs/harness/reviews/` 或子仓 `…/harness/reviews/` 下 `*_audit_*.md`)。 +> **全量升级(可选)**:需要结构化输出节(`failure_paths` 逐项、`test_strategy` 专节、按子仓 checklist、PR 小结等)时,改用 [`TEMPLATE-independent-reinspect-invoke-full.md`](TEMPLATE-independent-reinspect-invoke-full.md);占位符已填示例见 [`EXAMPLE-invoke-independent-reinspect-both-chatbi-p1-1.md`](EXAMPLE-invoke-independent-reinspect-both-chatbi-p1-1.md)。**§3 短版仍为默认轻量入口**,全量模板不替代短版与 `50` 正文。 +> **00 派发**:总调度经 `Task` 子代理发起 50 时,用下文 **§父侧 Task Handoff** + 本模板 §3 嵌入子代理 `prompt`;真值 [`00-orchestrator.md`](00-orchestrator.md)、[`../guides/KPI_RUBRIC_v1_2.md`](../guides/KPI_RUBRIC_v1_2.md)。 + +--- + +## 父侧 Task Handoff(00 → 50 子代理 · 维护者/00 填写) + +```text +【Harness 50 · Task 子代理 Handoff】 +- 禁止:总 Chat 全文、30 执行过程、子代理历史 +- 必读:{{TASK_PATH}} · task 内 ### 自检结论(执行者) +- diff:{{DIFF_RANGE_OR_NOTE}} +- 审查:{{AUDIT_REVIEW_PATH_OR_NONE}} +- 模式:{{REINSPECT_MODE}} +- 子仓 cwd:{{SUBPROJECT_ROOT}} +- 输出:验收表 + 合并建议 + Judgment(见下)+ 若 warn/fail 必填 judgment_notes +- 评分:完成后 00 按 KPI_RUBRIC_v1_2 填 HatInstance 行(D1–D5) + +(以下为 50 帽 §3 正文,占位符须已替换) +``` --- @@ -28,7 +47,6 @@ | `{{REINSPECT_MODE}}` | **`独立复检`** \| **`全局验收`** \| **`两者`**(三选一,照抄其一) | `独立复检` | | `{{DIFF_RANGE_OR_NOTE}}` | 供复检对照的 diff 说明:如 `git diff origin/main...HEAD`、或 patch 路径、或 `无` | `origin/main...HEAD` | | `{{AUDIT_REVIEW_PATH_OR_NONE}}` | 任务审核终轮文档路径(读取 **签收/关闭**);无则 **`无`** | `无` | -| `{{REINSPECT_OUTPUT_PATH}}` | **复检报告落盘路径**(相对本仓根;须 under `docs/tasks/reinspect_results/`) | `docs/tasks/reinspect_results/reinspect__20260522_v1.md` | --- @@ -36,9 +54,9 @@ ```text 你正在扮演工作区 Harness「独立复检 + 全局验收帽」,严格遵循: -- docs/harness/prompts/hats/50-independent-reinspect.md(§一 独立复检;§二 全局验收) +- docs/harness/prompts/50-independent-reinspect.md(§一 独立复检;§二 全局验收) - docs/harness/HARNESS_V2_PLAN.md §5(test_strategy: required 时关注测试与实现关系) -- 根目录 AGENTS.md §8、docs/harness/ACCEPTANCE_LANDING.md(落盘结构) +- 根目录 AGENTS.md §8、docs/harness/HARNESS_V2_P0_ACCEPTANCE.md(若本次变更触及合并前必绿子仓) 输入(已由人工替换占位符;若你仍看到 {{…}} 或 REINSPECT_MODE 非三选一字面,须先追问用户,不得开工): - 主 task 路径: @@ -56,20 +74,23 @@ 0. **Invoke 快照(开帽起点)**:在输出下列分节实质性结果之前,先将 **本用户消息全文**(= 本模板 §3、占位符已全部替换)按 `docs/harness/invokes/README.md` 落盘到 `Projects/docs/harness/invokes/`(含元数据表 + 快照 fenced code)。同一会话内追问 **不** 再新增快照文件。 【当模式为「独立复检」或「两者」时 — 对应 hat §一】 -0. **落盘(硬)**:将完整复检正文写入 `{{REINSPECT_OUTPUT_PATH}}`(结构见 docs/harness/ACCEPTANCE_LANDING.md);落盘并 commit 后再在对话给摘要。 1. 读取 task 内「### 自检结论(执行者)」;若缺失 → 阻塞首条:要求先跑 TEMPLATE-self-check-invoke + 40。 2. 输入裁剪:以 diff、命令输出要点、自检验收表为主;避免执行过程长文。 3. 对 task 每条验收项输出表格:验收项 | pass/fail | 证据(文件:行 / 测试名 / 日志片段)| 备注;fail 须写复现步骤或缺失证据。 4. 汇总阻塞合并项;给出是否建议合并(供维护者决策)。 5. 禁止:替执行者改代码(除非用户明确要求复检提交 patch);缺口退回需求/审查帽。 -6. **Fresh Context(P1)**:**新对话**开帽;**禁止**附带 30 invoke 全文;输入限于 task、reviews、40 自检、diff 摘要。 【当模式为「全局验收」或「两者」时 — 对应 hat §二】 6. 若 task 声明 freeze_id:核对 PR 变更是否在冻结基准内;契约升级是否在 SPEC/task 显式记录。 7. 输出 checklist 表(项 / 状态 / 签注栏「待人工」);不伪造已签核;不跳过 CI 红灯叙事。 -对话回复:若建议合并且无返工 → 输出「执行路线与 Commit 回溯」(docs/harness/prompts/handoff/HANDOFF_CLOSE_TRACE.md),勿编造下一棒 Prompt;若须打回 → 输出下一棒可复制 Prompt(含打回、二次审查、上一棒修复)。 -8. **自动 commit**:`reinspect_results` 报告 + 本轮 `invokes/`(若有)按 docs/harness/prompts/handoff/HANDOFF_AUTO_COMMIT.md commit。仅对话、零文件变更则不必空提交;用户写明「不要 commit」则跳过。 +对话回复:若建议合并且无返工 → 输出「执行路线与 Commit 回溯」(docs/harness/prompts/HANDOFF_CLOSE_TRACE.md),勿编造下一棒 Prompt;若须打回 → 输出下一棒可复制 Prompt(含打回、二次审查、上一棒修复)。 +8. **自动 commit**:落盘后按 docs/harness/prompts/HANDOFF_AUTO_COMMIT.md 分仓 commit。仅对话、零文件变更则不必空提交;用户写明「不要 commit」则跳过。 + +Judgment(本帽 · 对话末尾必填;任一项 warn/fail 须写 judgment_notes): +- experience_capture: 维持 | 建议升级 required | 建议降 n/a | 维持 n/a(≤1 行理由) +- gate/risk: 无 | 须人审: | 证据不足 +- hat_self: pass | pass-with-notes | blocked ``` --- @@ -79,7 +100,7 @@ | 版本 | 文件 | 何时用 | |------|------|--------| | 短版(默认) | 本文 **§3** | token 紧、仅需 hat 级指令与最小输出条款 | -| 全量(升级) | [`templates/TEMPLATE-independent-reinspect-invoke-full.md`](templates/TEMPLATE-independent-reinspect-invoke-full.md) **§3** | 需要 **A~D 输出节**、`failure_paths` / `test_strategy` 专节、按 `SUBPROJECT_ROOT` 拆 checklist、可选 `PR_OR_CI` | +| 全量(升级) | [`TEMPLATE-independent-reinspect-invoke-full.md`](TEMPLATE-independent-reinspect-invoke-full.md) **§3** | 需要 **A~D 输出节**、`failure_paths` / `test_strategy` 专节、按 `SUBPROJECT_ROOT` 拆 checklist、可选 `PR_OR_CI` | | 已填示例 | [`EXAMPLE-invoke-independent-reinspect-both-chatbi-p1-1.md`](EXAMPLE-invoke-independent-reinspect-both-chatbi-p1-1.md) | ChatBI P1-1;由全量模板复制后替换占位符 | --- @@ -89,12 +110,13 @@ | 日期 | 摘要 | |------|------| | 2026-05-14 | v1:与 `50-independent-reinspect` 关联;MODE 三选一;占位符未替换则 Agent 追问 | -| 2026-05-14 | v1.1:链全量模板 `templates/TEMPLATE-independent-reinspect-invoke-full` 与 EXAMPLE;增 **§4 关系表** | +| 2026-05-14 | v1.1:链全量模板 `TEMPLATE-independent-reinspect-invoke-full` 与 EXAMPLE;增 **§4 关系表** | | 2026-05-14 | v1.2:§3 对话收口改为「下一棒可复制 Prompt」(含打回、二次审查、上一棒修复) | | 2026-05-14 | v1.3:§3 可复制正文增第 **0** 条 **Invoke 快照(开帽起点)** | +| 2026-05-31 | v1.4:§父侧 Task Handoff(00);§3 Judgment + KPI 链 | --- ## 给 Cursor -`Harness`、`templates/TEMPLATE-independent-reinspect-invoke`、`templates/TEMPLATE-independent-reinspect-invoke-full`、`EXAMPLE-invoke-independent-reinspect-both-chatbi-p1-1`、`50-independent-reinspect`、`复检`、`全局验收`、`自检结论`、`reviews`、`占位符`、`追问` +`Harness`、`TEMPLATE-independent-reinspect-invoke`、`TEMPLATE-independent-reinspect-invoke-full`、`EXAMPLE-invoke-independent-reinspect-both-chatbi-p1-1`、`50-independent-reinspect`、`复检`、`全局验收`、`自检结论`、`reviews`、`占位符`、`追问` diff --git a/docs/harness/prompts/templates/TEMPLATE-orchestrator-invoke.md b/docs/harness/prompts/templates/TEMPLATE-orchestrator-invoke.md new file mode 100644 index 00000000..af010467 --- /dev/null +++ b/docs/harness/prompts/templates/TEMPLATE-orchestrator-invoke.md @@ -0,0 +1,60 @@ +# 总调度(00)· 对话调用模板 + +> **用途**:Open **`Projects/`** · 单窗口总 Chat 编排 **10→…→50→CLOSE**;子阶段用 **`Task`** 派发。 +> **真值**:[`00-orchestrator.md`](00-orchestrator.md)、[`../guides/KPI_RUBRIC_v1_2.md`](../guides/KPI_RUBRIC_v1_2.md)。 + +--- + +## 1. 占位符 + +| 占位符 | 含义 | +|--------|------| +| `{{TASK_PATH}}` | 主 task(相对 `Projects/`) | +| `{{TASK_SLUG}}` | invoke 目录 slug | +| `{{PLANNED_HATS}}` | 计划帽序列,如 `22,30,40,50,CLOSE` | +| `{{GIT_BRANCH}}` | 任务分支,如 `task/` | + +--- + +## 2. 可复制 Prompt 正文(§3) + +```text +你正在扮演 Harness「总调度帽(00)」,严格遵循: +- docs/harness/prompts/00-orchestrator.md +- docs/harness/guides/KPI_RUBRIC_v1_2.md(打分与 Task 汇总) +- docs/harness/prompts/HANDOFF_SEMI_AUTO.md、HANDOFF_CLOSE_TRACE.md +- docs/harness/HARNESS_V2_PLAN.md §5(experience_capture、human_gate、semi_auto) + +输入: +- task:{{TASK_PATH}} +- slug:{{TASK_SLUG}} +- 计划帽序列:{{PLANNED_HATS}} +- git_branch:{{GIT_BRANCH}} + +你必须完成: +1. 通读 task 元信息表(experience_capture、test_strategy、human_gate、semi_auto、audit_profile)。 +2. 维护「阶段状态表」:每帽 {pending|running|done|blocked}。 +3. 派子帽时: + a. 先确认无 blocking 的 human_gate; + b. 生成 Handoff(路径 + 验收 + 禁止长文); + c. 优先 Task 子代理(50/30/40 等);粘贴对应 TEMPLATE §3 或 §父侧 Task Handoff; + d. 收子代理回报:Status / Deliverables / Blockers / Judgment(各 ≤10 行)。 +4. 每帽 done 后:按 KPI_RUBRIC_v1_2 追加 HatInstance 行;warn/fail 必填 judgment_notes。 +5. 关账前:汇总 task ### KPI(00);核对 experience_capture(required 须有经验摘要或 diary 链)。 +6. 触发 CLOSE:HANDOFF_CLOSE_TRACE + 归档规则(docs/harness/tasks/README.md)。 + +禁止:代签 approved;贴子代理全文;在 main 上 semi_auto 链式提交。 + +Judgment(00 · 对话末尾): +- experience_capture: 维持 | 建议改 task 档位(理由≤1行) +- gate/risk: … +- hat_self: pass | pass-with-notes | blocked +``` + +--- + +## 3. 修订记录 + +| 日期 | 摘要 | +|------|------| +| 2026-05-31 | v1:KPI v1.2 同批 | diff --git a/docs/tasks/skills/SKILL-harness-task.md b/docs/tasks/skills/SKILL-harness-task.md index 306c56c3..752558e5 100644 --- a/docs/tasks/skills/SKILL-harness-task.md +++ b/docs/tasks/skills/SKILL-harness-task.md @@ -1,134 +1,27 @@ -# SKILL:Harness 单 task 帽链(22 → 关账) +# SKILL:Harness 任务执行模式(子仓指针) -> **SKILL ID**:`harness-task`(单 task · 非 Loop) -> **状态**:`draft` — 蒸馏来源:Harness V2 通则整理(2026-05-27)· 须人审。 -> **适用**:**一个** `docs/tasks/active/task_*.md` 走完整或部分 Harness 帽链。 -> **Loop 勿用本文**:多 round 见 [`SKILL-harness-loop-batch.md`](SKILL-harness-loop-batch.md)。 +> **状态**:`active`(2026-05-31) +> **用途**:被 task / invoke 引用时,说明 **22→关账** 等模式;**执行真值** 不在本文件堆全文。 --- -## 何时选用 +## 读序(Agent) -| 适用 | 不适用 | -|------|--------| -| 单 task · `semi_auto: true` · 22→30→40→50→关账 | 母单 + N 子 task · 单 PR(用 loop-batch) | -| 改 Harness 工件 / prompts / rules(`audit_profile: full`) | 仅改业务代码无 Harness 落盘 | +1. 本 task 正文与 `human_gate` / `semi_auto` / `experience_capture` / `test_strategy` +2. **子仓** `docs/harness/README.md` §1(Open **本仓** 执行) +3. **工作区协议**(跨仓 / 00 / KPI):`Projects/docs/harness/HARNESS_V2_PLAN.md` §5.7–§5.8、[`SDD_HAT_FLOW.md`](../../../../docs/harness/SDD_HAT_FLOW.md) §0 +4. KPI 打分:[`Projects/docs/harness/guides/KPI_RUBRIC_v1_2.md`](../../../../docs/harness/guides/KPI_RUBRIC_v1_2.md) +5. 总调度:[`Projects/docs/harness/prompts/00-orchestrator.md`](../../../../docs/harness/prompts/00-orchestrator.md) --- -## 帽链真值(读序) +## 模式摘要 -| 序 | 帽 | 入口 | -|----|-----|------| -| 0(可选) | **10** | [`TEMPLATE-requirements-invoke.md`](../../harness/prompts/templates/TEMPLATE-requirements-invoke.md) §3 | -| 1 | **22** | [`22-task-audit.md`](../../harness/prompts/hats/22-task-audit.md) | -| 2 | **30** | [`30-execute-code.md`](../../harness/prompts/hats/30-execute-code.md) | -| 3 | **40** | [`40-self-check.md`](../../harness/prompts/hats/40-self-check.md) | -| 4 | **50** | [`50-independent-reinspect.md`](../../harness/prompts/hats/50-independent-reinspect.md)(按 `test_strategy`) | -| 5 | **关账** | `git mv` → `done/` · [`HANDOFF_CLOSE_TRACE.md`](../../harness/prompts/handoff/HANDOFF_CLOSE_TRACE.md) | - -**通则(每帽)**: - -- [`HANDOFF_SEMI_AUTO.md`](../../harness/prompts/handoff/HANDOFF_SEMI_AUTO.md) — semi_auto、人工闸 -- [`HANDOFF_AUTO_COMMIT.md`](../../harness/prompts/handoff/HANDOFF_AUTO_COMMIT.md) — **每帽 commit** -- [`HARNESS_V2_PLAN.md`](../../harness/HARNESS_V2_PLAN.md) §5 — task 字段 - -**Cursor**:`.cursor/rules/05-harness-semi-auto.mdc` · `.cursor/rules/06-harness-in-repo.mdc` - -**非 Cursor Agent**:须 **显式 @ 或粘贴** 上表路径;**无** `.mdc` 自动加载。 - -**Claude Code 全链入口(单 task · 范例)**: - -| task_slug | 目录 | -|-----------|------| -| `gov-wiki-t4-expand` | `docs/harness/invokes/by-task/gov-wiki-t4-expand/PROMPT_START_full_chain_v1.md` | -| `gov-l2-manifest-ci` | `docs/harness/invokes/by-task/gov-l2-manifest-ci/PROMPT_START_full_chain_v1.md` | -| `gov-wiki-agent-readorder` | `docs/harness/invokes/by-task/gov-wiki-agent-readorder/PROMPT_START_full_chain_v1.md` | -| `gov-wiki-ingest-batch` | `docs/harness/invokes/by-task/gov-wiki-ingest-batch/PROMPT_START_full_chain_v1.md` | -| `wiki-ctx-ab-representative` | `docs/harness/invokes/by-task/wiki-ctx-ab-representative/PROMPT_START_full_chain_v1.md` | - -**已执行后 hygiene / 复盘**(非 START): - -| task_slug | 文件 | -|-----------|------| -| `gov-wiki-t4-expand` | `docs/harness/invokes/by-task/gov-wiki-t4-expand/PROMPT_RETRO_hygiene_bc_v1.md` | - -模式:`PROMPT_START_full_chain_v1.md`(一次粘贴)+ `PROMPT_TASK_22_to_CLOSE_v1.md`(§3 逐步帽链);**非** Loop 的 `PROMPT_LOOP` / `HG-LOOP-BATCH`。 - ---- - -## task 字段默认值 - -| 字段 | 单 docs task | 改 Harness 工件 | -|------|--------------|-----------------| -| **test_strategy** | `not_applicable` + note | `not_applicable` 或 `recommended` | -| **semi_auto** | `true` | `true` | -| **audit_profile** | `post_close` | **`full`** | -| **human_gate** | 按场景(`HG-REINSPECT` 等) | 常需 `HG-TASK-DRAFT` / 审 R1 | - -任务类型预填(范围/验收):叠加 [`SKILL-docs-governance.md`](SKILL-docs-governance.md) 等。 - ---- - -## `test_strategy` 与 50 - -| 取值 | 50 | reinspect | -|------|-----|-----------| -| `required` | **必须** | **必须**落盘 `reinspect_results/` | -| `recommended` | **建议** | **建议** | -| `not_applicable` | **可选**(docs 关账常仍做 50) | Loop/docs 子单 **建议** 做 | - ---- - -## 落盘路径 - -| 帽 | 路径 | -|----|------| -| invoke | `docs/harness/invokes/by-task//invoke_YYYYMMDD_{22,30,40,50,CLOSE}_*.md` | -| 22 review | `docs/harness/reviews/by-task//task_*_audit_R1_*.md` | -| 50 | `docs/tasks/reinspect_results/reinspect__YYYYMMDD_vN.md` | - -**invoke 质量**:§3 ≥15 行 · 元信息含 `task_slug`(Loop 同级标准见 loop-batch §C2)。 - ---- - -## 单 task 合规自检(ST1–ST6 · 关账前必过) - -> **蒸馏来源**:gov-wiki-t4-expand 复盘(2026-05-27)。**缺任一项 = 不得关账**(与 loop-batch C2 同级精神,非 C1–C7 全表)。 - -| # | 检查 | pass 条件 | -|---|------|-----------| -| **ST1** | **22** | `reviews/by-task//` 有 R1 audit;`invoke_*_22_*` 存在 · §3 ≥15 行 | -| **ST2** | **30** | `invoke_*_30_*` 存在 · 与 git 业务 commit 可对应 | -| **ST3** | **40** | `invoke_*_40_*` + task §自检结论已回填 | -| **ST4** | **50** | `reinspect__YYYYMMDD_vN.md` + `invoke_*_50_*` | -| **ST5** | **关账** | task 头部 `done(…)` · `git mv` done/ · `_views/done.md` · `invoke_*_CLOSE_*` | -| **ST6** | **索引** | RECENT §6.6/§8 · docs-governance H1–H5;invoke **无** `round: R1` 等 Loop 字段 | - -**禁止跳帽**:不得在未落盘当前帽 invoke + commit 的情况下进入下一帽(即使 semi_auto)。 - -**Claude Code**:关账前须显式勾选 ST1–ST6;见各 task `PROMPT_START` §关账前自检。 - ---- - -## 关账 checklist - -1. §验收 `- [x]` · 头部 `done(日期 · freeze_id)` -2. `git mv` → `docs/tasks/done/`(与头部 **同一 commit**) -3. [`_views/done.md`](../_views/done.md) 一行 -4. [`SKILL-docs-governance.md`](SKILL-docs-governance.md) **H1–H5**(PR 前 hygiene) -5. 对话或 invoke:**HANDOFF_CLOSE_TRACE**(无下一棒时) - ---- - -## 与相关 SKILL - -| SKILL | 关系 | -|-------|------| -| [`docs-governance`](SKILL-docs-governance.md) | docs task **内容** + 关账 hygiene | -| [`harness-loop-batch`](SKILL-harness-loop-batch.md) | **N 子 task** · Batch-10 · cross-round | -| [`harness-meta-reinspect`](SKILL-harness-meta-reinspect.md) | 合并后 **流程**元审计 | -| [`pr-post-ci`](SKILL-pr-post-ci.md) | push / 开 PR 后 | +| 模式 | 链 | +|------|-----| +| **22→关账** | 22 → 30 → 40 → 50 → CLOSE(可跳过 10) | +| **semi_auto** | 见子仓 `docs/harness/prompts/handoff/HANDOFF_SEMI_AUTO.md` | +| **经验** | **无 60 帽**;`experience_capture` 三档 + 各帽 Judgment | --- @@ -136,12 +29,4 @@ | 日期 | 摘要 | |------|------| -| 2026-05-27 | v1 草案:单 task 帽链索引 + 落盘 + 关账 checklist | -| 2026-05-27 | v1.1:Claude Code 范例 · PROMPT_START + PROMPT_TASK_22_to_CLOSE(gov-wiki-t4-expand / gov-l2-manifest-ci) | -| 2026-05-27 | v1.2:§ST1–ST6 单 task 合规自检 · PROMPT_RETRO 与 START 分工 · gov-wiki-t4-expand 复盘 | - ---- - -## 给 Cursor - -`harness-task`、单 task、22、30、40、50、semi_auto、HANDOFF、非 Loop +| 2026-05-31 | v1:补全被 task 引用的指针 stub(KPI v1.2 / 00) | From 6d1e58a128a55ab07bf5371d18a433f27fe75eca Mon Sep 17 00:00:00 2001 From: cyning Date: Sun, 31 May 2026 20:08:49 +0800 Subject: [PATCH 02/12] =?UTF-8?q?docs(skills):=20=E5=AF=B9=E9=BD=90=20SKIL?= =?UTF-8?q?L-harness-task=20=E6=A0=BC=E5=BC=8F=E4=B8=8E=20KPI=20v1.2=20?= =?UTF-8?q?=E6=9C=AC=E4=BB=93=E6=8C=87=E9=92=88?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 补全 SKILL ID、帽链索引、落盘与关账 checklist;修正相对路径,摘要 experience_capture 与 kpi_rubric 字段。 Co-authored-by: Cursor --- docs/tasks/skills/SKILL-harness-task.md | 146 +++++++++++++++++++++--- 1 file changed, 131 insertions(+), 15 deletions(-) diff --git a/docs/tasks/skills/SKILL-harness-task.md b/docs/tasks/skills/SKILL-harness-task.md index 752558e5..24ae8e61 100644 --- a/docs/tasks/skills/SKILL-harness-task.md +++ b/docs/tasks/skills/SKILL-harness-task.md @@ -1,27 +1,136 @@ -# SKILL:Harness 任务执行模式(子仓指针) +# SKILL:Harness 单 task 帽链(22 → 关账 · 子仓指针) +> **SKILL ID**:`harness-task` > **状态**:`active`(2026-05-31) -> **用途**:被 task / invoke 引用时,说明 **22→关账** 等模式;**执行真值** 不在本文件堆全文。 +> **适用阶段**:**22 起 · 单 task**(非 Loop);Open **本子仓**执行。 +> **非替代**:[`../../harness/HARNESS_V2_PLAN.md`](../../harness/HARNESS_V2_PLAN.md) §5 · 各帽 `hats/*.md` 正文 · **Loop** 见 [`SKILL-harness-loop-batch.md`](SKILL-harness-loop-batch.md) --- -## 读序(Agent) +## 何时选用 -1. 本 task 正文与 `human_gate` / `semi_auto` / `experience_capture` / `test_strategy` -2. **子仓** `docs/harness/README.md` §1(Open **本仓** 执行) -3. **工作区协议**(跨仓 / 00 / KPI):`Projects/docs/harness/HARNESS_V2_PLAN.md` §5.7–§5.8、[`SDD_HAT_FLOW.md`](../../../../docs/harness/SDD_HAT_FLOW.md) §0 -4. KPI 打分:[`Projects/docs/harness/guides/KPI_RUBRIC_v1_2.md`](../../../../docs/harness/guides/KPI_RUBRIC_v1_2.md) -5. 总调度:[`Projects/docs/harness/prompts/00-orchestrator.md`](../../../../docs/harness/prompts/00-orchestrator.md) +| 适用 | 不适用 | +|------|--------| +| 单 task · `semi_auto: true` · 22→30→40→50→关账 | 母单 + N 子 task · 单 PR(用 loop-batch) | +| 本子仓 `docs/tasks/active/task_*.md` | 工作区 `Projects/docs/harness/tasks/`(跨仓 Harness task) | +| 改 Harness 工件 / prompts / rules | 仅改业务代码且无 Harness 落盘约定 | --- -## 模式摘要 +## Agent 读序 -| 模式 | 链 | -|------|-----| -| **22→关账** | 22 → 30 → 40 → 50 → CLOSE(可跳过 10) | -| **semi_auto** | 见子仓 `docs/harness/prompts/handoff/HANDOFF_SEMI_AUTO.md` | -| **经验** | **无 60 帽**;`experience_capture` 三档 + 各帽 Judgment | +1. **本 task 正文**:`human_gate` · `semi_auto` · `experience_capture` · `test_strategy` · `kpi_rubric`(若有) +2. **本子仓 Harness 入口**:[`../../harness/README.md`](../../harness/README.md) §1 +3. **帽链顺序**:[`../../harness/SDD_HAT_FLOW.md`](../../harness/SDD_HAT_FLOW.md) +4. **总则与字段**:[`../../harness/HARNESS_V2_PLAN.md`](../../harness/HARNESS_V2_PLAN.md) §5 +5. **KPI v1.2**:[`../../harness/guides/KPI_RUBRIC_v1_2.md`](../../harness/guides/KPI_RUBRIC_v1_2.md) +6. **总调度 00**(编排层 · 可选):[`../../harness/prompts/hats/00-orchestrator.md`](../../harness/prompts/hats/00-orchestrator.md) + +**半自动 / commit / 关账**: + +- [`HANDOFF_SEMI_AUTO.md`](../../harness/prompts/handoff/HANDOFF_SEMI_AUTO.md) +- [`HANDOFF_AUTO_COMMIT.md`](../../harness/prompts/handoff/HANDOFF_AUTO_COMMIT.md) +- [`HANDOFF_CLOSE_TRACE.md`](../../harness/prompts/handoff/HANDOFF_CLOSE_TRACE.md) + +**Cursor 规则**:`.cursor/rules/05-harness-semi-auto.mdc` · `.cursor/rules/06-harness-in-repo.mdc` + +--- + +## Task 扩展字段(摘要 · KPI v1.2) + +> 字段语义真值:[`HARNESS_V2_PLAN.md`](../../harness/HARNESS_V2_PLAN.md) §5;KPI / 00 细则以 [`KPI_RUBRIC_v1_2.md`](../../harness/guides/KPI_RUBRIC_v1_2.md) 为准。 + +### `experience_capture`(三档 · 无 60 帽) + +| 取值 | 含义 | 关账时 | +|------|------|--------| +| `required` | 跨 task 可复用决策/排障/流程教训 | CLOSE 须有 **经验摘要** 或链 `docs/diary/` | +| `recommended` | 建议短摘要 | 关闭回溯 ≥3 bullet | +| `not_applicable` | 无复用经验 | **须** `experience_capture_note` 一行 | + +- 各帽 **Judgment** 可建议升/降档位;**22 或人** 改 task 元信息。 +- 判定矩阵:KPI_RUBRIC §6;关账核对:CLOSE_TRACE §4 步骤 6。 + +### `kpi_rubric` / `### KPI(00)` + +- task 可写 **`kpi_rubric: KPI_RUBRIC_v1_2`**(v1.2 起默认口径)。 +- **00 总调度** 或关账轮维护 task **`### KPI(00)`** 表;公式与 D1–D5 **仅以** KPI_RUBRIC 为准。 +- **00** 为编排层,**不**替代 10–50 业务帽。 + +--- + +## 帽链真值(索引) + +| 序 | 帽 | 入口 | +|----|-----|------| +| 0(可选) | **10** | [`TEMPLATE-requirements-invoke.md`](../../harness/prompts/templates/TEMPLATE-requirements-invoke.md) §3 | +| 1 | **22** | [`22-task-audit.md`](../../harness/prompts/hats/22-task-audit.md) | +| 2 | **30** | [`30-execute-code.md`](../../harness/prompts/hats/30-execute-code.md) | +| 3 | **40** | [`40-self-check.md`](../../harness/prompts/hats/40-self-check.md) | +| 4 | **50** | [`50-independent-reinspect.md`](../../harness/prompts/hats/50-independent-reinspect.md) | +| — | **00** | [`00-orchestrator.md`](../../harness/prompts/hats/00-orchestrator.md)(链外编排 · 可选) | +| 5 | **关账** | `git mv` → `done/` · [`HANDOFF_CLOSE_TRACE.md`](../../harness/prompts/handoff/HANDOFF_CLOSE_TRACE.md) | + +**通则(每帽)**:下一棒 invoke 落盘 + commit(见 HANDOFF_SEMI_AUTO §3);`human_gate: pending` **阻塞**对应帽。 + +--- + +## Harness 默认值(task 预填) + +| 字段 | 单 docs / 轻 task | 改 Harness 工件 / 高风险 | +|------|-------------------|---------------------------| +| **test_strategy** | `not_applicable` + note | `not_applicable` 或 `recommended` | +| **semi_auto** | `true` | `true` | +| **audit_profile** | `post_close` | **`full`** | +| **experience_capture** | `recommended` 或 `not_applicable` | 常 `required` | +| **kpi_rubric** | 可选 `KPI_RUBRIC_v1_2` | 建议显式 | + +业务类型预填叠加:[`SKILL-docs-governance.md`](SKILL-docs-governance.md) 等。 + +--- + +## `test_strategy` 与 50 + +| 取值 | 50 | reinspect 落盘 | +|------|-----|----------------| +| `required` | **必须** | **必须** `docs/tasks/reinspect_results/` | +| `recommended` | **建议** | **建议** | +| `not_applicable` | **可选**(docs 关账常仍做 50) | 建议 | + +--- + +## 落盘路径 + +| 帽 | 路径 | +|----|------| +| invoke | `docs/harness/invokes/by-task//invoke_YYYYMMDD_{22,30,40,50,CLOSE}_*.md` | +| 22 review | `docs/harness/reviews/by-task//task_*_audit_R1_*.md` | +| 50 | `docs/tasks/reinspect_results/reinspect__YYYYMMDD_vN.md` | +| KPI | task 正文 **`### KPI(00)`**(00 或关账轮维护) | + +**invoke 质量**:§3 ≥15 行 · 元信息含 `task_slug` / `git_branch`(与 loop-batch C2 同级精神)。 + +--- + +## 关账 checklist(最小) + +1. §验收 `- [x]` · 头部 `done(日期 · freeze_id)` +2. `git mv` → `docs/tasks/done/`(与头部 **同一 commit**) +3. [`_views/done.md`](../_views/done.md) 一行 +4. docs task:[`SKILL-docs-governance.md`](SKILL-docs-governance.md) **H1–H5** +5. **`experience_capture`** / **`kpi_rubric`**:CLOSE_TRACE §4 步骤 6–7 核对 +6. 对话或 invoke:**HANDOFF_CLOSE_TRACE**(无下一棒时) + +--- + +## 与相关 SKILL + +| SKILL | 关系 | +|-------|------| +| [`docs-governance`](SKILL-docs-governance.md) | docs task 内容 + 关账 hygiene | +| [`harness-loop-batch`](SKILL-harness-loop-batch.md) | **N 子 task** · Batch-10 · 勿用本文 | +| [`harness-meta-reinspect`](SKILL-harness-meta-reinspect.md) | 合并后 **流程** 元审计 | +| [`pr-post-ci`](SKILL-pr-post-ci.md) | push / 开 PR 后 | --- @@ -29,4 +138,11 @@ | 日期 | 摘要 | |------|------| -| 2026-05-31 | v1:补全被 task 引用的指针 stub(KPI v1.2 / 00) | +| 2026-05-27 | v1 草案:单 task 帽链索引 + 落盘 + 关账(蒸馏) | +| 2026-05-31 | v1.1:格式对齐六类 SKILL;KPI v1.2 / 00 / experience_capture 摘要;本仓相对路径 | + +--- + +## 给 Cursor + +`harness-task`、单 task、22、30、40、50、00、KPI_RUBRIC_v1_2、semi_auto、experience_capture、非 Loop From c2b73d8441cee6821b0d2e415f835ccad72df58d Mon Sep 17 00:00:00 2001 From: cyning Date: Sun, 31 May 2026 20:20:38 +0800 Subject: [PATCH 03/12] =?UTF-8?q?docs(tasks):=20KPI=20v1.2=20=E8=AF=95?= =?UTF-8?q?=E7=82=B9=20task=20=C2=B7=20kpi=5Faggregator=3D00?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 新增 task_harness_kpi_v1_2_pilot_v1(pending·00开帽);SKILL 补 kpi_aggregator 默认 CLOSE 与新建 task 必填 KPI 规则。 Co-authored-by: Cursor --- .../active/task_harness_kpi_v1_2_pilot_v1.md | 182 ++++++++++++++++++ docs/tasks/skills/SKILL-harness-task.md | 17 +- 2 files changed, 192 insertions(+), 7 deletions(-) create mode 100644 docs/tasks/active/task_harness_kpi_v1_2_pilot_v1.md diff --git a/docs/tasks/active/task_harness_kpi_v1_2_pilot_v1.md b/docs/tasks/active/task_harness_kpi_v1_2_pilot_v1.md new file mode 100644 index 00000000..fef471cb --- /dev/null +++ b/docs/tasks/active/task_harness_kpi_v1_2_pilot_v1.md @@ -0,0 +1,182 @@ +# Task:Harness KPI v1.2 试点 — 00 编排 + 帽链验证(docs) + +> **状态**:`pending`(**已拍板 · 新会话 00 开帽**;首棒执行后改 `in_progress`) +> **schedule_ref**:RECENT §1.1(新增 · 待同步排期表) +> **登记日期**:2026-05-31 +> **路线**:**B** — 与 `KPI_RUBRIC_v1_2` 分支 **同 PR** 交付(基建 + 试点关账) +> **SKILL**:[`SKILL-harness-task.md`](../skills/SKILL-harness-task.md) · [`KPI_RUBRIC_v1_2.md`](../../harness/guides/KPI_RUBRIC_v1_2.md) + +--- + +## Harness 元信息(执行 Agent 必读) + +| 字段 | 值 | +|------|-----| +| **task_slug** | `harness-kpi-v1-2-pilot` | +| **test_strategy** | `not_applicable` | +| **test_strategy_note** | 纯 Harness 文档与索引;不触达 `api/` / 行为变更 | +| **freeze_id** | `KPI-RUBRIC-PILOT@2026-05-31` | +| **semi_auto** | `true` | +| **audit_profile** | `post_close` | +| **experience_capture** | `required` | +| **kpi_rubric** | `KPI_RUBRIC_v1_2` | +| **kpi_aggregator** | **`00`**(00 逐帽 HatInstance + 关账写 `### KPI(00)`) | +| **git_branch** | `KPI_RUBRIC_v1_2` | + +### 人工闸 `human_gate` + +> **预批说明**:用户 **2026-05-31** 授权 HG-TASK-DRAFT / HG-AUDIT-R1 **approved**(路线 B · 暂不代填 HG-REINSPECT)。 + +| human_gate_id | status | blocks_hats | 说明 | +|---------------|--------|-------------|------| +| HG-TASK-DRAFT | approved | 22-R1,30 | 试点 task 草案 · 预批 | +| HG-AUDIT-R1 | approved | 30 | 22 R1 后人签 · 预批 | +| HG-REINSPECT | pending | done | **50 通过后** 人签再 merge(关账硬闸) | + +### 开帽约定(已锁定) + +| 项 | 决定 | +|----|------| +| **第一棒** | **00 总调度**(`TEMPLATE-orchestrator-invoke` §3) | +| **KPI 汇总** | **`kpi_aggregator: 00`** | +| **帽链** | 00 → 22 R1 → 30 → 40 → 50 → 00/CLOSE | +| **semi_auto** | 同会话戴帽(不强制 Task 子代理) | +| **50** | **新会话** Fresh Context(推荐) | +| **分支** | 在 **`KPI_RUBRIC_v1_2`** 上续跑(路线 B) | + +**法定 SDD 顺序不变**:10 →(22)→ 30 → 40 → 50 → CLOSE。**00 在链外编排**(见 [`00-orchestrator.md`](../../harness/prompts/hats/00-orchestrator.md))。 + +--- + +## 1. 背景与目标 + +KPI v1.2、00 总调度帽、CLOSE/50 模板已落在分支 `KPI_RUBRIC_v1_2`,尚未经 **完整帽链 + 落盘 + KPI 表** 实战验证。 + +**完成态**: + +- 一条 **docs-only** 变更经 **00 编排 → 22→30→40→50→CLOSE** 跑通; +- **00** 维护 HatInstance 并写入 **`### KPI(00)`**(Task_KPI%); +- invoke / review / reinspect 落盘齐全; +- 索引与规划正文与 KPI 文档对齐。 + +--- + +## 2. 范围 + +- [ ] [`docs/harness/README.md`](../../harness/README.md) §1 增 **KPI_RUBRIC_v1_2**、**00-orchestrator** 索引 +- [ ] [`docs/harness/HARNESS_V2_PLAN.md`](../../harness/HARNESS_V2_PLAN.md) 补 **§5.7** `experience_capture`、**§5.8** `kpi_rubric` / `kpi_aggregator` / `### KPI(00)` +- [ ] [`docs/tasks/templates/TASK_TEMPLATE.md`](../templates/TASK_TEMPLATE.md) 增 `experience_capture`、`kpi_rubric`、`kpi_aggregator` +- [ ] Harness 帽链落盘:`invokes/by-task/harness-kpi-v1-2-pilot/`(含 **`invoke_*_00_*`**)、`reviews/…`、`reinspect_results/reinspect_harness-kpi-v1-2-pilot_*` +- [ ] 本 task **`### KPI(00)`** 由 **00** 关账轮填写(非空) +- [ ] **`experience_capture: required`** → CLOSE 含经验摘要或链 `docs/diary/` +- [ ] 关账:`done/` + `_views/done.md` + CLOSE_TRACE + +## 3. 非范围 + +- `api/`、`tests/`、`.github/workflows/` +- ChatBI 业务 task +- 新增 **60 帽** + +--- + +## 4. 行为变更(Delta) + +**无**(纯文档 / Harness 索引;无对外 HTTP/SSE 契约变更) + +--- + +## 5. 依赖与引用 + +| 依赖项 | 路径 | +|--------|------| +| KPI 真值 | [`docs/harness/guides/KPI_RUBRIC_v1_2.md`](../../harness/guides/KPI_RUBRIC_v1_2.md) | +| 00 帽 | [`docs/harness/prompts/hats/00-orchestrator.md`](../../harness/prompts/hats/00-orchestrator.md) | +| 00 invoke | [`TEMPLATE-orchestrator-invoke.md`](../../harness/prompts/templates/TEMPLATE-orchestrator-invoke.md) | +| 单 task SKILL | [`SKILL-harness-task.md`](../skills/SKILL-harness-task.md) | +| 关账 | [`HANDOFF_CLOSE_TRACE.md`](../../harness/prompts/handoff/HANDOFF_CLOSE_TRACE.md) §4 步骤 6–7 | + +--- + +## 6. 失败路径 + +| # | Scenario ID | 触发条件 | 系统行为 | 可重试 | 用户可见 | +|---|-------------|----------|----------|--------|----------| +| F1 | `fp-kpi-blocked-d2` | 任帽 D2 **fail** 或 KPI **blocked** | **不得关账**;回 30 或打回 22 | 是 | CLOSE 阻塞清单 | +| F2 | `fp-kpi-missing-table` | 关账无 `### KPI(00)` | CLOSE **fail** | 00 补表 | 缺口路径 | +| F3 | `fp-exp-required-missing` | `experience_capture: required` 无摘要 | CLOSE **fail** | 补 diary/摘要 | 同上 | +| F4 | `fp-invoke-stub` | invoke §3 <15 行 | **不得 commit** invoke | 补全 | HANDOFF_AUTO_COMMIT | +| F5 | `fp-scope-api` | diff 含 `api/` | 50 **fail** · 拒 scope | revert | 非范围 | + +--- + +## 7. 验收标准 + +- [ ] 范围 §2 docs 变更已提交 +- [ ] **00** / 22 / 30 / 40 / 50 invoke 落盘且 §3 ≥15 行 +- [ ] `reviews/by-task/harness-kpi-v1-2-pilot/` 有 R1 audit +- [ ] `reinspect_results/reinspect_harness-kpi-v1-2-pilot_YYYYMMDD_v1.md` 建议合并 +- [ ] task **`### KPI(00)`** 完整(§6 演算级:HatInstance + Task_KPI% + blocked 判定) +- [ ] CLOSE_TRACE 含 experience + KPI 核对 +- [ ] **HG-REINSPECT** → `approved` 后 merge PR +- [ ] 本地 `pytest tests -m "not intent_eval and not intent_benchmark"` 绿(回归) + +--- + +## 8. 计划帽链 + +```text +00(开帽 + 编排)→ 22 R1 → 30 → 40 → 50(新会话)→ 00/CLOSE(KPI 汇总 + 关账) +``` + +| 帽 | 落盘 | KPI 动作 | +|----|------|----------| +| **00** | `invoke_*_00_*` **必须** | 阶段状态表;逐帽 HatInstance;关账写 ### KPI(00) | +| 22 | `reviews/…/audit_R1_*` | HatInstance + Judgment | +| 30 | `invoke_*_30_*` | HatInstance + Judgment | +| 40 | `invoke_*_40_*` + 自检表 | HatInstance + Judgment | +| 50 | `reinspect_*` + `invoke_*_50_*` | HatInstance + Judgment(**新会话**) | +| CLOSE | `invoke_*_CLOSE_*` + CLOSE_TRACE | experience 核对;HG-REINSPECT 仍 pending 则停 | + +--- + +## 9. 执行前确认(已拍板 · 2026-05-31) + +| # | 项 | 决定 | +|---|-----|------| +| C1 | 第一棒 | **00** | +| C2 | 50 | **新会话** | +| C3 | 子代理 | **同会话 semi_auto** | +| C4 | 分支 | **`KPI_RUBRIC_v1_2`** | +| C5 | RECENT | 关账时同步(非阻塞开跑) | +| C6 | HG-REINSPECT | **人** 在 50 通过后签 `approved` | + +**新会话开跑**:粘贴 [`TEMPLATE-orchestrator-invoke.md`](../../harness/prompts/templates/TEMPLATE-orchestrator-invoke.md) 定制 §3(`kpi_aggregator: 00`);Open Folder = **本仓根**;确认 `git branch` = `KPI_RUBRIC_v1_2`。 + +--- + +## 10. ### KPI(00) + +> **由 00(`kpi_aggregator: 00`)关账轮填写**;格式见 [`KPI_RUBRIC_v1_2.md`](../../harness/guides/KPI_RUBRIC_v1_2.md) §4.3–§6。 + +(占位 · 执行后删除本行) + +--- + +## 11. ### 自检结论(执行者) + +(40 帽回填) + +--- + +## 修订记录 + +| 日期 | 摘要 | +|------|------| +| 2026-05-31 | v0.1 草案:路线 B · gate 预批 · 暂不执行 | +| 2026-05-31 | v0.2:`kpi_aggregator: 00` · §9 拍板 · `pending` 待新会话 00 开帽 | + +--- + +## 给 Cursor + +`harness-kpi-v1-2-pilot`、`KPI_RUBRIC_v1_2`、`kpi_aggregator:00`、`00-orchestrator`、路线 B、非 Loop diff --git a/docs/tasks/skills/SKILL-harness-task.md b/docs/tasks/skills/SKILL-harness-task.md index 24ae8e61..f0892a80 100644 --- a/docs/tasks/skills/SKILL-harness-task.md +++ b/docs/tasks/skills/SKILL-harness-task.md @@ -19,7 +19,7 @@ ## Agent 读序 -1. **本 task 正文**:`human_gate` · `semi_auto` · `experience_capture` · `test_strategy` · `kpi_rubric`(若有) +1. **本 task 正文**:`human_gate` · `semi_auto` · `experience_capture` · `test_strategy` · **`kpi_rubric`** · **`kpi_aggregator`**(未写默认 **CLOSE**) 2. **本子仓 Harness 入口**:[`../../harness/README.md`](../../harness/README.md) §1 3. **帽链顺序**:[`../../harness/SDD_HAT_FLOW.md`](../../harness/SDD_HAT_FLOW.md) 4. **总则与字段**:[`../../harness/HARNESS_V2_PLAN.md`](../../harness/HARNESS_V2_PLAN.md) §5 @@ -51,11 +51,12 @@ - 各帽 **Judgment** 可建议升/降档位;**22 或人** 改 task 元信息。 - 判定矩阵:KPI_RUBRIC §6;关账核对:CLOSE_TRACE §4 步骤 6。 -### `kpi_rubric` / `### KPI(00)` +### `kpi_rubric` / `kpi_aggregator` / `### KPI(00)` -- task 可写 **`kpi_rubric: KPI_RUBRIC_v1_2`**(v1.2 起默认口径)。 -- **00 总调度** 或关账轮维护 task **`### KPI(00)`** 表;公式与 D1–D5 **仅以** KPI_RUBRIC 为准。 -- **00** 为编排层,**不**替代 10–50 业务帽。 +- **新建 task(2026-05-31 起)**:**必填** `kpi_rubric: KPI_RUBRIC_v1_2`;关账前 **必填** `### KPI(00)`(含 Task_KPI%)。 +- **`kpi_aggregator`**:**`CLOSE`**(默认,可省略字段行)\| `00` \| `50` \| `human` — 谁汇总 HatInstance 表。 +- **00 可跳过**;未用 00 时由 **关账(CLOSE)** 读各帽 Judgment + 50/reinspect 填表。 +- 公式与 D1–D5 **仅以** KPI_RUBRIC 为准;工作区 §5.8 与 CLOSE_TRACE §4 步骤 7 同步。 --- @@ -83,7 +84,8 @@ | **semi_auto** | `true` | `true` | | **audit_profile** | `post_close` | **`full`** | | **experience_capture** | `recommended` 或 `not_applicable` | 常 `required` | -| **kpi_rubric** | 可选 `KPI_RUBRIC_v1_2` | 建议显式 | +| **kpi_rubric** | **`KPI_RUBRIC_v1_2`(必填)** | **`KPI_RUBRIC_v1_2`(必填)** | +| **kpi_aggregator** | **`CLOSE`**(默认) | **`CLOSE`** 或 `00`(单窗口编排时) | 业务类型预填叠加:[`SKILL-docs-governance.md`](SKILL-docs-governance.md) 等。 @@ -106,7 +108,7 @@ | invoke | `docs/harness/invokes/by-task//invoke_YYYYMMDD_{22,30,40,50,CLOSE}_*.md` | | 22 review | `docs/harness/reviews/by-task//task_*_audit_R1_*.md` | | 50 | `docs/tasks/reinspect_results/reinspect__YYYYMMDD_vN.md` | -| KPI | task 正文 **`### KPI(00)`**(00 或关账轮维护) | +| KPI | task **`### KPI(00)`**(按 `kpi_aggregator`;默认 **CLOSE**) | **invoke 质量**:§3 ≥15 行 · 元信息含 `task_slug` / `git_branch`(与 loop-batch C2 同级精神)。 @@ -140,6 +142,7 @@ |------|------| | 2026-05-27 | v1 草案:单 task 帽链索引 + 落盘 + 关账(蒸馏) | | 2026-05-31 | v1.1:格式对齐六类 SKILL;KPI v1.2 / 00 / experience_capture 摘要;本仓相对路径 | +| 2026-05-31 | v1.2:新建 task 必填 KPI;`kpi_aggregator` 默认 CLOSE | --- From 1986a876604992bc3b96422636fc84f0d9e00e13 Mon Sep 17 00:00:00 2001 From: cyning Date: Sun, 31 May 2026 20:24:19 +0800 Subject: [PATCH 04/12] =?UTF-8?q?chore(harness):=2000=20=E5=BC=80=E5=B8=BD?= =?UTF-8?q?=20harness-kpi-v1-2-pilot?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit task 改 in_progress;落盘 invoke_20260531_00。 Co-authored-by: Cursor --- ...voke_20260531_00_harness-kpi-v1-2-pilot.md | 48 +++++++++++++++++++ .../active/task_harness_kpi_v1_2_pilot_v1.md | 44 ++++++++++++++--- 2 files changed, 85 insertions(+), 7 deletions(-) create mode 100644 docs/harness/invokes/by-task/harness-kpi-v1-2-pilot/invoke_20260531_00_harness-kpi-v1-2-pilot.md diff --git a/docs/harness/invokes/by-task/harness-kpi-v1-2-pilot/invoke_20260531_00_harness-kpi-v1-2-pilot.md b/docs/harness/invokes/by-task/harness-kpi-v1-2-pilot/invoke_20260531_00_harness-kpi-v1-2-pilot.md new file mode 100644 index 00000000..6f811395 --- /dev/null +++ b/docs/harness/invokes/by-task/harness-kpi-v1-2-pilot/invoke_20260531_00_harness-kpi-v1-2-pilot.md @@ -0,0 +1,48 @@ +# Invoke 快照 · 00 总调度 · harness-kpi-v1-2-pilot + +| 字段 | 值 | +|------|-----| +| hat_id | 00 | +| task_slug | harness-kpi-v1-2-pilot | +| task_path | docs/tasks/active/task_harness_kpi_v1_2_pilot_v1.md | +| git_branch | KPI_RUBRIC_v1_2 | +| kpi_rubric | KPI_RUBRIC_v1_2 | +| kpi_aggregator | 00 | +| planned_hats | 22,30,40,50,CLOSE | +| date | 20260531 | + +--- + +## §3 调用体(快照) + +```text +你正在扮演 Harness「总调度帽(00)」,严格遵循: +- docs/harness/prompts/hats/00-orchestrator.md +- docs/harness/guides/KPI_RUBRIC_v1_2.md +- docs/harness/prompts/handoff/HANDOFF_SEMI_AUTO.md +- docs/harness/prompts/handoff/HANDOFF_CLOSE_TRACE.md +- docs/tasks/skills/SKILL-harness-task.md + +输入: +- task:docs/tasks/active/task_harness_kpi_v1_2_pilot_v1.md +- slug:harness-kpi-v1-2-pilot +- 计划帽序列:22,30,40,50,CLOSE +- git_branch:KPI_RUBRIC_v1_2 +- kpi_rubric:KPI_RUBRIC_v1_2 +- kpi_aggregator:00 + +你必须完成: +1. 将 task 状态改为 in_progress;通读 task 元信息与 human_gate。 +2. 维护阶段状态表:每帽 {pending|running|done|blocked}。 +3. 开帽落盘:本消息全文 → docs/harness/invokes/by-task/harness-kpi-v1-2-pilot/invoke_YYYYMMDD_00_harness-kpi-v1-2-pilot.md,commit。 +4. semi_auto 同会话派 22→30→40(各帽 invoke + Judgment;00 逐帽记 HatInstance)。 +5. 50 提示用户新会话执行;收回报后继续。 +6. 关账:写 task「### KPI(00)」+ experience 摘要 + CLOSE_TRACE;HG-REINSPECT 仍 pending 则停、不 merge。 + +禁止:代签 HG-REINSPECT;无 ### KPI(00)关账;在 main 上链式提交。 + +Judgment(00 · 末尾): +- experience_capture: … +- gate/risk: HG-REINSPECT pending → merge 前须人签 +- hat_self: pass | pass-with-notes | blocked +``` diff --git a/docs/tasks/active/task_harness_kpi_v1_2_pilot_v1.md b/docs/tasks/active/task_harness_kpi_v1_2_pilot_v1.md index fef471cb..635f93c0 100644 --- a/docs/tasks/active/task_harness_kpi_v1_2_pilot_v1.md +++ b/docs/tasks/active/task_harness_kpi_v1_2_pilot_v1.md @@ -1,6 +1,6 @@ # Task:Harness KPI v1.2 试点 — 00 编排 + 帽链验证(docs) -> **状态**:`pending`(**已拍板 · 新会话 00 开帽**;首棒执行后改 `in_progress`) +> **状态**:`in_progress`(2026-05-31 · 00 开帽 · `KPI-RUBRIC-PILOT@2026-05-31`) > **schedule_ref**:RECENT §1.1(新增 · 待同步排期表) > **登记日期**:2026-05-31 > **路线**:**B** — 与 `KPI_RUBRIC_v1_2` 分支 **同 PR** 交付(基建 + 试点关账) @@ -63,10 +63,10 @@ KPI v1.2、00 总调度帽、CLOSE/50 模板已落在分支 `KPI_RUBRIC_v1_2`, ## 2. 范围 -- [ ] [`docs/harness/README.md`](../../harness/README.md) §1 增 **KPI_RUBRIC_v1_2**、**00-orchestrator** 索引 -- [ ] [`docs/harness/HARNESS_V2_PLAN.md`](../../harness/HARNESS_V2_PLAN.md) 补 **§5.7** `experience_capture`、**§5.8** `kpi_rubric` / `kpi_aggregator` / `### KPI(00)` -- [ ] [`docs/tasks/templates/TASK_TEMPLATE.md`](../templates/TASK_TEMPLATE.md) 增 `experience_capture`、`kpi_rubric`、`kpi_aggregator` -- [ ] Harness 帽链落盘:`invokes/by-task/harness-kpi-v1-2-pilot/`(含 **`invoke_*_00_*`**)、`reviews/…`、`reinspect_results/reinspect_harness-kpi-v1-2-pilot_*` +- [x] [`docs/harness/README.md`](../../harness/README.md) §1 增 **KPI_RUBRIC_v1_2**、**00-orchestrator** 索引 +- [x] [`docs/harness/HARNESS_V2_PLAN.md`](../../harness/HARNESS_V2_PLAN.md) 补 **§5.7** `experience_capture`、**§5.8** `kpi_rubric` / `kpi_aggregator` / `### KPI(00)` +- [x] [`docs/tasks/templates/TASK_TEMPLATE.md`](../templates/TASK_TEMPLATE.md) 增 `experience_capture`、`kpi_rubric`、`kpi_aggregator` +- [x] Harness 帽链落盘:`invokes/by-task/harness-kpi-v1-2-pilot/`(含 **`invoke_*_00_*`**)、`reviews/…`(`reinspect_results/` 待 **50**) - [ ] 本 task **`### KPI(00)`** 由 **00** 关账轮填写(非空) - [ ] **`experience_capture: required`** → CLOSE 含经验摘要或链 `docs/diary/` - [ ] 关账:`done/` + `_views/done.md` + CLOSE_TRACE @@ -97,7 +97,7 @@ KPI v1.2、00 总调度帽、CLOSE/50 模板已落在分支 `KPI_RUBRIC_v1_2`, --- -## 6. 失败路径 +## 失败路径 | # | Scenario ID | 触发条件 | 系统行为 | 可重试 | 用户可见 | |---|-------------|----------|----------|--------|----------| @@ -164,7 +164,37 @@ KPI v1.2、00 总调度帽、CLOSE/50 模板已落在分支 `KPI_RUBRIC_v1_2`, ## 11. ### 自检结论(执行者) -(40 帽回填) +> **40 帽 · 2026-05-31** · 分支 `KPI_RUBRIC_v1_2` + +### 命令与退出码 + +| 命令 | cwd | 退出码 | 要点 | +|------|-----|--------|------| +| `pytest tests -m "not intent_eval and not intent_benchmark"` | 仓根 | 0 | 269 passed, 1 skipped | +| `python tools/harness_task_validate.py docs/tasks/active/task_harness_kpi_v1_2_pilot_v1.md` | 仓根 | 0 | OK | +| `python tools/harness_human_gate_check.py --task docs/tasks/active/task_harness_kpi_v1_2_pilot_v1.md` | 仓根 | 1 | **预期**:HG-REINSPECT pending(不阻塞 50;阻塞 merge) | + +### 验收表(§7 摘要) + +| 验收项 | 结果 | 证据 | +|--------|------|------| +| §2 docs 变更 | pass | README / HARNESS_V2_PLAN §5.7–5.8 / TASK_TEMPLATE diff | +| invoke §3 ≥15 行 | pass | `invokes/by-task/harness-kpi-v1-2-pilot/invoke_*` | +| reviews R1 | pass | `reviews/by-task/.../task_*_audit_R1_20260531.md` | +| reinspect | pending | 待 **50 新会话** | +| ### KPI(00) | pending | 待 **00/CLOSE** | +| pytest 回归 | pass | 见上表 | +| HG-REINSPECT | pending | 人签后 merge | + +### OpenSpec × TDD 三维 + +| 维度 | 结论 | +|------|------| +| Completeness | pass — failure_paths F1–F5 + Scenario ID | +| Correctness | pass — 纯 docs,Delta=无 | +| Coherence | pass — 与 KPI_RUBRIC_v1_2 / 00 帽链一致 | + +**已知未测项**:50 独立复检、关账 KPI 汇总、RECENT 排期同步(C5 非阻塞)。 --- From 7703b9ff72ea817b4cf9c7129d675cf00a92b631 Mon Sep 17 00:00:00 2001 From: cyning Date: Sun, 31 May 2026 20:24:29 +0800 Subject: [PATCH 05/12] =?UTF-8?q?docs(harness):=2022=20R1=20=E9=9B=B6?= =?UTF-8?q?=E9=98=BB=E5=A1=9E=E5=AE=A1=E6=A0=B8=20harness-kpi-v1-2-pilot?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 落盘 review + invoke_22;HG-REINSPECT pending 不阻塞 30。 Co-authored-by: Cursor --- ...voke_20260531_22_harness-kpi-v1-2-pilot.md | 42 +++++++++ ...arness_kpi_v1_2_pilot_audit_R1_20260531.md | 92 +++++++++++++++++++ 2 files changed, 134 insertions(+) create mode 100644 docs/harness/invokes/by-task/harness-kpi-v1-2-pilot/invoke_20260531_22_harness-kpi-v1-2-pilot.md create mode 100644 docs/harness/reviews/by-task/harness-kpi-v1-2-pilot/task_harness_kpi_v1_2_pilot_audit_R1_20260531.md diff --git a/docs/harness/invokes/by-task/harness-kpi-v1-2-pilot/invoke_20260531_22_harness-kpi-v1-2-pilot.md b/docs/harness/invokes/by-task/harness-kpi-v1-2-pilot/invoke_20260531_22_harness-kpi-v1-2-pilot.md new file mode 100644 index 00000000..63994760 --- /dev/null +++ b/docs/harness/invokes/by-task/harness-kpi-v1-2-pilot/invoke_20260531_22_harness-kpi-v1-2-pilot.md @@ -0,0 +1,42 @@ +# Invoke 快照 · 22 任务审核 · harness-kpi-v1-2-pilot + +| 字段 | 值 | +|------|-----| +| hat_id | 22 | +| task_slug | harness-kpi-v1-2-pilot | +| task_path | docs/tasks/active/task_harness_kpi_v1_2_pilot_v1.md | +| git_branch | KPI_RUBRIC_v1_2 | +| audit_round | R1 | +| date | 20260531 | + +--- + +## §3 调用体(快照) + +```text +你正在扮演工作区 Harness「任务审核帽」,严格遵循: +- docs/harness/prompts/hats/22-task-audit.md +- docs/harness/reviews/README.md +- docs/harness/HARNESS_V2_PLAN.md §5 + +上一帽已结束;本帽只按下文执行。 + +输入: +- 待审 task 路径:docs/tasks/active/task_harness_kpi_v1_2_pilot_v1.md +- 关联 SPEC:无 +- 上一轮审查:无 +- 落盘:docs/harness/reviews/by-task/harness-kpi-v1-2-pilot/task_harness_kpi_v1_2_pilot_audit_R1_20260531.md + +你必须完成: +0. 本 invoke 已落盘;审查 md 须链 invoke_snapshot。 +1. 通读 task 元信息(experience_capture、kpi_aggregator、human_gate、test_strategy)。 +2. 对照理论对齐检查表;运行 harness_task_validate.py。 +3. 落盘 R1 审查(零阻塞或阻塞清单)。 +4. 有下一棒 → 输出 30 invoke 路径;禁止代签 HG-REINSPECT。 +5. commit 本轮路径。 + +Judgment(22 · 末尾): +- experience_capture: 维持 required(试点须留 KPI/00 经验) +- gate/risk: HG-TASK-DRAFT/HG-AUDIT-R1 approved;HG-REINSPECT pending 不阻塞 30 +- hat_self: pass +``` diff --git a/docs/harness/reviews/by-task/harness-kpi-v1-2-pilot/task_harness_kpi_v1_2_pilot_audit_R1_20260531.md b/docs/harness/reviews/by-task/harness-kpi-v1-2-pilot/task_harness_kpi_v1_2_pilot_audit_R1_20260531.md new file mode 100644 index 00000000..443d2d0c --- /dev/null +++ b/docs/harness/reviews/by-task/harness-kpi-v1-2-pilot/task_harness_kpi_v1_2_pilot_audit_R1_20260531.md @@ -0,0 +1,92 @@ +# 任务审核报告:harness-kpi-v1-2-pilot · R1 + +| 字段 | 值 | +|------|-----| +| task | `docs/tasks/active/task_harness_kpi_v1_2_pilot_v1.md` | +| audit_round | R1 | +| freeze_id | `KPI-RUBRIC-PILOT@2026-05-31` | +| audit_profile | `post_close` | +| test_strategy | `not_applicable` | +| kpi_aggregator | `00` | +| invoke_snapshot | `docs/harness/invokes/by-task/harness-kpi-v1-2-pilot/invoke_20260531_22_harness-kpi-v1-2-pilot.md` | +| reviewer | Agent(22 帽) | +| date | 2026-05-31 | + +--- + +## 审查结论摘要 + +**零阻塞 · 可进入执行帽** + +纯 docs / Harness 索引试点;`test_strategy: not_applicable` 理由成立;failure_paths 五条可操作;验收含 merge 前 pytest;`kpi_aggregator: 00` 与帽链已拍板。 + +--- + +## 理论对齐检查表(P0) + +### §3.1 任务单最小字段 + +| # | 检查项 | 通过 | +|---|--------|------| +| 1 | `test_strategy` 三选一 | ☑ | +| 2 | `not_applicable` + `test_strategy_note` | ☑ | +| 3 | `failure_paths` ≥1 行 | ☑ | +| 4 | 非范围非空 | ☑ | +| 5 | 验收含合并前必绿 pytest | ☑ | +| 6 | `semi_auto` + `audit_profile` | ☑ | + +### §3.2 合并前 CI + +| # | 检查项 | 通过 | +|---|--------|------| +| 1 | PR pytest + 本地等价命令 | ☑ | +| 2 | 40/50 可核对(终轮) | ☑(流水线待跑) | + +### §3.3 独立复检(50) + +| # | 检查项 | 通过 | +|---|--------|------| +| 1 | `not_applicable` + 纯 docs | ☑ | +| 2 | 50 可选但 task 计划执行 | ☑ | + +### OpenSpec × TDD(validate) + +`python tools/harness_task_validate.py docs/tasks/active/task_harness_kpi_v1_2_pilot_v1.md` → **OK**(§失败路径 标题已对齐 validate)。 + +`python tools/harness_human_gate_check.py --task …` → **FAIL**(HG-REINSPECT pending)— **预期**;仅阻塞 `done`/合入,**不阻塞 30/40/50 执行**。 + +--- + +## human_gate + +| gate_id | status | blocks_hats | 结论 | +|---------|--------|-------------|------| +| HG-TASK-DRAFT | approved | 22-R1,30 | 不阻塞 | +| HG-AUDIT-R1 | approved | 30 | 不阻塞 | +| HG-REINSPECT | pending | done | 阻塞关账/merge;不阻塞 30 | + +--- + +## 阻塞项 + +**无阻塞。** + +--- + +## 是否建议执行帽开工 + +**建议开工。** 范围 §2 四项 docs 索引与模板字段;非范围无 `api/`。 + +--- + +## 签收 / 关闭 + +- **闸 1(本 R1)**:零阻塞,30 可开工 +- **流水线**:30 → 40 → 50(新会话)→ 00/CLOSE +- **闸 2**:HG-REINSPECT 待 50 通过后 **人签** 再 merge + +--- + +## 下一棒可复制 Prompt + +见 `docs/harness/invokes/by-task/harness-kpi-v1-2-pilot/invoke_20260531_30_harness-kpi-v1-2-pilot.md` §3。 From f6288f4c768a68636b21cf5628e14b70d174987b Mon Sep 17 00:00:00 2001 From: cyning Date: Sun, 31 May 2026 20:24:29 +0800 Subject: [PATCH 06/12] =?UTF-8?q?docs(harness):=2030=20=E6=89=A7=E8=A1=8C?= =?UTF-8?q?=20KPI=20v1.2=20=E7=B4=A2=E5=BC=95=E4=B8=8E=E6=A8=A1=E6=9D=BF?= =?UTF-8?q?=E5=AD=97=E6=AE=B5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit README §1、HARNESS_V2 §5.7–5.8、TASK_TEMPLATE 扩展字段;§失败路径标题对齐 validate。 Co-authored-by: Cursor --- docs/harness/HARNESS_V2_PLAN.md | 23 ++++++++++ docs/harness/README.md | 2 + ...voke_20260531_30_harness-kpi-v1-2-pilot.md | 43 +++++++++++++++++++ docs/tasks/templates/TASK_TEMPLATE.md | 4 ++ 4 files changed, 72 insertions(+) create mode 100644 docs/harness/invokes/by-task/harness-kpi-v1-2-pilot/invoke_20260531_30_harness-kpi-v1-2-pilot.md diff --git a/docs/harness/HARNESS_V2_PLAN.md b/docs/harness/HARNESS_V2_PLAN.md index 8babfade..d25bed69 100644 --- a/docs/harness/HARNESS_V2_PLAN.md +++ b/docs/harness/HARNESS_V2_PLAN.md @@ -138,6 +138,28 @@ Inform(告知)与 Constrain(约束)在前后端子仓及工作区根已 - **`human_gate`**:表列 `human_gate_id`、`status`(`pending` \| `approved`)、`blocks_hats`;**仅人** 可将 `pending` 改为 `approved`;Agent 遇阻塞帽 **拒执行**。 - **`git_branch`**(建议):半自动执行所在分支名(如 `task/`),**禁止**在 `main` 上连续自动链式提交。 +### 5.7 `experience_capture`(经验归纳 · 无 60 帽) + +| 取值 | 含义 | 关账时 | +|------|------|--------| +| `required` | 跨 task 可复用决策/排障/流程教训 | CLOSE 须有 **经验摘要** 或链 `docs/diary/` | +| `recommended` | 建议短摘要 | 关闭回溯 ≥3 bullet | +| `not_applicable` | 无复用经验 | **须** `experience_capture_note` 一行 | + +- 各帽 **Judgment** 可建议升/降档位;**22 或人** 改 task 元信息。 +- 判定矩阵:[`guides/KPI_RUBRIC_v1_2.md`](guides/KPI_RUBRIC_v1_2.md) §6;关账核对:[`prompts/handoff/HANDOFF_CLOSE_TRACE.md`](prompts/handoff/HANDOFF_CLOSE_TRACE.md) §4 步骤 6。 + +### 5.8 `kpi_rubric` / `kpi_aggregator` / `### KPI(00)` + +| 字段 | 说明 | +|------|------| +| **`kpi_rubric`** | 评分规则版本;**2026-05-31 起新建 task 必填** `KPI_RUBRIC_v1_2` | +| **`kpi_aggregator`** | 谁汇总 HatInstance 表:`CLOSE`(默认,可省略字段行)\| `00` \| `50` \| `human` | +| **`### KPI(00)`** | task 正文小节;关账前 **必填**(含 Task_KPI%、blocked 判定);公式见 KPI_RUBRIC §4 | + +- **00 总调度** 可链外编排并逐帽填 HatInstance;未用 00 时由 **关账(CLOSE)** 读各帽 Judgment + 50/reinspect 填表。 +- **blocked**(任一帽 D2/D5 fail)→ **不得关账**;与 `human_gate` pending、50 书面阻塞、必绿 CI 红 **并行** 硬规则。 + --- ## 6. 冻结点 vs 修订记录(再次落盘) @@ -196,6 +218,7 @@ Inform(告知)与 Constrain(约束)在前后端子仓及工作区根已 | 2026-05-14 | §3 表后脚注 **Invoke 快照**(链 §1、`invokes/`、`prompts` 各 `TEMPLATE-*-invoke` §3);§4 **P2-6** 增补 `invokes/` 与 §1、§3 同步修订 | | 2026-05-17 | §5.5 `audit_profile`、§5.6 `human_gate` / `semi_auto`;§0.2 链 [`handoff/HANDOFF_SEMI_AUTO.md`](prompts/HANDOFF_SEMI_AUTO.md) | | 2026-05-30 | §5.1 本仓 TDD 实践口径;task 模板 Delta/Scenario(OpenSpec 借鉴);链 diary TDD 专项分析 | +| 2026-05-31 | §5.7 `experience_capture`、§5.8 `kpi_rubric` / `kpi_aggregator` / `### KPI(00)`;链 KPI_RUBRIC_v1_2 与 00-orchestrator | --- diff --git a/docs/harness/README.md b/docs/harness/README.md index 7ed33b66..308b47e8 100644 --- a/docs/harness/README.md +++ b/docs/harness/README.md @@ -16,6 +16,8 @@ | 半自动 / 人工闸 | `HANDOFF_SEMI_AUTO` | | commit / 关账 | `HANDOFF_AUTO_COMMIT`、`HANDOFF_CLOSE_TRACE` | | task 字段 | `HARNESS_V2_PLAN.md` §5 | +| **KPI 评分 v1.2** | [`guides/KPI_RUBRIC_v1_2.md`](guides/KPI_RUBRIC_v1_2.md) · HatInstance / Task_KPI% | +| **总调度 00** | [`prompts/hats/00-orchestrator.md`](prompts/hats/00-orchestrator.md) · [`TEMPLATE-orchestrator-invoke`](prompts/templates/TEMPLATE-orchestrator-invoke.md) | | 流程 | `SDD_HAT_FLOW.md` | | **FAQ 改进 · 09 PLAN** | [`prompts/PROMPT_FAQ改进_09PLAN_理解_v1_zh.md`](prompts/PROMPT_FAQ改进_09PLAN_理解_v1_zh.md) | | **冷/温/热 术语** | [`guides/GUIDE_冷温热层_对内术语_v1_zh.md`](guides/GUIDE_冷温热层_对内术语_v1_zh.md) | diff --git a/docs/harness/invokes/by-task/harness-kpi-v1-2-pilot/invoke_20260531_30_harness-kpi-v1-2-pilot.md b/docs/harness/invokes/by-task/harness-kpi-v1-2-pilot/invoke_20260531_30_harness-kpi-v1-2-pilot.md new file mode 100644 index 00000000..54851b4c --- /dev/null +++ b/docs/harness/invokes/by-task/harness-kpi-v1-2-pilot/invoke_20260531_30_harness-kpi-v1-2-pilot.md @@ -0,0 +1,43 @@ +# Invoke 快照 · 30 执行编码 · harness-kpi-v1-2-pilot + +| 字段 | 值 | +|------|-----| +| hat_id | 30 | +| task_slug | harness-kpi-v1-2-pilot | +| task_path | docs/tasks/active/task_harness_kpi_v1_2_pilot_v1.md | +| git_branch | KPI_RUBRIC_v1_2 | +| worktree_root | ai-ink-brain-api-python | +| date | 20260531 | + +--- + +## §3 调用体(快照) + +```text +你正在扮演工作区 Harness「执行编码帽」,严格遵循: +- docs/harness/prompts/hats/30-execute-code.md +- docs/harness/prompts/hats/40-self-check.md +- docs/harness/HARNESS_V2_PLAN.md §5 + +上一帽已结束;本帽只按下文执行。 + +输入: +- 主 task:docs/tasks/active/task_harness_kpi_v1_2_pilot_v1.md +- 子仓:ai-ink-brain-api-python +- Worktree:ai-ink-brain-api-python +- VERIFY:pytest tests -m "not intent_eval and not intent_benchmark" +- 审查:docs/harness/reviews/by-task/harness-kpi-v1-2-pilot/task_harness_kpi_v1_2_pilot_audit_R1_20260531.md +- SPEC:无 + +你必须完成: +1. 按 task §2 范围改 docs(README §1、HARNESS_V2_PLAN §5.7/§5.8、TASK_TEMPLATE 字段)。 +2. 修正 task §失败路径 标题以通过 harness_task_validate(若 22 未做)。 +3. 跑 VERIFY;摘要写入 task ### 自检结论(执行者)或由 40 回填。 +4. 落盘 40 invoke + commit。 +5. 禁止触达 api/、tests/、workflows。 + +Judgment(30 · 末尾): +- experience_capture: 维持 required +- gate/risk: 无新增 pending 闸 +- hat_self: pass +``` diff --git a/docs/tasks/templates/TASK_TEMPLATE.md b/docs/tasks/templates/TASK_TEMPLATE.md index 51427fda..54c792e6 100644 --- a/docs/tasks/templates/TASK_TEMPLATE.md +++ b/docs/tasks/templates/TASK_TEMPLATE.md @@ -22,6 +22,10 @@ | **semi_auto** | `true` / `false` — 无 `pending` 人工闸时允许同会话链式戴帽(见 HANDOFF_SEMI_AUTO) | | **audit_profile** | `full` / `post_close` / `human_only` — 审核节奏(见 HARNESS_V2 §5.5) | | **git_branch** | `task/` — 半自动与实现 **禁止** 在 `main` 上连续提交 | +| **experience_capture** | `required` / `recommended` / `not_applicable` — 关账经验摘要档位(见 HARNESS_V2 §5.7) | +| **experience_capture_note** | (仅 `not_applicable` 时 **必填** 一行理由) | +| **kpi_rubric** | **`KPI_RUBRIC_v1_2`(2026-05-31 起新建 task 必填)** | +| **kpi_aggregator** | `CLOSE`(默认,可省略)\| `00` \| `50` \| `human` — 谁汇总 `### KPI(00)`(见 HARNESS_V2 §5.8) | ### 人工闸 `human_gate` From 03ce17af273c96c96e7011b3dff6dc77e00477a2 Mon Sep 17 00:00:00 2001 From: cyning Date: Sun, 31 May 2026 20:24:29 +0800 Subject: [PATCH 07/12] =?UTF-8?q?docs(harness):=2040=20=E8=87=AA=E6=A3=80?= =?UTF-8?q?=20+=2050=20invoke=20=E9=A2=84=E5=A4=87=20harness-kpi-v1-2-pilo?= =?UTF-8?q?t?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 回填 ### 自检结论;pytest 269 passed;落盘 invoke_40/50 待新会话 50。 Co-authored-by: Cursor --- ...voke_20260531_40_harness-kpi-v1-2-pilot.md | 40 +++++++++++++++++ ...voke_20260531_50_harness-kpi-v1-2-pilot.md | 44 +++++++++++++++++++ 2 files changed, 84 insertions(+) create mode 100644 docs/harness/invokes/by-task/harness-kpi-v1-2-pilot/invoke_20260531_40_harness-kpi-v1-2-pilot.md create mode 100644 docs/harness/invokes/by-task/harness-kpi-v1-2-pilot/invoke_20260531_50_harness-kpi-v1-2-pilot.md diff --git a/docs/harness/invokes/by-task/harness-kpi-v1-2-pilot/invoke_20260531_40_harness-kpi-v1-2-pilot.md b/docs/harness/invokes/by-task/harness-kpi-v1-2-pilot/invoke_20260531_40_harness-kpi-v1-2-pilot.md new file mode 100644 index 00000000..915243d3 --- /dev/null +++ b/docs/harness/invokes/by-task/harness-kpi-v1-2-pilot/invoke_20260531_40_harness-kpi-v1-2-pilot.md @@ -0,0 +1,40 @@ +# Invoke 快照 · 40 自检 · harness-kpi-v1-2-pilot + +| 字段 | 值 | +|------|-----| +| hat_id | 40 | +| task_slug | harness-kpi-v1-2-pilot | +| task_path | docs/tasks/active/task_harness_kpi_v1_2_pilot_v1.md | +| git_branch | KPI_RUBRIC_v1_2 | +| worktree_root | ai-ink-brain-api-python | +| date | 20260531 | + +--- + +## §3 调用体(快照) + +```text +你正在扮演工作区 Harness「自检帽(执行者)」,严格遵循: +- docs/harness/prompts/hats/40-self-check.md +- docs/harness/HARNESS_V2_PLAN.md §5 + +上一帽已结束;本帽只按下文执行。 + +输入: +- task:docs/tasks/active/task_harness_kpi_v1_2_pilot_v1.md +- 子仓:ai-ink-brain-api-python +- Worktree:ai-ink-brain-api-python +- VERIFY:pytest tests -m "not intent_eval and not intent_benchmark" +- diff:git diff KPI_RUBRIC_v1_2 — docs/harness、docs/tasks + +你必须完成: +1. 逐条对照 task §7 验收;跑 VERIFY + harness_task_validate + harness_human_gate_check(记录预期 FAIL 项)。 +2. 回填 task ### 自检结论(执行者)含 OpenSpec×TDD 三维摘要。 +3. 落盘 50 invoke(新会话 Fresh Context)+ commit。 +4. 禁止粘贴 30 长文给 50。 + +Judgment(40 · 末尾): +- experience_capture: 维持 required +- gate/risk: HG-REINSPECT pending → 50 后可关账预备,merge 仍须人签 +- hat_self: pass +``` diff --git a/docs/harness/invokes/by-task/harness-kpi-v1-2-pilot/invoke_20260531_50_harness-kpi-v1-2-pilot.md b/docs/harness/invokes/by-task/harness-kpi-v1-2-pilot/invoke_20260531_50_harness-kpi-v1-2-pilot.md new file mode 100644 index 00000000..3fa0e809 --- /dev/null +++ b/docs/harness/invokes/by-task/harness-kpi-v1-2-pilot/invoke_20260531_50_harness-kpi-v1-2-pilot.md @@ -0,0 +1,44 @@ +# Invoke 快照 · 50 独立复检 · harness-kpi-v1-2-pilot + +| 字段 | 值 | +|------|-----| +| hat_id | 50 | +| task_slug | harness-kpi-v1-2-pilot | +| task_path | docs/tasks/active/task_harness_kpi_v1_2_pilot_v1.md | +| git_branch | KPI_RUBRIC_v1_2 | +| reinspect_mode | 独立复检 | +| fresh_context | **必须新会话** | +| date | 20260531 | + +--- + +## §3 调用体(快照 · 新会话粘贴) + +```text +你正在扮演工作区 Harness「独立复检 + 全局验收帽」,严格遵循: +- docs/harness/prompts/hats/50-independent-reinspect.md +- docs/harness/guides/KPI_RUBRIC_v1_2.md +- docs/harness/prompts/handoff/HANDOFF_CLOSE_TRACE.md + +【Fresh Context · 禁止读 30 invoke 全文】 + +输入: +- task:docs/tasks/active/task_harness_kpi_v1_2_pilot_v1.md +- 子仓:ai-ink-brain-api-python +- 模式:独立复检 +- diff:git diff main...KPI_RUBRIC_v1_2 -- docs/harness docs/tasks +- 审查:docs/harness/reviews/by-task/harness-kpi-v1-2-pilot/task_harness_kpi_v1_2_pilot_audit_R1_20260531.md + +你必须完成: +0. 本 invoke 落盘 + commit。 +1. 读 task ### 自检结论(执行者);独立重跑 VERIFY。 +2. 对 task §7 验收逐项 pass/fail + 证据。 +3. 落盘 docs/tasks/reinspect_results/reinspect_harness-kpi-v1-2-pilot_20260531_v1.md。 +4. 建议合并或阻塞清单;Judgment 必填。 +5. 完成后提示用户:00/CLOSE 新会话汇总 ### KPI(00)+ CLOSE_TRACE;HG-REINSPECT 须人签 approved 再 merge。 + +Judgment(50 · 末尾): +- experience_capture: … +- gate/risk: HG-REINSPECT pending +- hat_self: pass | pass-with-notes | blocked +``` From 4df8addf9d90f38544e8ca1018222e1e6fc87f8f Mon Sep 17 00:00:00 2001 From: cyning Date: Sun, 31 May 2026 20:26:51 +0800 Subject: [PATCH 08/12] =?UTF-8?q?docs(harness):=2050=20=E7=8B=AC=E7=AB=8B?= =?UTF-8?q?=E5=A4=8D=E6=A3=80=20harness-kpi-v1-2-pilot?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 50 书面 pass-with-notes:VERIFY 独立复现、§7 可验项 pass; HG-REINSPECT 仍 pending 留人签;关账 KPI/experience 交 00/CLOSE。 Co-authored-by: Cursor --- ...voke_20260531_50_harness-kpi-v1-2-pilot.md | 13 ++ ...pect_harness-kpi-v1-2-pilot_20260531_v1.md | 131 ++++++++++++++++++ 2 files changed, 144 insertions(+) create mode 100644 docs/tasks/reinspect_results/reinspect_harness-kpi-v1-2-pilot_20260531_v1.md diff --git a/docs/harness/invokes/by-task/harness-kpi-v1-2-pilot/invoke_20260531_50_harness-kpi-v1-2-pilot.md b/docs/harness/invokes/by-task/harness-kpi-v1-2-pilot/invoke_20260531_50_harness-kpi-v1-2-pilot.md index 3fa0e809..7f5adfb6 100644 --- a/docs/harness/invokes/by-task/harness-kpi-v1-2-pilot/invoke_20260531_50_harness-kpi-v1-2-pilot.md +++ b/docs/harness/invokes/by-task/harness-kpi-v1-2-pilot/invoke_20260531_50_harness-kpi-v1-2-pilot.md @@ -42,3 +42,16 @@ Judgment(50 · 末尾): - gate/risk: HG-REINSPECT pending - hat_self: pass | pass-with-notes | blocked ``` + +--- + +## 50 执行 Judgment(2026-05-31 · 落盘完成) + +| 产出 | 路径 | +|------|------| +| reinspect | `docs/tasks/reinspect_results/reinspect_harness-kpi-v1-2-pilot_20260531_v1.md` | + +- **experience_capture**: 维持 required +- **gate/risk**: 须人审:HG-REINSPECT +- **hat_self**: pass-with-notes +- **合并建议**: 条件合并(50 书面 pass;HG-REINSPECT + 00/CLOSE 后合 PR) diff --git a/docs/tasks/reinspect_results/reinspect_harness-kpi-v1-2-pilot_20260531_v1.md b/docs/tasks/reinspect_results/reinspect_harness-kpi-v1-2-pilot_20260531_v1.md new file mode 100644 index 00000000..bf1504cf --- /dev/null +++ b/docs/tasks/reinspect_results/reinspect_harness-kpi-v1-2-pilot_20260531_v1.md @@ -0,0 +1,131 @@ +# 独立复检报告 · harness-kpi-v1-2-pilot · v1 + +| 字段 | 值 | +|------|-----| +| task | `docs/tasks/active/task_harness_kpi_v1_2_pilot_v1.md` | +| task_slug | `harness-kpi-v1-2-pilot` | +| freeze_id | `KPI-RUBRIC-PILOT@2026-05-31` | +| git_branch | `KPI_RUBRIC_v1_2` | +| base_commit | `03ce17a`(50 开帽时 HEAD) | +| diff_range | `main...KPI_RUBRIC_v1_2 -- docs/harness docs/tasks` | +| reinspect_mode | 独立复检 | +| invoke | `docs/harness/invokes/by-task/harness-kpi-v1-2-pilot/invoke_20260531_50_harness-kpi-v1-2-pilot.md` | +| audit_review | `docs/harness/reviews/by-task/harness-kpi-v1-2-pilot/task_harness_kpi_v1_2_pilot_audit_R1_20260531.md` | +| reviewer | Agent(50 帽 · Fresh Context) | +| date | 2026-05-31 | + +--- + +## 1. VERIFY 独立重跑 + +| 命令 | cwd | 退出码 | 要点 | +|------|-----|--------|------| +| `pytest tests -m "not intent_eval and not intent_benchmark"` | 仓根 | **0** | 269 passed, 1 skipped | +| `python tools/harness_task_validate.py docs/tasks/active/task_harness_kpi_v1_2_pilot_v1.md` | 仓根 | **0** | OK | +| `python tools/harness_human_gate_check.py --task docs/tasks/active/task_harness_kpi_v1_2_pilot_v1.md` | 仓根 | **1** | HG-REINSPECT pending(**预期**;阻塞 merge/关账,不阻塞 50) | + +与 40 自检结论一致;pytest 结果独立复现。 + +--- + +## 2. human_gate commit-level 审查 + +| gate_id | status | author / commit | 结论 | +|---------|--------|-----------------|------| +| HG-TASK-DRAFT | approved | `cyning` · `c2b73d8` | 人预批;diff 无 pending→approved 代签 | +| HG-AUDIT-R1 | approved | `cyning` · `c2b73d8` | 同上 | +| HG-REINSPECT | pending | `cyning` · `c2b73d8`(初稿即 pending) | **未**代签;全分支 diff 无 `HG-REINSPECT.*approved` | + +task 预批说明与 gate 表一致:HG-REINSPECT 留待 50 通过后 **人签** 再 merge。 + +--- + +## 3. scope / freeze_id + +| 项 | 结论 | 证据 | +|----|------|------| +| diff 无 `api/` / `tests/` / `.github/workflows/` | pass | `git diff main...KPI_RUBRIC_v1_2 --name-only` 仅 `docs/harness`、`docs/tasks` | +| freeze_id 内 | pass | 变更均为 KPI v1.2 基建 + 试点落盘;无契约升级 | +| F5 fp-scope-api | pass | 非范围未越界 | + +--- + +## 4. task §7 验收表 + +| 验收项 | pass/fail | 证据 | 备注 | +|--------|-----------|------|------| +| §2 docs 变更已提交 | **pass** | diff 16 files +1071/−105;`README.md` L19–20 KPI/00 索引;`HARNESS_V2_PLAN.md` §5.7–§5.8 L141–154+;`TASK_TEMPLATE.md` L25–28 新字段 | 与 task §2 勾选一致 | +| 00/22/30/40/50 invoke 落盘且 §3 ≥15 行 | **pass** | `invokes/by-task/harness-kpi-v1-2-pilot/invoke_20260531_{00,22,30,40,50}_*.md`;§3 行数 29/25/26/23/26 | 均 ≥15 | +| reviews R1 audit | **pass** | `reviews/.../task_harness_kpi_v1_2_pilot_audit_R1_20260531.md` · 零阻塞 | 22 结论可核对 | +| reinspect 落盘 + 建议合并 | **pass** | 本文件 | 见 §6 | +| task `### KPI(00)` 完整 | **pending** | task §10 L157–161 仍为占位 | **00/CLOSE** 职责;非 50 阻塞 | +| CLOSE_TRACE + experience | **pending** | 无 `invoke_*_CLOSE_*` | **00/CLOSE** 职责 | +| HG-REINSPECT → approved | **pending** | task L34 · gate_check exit 1 | **人签硬闸**;50 通过后待签 | +| pytest 回归绿 | **pass** | VERIFY 269 passed | 与 AGENTS §8 等价 | + +--- + +## 5. failure_paths 逐项 + +| # | Scenario ID | 判定 | 说明 | +|---|-------------|------|------| +| F1 | fp-kpi-blocked-d2 | pass | 无帽 D2 fail 落盘 | +| F2 | fp-kpi-missing-table | **pending** | KPI 表待 00/CLOSE;符合关账序 | +| F3 | fp-exp-required-missing | **pending** | experience 待 CLOSE | +| F4 | fp-invoke-stub | pass | 五帽 invoke §3 均 ≥15 行 | +| F5 | fp-scope-api | pass | diff 无 api | + +--- + +## 6. 阻塞合并项 + +| 项 | 类型 | 解除方式 | +|----|------|----------| +| HG-REINSPECT pending | **硬闸** | 人在 task 改 `approved` 并单独 commit | +| `### KPI(00)` 占位 | 关账 | 00/CLOSE 新会话汇总 HatInstance | +| experience 摘要缺失 | 关账 | CLOSE_TRACE §4 步骤 6 | +| CLOSE_TRACE 未写 | 关账 | 00/CLOSE 输出 | + +**50 范围内无实现/文档缺陷阻塞。** + +--- + +## 7. 合并建议 + +**建议条件合并(50 书面通过)** + +- 本 task **docs-only 试点**经 00→22→30→40→50 链验证通过;索引、模板字段、invoke/review 落盘齐全;pytest 回归绿;scope 未越界。 +- **PR 合入前仍须**:① **HG-REINSPECT** 人签 `approved`;② **00/CLOSE** 补齐 `### KPI(00)` + experience 摘要 + CLOSE_TRACE;③ task 移 `done/` + `_views/done.md`。 +- 50 **不**代签 HG-REINSPECT;**不**代替 00 写 KPI 表。 + +--- + +## 8. HatInstance(50 · KPI_RUBRIC_v1_2) + +| hat_code | round | agent_mode | D1 | D2 | D3 | D4 | D5 | judgment_notes | +|----------|-------|------------|----|----|----|----|-----|----------------| +| 50 | v1 | main_chat | pass | pass | pass | pass | pass | Fresh Context;独立 VERIFY;human_gate 未代签;关账项标 pending 非 fail | + +--- + +## 9. Judgment(50) + +- **experience_capture**: 维持 required — 试点须 CLOSE 产出可复用经验(00 帽链 + KPI 表落盘教训)。 +- **gate/risk**: 须人审:**HG-REINSPECT** — pending 阻塞 merge/关账;50 执行不阻塞。 +- **hat_self**: **pass-with-notes** — §7 关账三项 intentionally pending,已列 00/CLOSE 接力清单。 + +--- + +## 10. 给需求帽回填 + +**无**(文档缺口无;关账序属流程而非需求回填)。 + +--- + +## 11. 下一棒 + +**00/CLOSE 新会话**(`TEMPLATE-orchestrator-invoke` · 关账模式): + +1. 汇总各帽 HatInstance → 填写 task **`### KPI(00)`** +2. 写 experience 摘要 + **CLOSE_TRACE** +3. 提示人签 **HG-REINSPECT** → `approved` 后再 merge PR From a496d9b0372e1b215c1de18f389a5e5356d808a5 Mon Sep 17 00:00:00 2001 From: cyning Date: Sun, 31 May 2026 20:31:49 +0800 Subject: [PATCH 09/12] =?UTF-8?q?chore(gate):=20HG-REINSPECT=20approved=20?= =?UTF-8?q?=C2=B7=20harness-kpi-v1-2-pilot?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 50 书面通过后人签;解除 merge/关账硬闸。 Co-authored-by: Cursor --- docs/tasks/active/task_harness_kpi_v1_2_pilot_v1.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/tasks/active/task_harness_kpi_v1_2_pilot_v1.md b/docs/tasks/active/task_harness_kpi_v1_2_pilot_v1.md index 635f93c0..5d4d23ca 100644 --- a/docs/tasks/active/task_harness_kpi_v1_2_pilot_v1.md +++ b/docs/tasks/active/task_harness_kpi_v1_2_pilot_v1.md @@ -31,7 +31,7 @@ |---------------|--------|-------------|------| | HG-TASK-DRAFT | approved | 22-R1,30 | 试点 task 草案 · 预批 | | HG-AUDIT-R1 | approved | 30 | 22 R1 后人签 · 预批 | -| HG-REINSPECT | pending | done | **50 通过后** 人签再 merge(关账硬闸) | +| HG-REINSPECT | approved | done | **50 通过后** 人签再 merge(关账硬闸) | ### 开帽约定(已锁定) From 2f78cfe3986c4949815ec1121b72c72d8e744481 Mon Sep 17 00:00:00 2001 From: cyning Date: Sun, 31 May 2026 20:32:04 +0800 Subject: [PATCH 10/12] =?UTF-8?q?docs(task):=20=E5=90=8C=E6=AD=A5=20HG-REI?= =?UTF-8?q?NSPECT=20=E4=BA=BA=E7=AD=BE=E5=90=8E=E8=87=AA=E6=A3=80=E8=A1=A8?= =?UTF-8?q?=E4=B8=8E=20=C2=A77=20=E5=8B=BE=E9=80=89?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 消除自检表 pending 行对 harness_human_gate_check 的误报。 Co-authored-by: Cursor --- docs/tasks/active/task_harness_kpi_v1_2_pilot_v1.md | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/docs/tasks/active/task_harness_kpi_v1_2_pilot_v1.md b/docs/tasks/active/task_harness_kpi_v1_2_pilot_v1.md index 5d4d23ca..9cb491a8 100644 --- a/docs/tasks/active/task_harness_kpi_v1_2_pilot_v1.md +++ b/docs/tasks/active/task_harness_kpi_v1_2_pilot_v1.md @@ -117,7 +117,7 @@ KPI v1.2、00 总调度帽、CLOSE/50 模板已落在分支 `KPI_RUBRIC_v1_2`, - [ ] `reinspect_results/reinspect_harness-kpi-v1-2-pilot_YYYYMMDD_v1.md` 建议合并 - [ ] task **`### KPI(00)`** 完整(§6 演算级:HatInstance + Task_KPI% + blocked 判定) - [ ] CLOSE_TRACE 含 experience + KPI 核对 -- [ ] **HG-REINSPECT** → `approved` 后 merge PR +- [x] **HG-REINSPECT** → `approved` 后 merge PR(`a496d9b` 人签) - [ ] 本地 `pytest tests -m "not intent_eval and not intent_benchmark"` 绿(回归) --- @@ -181,10 +181,10 @@ KPI v1.2、00 总调度帽、CLOSE/50 模板已落在分支 `KPI_RUBRIC_v1_2`, | §2 docs 变更 | pass | README / HARNESS_V2_PLAN §5.7–5.8 / TASK_TEMPLATE diff | | invoke §3 ≥15 行 | pass | `invokes/by-task/harness-kpi-v1-2-pilot/invoke_*` | | reviews R1 | pass | `reviews/by-task/.../task_*_audit_R1_20260531.md` | -| reinspect | pending | 待 **50 新会话** | +| reinspect | pass | `reinspect_harness-kpi-v1-2-pilot_20260531_v1.md` · commit `4df8add` | | ### KPI(00) | pending | 待 **00/CLOSE** | | pytest 回归 | pass | 见上表 | -| HG-REINSPECT | pending | 人签后 merge | +| HG-REINSPECT | approved | 人签 `a496d9b` | ### OpenSpec × TDD 三维 @@ -194,7 +194,7 @@ KPI v1.2、00 总调度帽、CLOSE/50 模板已落在分支 `KPI_RUBRIC_v1_2`, | Correctness | pass — 纯 docs,Delta=无 | | Coherence | pass — 与 KPI_RUBRIC_v1_2 / 00 帽链一致 | -**已知未测项**:50 独立复检、关账 KPI 汇总、RECENT 排期同步(C5 非阻塞)。 +**已知未测项**:关账 KPI 汇总、CLOSE_TRACE、RECENT 排期同步(C5 非阻塞)。 --- From 03297724767a9349015d1eab056909fff21fbf05 Mon Sep 17 00:00:00 2001 From: cyning Date: Sun, 31 May 2026 20:34:05 +0800 Subject: [PATCH 11/12] =?UTF-8?q?docs(harness):=20CLOSE=20harness-kpi-v1-2?= =?UTF-8?q?-pilot=20=E2=80=94=20KPI=20100%=20=C2=B7=20task=20done?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 00 关账:### KPI(00)+ experience §12 + invoke_CLOSE;git mv done/。 Co-authored-by: Cursor --- ...e_20260531_CLOSE_harness-kpi-v1-2-pilot.md | 40 +++++++++++++++++++ docs/tasks/_views/done.md | 1 + .../task_harness_kpi_v1_2_pilot_v1.md | 0 3 files changed, 41 insertions(+) create mode 100644 docs/harness/invokes/by-task/harness-kpi-v1-2-pilot/invoke_20260531_CLOSE_harness-kpi-v1-2-pilot.md rename docs/tasks/{active => done}/task_harness_kpi_v1_2_pilot_v1.md (100%) diff --git a/docs/harness/invokes/by-task/harness-kpi-v1-2-pilot/invoke_20260531_CLOSE_harness-kpi-v1-2-pilot.md b/docs/harness/invokes/by-task/harness-kpi-v1-2-pilot/invoke_20260531_CLOSE_harness-kpi-v1-2-pilot.md new file mode 100644 index 00000000..e0f191b6 --- /dev/null +++ b/docs/harness/invokes/by-task/harness-kpi-v1-2-pilot/invoke_20260531_CLOSE_harness-kpi-v1-2-pilot.md @@ -0,0 +1,40 @@ +# Invoke 快照 · 00/CLOSE 关账 · harness-kpi-v1-2-pilot + +| 字段 | 值 | +|------|-----| +| hat_id | CLOSE | +| orchestrator | 00 | +| task_slug | harness-kpi-v1-2-pilot | +| task_path | docs/tasks/done/task_harness_kpi_v1_2_pilot_v1.md | +| git_branch | KPI_RUBRIC_v1_2 | +| kpi_aggregator | 00 | +| freeze_id | KPI-RUBRIC-PILOT@2026-05-31 | +| date | 20260531 | + +--- + +## §3 调用体(快照) + +```text +你正在扮演 Harness「总调度帽(00)· 关账轮」,严格遵循: +- docs/harness/prompts/hats/00-orchestrator.md +- docs/harness/guides/KPI_RUBRIC_v1_2.md §4–§6 +- docs/harness/prompts/handoff/HANDOFF_CLOSE_TRACE.md §4 步骤 6–7 + +输入: +- task:docs/tasks/active/task_harness_kpi_v1_2_pilot_v1.md +- 50:docs/tasks/reinspect_results/reinspect_harness-kpi-v1-2-pilot_20260531_v1.md +- HG-REINSPECT:approved(a496d9b 人签) + +你必须完成: +1. 汇总 HatInstance → task ### KPI(00)(Task_KPI% + 状态) +2. experience_capture: required → 经验摘要写入 task +3. 验收 §7 全勾选;task → done/ + _views/done.md +4. 对话输出 CLOSE_TRACE(无下一棒 Prompt) +5. commit 关账路径 + +Judgment(00 · CLOSE): +- experience_capture: 维持 required(摘要已写) +- gate/risk: 无 pending 闸;可 merge PR +- hat_self: pass +``` diff --git a/docs/tasks/_views/done.md b/docs/tasks/_views/done.md index 45f3c37b..956dc9a6 100644 --- a/docs/tasks/_views/done.md +++ b/docs/tasks/_views/done.md @@ -4,6 +4,7 @@ ## 已完成 +- `../done/task_harness_kpi_v1_2_pilot_v1.md`(2026-05-31:KPI v1.2 试点 · 00 编排帽链 · Task_KPI% 100 pass · `KPI-RUBRIC-PILOT@2026-05-31` · reinspect `reinspect_harness-kpi-v1-2-pilot_20260531_v1.md`) - `../done/task_backend_improve_batch_a_p0_v1.md`(2026-05-31 验收通过:FAQ Batch A IMP-B-01/02/10/11/20 · PR #96 · 22 CLOSE `reviews/by-task/backend-improve-batch-a-p0/`) - `../done/task_tech_graph_p0_handoff_and_drift_check_v1.md` - `../done/task_tech_graph_p1_manifest_and_validation_v1.md` diff --git a/docs/tasks/active/task_harness_kpi_v1_2_pilot_v1.md b/docs/tasks/done/task_harness_kpi_v1_2_pilot_v1.md similarity index 100% rename from docs/tasks/active/task_harness_kpi_v1_2_pilot_v1.md rename to docs/tasks/done/task_harness_kpi_v1_2_pilot_v1.md From 8268cfdfa10b28e7fcaffb00f7f37ec0e6f9a9d8 Mon Sep 17 00:00:00 2001 From: cyning Date: Sun, 31 May 2026 20:37:33 +0800 Subject: [PATCH 12/12] =?UTF-8?q?docs(task):=20=E8=A1=A5=E5=85=A8=20harnes?= =?UTF-8?q?s-kpi=20=E5=85=B3=E8=B4=A6=E6=AD=A3=E6=96=87=20=E2=80=94=20KPI?= =?UTF-8?q?=20=C2=A710=20=C2=B7=20experience=20=C2=A712=20=C2=B7=20done?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 0329772 仅 mv;本 commit 写入 ### KPI(00)、验收勾选与经验摘要。 Co-authored-by: Cursor --- .../done/task_harness_kpi_v1_2_pilot_v1.md | 71 ++++++++++++++----- 1 file changed, 54 insertions(+), 17 deletions(-) diff --git a/docs/tasks/done/task_harness_kpi_v1_2_pilot_v1.md b/docs/tasks/done/task_harness_kpi_v1_2_pilot_v1.md index 9cb491a8..54e63078 100644 --- a/docs/tasks/done/task_harness_kpi_v1_2_pilot_v1.md +++ b/docs/tasks/done/task_harness_kpi_v1_2_pilot_v1.md @@ -1,6 +1,6 @@ # Task:Harness KPI v1.2 试点 — 00 编排 + 帽链验证(docs) -> **状态**:`in_progress`(2026-05-31 · 00 开帽 · `KPI-RUBRIC-PILOT@2026-05-31`) +> **状态**:`done`(2026-05-31 · `KPI-RUBRIC-PILOT@2026-05-31` · Task_KPI% **100** · **pass**) > **schedule_ref**:RECENT §1.1(新增 · 待同步排期表) > **登记日期**:2026-05-31 > **路线**:**B** — 与 `KPI_RUBRIC_v1_2` 分支 **同 PR** 交付(基建 + 试点关账) @@ -25,7 +25,7 @@ ### 人工闸 `human_gate` -> **预批说明**:用户 **2026-05-31** 授权 HG-TASK-DRAFT / HG-AUDIT-R1 **approved**(路线 B · 暂不代填 HG-REINSPECT)。 +> **预批说明**:HG-TASK-DRAFT / HG-AUDIT-R1 预批于 `c2b73d8`;HG-REINSPECT 人签 `a496d9b`(50 通过后)。 | human_gate_id | status | blocks_hats | 说明 | |---------------|--------|-------------|------| @@ -66,10 +66,10 @@ KPI v1.2、00 总调度帽、CLOSE/50 模板已落在分支 `KPI_RUBRIC_v1_2`, - [x] [`docs/harness/README.md`](../../harness/README.md) §1 增 **KPI_RUBRIC_v1_2**、**00-orchestrator** 索引 - [x] [`docs/harness/HARNESS_V2_PLAN.md`](../../harness/HARNESS_V2_PLAN.md) 补 **§5.7** `experience_capture`、**§5.8** `kpi_rubric` / `kpi_aggregator` / `### KPI(00)` - [x] [`docs/tasks/templates/TASK_TEMPLATE.md`](../templates/TASK_TEMPLATE.md) 增 `experience_capture`、`kpi_rubric`、`kpi_aggregator` -- [x] Harness 帽链落盘:`invokes/by-task/harness-kpi-v1-2-pilot/`(含 **`invoke_*_00_*`**)、`reviews/…`(`reinspect_results/` 待 **50**) -- [ ] 本 task **`### KPI(00)`** 由 **00** 关账轮填写(非空) -- [ ] **`experience_capture: required`** → CLOSE 含经验摘要或链 `docs/diary/` -- [ ] 关账:`done/` + `_views/done.md` + CLOSE_TRACE +- [x] Harness 帽链落盘:`invokes/by-task/harness-kpi-v1-2-pilot/`(含 **`invoke_*_00_*`**)、`reviews/…`、`reinspect_results/reinspect_harness-kpi-v1-2-pilot_20260531_v1.md` +- [x] 本 task **`### KPI(00)`** 由 **00** 关账轮填写(非空) +- [x] **`experience_capture: required`** → CLOSE 含经验摘要(§12) +- [x] 关账:`done/` + `_views/done.md` + CLOSE_TRACE ## 3. 非范围 @@ -111,14 +111,14 @@ KPI v1.2、00 总调度帽、CLOSE/50 模板已落在分支 `KPI_RUBRIC_v1_2`, ## 7. 验收标准 -- [ ] 范围 §2 docs 变更已提交 -- [ ] **00** / 22 / 30 / 40 / 50 invoke 落盘且 §3 ≥15 行 -- [ ] `reviews/by-task/harness-kpi-v1-2-pilot/` 有 R1 audit -- [ ] `reinspect_results/reinspect_harness-kpi-v1-2-pilot_YYYYMMDD_v1.md` 建议合并 -- [ ] task **`### KPI(00)`** 完整(§6 演算级:HatInstance + Task_KPI% + blocked 判定) -- [ ] CLOSE_TRACE 含 experience + KPI 核对 +- [x] 范围 §2 docs 变更已提交 +- [x] **00** / 22 / 30 / 40 / 50 invoke 落盘且 §3 ≥15 行 +- [x] `reviews/by-task/harness-kpi-v1-2-pilot/` 有 R1 audit +- [x] `reinspect_results/reinspect_harness-kpi-v1-2-pilot_20260531_v1.md` 建议合并 +- [x] task **`### KPI(00)`** 完整(§6 演算级:HatInstance + Task_KPI% + blocked 判定) +- [x] CLOSE_TRACE 含 experience + KPI 核对(对话 · invoke_CLOSE) - [x] **HG-REINSPECT** → `approved` 后 merge PR(`a496d9b` 人签) -- [ ] 本地 `pytest tests -m "not intent_eval and not intent_benchmark"` 绿(回归) +- [x] 本地 `pytest tests -m "not intent_eval and not intent_benchmark"` 绿(269 passed · 50 复检) --- @@ -156,9 +156,33 @@ KPI v1.2、00 总调度帽、CLOSE/50 模板已落在分支 `KPI_RUBRIC_v1_2`, ## 10. ### KPI(00) -> **由 00(`kpi_aggregator: 00`)关账轮填写**;格式见 [`KPI_RUBRIC_v1_2.md`](../../harness/guides/KPI_RUBRIC_v1_2.md) §4.3–§6。 +**rubric**: KPI_RUBRIC_v1_2 · **汇总**: **100%** · **状态**: **pass** · **帽**: 00→22→30→40→50→CLOSE -(占位 · 执行后删除本行) +| hat_code | round | agent_mode | D1 | D2 | D3 | D4 | D5 | judgment_notes | +|----------|-------|------------|----|----|----|----|-----|----------------| +| 00 | open | main_chat | 100 | 100 | 100 | 100 | — | — | +| 22 | R1 | main_chat | 100 | 100 | 100 | 100 | — | R1 时 gate_check HG-REINSPECT FAIL 为预期 | +| 30 | R1 | main_chat | 100 | 100 | 100 | 100 | — | — | +| 40 | R1 | main_chat | 100 | 100 | 100 | 100 | — | — | +| 50 | v1 | main_chat | 100 | 100 | 100 | 100 | 100 | Fresh Context;建议条件合并;见 reinspect §9 | + +**Task 维聚合**(KPI_RUBRIC §4.1–§4.2): + +| 大维 | 聚合 | 得分 | +|------|------|------| +| D1 | avg(五帽) | 100 | +| D2 | min | 100 | +| D3 | avg | 100 | +| D4 | min | 100 | +| D5 | min(50) | 100 | + +```text +Task_KPI% = 100×20% + 100×30% + 100×15% + 100×15% + 100×20% = 100% +blocked:无(无帽 D2/D5 fail) +状态:pass(100 ≥ 80) +``` + +**blocked 原因**:(无) --- @@ -182,7 +206,7 @@ KPI v1.2、00 总调度帽、CLOSE/50 模板已落在分支 `KPI_RUBRIC_v1_2`, | invoke §3 ≥15 行 | pass | `invokes/by-task/harness-kpi-v1-2-pilot/invoke_*` | | reviews R1 | pass | `reviews/by-task/.../task_*_audit_R1_20260531.md` | | reinspect | pass | `reinspect_harness-kpi-v1-2-pilot_20260531_v1.md` · commit `4df8add` | -| ### KPI(00) | pending | 待 **00/CLOSE** | +| ### KPI(00) | pass | §10 · Task_KPI% 100 · pass | | pytest 回归 | pass | 见上表 | | HG-REINSPECT | approved | 人签 `a496d9b` | @@ -194,7 +218,19 @@ KPI v1.2、00 总调度帽、CLOSE/50 模板已落在分支 `KPI_RUBRIC_v1_2`, | Correctness | pass — 纯 docs,Delta=无 | | Coherence | pass — 与 KPI_RUBRIC_v1_2 / 00 帽链一致 | -**已知未测项**:关账 KPI 汇总、CLOSE_TRACE、RECENT 排期同步(C5 非阻塞)。 +**已知未测项**:RECENT 排期同步(C5 非阻塞)。 + +--- + +## 12. 经验摘要(experience_capture · required) + +> **00/CLOSE · 2026-05-31** · 试点 `kpi_aggregator: 00` 可复用决策 + +1. **帽链**:docs-only 试点可在 **同会话 semi_auto** 跑 00→22→30→40;**50 须新会话** Fresh Context(50 独立 VERIFY 与 reinspect 落盘已验证)。 +2. **KPI 汇总**:`kpi_aggregator: 00` 时 HatInstance 由 00 逐帽维护,**`### KPI(00)` 仅 CLOSE 轮填写**;50 只写本帽行 + Judgment,不代填 Task 表。 +3. **人工闸**:HG-REINSPECT **单独 commit 人签**(`a496d9b`)再 merge;Agent 不得代签;关账前 `harness_human_gate_check` 须 OK。 +4. **validate**:task 小节标题须精确 **`## 失败路径`**(非 `## 6. 失败路径`),否则 `harness_task_validate` FAIL。 +5. **路线 B**:KPI 基建与试点 task **同分支同 PR** 交付可行;invoke/review/reinspect 按 `by-task/harness-kpi-v1-2-pilot/` taxonomy 落盘齐全。 --- @@ -204,6 +240,7 @@ KPI v1.2、00 总调度帽、CLOSE/50 模板已落在分支 `KPI_RUBRIC_v1_2`, |------|------| | 2026-05-31 | v0.1 草案:路线 B · gate 预批 · 暂不执行 | | 2026-05-31 | v0.2:`kpi_aggregator: 00` · §9 拍板 · `pending` 待新会话 00 开帽 | +| 2026-05-31 | v1.0 关账:00→50 帽链 · KPI 100% pass · HG-REINSPECT `a496d9b` · experience §12 | ---