@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,42 +0,0 @@
1
- <evaluation>
2
- <qa_pair>
3
- <question>Using the project tests/fixtures/mcp-eval-project, identify the component first documented as the single source of truth for billing reconciliation. Answer with the component name only.</question>
4
- <answer>LedgerReconciler</answer>
5
- </qa_pair>
6
- <qa_pair>
7
- <question>Using the project tests/fixtures/mcp-eval-project, find the later component that replaced the original billing reconciliation source-of-truth assumption for final published output. Answer with the component name only.</question>
8
- <answer>SettlementSnapshot</answer>
9
- </qa_pair>
10
- <qa_pair>
11
- <question>Using the project tests/fixtures/mcp-eval-project, what file introduced the final published reconciliation output object? Answer with the exact file path.</question>
12
- <answer>src/billing/settlement_snapshot.py</answer>
13
- </qa_pair>
14
- <qa_pair>
15
- <question>Using the project tests/fixtures/mcp-eval-project, which test file validates the original billing reconciliation component? Answer with the exact file path.</question>
16
- <answer>tests/test_ledger_reconciler.py</answer>
17
- </qa_pair>
18
- <qa_pair>
19
- <question>Using the project tests/fixtures/mcp-eval-project, what migration must run before the January ledger release? Answer with the migration id only.</question>
20
- <answer>2026-01-ledger-baseline</answer>
21
- </qa_pair>
22
- <qa_pair>
23
- <question>Using the project tests/fixtures/mcp-eval-project, what HTTP header carries the webhook signature? Answer with the header name only.</question>
24
- <answer>X-Harness-Signature</answer>
25
- </qa_pair>
26
- <qa_pair>
27
- <question>Using the project tests/fixtures/mcp-eval-project, what is the retry backoff cap for partner payout webhook notifications? Answer with the duration phrase only.</question>
28
- <answer>30 minutes</answer>
29
- </qa_pair>
30
- <qa_pair>
31
- <question>Using the project tests/fixtures/mcp-eval-project, how many files changed in the webhook contract archive? Answer with a number only.</question>
32
- <answer>2</answer>
33
- </qa_pair>
34
- <qa_pair>
35
- <question>Using the project tests/fixtures/mcp-eval-project, what risk can break signature timestamp validation? Answer with the exact risk sentence.</question>
36
- <answer>Partner sandbox clock skew may break signature timestamp validation.</answer>
37
- </qa_pair>
38
- <qa_pair>
39
- <question>Using the project tests/fixtures/mcp-eval-project, what project id is declared for the fixture project? Answer with the project id only.</question>
40
- <answer>harness-knowledge-mcp-eval</answer>
41
- </qa_pair>
42
- </evaluation>
@@ -1,10 +0,0 @@
1
- {
2
- "mcpServers": {
3
- "harness-knowledge": {
4
- "command": "python",
5
- "args": [
6
- "scripts/harness_knowledge_mcp.py"
7
- ]
8
- }
9
- }
10
- }
@@ -1,413 +0,0 @@
1
- ---
2
- description: harness-knowledge-ingest 的命令详细示例、config.json 配置参考与变更日志。仅在执行命令或查阅配置时读取。
3
- ---
4
-
5
- # harness-knowledge-ingest 参考
6
-
7
- 本文件为 `harness-knowledge-ingest` 的渐进披露支持文件,承载 Commands 详细示例与变更日志。SKILL.md 只保留概要 + 渐进披露引用。`<skill-dir>` 指本 skill 目录,即 `harness-knowledge-ingest/` 或知识库源目录中的 `harness-knowledge-ingest/`。所有 python 脚本命令通过 `powershell.exe -Command "..."` 执行,避开 Bash 在 Windows 中文路径下的编码/参数问题。
8
-
9
- ## Commands 详细
10
-
11
- ### Auto maintenance
12
-
13
- 如果只是想让 skill 自己完成常规知识库防腐,优先跑 `auto`,再执行 **Agent judge 闭环**(见下文):
14
-
15
- ```powershell
16
- powershell.exe -Command "python '<skill-dir>\scripts\harness_knowledge.py' auto --project '<project-root>'"
17
- ```
18
-
19
- 省略子命令时也进入 `auto`;旧命令可放在 `admin` 后继续调用,例如
20
- `admin audit --project <root>`。
21
-
22
- `auto` 会按默认维护顺序执行:首建 `config.json`(若缺失)、`sync --update`、**默认写回** validator 建议、`verify`、`audit`。首次发现 `.harness/knowledge/config.json` 不存在时,会写入启用版 `autoPromote` + `activeLifecycle.autoDemote` + `knowledgeValidation.autoDemoteActive` + `judge.maxCandidatesPerRun` 配置。
23
-
24
- 关闭 validator 写回:
25
-
26
- ```powershell
27
- powershell.exe -Command "python '<skill-dir>\scripts\harness_knowledge.py' auto --project '<project-root>' --no-apply-suggestions"
28
- ```
29
-
30
- ### Agent judge 闭环(auto 之后)
31
-
32
- 1. `judge export`(或 maintain 产出的 pending judgements)
33
- 2. Agent 读 export,写 `reports/judge-decisions-<ts>.json`(schema 对齐 `judge apply`)
34
- 3. `judge apply --apply <decisions.json>`
35
- 4. 输出已处理报告,不列人工待办
36
-
37
- **启发式**(Agent 侧,非脚本硬编码):
38
-
39
- - **conflicted**:优先 `supersede` 较旧/较弱证据方;对称难判 → `keep-conflict` + reason
40
- - **candidate**:`decision|api-contract|requirement|pitfall` 且 confidence 高 → `promote`;`implementation|test-evidence` 倾向 `drop` 或保持 candidate
41
- - `requiredDecisionCount` 是完整总量,`previewCount` 才受
42
- `judge.maxCandidatesPerRun`(默认 100)限制。
43
- - publication gate 阻断项计入 `quarantinedCount`,不进入待裁决单位。
44
- - 超出预览窗口的 candidate 计入 `deferredByLimitCount`,不能让
45
- `pendingAgentJudge` 误报为窗口大小。
46
-
47
- ```powershell
48
- powershell.exe -Command "python '<skill-dir>\scripts\harness_knowledge.py' judge --project '<project-root>' --export '<export.json>'"
49
- powershell.exe -Command "python '<skill-dir>\scripts\harness_knowledge.py' judge --project '<project-root>' --apply '<decisions.json>'"
50
- ```
51
-
52
- 常用参数:
53
- - `--limit <n>`:限制本次 validator 建议的条目数。
54
- - `--audit-limit <n>`:限制各类审计清单条目数。
55
- - `--suggest-status active|candidate`:限定生成 validator 建议的 lifecycle,可重复。
56
- - `--no-incremental`:强制不复用 archive 抽取缓存。
57
-
58
- ### Rebuild index
59
-
60
- ```powershell
61
- powershell.exe -Command "python '<skill-dir>\scripts\harness_knowledge.py' ingest --project '<project-root>'"
62
- ```
63
-
64
- 生成或刷新 `.harness/knowledge`。默认启用 archive 抽取缓存,未变化 archive 会复用 `.harness/knowledge/cache/archive-entries/*.json` 的原始抽取结果,但 lifecycle 会每次全局重算。自动生成条目默认为 `candidate`;如果来源 commit 不存在、来源 commit 之后相关文件发生变化、TTL 过期,或后续 verification 失败/降级,则标记为 `stale`。
65
-
66
- 如需强制全量重抽取:
67
-
68
- ```powershell
69
- powershell.exe -Command "python '<skill-dir>\scripts\harness_knowledge.py' ingest --project '<project-root>' --no-incremental"
70
- ```
71
-
72
- ### Sync knowledge
73
-
74
- ```powershell
75
- powershell.exe -Command "python '<skill-dir>\scripts\harness_knowledge.py' status --project '<project-root>'"
76
- ```
77
-
78
- 严格只读地检查 `.harness/knowledge` 是否与 `.harness/archive` 和当前 HEAD 一致。也可用
79
- 兼容命令 `sync --check`。输出 JSON 包含:
80
-
81
- - `upToDate`
82
- - `reasons`
83
- - `archiveCount`
84
- - `paths`
85
- - `freshness`
86
- - `health`(lifecycle/review/publication/validation 四个独立维度)
87
-
88
- 如果希望发现过期后自动刷新:
89
-
90
- ```powershell
91
- powershell.exe -Command "python '<skill-dir>\scripts\harness_knowledge.py' sync --project '<project-root>' --update"
92
- ```
93
-
94
- 如需刷新时禁用抽取缓存:
95
-
96
- ```powershell
97
- powershell.exe -Command "python '<skill-dir>\scripts\harness_knowledge.py' sync --project '<project-root>' --update --no-incremental"
98
- ```
99
-
100
- ### Repair
101
-
102
- 先诊断、不写入:
103
-
104
- ```powershell
105
- powershell.exe -Command "python '<skill-dir>\scripts\harness_knowledge.py' repair all --project '<project-root>' --no-apply"
106
- ```
107
-
108
- 执行可证明的修复:
109
-
110
- ```powershell
111
- powershell.exe -Command "python '<skill-dir>\scripts\harness_knowledge.py' repair all --project '<project-root>'"
112
- ```
113
-
114
- repair 处理归一化重复、冲突重算、旧 publication gate attestation 与报告保留。旧归档只有在
115
- authoritative summary/hash 和 source commit 均可独立验证时自动修复;其余项进入
116
- `needsConfirmation`,不得猜测或静默放行。
117
-
118
- ### Verify knowledge validators
119
-
120
- ```powershell
121
- powershell.exe -Command "python '<skill-dir>\scripts\harness_knowledge.py' verify --project '<project-root>'"
122
- ```
123
-
124
- `verify` 不重抽 `.harness/archive`,只读取当前 `.harness/knowledge/entries/**/*.json` 中显式声明的 `validators[]`,执行确定性检查,写回 `lifecycle.validation`,刷新 `index.json` / `index.sqlite` / `views/`,并生成 `reports/verification-report-*.md`。
125
-
126
- 支持的 validator:
127
-
128
- ```json
129
- {
130
- "validators": [
131
- {
132
- "type": "file_exists",
133
- "path": "src/billing/ledger_reconciler.py",
134
- "description": "ledger reconciler file still exists"
135
- },
136
- {
137
- "type": "file_contains",
138
- "path": "src/billing/ledger_reconciler.py",
139
- "pattern": "LedgerReconciler",
140
- "description": "source still contains LedgerReconciler"
141
- },
142
- {
143
- "type": "symbol_exists",
144
- "symbol": "LedgerReconciler",
145
- "files": ["src/billing/ledger_reconciler.py"],
146
- "description": "LedgerReconciler symbol still exists"
147
- }
148
- ]
149
- }
150
- ```
151
-
152
- `command` validator 也支持,但默认禁用;只有项目显式开启 `knowledgeValidation.allowCommandValidators=true` 时才运行,且 `command` 必须是字符串数组。
153
-
154
- ### Suggest validators
155
-
156
- ```powershell
157
- powershell.exe -Command "python '<skill-dir>\scripts\harness_knowledge.py' suggest-validators --project '<project-root>' --limit 20"
158
- ```
159
-
160
- 默认只生成建议和 content-addressed report,不会改写 entries。结果分别报告
161
- `eligible/selected/suggested/applied/remaining/unavailable`。建议来源是当前 entry 的
162
- `scope.sourceFiles`、正文/标题/关键词中的稳定 token,以及项目文件中的实际内容。
163
- 当前只生成安全的 `file_exists` / `file_contains` 建议。
164
-
165
- 如需把建议写入 entry JSON:
166
-
167
- ```powershell
168
- powershell.exe -Command "python '<skill-dir>\scripts\harness_knowledge.py' suggest-validators --project '<project-root>' --limit 20 --apply"
169
- ```
170
-
171
- 可用 `--status active` / `--status candidate` 限定生命周期状态。建议写入后应运行 `verify --project <project-root>`,确认 validator 能实际通过。
172
-
173
- ### Promote candidate to active
174
-
175
- ```powershell
176
- powershell.exe -Command "python '<skill-dir>\scripts\harness_knowledge.py' promote --project '<project-root>' --id '<entry-id>' --note '<人工确认说明>'"
177
- ```
178
-
179
- **发布门禁(archive publication gate)**:promote / judge apply / autoPromote 只处理
180
- knowledge publication 证据通过的条目。它与归档 release status 独立:归档为 WARN 但
181
- source consistency 与 authoritative pointer/hash 均通过时,知识可以发布,同时保留
182
- `archiveReleaseEligibility` advisory。以下来源归档会被阻断并在条目上标记
183
- `lifecycle.publishBlocked`:
184
-
185
- - 归档 summary 缺少 `reportPipeline.sourceConsistency`(source consistency 未运行)或 `ok=false`;
186
- - `derived/authoritative.json` pointer 缺失、版本目录不可读,或 repair record / pointer 的 summary hash 不匹配(DEGRADED)。
187
-
188
- 修复路径:优先运行本 skill 的 `repair legacy-publication-gates`。只有 summary/hash/source
189
- commit 都可证明时才生成 attestation;否则输出 `needsConfirmation`。也可由 archive repair
190
- 生成通过 validator 的新 derived version,再重新 ingest。
191
-
192
- 将一条 `candidate` 提升为 `active`,写入:
193
-
194
- ```text
195
- .harness/knowledge/entries/active/<entry-id>.json
196
- ```
197
-
198
- 提升后会自动重建索引,并保留 active 条目。后续重新 ingest 时,同 ID 的 active 条目会覆盖自动生成的 candidate 条目。
199
-
200
- 默认禁止提升 `stale`。如果人工已经重新验证,可显式使用:
201
-
202
- ```powershell
203
- powershell.exe -Command "python '<skill-dir>\scripts\harness_knowledge.py' promote --project '<project-root>' --id '<entry-id>' --note '<验证说明>' --allow-stale"
204
- ```
205
-
206
- ### Demote active after manual review
207
-
208
- ```powershell
209
- powershell.exe -Command "python '<skill-dir>\scripts\harness_knowledge.py' demote --project '<project-root>' --id '<entry-id>' --status stale --reason '<人工复核说明>'"
210
- ```
211
-
212
- `demote` 只处理人工确认后的 `active` 条目,可降级到 `stale` 或 `candidate`。降级到 `stale` 时会写入 `manual demotion` stale reason,并在后续 ingest 中保留该人工维护条目。
213
-
214
- ### activeLifecycle 与 validator auto-demotion
215
-
216
- `auto` 首建的 `config.json` **默认已启用** `activeLifecycle.autoDemote` 与 `knowledgeValidation.autoDemoteActive`。已有项目不会强制覆盖。手动启用示例:
217
-
218
- ```json
219
- {
220
- "activeLifecycle": {
221
- "autoDemote": true,
222
- "targetStatus": "stale"
223
- },
224
- "knowledgeValidation": {
225
- "enabled": true,
226
- "autoDemoteActive": true,
227
- "defaultTargetStatus": "stale"
228
- }
229
- }
230
- ```
231
-
232
- 启用后,ingest/verify 会把需复核或 validator 失败的 active 自动降级,并写入 `lifecycle` 审计字段。
233
-
234
- ### Optional confidence scoring and autoPromote
235
-
236
- `ingest` 会为每个 entry 写入解释型 `confidence`,包含:
237
-
238
- ```json
239
- {
240
- "confidence": {
241
- "score": 0.82,
242
- "level": "high",
243
- "signals": ["type_bonus:decision", "source_files_present:+0.03"],
244
- "lastCalculatedAt": "2026-07-01T12:00:00Z"
245
- }
246
- }
247
- ```
248
-
249
- confidence 不是“绝对正确率”,只表示当前证据强弱。分数会受条目类型、来源文件、时间衰减、stale/superseded/conflicted、validator 通过/失败、来源文件变更等信号影响。
250
-
251
- `ingest` 单独执行时不会替项目首建策略文件;`auto` 首次发现项目没有 `.harness/knowledge/config.json` 时,会写入以下启用版配置并立即应用:
252
-
253
- ```json
254
- {
255
- "autoPromote": {
256
- "enabled": true,
257
- "minConfidence": 0.82,
258
- "allowedTypes": ["decision", "api-contract", "requirement", "pitfall"],
259
- "requireValidators": false,
260
- "allowStale": false,
261
- "maxPerRun": 50
262
- },
263
- "confidence": {
264
- "ttlHalfLifeDays": 45,
265
- "sourceChangePenalty": 0.25,
266
- "stalePenalty": 0.35,
267
- "validatorPassBonus": 0.15,
268
- "validatorFailPenalty": 0.5,
269
- "supersededPenalty": 0.8,
270
- "conflictPenalty": 0.8
271
- },
272
- "activeLifecycle": {
273
- "autoDemote": true,
274
- "targetStatus": "stale"
275
- },
276
- "knowledgeValidation": {
277
- "enabled": true,
278
- "autoDemoteActive": true,
279
- "defaultTargetStatus": "stale",
280
- "allowCommandValidators": false,
281
- "commandTimeoutSeconds": 60
282
- },
283
- "judge": {
284
- "maxCandidatesPerRun": 100
285
- }
286
- }
287
- ```
288
-
289
- 自动提升只处理配置允许的类型,默认排除 stale/conflicted/superseded,且会写入 `lifecycle.autoPromoted=true`、`promotionNote` 和 `promotedAt`。一次性实现细节、测试证据、风险提醒仍不应自动提升为长期事实。
290
-
291
- ### Optional validator auto-demotion(旧文档兼容)
292
-
293
- 默认不会因为 validator 失败自动改写 `active`。如明确希望确定性 validator 失败时自动降级 active,可在 `.harness/knowledge/config.json` 中启用:
294
-
295
- ```json
296
- {
297
- "knowledgeValidation": {
298
- "enabled": true,
299
- "autoDemoteActive": true,
300
- "defaultTargetStatus": "stale",
301
- "allowCommandValidators": false
302
- }
303
- }
304
- ```
305
-
306
- 启用后,`ingest` 和 `verify` 会把 validator 失败的 active 条目移动到 `defaultTargetStatus`,记录 `lifecycle.validation`,并写入 `validator failed:` stale reason。该机制适合代码事实、文件存在性、符号存在性、可重复命令等确定性事实;业务意图和团队取舍仍应保持为 candidate 或人工确认后的 active。
307
-
308
- ### MCP entry point
309
-
310
- ```powershell
311
- powershell.exe -Command "python '<skill-dir>\scripts\harness_knowledge_mcp.py' --describe-tools"
312
- powershell.exe -Command "python '<skill-dir>\scripts\harness_knowledge_mcp.py'"
313
- ```
314
-
315
- `harness_knowledge_mcp.py` 默认以 stdio 运行 `FastMCP`,暴露:
316
-
317
- - `harness_knowledge_ingest`
318
- - `harness_knowledge_sync`
319
- - `harness_knowledge_auto`
320
- - `harness_knowledge_audit`
321
- - `harness_knowledge_verify`
322
- - `harness_knowledge_suggest_validators`
323
- - `harness_knowledge_query`
324
- - `harness_knowledge_promote`
325
- - `harness_knowledge_demote`
326
-
327
- ## 变更日志
328
-
329
- ## v1.15 补充能力(sync/knowledge retrospective hardening)
330
-
331
- - 默认无参数进入 `auto`;新增严格只读 `status`、`sync --check`、`repair all` 与
332
- `admin <legacy-command>` 兼容入口。
333
- - 显式 `knowledgeCandidates[]` 为首选来源,process observation 不再进入长期知识。
334
- - 内容去重改为归一化指纹;冲突要求共同实体、来源范围与双方 evidence。
335
- - freshness 与 health 分离,health 按 lifecycle/review/publication/validation 正交报告。
336
- - judge 输出完整 `requiredDecisionCount`、有界 `previewCount` 和 `quarantinedCount`;
337
- blocked 条目不进入 judge;defer 绑定证据指纹。
338
- - knowledge publication gate 与 archive release status 解耦,legacy gate 仅在可证明时修复。
339
- - judge/rollback 等 JSON 报告采用 content-addressed 文件、`latest-*` 指针与有界保留;
340
- rollback snapshot 使用 gzip。
341
- - validator 建议输出 `eligible/selected/applied/remaining/unavailable`。
342
-
343
- ## v1.7 补充能力
344
-
345
- 当前脚本额外支持:
346
-
347
- - `audit --project <root> --limit <n>`:生成 `.harness/knowledge/reports/audit-report-*.md`,包含 `Candidate Review`、`Stale Review`、`Superseded Review`、`Conflict Review`。
348
- - `entries/superseded/*.json`:当后续 archive 与旧条目有重叠文件且类型相近时,非 active 自动生成条目会被标记为 `superseded`,并写入 `lifecycle.supersededBy`。
349
- - `entries/conflicted/*.json`:当同文件、同知识类型、共享主题词且出现“唯一来源/复用”与“不再/替代/改为”等相反信号时,非 active 自动生成条目会被标记为 `conflicted`,并写入 `lifecycle.conflictsWith`。
350
- - 后续 archive 的 verification 出现失败或 pass ratio 降级时,旧的重叠 `test-evidence` 会标记为 `stale`,并写入 `newer verification degraded` stale reason。
351
- - 默认增量 ingest:未变化 archive 复用 `.harness/knowledge/cache/archive-entries/*.json` 原始抽取缓存;`--no-incremental` 可强制全量重抽取。
352
- - `scripts/harness_knowledge_mcp.py` 提供 stdio MCP server 入口和 `--describe-tools` 工具元数据输出。
353
- - `audit` 新增 `Active Review`,当 `active` 条目被后续重叠 archive、潜在冲突或 verification 降级影响时,生成人工复核清单,但不会自动改写 active。
354
- - `demote --id <entry-id> --status stale|candidate --reason <说明>`:人工确认后显式降级 active 条目,降级记录跨后续 ingest 保留。
355
- - `.harness/knowledge/views/active-review.md`:列出需要人工复核的 active 条目。
356
- - `.harness/knowledge/views/knowledge.base`:Obsidian Bases 入口,按 lifecycle folder 浏览 `.harness/knowledge/entries/**/*.json`。
357
- - `mcp-config.example.json`:MCP client 配置示例。
358
- - `evaluations/harness_knowledge_evaluation.xml` 和 `tests/fixtures/mcp-eval-project/`:固定 MCP evaluation fixture,便于后续用 evaluation harness 跑稳定问答。
359
- - `verify` 命令与 `harness_knowledge_verify` MCP 工具:执行 entry-level `validators[]`,刷新 `lifecycle.validation`,生成 `verification-report-*`。
360
- - `suggest-validators` 命令与 `harness_knowledge_suggest_validators` MCP 工具:从 entry 的 sourceFiles 和代码内容生成 validator 建议;默认只写报告,`--apply` 才写回条目。
361
- - `views/superseded-items.md`:列出被后续归档取代的知识条目。
362
- - `views/conflicted-items.md`:列出需要人工确认的潜在冲突知识条目。
363
- - SQLite 新增 `entry_files(entry_id, source_file)` 表和 `idx_entry_files_source_file`,文件路径查询不再只依赖 JSON LIKE。
364
- - `.harness/knowledge/config.json` 支持 `staleTtlDays`:当归档日期超过 TTL 时,非 `active`/`superseded` 条目会标记为 `stale`,并写入 `ttl expired` stale reason。
365
-
366
- 限制:
367
-
368
- - `superseded` 目前是保守启发式,不自动改写人工确认的 `active`。
369
- - `conflicted` 目前也是保守启发式,优先减少误报;人工确认的 `active` 不会被自动移动。
370
- - 后续 verification 降级默认只自动处理非 active 的 `test-evidence`;active 通过 `Active Review` 提醒。只有显式启用 `activeLifecycle.autoDemote` 或 `knowledgeValidation.autoDemoteActive` 后才会自动降级 active。
371
- - MCP evaluation fixture 是本 skill 的固定测试项目,不代表真实项目质量;真实项目仍需单独 smoke。
372
- - `audit` 只生成审核清单,不自动 promote。
373
-
374
- ## v1.9 补充能力
375
-
376
- - Entry 可显式声明 `validators[]`,当前支持 `file_exists`、`file_contains`、`symbol_exists`、`command`。
377
- - `command` validator 默认禁用,避免知识库条目隐式执行任意命令。
378
- - `verify --project <root>` 不重抽 archive,只对当前知识条目执行 validator,并刷新 manifest、SQLite、views 和 verification report。
379
- - `ingest` 也会执行 validator;当 `knowledgeValidation.autoDemoteActive=true` 时,失败的 active 自动降级到 `defaultTargetStatus`。
380
- - `suggest-validators` 默认生成只读建议报告;`--apply` 后写入 validators,并可立刻由 `verify` 检查。
381
- - 单测扩展到 22 个,覆盖 validator 自动降级、verify 命令、suggest-validators、MCP verify/suggest 工具描述,以及 verify 刷新时保留 SQLite 基线条目。
382
-
383
- ## v1.11 补充能力
384
-
385
- - `auto --project <root>`:一条命令完成默认安全维护流程:`sync --update`、只读 `suggest-validators`、`verify`、`audit`。
386
- - MCP 新增 `harness_knowledge_auto`,给 agent 直接调用同一套维护流程。
387
- - 默认 `auto` 不会写回 validator 建议;只有显式传入 `--apply-suggestions` 才会修改 entry JSON,并随后由 `verify` 检查。
388
- - `--suggest-status active|candidate` 可限制写入或建议范围;建议真实项目首次使用仍优先只读跑报告。
389
- - 单测扩展到 24 个,覆盖 `auto` 的只读默认路径、显式 apply 路径,以及 MCP tool metadata。
390
-
391
- ## v1.12 补充能力
392
-
393
- - `ingest` 为所有 entry 写入 `confidence.score`、`confidence.level`、`confidence.signals` 和 `lastCalculatedAt`,让 agent 可以按证据强弱排序和解释判断。
394
- - `.harness/knowledge/config.json` 支持 `autoPromote`:默认关闭,显式启用后只会提升配置允许类型中满足 `minConfidence` 的 candidate。
395
- - autoPromote 默认排除 stale/conflicted/superseded,不处理一次性 implementation、test-evidence、risk;自动提升会记录 `lifecycle.autoPromoted=true`、`promotionNote` 和 `promotedAt`。
396
- - `confidence` 配置支持时间衰减、来源变更、stale、validator、superseded/conflict 等惩罚或奖励,目标是减少人工筛选量,不是假装机器可以判断所有知识真伪。
397
- - `index.json.ingestMode` 和 ingest report 新增 `confidenceScored`、`candidateAutoPromoted`,便于 agent 在运行后直接报告结果。
398
- - 单测扩展到 34 个,覆盖 confidence 元数据、autoPromote 配置门槛、stale/age 置信度惩罚,以及既有 lifecycle/validator/auto/MCP 路径。
399
-
400
- ## v1.13 补充能力
401
-
402
- - `auto --project <root>` 首次发现 `.harness/knowledge/config.json` 不存在时,会自动写入启用版 `autoPromote` + `confidence` 配置。
403
- - 如果写入 config 时现有 index 已经 `upToDate=true`,`auto` 会主动重建一次索引,让自动提升在本轮生效,而不是等下一次运行。
404
- - `auto` JSON 输出新增 `config` 摘要:`path`、`created`、`autoPromoteEnabled`、`appliedBy`、`candidateAutoPromoted`。
405
- - `ingest` 单独命令仍不首建 config;项目策略的自动首建只发生在 `auto` 维护入口。
406
- - 单测扩展到 35 个,覆盖“已有最新 index 但缺 config 时,auto 首建启用配置并立即提升”的路径。
407
-
408
- ## v1.14 补充能力(knowledge-auto-close-loop)
409
-
410
- - `auto` **默认写回** validator 建议(`--no-apply-suggestions` 可关闭);JSON 新增 `lifecycle` 摘要。
411
- - 首建 `config.json` 默认含 `activeLifecycle.autoDemote`、`knowledgeValidation.autoDemoteActive`、`judge.maxCandidatesPerRun=100`。
412
- - SKILL 工作流:`auto` 后由 **Agent** 执行 `judge export` → 裁决 → `judge apply`;禁止默认输出人工待办清单。
413
- - `harness-sync` 明确知识闭环主入口为 `/harness-knowledge-ingest auto`。