@hunter-harness/workflow-harness 0.2.49 → 0.2.51

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 (234) hide show
  1. package/harness/bundles/general/claude-code/.harness-build.json +1 -1
  2. package/harness/bundles/general/claude-code/README.md +4 -4
  3. package/harness/bundles/general/claude-code/harness-archive/SKILL.md +11 -3
  4. package/harness/bundles/general/claude-code/harness-codebase-map/SKILL.md +6 -1
  5. package/harness/bundles/general/claude-code/harness-knowledge-ingest/SKILL.md +45 -244
  6. package/harness/bundles/general/claude-code/harness-knowledge-query/SKILL.md +41 -112
  7. package/harness/bundles/general/claude-code/harness-plan/SKILL.md +9 -4
  8. package/harness/bundles/general/claude-code/harness-plan/checklist.md +2 -2
  9. package/harness/bundles/general/claude-code/harness-review/SKILL.md +7 -2
  10. package/harness/bundles/general/claude-code/harness-run/SKILL.md +8 -3
  11. package/harness/bundles/general/claude-code/harness-submit/SKILL.md +7 -2
  12. package/harness/bundles/general/claude-code/harness-sync/SKILL.md +12 -7
  13. package/harness/bundles/general/claude-code/harness-sync/reference.md +18 -11
  14. package/harness/bundles/general/claude-code/harness-test/SKILL.md +7 -2
  15. package/harness/bundles/general/claude-code/protocols/archive-report-protocol.md +5 -7
  16. package/harness/bundles/general/claude-code/protocols/state-layout-protocol.md +17 -11
  17. package/harness/bundles/general/claude-code/scripts/harness_archive.py +769 -191
  18. package/harness/bundles/general/claude-code/scripts/harness_events_sync.py +90 -12
  19. package/harness/bundles/general/claude-code/scripts/harness_gate.py +17 -0
  20. package/harness/bundles/general/claude-code/scripts/harness_profile.py +0 -1
  21. package/harness/bundles/general/claude-code/scripts/harness_state.py +3 -5
  22. package/harness/bundles/general/codebuddy/.harness-build.json +1 -1
  23. package/harness/bundles/general/codebuddy/README.md +4 -4
  24. package/harness/bundles/general/codebuddy/harness-archive/SKILL.md +11 -3
  25. package/harness/bundles/general/codebuddy/harness-codebase-map/SKILL.md +6 -1
  26. package/harness/bundles/general/codebuddy/harness-knowledge-ingest/SKILL.md +42 -230
  27. package/harness/bundles/general/codebuddy/harness-knowledge-query/SKILL.md +38 -98
  28. package/harness/bundles/general/codebuddy/harness-plan/SKILL.md +9 -4
  29. package/harness/bundles/general/codebuddy/harness-plan/checklist.md +2 -2
  30. package/harness/bundles/general/codebuddy/harness-review/SKILL.md +7 -2
  31. package/harness/bundles/general/codebuddy/harness-run/SKILL.md +8 -3
  32. package/harness/bundles/general/codebuddy/harness-submit/SKILL.md +7 -2
  33. package/harness/bundles/general/codebuddy/harness-sync/SKILL.md +13 -8
  34. package/harness/bundles/general/codebuddy/harness-sync/reference.md +18 -11
  35. package/harness/bundles/general/codebuddy/harness-test/SKILL.md +7 -2
  36. package/harness/bundles/general/codebuddy/protocols/archive-report-protocol.md +5 -7
  37. package/harness/bundles/general/codebuddy/protocols/state-layout-protocol.md +17 -11
  38. package/harness/bundles/general/codebuddy/scripts/harness_archive.py +769 -191
  39. package/harness/bundles/general/codebuddy/scripts/harness_events_sync.py +90 -12
  40. package/harness/bundles/general/codebuddy/scripts/harness_gate.py +17 -0
  41. package/harness/bundles/general/codebuddy/scripts/harness_profile.py +0 -1
  42. package/harness/bundles/general/codebuddy/scripts/harness_state.py +3 -5
  43. package/harness/bundles/general/codex/.harness-build.json +1 -1
  44. package/harness/bundles/general/codex/README.md +4 -4
  45. package/harness/bundles/general/codex/harness-archive/SKILL.md +11 -3
  46. package/harness/bundles/general/codex/harness-codebase-map/SKILL.md +6 -1
  47. package/harness/bundles/general/codex/harness-knowledge-ingest/SKILL.md +42 -230
  48. package/harness/bundles/general/codex/harness-knowledge-query/SKILL.md +38 -98
  49. package/harness/bundles/general/codex/harness-plan/SKILL.md +9 -4
  50. package/harness/bundles/general/codex/harness-plan/checklist.md +2 -2
  51. package/harness/bundles/general/codex/harness-review/SKILL.md +7 -2
  52. package/harness/bundles/general/codex/harness-run/SKILL.md +8 -3
  53. package/harness/bundles/general/codex/harness-submit/SKILL.md +7 -2
  54. package/harness/bundles/general/codex/harness-sync/SKILL.md +13 -8
  55. package/harness/bundles/general/codex/harness-sync/reference.md +18 -11
  56. package/harness/bundles/general/codex/harness-test/SKILL.md +7 -2
  57. package/harness/bundles/general/codex/protocols/archive-report-protocol.md +5 -7
  58. package/harness/bundles/general/codex/protocols/state-layout-protocol.md +17 -11
  59. package/harness/bundles/general/codex/scripts/harness_archive.py +769 -191
  60. package/harness/bundles/general/codex/scripts/harness_events_sync.py +90 -12
  61. package/harness/bundles/general/codex/scripts/harness_gate.py +17 -0
  62. package/harness/bundles/general/codex/scripts/harness_profile.py +0 -1
  63. package/harness/bundles/general/codex/scripts/harness_state.py +3 -5
  64. package/harness/bundles/general/cursor/.harness-build.json +1 -1
  65. package/harness/bundles/general/cursor/README.md +4 -4
  66. package/harness/bundles/general/cursor/harness-archive/SKILL.md +11 -3
  67. package/harness/bundles/general/cursor/harness-codebase-map/SKILL.md +6 -1
  68. package/harness/bundles/general/cursor/harness-knowledge-ingest/SKILL.md +42 -230
  69. package/harness/bundles/general/cursor/harness-knowledge-query/SKILL.md +38 -98
  70. package/harness/bundles/general/cursor/harness-plan/SKILL.md +9 -4
  71. package/harness/bundles/general/cursor/harness-plan/checklist.md +2 -2
  72. package/harness/bundles/general/cursor/harness-review/SKILL.md +7 -2
  73. package/harness/bundles/general/cursor/harness-run/SKILL.md +8 -3
  74. package/harness/bundles/general/cursor/harness-submit/SKILL.md +7 -2
  75. package/harness/bundles/general/cursor/harness-sync/SKILL.md +13 -8
  76. package/harness/bundles/general/cursor/harness-sync/reference.md +18 -11
  77. package/harness/bundles/general/cursor/harness-test/SKILL.md +7 -2
  78. package/harness/bundles/general/cursor/protocols/archive-report-protocol.md +5 -7
  79. package/harness/bundles/general/cursor/protocols/state-layout-protocol.md +17 -11
  80. package/harness/bundles/general/cursor/scripts/harness_archive.py +769 -191
  81. package/harness/bundles/general/cursor/scripts/harness_events_sync.py +90 -12
  82. package/harness/bundles/general/cursor/scripts/harness_gate.py +17 -0
  83. package/harness/bundles/general/cursor/scripts/harness_profile.py +0 -1
  84. package/harness/bundles/general/cursor/scripts/harness_state.py +3 -5
  85. package/harness/bundles/java/claude-code/.harness-build.json +1 -1
  86. package/harness/bundles/java/claude-code/README.md +4 -4
  87. package/harness/bundles/java/claude-code/harness-apidoc/SKILL.md +7 -2
  88. package/harness/bundles/java/claude-code/harness-archive/SKILL.md +11 -3
  89. package/harness/bundles/java/claude-code/harness-codebase-map/SKILL.md +6 -1
  90. package/harness/bundles/java/claude-code/harness-knowledge-ingest/SKILL.md +45 -244
  91. package/harness/bundles/java/claude-code/harness-knowledge-query/SKILL.md +41 -112
  92. package/harness/bundles/java/claude-code/harness-package/SKILL.md +7 -2
  93. package/harness/bundles/java/claude-code/harness-plan/SKILL.md +9 -4
  94. package/harness/bundles/java/claude-code/harness-plan/checklist.md +2 -2
  95. package/harness/bundles/java/claude-code/harness-review/SKILL.md +7 -2
  96. package/harness/bundles/java/claude-code/harness-run/SKILL.md +8 -3
  97. package/harness/bundles/java/claude-code/harness-submit/SKILL.md +7 -2
  98. package/harness/bundles/java/claude-code/harness-sync/SKILL.md +12 -7
  99. package/harness/bundles/java/claude-code/harness-sync/reference.md +18 -11
  100. package/harness/bundles/java/claude-code/harness-test/SKILL.md +7 -2
  101. package/harness/bundles/java/claude-code/protocols/archive-report-protocol.md +5 -7
  102. package/harness/bundles/java/claude-code/protocols/state-layout-protocol.md +17 -11
  103. package/harness/bundles/java/claude-code/scripts/harness_archive.py +769 -191
  104. package/harness/bundles/java/claude-code/scripts/harness_events_sync.py +90 -12
  105. package/harness/bundles/java/claude-code/scripts/harness_gate.py +17 -0
  106. package/harness/bundles/java/claude-code/scripts/harness_profile.py +0 -1
  107. package/harness/bundles/java/claude-code/scripts/harness_state.py +3 -5
  108. package/harness/bundles/java/codebuddy/.harness-build.json +1 -1
  109. package/harness/bundles/java/codebuddy/README.md +4 -4
  110. package/harness/bundles/java/codebuddy/harness-apidoc/SKILL.md +7 -2
  111. package/harness/bundles/java/codebuddy/harness-archive/SKILL.md +11 -3
  112. package/harness/bundles/java/codebuddy/harness-codebase-map/SKILL.md +6 -1
  113. package/harness/bundles/java/codebuddy/harness-knowledge-ingest/SKILL.md +42 -230
  114. package/harness/bundles/java/codebuddy/harness-knowledge-query/SKILL.md +38 -98
  115. package/harness/bundles/java/codebuddy/harness-package/SKILL.md +7 -2
  116. package/harness/bundles/java/codebuddy/harness-plan/SKILL.md +9 -4
  117. package/harness/bundles/java/codebuddy/harness-plan/checklist.md +2 -2
  118. package/harness/bundles/java/codebuddy/harness-review/SKILL.md +7 -2
  119. package/harness/bundles/java/codebuddy/harness-run/SKILL.md +8 -3
  120. package/harness/bundles/java/codebuddy/harness-submit/SKILL.md +7 -2
  121. package/harness/bundles/java/codebuddy/harness-sync/SKILL.md +13 -8
  122. package/harness/bundles/java/codebuddy/harness-sync/reference.md +18 -11
  123. package/harness/bundles/java/codebuddy/harness-test/SKILL.md +7 -2
  124. package/harness/bundles/java/codebuddy/protocols/archive-report-protocol.md +5 -7
  125. package/harness/bundles/java/codebuddy/protocols/state-layout-protocol.md +17 -11
  126. package/harness/bundles/java/codebuddy/scripts/harness_archive.py +769 -191
  127. package/harness/bundles/java/codebuddy/scripts/harness_events_sync.py +90 -12
  128. package/harness/bundles/java/codebuddy/scripts/harness_gate.py +17 -0
  129. package/harness/bundles/java/codebuddy/scripts/harness_profile.py +0 -1
  130. package/harness/bundles/java/codebuddy/scripts/harness_state.py +3 -5
  131. package/harness/bundles/java/codex/.harness-build.json +1 -1
  132. package/harness/bundles/java/codex/README.md +4 -4
  133. package/harness/bundles/java/codex/harness-apidoc/SKILL.md +7 -2
  134. package/harness/bundles/java/codex/harness-archive/SKILL.md +11 -3
  135. package/harness/bundles/java/codex/harness-codebase-map/SKILL.md +6 -1
  136. package/harness/bundles/java/codex/harness-knowledge-ingest/SKILL.md +42 -230
  137. package/harness/bundles/java/codex/harness-knowledge-query/SKILL.md +38 -98
  138. package/harness/bundles/java/codex/harness-package/SKILL.md +7 -2
  139. package/harness/bundles/java/codex/harness-plan/SKILL.md +9 -4
  140. package/harness/bundles/java/codex/harness-plan/checklist.md +2 -2
  141. package/harness/bundles/java/codex/harness-review/SKILL.md +7 -2
  142. package/harness/bundles/java/codex/harness-run/SKILL.md +8 -3
  143. package/harness/bundles/java/codex/harness-submit/SKILL.md +7 -2
  144. package/harness/bundles/java/codex/harness-sync/SKILL.md +13 -8
  145. package/harness/bundles/java/codex/harness-sync/reference.md +18 -11
  146. package/harness/bundles/java/codex/harness-test/SKILL.md +7 -2
  147. package/harness/bundles/java/codex/protocols/archive-report-protocol.md +5 -7
  148. package/harness/bundles/java/codex/protocols/state-layout-protocol.md +17 -11
  149. package/harness/bundles/java/codex/scripts/harness_archive.py +769 -191
  150. package/harness/bundles/java/codex/scripts/harness_events_sync.py +90 -12
  151. package/harness/bundles/java/codex/scripts/harness_gate.py +17 -0
  152. package/harness/bundles/java/codex/scripts/harness_profile.py +0 -1
  153. package/harness/bundles/java/codex/scripts/harness_state.py +3 -5
  154. package/harness/bundles/java/cursor/.harness-build.json +1 -1
  155. package/harness/bundles/java/cursor/README.md +4 -4
  156. package/harness/bundles/java/cursor/harness-apidoc/SKILL.md +7 -2
  157. package/harness/bundles/java/cursor/harness-archive/SKILL.md +11 -3
  158. package/harness/bundles/java/cursor/harness-codebase-map/SKILL.md +6 -1
  159. package/harness/bundles/java/cursor/harness-knowledge-ingest/SKILL.md +42 -230
  160. package/harness/bundles/java/cursor/harness-knowledge-query/SKILL.md +38 -98
  161. package/harness/bundles/java/cursor/harness-package/SKILL.md +7 -2
  162. package/harness/bundles/java/cursor/harness-plan/SKILL.md +9 -4
  163. package/harness/bundles/java/cursor/harness-plan/checklist.md +2 -2
  164. package/harness/bundles/java/cursor/harness-review/SKILL.md +7 -2
  165. package/harness/bundles/java/cursor/harness-run/SKILL.md +8 -3
  166. package/harness/bundles/java/cursor/harness-submit/SKILL.md +7 -2
  167. package/harness/bundles/java/cursor/harness-sync/SKILL.md +13 -8
  168. package/harness/bundles/java/cursor/harness-sync/reference.md +18 -11
  169. package/harness/bundles/java/cursor/harness-test/SKILL.md +7 -2
  170. package/harness/bundles/java/cursor/protocols/archive-report-protocol.md +5 -7
  171. package/harness/bundles/java/cursor/protocols/state-layout-protocol.md +17 -11
  172. package/harness/bundles/java/cursor/scripts/harness_archive.py +769 -191
  173. package/harness/bundles/java/cursor/scripts/harness_events_sync.py +90 -12
  174. package/harness/bundles/java/cursor/scripts/harness_gate.py +17 -0
  175. package/harness/bundles/java/cursor/scripts/harness_profile.py +0 -1
  176. package/harness/bundles/java/cursor/scripts/harness_state.py +3 -5
  177. package/harness/manifests/general/claude-code.json +23 -47
  178. package/harness/manifests/general/codebuddy.json +23 -47
  179. package/harness/manifests/general/codex.json +23 -47
  180. package/harness/manifests/general/cursor.json +23 -47
  181. package/harness/manifests/java/claude-code.json +25 -49
  182. package/harness/manifests/java/codebuddy.json +25 -49
  183. package/harness/manifests/java/codex.json +25 -49
  184. package/harness/manifests/java/cursor.json +25 -49
  185. package/hunter-workflow-family.json +4 -4
  186. package/package.json +1 -1
  187. package/harness/bundles/general/claude-code/harness-knowledge-ingest/design.md +0 -842
  188. package/harness/bundles/general/claude-code/harness-knowledge-ingest/evaluations/harness_knowledge_evaluation.xml +0 -42
  189. package/harness/bundles/general/claude-code/harness-knowledge-ingest/mcp-config.example.json +0 -10
  190. package/harness/bundles/general/claude-code/harness-knowledge-ingest/reference.md +0 -413
  191. package/harness/bundles/general/claude-code/harness-knowledge-ingest/scripts/harness_knowledge.py +0 -7263
  192. package/harness/bundles/general/claude-code/harness-knowledge-ingest/scripts/harness_knowledge_mcp.py +0 -275
  193. package/harness/bundles/general/codebuddy/harness-knowledge-ingest/design.md +0 -842
  194. package/harness/bundles/general/codebuddy/harness-knowledge-ingest/evaluations/harness_knowledge_evaluation.xml +0 -42
  195. package/harness/bundles/general/codebuddy/harness-knowledge-ingest/mcp-config.example.json +0 -10
  196. package/harness/bundles/general/codebuddy/harness-knowledge-ingest/reference.md +0 -413
  197. package/harness/bundles/general/codebuddy/harness-knowledge-ingest/scripts/harness_knowledge.py +0 -7263
  198. package/harness/bundles/general/codebuddy/harness-knowledge-ingest/scripts/harness_knowledge_mcp.py +0 -275
  199. package/harness/bundles/general/codex/harness-knowledge-ingest/design.md +0 -842
  200. package/harness/bundles/general/codex/harness-knowledge-ingest/evaluations/harness_knowledge_evaluation.xml +0 -42
  201. package/harness/bundles/general/codex/harness-knowledge-ingest/mcp-config.example.json +0 -10
  202. package/harness/bundles/general/codex/harness-knowledge-ingest/reference.md +0 -413
  203. package/harness/bundles/general/codex/harness-knowledge-ingest/scripts/harness_knowledge.py +0 -7263
  204. package/harness/bundles/general/codex/harness-knowledge-ingest/scripts/harness_knowledge_mcp.py +0 -275
  205. package/harness/bundles/general/cursor/harness-knowledge-ingest/design.md +0 -842
  206. package/harness/bundles/general/cursor/harness-knowledge-ingest/evaluations/harness_knowledge_evaluation.xml +0 -42
  207. package/harness/bundles/general/cursor/harness-knowledge-ingest/mcp-config.example.json +0 -10
  208. package/harness/bundles/general/cursor/harness-knowledge-ingest/reference.md +0 -413
  209. package/harness/bundles/general/cursor/harness-knowledge-ingest/scripts/harness_knowledge.py +0 -7263
  210. package/harness/bundles/general/cursor/harness-knowledge-ingest/scripts/harness_knowledge_mcp.py +0 -275
  211. package/harness/bundles/java/claude-code/harness-knowledge-ingest/design.md +0 -842
  212. package/harness/bundles/java/claude-code/harness-knowledge-ingest/evaluations/harness_knowledge_evaluation.xml +0 -42
  213. package/harness/bundles/java/claude-code/harness-knowledge-ingest/mcp-config.example.json +0 -10
  214. package/harness/bundles/java/claude-code/harness-knowledge-ingest/reference.md +0 -413
  215. package/harness/bundles/java/claude-code/harness-knowledge-ingest/scripts/harness_knowledge.py +0 -7263
  216. package/harness/bundles/java/claude-code/harness-knowledge-ingest/scripts/harness_knowledge_mcp.py +0 -275
  217. package/harness/bundles/java/codebuddy/harness-knowledge-ingest/design.md +0 -842
  218. package/harness/bundles/java/codebuddy/harness-knowledge-ingest/evaluations/harness_knowledge_evaluation.xml +0 -42
  219. package/harness/bundles/java/codebuddy/harness-knowledge-ingest/mcp-config.example.json +0 -10
  220. package/harness/bundles/java/codebuddy/harness-knowledge-ingest/reference.md +0 -413
  221. package/harness/bundles/java/codebuddy/harness-knowledge-ingest/scripts/harness_knowledge.py +0 -7263
  222. package/harness/bundles/java/codebuddy/harness-knowledge-ingest/scripts/harness_knowledge_mcp.py +0 -275
  223. package/harness/bundles/java/codex/harness-knowledge-ingest/design.md +0 -842
  224. package/harness/bundles/java/codex/harness-knowledge-ingest/evaluations/harness_knowledge_evaluation.xml +0 -42
  225. package/harness/bundles/java/codex/harness-knowledge-ingest/mcp-config.example.json +0 -10
  226. package/harness/bundles/java/codex/harness-knowledge-ingest/reference.md +0 -413
  227. package/harness/bundles/java/codex/harness-knowledge-ingest/scripts/harness_knowledge.py +0 -7263
  228. package/harness/bundles/java/codex/harness-knowledge-ingest/scripts/harness_knowledge_mcp.py +0 -275
  229. package/harness/bundles/java/cursor/harness-knowledge-ingest/design.md +0 -842
  230. package/harness/bundles/java/cursor/harness-knowledge-ingest/evaluations/harness_knowledge_evaluation.xml +0 -42
  231. package/harness/bundles/java/cursor/harness-knowledge-ingest/mcp-config.example.json +0 -10
  232. package/harness/bundles/java/cursor/harness-knowledge-ingest/reference.md +0 -413
  233. package/harness/bundles/java/cursor/harness-knowledge-ingest/scripts/harness_knowledge.py +0 -7263
  234. package/harness/bundles/java/cursor/harness-knowledge-ingest/scripts/harness_knowledge_mcp.py +0 -275
