@hunter-harness/workflow-harness 0.2.41 → 0.2.42

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.
Files changed (130) hide show
  1. package/harness/bundles/general/claude-code/.harness-build.json +1 -1
  2. package/harness/bundles/general/claude-code/harness-archive/SKILL.md +1 -1
  3. package/harness/bundles/general/claude-code/harness-codebase-map/SKILL.md +1 -1
  4. package/harness/bundles/general/claude-code/harness-knowledge-ingest/SKILL.md +42 -16
  5. package/harness/bundles/general/claude-code/harness-knowledge-ingest/reference.md +57 -6
  6. package/harness/bundles/general/claude-code/harness-knowledge-ingest/scripts/harness_knowledge.py +1097 -174
  7. package/harness/bundles/general/claude-code/harness-knowledge-query/SKILL.md +1 -1
  8. package/harness/bundles/general/claude-code/harness-plan/SKILL.md +1 -1
  9. package/harness/bundles/general/claude-code/harness-review/SKILL.md +1 -1
  10. package/harness/bundles/general/claude-code/harness-run/SKILL.md +1 -1
  11. package/harness/bundles/general/claude-code/harness-submit/SKILL.md +1 -1
  12. package/harness/bundles/general/claude-code/harness-sync/SKILL.md +16 -10
  13. package/harness/bundles/general/claude-code/harness-sync/reference.md +34 -14
  14. package/harness/bundles/general/claude-code/harness-test/SKILL.md +1 -1
  15. package/harness/bundles/general/codebuddy/.harness-build.json +1 -1
  16. package/harness/bundles/general/codebuddy/harness-archive/SKILL.md +1 -1
  17. package/harness/bundles/general/codebuddy/harness-codebase-map/SKILL.md +1 -1
  18. package/harness/bundles/general/codebuddy/harness-knowledge-ingest/SKILL.md +41 -15
  19. package/harness/bundles/general/codebuddy/harness-knowledge-ingest/reference.md +57 -6
  20. package/harness/bundles/general/codebuddy/harness-knowledge-ingest/scripts/harness_knowledge.py +1097 -174
  21. package/harness/bundles/general/codebuddy/harness-knowledge-query/SKILL.md +1 -1
  22. package/harness/bundles/general/codebuddy/harness-plan/SKILL.md +1 -1
  23. package/harness/bundles/general/codebuddy/harness-review/SKILL.md +1 -1
  24. package/harness/bundles/general/codebuddy/harness-run/SKILL.md +1 -1
  25. package/harness/bundles/general/codebuddy/harness-submit/SKILL.md +1 -1
  26. package/harness/bundles/general/codebuddy/harness-sync/SKILL.md +16 -10
  27. package/harness/bundles/general/codebuddy/harness-sync/reference.md +34 -14
  28. package/harness/bundles/general/codebuddy/harness-test/SKILL.md +1 -1
  29. package/harness/bundles/general/codex/.harness-build.json +1 -1
  30. package/harness/bundles/general/codex/harness-archive/SKILL.md +1 -1
  31. package/harness/bundles/general/codex/harness-codebase-map/SKILL.md +1 -1
  32. package/harness/bundles/general/codex/harness-knowledge-ingest/SKILL.md +41 -15
  33. package/harness/bundles/general/codex/harness-knowledge-ingest/reference.md +57 -6
  34. package/harness/bundles/general/codex/harness-knowledge-ingest/scripts/harness_knowledge.py +1097 -174
  35. package/harness/bundles/general/codex/harness-knowledge-query/SKILL.md +1 -1
  36. package/harness/bundles/general/codex/harness-plan/SKILL.md +1 -1
  37. package/harness/bundles/general/codex/harness-review/SKILL.md +1 -1
  38. package/harness/bundles/general/codex/harness-run/SKILL.md +1 -1
  39. package/harness/bundles/general/codex/harness-submit/SKILL.md +1 -1
  40. package/harness/bundles/general/codex/harness-sync/SKILL.md +16 -10
  41. package/harness/bundles/general/codex/harness-sync/reference.md +34 -14
  42. package/harness/bundles/general/codex/harness-test/SKILL.md +1 -1
  43. package/harness/bundles/general/cursor/.harness-build.json +1 -1
  44. package/harness/bundles/general/cursor/harness-archive/SKILL.md +1 -1
  45. package/harness/bundles/general/cursor/harness-codebase-map/SKILL.md +1 -1
  46. package/harness/bundles/general/cursor/harness-knowledge-ingest/SKILL.md +41 -15
  47. package/harness/bundles/general/cursor/harness-knowledge-ingest/reference.md +57 -6
  48. package/harness/bundles/general/cursor/harness-knowledge-ingest/scripts/harness_knowledge.py +1097 -174
  49. package/harness/bundles/general/cursor/harness-knowledge-query/SKILL.md +1 -1
  50. package/harness/bundles/general/cursor/harness-plan/SKILL.md +1 -1
  51. package/harness/bundles/general/cursor/harness-review/SKILL.md +1 -1
  52. package/harness/bundles/general/cursor/harness-run/SKILL.md +1 -1
  53. package/harness/bundles/general/cursor/harness-submit/SKILL.md +1 -1
  54. package/harness/bundles/general/cursor/harness-sync/SKILL.md +16 -10
  55. package/harness/bundles/general/cursor/harness-sync/reference.md +34 -14
  56. package/harness/bundles/general/cursor/harness-test/SKILL.md +1 -1
  57. package/harness/bundles/java/claude-code/.harness-build.json +1 -1
  58. package/harness/bundles/java/claude-code/harness-apidoc/SKILL.md +1 -1
  59. package/harness/bundles/java/claude-code/harness-archive/SKILL.md +1 -1
  60. package/harness/bundles/java/claude-code/harness-codebase-map/SKILL.md +1 -1
  61. package/harness/bundles/java/claude-code/harness-knowledge-ingest/SKILL.md +42 -16
  62. package/harness/bundles/java/claude-code/harness-knowledge-ingest/reference.md +57 -6
  63. package/harness/bundles/java/claude-code/harness-knowledge-ingest/scripts/harness_knowledge.py +1097 -174
  64. package/harness/bundles/java/claude-code/harness-knowledge-query/SKILL.md +1 -1
  65. package/harness/bundles/java/claude-code/harness-package/SKILL.md +1 -1
  66. package/harness/bundles/java/claude-code/harness-plan/SKILL.md +1 -1
  67. package/harness/bundles/java/claude-code/harness-review/SKILL.md +1 -1
  68. package/harness/bundles/java/claude-code/harness-run/SKILL.md +1 -1
  69. package/harness/bundles/java/claude-code/harness-submit/SKILL.md +1 -1
  70. package/harness/bundles/java/claude-code/harness-sync/SKILL.md +16 -10
  71. package/harness/bundles/java/claude-code/harness-sync/reference.md +34 -14
  72. package/harness/bundles/java/claude-code/harness-test/SKILL.md +1 -1
  73. package/harness/bundles/java/codebuddy/.harness-build.json +1 -1
  74. package/harness/bundles/java/codebuddy/harness-apidoc/SKILL.md +1 -1
  75. package/harness/bundles/java/codebuddy/harness-archive/SKILL.md +1 -1
  76. package/harness/bundles/java/codebuddy/harness-codebase-map/SKILL.md +1 -1
  77. package/harness/bundles/java/codebuddy/harness-knowledge-ingest/SKILL.md +41 -15
  78. package/harness/bundles/java/codebuddy/harness-knowledge-ingest/reference.md +57 -6
  79. package/harness/bundles/java/codebuddy/harness-knowledge-ingest/scripts/harness_knowledge.py +1097 -174
  80. package/harness/bundles/java/codebuddy/harness-knowledge-query/SKILL.md +1 -1
  81. package/harness/bundles/java/codebuddy/harness-package/SKILL.md +1 -1
  82. package/harness/bundles/java/codebuddy/harness-plan/SKILL.md +1 -1
  83. package/harness/bundles/java/codebuddy/harness-review/SKILL.md +1 -1
  84. package/harness/bundles/java/codebuddy/harness-run/SKILL.md +1 -1
  85. package/harness/bundles/java/codebuddy/harness-submit/SKILL.md +1 -1
  86. package/harness/bundles/java/codebuddy/harness-sync/SKILL.md +16 -10
  87. package/harness/bundles/java/codebuddy/harness-sync/reference.md +34 -14
  88. package/harness/bundles/java/codebuddy/harness-test/SKILL.md +1 -1
  89. package/harness/bundles/java/codex/.harness-build.json +1 -1
  90. package/harness/bundles/java/codex/harness-apidoc/SKILL.md +1 -1
  91. package/harness/bundles/java/codex/harness-archive/SKILL.md +1 -1
  92. package/harness/bundles/java/codex/harness-codebase-map/SKILL.md +1 -1
  93. package/harness/bundles/java/codex/harness-knowledge-ingest/SKILL.md +41 -15
  94. package/harness/bundles/java/codex/harness-knowledge-ingest/reference.md +57 -6
  95. package/harness/bundles/java/codex/harness-knowledge-ingest/scripts/harness_knowledge.py +1097 -174
  96. package/harness/bundles/java/codex/harness-knowledge-query/SKILL.md +1 -1
  97. package/harness/bundles/java/codex/harness-package/SKILL.md +1 -1
  98. package/harness/bundles/java/codex/harness-plan/SKILL.md +1 -1
  99. package/harness/bundles/java/codex/harness-review/SKILL.md +1 -1
  100. package/harness/bundles/java/codex/harness-run/SKILL.md +1 -1
  101. package/harness/bundles/java/codex/harness-submit/SKILL.md +1 -1
  102. package/harness/bundles/java/codex/harness-sync/SKILL.md +16 -10
  103. package/harness/bundles/java/codex/harness-sync/reference.md +34 -14
  104. package/harness/bundles/java/codex/harness-test/SKILL.md +1 -1
  105. package/harness/bundles/java/cursor/.harness-build.json +1 -1
  106. package/harness/bundles/java/cursor/harness-apidoc/SKILL.md +1 -1
  107. package/harness/bundles/java/cursor/harness-archive/SKILL.md +1 -1
  108. package/harness/bundles/java/cursor/harness-codebase-map/SKILL.md +1 -1
  109. package/harness/bundles/java/cursor/harness-knowledge-ingest/SKILL.md +41 -15
  110. package/harness/bundles/java/cursor/harness-knowledge-ingest/reference.md +57 -6
  111. package/harness/bundles/java/cursor/harness-knowledge-ingest/scripts/harness_knowledge.py +1097 -174
  112. package/harness/bundles/java/cursor/harness-knowledge-query/SKILL.md +1 -1
  113. package/harness/bundles/java/cursor/harness-package/SKILL.md +1 -1
  114. package/harness/bundles/java/cursor/harness-plan/SKILL.md +1 -1
  115. package/harness/bundles/java/cursor/harness-review/SKILL.md +1 -1
  116. package/harness/bundles/java/cursor/harness-run/SKILL.md +1 -1
  117. package/harness/bundles/java/cursor/harness-submit/SKILL.md +1 -1
  118. package/harness/bundles/java/cursor/harness-sync/SKILL.md +16 -10
  119. package/harness/bundles/java/cursor/harness-sync/reference.md +34 -14
  120. package/harness/bundles/java/cursor/harness-test/SKILL.md +1 -1
  121. package/harness/manifests/general/claude-code.json +19 -19
  122. package/harness/manifests/general/codebuddy.json +19 -19
  123. package/harness/manifests/general/codex.json +19 -19
  124. package/harness/manifests/general/cursor.json +19 -19
  125. package/harness/manifests/java/claude-code.json +21 -21
  126. package/harness/manifests/java/codebuddy.json +21 -21
  127. package/harness/manifests/java/codex.json +21 -21
  128. package/harness/manifests/java/cursor.json +21 -21
  129. package/hunter-workflow-family.json +10 -10
  130. package/package.json +1 -1
