@hunter-harness/workflow-harness 0.2.58 → 0.2.60
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/harness/bundles/general/claude-code/.harness-build.json +1 -1
- package/harness/bundles/general/claude-code/README.md +11 -13
- package/harness/bundles/general/claude-code/harness-archive/SKILL.md +13 -16
- package/harness/bundles/general/claude-code/harness-archive/checklist.md +5 -8
- package/harness/bundles/general/claude-code/harness-archive/reference.md +7 -16
- package/harness/bundles/general/claude-code/harness-archive/templates/summary-data-template.json +1 -7
- package/harness/bundles/general/claude-code/harness-codebase-map/SKILL.md +1 -1
- package/harness/bundles/general/claude-code/harness-knowledge-ingest/SKILL.md +1 -1
- package/harness/bundles/general/claude-code/harness-knowledge-query/SKILL.md +1 -1
- package/harness/bundles/general/claude-code/harness-plan/SKILL.md +1 -1
- package/harness/bundles/general/claude-code/harness-review/SKILL.md +1 -1
- package/harness/bundles/general/claude-code/harness-run/SKILL.md +4 -2
- package/harness/bundles/general/claude-code/harness-run/checklist.md +10 -9
- package/harness/bundles/general/claude-code/harness-run/protocols.md +2 -0
- package/harness/bundles/general/claude-code/harness-run/reference.md +19 -16
- package/harness/bundles/general/claude-code/harness-submit/SKILL.md +1 -1
- package/harness/bundles/general/claude-code/harness-sync/SKILL.md +1 -1
- package/harness/bundles/general/claude-code/harness-test/SKILL.md +1 -1
- package/harness/bundles/general/claude-code/harness-test/checklist.md +2 -2
- package/harness/bundles/general/claude-code/harness-test/pitfalls.md +3 -3
- package/harness/bundles/general/claude-code/harness-test/reference.md +2 -2
- package/harness/bundles/general/claude-code/protocols/archive-report-protocol.md +16 -27
- package/harness/bundles/general/claude-code/protocols/evidence-based-reporting-protocol.md +5 -5
- package/harness/bundles/general/claude-code/protocols/ledger-protocol.md +6 -6
- package/harness/bundles/general/claude-code/protocols/report-pipeline-protocol.md +5 -6
- package/harness/bundles/general/claude-code/protocols/sensitive-info-protocol.md +3 -3
- package/harness/bundles/general/claude-code/protocols/state-layout-protocol.md +2 -4
- package/harness/bundles/general/claude-code/scripts/harness_archive.py +161 -987
- package/harness/bundles/general/codebuddy/.harness-build.json +1 -1
- package/harness/bundles/general/codebuddy/README.md +11 -13
- package/harness/bundles/general/codebuddy/harness-archive/SKILL.md +13 -16
- package/harness/bundles/general/codebuddy/harness-archive/checklist.md +5 -8
- package/harness/bundles/general/codebuddy/harness-archive/reference.md +7 -16
- package/harness/bundles/general/codebuddy/harness-archive/templates/summary-data-template.json +1 -7
- package/harness/bundles/general/codebuddy/harness-codebase-map/SKILL.md +1 -1
- package/harness/bundles/general/codebuddy/harness-knowledge-ingest/SKILL.md +1 -1
- package/harness/bundles/general/codebuddy/harness-knowledge-query/SKILL.md +1 -1
- package/harness/bundles/general/codebuddy/harness-plan/SKILL.md +1 -1
- package/harness/bundles/general/codebuddy/harness-review/SKILL.md +1 -1
- package/harness/bundles/general/codebuddy/harness-run/SKILL.md +4 -2
- package/harness/bundles/general/codebuddy/harness-run/checklist.md +10 -9
- package/harness/bundles/general/codebuddy/harness-run/protocols.md +2 -0
- package/harness/bundles/general/codebuddy/harness-run/reference.md +19 -16
- package/harness/bundles/general/codebuddy/harness-submit/SKILL.md +1 -1
- package/harness/bundles/general/codebuddy/harness-sync/SKILL.md +1 -1
- package/harness/bundles/general/codebuddy/harness-test/SKILL.md +1 -1
- package/harness/bundles/general/codebuddy/harness-test/checklist.md +2 -2
- package/harness/bundles/general/codebuddy/harness-test/pitfalls.md +3 -3
- package/harness/bundles/general/codebuddy/harness-test/reference.md +2 -2
- package/harness/bundles/general/codebuddy/protocols/archive-report-protocol.md +16 -27
- package/harness/bundles/general/codebuddy/protocols/evidence-based-reporting-protocol.md +5 -5
- package/harness/bundles/general/codebuddy/protocols/ledger-protocol.md +6 -6
- package/harness/bundles/general/codebuddy/protocols/report-pipeline-protocol.md +5 -6
- package/harness/bundles/general/codebuddy/protocols/sensitive-info-protocol.md +3 -3
- package/harness/bundles/general/codebuddy/protocols/state-layout-protocol.md +2 -4
- package/harness/bundles/general/codebuddy/scripts/harness_archive.py +161 -987
- package/harness/bundles/general/codex/.harness-build.json +1 -1
- package/harness/bundles/general/codex/README.md +11 -13
- package/harness/bundles/general/codex/harness-archive/SKILL.md +13 -16
- package/harness/bundles/general/codex/harness-archive/checklist.md +5 -8
- package/harness/bundles/general/codex/harness-archive/reference.md +7 -16
- package/harness/bundles/general/codex/harness-archive/templates/summary-data-template.json +1 -7
- package/harness/bundles/general/codex/harness-codebase-map/SKILL.md +1 -1
- package/harness/bundles/general/codex/harness-knowledge-ingest/SKILL.md +1 -1
- package/harness/bundles/general/codex/harness-knowledge-query/SKILL.md +1 -1
- package/harness/bundles/general/codex/harness-plan/SKILL.md +1 -1
- package/harness/bundles/general/codex/harness-review/SKILL.md +1 -1
- package/harness/bundles/general/codex/harness-run/SKILL.md +4 -2
- package/harness/bundles/general/codex/harness-run/checklist.md +10 -9
- package/harness/bundles/general/codex/harness-run/protocols.md +2 -0
- package/harness/bundles/general/codex/harness-run/reference.md +19 -16
- package/harness/bundles/general/codex/harness-submit/SKILL.md +1 -1
- package/harness/bundles/general/codex/harness-sync/SKILL.md +1 -1
- package/harness/bundles/general/codex/harness-test/SKILL.md +1 -1
- package/harness/bundles/general/codex/harness-test/checklist.md +2 -2
- package/harness/bundles/general/codex/harness-test/pitfalls.md +3 -3
- package/harness/bundles/general/codex/harness-test/reference.md +2 -2
- package/harness/bundles/general/codex/protocols/archive-report-protocol.md +16 -27
- package/harness/bundles/general/codex/protocols/evidence-based-reporting-protocol.md +5 -5
- package/harness/bundles/general/codex/protocols/ledger-protocol.md +6 -6
- package/harness/bundles/general/codex/protocols/report-pipeline-protocol.md +5 -6
- package/harness/bundles/general/codex/protocols/sensitive-info-protocol.md +3 -3
- package/harness/bundles/general/codex/protocols/state-layout-protocol.md +2 -4
- package/harness/bundles/general/codex/scripts/harness_archive.py +161 -987
- package/harness/bundles/general/cursor/.harness-build.json +1 -1
- package/harness/bundles/general/cursor/README.md +11 -13
- package/harness/bundles/general/cursor/harness-archive/SKILL.md +13 -16
- package/harness/bundles/general/cursor/harness-archive/checklist.md +5 -8
- package/harness/bundles/general/cursor/harness-archive/reference.md +7 -16
- package/harness/bundles/general/cursor/harness-archive/templates/summary-data-template.json +1 -7
- package/harness/bundles/general/cursor/harness-codebase-map/SKILL.md +1 -1
- package/harness/bundles/general/cursor/harness-knowledge-ingest/SKILL.md +1 -1
- package/harness/bundles/general/cursor/harness-knowledge-query/SKILL.md +1 -1
- package/harness/bundles/general/cursor/harness-plan/SKILL.md +1 -1
- package/harness/bundles/general/cursor/harness-review/SKILL.md +1 -1
- package/harness/bundles/general/cursor/harness-run/SKILL.md +4 -2
- package/harness/bundles/general/cursor/harness-run/checklist.md +10 -9
- package/harness/bundles/general/cursor/harness-run/protocols.md +2 -0
- package/harness/bundles/general/cursor/harness-run/reference.md +19 -16
- package/harness/bundles/general/cursor/harness-submit/SKILL.md +1 -1
- package/harness/bundles/general/cursor/harness-sync/SKILL.md +1 -1
- package/harness/bundles/general/cursor/harness-test/SKILL.md +1 -1
- package/harness/bundles/general/cursor/harness-test/checklist.md +2 -2
- package/harness/bundles/general/cursor/harness-test/pitfalls.md +3 -3
- package/harness/bundles/general/cursor/harness-test/reference.md +2 -2
- package/harness/bundles/general/cursor/protocols/archive-report-protocol.md +16 -27
- package/harness/bundles/general/cursor/protocols/evidence-based-reporting-protocol.md +5 -5
- package/harness/bundles/general/cursor/protocols/ledger-protocol.md +6 -6
- package/harness/bundles/general/cursor/protocols/report-pipeline-protocol.md +5 -6
- package/harness/bundles/general/cursor/protocols/sensitive-info-protocol.md +3 -3
- package/harness/bundles/general/cursor/protocols/state-layout-protocol.md +2 -4
- package/harness/bundles/general/cursor/scripts/harness_archive.py +161 -987
- package/harness/bundles/java/claude-code/.harness-build.json +1 -1
- package/harness/bundles/java/claude-code/README.md +11 -13
- package/harness/bundles/java/claude-code/harness-apidoc/SKILL.md +1 -1
- package/harness/bundles/java/claude-code/harness-archive/SKILL.md +13 -16
- package/harness/bundles/java/claude-code/harness-archive/checklist.md +5 -8
- package/harness/bundles/java/claude-code/harness-archive/reference.md +7 -16
- package/harness/bundles/java/claude-code/harness-archive/templates/summary-data-template.json +1 -7
- package/harness/bundles/java/claude-code/harness-codebase-map/SKILL.md +1 -1
- package/harness/bundles/java/claude-code/harness-knowledge-ingest/SKILL.md +1 -1
- package/harness/bundles/java/claude-code/harness-knowledge-query/SKILL.md +1 -1
- package/harness/bundles/java/claude-code/harness-package/SKILL.md +1 -1
- package/harness/bundles/java/claude-code/harness-plan/SKILL.md +1 -1
- package/harness/bundles/java/claude-code/harness-review/SKILL.md +1 -1
- package/harness/bundles/java/claude-code/harness-run/SKILL.md +4 -2
- package/harness/bundles/java/claude-code/harness-run/protocols.md +2 -0
- package/harness/bundles/java/claude-code/harness-submit/SKILL.md +1 -1
- package/harness/bundles/java/claude-code/harness-sync/SKILL.md +1 -1
- package/harness/bundles/java/claude-code/harness-test/SKILL.md +1 -1
- package/harness/bundles/java/claude-code/harness-test/checklist.md +2 -2
- package/harness/bundles/java/claude-code/harness-test/pitfalls.md +3 -3
- package/harness/bundles/java/claude-code/harness-test/reference.md +2 -2
- package/harness/bundles/java/claude-code/protocols/archive-report-protocol.md +16 -27
- package/harness/bundles/java/claude-code/protocols/evidence-based-reporting-protocol.md +5 -5
- package/harness/bundles/java/claude-code/protocols/ledger-protocol.md +6 -6
- package/harness/bundles/java/claude-code/protocols/report-pipeline-protocol.md +5 -6
- package/harness/bundles/java/claude-code/protocols/sensitive-info-protocol.md +3 -3
- package/harness/bundles/java/claude-code/protocols/state-layout-protocol.md +2 -4
- package/harness/bundles/java/claude-code/scripts/harness_archive.py +161 -987
- package/harness/bundles/java/codebuddy/.harness-build.json +1 -1
- package/harness/bundles/java/codebuddy/README.md +11 -13
- package/harness/bundles/java/codebuddy/harness-apidoc/SKILL.md +1 -1
- package/harness/bundles/java/codebuddy/harness-archive/SKILL.md +13 -16
- package/harness/bundles/java/codebuddy/harness-archive/checklist.md +5 -8
- package/harness/bundles/java/codebuddy/harness-archive/reference.md +7 -16
- package/harness/bundles/java/codebuddy/harness-archive/templates/summary-data-template.json +1 -7
- package/harness/bundles/java/codebuddy/harness-codebase-map/SKILL.md +1 -1
- package/harness/bundles/java/codebuddy/harness-knowledge-ingest/SKILL.md +1 -1
- package/harness/bundles/java/codebuddy/harness-knowledge-query/SKILL.md +1 -1
- package/harness/bundles/java/codebuddy/harness-package/SKILL.md +1 -1
- package/harness/bundles/java/codebuddy/harness-plan/SKILL.md +1 -1
- package/harness/bundles/java/codebuddy/harness-review/SKILL.md +1 -1
- package/harness/bundles/java/codebuddy/harness-run/SKILL.md +4 -2
- package/harness/bundles/java/codebuddy/harness-run/protocols.md +2 -0
- package/harness/bundles/java/codebuddy/harness-submit/SKILL.md +1 -1
- package/harness/bundles/java/codebuddy/harness-sync/SKILL.md +1 -1
- package/harness/bundles/java/codebuddy/harness-test/SKILL.md +1 -1
- package/harness/bundles/java/codebuddy/harness-test/checklist.md +2 -2
- package/harness/bundles/java/codebuddy/harness-test/pitfalls.md +3 -3
- package/harness/bundles/java/codebuddy/harness-test/reference.md +2 -2
- package/harness/bundles/java/codebuddy/protocols/archive-report-protocol.md +16 -27
- package/harness/bundles/java/codebuddy/protocols/evidence-based-reporting-protocol.md +5 -5
- package/harness/bundles/java/codebuddy/protocols/ledger-protocol.md +6 -6
- package/harness/bundles/java/codebuddy/protocols/report-pipeline-protocol.md +5 -6
- package/harness/bundles/java/codebuddy/protocols/sensitive-info-protocol.md +3 -3
- package/harness/bundles/java/codebuddy/protocols/state-layout-protocol.md +2 -4
- package/harness/bundles/java/codebuddy/scripts/harness_archive.py +161 -987
- package/harness/bundles/java/codex/.harness-build.json +1 -1
- package/harness/bundles/java/codex/README.md +11 -13
- package/harness/bundles/java/codex/harness-apidoc/SKILL.md +1 -1
- package/harness/bundles/java/codex/harness-archive/SKILL.md +13 -16
- package/harness/bundles/java/codex/harness-archive/checklist.md +5 -8
- package/harness/bundles/java/codex/harness-archive/reference.md +7 -16
- package/harness/bundles/java/codex/harness-archive/templates/summary-data-template.json +1 -7
- package/harness/bundles/java/codex/harness-codebase-map/SKILL.md +1 -1
- package/harness/bundles/java/codex/harness-knowledge-ingest/SKILL.md +1 -1
- package/harness/bundles/java/codex/harness-knowledge-query/SKILL.md +1 -1
- package/harness/bundles/java/codex/harness-package/SKILL.md +1 -1
- package/harness/bundles/java/codex/harness-plan/SKILL.md +1 -1
- package/harness/bundles/java/codex/harness-review/SKILL.md +1 -1
- package/harness/bundles/java/codex/harness-run/SKILL.md +4 -2
- package/harness/bundles/java/codex/harness-run/protocols.md +2 -0
- package/harness/bundles/java/codex/harness-submit/SKILL.md +1 -1
- package/harness/bundles/java/codex/harness-sync/SKILL.md +1 -1
- package/harness/bundles/java/codex/harness-test/SKILL.md +1 -1
- package/harness/bundles/java/codex/harness-test/checklist.md +2 -2
- package/harness/bundles/java/codex/harness-test/pitfalls.md +3 -3
- package/harness/bundles/java/codex/harness-test/reference.md +2 -2
- package/harness/bundles/java/codex/protocols/archive-report-protocol.md +16 -27
- package/harness/bundles/java/codex/protocols/evidence-based-reporting-protocol.md +5 -5
- package/harness/bundles/java/codex/protocols/ledger-protocol.md +6 -6
- package/harness/bundles/java/codex/protocols/report-pipeline-protocol.md +5 -6
- package/harness/bundles/java/codex/protocols/sensitive-info-protocol.md +3 -3
- package/harness/bundles/java/codex/protocols/state-layout-protocol.md +2 -4
- package/harness/bundles/java/codex/scripts/harness_archive.py +161 -987
- package/harness/bundles/java/cursor/.harness-build.json +1 -1
- package/harness/bundles/java/cursor/README.md +11 -13
- package/harness/bundles/java/cursor/harness-apidoc/SKILL.md +1 -1
- package/harness/bundles/java/cursor/harness-archive/SKILL.md +13 -16
- package/harness/bundles/java/cursor/harness-archive/checklist.md +5 -8
- package/harness/bundles/java/cursor/harness-archive/reference.md +7 -16
- package/harness/bundles/java/cursor/harness-archive/templates/summary-data-template.json +1 -7
- package/harness/bundles/java/cursor/harness-codebase-map/SKILL.md +1 -1
- package/harness/bundles/java/cursor/harness-knowledge-ingest/SKILL.md +1 -1
- package/harness/bundles/java/cursor/harness-knowledge-query/SKILL.md +1 -1
- package/harness/bundles/java/cursor/harness-package/SKILL.md +1 -1
- package/harness/bundles/java/cursor/harness-plan/SKILL.md +1 -1
- package/harness/bundles/java/cursor/harness-review/SKILL.md +1 -1
- package/harness/bundles/java/cursor/harness-run/SKILL.md +4 -2
- package/harness/bundles/java/cursor/harness-run/protocols.md +2 -0
- package/harness/bundles/java/cursor/harness-submit/SKILL.md +1 -1
- package/harness/bundles/java/cursor/harness-sync/SKILL.md +1 -1
- package/harness/bundles/java/cursor/harness-test/SKILL.md +1 -1
- package/harness/bundles/java/cursor/harness-test/checklist.md +2 -2
- package/harness/bundles/java/cursor/harness-test/pitfalls.md +3 -3
- package/harness/bundles/java/cursor/harness-test/reference.md +2 -2
- package/harness/bundles/java/cursor/protocols/archive-report-protocol.md +16 -27
- package/harness/bundles/java/cursor/protocols/evidence-based-reporting-protocol.md +5 -5
- package/harness/bundles/java/cursor/protocols/ledger-protocol.md +6 -6
- package/harness/bundles/java/cursor/protocols/report-pipeline-protocol.md +5 -6
- package/harness/bundles/java/cursor/protocols/sensitive-info-protocol.md +3 -3
- package/harness/bundles/java/cursor/protocols/state-layout-protocol.md +2 -4
- package/harness/bundles/java/cursor/scripts/harness_archive.py +161 -987
- package/harness/manifests/general/claude-code.json +30 -34
- package/harness/manifests/general/codebuddy.json +30 -34
- package/harness/manifests/general/codex.json +30 -34
- package/harness/manifests/general/cursor.json +30 -34
- package/harness/manifests/java/claude-code.json +30 -34
- package/harness/manifests/java/codebuddy.json +30 -34
- package/harness/manifests/java/codex.json +30 -34
- package/harness/manifests/java/cursor.json +30 -34
- package/hunter-workflow-family.json +5 -5
- package/package.json +1 -1
- package/harness/bundles/general/claude-code/harness-archive/templates/render-summary.mjs +0 -299
- package/harness/bundles/general/codebuddy/harness-archive/templates/render-summary.mjs +0 -299
- package/harness/bundles/general/codex/harness-archive/templates/render-summary.mjs +0 -299
- package/harness/bundles/general/cursor/harness-archive/templates/render-summary.mjs +0 -299
- package/harness/bundles/java/claude-code/harness-archive/templates/render-summary.mjs +0 -299
- package/harness/bundles/java/codebuddy/harness-archive/templates/render-summary.mjs +0 -299
- package/harness/bundles/java/codex/harness-archive/templates/render-summary.mjs +0 -299
- package/harness/bundles/java/cursor/harness-archive/templates/render-summary.mjs +0 -299
|
@@ -32,7 +32,7 @@ description: harness-test 的踩坑规则(来自真实对话日志)。执行
|
|
|
32
32
|
| 21 | **直接 Edit tracked 应用配置文件** | 测试期间改配置,之后又还原,diff 噪声大 | 把运行时配置覆盖直接写进 tracked 文件 | 生成 ASCII 运行时配置叠加 `C:/temp/harness-test-overlay/<change>/application-harness-test.yml`,启动用该绝对路径叠加(如 `-Dspring.config.additional-location=...`) |
|
|
33
33
|
| 22 | **唯一约束字段与本地预存数据冲突** | 大面积唯一约束冲突,9 个场景 BLOCKED | 执行器用硬编码字段值 | 用随机值(如 `900000 + random`)/ 先查避让 / 用唯一隔离值 |
|
|
34
34
|
| 23 | **setup 失败后继续用 null ID 发送请求** | 后续 9 个接口全部 400/500,掩盖真正问题 | 执行器不区分 BLOCKED 状态 | 执行器强制 setup/test/cleanup 三阶段,依赖未满足 → 标 🟡 BLOCKED,**不发起请求** |
|
|
35
|
-
| 24 |
|
|
35
|
+
| 24 | **归档数据把 PARTIAL 写成 NOT_RUN** | 平台显示「未执行」,但实际跑了 6 个场景 | 状态枚举不完整,只有 OK/FAIL/NOT_RUN | API 维度状态使用 OK/PARTIAL/BLOCKED/NOT_RUN/FAIL,5 PASS+9 BLOCKED+1 FAIL → `apiTest=PARTIAL` |
|
|
36
36
|
| 25 | **AI 启动的服务测试结束不关闭** | 端口长期占用,下次启动端口占用异常(如 `BindException`) | 没有 service lifecycle 管理 | 通过 `service.pid` + `serviceState` 区分,AI_STARTED 默认 Stop-Process,**即使测试失败也 finally 清理** |
|
|
37
37
|
| 26 | **凭证在同一流程内重复获取** | 浏览器 origin 在认证服务就再走一次登录 | 执行器依赖浏览器当前页面 origin | 执行器用 request context 直连本地 baseURL,凭证从 cache 读,`credentialRefreshCount > 1` → 🟡 WARN |
|
|
38
38
|
| 27 | **服务启动盲等 + 无反馈** | 等待 90s 后才发现启动报错 | 没有启动状态机和异常关键字检测 | 0–30s/2s × 30–120s/5s 状态机;遇启动失败特征(按技术栈,如 BindException/Could not resolve placeholder/BeanCreationException)立即停;> 10s 必须输出一次状态行 |
|
|
@@ -208,9 +208,9 @@ $cred = $resp.data.accessToken
|
|
|
208
208
|
**后果**:后续接口大面积 400/500,掩盖真正的根因(setup 失败)
|
|
209
209
|
**正确做法**:执行器强制 setup/test/cleanup 三阶段;依赖 setup 数据的场景在 test 阶段开头判定依赖,缺失则标 🟡 BLOCKED,**不发起请求**
|
|
210
210
|
|
|
211
|
-
### 规则 24
|
|
211
|
+
### 规则 24:归档数据把 PARTIAL 写成 NOT_RUN
|
|
212
212
|
**严重度**:🟡WARN
|
|
213
|
-
**场景**:15 个 API 场景中 5 PASS + 9 BLOCKED + 1 FAIL
|
|
213
|
+
**场景**:15 个 API 场景中 5 PASS + 9 BLOCKED + 1 FAIL,`summary-data.json` 却写成 `apiTest=NOT_RUN`,导致平台错误显示为「未执行」。
|
|
214
214
|
**后果**:报告与现实不符,下游 review / submit / package 误判
|
|
215
215
|
**正确做法**:API 维度状态使用 5 个值:`OK / PARTIAL / BLOCKED / NOT_RUN / FAIL`。"部分执行+部分阻塞" 是 `PARTIAL`,附说明:`apiTest=PARTIAL — 15 个场景中 5 个 PASS, 9 个 BLOCKED, 1 个 FAIL`
|
|
216
216
|
|
|
@@ -708,7 +708,7 @@ TEST_<change-name>_<timestamp>_<short-random>
|
|
|
708
708
|
- 测试数据: N 条已清理 / M 条遗留
|
|
709
709
|
- credentialRefreshCount: 0
|
|
710
710
|
|
|
711
|
-
###
|
|
711
|
+
### 归档数据与平台监控(顶层维度状态)
|
|
712
712
|
- compile: ✅ OK
|
|
713
713
|
- unitTest: ✅ OK / 🟡 REUSED_FROM_RUN
|
|
714
714
|
- apiTest: **OK / PARTIAL / BLOCKED / NOT_RUN / FAIL**
|
|
@@ -797,7 +797,7 @@ python <skills-root>/scripts/harness_ledger.py can-reuse --change-dir <dir> --ve
|
|
|
797
797
|
|
|
798
798
|
> **P0 场景 BLOCKED 不得仍 OK**:必须 🟡 WARN 或 ❌ FAIL。
|
|
799
799
|
|
|
800
|
-
### API
|
|
800
|
+
### API 测试维度状态(写入 `summary-data.json` 并由平台展示)
|
|
801
801
|
|
|
802
802
|
| 状态 | 定义 |
|
|
803
803
|
|---|---|
|
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
---
|
|
2
|
-
description: harness-archive
|
|
2
|
+
description: harness-archive 的结构化归档与 summary-data 校验协议。用于减少重复产物、提升数据准确性和平台展示一致性。
|
|
3
3
|
---
|
|
4
4
|
|
|
5
5
|
# Archive Report Protocol
|
|
6
6
|
|
|
7
7
|
## 原则
|
|
8
8
|
|
|
9
|
-
|
|
9
|
+
归档不应维护与平台重复的展示文件。事实收集与校验由 `harness_archive.py finalize` 单命令完成(cleanup → **freeze(事件 cutoff)** → collect → source consistency → summary validate → archive-meta);模型仅通过 events 写入维护结论。`meta/archive-meta.md` 由 finalize 生成,禁止手写。历史 archive 回放用 `harness_archive.py replay`(只读,不写 archive-meta / 不跑 cleanup)。
|
|
10
10
|
|
|
11
11
|
`knownRisks` 仅收录 severity∈{warning,error,critical} 的 issue 事件;无 severity 的 issue 进入 `maintenanceNotes`。`finalStatusReasons` 解释 CONDITIONAL_OK/WARN/FAIL 原因。finalize 在 before-manifest 前 cleanup:删除 lock/pid/launcher/credential,截断超大日志。
|
|
12
12
|
|
|
@@ -21,7 +21,6 @@ archive-meta.md
|
|
|
21
21
|
archive-manifest-before.json
|
|
22
22
|
archive-manifest-after.json
|
|
23
23
|
summary-data.json
|
|
24
|
-
final-summary.html
|
|
25
24
|
events.ndjson(新流程推荐;历史 archive 可缺失)
|
|
26
25
|
```
|
|
27
26
|
|
|
@@ -81,7 +80,7 @@ events.ndjson(新流程推荐;历史 archive 可缺失)
|
|
|
81
80
|
}
|
|
82
81
|
```
|
|
83
82
|
|
|
84
|
-
`
|
|
83
|
+
`summary-data.json` 的数字必须全部来自 events、ledger 或 manifest,不得手写另一套统计。
|
|
85
84
|
|
|
86
85
|
### 数据采集来源(禁止手写统计)
|
|
87
86
|
|
|
@@ -90,7 +89,7 @@ events.ndjson(新流程推荐;历史 archive 可缺失)
|
|
|
90
89
|
- `skillCalls`:从 execution-log 统计每个 `harness-<skill>` 小节出现次数(含重入)及结果。
|
|
91
90
|
- `verification` 各项及 `passRate`:来自 `evidence/verification-ledger.json`,不得手写通过率。
|
|
92
91
|
- `reviewSummary.redFixed`/`redConfirmed`/`yellowFixed`/`yellowDeferred`:从 review 报告清单 + 后续修复提交 diff 比对得出,不得手写。
|
|
93
|
-
- `artifacts[]`:本次变更构建出的可分发 package 产物(如 `.jar`/`.war`/`.zip`/`.tar`/`.gz`/`.dll`/`.exe`/`.whl`/`.nupkg` 等)。来自项目构建输出目录扫描(按构建工具识别产物路径,如 Maven `target/*.jar`、Gradle `build/libs/*`、npm `dist/*`、.NET `bin/Release/*`),每项记录 `name`(basename)、`path`(相对仓库根)、`size`、`sha256`(`Get-FileHash -Algorithm SHA256`
|
|
92
|
+
- `artifacts[]`:本次变更构建出的可分发 package 产物(如 `.jar`/`.war`/`.zip`/`.tar`/`.gz`/`.dll`/`.exe`/`.whl`/`.nupkg` 等)。来自项目构建输出目录扫描(按构建工具识别产物路径,如 Maven `target/*.jar`、Gradle `build/libs/*`、npm `dist/*`、.NET `bin/Release/*`),每项记录 `name`(basename)、`path`(相对仓库根)、`size`、`sha256`(`Get-FileHash -Algorithm SHA256` 计算),不得手写。无构建产物时留空数组,平台不展示空卡片。注意:归档 manifest(`archive-manifest-after.json`)记录的是 `.harness/archive/` 目录文件,不包含项目构建产物,两者不可混用。
|
|
94
93
|
- `reportPipeline.commands[]` / `verificationChecks[]` / `validationIssues[]`:来自 `events.ndjson`、ledger、validate 结果。旧 archive 无 events 时可从 ledger/log/manifest 回放,不得编造。
|
|
95
94
|
|
|
96
95
|
## manifest/checksum
|
|
@@ -121,7 +120,7 @@ powershell.exe -NoProfile -ExecutionPolicy Bypass -File "harness-skills/harness-
|
|
|
121
120
|
|
|
122
121
|
## 页面内容
|
|
123
122
|
|
|
124
|
-
|
|
123
|
+
平台归档摘要必须突出:
|
|
125
124
|
|
|
126
125
|
1. 本次变更业务目标;
|
|
127
126
|
2. 代码变更统计(diffStat:文件数 / insertions / deletions);
|
|
@@ -134,34 +133,24 @@ final-summary 必须突出:
|
|
|
134
133
|
禁止出现顶部 `N/A`、正文 `100%` 这类互相矛盾的数据。
|
|
135
134
|
|
|
136
135
|
|
|
137
|
-
##
|
|
136
|
+
## summary-data 信息密度要求
|
|
138
137
|
|
|
139
|
-
`summary-data.json` 至少包含 `verification`、`artifacts`、`reviewSummary`、`archiveManifest`、`maintenanceNotes`、`knownRisks`、`manualActions
|
|
138
|
+
`summary-data.json` 至少包含 `verification`、`artifacts`、`reviewSummary`、`archiveManifest`、`maintenanceNotes`、`knownRisks`、`manualActions`。平台只读取该 JSON,不重新推理或维护第二套统计。
|
|
140
139
|
|
|
141
|
-
`artifacts` 与 `uncommittedTestEvidence`
|
|
140
|
+
`artifacts` 与 `uncommittedTestEvidence` 为空数组时,平台不展示对应卡片,避免空态噪音;非空时才展示。字段在 JSON 中始终保留,仅控制界面展示。
|
|
142
141
|
|
|
143
|
-
##
|
|
142
|
+
## 数据校验
|
|
144
143
|
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
```powershell
|
|
148
|
-
powershell.exe -NoProfile -Command "& '<node-path>' 'harness-skills/harness-archive/templates/render-summary.mjs' --summary '.harness/changes/<change>/reports/final/summary-data.json' --out '.harness/changes/<change>/reports/final/final-summary.html'"
|
|
149
|
-
```
|
|
150
|
-
|
|
151
|
-
PowerShell HTML renderer 仅作 legacy fallback。该脚本以 UTF-8 with BOM 保存,确保 Windows PowerShell 5.1 正确识别编码(无 BOM 会被 5.1 按 ANSI/GBK 误读导致中文 label 乱码);默认渲染器仍为 Node.js `render-summary.mjs`。
|
|
152
|
-
|
|
153
|
-
**Python fallback(`harness_archive.py` 内置)**:Node 不可用/超时/exit 非 0/未产出文件时,`harness_archive.py render_final_summary` 自动降级为内置 Python fallback(`render_fallback_html`),渲染含 changeName、finalStatus、`reportPipeline.commands`(command/exitCode)、`verification`(unitTests/apiTests/dbCompatibility)、changedFiles、archiveManifest、knownRisks、manualActions、maintenanceNotes 的确定性 HTML;USER_SKIPPED/BLOCKED_BY_DBA/失败状态可见,所有动态值 HTML 转义。返回结构统一为 `{ok, renderer: node|python-fallback|none, fallbackReason, out_path}`。Node 与 Python fallback **都失败**(`renderer=none, ok=false`)时,finalize 立即恢复原 change 目录并 exit 非 0,**绝不归档无 final-summary.html 的变更**。
|
|
154
|
-
|
|
155
|
-
`validate` 是 `harness_archive.py finalize` 的内嵌同进程步骤(不存在独立 `report validate` CLI);validate error 存在时,finalize 恢复原 changes 目录并 exit 非 0,绝不删除原 changes 目录。**缺 final-summary.html 恒为 validate error**(不再有"没有 HTML 但只 warning"的分支)。
|
|
144
|
+
`validate` 是 `harness_archive.py finalize` 的内嵌同进程步骤(不存在独立 `report validate` CLI)。validate error 存在时,finalize 恢复原 changes 目录并 exit 非 0,绝不删除原 changes 目录。Hunter Platform 直接读取已校验的 `summary-data.json`。
|
|
156
145
|
|
|
157
146
|
## 冻结优先 finalize 与两层一致性(schemaVersion 2.3 起)
|
|
158
147
|
|
|
159
|
-
finalize 在 collect 之前**冻结事件事实**:所有 archive-fact 事件落盘并 fsync 后,写入唯一的 `phase.end` 与 `evidence/evidence-cutoff.json`(`eventCount` + `sha256` + `frozenAt`)。cutoff 之后**禁止再向归档 events.ndjson
|
|
148
|
+
finalize 在 collect 之前**冻结事件事实**:所有 archive-fact 事件落盘并 fsync 后,写入唯一的 `phase.end` 与 `evidence/evidence-cutoff.json`(`eventCount` + `sha256` + `frozenAt`)。cutoff 之后**禁止再向归档 events.ndjson 追加任何事件**;后续校验结果与 manifest 比对只写入 finalize JSON payload 与 maintenance outbox,不回写事件流。collect 是纯函数:stage/timeline/durations 全部由冻结事件推导,**不存在选择性 patch 步骤**。
|
|
160
149
|
|
|
161
150
|
两层 validator 顺序执行,任何一层失败都恢复原 change 目录并非零退出:
|
|
162
151
|
|
|
163
|
-
1. **source consistency**(`validate_source_consistency
|
|
164
|
-
2. **
|
|
152
|
+
1. **source consistency**(`validate_source_consistency`):summary 事实对照冻结来源——`event_count` 对 cutoff、verification 对 ledger typed metrics projection、review 计数对 sidecars。结果写入 `reportPipeline.sourceConsistency = {ok, issues}`;`ok=false` 时 issue code 含 `event-count-mismatch` / `verification-mismatch`。
|
|
153
|
+
2. **summary consistency**(`validate_summary_data`):检查最终状态与验证结果是否矛盾,以及结构化字段是否满足归档要求。
|
|
165
154
|
|
|
166
155
|
## versioned repair(不改写原归档)
|
|
167
156
|
|
|
@@ -171,14 +160,14 @@ finalize 在 collect 之前**冻结事件事实**:所有 archive-fact 事件
|
|
|
171
160
|
python harness/scripts/harness_archive.py repair --archive-dir ".harness/archive/<archive-id>" --json
|
|
172
161
|
```
|
|
173
162
|
|
|
174
|
-
repair 先在 archive 外生成候选 derived version
|
|
163
|
+
repair 先在 archive 外生成候选 derived version。来源校验与数据校验均通过后,才以不可变新版本写入 `derived/v<N>/{summary-data.json, repair-record.json}`,并把 `derived/authoritative.json` pointer 指向该版本;**原 summary-data.json 与 manifest 永不覆盖**。知识层只从 authoritative pointer 指向且 hash 校验通过的版本提取条目。
|
|
175
164
|
|
|
176
165
|
## 归档包与服务端知识 ingest(§8)
|
|
177
166
|
|
|
178
167
|
archive close 的破坏性事务只执行确定性 close:
|
|
179
168
|
|
|
180
169
|
```text
|
|
181
|
-
status -> manifest -> move -> collect ->
|
|
170
|
+
status -> manifest -> move -> collect -> validate -> compare
|
|
182
171
|
-> 生成确定性核心 ZIP -> 上传并等待服务端持久化/ingest 收据 -> stop AI service -> return
|
|
183
172
|
```
|
|
184
173
|
|
|
@@ -200,4 +189,4 @@ CONDITIONAL_OK
|
|
|
200
189
|
|
|
201
190
|
run/test 本轮新增、更新或安全修复且被 `.gitignore` 忽略的测试,必须先由 `test-tracking.json` + `harness_test_guard.py stage` 精确提交;这类测试不得继续作为“未提交证据”收尾,也不得计入可复用 P0 验证后随 worktree 删除。
|
|
202
191
|
|
|
203
|
-
`uncommittedTestEvidence` 只兼容历史归档或明确只读的外部证据:归档到 `backups/uncommitted-tests/`,记录文件名、验证范围与未提交原因,并在
|
|
192
|
+
`uncommittedTestEvidence` 只兼容历史归档或明确只读的外部证据:归档到 `backups/uncommitted-tests/`,记录文件名、验证范围与未提交原因,并在 `summary-data.json` 中记录风险。若它是本轮可修改的回归测试,则 archive 必须阻断并要求先走精确跟踪流程。
|
|
@@ -66,11 +66,11 @@ description: harness 全流程的证据化报告协议。所有 skill 输出必
|
|
|
66
66
|
| `To <remote>` + 推送范围 | ✅ 推送成功 |
|
|
67
67
|
| 无输出 | ❌ 状态未知 |
|
|
68
68
|
|
|
69
|
-
##
|
|
69
|
+
## summary-data.json 状态映射
|
|
70
70
|
|
|
71
|
-
|
|
71
|
+
平台监控直接读取 `summary-data.json`。本地归档不再生成重复的 HTML 报告。
|
|
72
72
|
|
|
73
|
-
归档前必须执行 `harness_archive.py finalize` 内嵌 validate
|
|
73
|
+
归档前必须执行 `harness_archive.py finalize` 内嵌 validate,或使用 `harness_archive.py replay` 做等价校验。只有 validate 无 error 时,才能宣称报告数据有效;validate error 不得被写成 WARN 或「已完成」。
|
|
74
74
|
|
|
75
75
|
| 数据来源 | 无报告时 |
|
|
76
76
|
|----------|----------|
|
|
@@ -122,7 +122,7 @@ harness-review 对代码/变更的审查发现按风险分级,反映的是**
|
|
|
122
122
|
| 标记 | 含义 | 适用场景 |
|
|
123
123
|
|:----:|------|----------|
|
|
124
124
|
| CONDITIONAL_OK | 条件性通过 | API 测试 `USER_SKIPPED` 或 DB 兼容性 `BLOCKED_BY_DBA` 时的归档最终状态,不得写纯 OK,必须在 knownRisks/manualActions 说明风险接受与后续人工动作 |
|
|
125
|
-
| 🔁REUSED | 复用前阶段结果 | 复用了前一阶段验证结果,
|
|
125
|
+
| 🔁REUSED | 复用前阶段结果 | 复用了前一阶段验证结果,summary-data 必须显式标记,不得伪装成重新执行 |
|
|
126
126
|
| 📝ADVISORY | 参考性未运行 | review 参考性意见,未作为门禁执行 |
|
|
127
127
|
| ⏭️ | 用户选择跳过 | 用户主动选择跳过某步骤(如仅本地 commit 不 push、跳过 test/review) |
|
|
128
128
|
|
|
@@ -131,4 +131,4 @@ harness-review 对代码/变更的审查发现按风险分级,反映的是**
|
|
|
131
131
|
- skill 执行状态回答"这个步骤跑没跑、成没成";
|
|
132
132
|
- review 发现严重级回答"被审查的东西有没有问题、问题多大";
|
|
133
133
|
- 条件态/跳过态回答"这个步骤的最终结论是什么特殊情况"。
|
|
134
|
-
- 三者独立:例如 test skill 可 ✅OK 执行成功,但 review 发现其覆盖的代码存在 RED 问题;又如 archive 可因 `USER_SKIPPED` 给出 CONDITIONAL_OK,同时 review 发现为 YELLOW。
|
|
134
|
+
- 三者独立:例如 test skill 可 ✅OK 执行成功,但 review 发现其覆盖的代码存在 RED 问题;又如 archive 可因 `USER_SKIPPED` 给出 CONDITIONAL_OK,同时 review 发现为 YELLOW。summary-data 必须分别记录,不得用一个维度覆盖另一个。
|
|
@@ -14,7 +14,7 @@ description: verification-ledger、diffHash、service-fingerprint 的统一协
|
|
|
14
14
|
- run 跑过测试命令(如 `mvn test`/`pytest`),test 阶段又原样跑一遍——浪费 3~8 分钟
|
|
15
15
|
- submit/package 各自再 compile+test 一次——同一 diff 被验证三四轮
|
|
16
16
|
- test 通过后用户改了一行注释/删了一个未用 import,package 不知道该不该重测,干脆全量重跑
|
|
17
|
-
-
|
|
17
|
+
- 阶段汇总只展示全绿时,看不出哪些是「重新执行」、哪些是「复用」、哪些是「小改动后复用」
|
|
18
18
|
|
|
19
19
|
verification-ledger 把每次验证(compile / unit test / api test / package)的**结果 + 证据 + 作用范围 + diffHash** 记下来,后续阶段先读 ledger 再决定是否重跑。
|
|
20
20
|
|
|
@@ -255,13 +255,13 @@ API 测试: 🔁 复用上一轮结果(diffHash 未变 / 仅清理性变更)
|
|
|
255
255
|
| harness-run | 步骤 2 前读(确认是否已有 compile/unitTest 可复用) | 步骤 2 后写 compile + unitTest(若跑了全量测试) |
|
|
256
256
|
| harness-test | Phase 1 前读(复用 run 的 unitTest) | Phase 1/2 后写 unitTest + apiTest |
|
|
257
257
|
| harness-submit | 验证前读(复用 test 的 compile/unitTest) | 若重跑则写回 |
|
|
258
|
-
| harness-archive |
|
|
258
|
+
| harness-archive | 归档前读(汇总各阶段状态,写入 `summary-data.json` 并上传平台) | 不写(归档时一并移入 archive) |
|
|
259
259
|
|
|
260
|
-
##
|
|
260
|
+
## 八、状态与归档投影的对应
|
|
261
261
|
|
|
262
|
-
ledger 的 `status` 与
|
|
262
|
+
ledger 的 `status` 与 `summary-data.json`、平台监控中的展示状态对应:
|
|
263
263
|
|
|
264
|
-
| ledger status | 含义 |
|
|
264
|
+
| ledger status | 含义 | 归档与平台标记 |
|
|
265
265
|
|:---:|------|------|
|
|
266
266
|
| `OK`(本阶段真实执行并通过) | 真实验证 | ✅OK |
|
|
267
267
|
| `OK` 但本阶段复用了前一阶段 | 复用 | 🔁REUSED |
|
|
@@ -270,7 +270,7 @@ ledger 的 `status` 与 final-summary 展示状态对应:
|
|
|
270
270
|
| `ADVISORY` | review 参考性 | 📝ADVISORY |
|
|
271
271
|
| postTestClassification=NON_BEHAVIORAL_CLEANUP | 小清理 | 🧹NON_BEHAVIORAL_CLEANUP |
|
|
272
272
|
|
|
273
|
-
|
|
273
|
+
**强制规则**:任何阶段若复用了前一阶段结果,`summary-data.json` 与平台监控必须显示 `🔁REUSED`,**不得伪装成重新执行**。
|
|
274
274
|
|
|
275
275
|
## 九、Ledger v2(cluster 2)
|
|
276
276
|
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
---
|
|
2
|
-
description: 结构化事件、summary-data
|
|
2
|
+
description: 结构化事件、summary-data 生成与校验,以及外部可观测性边界协议(finalize/replay)。
|
|
3
3
|
---
|
|
4
4
|
|
|
5
5
|
# Report Pipeline Protocol
|
|
@@ -10,7 +10,7 @@ description: 结构化事件、summary-data 生成、final-summary 校验和外
|
|
|
10
10
|
|
|
11
11
|
1. **Event Layer**:`events.ndjson` 记录结构化执行事实。
|
|
12
12
|
2. **Report Data Layer**:`summary-data.json` 由程序或确定性规则生成。
|
|
13
|
-
3. **
|
|
13
|
+
3. **Platform View Layer**:Hunter Platform 读取 `summary-data.json` 并展示结果,不在本地保存重复报告。
|
|
14
14
|
|
|
15
15
|
模型可以写维护者结论、风险解释和人工判断,但不得凭印象手写统计数字、通过率、耗时、命令结果或 artifact hash。
|
|
16
16
|
|
|
@@ -24,7 +24,7 @@ python <skills-root>/scripts/harness_archive.py replay --archive-dir ".harness/a
|
|
|
24
24
|
python <skills-root>/scripts/harness_events.py append --change-dir ".harness/changes/<change-name>" --phase "<phase>" --type <type> [--note "..."]
|
|
25
25
|
```
|
|
26
26
|
|
|
27
|
-
归档报告流水线只有两个入口,均由 `harness_archive.py` 提供:`collect
|
|
27
|
+
归档报告流水线只有两个入口,均由 `harness_archive.py` 提供:`collect` 与 `validate` 是 `finalize` 的内嵌同进程步骤,**不作为独立 CLI 暴露**(不存在 `report collect` / `report validate` 子命令)。`summary-data.json` 只能由 `finalize`(归档时)或 `replay`(回放时)生成;**禁止 agent 临场手写或拼装等价的 `summary-data.json`**。`harness_archive.py` 不可用时归档失败退出,不得退回手写汇总。
|
|
28
28
|
|
|
29
29
|
## events.ndjson
|
|
30
30
|
|
|
@@ -146,8 +146,7 @@ summary-data 必须保留原 archive final report 维度,并增加事件层摘
|
|
|
146
146
|
| 阶段 | 责任 | 写入 |
|
|
147
147
|
|---|---|---|
|
|
148
148
|
| `collect` | 从 events/ledger/log/manifest/report/git evidence 收集事实 | `summary-data.json` |
|
|
149
|
-
| `
|
|
150
|
-
| `validate` | 检查 final-summary 是否覆盖 summary-data 关键事实 | issues;不得静默忽略 error |
|
|
149
|
+
| `validate` | 检查 summary-data 的身份、验证状态与事实是否一致 | issues;不得静默忽略 error |
|
|
151
150
|
|
|
152
151
|
> **已废弃**:独立 `enrich` 步骤与 `harness-report` skill;全部并入 `finalize` 单命令。回放见 `harness_archive.py replay`。
|
|
153
152
|
|
|
@@ -168,4 +167,4 @@ summary-data 必须保留原 archive final report 维度,并增加事件层摘
|
|
|
168
167
|
|
|
169
168
|
- 可保留 `reportPipeline.externalTraceRefs[]` 等扩展字段。
|
|
170
169
|
- 不得要求外部服务可用才允许 archive 成功。
|
|
171
|
-
- 未来接入也必须以 `events.ndjson` 和 `summary-data.json`
|
|
170
|
+
- 未来接入也必须以 `events.ndjson` 和 `summary-data.json` 为稳定合同,不改变结构化报告的质量维度。
|
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
---
|
|
2
|
-
description: harness 全流程的敏感信息脱敏协议。所有 skill 的输出(控制台、execution-log、报告、commit message、
|
|
2
|
+
description: harness 全流程的敏感信息脱敏协议。所有 skill 的输出(控制台、execution-log、报告、commit message、summary-data)按本协议脱敏,禁止明文 token/密码/密钥。由原 harness-plan/sensitive-info.md 迁移。
|
|
3
3
|
---
|
|
4
4
|
|
|
5
5
|
# Sensitive Info Protocol
|
|
6
6
|
|
|
7
|
-
> 本协议适用于所有 harness-skills 的输出(控制台、execution-log.md、package-report、review-report、
|
|
7
|
+
> 本协议适用于所有 harness-skills 的输出(控制台、execution-log.md、package-report、review-report、summary-data.json、commit message)。
|
|
8
8
|
|
|
9
9
|
## 1. 禁止明文输出的信息类型
|
|
10
10
|
|
|
@@ -49,7 +49,7 @@ description: harness 全流程的敏感信息脱敏协议。所有 skill 的输
|
|
|
49
49
|
| 执行日志 | `.harness/changes/<change-name>/logs/execution-log.md` |
|
|
50
50
|
| 审查报告 | `.harness/changes/<change-name>/reports/review/review-report-*.md` |
|
|
51
51
|
| 测试报告 | `.harness/changes/<change-name>/reports/test/test-report-*.md` |
|
|
52
|
-
|
|
|
52
|
+
| 最终总结数据 | `.harness/archive/YYYY-MM-DD-<change-name>/reports/final/summary-data.json` |
|
|
53
53
|
| 归档元数据 | `.harness/archive/YYYY-MM-DD-<change-name>/meta/archive-meta.md` |
|
|
54
54
|
| Commit message | git log 中的提交信息 |
|
|
55
55
|
|
|
@@ -55,8 +55,7 @@ description: harness .harness 状态目录分层协议。用于减少根目录
|
|
|
55
55
|
│ ├── review/
|
|
56
56
|
│ ├── package/
|
|
57
57
|
│ └── final/
|
|
58
|
-
│
|
|
59
|
-
│ └── final-summary.html
|
|
58
|
+
│ └── summary-data.json
|
|
60
59
|
├── sqls/
|
|
61
60
|
├── scripts/
|
|
62
61
|
├── runtime/
|
|
@@ -117,7 +116,6 @@ package SHA-256,且服务端同时确认 `archive_status=durable` 与
|
|
|
117
116
|
| worktree | `meta/worktree.json` | `worktree.json` |
|
|
118
117
|
| run status | `evidence/run-task-status.md` | `run-task-status.md` |
|
|
119
118
|
| final summary data | `reports/final/summary-data.json` | `summary-data.json` |
|
|
120
|
-
| final report | `reports/final/final-summary.html` | `final-summary.html` |
|
|
121
119
|
|
|
122
120
|
## 写入规则
|
|
123
121
|
|
|
@@ -167,7 +165,7 @@ segment 的文件集由调用方(各 skill)决定:`capture_snapshot(..., s
|
|
|
167
165
|
|
|
168
166
|
## archive 结构
|
|
169
167
|
|
|
170
|
-
archive 后保持同样分层结构,不把 `.bak`、脚本、manifest
|
|
168
|
+
archive 后保持同样分层结构,不把 `.bak`、脚本、manifest 或其他生成文件堆在 archive 根目录。
|
|
171
169
|
|
|
172
170
|
未提交但用于验证的测试文件放入:
|
|
173
171
|
|