@@ -1,263 +1,75 @@
1
1
  ---
2
2
  name: harness-knowledge-ingest
3
- description: .harness/archive 归档整理、同步和维护项目知识索引。适用场景:ingest knowledge、sync
4
- knowledge、rebuild knowledge index、promote knowledge、确认知识条目、检查知识库是否过期。
3
+ description: 确认归档 ZIP 已上传并由 Hunter Platform 在服务端解包、校验和入库。客户端不再构建或维护本地知识索引。
5
4
  ---
6
- <!-- generated by harness_deploy.py; core=c1c206c52d1a038b; overlay=java; agent=codex; do not edit -->
5
+ <!-- generated by harness_deploy.py; core=bdf71b2b196b876b; overlay=java; agent=codex; do not edit -->
7
6
  # harness-knowledge-ingest
8
7
 
9
- `.harness/archive/**/reports/final/summary-data.json` 抽取项目知识,生成并维护本地 `.harness/knowledge/` 索引。
8
+ 知识 ingest 完全由 Hunter Platform 负责。归档完成时,客户端生成一个确定性 ZIP;
9
+ 服务端收到后保存原包、安全解包、发布核心文件,并根据其中的 Markdown 与摘要重建
10
+ 项目语义索引。
10
11
 
11
- 当前实现是本地、离线、无 LLM、无外部服务的 SQLite FTS MVP,已经支持基础生命周期:`candidate`、`stale`、`active`、`superseded`、`conflicted`。按新需求查询历史由独立的 `harness-knowledge-query` 负责。
12
+ 客户端不得生成 `.harness/knowledge`、SQLite 索引、候选条目、视图、报告或本地裁决。
13
+ 本地知识处理脚本已从分发包移除;历史版本数据只由升级兼容逻辑识别,不再执行。
12
14
 