@@ -3,7 +3,7 @@ name: harness-knowledge-query
3
3
  description: 根据新需求、设计任务、代码修改请求或问题排查,在规划和编码前查询 .harness/knowledge
4
4
  历史上下文。适用场景:query knowledge、查找历史需求、根据归档理解需求、继续之前类似开发、生成需求上下文包。
5
5
  ---
6
- <!-- generated by harness_deploy.py; core=09e151856320112f; overlay=java; agent=cursor; do not edit -->
6
+ <!-- generated by harness_deploy.py; core=5f4653e62a19bff2; overlay=java; agent=cursor; do not edit -->
7
7
  # harness-knowledge-query
8
8
 
9
9
  并行 change 中查询必须传 `--change <change-id>`;成功后以该 change 的 `meta/knowledge-context.json` 为稳定指针。全局 `context-packs/latest.json` 仅向后兼容,不得用于判断多个 active change 的上下文归属。
@@ -2,7 +2,7 @@
2
2
  name: harness-package
3
3
  description: 增量模块打包:拉取最新→编译验证→mvn package→汇总 jar/war。使用场景:打包、package、发版准备
4
4
  ---
5
- <!-- generated by harness_deploy.py; core=09e151856320112f; overlay=java; agent=cursor; do not edit -->
5
+ <!-- generated by harness_deploy.py; core=5f4653e62a19bff2; overlay=java; agent=cursor; do not edit -->
6
6
  # harness-package — 增量模块打包(Java overlay)