13
- ## Triggers
15
+ ## 归档包边界
14
16
 
15
- - ingest knowledge
16
- - sync knowledge
17
- - rebuild knowledge index
18
- - promote knowledge
19
- - 确认知识条目
20
- - 从归档生成知识索引
21
- - 刷新项目知识库
22
- - 检查知识库是否过期
17
+ 允许上传的核心内容只有:
23
18
 
24
- ## Required context
19
+ - `reports/final/summary-data.json`
20
+ - `spec/**/*.md`
21
+ - `plans/**/*.md`
22
+ - `archive-meta.md`
23
+ - `change-context.json`
24
+ - 包内 `archive-manifest.json`(由 CLI 生成)
25
25
 
26
- - AGENTS.md / CLAUDE.md
27
- - `.harness/archive/**/reports/final/summary-data.json`
28
- - `.harness/knowledge/index.json`
29
- - `.harness/codebase/map-summary.md`(如存在)
30
- - design.md
26
+ 日志、测试报告、审查报告、HTML、缓存、备份、凭据和临时文件不得进入归档包。
31
27
 
32
- ## Purpose
28
+ ## Normal Workflow
33
29
 
34
- 解决两个问题:
35
-
36
- 1. **整理知识库内容**:把归档里的 `businessGoal`、`changedFiles`、`maintenanceNotes`、`knownRisks`、`manualActions`、`verification`、`reviewSummary` 抽成知识条目。
37
- 2. **维护知识生命周期**:检查索引是否过期,保留 active 条目;高置信 candidate 由 `autoPromote` 自动提升;其余 candidate/conflicted 由 **Agent judge** 闭环裁决,不再默认输出人工待办清单。
38
-
39
- ## Outputs
40
-
41
- ```text
42
- .harness/knowledge/index.json
43
- .harness/knowledge/index.sqlite
44
- .harness/knowledge/entries/candidate/*.json
45
- .harness/knowledge/entries/active/*.json
46
- .harness/knowledge/entries/stale/*.json
47
- .harness/knowledge/entries/superseded/*.json
48
- .harness/knowledge/entries/conflicted/*.json
49
- .harness/knowledge/cache/archive-entries/*.json
50
- .harness/knowledge/reports/ingest-report-*.md
51
- .harness/knowledge/reports/verification-report-*.md
52
- .harness/knowledge/reports/audit-report-*.md
53
- .harness/knowledge/reports/judge-export-<content-sha256>.json
54
- .harness/knowledge/reports/judgements-<content-sha256>.json
55
- .harness/knowledge/reports/latest.json
56
- .harness/knowledge/views/knowledge-dashboard.md
57
- .harness/knowledge/views/by-file.md
58
- .harness/knowledge/views/stale-items.md
59
- .harness/knowledge/views/superseded-items.md
60
- .harness/knowledge/views/conflicted-items.md
61
- .harness/knowledge/views/active-review.md
62
- .harness/knowledge/views/knowledge.base
63
- .harness/knowledge/context-packs/*.md
64
- ```
65
-
66
- ## Commands
67
-
68
- `<skill-dir>` 指本 skill 目录。所有 python 脚本命令通过 `powershell.exe -Command "..."` 执行。完整命令示例与 config.json 配置见 `reference.md`「Commands 详细」。
69
-
70
- | 命令 | 用途 |
71
- |---|---|
72
- | 无参数 / `auto` | 一键防腐:首建 config、sync --update、**默认**写回 validator 建议、verify、audit;随后由 **Agent** 执行 judge 闭环 |
73
- | `status` | 严格只读地返回 freshness 与 health |
74
- | `repair all` | 修复可证明的 legacy gate、归一化重复、冲突与报告保留;不确定项返回 `needsConfirmation` |
75
- | `ingest` | 重建/刷新知识索引,抽取 candidate;`--no-incremental` 强制全量重抽取 |
76
- | `sync --check` | 只读检查 index 与 archive/HEAD 一致性;`--update` 自动刷新 |
77
- | `promote` | candidate→active(显式 promote 或 autoPromote / judge 触发) |
78
- | `demote` | active→stale/candidate(显式 demote 或自动降级策略触发) |
79
- | `audit` | 生成 Candidate/Stale/Superseded/Conflict/Active Review 报告 |
80
- | `verify` | 执行 entry validators,刷新 lifecycle.validation,生成 verification-report |
81
- | `suggest-validators` | 生成 file_exists/file_contains validator 建议;`--apply` 写回 entry |
82
- | `admin <旧命令>` | 旧管理命令兼容入口 |
83
- | `mcp` | FastMCP stdio 入口,暴露 9 个工具(见 reference.md) |
84
-
85
- config.json 配置项(autoPromote / confidence / activeLifecycle / knowledgeValidation)详见 `reference.md`「Commands 详细」。
86
-
87
- ## Workflow
88
-
89
- ### Phase 0:确认项目根目录
90
-
91
- 项目根目录必须包含 `.harness/`。如果 `.harness/archive/` 不存在或没有 `summary-data.json`,报告当前项目暂无可索引归档,不要伪造知识。
92
-
93
- ### Phase 1:重建本地知识索引
94
-
95
- 运行:
96
-
97
- ```powershell
98
- powershell.exe -Command "python '<skill-dir>\scripts\harness_knowledge.py' ingest --project '<project-root>'"
99
- ```
100
-
101
- 生成:
102
-
103
- - `index.json`:人类可读 manifest。
104
- - `index.sqlite`:SQLite FTS5 检索索引。
105
- - `entries/candidate/`:自动抽取、待确认知识。
106
- - `entries/stale/`:来源 commit 缺失、无法比较,或来源 commit 后相关文件变化的知识。
107
- - `entries/active/`:人工确认后可长期引用的知识。
108
- - `views/`:Obsidian 友好的浏览视图。
109
- - `reports/`:本次 ingest 报告。
110
-
111
- ### Phase 2:一键 auto(推荐入口)
112
-
113
- ```powershell
114
- powershell.exe -Command "python '<skill-dir>\scripts\harness_knowledge.py' auto --project '<project-root>'"
115
- ```
116
-
117
- 不传子命令时等价于 `auto`。`auto` 输出必须分别报告:
118
-
119
- - `freshness`:archive、HEAD、manifest、entry、SQLite 是否一致。
120
- - `health`:各 lifecycle、publication、validation 与待裁决工作量。
121
-
122
- `auto` 默认会写回确定性 validator 建议(`--no-apply-suggestions` 可关闭)。JSON 返回含 `lifecycle` 摘要(validatorsApplied、autoPromote、pendingAgentJudge 等)。
123
-
124
- ### Phase 3:Agent judge 闭环(auto 之后必须执行)
125
-
126
- 当 `lifecycle.pendingAgentJudge > 0`、存在 `pending-judge` outbox,或 `judge export` 的
127
- `counts.requiredDecisionCount > 0` 时:
128
-
129
- 1. `judge export`(或读 maintain 产出的 pending judgements)
130
- 2. Agent 读取 export JSON,按 `reference.md`「Agent judge 启发式」批量写 `reports/judge-decisions-<ts>.json`
131
- 3. `judge apply --apply <decisions.json>`(`knowledge.manualReview=true` 时需用户显式 `--force`)
132
- 4. 向用户输出 **已处理报告**(promoted/dropped/superseded/kept/skipped 计数 + 报告路径)
133
-
134
- **禁止**默认输出「请人工确认 N 条 candidate」类五步待办清单。拿不准的 candidate 保持 `candidate` 状态留待下轮,记入 `skippedCandidates` 即可。
135
-
136
- `pendingAgentJudge`/`requiredDecisionCount` 是完整待裁决总量;`previewCount` 才受
137
- `config.judge.maxCandidatesPerRun`(默认 100)限制。已被 publication gate 阻断的条目
138
- 只进入 `quarantinedCount`,不得混入 judge export。`defer` 必须保存证据指纹;来源、
139
- validator、冲突关系或 publication 证据变化后即使未到 `reviewAfter` 也重新进入裁决。
140
-
141
- ### Phase 4:同步检查(可选)
30
+ 1. `harness-archive` 的 finalize 生成确定性 ZIP,并调用:
142
31
 
143
32
  ```powershell
144
- powershell.exe -Command "python '<skill-dir>\scripts\harness_knowledge.py' status --project '<project-root>'"
33
+ powershell.exe -Command "npx hunter-harness archive upload --file '<archive.zip>' --change-key '<change-key>' --yes --non-interactive --json"
145
34
  ```
146
35
 
147
- `upToDate=false` 时,运行 `sync --update` 或重新 `auto`,再交给 `harness-knowledge-query` 查询。
148
-
149
- ### Phase 5:显式 promote/demote(例外路径)
150
-
151
- 仅在用户点名单条、或 `manualReview=true` 需人工确认时使用 `promote` / `demote`。日常归档后不要逐条人工复核。
152
-
153
- **发布门禁**:knowledge publication 与 archive release status 独立。promote / judge apply /
154
- autoPromote 校验 authoritative pointer/hash 与 `reportPipeline.sourceConsistency`;即使归档
155
- 最终状态为 WARN,只要知识来源一致也可发布,但保留 release advisory。旧归档只有在
156
- summary/hash/source commit 可独立证明时才自动生成 attestation;否则保持 quarantined 并
157
- 返回 `needsConfirmation`(详见 `reference.md`「发布门禁」)。
158
-
159
- ### Phase 6:解释同步结果
160
-
161
- 回复用户或交给后续 skill 前,应说明:
162
-
163
- - 索引是否最新。
164
- - 如需刷新,具体原因是 archive 增删、checksum 变化、sqlite 缺失,还是 HEAD 改变。
165
- - 本次是否自动刷新。
166
- - 当前 `active` / `candidate` / `stale` 的数量。
167
- - 分别报告 `freshness` 与 `health`,不要用一个 `status` 覆盖
168
- lifecycle/review/publication/validation 四个正交维度。
169
-
170
- ## Knowledge extraction rules
171
-
172
- - 优先读取归档显式 `knowledgeCandidates[]`;维护流水线、测试计数等
173
- `category=process-observation` 不进入长期知识。
174
- - Duplicate content 使用 Unicode、空白、标点与大小写归一化指纹,并在全量重建时迁移。
175
- - 冲突必须同时有相同实体、共享来源范围和双方证据;仅关键词相反不得判为冲突。
176
- - Keep project-local entries excluded from any global index unless explicitly selected.
177
- - Validate lifecycle relationships.
178
- - Default generated entries are `candidate`; only config-gated `autoPromote` may promote high-confidence long-lived entries to `active`.
179
- - Preserve provenance: every entry must include source archive, summary path, source commit, and source files when available.
180
- - Do not edit `.harness/archive/**` during ingest.
181
- - Do not copy secrets into `.harness/knowledge`.
182
-
183
- ## Lifecycle rules
184
-
185
- - `candidate`:自动抽取;高置信 + 白名单类型可由 autoPromote 提升;其余由 Agent judge 裁决或保持 candidate。
186
- - `active`:autoPromote、judge promote,或显式 promote 后可用。
187
- - `stale`:来源 commit 缺失、来源 commit 后相关文件变化,或当前代码无法证明旧结论仍有效。
188
- - `superseded`:被后续归档/决策取代。
189
- - `conflicted`:与另一条 active/candidate 知识冲突。
36
+ 2. 检查响应中的包哈希、服务端保存状态和 `knowledge_status`。
37
+ 3. 只有服务端确认原 ZIP 已持久保存且知识状态为 ready,才删除本地待上传 ZIP。
38
+ 4. 上传或 ingest 失败时保留 ZIP 与失败收据;修复连接后重试同一个 ZIP,不重新拼散文件。
190
39
 