7
7
 
8
8
  ## Purpose
@@ -2,7 +2,7 @@
2
2
  name: harness-plan
3
3
  description: 将需求转化为设计文档+实施计划+完整测试场景表,必须在编码前完成。使用场景:需求分析、feature plan、技术方案设计、实现方案规划
4
4
  ---
5
- <!-- generated by harness_deploy.py; core=09e151856320112f; overlay=java; agent=cursor; do not edit -->
5
+ <!-- generated by harness_deploy.py; core=5f4653e62a19bff2; overlay=java; agent=cursor; do not edit -->
6
6
  # harness-plan — 需求规划
7
7
 
8
8
  ## Purpose
@@ -3,7 +3,7 @@ name: harness-review
3
3
  description: 6维度代码审查(架构/安全/规范/兼容/测试/性能),对照项目规则(见
4
4
  .harness/context-index.json)和测试场景表,在隔离上下文运行。使用场景:代码审查、提交前检查、合并评审
5
5
  ---
6
- <!-- generated by harness_deploy.py; core=09e151856320112f; overlay=java; agent=cursor; do not edit -->
6
+ <!-- generated by harness_deploy.py; core=5f4653e62a19bff2; overlay=java; agent=cursor; do not edit -->
7
7
  # harness-review — 代码审查
8
8
 
9
9
  ## Purpose
@@ -2,7 +2,7 @@
2
2
  name: harness-run
3
3
  description: 按变更簇执行 TDD 编码循环(RED→GREEN→REFACTOR→编译验证),逐变更簇实现计划中的任务。使用场景:开始编码、实现功能、写代码、TDD 编码
4
4
  ---
5
- <!-- generated by harness_deploy.py; core=09e151856320112f; overlay=java; agent=cursor; do not edit -->
5
+ <!-- generated by harness_deploy.py; core=5f4653e62a19bff2; overlay=java; agent=cursor; do not edit -->
6
6
  # harness-run — 需求编码
7
7
 
8
8
  ## Purpose
@@ -3,7 +3,7 @@ name: harness-submit
3
3
  description: 最终提交封装:验证→中文 commit→提交/推送;worktree 模式含 --no-ff
4
4
  合并回主分支。使用场景:提交代码、commit、push、合并分支、merge to main、完成开发
5
5
  ---
6
- <!-- generated by harness_deploy.py; core=09e151856320112f; overlay=java; agent=cursor; do not edit -->
6
+ <!-- generated by harness_deploy.py; core=5f4653e62a19bff2; overlay=java; agent=cursor; do not edit -->
7
7
  # harness-submit — 最终提交(含 worktree 合并)
8
8
 
9
9
  ## Purpose
@@ -4,7 +4,7 @@ description: Use when the user asks to synchronize, refresh, or validate Harness
4
4
  metadata, adapters, knowledge, rules, instruction entrypoints, config origins,
5
5
  or CodeGraph status.
6
6
  ---
7
- <!-- generated by harness_deploy.py; core=09e151856320112f; overlay=java; agent=cursor; do not edit -->
7
+ <!-- generated by harness_deploy.py; core=5f4653e62a19bff2; overlay=java; agent=cursor; do not edit -->
8
8
  # harness-sync
9
9
 
10
10
  ## Purpose
@@ -13,13 +13,10 @@ description: Use when the user asks to synchronize, refresh, or validate Harness
13
13
 
14
14
  ## Before running
15
15
 
16
- 读取 `reference.md`。先执行只读能力握手;若最低 CLI 版本或任一必需能力不满足,立即停止,不得先运行 knowledge、refresh 或其他重操作:
17
-
18
- ```powershell
19
- npx hunter-harness capabilities --json
20
- ```
21
-
22
- 工作流要求 `sync@1`、`rules-sync@1`、`rules-review@1`、`knowledge-sync@2`。`BLOCKED_CAPABILITY_MISMATCH` 属环境阻塞,不得降级为手工拼接旧流程。
16
+ 读取 `reference.md`。`sync` 自身会在任何重操作之前完成能力握手;不要另起一个
17
+ `capabilities` 进程。工作流要求 `sync@2`、`rules-sync@1`、`rules-review@1`、
18
+ `knowledge-sync@3`、`codegraph-status@2`。`BLOCKED_CAPABILITY_MISMATCH` 属环境阻塞,
19
+ 不得降级为手工拼接旧流程。
23
20
 
24
21
  ## Run
25
22
 
@@ -29,17 +26,26 @@ npx hunter-harness sync --project <项目路径> --profile interactive --progres
29
26
 
30
27
  CLI 负责 Python runtime 解析、投影事务、knowledge、rules、map、指令图、配置来源、change 状态及 CodeGraph 证据汇总。禁止直接调用内部 Python 脚本,禁止使用固定 `HEAD~5`,禁止自动全量重建 CodeGraph。
31
28
 