191
- ## Forbidden actions
40
+ ## Ownership Rules
192
41
 
193
- - auto_promote_candidate_knowledge_without_config_and_confidence_gate
194
- - erase_conflicts
195
- - include_project_local_by_default
196
- - mutate_archive_evidence
197
- - store_secrets
198
- - treat_stale_knowledge_as_current_fact
42
+ - 客户端:选择核心文件、生成稳定 manifest/ZIP、校验包哈希、上传与保留失败重试材料。
43
+ - 服务端:敏感信息扫描、ZIP 安全校验、原包持久化、解包、制品发布、知识 ingest、状态查询和下载恢复。
44
+ - 远端不可用:知识不可用;不得启动本地替代索引。
45
+ - 面向人的知识、提案、规则和说明默认使用中文。
199
46
 
200
- ## Allowed capabilities
47
+ ## Forbidden Actions
201
48
 
202
- - read
203
- - search
204
- - write_candidate_knowledge
205
- - write_active_knowledge_after_manual_confirmation
206
- - write_confidence_scores
207
- - auto_promote_high_confidence_knowledge_when_configured
208
- - agent_judge_knowledge_lifecycle
209
- - write_knowledge_index
210
- - write_obsidian_views
49
+ - build_or_refresh_local_knowledge
50
+ - write_dot_harness_knowledge
51
+ - upload_logs_reviews_tests_or_temp_files
52
+ - call_legacy_python_ingest
53
+ - treat_upload_acceptance_without_durable_status_as_success
54
+ - delete_pending_zip_after_failed_upload
211
55
 
212
56
  ## Verification
213
57
 
214
- skill 自带最小测试:
215
-
216
- ```powershell
217
- powershell.exe -Command "python 'harness\scripts\harness_test_runner.py' unittest --profile safe --tests-dir '<skill-dir>\tests' --timeout-seconds 300 --verbosity 1"
218
- ```
219
-
220
- 完成脚本修改后必须至少运行该测试。若在真实项目中验证,还应运行:
221
-
222
- ```powershell
223
- powershell.exe -Command "python '<skill-dir>\scripts\harness_knowledge.py' auto --project '<real-project-root>'"
224
- powershell.exe -Command "python '<skill-dir>\scripts\harness_knowledge.py' ingest --project '<real-project-root>'"
225
- powershell.exe -Command "python '<skill-dir>\scripts\harness_knowledge.py' suggest-validators --project '<real-project-root>' --limit 20"
226
- powershell.exe -Command "python '<skill-dir>\scripts\harness_knowledge.py' verify --project '<real-project-root>'"
227
- powershell.exe -Command "python '<skill-dir>\scripts\harness_knowledge.py' sync --project '<real-project-root>'"
228
- ```
229
-
230
- 并确认 `index.json`、`index.sqlite`、`views/knowledge-dashboard.md`、`reports/verification-report-*.md` 存在,且 sync 输出 `upToDate=true`。
58
+ 确认归档命令的 JSON 结果同时包含:服务端 package 哈希、保存状态和知识状态。
59
+ 若失败,确认 `.harness/state/local/archive-packages/` 中仍保留可重试 ZIP;若成功,确认
60
+ ZIP 已按收据策略清理,且平台下载接口可以恢复原包。
231
61
 
232
62
  ## P0 执行可信度规则
233
63
 
234
64
  - 命令结果不得靠猜测;普通 Bash 被拒 → 立即改用等价 PowerShell 重试一次
235
65
  - 仅 PowerShell 成功且有明确证据(构建/git/测试输出、文件存在、exit 0)时可标 ✅OK;否则 ❌FAIL 或 🟡WARN
236
66
  - 禁止把 hook 拒绝、静态验证、无输出、用户跳过说成成功 → 详见 [[../protocols/powershell-protocol.md|powershell-protocol]]、[[../protocols/evidence-based-reporting-protocol.md|evidence-based-reporting-protocol]]
237
- > 片段:p0-trust · ingest/sync 须绑定 `upToDate`/产物路径证据
238
-
239
- ## Output Format
240
-
241
- 执行完成后展示:
242
-
243
- - 本次命令(ingest/sync/promote)与目标项目根。
244
- - `upToDate` 及 `reasons`(sync)或新增/覆盖条目数(ingest/promote)。
245
- - 当前 `active` / `candidate` / `stale` 数量统计。
246
- - 产物路径(`index.json`、`index.sqlite`、`views/`、`reports/`)。
247
- - `lifecycle` 摘要:`validatorsApplied`、`candidateAutoPromoted`、兼容整数
248
- `pendingAgentJudge`,以及
249
- `pendingAgentJudgeSummary.requiredDecisionCount/previewCount/quarantinedCount` 等。
250
- - validator 摘要:`eligible/selected/applied/remaining/unavailable`,不得只报告本轮抽样数。
251
- - **已处理报告**(auto + judge 后):promoted/dropped/superseded/kept/deferred/skipped 计数与 `reports/judge-decisions-*.json`、`judgements-*.json` 路径;人工判断还会追加到 `judgements/decisions.json`,后续 ingest 不得抹除。`defer` 必须带 `reviewAfter`,到期前不重复进入待判断清单。
252
- - 仅当 `upToDate=false` 时建议 `sync --update`;查询历史 → `/harness-knowledge-query`。**禁止**默认列出「请人工确认 N 条 candidate」待办。
253
-
254
- ## 渐进披露
255
-
256
- - **Read `reference.md`** 仅在执行命令或查阅 config.json 配置时 — 含 Commands 详细示例、config.json 配置与兼容说明。
257
67
 
258
- ## 交互白名单
68
+ ## 生成内容语言约定
259
69
 
260
- **仅当** `.harness/config/harness.json` `knowledge.manualReview=true` 时,promote/demote 高价值条目需 blocking user confirmation;否则按 skill 默认策略 + `decision` 事件。
70
+ - sync/ingest 等生成的文档、规则、知识条目、架构说明一律**优先使用中文**撰写(标识符、命令、代码、API 字段名保持原文)
71
+ - 面向平台展示的标题/摘要/正文默认中文;仅当用户明确要求或目标系统强制时才用英文
72
+ > 片段:p0-trust · 只有服务端持久化与 ingest 收据可证明知识已入库
261
73
 
262
74
  ## 执行日志
263
75
 
@@ -272,4 +84,4 @@ python <skills-root>/scripts/harness_events.py append --change-dir ".harness/cha
272
84
  > **Task 4 §6.1 写入契约**:普通 `append` = 加锁 -> 追加一行 -> fsync -> 解锁,**不 load 历史、不渲染**(O(1),跨进程锁 `events.ndjson.lock`,UUID 用完整 `uuid4().hex` 无需去重扫描)。仅 `--type phase.end` append 在追加成功后渲染一次 `execution-log.md`;显式 `harness_events.py render` 随时从完整 events 重建;`harness_archive.py finalize` 在 collect 前强制 render 一次。高频 command append 期间 log 可能滞后,phase 边界保持最新。
273
85
 
274
86
  每个阶段的 `phase.start` 与对应 `phase.end` 必须复用同一 `--run-id` / `--attempt`;阶段结束必须写 `--status OK|WARN|FAIL|BLOCKED`。重试同一阶段时生成新的 run-id 并增加 `--attempt <n>`,不得覆盖或伪装成一次执行。跨工具继续执行时写 `--executor-tool <codex|claude-code|codebuddy|cursor>`,并在接棒事件写 `--handoff-from-tool` / `--handoff-reason`;也可由 `HUNTER_HARNESS_TOOL/AGENT/MODEL/RUN_ID` 环境变量统一注入。
275
- > 片段:logging · phase=`knowledge-ingest` · 默认控制台报告;变更上下文写 phase/decision/issue/artifact
87
+ > 片段:logging · phase=`knowledge-ingest` · 记录 package hash、服务端状态与失败重试路径
@@ -1,135 +1,75 @@
1
1
  ---
2
2
  name: harness-knowledge-query
3
- description: 根据新需求、设计任务、代码修改请求或问题排查,在规划和编码前查询 .harness/knowledge
4
- 历史上下文。适用场景:query knowledge、查找历史需求、根据归档理解需求、继续之前类似开发、生成需求上下文包。
3
+ description: 在规划、实现或排查前,通过 hunter-harness CLI 查询远端项目知识库。远端不可用时直接报告不可用,不建立本地索引或离线回退。
5
4
  ---
6
- <!-- generated by harness_deploy.py; core=c1c206c52d1a038b; overlay=java; agent=codex; do not edit -->
5
+ <!-- generated by harness_deploy.py; core=bdf71b2b196b876b; overlay=java; agent=codex; do not edit -->
7
6
  # harness-knowledge-query
8
7
 
9
- 并行 change 中查询必须传 `--change <change-id>`;成功后以该 change 的 `meta/knowledge-context.json` 为稳定指针。全局 `context-packs/latest.json` 仅向后兼容,不得用于判断多个 active change 的上下文归属。
8
+ 项目知识以 Hunter Platform 的服务端索引为唯一真源。客户端只提交查询并消费结果:
10
9
 
11
- 根据用户的新需求或排查问题,从项目本地 `.harness/knowledge` 中检索历史需求、决策、实现、风险和测试证据,并生成 AI 可读的 context pack。
10
+ - 不创建或读取 `.harness/knowledge`;
11
+ - 不运行本地 Python ingest、SQLite、FTS 或 context-pack 脚本;
12
+ - 不在网络或服务不可用时回退到本地归档;
13
+ - 查询失败只记录“本轮无远端知识”,后续工作必须依靠当前代码和用户提供的信息。
12
14
 
13
- 此 skill 只负责查询和使用知识。整理、同步和 promote 条目由 `harness-knowledge-ingest` 负责。
15
+ 所有面向人的总结默认使用中文,代码标识符和原始路径保持原样。
14
16
 
15
17
  ## Triggers
16
18
 
17
- - query knowledge
18
- - knowledge query
19
- - 查找相关历史需求
20
- - 根据历史归档理解这个需求
19
+ - query knowledge / knowledge query
20
+ - 查询历史需求、决策或实现经验
21
21
  - 结合之前做过的内容
22
- - 继续之前类似开发
23
- - 生成需求上下文包
24
- - 在规划前查历史
22
+ - 规划或排查前读取项目知识
25
23
 
26
- ## Automatic Use
24
+ ## Command
27
25
 
28
- 当用户提出新功能、改造、排查、设计方案、继续历史任务,且项目存在 `.harness/archive` 或 `.harness/knowledge` 时,AI 应主动运行本 skill,不需要等用户提醒。
29
-
30
- 不在 query 前单独执行 sync。`query` 命令内部执行一次 ensure-current:建立一次当前快照,索引新鲜时无操作,过期或缺失时只构建一次,然后在同一调用内完成查询。
31
-
32
- ## Commands
33
-
34
- `<ingest-skill-dir>` 指同级 `harness-knowledge-ingest/` 目录;查询逻辑复用其脚本。所有 python 脚本命令通过 `powershell.exe -Command "..."` 执行,避开 Bash 在 Windows 中文路径下的编码/参数问题。
35
-
36
- ### Query by requirement
26
+ 在项目根目录执行一次:
37
27
 
38
28
  ```powershell
39
- powershell.exe -Command "python '<ingest-skill-dir>\scripts\harness_knowledge.py' query --project '<project-root>' --query '<用户需求原文>'"
29
+ powershell.exe -Command "npx hunter-harness knowledge query '<用户需求原文>' --limit 10 --json"
40
30
  ```
41
31
 
42
- ### Query with metadata filters
43
-
44
- ```powershell
45
- powershell.exe -Command "python '<ingest-skill-dir>\scripts\harness_knowledge.py' query --project '<project-root>' --query '<需求或关键词>' --file '<source-file>' --status active"
46
- ```
47
-
48
- 可重复使用:
49
-
50
- - `--file <path>`:只返回关联到指定文件的知识。
51
- - `--status active|candidate|stale|superseded|conflicted`:按生命周期过滤。
52
- - `--type requirement|decision|implementation|risk|test-evidence|pitfall|api-contract`:按知识类型过滤。
53
- - `--limit <n>`:限制返回数量。
32
+ 只允许通过 CLI 访问平台,不得直接拼接 HTTP 请求,也不得调用旧的
33
+ 本地知识查询脚本(该脚本已从当前分发包移除)。
54
34
 
55
35
  ## Workflow
56
36
 
57
- 1. 确认项目根目录。
58
- 2. 用用户原始需求执行一次 `query`;query 命令内部执行一次 ensure-current。
59
- 3. 如已知道相关文件,在同一次查询中追加 `--file` 过滤。
60
- 4. 读取 JSON 输出中的 `contextPack`。
61
- 5. `harness-plan`、设计、代码探索或实现前,把 context pack 当作必读输入。
37
+ 1. 原样保留用户的需求或问题作为查询文本;已知范围较大时可将关键模块名一并放入文本。
38
+ 2. 执行一次远端查询,不在查询前重建或同步知识。
39
+ 3. 读取 JSON 中的命中项、来源路径、变更键和相关度。
40
+ 4. 把命中内容作为历史线索;涉及当前行为时仍以当前代码和验证结果为准。
41
+ 5. 若命令返回远端不可达、未绑定或未认证,记录明确 issue 后继续,不重试本地方案。
62
42
 
63
43
  ## Output Contract
64
44
 
65
- 查询输出 JSON 包含:
66
-
67
- - `matchCount`
68
- - `contextPack`
69
- - `filters`
70
- - `planInput`
71
- - `matches`
72
-
73
- `planInput.kind` 必须为 `harness-knowledge-context-pack`。后续 `harness-plan` 应读取 `planInput.path`。
74
-
75
- 每次查询还会更新稳定指针:
76
-
77
- ```text
78
- .harness/knowledge/context-packs/latest.json
79
- ```
80
-
81
- 该文件包含最新 query、context pack 路径和 `matchIds`,供后续流程快速读取最近一次知识上下文。
45
+ 必须说明:
82
46
 
83
- ## Interpretation Rules
84
-
85
- - `active`:可优先采用,但仍要结合当前代码验证。
86
- - `candidate`:有参考价值,不是当前事实。
87
- - `stale`:只能作为历史线索,必须重新检查代码和归档。
88
- - `superseded` / `conflicted`:必须显式提示风险,不得静默采用。
47
+ - 查询文本与 limit;
48
+ - 是否成功访问远端;
49
+ - 命中数量及最相关来源;
50
+ - 远端不可用时,明确写“未使用本地回退”;
51
+ - 下一步是进入规划/实现,还是先核对当前代码。
89
52
 
90
53
  ## Forbidden Actions
91
54
 
92
- - rebuild_index_without_need
93
- - pre_sync_before_query
94
- - query_then_sync_then_query_again
95
- - treat_candidate_as_current_fact
96
- - treat_stale_as_current_fact
97
- - skip_context_pack_before_planning
98
- - copy_large_archive_content_into_prompt
99
-
100
- ## Verification
101
-
102
- ```powershell
103
- powershell.exe -Command "python -m unittest '<ingest-skill-dir>\tests\test_harness_knowledge.py'"
104
- powershell.exe -Command "python '<ingest-skill-dir>\scripts\harness_knowledge.py' query --project '<real-project-root>' --query '<真实需求>'"
105
- ```
106
-
107
- 确认输出中存在 `contextPack`、`planInput.kind=harness-knowledge-context-pack`,且 context pack 文件包含 `Before planning`。
55
+ - create_local_knowledge_index
56
+ - query_local_sqlite_or_archive_as_fallback
57
+ - generate_local_context_pack
58
+ - retry_with_legacy_python_knowledge_script
59
+ - treat_remote_history_as_current_code_fact
60
+ - copy_secrets_into_query
108
61
 