32
- 长阶段的 heartbeat 写 stderr;stdout 只保留紧凑摘要。完整报告写入摘要中的 `reportPath`,并带 `reportSha256`。不得把完整 JSON 报告直接回显到对话。
29
+ 只读诊断使用 `--check`(`--dry-run` 为兼容别名);它不得写报告、receipt 或投影。
30
+ 长阶段的 heartbeat 写 stderr;stdout 只保留紧凑摘要。完整报告写入摘要中的
31
+ `reportPath`,并带 `reportSha256`。需要组件级证据时显式加 `--verbose`,不得默认把完整
32
+ JSON 报告回显到对话。
33
+
34
+ 摘要中的 `remediations[]` 是稳定修复契约。先用对应 `previewCommand` 预览;低风险修复用
35
+ `--apply safe`,指定修复用 `--fix <id>`。需覆盖受管投影的修复必须同时提供 `--yes`,
36
+ 并依赖 refresh 事务留下的 before snapshot;不允许绕过确认或无备份覆盖。指定修复时,
37
+ 无关组件只做只读评估,不得顺带写入。
33
38
 
34
39
  ## Interpret
35
40
 
36
41
  - `OK`:所有可验证组件通过。
42
+ - `ADVISORY`:索引最新,但有待评审候选等非阻塞健康提示;退出码仍为 0。
37
43
  - `WARN`:存在过期、冲突、待评审或 `UNKNOWN` 证据;按 `reportPath` 中的 `nextAction` 处理。
38
44
  - `FAIL`:组件执行失败;不得宣称同步完成。
39
45
  - `BLOCKED`:runtime、项目状态或能力契约阻塞;先修复阻塞条件。
40
46
  - `UNKNOWN`:证据不足,不等于成功,也不触发无界重建。
41
47
 
42
- 非交互或 CI 使用 `--profile general --progress jsonl --json`,不得等待规则候选确认。交互式运行若报告规则待评审,再按 `reference.md` 的显式入口处理。
48
+ 非交互或 CI 使用 `--check --profile general --progress jsonl --json`,不得等待规则候选确认。交互式运行若报告规则待评审,再按 `reference.md` 的显式入口处理。
43
49
 
44
50
  ## Safety
45
51
 
@@ -6,13 +6,8 @@ description: harness-sync 的能力契约、统一状态模型、报告收据和
6
6
 
7
7
  ## 1. 能力握手
8
8
 
9
- 统一入口执行前读取:
10
-
11
- ```powershell
12
- npx hunter-harness capabilities --json
13
- ```
14
-
15
- 工作流 family manifest 声明 `minimumCliVersion` 和 `capabilities`。CLI 在任何高成本阶段之前核对版本与能力;缺失时返回:
9
+ 工作流 family manifest 声明 `minimumCliVersion` 和 `capabilities`。`sync` 在任何高成本
10
+ 阶段之前自行核对版本与能力;Skill 不要再运行独立的 `capabilities` 子进程。缺失时返回:
16
11
 
17
12
  ```json
18
13
  {
@@ -47,22 +42,41 @@ npx hunter-harness sync --project <项目路径> --profile interactive --progres
47
42
  CI/非交互式:
48
43
 
49
44
  ```powershell
50
- npx hunter-harness sync --project <项目路径> --profile general --progress jsonl --json
45
+ npx hunter-harness sync --check --project <项目路径> --profile general --progress jsonl --json
51
46
  ```
52
47
 
53
- `--dry-run` 只做只读检查或事务预览,不应生成持久报告、receipt 或投影。每个长阶段通过 stderr 输出受限 heartbeat;stdout 只输出:
48
+ `--check` 是严格只读检查;`--dry-run` 是兼容别名。两者都不生成持久报告、receipt
49
+ 投影。每个长阶段通过 stderr 输出受限 heartbeat;stdout 默认只输出:
54
50
 
55
51
  ```json
56
52
  {
57
53
  "status": "WARN",
58
54
  "runId": "<run-id>",
59
- "components": {"ok": 7, "warn": 1, "fail": 0, "blocked": 0, "unknown": 1},
55
+ "components": {"ok": 7, "advisory": 1, "warn": 0, "fail": 0, "blocked": 0, "unknown": 0},
56
+ "versions": {
57
+ "cliVersion": "0.0.0",
58
+ "workflowBundleVersion": "0.0.0",
59
+ "adapterBundleVersions": {}
60
+ },
61
+ "remediations": [],
60
62
  "reportPath": ".harness/runtime/sync/<run-id>/reports/sync-report.json",
61
63
  "reportSha256": "<sha256>"
62
64
  }