109
62
  ## P0 执行可信度规则
110
63
 
111
64
  - 命令结果不得靠猜测;普通 Bash 被拒 → 立即改用等价 PowerShell 重试一次
112
65
  - 仅 PowerShell 成功且有明确证据(构建/git/测试输出、文件存在、exit 0)时可标 ✅OK;否则 ❌FAIL 或 🟡WARN
113
66
  - 禁止把 hook 拒绝、静态验证、无输出、用户跳过说成成功 → 详见 [[../protocols/powershell-protocol.md|powershell-protocol]]、[[../protocols/evidence-based-reporting-protocol.md|evidence-based-reporting-protocol]]
114
- > 片段:p0-trust · query 成功须含 `contextPack`/`planInput.kind` 与 `latest.json` 写入
115
-
116
- ## Output Format
117
-
118
- 执行完成后展示:
119
-
120
- - 用户需求原文与生效的过滤条件(`--file`/`--status`/`--type`/`--limit`)。
121
- - `matchCount` 与按状态分组的命中数(active/candidate/stale/superseded/conflicted)。
122
- - `contextPack` 路径与 `latest.json` 指针。
123
- - 命中 stale/superseded/conflicted 时显式提示风险。
124
- - 下一步建议(context pack 已就绪 → 进入 `/harness-plan`;ensure-current 失败 → 报告具体 issue,不重复同步或查询)。
125
-
126
- ## 渐进披露
127
-
128
- - 本 skill 暂无 `checklist.md` / `reference.md` 支持文件,规则全部在 SKILL.md。若 Output Contract / Interpretation Rules 后续扩展变重,应拆到 `reference.md`。
129
67
 
130
- ## 交互白名单
68
+ ## 生成内容语言约定
131
69
 
132
- **无** blocking user confirmation;`stale`/`conflicted` 命中记 `issue`,不阻断 query。
70
+ - sync/ingest 等生成的文档、规则、知识条目、架构说明一律**优先使用中文**撰写(标识符、命令、代码、API 字段名保持原文)
71
+ - 面向平台展示的标题/摘要/正文默认中文;仅当用户明确要求或目标系统强制时才用英文
72
+ > 片段:p0-trust · 远端查询成功必须有 CLI JSON 证据;失败不得伪装为已读取历史
133
73
 
134
74
  ## 执行日志
135
75
 
@@ -144,4 +84,4 @@ python <skills-root>/scripts/harness_events.py append --change-dir ".harness/cha
144
84
  > **Task 4 §6.1 写入契约**:普通 `append` = 加锁 -> 追加一行 -> fsync -> 解锁,**不 load 历史、不渲染**(O(1),跨进程锁 `events.ndjson.lock`,UUID 用完整 `uuid4().hex` 无需去重扫描)。仅 `--type phase.end` append 在追加成功后渲染一次 `execution-log.md`;显式 `harness_events.py render` 随时从完整 events 重建;`harness_archive.py finalize` 在 collect 前强制 render 一次。高频 command append 期间 log 可能滞后,phase 边界保持最新。
145
85
 
146
86
  每个阶段的 `phase.start` 与对应 `phase.end` 必须复用同一 `--run-id` / `--attempt`;阶段结束必须写 `--status OK|WARN|FAIL|BLOCKED`。重试同一阶段时生成新的 run-id 并增加 `--attempt <n>`,不得覆盖或伪装成一次执行。跨工具继续执行时写 `--executor-tool <codex|claude-code|codebuddy|cursor>`,并在接棒事件写 `--handoff-from-tool` / `--handoff-reason`;也可由 `HUNTER_HARNESS_TOOL/AGENT/MODEL/RUN_ID` 环境变量统一注入。
147
- > 片段:logging · phase=`knowledge-query` · 独立运行时控制台报告;变更上下文写 decision/issue/artifact
87
+ > 片段:logging · phase=`knowledge-query` · 成功记录命中摘要,失败记录远端错误码且不做本地回退
@@ -2,7 +2,7 @@
2
2
  name: harness-package
3
3
  description: 增量模块打包:拉取最新→编译验证→mvn package→汇总 jar/war。仅当用户显式调用 /harness-package 时使用,不得自动触发。
4
4
  ---
5
- <!-- generated by harness_deploy.py; core=c1c206c52d1a038b; overlay=java; agent=codex; do not edit -->
5
+ <!-- generated by harness_deploy.py; core=bdf71b2b196b876b; overlay=java; agent=codex; do not edit -->
6
6
  # harness-package — 增量模块打包(Java overlay)
7
7
 
8
8
  ## Purpose
@@ -31,7 +31,7 @@ description: 增量模块打包:拉取最新→编译验证→mvn package→
31
31
  6. **implementation-detail** — 自适应执行参考;legacy 缺失 🟡WARN,不阻断
32
32
  7. **test-scenarios** — 测试真相源:`plans/<change>-test-scenarios.md`
33
33
  8. **禁止读取 `docs/superpowers/` 作为正式输入** — 旧草稿仅人工线索
34
- 9. **每个 skill 边界只刷新一次状态快照** — 先运行 `python <skills-root>/scripts/harness_state.py capture --project . --change-dir ".harness/changes/<change-name>" --base <baseCommit> --json`;`changedSegments=[]` 时复用已有 profile/rules/map/knowledge/change/code 指纹,不再重复跑全量 `harness-sync`、知识重建或代码库扫描。只有对应 segment 变化或缺失时才定向刷新;快照不能替代源码读取和验证门禁。
34
+ 9. **每个 skill 边界只刷新一次状态快照** — 先运行 `python <skills-root>/scripts/harness_state.py capture --project . --change-dir ".harness/changes/<change-name>" --base <baseCommit> --json`;`changedSegments=[]` 时复用已有 profile/rules/map/change/code 指纹,不再重复跑全量 `harness-sync` 或代码库扫描。`knowledge` 段仅为兼容空段,知识始终按需远端查询;快照不能替代源码读取和验证门禁。
35
35
 
36
36
  状态目录分层:新路径优先,旧路径兼容 → [[../protocols/state-layout-protocol.md|state-layout-protocol]]
37
37
  > 片段:read-protocol
@@ -51,6 +51,11 @@ description: 增量模块打包:拉取最新→编译验证→mvn package→
51
51
  - 命令结果不得靠猜测;普通 Bash 被拒 → 立即改用等价 PowerShell 重试一次
52
52
  - 仅 PowerShell 成功且有明确证据(构建/git/测试输出、文件存在、exit 0)时可标 ✅OK;否则 ❌FAIL 或 🟡WARN
53
53
  - 禁止把 hook 拒绝、静态验证、无输出、用户跳过说成成功 → 详见 [[../protocols/powershell-protocol.md|powershell-protocol]]、[[../protocols/evidence-based-reporting-protocol.md|evidence-based-reporting-protocol]]
54
+
55
+ ## 生成内容语言约定
56
+
57
+ - sync/ingest 等生成的文档、规则、知识条目、架构说明一律**优先使用中文**撰写(标识符、命令、代码、API 字段名保持原文)
58
+ - 面向平台展示的标题/摘要/正文默认中文;仅当用户明确要求或目标系统强制时才用英文
54
59
  > 片段:p0-trust
55
60
 
56
61
  ## 渐进披露
@@ -3,14 +3,14 @@ name: harness-plan
3
3
  description: 将需求转化为设计文档+实施计划+完整测试场景表,必须在编码前完成。仅当用户显式调用 /harness-plan 或明确要求进入
4
4
  Harness 规划阶段时使用;不得因用户描述需求就自动触发。
5
5
  ---
6
- <!-- generated by harness_deploy.py; core=c1c206c52d1a038b; overlay=java; agent=codex; do not edit -->
6
+ <!-- generated by harness_deploy.py; core=bdf71b2b196b876b; overlay=java; agent=codex; do not edit -->
7
7
  # harness-plan — 需求规划
8
8
 
9
9
  ## Purpose
10
10
 
11
11
  确定 change 后必须运行 `python <skills-root>/scripts/harness_gate.py classify --change <id> --stage plan --json`,并把脚本返回的 risk tier、默认阶段、条件阶段和必需验证写入计划;不得凭模型印象另建风险分级。
12
12
 
13
- 需求 → 设计文档 → 任务拆分 → 测试场景表(编码/测试唯一真相源)。存在 `.harness/archive/` 或 `.harness/knowledge/` 时须先 `harness-knowledge-query`。
13
+ 需求 → 设计文档 → 任务拆分 → 测试场景表(编码/测试唯一真相源)。项目已绑定远端平台时先执行一次 `harness-knowledge-query`;远端不可用则记录 issue 并继续,不做本地回退。
14
14
 