63
65
  ```
64
66
 
65
- 详细报告必须受大小限制,并包含每个组件的 `status`、`reasonCode`、`observedAt`、`durationMs`、输入/输出 hash、证据、是否自动修复及 `nextAction`。
67
+ 只读检查的 `reportPath/reportSha256` `null`。详细报告必须受大小限制,并包含每个组件
68
+ 的 `status`、`reasonCode`、`observedAt`、`durationMs`、输入/输出 hash、证据、是否自动
69
+ 修复及 `nextAction`;只有显式 `--verbose` 才把组件级详情写到 stdout。
70
+
71
+ ### 结构化修复
72
+
73
+ - `remediations[]` 含稳定 `id`、风险、写入范围、备份/回滚说明、预计耗时、是否需确认、
74
+ `previewCommand` 与 `applyCommand`。
75
+ - `--apply safe` 只执行低风险、无需确认的修复。
76
+ - `--fix <id>` 只执行该项;需要覆盖受管 Adapter 时必须加 `--yes`。
77
+ - 指定修复时,其他组件仍参与诊断但保持只读。
78
+ - Adapter 覆盖由 refresh 事务执行,before snapshot 位于最新 committed refresh
79
+ transaction;事务失败会自动回滚。预览永远不得产生写入。
66
80
 
67
81
  ## 4. 组件状态
68
82
 
@@ -77,15 +91,21 @@ npx hunter-harness sync --project <项目路径> --profile general --progress js
77
91
  | instruction graph | 入口、include 边、环、主题可达性 | 缺失引用或循环为 `FAIL` |
78
92
  | config origins | canonical/projection 路径与 hash | 漂移 `WARN`,不静默覆盖 |
79
93
  | changes | 五态分类及归档收据 | `INVALID`/`ORPHAN` 不自动删除 |
80
- | CodeGraph | 索引文件、守护进程管道、watcher 日志、pendingwatcher lag | 输出 `CURRENT/PENDING/STALE/INDEX_PRESENT_UNVERIFIED/MISSING/UNKNOWN`;不自动全量 reindex |
94
+ | CodeGraph | `codegraph status --json` 的 pending、数据库观察时间、watcher 可达性 | 输出 `CURRENT/PENDING/STALE/INDEX_PRESENT_UNVERIFIED/MISSING/UNKNOWN`;日志 mtime 只证明 watcher 活动,不证明索引完成;不自动全量 reindex |
81
95
 
82
- 全局状态优先级:`BLOCKED` → `FAIL` → `WARN` → `OK`。任一 `UNKNOWN` 至少使全局结果为 `WARN`。
96
+ 全局状态优先级:`BLOCKED` → `FAIL` → `WARN` → `ADVISORY` → `OK`。任一 `UNKNOWN`
97
+ 至少使全局结果为 `WARN`。knowledge freshness 与 health 分开:索引一致但仍有待裁决候选时
98
+ 为 `ADVISORY`,不得误报为过期。
83
99
 
84
100
  ## 5. Git 与 CodeGraph
85
101
 
86
102
  增量基线来自上次成功 sync receipt 的 `headCommit`。首次运行或 receipt 不可用时,仅收集当前 HEAD 和有界文件统计;禁止固定 `HEAD~5`。
87
103
 
88
- CodeGraph 状态探测读取 `.codegraph/codegraph.db`、daemon receipt/log,尝试有界管道连接,并比较项目文件与最近索引观察时间。只有服务可达、watcher 已启用且 `pendingFileCount=0` 时为 `CURRENT`;此时才可将当前 HEAD 记录为推断的 `indexedCommit`。不可用、待同步或证据不足时分别报告 `STALE/PENDING/INDEX_PRESENT_UNVERIFIED/UNKNOWN` 与明确后续动作。不要在 sync 内执行全量索引,不使用依赖 shell 连接符的跨平台命令。
104
+ CodeGraph 状态探测优先读取 `codegraph status --json` 的权威 pending 列表;只有该 API
105
+ 不可用时才退回受限文件扫描,并把来源标成 `database-scan` 或 `unverified`。`.agents/`、
106
+ `.cursor/`、`.claude/` 等 Adapter 投影和 Markdown 文档不计入源码 pending。daemon log
107
+ mtime 只写入 `watcherObservedAt`,不能冒充 `indexObservedAt`。只有服务可达、watcher 已
108
+ 启用且权威 `pendingFileCount=0` 时为 `CURRENT`。不要在 sync 内执行全量索引。
89
109
 
90
110
  ## 6. Instruction graph
91
111
 
@@ -2,7 +2,7 @@
2
2
  name: harness-test
3
3
  description: 测试执行:读取场景表,执行单元测试+API接口测试+数据兼容验证,输出测试报告。当用户说'跑测试/验证/跑用例/接口测试/单元测试'时使用
4
4
  ---
5
- <!-- generated by harness_deploy.py; core=09e151856320112f; overlay=java; agent=cursor; do not edit -->
5
+ <!-- generated by harness_deploy.py; core=5f4653e62a19bff2; overlay=java; agent=cursor; do not edit -->
6
6
  # harness-test — 测试执行
7
7
 
8
8
  ## Purpose
@@ -2,18 +2,18 @@
2
2
  "schema_version": 2,
3
3
  "profile": "general",
4
4
  "adapter": "claude-code",
5
- "bundle_version": "0.2.30",
5
+ "bundle_version": "0.2.31",
6
6
  "requires": {
7
- "minimumCliVersion": "0.2.43",
7
+ "minimumCliVersion": "0.2.44",
8
8
  "capabilities": [
9
- "sync@1",
9
+ "sync@2",
10
10
  "rules-sync@1",
11
11
  "rules-review@1",
12
- "knowledge-sync@2",
12
+ "knowledge-sync@3",
13
13
  "build-profile@3",
14
14
  "verification-graph@1",
15
15
  "external-convergence@1",
16
- "codegraph-status@1",
16
+ "codegraph-status@2",
17
17
  "doctor-capability@1",
18
18
  "registry-governance@1"
19
19
  ]
@@ -22,7 +22,7 @@
22
22
  "files": [
23
23
  {
24
24
  "path": ".harness-build.json",
25
- "sha256": "3e15665112143ec4881cfcc55d323f33d20b0c7b728dd334087819e4e9146565"
25
+ "sha256": "87389b46fe1cd171ac419b2bea1d86c859642768deaf77e58b6ee31d082c8f5c"
26
26
  },
27
27
  {
28
28
  "path": "agents/harness-evaluator.md",
@@ -74,7 +74,7 @@
74
74
  },
75
75
  {
76
76
  "path": "harness-archive/SKILL.md",
77
- "sha256": "a70cd7ecf37ee2dbb06a9c1228c639aec5e34f384a1f08146b80d135c877626a"
77
+ "sha256": "251ceb2210428ca34db6d3a76d55acfa7f53a7e7953f8b57c9a0fa13d11f2aaf"
78
78
  },
79
79
  {
80
80
  "path": "harness-archive/templates/render-summary.mjs",
@@ -94,7 +94,7 @@
94
94
  },
95
95
  {
96
96
  "path": "harness-codebase-map/SKILL.md",
97
- "sha256": "8d9f2594bbc2da17709371d0650d176a9cf1da927eb0899061de95b47c7ce6f9"
97
+ "sha256": "e80b9578f785db234ca0ce0ffad2326b7221f0871930a6c61c3defd70213f6f9"
98
98
  },
99
99
  {
100
100
  "path": "harness-codebase-map/templates/ARCHITECTURE.md",
@@ -146,7 +146,7 @@
146
146
  },
147
147
  {
148
148
  "path": "harness-knowledge-ingest/reference.md",
149
- "sha256": "6d587ea318d73869d273366c37dccea0d7ee5578ac2e6534b91c7d790188c7a9"
149
+ "sha256": "aaff0f08ff72f17ad610d6db51e9482b4eaeda87962765f679b2893dff9762e7"
150
150
  },
151
151
  {
152
152
  "path": "harness-knowledge-ingest/scripts/harness_knowledge_mcp.py",
@@ -154,15 +154,15 @@
154
154
  },
155
155
  {
156
156
  "path": "harness-knowledge-ingest/scripts/harness_knowledge.py",
157
- "sha256": "b451ad12a16758b69b6852e0a4348b3889795c05cbe691d49efdeb78a1abecea"
157
+ "sha256": "1d7e6a59fcee223c6988f4993bc838a6bf435eae9d195afd015596298c3162b3"
158
158
  },
159
159
  {
160
160
  "path": "harness-knowledge-ingest/SKILL.md",
161
- "sha256": "003d44b9cda35c6cd6877c1ad1d26777c5063d7b9b356d87f91e855640805ee3"
161
+ "sha256": "948dea77f853df34786f8465a907170154255528503573b3b87aa27a57ef6235"
162
162
  },
163
163
  {
164
164
  "path": "harness-knowledge-query/SKILL.md",
165
- "sha256": "d5785d009191a8214642238a805eebd4832a92f66eeb34baae23a20810fa469b"
165
+ "sha256": "bd6235efef89893cf35cc1e01e93112355f368c33722b69f4e72abc48d900ef0"
166
166
  },
167
167
  {
168
168
  "path": "harness-plan/checklist.md",
@@ -178,7 +178,7 @@
178
178
  },
179
179
  {
180
180
  "path": "harness-plan/SKILL.md",
181
- "sha256": "216cc07d95c4a3193909e0a515216cdef19e5dec314c6cf561db2cd9c1624ac1"
181
+ "sha256": "e5c1e00b76d02aa9ba5c765d84cb496f5304677d282385d3f7323240a4a64dc0"
182
182
  },
183
183
  {
184
184
  "path": "harness-review/checklist.md",
@@ -194,7 +194,7 @@
194
194
  },
195
195
  {
196
196
  "path": "harness-review/SKILL.md",
197
- "sha256": "7fab628921b9d0d51711721ce639860f13d823df0306af0066748f0118837b98"
197
+ "sha256": "5934dea44bebc26411edc3b1f5f127f032dea2e97f8f4f38a9d2d472a280bee3"
198
198
  },
199
199
  {
200
200
  "path": "harness-run/checklist.md",
@@ -210,7 +210,7 @@
210
210
  },
211
211
  {
212
212
  "path": "harness-run/SKILL.md",
213
- "sha256": "d338bf1fc1e7b1ce816129b6176f1bc68b38337cfbf4a471ff2ff329f5a4f819"
213
+ "sha256": "324297b618540c072fd7d6cabc6d424679e49bc6884c9340737a750a5887e00d"
214
214
  },
215
215
  {
216
216
  "path": "harness-submit/checklist.md",
@@ -222,15 +222,15 @@
222
222
  },
223
223
  {
224
224
  "path": "harness-submit/SKILL.md",
225
- "sha256": "e09a3f1dba3d4912bb35921c31d6027acbc3d4427da0a358facb535324dfbfbf"
225
+ "sha256": "c36b6af82ff4b6249e6312df63462c548e7e13ed1215e9a59624d76178e5c5f1"
226
226
  },
227
227
  {
228
228
  "path": "harness-sync/reference.md",
229
- "sha256": "e11bb410b602a5a8c3d1c14808b5407d46c982b39b6be2961b60b6ab3546af81"
229
+ "sha256": "d841ffde8afd2739ed14c765e4d2dd40b4a799771e8256f0ac07d11e0c97f54d"
230
230
  },
231
231
  {
232
232
  "path": "harness-sync/SKILL.md",
233
- "sha256": "0d7fcf9da27d6331b35b44412b9162038fa785711de763fe135af2a7f79754b4"
233
+ "sha256": "27c56c5cca98a91b99c3f8e16f9b78a61d257be9aa8be21c8c4b5a7282b26dc9"
234
234
  },
235
235
  {
236
236
  "path": "harness-test/checklist.md",
@@ -254,7 +254,7 @@
254
254
  },
255
255
  {
256
256
  "path": "harness-test/SKILL.md",
257
- "sha256": "dc43aef6fdb201872bb2043634cfbe575e8c506952384a26fb222d0c4583a1a8"
257
+ "sha256": "0986a30598cf5e4723cb6fa307b4ed8c2192f55f2cdc3cc5a5133c5382eb390f"
258
258
  },
259
259
  {
260
260
  "path": "protocols/archive-report-protocol.md",
@@ -2,18 +2,18 @@
2
2
  "schema_version": 2,
3
3
  "profile": "general",
4
4
  "adapter": "codebuddy",
5
- "bundle_version": "0.2.30",
5
+ "bundle_version": "0.2.31",
6
6
  "requires": {
7
- "minimumCliVersion": "0.2.43",
7
+ "minimumCliVersion": "0.2.44",
8
8
  "capabilities": [
9
- "sync@1",
9
+ "sync@2",
10
10
  "rules-sync@1",
11
11
  "rules-review@1",
12
- "knowledge-sync@2",
12
+ "knowledge-sync@3",
13
13
  "build-profile@3",
14
14
  "verification-graph@1",
15
15
  "external-convergence@1",
16
- "codegraph-status@1",
16
+ "codegraph-status@2",
17
17
  "doctor-capability@1",
18
18
  "registry-governance@1"
19
19
  ]
@@ -22,7 +22,7 @@
22
22
  "files": [
23
23
  {
24
24
  "path": ".harness-build.json",
25
- "sha256": "1005102477aa371a6bcd3cc2a40f78afa544cf59d7966dff11c459edf0831120"
25
+ "sha256": "70855871e3c714d3a6b76269d28a5524f6c1a27a78e8cf5d6ba0401df99709da"
26
26
  },
27
27
  {
28
28
  "path": "agents/harness-evaluator.md",
@@ -74,7 +74,7 @@
74
74
  },
75
75
  {
76
76
  "path": "harness-archive/SKILL.md",
77
- "sha256": "1f46a5b2f009e36f5988bc4cd5934068c332de5d0baf8182d6ecf6f38394f8dd"
77
+ "sha256": "fadef0073049f45fd1259f0e6bf9cda57a3bd9a41fa3d7bd57adee2d9bce1f91"
78
78
  },
79
79
  {
80
80
  "path": "harness-archive/templates/render-summary.mjs",
@@ -94,7 +94,7 @@
94
94
  },
95
95
  {
96
96
  "path": "harness-codebase-map/SKILL.md",
97
- "sha256": "faf0b100f24392ffa64ee552671cf5c8d504a0474aae6f6097ba49972c7246cc"
97
+ "sha256": "89c2092fa50c2520b5fa80c7f9366de32566a7b427fef677f03139c5213b8d3a"
98
98
  },
99
99
  {
100
100
  "path": "harness-codebase-map/templates/ARCHITECTURE.md",
@@ -146,7 +146,7 @@
146
146
  },
147
147
  {
148
148
  "path": "harness-knowledge-ingest/reference.md",
149
- "sha256": "6d587ea318d73869d273366c37dccea0d7ee5578ac2e6534b91c7d790188c7a9"
149
+ "sha256": "aaff0f08ff72f17ad610d6db51e9482b4eaeda87962765f679b2893dff9762e7"
150
150
  },
151
151
  {
152
152
  "path": "harness-knowledge-ingest/scripts/harness_knowledge_mcp.py",
@@ -154,15 +154,15 @@
154
154
  },
155
155
  {
156
156
  "path": "harness-knowledge-ingest/scripts/harness_knowledge.py",
157
- "sha256": "b451ad12a16758b69b6852e0a4348b3889795c05cbe691d49efdeb78a1abecea"
157
+ "sha256": "1d7e6a59fcee223c6988f4993bc838a6bf435eae9d195afd015596298c3162b3"
158
158
  },
159
159
  {
160
160
  "path": "harness-knowledge-ingest/SKILL.md",
161
- "sha256": "19129d3f691472d733bcbfaf7ae3e691f9e61971d4d5f948791452e48e7dbd94"
161
+ "sha256": "ce134f946f9e38eac1eac6183cf11fc72948f17e12b19b54b0f1fd1b6a0284f9"
162
162
  },
163
163
  {
164
164
  "path": "harness-knowledge-query/SKILL.md",
165
- "sha256": "3991a1403af5f0ff05fd33fbd50234df47a3a9de74d1d5c05a9765cfb4a01540"
165
+ "sha256": "a449ff17b8effb6635b4460cd16ac83392644d8dd0105e65b5cf73cb19c79d8a"
166
166
  },
167
167
  {
168
168
  "path": "harness-plan/checklist.md",
@@ -178,7 +178,7 @@
178
178
  },
179
179
  {
180
180
  "path": "harness-plan/SKILL.md",
181
- "sha256": "65a209622e1f7be23f6060a8f9c3a08a0b4ac8da1cbe00d26ca697ae18c89ee5"
181
+ "sha256": "db6a033d2f7ca62dd9575381df28832e6af3e88c75dc9ebd36d119dd1fbd39fe"
182
182
  },
183
183
  {
184
184
  "path": "harness-review/checklist.md",
@@ -194,7 +194,7 @@
194
194
  },
195
195
  {
196
196
  "path": "harness-review/SKILL.md",
197
- "sha256": "64f6829911c8eac8c7834e2a5321c56c0d2878c8ccca04fda290920012480f6e"
197
+ "sha256": "454bd9e468973cef3671b814d81cf34b50c7afdd1fc79195d2e34920ff4d3f54"
198
198
  },
199
199
  {
200
200
  "path": "harness-run/checklist.md",
@@ -210,7 +210,7 @@
210
210
  },
211
211
  {
212
212
  "path": "harness-run/SKILL.md",
213
- "sha256": "c12540a184fbbd54761ff4e43b83b5a1be6c1d78e2bf1ffba661d0e6cb4a2719"
213
+ "sha256": "37042ff9d43bd46809194285adcc97885d99bd4aa88023734aacc5ea02afc073"
214
214
  },
215
215
  {
216
216
  "path": "harness-submit/checklist.md",
@@ -222,15 +222,15 @@
222
222
  },
223
223
  {
224
224
  "path": "harness-submit/SKILL.md",
225
- "sha256": "43c796a1b569a36077db4cb71a838eb18b1dd26c29d1eae82c230f328ff8a050"
225
+ "sha256": "0491ce2ecd1ce83e849d97c93d49aa4bc768b8919f29ade390da76963d8b2399"
226
226
  },
227
227
  {
228
228
  "path": "harness-sync/reference.md",
229
- "sha256": "e11bb410b602a5a8c3d1c14808b5407d46c982b39b6be2961b60b6ab3546af81"
229
+ "sha256": "d841ffde8afd2739ed14c765e4d2dd40b4a799771e8256f0ac07d11e0c97f54d"
230
230
  },
231
231
  {
232
232
  "path": "harness-sync/SKILL.md",
233
- "sha256": "b069a17a93b7f74e9f7b5a70374ac0fda0be0bea7bfa8d3e0f3ac4db668515a0"
233
+ "sha256": "42c20b2f7eff305836d78cbabbbdb750c897b2ca055be007f89daf2de9b7115f"
234
234
  },
235
235
  {
236
236
  "path": "harness-test/checklist.md",
@@ -254,7 +254,7 @@
254
254
  },
255
255
  {
256
256
  "path": "harness-test/SKILL.md",
257
- "sha256": "b5bdf91c7fc03491e2c42b115d6e458672db322602de720a81edcaae5a58cc29"
257
+ "sha256": "a20d65fd82de0d0cf0e1e4da7b950f7b04758f2fbd23499cd5f28283c442b65d"
258
258
  },
259
259
  {
260
260
  "path": "protocols/archive-report-protocol.md",
@@ -2,18 +2,18 @@
2
2
  "schema_version": 2,
3
3
  "profile": "general",
4
4
  "adapter": "codex",
5
- "bundle_version": "0.2.30",
5
+ "bundle_version": "0.2.31",
6
6
  "requires": {
7
- "minimumCliVersion": "0.2.43",
7
+ "minimumCliVersion": "0.2.44",
8
8
  "capabilities": [
9
- "sync@1",
9
+ "sync@2",
10
10
  "rules-sync@1",
11
11
  "rules-review@1",
12
- "knowledge-sync@2",
12
+ "knowledge-sync@3",
13
13
  "build-profile@3",
14
14
  "verification-graph@1",
15
15
  "external-convergence@1",
16
- "codegraph-status@1",
16
+ "codegraph-status@2",
17
17
  "doctor-capability@1",
18
18
  "registry-governance@1"
19
19
  ]
@@ -22,7 +22,7 @@
22
22
  "files": [
23
23
  {
24
24
  "path": ".harness-build.json",
25
- "sha256": "0b79de385d23b90eb51bbd2f04182ca1e96018e33220fdb33c311fb00ae43356"
25
+ "sha256": "cf5a74d847533327f7c4840e932c1779eefeb11e7fa5720b1e7ee275eedc2d45"
26
26
  },
27
27
  {
28
28
  "path": "CONTEXT.md",
@@ -62,7 +62,7 @@
62
62
  },
63
63
  {
64
64
  "path": "harness-archive/SKILL.md",
65
- "sha256": "baf23bd8eb5af19ceb67f195ad2b0d707f0501ff5a4fa087ac22c0ec5ca74cba"
65
+ "sha256": "d445fab2dda24d35a8e639cac993d907acddd17cc1f866fcea5b9f79a89371ad"
66
66
  },
67
67
  {
68
68
  "path": "harness-archive/templates/render-summary.mjs",
@@ -82,7 +82,7 @@
82
82
  },
83
83
  {
84
84
  "path": "harness-codebase-map/SKILL.md",
85
- "sha256": "e3f9d52e13de8ec6ffa1feab135bc4776facd96b2f0492c2cfd9f00c18e7e296"
85
+ "sha256": "7ce6cab6d2a05b2a6b92cf3e7ad4d13f3447375aa46a4e9cfd50138a56a565c1"
86
86
  },
87
87
  {
88
88
  "path": "harness-codebase-map/templates/ARCHITECTURE.md",
@@ -134,7 +134,7 @@
134
134
  },
135
135
  {
136
136
  "path": "harness-knowledge-ingest/reference.md",
137
- "sha256": "6d587ea318d73869d273366c37dccea0d7ee5578ac2e6534b91c7d790188c7a9"
137
+ "sha256": "aaff0f08ff72f17ad610d6db51e9482b4eaeda87962765f679b2893dff9762e7"
138
138
  },
139
139
  {
140
140
  "path": "harness-knowledge-ingest/scripts/harness_knowledge_mcp.py",
@@ -142,15 +142,15 @@
142
142
  },
143
143
  {
144
144
  "path": "harness-knowledge-ingest/scripts/harness_knowledge.py",
145
- "sha256": "b451ad12a16758b69b6852e0a4348b3889795c05cbe691d49efdeb78a1abecea"
145
+ "sha256": "1d7e6a59fcee223c6988f4993bc838a6bf435eae9d195afd015596298c3162b3"
146
146
  },
147
147
  {
148
148
  "path": "harness-knowledge-ingest/SKILL.md",
149
- "sha256": "a136906db97a2be38ebda52f48c18b45e8d65457b17402fd6b3c6bbf382210cc"
149
+ "sha256": "81d75aebc5e6b82e905fc5c20a989ba45dccadc2e1edc6a466f49842569502a5"
150
150
  },
151
151
  {
152
152
  "path": "harness-knowledge-query/SKILL.md",
153
- "sha256": "3fcb2064df84ba814bb7b9dbfab736edb107457f33ce93a37a939be5207accff"
153
+ "sha256": "40f1bfa2f1657e0a7af25a77784476d9682eabfa4311f38c5faaa2d2d3ea5793"
154
154
  },
155
155
  {
156
156
  "path": "harness-plan/checklist.md",
@@ -166,7 +166,7 @@
166
166
  },
167
167
  {
168
168
  "path": "harness-plan/SKILL.md",
169
- "sha256": "19e5983c7037a1ff27af7e096b2b3f28f5aeaff314bdd4448bea449a4dedb155"
169
+ "sha256": "90e6f538ff014b35316de5616b154963a2dd7cc18856b511fde6f5c4a23b886a"
170
170
  },
171
171
  {
172
172
  "path": "harness-review/checklist.md",
@@ -182,7 +182,7 @@
182
182
  },
183
183
  {
184
184
  "path": "harness-review/SKILL.md",
185
- "sha256": "4db6f9f3749b63261cf501c1a024bb341ae35fcb1569da149c6c5c27b3dabc6d"
185
+ "sha256": "20a6d9993fef4b5ae8b4ba456b06e001a1116c751db17e8ed79054562fb7abfb"
186
186
  },
187
187
  {
188
188
  "path": "harness-run/checklist.md",
@@ -198,7 +198,7 @@
198
198
  },
199
199
  {
200
200
  "path": "harness-run/SKILL.md",
201
- "sha256": "66e77fa3501e32b2ac30ba758d52d9bf8b60b84e7ad4e8cb72226739136ac5f8"
201
+ "sha256": "b2a45e99134297e9d9c6395c700727aa046a4d07932b61a2a8d2e597a20558fc"
202
202
  },
203
203
  {
204
204
  "path": "harness-submit/checklist.md",
@@ -210,15 +210,15 @@
210
210
  },
211
211
  {
212
212
  "path": "harness-submit/SKILL.md",
213
- "sha256": "357ee041c4926e45dc4771b34527ea8a17890492ea1ce701d74b78482d5dc8d5"
213
+ "sha256": "0f5f407f13ca43fc32157e71229b53a1786b16028821bf47b48b81bca9ce5b7f"
214
214
  },
215
215
  {
216
216
  "path": "harness-sync/reference.md",
217
- "sha256": "e11bb410b602a5a8c3d1c14808b5407d46c982b39b6be2961b60b6ab3546af81"
217
+ "sha256": "d841ffde8afd2739ed14c765e4d2dd40b4a799771e8256f0ac07d11e0c97f54d"
218
218
  },
219
219
  {
220
220
  "path": "harness-sync/SKILL.md",
221
- "sha256": "969c824bfcfa689ce5c7b10244ac22526923cee0891cb5bd2c0d06a9e5211c65"
221
+ "sha256": "413a93db18dd96141ebb49790a3fd2747058a3ac80522b770fcc91c76cd4f6fa"
222
222
  },
223
223
  {
224
224
  "path": "harness-test/checklist.md",
@@ -242,7 +242,7 @@
242
242
  },
243
243
  {
244
244
  "path": "harness-test/SKILL.md",
245
- "sha256": "222f9cf0af650a4b80cccecc35305fb46e9c7962272ad47f469d12663e9c8e28"
245
+ "sha256": "cd4b2a34e551ea33d114f06548cb9212b79911821564491d6d4e8456d13abccb"
246
246
  },
247
247
  {
248
248
  "path": "protocols/archive-report-protocol.md",