15
15
  ## When to Use
16
16
 
@@ -28,7 +28,7 @@ description: 将需求转化为设计文档+实施计划+完整测试场景表
28
28
  6. **implementation-detail** — 自适应执行参考;legacy 缺失 🟡WARN,不阻断
29
29
  7. **test-scenarios** — 测试真相源:`plans/<change>-test-scenarios.md`
30
30
  8. **禁止读取 `docs/superpowers/` 作为正式输入** — 旧草稿仅人工线索
31
- 9. **每个 skill 边界只刷新一次状态快照** — 先运行 `python <skills-root>/scripts/harness_state.py capture --project . --change-dir ".harness/changes/<change-name>" --base <baseCommit> --json`;`changedSegments=[]` 时复用已有 profile/rules/map/knowledge/change/code 指纹,不再重复跑全量 `harness-sync`、知识重建或代码库扫描。只有对应 segment 变化或缺失时才定向刷新;快照不能替代源码读取和验证门禁。
31
+ 9. **每个 skill 边界只刷新一次状态快照** — 先运行 `python <skills-root>/scripts/harness_state.py capture --project . --change-dir ".harness/changes/<change-name>" --base <baseCommit> --json`;`changedSegments=[]` 时复用已有 profile/rules/map/change/code 指纹,不再重复跑全量 `harness-sync` 或代码库扫描。`knowledge` 段仅为兼容空段,知识始终按需远端查询;快照不能替代源码读取和验证门禁。
32
32
 
33
33
  状态目录分层:新路径优先,旧路径兼容 → [[../protocols/state-layout-protocol.md|state-layout-protocol]]
34
34
  > 片段:read-protocol · plan 额外写 `meta/worktree.json`、`meta/change-context.json`
@@ -67,7 +67,7 @@ description: 将需求转化为设计文档+实施计划+完整测试场景表
67
67
  |------|------|
68
68
  | 0 | 用当前解释器运行 `harness_runtime.py doctor`,后续消费绝对 argv;git status;脏工作区 → baseline 隔离 + `decision`,不询问 |
69
69
  | 0.5 | 先执行 `harness_context.py prepare --phase plan --executor <tool> [--change <id>] --json`,以其唯一 change/executionRoot 初始化 plan-run-id 与 attempt(首次为 1),用同一身份追加 `phase.start`;从第一条知识查询起保留事件证据,并在 finalizer 中复用该身份 |
70
- | 1 | `harness-knowledge-query` 单次 query(内部 ensure-current;失败记 `issue`) |
70
+ | 1 | `harness-knowledge-query` 单次远端 query(失败记 `issue`,不建立本地索引或离线回退) |
71
71
  | 2 | 歧义优先检查 + 复杂度分级;先确认会改变实现方向的语义歧义 |
72
72
  | 3 | 按复杂度执行有预算的代码探索;简单修复不得扩散到无关模块 |
73
73
  | 4 | **设计审批包** blocking user confirmation;确认事件早于 approved 设计文档和 `meta/worktree.json` |
@@ -82,6 +82,11 @@ change-name 范围变更 → 提示重命名或记 🟡WARN(→ `reference.md`
82
82
  - 命令结果不得靠猜测;普通 Bash 被拒 → 立即改用等价 PowerShell 重试一次
83
83
  - 仅 PowerShell 成功且有明确证据(构建/git/测试输出、文件存在、exit 0)时可标 ✅OK;否则 ❌FAIL 或 🟡WARN
84
84
  - 禁止把 hook 拒绝、静态验证、无输出、用户跳过说成成功 → 详见 [[../protocols/powershell-protocol.md|powershell-protocol]]、[[../protocols/evidence-based-reporting-protocol.md|evidence-based-reporting-protocol]]
85
+
86
+ ## 生成内容语言约定
87
+
88
+ - sync/ingest 等生成的文档、规则、知识条目、架构说明一律**优先使用中文**撰写(标识符、命令、代码、API 字段名保持原文)
89
+ - 面向平台展示的标题/摘要/正文默认中文;仅当用户明确要求或目标系统强制时才用英文
85
90
  > 片段:p0-trust
86
91
 
87
92
  ## 关键规则
@@ -15,8 +15,8 @@ description: harness-plan 的阶段检查清单和覆盖检查列表。仅在执
15
15
  ## 阶段 0.5:事件初始化与知识查询
16
16
 
17
17
  - [ ] 先确定 change-name、稳定的 plan-run-id 与 attempt(首次为 1),立即用 `harness_events.py append ... --phase plan --type phase.start --run-id <plan-run-id> --attempt <attempt>` 追加开始事件
18
- - [ ] 再执行一次 knowledge `query`;由 query 内部 ensure-current,不另跑前置 sync
19
- - [ ] 查询失败追加 `issue`,不得重跑“sync + query”循环或假装已读取历史
18
+ - [ ] 项目已绑定平台时执行一次远端 knowledge `query`;不另跑前置 sync,不创建本地索引
19
+ - [ ] 查询失败追加 `issue`,不得回退本地 archive/SQLite、重跑“sync + query”循环或假装已读取历史
20
20
 
21
21
  ## 阶段 2:歧义优先检查与复杂度分级
22
22
 
@@ -4,7 +4,7 @@ description: 6维度代码审查(架构/安全/规范/兼容/测试/性能)
4
4
  .harness/context-index.json)和测试场景表,在隔离上下文运行。仅当用户显式调用 /harness-review 时使用;不得在
5
5
  test 结束后自动接续执行。
6
6
  ---
7
- <!-- generated by harness_deploy.py; core=c1c206c52d1a038b; overlay=java; agent=codex; do not edit -->
7
+ <!-- generated by harness_deploy.py; core=bdf71b2b196b876b; overlay=java; agent=codex; do not edit -->
8
8
  # harness-review — 代码审查
9
9
 
10
10
  ## Purpose
@@ -38,7 +38,7 @@ description: 6维度代码审查(架构/安全/规范/兼容/测试/性能)
38
38
  6. **implementation-detail** — 自适应执行参考;legacy 缺失 🟡WARN,不阻断
39
39
  7. **test-scenarios** — 测试真相源:`plans/<change>-test-scenarios.md`
40
40
  8. **禁止读取 `docs/superpowers/` 作为正式输入** — 旧草稿仅人工线索
41
- 9. **每个 skill 边界只刷新一次状态快照** — 先运行 `python <skills-root>/scripts/harness_state.py capture --project . --change-dir ".harness/changes/<change-name>" --base <baseCommit> --json`;`changedSegments=[]` 时复用已有 profile/rules/map/knowledge/change/code 指纹,不再重复跑全量 `harness-sync`、知识重建或代码库扫描。只有对应 segment 变化或缺失时才定向刷新;快照不能替代源码读取和验证门禁。
41
+ 9. **每个 skill 边界只刷新一次状态快照** — 先运行 `python <skills-root>/scripts/harness_state.py capture --project . --change-dir ".harness/changes/<change-name>" --base <baseCommit> --json`;`changedSegments=[]` 时复用已有 profile/rules/map/change/code 指纹,不再重复跑全量 `harness-sync` 或代码库扫描。`knowledge` 段仅为兼容空段,知识始终按需远端查询;快照不能替代源码读取和验证门禁。
42
42
 
43
43
  状态目录分层:新路径优先,旧路径兼容 → [[../protocols/state-layout-protocol.md|state-layout-protocol]]
44
44
  > 片段:read-protocol
@@ -102,6 +102,11 @@ review:
102
102
  - 命令结果不得靠猜测;普通 Bash 被拒 → 立即改用等价 PowerShell 重试一次
103
103
  - 仅 PowerShell 成功且有明确证据(构建/git/测试输出、文件存在、exit 0)时可标 ✅OK;否则 ❌FAIL 或 🟡WARN
104
104
  - 禁止把 hook 拒绝、静态验证、无输出、用户跳过说成成功 → 详见 [[../protocols/powershell-protocol.md|powershell-protocol]]、[[../protocols/evidence-based-reporting-protocol.md|evidence-based-reporting-protocol]]
105
+
106
+ ## 生成内容语言约定
107
+
108
+ - sync/ingest 等生成的文档、规则、知识条目、架构说明一律**优先使用中文**撰写(标识符、命令、代码、API 字段名保持原文)
109
+ - 面向平台展示的标题/摘要/正文默认中文;仅当用户明确要求或目标系统强制时才用英文
105
110
  > 片段:p0-trust
106
111
 
107
112
  ## 关键规则(硬门禁速查)