@hunter-harness/workflow-harness 0.3.1 → 0.4.1

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 (402) 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-archive/reference.md +30 -1
  4. package/harness/bundles/general/claude-code/harness-archive/templates/summary-data-template.json +1 -0
  5. package/harness/bundles/general/claude-code/harness-codebase-map/SKILL.md +1 -1
  6. package/harness/bundles/general/claude-code/harness-execute/SKILL.md +1 -1
  7. package/harness/bundles/general/claude-code/harness-knowledge-ingest/SKILL.md +1 -1
  8. package/harness/bundles/general/claude-code/harness-knowledge-query/SKILL.md +1 -1
  9. package/harness/bundles/general/claude-code/harness-plan/SKILL.md +1 -1
  10. package/harness/bundles/general/claude-code/harness-pull/SKILL.md +1 -1
  11. package/harness/bundles/general/claude-code/harness-push/SKILL.md +1 -1
  12. package/harness/bundles/general/claude-code/harness-review/SKILL.md +1 -1
  13. package/harness/bundles/general/claude-code/harness-run/SKILL.md +1 -1
  14. package/harness/bundles/general/claude-code/harness-submit/SKILL.md +1 -1
  15. package/harness/bundles/general/claude-code/harness-sync/SKILL.md +1 -1
  16. package/harness/bundles/general/claude-code/harness-test/SKILL.md +1 -1
  17. package/harness/bundles/general/claude-code/scripts/harness_archive.py +146 -8
  18. package/harness/bundles/general/claude-code/scripts/harness_deploy.py +1 -1
  19. package/harness/bundles/general/claude-code/scripts/harness_knowledge_candidates.py +538 -4
  20. package/harness/bundles/general/codebuddy/.harness-build.json +1 -1
  21. package/harness/bundles/general/codebuddy/harness-archive/SKILL.md +1 -1
  22. package/harness/bundles/general/codebuddy/harness-archive/reference.md +30 -1
  23. package/harness/bundles/general/codebuddy/harness-archive/templates/summary-data-template.json +1 -0
  24. package/harness/bundles/general/codebuddy/harness-codebase-map/SKILL.md +1 -1
  25. package/harness/bundles/general/codebuddy/harness-execute/SKILL.md +1 -1
  26. package/harness/bundles/general/codebuddy/harness-knowledge-ingest/SKILL.md +1 -1
  27. package/harness/bundles/general/codebuddy/harness-knowledge-query/SKILL.md +1 -1
  28. package/harness/bundles/general/codebuddy/harness-plan/SKILL.md +1 -1
  29. package/harness/bundles/general/codebuddy/harness-pull/SKILL.md +1 -1
  30. package/harness/bundles/general/codebuddy/harness-push/SKILL.md +1 -1
  31. package/harness/bundles/general/codebuddy/harness-review/SKILL.md +1 -1
  32. package/harness/bundles/general/codebuddy/harness-run/SKILL.md +1 -1
  33. package/harness/bundles/general/codebuddy/harness-submit/SKILL.md +1 -1
  34. package/harness/bundles/general/codebuddy/harness-sync/SKILL.md +1 -1
  35. package/harness/bundles/general/codebuddy/harness-test/SKILL.md +1 -1
  36. package/harness/bundles/general/codebuddy/scripts/harness_archive.py +146 -8
  37. package/harness/bundles/general/codebuddy/scripts/harness_deploy.py +1 -1
  38. package/harness/bundles/general/codebuddy/scripts/harness_knowledge_candidates.py +538 -4
  39. package/harness/bundles/general/codex/.harness-build.json +1 -1
  40. package/harness/bundles/general/codex/harness-archive/SKILL.md +1 -1
  41. package/harness/bundles/general/codex/harness-archive/reference.md +30 -1
  42. package/harness/bundles/general/codex/harness-archive/templates/summary-data-template.json +1 -0
  43. package/harness/bundles/general/codex/harness-codebase-map/SKILL.md +1 -1
  44. package/harness/bundles/general/codex/harness-execute/SKILL.md +1 -1
  45. package/harness/bundles/general/codex/harness-knowledge-ingest/SKILL.md +1 -1
  46. package/harness/bundles/general/codex/harness-knowledge-query/SKILL.md +1 -1
  47. package/harness/bundles/general/codex/harness-plan/SKILL.md +1 -1
  48. package/harness/bundles/general/codex/harness-pull/SKILL.md +1 -1
  49. package/harness/bundles/general/codex/harness-push/SKILL.md +1 -1
  50. package/harness/bundles/general/codex/harness-review/SKILL.md +1 -1
  51. package/harness/bundles/general/codex/harness-run/SKILL.md +1 -1
  52. package/harness/bundles/general/codex/harness-submit/SKILL.md +1 -1
  53. package/harness/bundles/general/codex/harness-sync/SKILL.md +1 -1
  54. package/harness/bundles/general/codex/harness-test/SKILL.md +1 -1
  55. package/harness/bundles/general/codex/scripts/harness_archive.py +146 -8
  56. package/harness/bundles/general/codex/scripts/harness_deploy.py +1 -1
  57. package/harness/bundles/general/codex/scripts/harness_knowledge_candidates.py +538 -4
  58. package/harness/bundles/general/cursor/.harness-build.json +1 -1
  59. package/harness/bundles/general/cursor/harness-archive/SKILL.md +1 -1
  60. package/harness/bundles/general/cursor/harness-archive/reference.md +30 -1
  61. package/harness/bundles/general/cursor/harness-archive/templates/summary-data-template.json +1 -0
  62. package/harness/bundles/general/cursor/harness-codebase-map/SKILL.md +1 -1
  63. package/harness/bundles/general/cursor/harness-execute/SKILL.md +1 -1
  64. package/harness/bundles/general/cursor/harness-knowledge-ingest/SKILL.md +1 -1
  65. package/harness/bundles/general/cursor/harness-knowledge-query/SKILL.md +1 -1
  66. package/harness/bundles/general/cursor/harness-plan/SKILL.md +1 -1
  67. package/harness/bundles/general/cursor/harness-pull/SKILL.md +1 -1
  68. package/harness/bundles/general/cursor/harness-push/SKILL.md +1 -1
  69. package/harness/bundles/general/cursor/harness-review/SKILL.md +1 -1
  70. package/harness/bundles/general/cursor/harness-run/SKILL.md +1 -1
  71. package/harness/bundles/general/cursor/harness-submit/SKILL.md +1 -1
  72. package/harness/bundles/general/cursor/harness-sync/SKILL.md +1 -1
  73. package/harness/bundles/general/cursor/harness-test/SKILL.md +1 -1
  74. package/harness/bundles/general/cursor/scripts/harness_archive.py +146 -8
  75. package/harness/bundles/general/cursor/scripts/harness_deploy.py +1 -1
  76. package/harness/bundles/general/cursor/scripts/harness_knowledge_candidates.py +538 -4
  77. package/harness/bundles/general/pi/.harness-build.json +6 -0
  78. package/harness/bundles/general/pi/CONTEXT.md +98 -0
  79. package/harness/bundles/general/pi/README.md +478 -0
  80. package/harness/bundles/general/pi/contracts/build-profile-v3.schema.json +302 -0
  81. package/harness/bundles/general/pi/contracts/ci-metrics.schema.json +36 -0
  82. package/harness/bundles/general/pi/contracts/doctor-capability.schema.json +43 -0
  83. package/harness/bundles/general/pi/contracts/external-platform-observation.schema.json +62 -0
  84. package/harness/bundles/general/pi/contracts/fixtures/managed-execution.json +341 -0
  85. package/harness/bundles/general/pi/contracts/process-identity.schema.json +132 -0
  86. package/harness/bundles/general/pi/contracts/run-session.schema.json +142 -0
  87. package/harness/bundles/general/pi/contracts/service-retirement-receipt.schema.json +85 -0
  88. package/harness/bundles/general/pi/contracts/service-session.schema.json +147 -0
  89. package/harness/bundles/general/pi/contracts/workflow-policy.json +574 -0
  90. package/harness/bundles/general/pi/harness-archive/SKILL.md +322 -0
  91. package/harness/bundles/general/pi/harness-archive/checklist.md +71 -0
  92. package/harness/bundles/general/pi/harness-archive/reference.md +150 -0
  93. package/harness/bundles/general/pi/harness-archive/scripts/gen-manifest.ps1 +31 -0
  94. package/harness/bundles/general/pi/harness-archive/templates/summary-data-template.json +218 -0
  95. package/harness/bundles/general/pi/harness-codebase-map/SKILL.md +116 -0
  96. package/harness/bundles/general/pi/harness-codebase-map/checklist.md +126 -0
  97. package/harness/bundles/general/pi/harness-codebase-map/reference.md +364 -0
  98. package/harness/bundles/general/pi/harness-codebase-map/templates/ARCHITECTURE.md +57 -0
  99. package/harness/bundles/general/pi/harness-codebase-map/templates/CONCERNS.md +49 -0
  100. package/harness/bundles/general/pi/harness-codebase-map/templates/CONVENTIONS.md +57 -0
  101. package/harness/bundles/general/pi/harness-codebase-map/templates/INTEGRATIONS.md +52 -0
  102. package/harness/bundles/general/pi/harness-codebase-map/templates/STACK.md +55 -0
  103. package/harness/bundles/general/pi/harness-codebase-map/templates/STRUCTURE.md +69 -0
  104. package/harness/bundles/general/pi/harness-codebase-map/templates/TESTING.md +64 -0
  105. package/harness/bundles/general/pi/harness-codebase-map/templates/map-manifest.schema.json +73 -0
  106. package/harness/bundles/general/pi/harness-codebase-map/templates/map-summary.md +64 -0
  107. package/harness/bundles/general/pi/harness-execute/SKILL.md +170 -0
  108. package/harness/bundles/general/pi/harness-knowledge-ingest/SKILL.md +103 -0
  109. package/harness/bundles/general/pi/harness-knowledge-query/SKILL.md +97 -0
  110. package/harness/bundles/general/pi/harness-plan/SKILL.md +158 -0
  111. package/harness/bundles/general/pi/harness-plan/checklist.md +243 -0
  112. package/harness/bundles/general/pi/harness-plan/protocols.md +133 -0
  113. package/harness/bundles/general/pi/harness-plan/reference.md +468 -0
  114. package/harness/bundles/general/pi/harness-pull/SKILL.md +55 -0
  115. package/harness/bundles/general/pi/harness-push/SKILL.md +83 -0
  116. package/harness/bundles/general/pi/harness-review/SKILL.md +175 -0
  117. package/harness/bundles/general/pi/harness-review/checklist.md +124 -0
  118. package/harness/bundles/general/pi/harness-review/protocols.md +69 -0
  119. package/harness/bundles/general/pi/harness-review/reference.md +114 -0
  120. package/harness/bundles/general/pi/harness-run/SKILL.md +188 -0
  121. package/harness/bundles/general/pi/harness-run/checklist.md +279 -0
  122. package/harness/bundles/general/pi/harness-run/protocols.md +141 -0
  123. package/harness/bundles/general/pi/harness-run/reference.md +886 -0
  124. package/harness/bundles/general/pi/harness-submit/SKILL.md +182 -0
  125. package/harness/bundles/general/pi/harness-submit/checklist.md +452 -0
  126. package/harness/bundles/general/pi/harness-submit/reference.md +152 -0
  127. package/harness/bundles/general/pi/harness-sync/SKILL.md +72 -0
  128. package/harness/bundles/general/pi/harness-sync/reference.md +176 -0
  129. package/harness/bundles/general/pi/harness-test/SKILL.md +250 -0
  130. package/harness/bundles/general/pi/harness-test/checklist.md +359 -0
  131. package/harness/bundles/general/pi/harness-test/pitfalls-java.md +14 -0
  132. package/harness/bundles/general/pi/harness-test/pitfalls.md +307 -0
  133. package/harness/bundles/general/pi/harness-test/reference.md +880 -0
  134. package/harness/bundles/general/pi/harness-test/scripts/runtime-helpers.mjs +216 -0
  135. package/harness/bundles/general/pi/protocols/archive-report-protocol.md +196 -0
  136. package/harness/bundles/general/pi/protocols/ci-layering-protocol.md +22 -0
  137. package/harness/bundles/general/pi/protocols/evidence-based-reporting-protocol.md +134 -0
  138. package/harness/bundles/general/pi/protocols/execution-session-protocol.md +52 -0
  139. package/harness/bundles/general/pi/protocols/external-platform-protocol.md +27 -0
  140. package/harness/bundles/general/pi/protocols/ledger-protocol.md +365 -0
  141. package/harness/bundles/general/pi/protocols/memory-closeout-protocol.md +21 -0
  142. package/harness/bundles/general/pi/protocols/model-routing-protocol.md +22 -0
  143. package/harness/bundles/general/pi/protocols/powershell-protocol.md +238 -0
  144. package/harness/bundles/general/pi/protocols/registry-governance-protocol.md +31 -0
  145. package/harness/bundles/general/pi/protocols/report-pipeline-protocol.md +172 -0
  146. package/harness/bundles/general/pi/protocols/sensitive-info-protocol.md +110 -0
  147. package/harness/bundles/general/pi/protocols/state-layout-protocol.md +209 -0
  148. package/harness/bundles/general/pi/protocols/submit-protocol.md +78 -0
  149. package/harness/bundles/general/pi/protocols/verification-graph-protocol.md +32 -0
  150. package/harness/bundles/general/pi/scripts/harness_adoption_metrics.py +391 -0
  151. package/harness/bundles/general/pi/scripts/harness_apidoc.py +53 -0
  152. package/harness/bundles/general/pi/scripts/harness_archive.py +11345 -0
  153. package/harness/bundles/general/pi/scripts/harness_change.py +1626 -0
  154. package/harness/bundles/general/pi/scripts/harness_check_gate.py +113 -0
  155. package/harness/bundles/general/pi/scripts/harness_context.py +1774 -0
  156. package/harness/bundles/general/pi/scripts/harness_deploy.py +968 -0
  157. package/harness/bundles/general/pi/scripts/harness_efficiency.py +443 -0
  158. package/harness/bundles/general/pi/scripts/harness_environment.py +1690 -0
  159. package/harness/bundles/general/pi/scripts/harness_events.py +2234 -0
  160. package/harness/bundles/general/pi/scripts/harness_events_sync.py +1425 -0
  161. package/harness/bundles/general/pi/scripts/harness_execution_contracts.py +596 -0
  162. package/harness/bundles/general/pi/scripts/harness_fixback.py +1975 -0
  163. package/harness/bundles/general/pi/scripts/harness_gate.py +3816 -0
  164. package/harness/bundles/general/pi/scripts/harness_headless.py +37 -0
  165. package/harness/bundles/general/pi/scripts/harness_integration.py +2564 -0
  166. package/harness/bundles/general/pi/scripts/harness_knowledge_candidates.py +796 -0
  167. package/harness/bundles/general/pi/scripts/harness_ledger.py +3556 -0
  168. package/harness/bundles/general/pi/scripts/harness_migration_head.py +220 -0
  169. package/harness/bundles/general/pi/scripts/harness_orchestration.py +344 -0
  170. package/harness/bundles/general/pi/scripts/harness_paths.py +676 -0
  171. package/harness/bundles/general/pi/scripts/harness_phase.py +1726 -0
  172. package/harness/bundles/general/pi/scripts/harness_plan_aggregate.py +249 -0
  173. package/harness/bundles/general/pi/scripts/harness_plan_finalize.py +1016 -0
  174. package/harness/bundles/general/pi/scripts/harness_preflight.py +650 -0
  175. package/harness/bundles/general/pi/scripts/harness_process.py +1065 -0
  176. package/harness/bundles/general/pi/scripts/harness_profile.py +1817 -0
  177. package/harness/bundles/general/pi/scripts/harness_report_model.py +442 -0
  178. package/harness/bundles/general/pi/scripts/harness_retry.py +175 -0
  179. package/harness/bundles/general/pi/scripts/harness_review.py +631 -0
  180. package/harness/bundles/general/pi/scripts/harness_runtime.py +2243 -0
  181. package/harness/bundles/general/pi/scripts/harness_service.py +3355 -0
  182. package/harness/bundles/general/pi/scripts/harness_state.py +365 -0
  183. package/harness/bundles/general/pi/scripts/harness_sync.py +407 -0
  184. package/harness/bundles/general/pi/scripts/harness_test_cleanup.py +175 -0
  185. package/harness/bundles/general/pi/scripts/harness_test_guard.py +1899 -0
  186. package/harness/bundles/general/pi/scripts/harness_test_runner.py +1586 -0
  187. package/harness/bundles/general/pi/scripts/harness_verification.py +593 -0
  188. package/harness/bundles/general/pi/scripts/harness_workflow_policy.py +266 -0
  189. package/harness/bundles/java/claude-code/.harness-build.json +1 -1
  190. package/harness/bundles/java/claude-code/harness-apidoc/SKILL.md +1 -1
  191. package/harness/bundles/java/claude-code/harness-archive/SKILL.md +1 -1
  192. package/harness/bundles/java/claude-code/harness-archive/reference.md +30 -1
  193. package/harness/bundles/java/claude-code/harness-archive/templates/summary-data-template.json +1 -0
  194. package/harness/bundles/java/claude-code/harness-codebase-map/SKILL.md +1 -1
  195. package/harness/bundles/java/claude-code/harness-execute/SKILL.md +1 -1
  196. package/harness/bundles/java/claude-code/harness-knowledge-ingest/SKILL.md +1 -1
  197. package/harness/bundles/java/claude-code/harness-knowledge-query/SKILL.md +1 -1
  198. package/harness/bundles/java/claude-code/harness-package/SKILL.md +1 -1
  199. package/harness/bundles/java/claude-code/harness-plan/SKILL.md +1 -1
  200. package/harness/bundles/java/claude-code/harness-pull/SKILL.md +1 -1
  201. package/harness/bundles/java/claude-code/harness-push/SKILL.md +1 -1
  202. package/harness/bundles/java/claude-code/harness-review/SKILL.md +1 -1
  203. package/harness/bundles/java/claude-code/harness-run/SKILL.md +1 -1
  204. package/harness/bundles/java/claude-code/harness-submit/SKILL.md +1 -1
  205. package/harness/bundles/java/claude-code/harness-sync/SKILL.md +1 -1
  206. package/harness/bundles/java/claude-code/harness-test/SKILL.md +1 -1
  207. package/harness/bundles/java/claude-code/scripts/harness_archive.py +146 -8
  208. package/harness/bundles/java/claude-code/scripts/harness_deploy.py +1 -1
  209. package/harness/bundles/java/claude-code/scripts/harness_knowledge_candidates.py +538 -4
  210. package/harness/bundles/java/codebuddy/.harness-build.json +1 -1
  211. package/harness/bundles/java/codebuddy/harness-apidoc/SKILL.md +1 -1
  212. package/harness/bundles/java/codebuddy/harness-archive/SKILL.md +1 -1
  213. package/harness/bundles/java/codebuddy/harness-archive/reference.md +30 -1
  214. package/harness/bundles/java/codebuddy/harness-archive/templates/summary-data-template.json +1 -0
  215. package/harness/bundles/java/codebuddy/harness-codebase-map/SKILL.md +1 -1
  216. package/harness/bundles/java/codebuddy/harness-execute/SKILL.md +1 -1
  217. package/harness/bundles/java/codebuddy/harness-knowledge-ingest/SKILL.md +1 -1
  218. package/harness/bundles/java/codebuddy/harness-knowledge-query/SKILL.md +1 -1
  219. package/harness/bundles/java/codebuddy/harness-package/SKILL.md +1 -1
  220. package/harness/bundles/java/codebuddy/harness-plan/SKILL.md +1 -1
  221. package/harness/bundles/java/codebuddy/harness-pull/SKILL.md +1 -1
  222. package/harness/bundles/java/codebuddy/harness-push/SKILL.md +1 -1
  223. package/harness/bundles/java/codebuddy/harness-review/SKILL.md +1 -1
  224. package/harness/bundles/java/codebuddy/harness-run/SKILL.md +1 -1
  225. package/harness/bundles/java/codebuddy/harness-submit/SKILL.md +1 -1
  226. package/harness/bundles/java/codebuddy/harness-sync/SKILL.md +1 -1
  227. package/harness/bundles/java/codebuddy/harness-test/SKILL.md +1 -1
  228. package/harness/bundles/java/codebuddy/scripts/harness_archive.py +146 -8
  229. package/harness/bundles/java/codebuddy/scripts/harness_deploy.py +1 -1
  230. package/harness/bundles/java/codebuddy/scripts/harness_knowledge_candidates.py +538 -4
  231. package/harness/bundles/java/codex/.harness-build.json +1 -1
  232. package/harness/bundles/java/codex/harness-apidoc/SKILL.md +1 -1
  233. package/harness/bundles/java/codex/harness-archive/SKILL.md +1 -1
  234. package/harness/bundles/java/codex/harness-archive/reference.md +30 -1
  235. package/harness/bundles/java/codex/harness-archive/templates/summary-data-template.json +1 -0
  236. package/harness/bundles/java/codex/harness-codebase-map/SKILL.md +1 -1
  237. package/harness/bundles/java/codex/harness-execute/SKILL.md +1 -1
  238. package/harness/bundles/java/codex/harness-knowledge-ingest/SKILL.md +1 -1
  239. package/harness/bundles/java/codex/harness-knowledge-query/SKILL.md +1 -1
  240. package/harness/bundles/java/codex/harness-package/SKILL.md +1 -1
  241. package/harness/bundles/java/codex/harness-plan/SKILL.md +1 -1
  242. package/harness/bundles/java/codex/harness-pull/SKILL.md +1 -1
  243. package/harness/bundles/java/codex/harness-push/SKILL.md +1 -1
  244. package/harness/bundles/java/codex/harness-review/SKILL.md +1 -1
  245. package/harness/bundles/java/codex/harness-run/SKILL.md +1 -1
  246. package/harness/bundles/java/codex/harness-submit/SKILL.md +1 -1
  247. package/harness/bundles/java/codex/harness-sync/SKILL.md +1 -1
  248. package/harness/bundles/java/codex/harness-test/SKILL.md +1 -1
  249. package/harness/bundles/java/codex/scripts/harness_archive.py +146 -8
  250. package/harness/bundles/java/codex/scripts/harness_deploy.py +1 -1
  251. package/harness/bundles/java/codex/scripts/harness_knowledge_candidates.py +538 -4
  252. package/harness/bundles/java/cursor/.harness-build.json +1 -1
  253. package/harness/bundles/java/cursor/harness-apidoc/SKILL.md +1 -1
  254. package/harness/bundles/java/cursor/harness-archive/SKILL.md +1 -1
  255. package/harness/bundles/java/cursor/harness-archive/reference.md +30 -1
  256. package/harness/bundles/java/cursor/harness-archive/templates/summary-data-template.json +1 -0
  257. package/harness/bundles/java/cursor/harness-codebase-map/SKILL.md +1 -1
  258. package/harness/bundles/java/cursor/harness-execute/SKILL.md +1 -1
  259. package/harness/bundles/java/cursor/harness-knowledge-ingest/SKILL.md +1 -1
  260. package/harness/bundles/java/cursor/harness-knowledge-query/SKILL.md +1 -1
  261. package/harness/bundles/java/cursor/harness-package/SKILL.md +1 -1
  262. package/harness/bundles/java/cursor/harness-plan/SKILL.md +1 -1
  263. package/harness/bundles/java/cursor/harness-pull/SKILL.md +1 -1
  264. package/harness/bundles/java/cursor/harness-push/SKILL.md +1 -1
  265. package/harness/bundles/java/cursor/harness-review/SKILL.md +1 -1
  266. package/harness/bundles/java/cursor/harness-run/SKILL.md +1 -1
  267. package/harness/bundles/java/cursor/harness-submit/SKILL.md +1 -1
  268. package/harness/bundles/java/cursor/harness-sync/SKILL.md +1 -1
  269. package/harness/bundles/java/cursor/harness-test/SKILL.md +1 -1
  270. package/harness/bundles/java/cursor/scripts/harness_archive.py +146 -8
  271. package/harness/bundles/java/cursor/scripts/harness_deploy.py +1 -1
  272. package/harness/bundles/java/cursor/scripts/harness_knowledge_candidates.py +538 -4
  273. package/harness/bundles/java/pi/.harness-build.json +6 -0
  274. package/harness/bundles/java/pi/CONTEXT.md +98 -0
  275. package/harness/bundles/java/pi/README.md +478 -0
  276. package/harness/bundles/java/pi/contracts/build-profile-v3.schema.json +302 -0
  277. package/harness/bundles/java/pi/contracts/ci-metrics.schema.json +36 -0
  278. package/harness/bundles/java/pi/contracts/doctor-capability.schema.json +43 -0
  279. package/harness/bundles/java/pi/contracts/external-platform-observation.schema.json +62 -0
  280. package/harness/bundles/java/pi/contracts/fixtures/managed-execution.json +341 -0
  281. package/harness/bundles/java/pi/contracts/process-identity.schema.json +132 -0
  282. package/harness/bundles/java/pi/contracts/run-session.schema.json +142 -0
  283. package/harness/bundles/java/pi/contracts/service-retirement-receipt.schema.json +85 -0
  284. package/harness/bundles/java/pi/contracts/service-session.schema.json +147 -0
  285. package/harness/bundles/java/pi/contracts/workflow-policy.json +574 -0
  286. package/harness/bundles/java/pi/harness-apidoc/SKILL.md +97 -0
  287. package/harness/bundles/java/pi/harness-apidoc/checklist.md +142 -0
  288. package/harness/bundles/java/pi/harness-apidoc/reference.md +233 -0
  289. package/harness/bundles/java/pi/harness-archive/SKILL.md +322 -0
  290. package/harness/bundles/java/pi/harness-archive/checklist.md +71 -0
  291. package/harness/bundles/java/pi/harness-archive/reference.md +150 -0
  292. package/harness/bundles/java/pi/harness-archive/scripts/gen-manifest.ps1 +31 -0
  293. package/harness/bundles/java/pi/harness-archive/templates/summary-data-template.json +218 -0
  294. package/harness/bundles/java/pi/harness-codebase-map/SKILL.md +116 -0
  295. package/harness/bundles/java/pi/harness-codebase-map/checklist.md +126 -0
  296. package/harness/bundles/java/pi/harness-codebase-map/reference.md +364 -0
  297. package/harness/bundles/java/pi/harness-codebase-map/templates/ARCHITECTURE.md +57 -0
  298. package/harness/bundles/java/pi/harness-codebase-map/templates/CONCERNS.md +49 -0
  299. package/harness/bundles/java/pi/harness-codebase-map/templates/CONVENTIONS.md +57 -0
  300. package/harness/bundles/java/pi/harness-codebase-map/templates/INTEGRATIONS.md +52 -0
  301. package/harness/bundles/java/pi/harness-codebase-map/templates/STACK.md +55 -0
  302. package/harness/bundles/java/pi/harness-codebase-map/templates/STRUCTURE.md +69 -0
  303. package/harness/bundles/java/pi/harness-codebase-map/templates/TESTING.md +64 -0
  304. package/harness/bundles/java/pi/harness-codebase-map/templates/map-manifest.schema.json +73 -0
  305. package/harness/bundles/java/pi/harness-codebase-map/templates/map-summary.md +64 -0
  306. package/harness/bundles/java/pi/harness-execute/SKILL.md +170 -0
  307. package/harness/bundles/java/pi/harness-knowledge-ingest/SKILL.md +103 -0
  308. package/harness/bundles/java/pi/harness-knowledge-query/SKILL.md +97 -0
  309. package/harness/bundles/java/pi/harness-package/SKILL.md +94 -0
  310. package/harness/bundles/java/pi/harness-package/checklist.md +322 -0
  311. package/harness/bundles/java/pi/harness-package/reference.md +210 -0
  312. package/harness/bundles/java/pi/harness-plan/SKILL.md +158 -0
  313. package/harness/bundles/java/pi/harness-plan/checklist.md +243 -0
  314. package/harness/bundles/java/pi/harness-plan/protocols.md +133 -0
  315. package/harness/bundles/java/pi/harness-plan/reference.md +468 -0
  316. package/harness/bundles/java/pi/harness-pull/SKILL.md +55 -0
  317. package/harness/bundles/java/pi/harness-push/SKILL.md +83 -0
  318. package/harness/bundles/java/pi/harness-review/SKILL.md +175 -0
  319. package/harness/bundles/java/pi/harness-review/checklist.md +124 -0
  320. package/harness/bundles/java/pi/harness-review/protocols.md +69 -0
  321. package/harness/bundles/java/pi/harness-review/reference.md +114 -0
  322. package/harness/bundles/java/pi/harness-run/SKILL.md +206 -0
  323. package/harness/bundles/java/pi/harness-run/checklist.md +252 -0
  324. package/harness/bundles/java/pi/harness-run/protocols.md +141 -0
  325. package/harness/bundles/java/pi/harness-run/reference.md +820 -0
  326. package/harness/bundles/java/pi/harness-submit/SKILL.md +189 -0
  327. package/harness/bundles/java/pi/harness-submit/checklist.md +452 -0
  328. package/harness/bundles/java/pi/harness-submit/reference.md +152 -0
  329. package/harness/bundles/java/pi/harness-sync/SKILL.md +72 -0
  330. package/harness/bundles/java/pi/harness-sync/reference.md +176 -0
  331. package/harness/bundles/java/pi/harness-test/SKILL.md +264 -0
  332. package/harness/bundles/java/pi/harness-test/checklist.md +320 -0
  333. package/harness/bundles/java/pi/harness-test/pitfalls-java.md +16 -0
  334. package/harness/bundles/java/pi/harness-test/pitfalls.md +307 -0
  335. package/harness/bundles/java/pi/harness-test/reference.md +792 -0
  336. package/harness/bundles/java/pi/harness-test/scripts/runtime-helpers.mjs +216 -0
  337. package/harness/bundles/java/pi/protocols/archive-report-protocol.md +196 -0
  338. package/harness/bundles/java/pi/protocols/ci-layering-protocol.md +22 -0
  339. package/harness/bundles/java/pi/protocols/evidence-based-reporting-protocol.md +134 -0
  340. package/harness/bundles/java/pi/protocols/execution-session-protocol.md +52 -0
  341. package/harness/bundles/java/pi/protocols/external-platform-protocol.md +27 -0
  342. package/harness/bundles/java/pi/protocols/ledger-protocol.md +365 -0
  343. package/harness/bundles/java/pi/protocols/memory-closeout-protocol.md +21 -0
  344. package/harness/bundles/java/pi/protocols/model-routing-protocol.md +22 -0
  345. package/harness/bundles/java/pi/protocols/powershell-protocol.md +238 -0
  346. package/harness/bundles/java/pi/protocols/registry-governance-protocol.md +31 -0
  347. package/harness/bundles/java/pi/protocols/report-pipeline-protocol.md +172 -0
  348. package/harness/bundles/java/pi/protocols/sensitive-info-protocol.md +110 -0
  349. package/harness/bundles/java/pi/protocols/state-layout-protocol.md +209 -0
  350. package/harness/bundles/java/pi/protocols/submit-protocol.md +78 -0
  351. package/harness/bundles/java/pi/protocols/verification-graph-protocol.md +32 -0
  352. package/harness/bundles/java/pi/scripts/harness_adoption_metrics.py +391 -0
  353. package/harness/bundles/java/pi/scripts/harness_apidoc.py +53 -0
  354. package/harness/bundles/java/pi/scripts/harness_archive.py +11345 -0
  355. package/harness/bundles/java/pi/scripts/harness_change.py +1626 -0
  356. package/harness/bundles/java/pi/scripts/harness_check_gate.py +113 -0
  357. package/harness/bundles/java/pi/scripts/harness_context.py +1774 -0
  358. package/harness/bundles/java/pi/scripts/harness_deploy.py +968 -0
  359. package/harness/bundles/java/pi/scripts/harness_efficiency.py +443 -0
  360. package/harness/bundles/java/pi/scripts/harness_environment.py +1690 -0
  361. package/harness/bundles/java/pi/scripts/harness_events.py +2234 -0
  362. package/harness/bundles/java/pi/scripts/harness_events_sync.py +1425 -0
  363. package/harness/bundles/java/pi/scripts/harness_execution_contracts.py +596 -0
  364. package/harness/bundles/java/pi/scripts/harness_fixback.py +1975 -0
  365. package/harness/bundles/java/pi/scripts/harness_gate.py +3816 -0
  366. package/harness/bundles/java/pi/scripts/harness_headless.py +37 -0
  367. package/harness/bundles/java/pi/scripts/harness_integration.py +2564 -0
  368. package/harness/bundles/java/pi/scripts/harness_knowledge_candidates.py +796 -0
  369. package/harness/bundles/java/pi/scripts/harness_ledger.py +3556 -0
  370. package/harness/bundles/java/pi/scripts/harness_migration_head.py +220 -0
  371. package/harness/bundles/java/pi/scripts/harness_orchestration.py +344 -0
  372. package/harness/bundles/java/pi/scripts/harness_paths.py +676 -0
  373. package/harness/bundles/java/pi/scripts/harness_phase.py +1726 -0
  374. package/harness/bundles/java/pi/scripts/harness_plan_aggregate.py +249 -0
  375. package/harness/bundles/java/pi/scripts/harness_plan_finalize.py +1016 -0
  376. package/harness/bundles/java/pi/scripts/harness_preflight.py +650 -0
  377. package/harness/bundles/java/pi/scripts/harness_process.py +1065 -0
  378. package/harness/bundles/java/pi/scripts/harness_profile.py +1817 -0
  379. package/harness/bundles/java/pi/scripts/harness_report_model.py +442 -0
  380. package/harness/bundles/java/pi/scripts/harness_retry.py +175 -0
  381. package/harness/bundles/java/pi/scripts/harness_review.py +631 -0
  382. package/harness/bundles/java/pi/scripts/harness_runtime.py +2243 -0
  383. package/harness/bundles/java/pi/scripts/harness_service.py +3355 -0
  384. package/harness/bundles/java/pi/scripts/harness_state.py +365 -0
  385. package/harness/bundles/java/pi/scripts/harness_sync.py +407 -0
  386. package/harness/bundles/java/pi/scripts/harness_test_cleanup.py +175 -0
  387. package/harness/bundles/java/pi/scripts/harness_test_guard.py +1899 -0
  388. package/harness/bundles/java/pi/scripts/harness_test_runner.py +1586 -0
  389. package/harness/bundles/java/pi/scripts/harness_verification.py +593 -0
  390. package/harness/bundles/java/pi/scripts/harness_workflow_policy.py +266 -0
  391. package/harness/manifests/general/claude-code.json +19 -19
  392. package/harness/manifests/general/codebuddy.json +19 -19
  393. package/harness/manifests/general/codex.json +19 -19
  394. package/harness/manifests/general/cursor.json +19 -19
  395. package/harness/manifests/general/pi.json +475 -0
  396. package/harness/manifests/java/claude-code.json +21 -21
  397. package/harness/manifests/java/codebuddy.json +21 -21
  398. package/harness/manifests/java/codex.json +21 -21
  399. package/harness/manifests/java/cursor.json +21 -21
  400. package/harness/manifests/java/pi.json +499 -0
  401. package/hunter-workflow-family.json +2 -2
  402. package/package.json +1 -1
@@ -0,0 +1,478 @@
1
+ # harness-skills — 通用 AI 辅助开发 Skill 集合
2
+
3
+ ## 迁移说明
4
+
5
+ 本包为通用 harness-skills,技术栈无关:构建/测试/打包命令按目标项目技术栈解析(Java=Maven、前端=npm、Python=pytest 等,详见项目 CLAUDE.md 或 `.harness/config/`)。文中 Java/Maven、Mapper/Controller/VO、Spring Boot、jar/war 等措辞仅为示例,不影响流程骨架的通用性。
6
+
7
+ 环境、CodeGraph 等外部增强检查应在 `npx hunter-harness` 初始化阶段完成。Superpowers / grill-me 等外部技能只作为方法论来源与人工参考;`harness-plan`、`harness-run`、`harness-review` 已内化关键能力,不再运行时依赖外部 skill。
8
+
9
+
10
+ > 一套完整的 AI 辅助开发 Skill,覆盖从上下文同步到代码提交的全流程。
11
+ > 统一前缀 `harness`,在 Claude Code 中通过 `/harness-<能力>` 调用。
12
+ > 设计遵循 [Skill 最佳实践](技术知识库/01-AI开发工具/Claude-Code/ClaudeCode-Skill最佳实践.md):pushy description + 原理说明 + 具体示例 + 避坑规则。
13
+
14
+ ## 设计理念
15
+
16
+ - **为什么是 10 个核心 skill(Java overlay 再 +2)**:每个 skill 对应一个明确阶段,可以独立调用;Java 项目通过 `overlays/java/` 追加 apidoc/package,避免维护独立 fork
17
+ - **为什么每个 skill 都要有"为什么"部分**:skill 的使用者是 AI,理解"为什么这样做"比记住"必须这样做"更有效
18
+ - **为什么测试场景表要在编码前生成**:来自实践教训——编码后再写测试,遗漏率远高于编码前设计
19
+ - **为什么产出文件统一到 .harness/ 下**:集中管理 AI 开发产出,便于回溯、归档和清理;变更名机制让跨 skill 传递零成本
20
+ - **为什么同一时间最多一个未归档变更**:这样其他 skill 不需要指定变更名,自动扫描即可定位当前工作变更
21
+ - **为什么所有 git/构建命令必须通过 PowerShell**:Windows 中文路径项目下 Bash 工具会被 hook 直接拒绝(`Denied: non-ASCII path in Bash`),且 Bash 在中文路径下经常超时。统一通过 `powershell.exe -Command "..."` 执行,规避路径编码问题
22
+ - **为什么所有"成功"必须绑定证据**:来自实践教训——AI 容易把"命令被拒绝"误报成"成功",把"静态验证"美化成"测试通过",导致后续阶段基于错误结论继续。证据化报告强制把每个结论绑定到构建成功证据(Java 的 BUILD SUCCESS / 前端 build 成功 / exit 0)、git 实际输出、文件实际存在或 exit code 0
23
+
24
+ ## 共用规则文件(强制约束)
25
+
26
+ 跨 skill 共用的强制约束规则全部集中在 `protocols/` 下(8 个 protocol;其中 report pipeline 用于结构化事件,以及 summary-data 的生成与校验),各 skill 通过相对路径引用:
27
+
28
+ | 文件 | 作用 |
29
+ |------|------|
30
+ | `protocols/powershell-protocol.md` | Shell 执行安全策略:Windows/中文路径下禁止普通 Bash,所有 git/构建命令必须通过 `powershell.exe -Command "..."` 执行;命令被拒绝时不得回退普通 Bash;所有"成功"必须有明确证据(构建成功 / git 输出 / 文件存在 / exit code 0) |
31
+ | `protocols/sensitive-info-protocol.md` | 敏感信息脱敏:token、密码、Authorization header、Cookie、API key、access/secret key 不得明文出现在 execution-log、报告、commit message、summary-data 中;引用时统一替换为 `<TOKEN_REDACTED>` / `<PASSWORD_REDACTED>` / `<SECRET_REDACTED>` |
32
+ | `protocols/evidence-based-reporting-protocol.md` | 证据化报告:所有 skill 输出必须区分 ✅ 真实成功 / 🟡 静态验证或用户跳过 / ❌ 失败或被拒绝;禁止把"静态验证"写成"测试通过",禁止把"命令被拒绝"写成"成功" |
33
+ | `protocols/ledger-protocol.md` | 验证账本:每个变更目录维护 `verification-ledger.json`,记录 compile/unitTest/apiTest 的结果+证据+diffHash+作用范围;后续阶段先读 ledger 判定是否可复用,避免跨阶段重复编译/测试;post-test 变更按 7 类分类,决定是否重跑 |
34
+ | `protocols/state-layout-protocol.md` | 状态目录分层:`.harness/changes/<cn>/` 下按 `meta/`、`logs/`、`evidence/`、`reports/`、`scripts/`、`backups/` 子目录分层写入;读取时先读新路径再兼容旧路径 |
35
+ | `protocols/submit-protocol.md` | 固定提交交互:提交方式与 commit message 确认使用固定选项模板,禁止 AI footer |
36
+ | `protocols/archive-report-protocol.md` | 归档报告:`summary-data.json`、manifest/checksum 与真实性规则 |
37
+ | `protocols/report-pipeline-protocol.md` | 报告流水线:`events.ndjson` + `harness_archive.py execute/replay` + 数据一致性校验 |
38
+
39
+ 每个 skill 的 SKILL.md 关键规则章节都通过相对路径引用这些 protocol(`../protocols/powershell-protocol.md` 等)。
40
+
41
+ ## allowed-tools 与 disallowed-tools 配置策略
42
+
43
+ 由于 Claude Code 的 `allowed-tools` **不是白名单而是免确认通道**,harness-skills 使用 `allowed-tools` + `disallowed-tools` 双重策略实现 PowerShell-first:
44
+
45
+ - **`allowed-tools`**:`Bash(powershell.exe:*)` 预批准 PowerShell 调用(免确认),不限制其他工具
46
+ - **`disallowed-tools`**:禁止普通 Bash 的 git/构建/ls/find/grep/cat 等命令(激活期间硬限制)
47
+ - **不禁止 `Bash(powershell.exe:*)`**——这是 PowerShell 调用的免确认通道
48
+
49
+ | Skill | allowed-tools | disallowed-tools |
50
+ |-------|---------------|------------------|
51
+ | harness-plan | `[Read, Glob, Grep, Edit, Write, Agent, Bash(powershell.exe:*)]` | `Bash(git *)`, `Bash(mvn *)`, 等 14 项普通 Bash 命令 |
52
+ | harness-run | `[Read, Edit, Write, Glob, Grep, Bash(powershell.exe:*)]` | 同上 |
53
+ | harness-submit | `[Bash(powershell.exe:*), Read, Write, Edit, Glob, Grep]` | 同上 |
54
+ | harness-archive | `[Read, Edit, Write, Glob, Grep, Bash(powershell.exe:*)]` | 同上 |
55
+ | harness-test | `[Read, Glob, Grep, Write, Edit, Agent, Bash(powershell.exe:*)]` | 同上 + `Bash(node *)` |
56
+ | harness-review | `[Read, Write, Edit, Glob, Grep, Agent, Bash(powershell.exe:*)]` | 同上 |
57
+ | harness-sync | `[Read, Glob, Grep, Edit, Write, Bash(powershell.exe:*)]` | 同上 |
58
+ | harness-codebase-map | `[Read, Glob, Grep, Write, Edit, Agent, Bash(powershell.exe:*)]` | 同上 |
59
+ | harness-knowledge-query | `[Bash(powershell.exe:*), Read, Glob, Grep]` | 同上 |
60
+ | harness-knowledge-ingest | `[Bash(powershell.exe:*), Read, Glob, Grep]` | 同上 |
61
+
62
+ > **blocking user confirmation 不预批准**:各 skill 需要向用户确认时通过普通权限提示调用 `blocking user confirmation`(adapter 映射到 `AskUserQuestion`/`request_user_input`/普通对话),不在 `allowed-tools` 中预批准(遵循 skill-optimizer 规则)。`harness-codebase-map` 额外预批准 `Agent` 用于派发并行 mapper。
63
+
64
+ > **codegraph 命令**:原 `Bash(codegraph *)` 改为 MCP 工具调用(`mcp__codegraph__codegraph_explore` 等),不再通过 Bash。
65
+ >
66
+ > **推荐强治理模式**:详见 [claude-code-settings-recommendation.md](claude-code-settings-recommendation.md)——可通过 `permissions.deny` 和 PreToolUse Bash hook 进一步阻止普通 Bash。
67
+
68
+ ## 产出目录结构
69
+
70
+ 所有 skill 的持久化产出统一放在项目根目录的 `.harness/` 下(**全部不提交到 git**):
71
+
72
+ ```
73
+ .harness/
74
+ ├── config/ # 项目级配置(不提交)
75
+ │ └── harness-test-config.md # 测试配置
76
+ ├── archive/ # 归档的历史变更(不提交)
77
+ │ └── YYYY-MM-DD-<change-name>/ # 已归档的变更(日期前缀便于排序,保持分层结构)
78
+ │ ├── meta/
79
+ │ │ └── archive-meta.md # 归档元信息
80
+ │ ├── spec/
81
+ │ ├── plans/
82
+ │ ├── sqls/
83
+ │ ├── evidence/
84
+ │ ├── reports/
85
+ │ │ ├── test/
86
+ │ │ ├── review/
87
+ │ │ └── final/
88
+ │ │ └── summary-data.json # 平台展示使用的最终报告数据
89
+ │ ├── events.ndjson # 结构化事件层(新流程推荐;历史 archive 可缺失)
90
+ │ └── backups/
91
+ ├── <change-name>/ # 当前未归档变更(最多 1 个,不提交)
92
+ │ ├── meta/ # 元信息(harness-plan 写入 worktree 决策)
93
+ │ │ ├── change-context.json # 变更路径上下文(见 protocols/state-layout-protocol.md)
94
+ │ │ ├── worktree.json # Worktree 决策状态(plan 写入,run 执行)
95
+ │ │ └── manifest.json
96
+ │ ├── logs/
97
+ │ │ └── execution-log.md # 执行日志(所有 skill 的时间线+指令+结果)
98
+ │ ├── spec/ # 设计文档(harness-plan 产出)
99
+ │ │ └── <change-name>-design.md # 技术方案设计,含 frontmatter(change-name/created/status/source)
100
+ │ ├── plans/ # 计划文件(harness-plan 产出)
101
+ │ │ ├── <change-name>-plan.md # 任务拆分简表,run 默认读取(含 frontmatter)
102
+ │ │ ├── <change-name>-implementation-detail.md # 自适应详细执行参考(harness-plan 原生产出)
103
+ │ │ └── <change-name>-test-scenarios.md # 测试场景表(4维度覆盖)
104
+ │ ├── evidence/ # 验证证据
105
+ │ │ ├── verification-ledger.json # 验证账本(compile/unit/api 可复用结果)
106
+ │ │ └── run-task-status.md # 任务执行状态(harness-run 持久化产出)
107
+ │ ├── reports/ # 报告
108
+ │ │ ├── test/
109
+ │ │ │ └── test-report-YYYYMMDD-HHmm.md # harness-test 产出(时间戳区分多次运行)
110
+ │ │ └── review/
111
+ │ │ ├── review-report-YYYYMMDD-HHmm.md # harness-review 产出(时间戳区分多次运行)
112
+ │ │ └── fixback-YYYYMMDD-HHmm.md # RED/YELLOW 修复反馈(按需)
113
+ │ ├── sqls/
114
+ │ │ └── V<version>__<desc>.sql # 数据库迁移脚本(harness-run 产出)
115
+ │ ├── scripts/ # 固定脚本和本次运行脚本
116
+ │ ├── runtime/ # 运行时临时文件(不提交)
117
+ │ │ ├── api-test-runner.mjs # 接口测试执行器脚本(harness-test 产出)
118
+ │ │ ├── api-test-results.json # runner 输出的结构化结果
119
+ │ │ └── credential-cache.json # 认证凭证缓存(旧名 token-cache.json 兼容读取)
120
+ │ └── backups/
121
+ │ └── uncommitted-tests/ # 未提交但用于验证的测试文件
122
+ ```
123
+
124
+ **变更名规则**:
125
+ - 由 harness-plan 阶段1根据需求自动生成(kebab-case),无需用户确认
126
+ - 示例:`contribution-module`、`indicator-management`、`fix-duplicate-submit`
127
+ - 后续 skill(run/test/review)通过扫描 `.harness/changes/*/plans/`(排除 `.harness/archive/*/`)自动定位变更名
128
+ - 同一时间最多一个未归档变更,归档后运行 harness-archive
129
+
130
+ **.gitignore 建议**:
131
+ ```gitignore
132
+ .harness/ # .harness 下所有文件都不提交到 git
133
+ ```
134
+
135
+ ## 执行日志与结构化事件机制
136
+
137
+ 每个关联具体变更的 skill 只维护一个实时事实源:
138
+
139
+ - `.harness/changes/<change-name>/events.ndjson`:程序化事件层;人类可读上下文、降级原因和解释性文字写入事件 `note`。
140
+ - `.harness/changes/<change-name>/logs/execution-log.md`:由 `harness_events.py` 在 `phase.end` 自动重建的人类审计投影,禁止 Write/Edit。
141
+
142
+ 渲染后的 `execution-log.md` 阶段格式统一:
143
+
144
+ ```markdown
145
+ ### [<序号>] harness-<skill> — YYYY-MM-DD HH:MM
146
+ - **触发指令**: <用户输入的原始指令>
147
+ - **开始**: YYYY-MM-DD HH:MM:SS
148
+ - **结束**: YYYY-MM-DD HH:MM:SS
149
+ - **耗时**: X分Y秒
150
+ - **结果**: ✅OK成功 / 🟡WARN(降级原因) / ❌FAIL(失败原因)
151
+ - **摘要**: <一两句话描述主要产出或问题>
152
+ ```
153
+
154
+ - harness-plan 确定 change-name 后先追加 `phase.start`,脚本自动建立事件文件
155
+ - 后续每个 skill 开始时追加 `phase.start` 事件,结束时追加包含耗时/结果的 `phase.end` 事件
156
+ - **任何代码修改前必须先追加 `phase.start`**(不得等执行完才补记录)
157
+ - **降级时必须记录明确原因**(如"Agent 不可用,降级为主会话只读探索"),不可仅写"完成"
158
+ - **禁止末尾一次性补写**——各阶段实时 append 结构化事件,渲染日志不得直接编辑
159
+ - **Bash 拒绝、PowerShell 重试、降级、跳过、用户确认都必须记录**
160
+ - 日志状态统一使用 `✅OK / 🟡WARN(原因) / ❌FAIL(原因)`
161
+ - harness-archive 归档时从日志汇总:时间线、总用时、Skill 调用统计
162
+ - `harness_archive.py execute/replay` 优先从 `events.ndjson` 汇总命令、验证、artifact、问题和决策;旧 archive 缺少 events 时才回放 execution-log/ledger/manifest
163
+ - sync 默认不关联具体变更目录,仅在已有变更目录时追加日志和 events
164
+ - archive 是例外:`execute` 负责一次准备记录和一次正式 `phase.start` / `phase.end`,调用者不得重复追加阶段边界,也不得串行运行 `auto-gate`、`status`、`finalize`
165
+
166
+ ## Skill 目录结构
167
+
168
+ ```
169
+ harness-skills/
170
+ ├── README.md # 本文件
171
+ ├── CONTEXT.md # harness 原生协议与外部方法论术语表
172
+ ├── agents/
173
+ │ ├── harness-explorer.md # 只读代码探索(plan 预检后委派)
174
+ │ ├── harness-evaluator.md # 计划对抗评审(仅 --adversarial / 显式要求)
175
+ │ └── harness-reviewer.md # 6维度审查(review 预检后委派)
176
+ ├── harness-sync/
177
+ │ ├── SKILL.md # 元数据同步(10 项检查:7 核心 + 3 辅助)
178
+ │ └── reference.md # 10 步检查的详细状态判断表格和输出示例
179
+ ├── harness-codebase-map/
180
+ │ ├── SKILL.md # 代码库地图生成(7 类文档 + summary + manifest)
181
+ │ ├── checklist.md # 执行前后检查清单
182
+ │ ├── reference.md # 模式选择 + manifest schema + mapper prompt
183
+ │ └── templates/ # 7 类文档 + map-summary + map-manifest.schema 模板
184
+ ├── harness-plan/
185
+ │ ├── SKILL.md # 需求规划→任务拆分→测试场景表
186
+ │ ├── checklist.md # 阶段检查清单
187
+ │ ├── protocols.md # 原生澄清/有限盘问/任务拆分协议
188
+ │ └── reference.md # 详细模板和规则
189
+ ├── harness-run/
190
+ │ ├── SKILL.md # TDD 编码循环
191
+ │ ├── checklist.md # 编码步骤检查清单
192
+ │ ├── protocols.md # 原生 TDD / 变更簇审查协议
193
+ │ └── reference.md # 编译失败策略 + TDD 降级 + 编码约束
194
+ ├── harness-test/
195
+ │ ├── SKILL.md # 测试执行 + 避坑规则索引
196
+ │ ├── checklist.md # Phase 0 环境准备 7 项检查
197
+ │ ├── reference.md # API 测试细节 + 响应验证
198
+ │ └── pitfalls.md # 30 条避坑规则(详细说明)
199
+ ├── harness-review/
200
+ │ ├── SKILL.md # 6 维度代码审查
201
+ │ ├── checklist.md # 6 维度详细检查项
202
+ │ ├── protocols.md # 原生 fixback 修复反馈协议
203
+ │ └── reference.md # 审查标准 + 报告模板
204
+ ├── harness-submit/
205
+ │ ├── SKILL.md # 验证→commit→push;worktree 模式含 --no-ff 合并回主分支
206
+ │ ├── checklist.md # 提交流程 + worktree 合并详细步骤
207
+ │ └── reference.md # commit message 格式 + Windows worktree 清理兜底
208
+ └── harness-archive/
209
+ ├── SKILL.md # 变更归档(移入 archive/)
210
+ ├── checklist.md # 归档前后检查项
211
+ ├── reference.md # 归档操作 + 占位符真实性规则
212
+ └── templates/
213
+ └── summary-data-template.json # 最终报告数据结构
214
+ ```
215
+
216
+ ## Skill 列表
217
+
218
+ | Skill | 调用方式 | 职责 | 前置依赖 | 自动调用 | 产出路径 |
219
+ |-------|----------|------|:--------:|:--------:|----------|
220
+ | harness-sync | `/harness-sync` | 10 项元数据检查(7 核心 + 3 辅助) | 初始化检查 | ✅ | 控制台报告 + 自动更新 |
221
+ | harness-codebase-map | `/harness-codebase-map` | 生成代码库地图(7 类文档 + summary + manifest) | `sync`/独立 | ✅ | `.harness/codebase/map/` |
222
+ | harness-plan | `/harness-plan` | 需求→设计→任务拆分→**测试场景表** + 自动命名变更名 | `sync` | 手动 | `.harness/changes/<cn>/plans/` |
223
+ | harness-run | `/harness-run` | TDD 循环 变更簇编码 | `plan` | 手动 | `.harness/changes/<cn>/sqls/` |
224
+ | harness-test | `/harness-test` | 单元测试+接口测试+30条避坑 | `run` | 手动 | `.harness/changes/<cn>/reports/test/` |
225
+ | harness-review | `/harness-review` | 6维度参考性审查(不阻塞后续流程) | `test` | 手动 | `.harness/changes/<cn>/reports/review/` |
226
+ | harness-submit | `/harness-submit` 或 `/harness-merge`(别名) | commit+push(主目录)/ worktree:本地 commit→--no-ff 合并→push 主分支 | `review` | 手动 | ledger `mergeFinalHash` + 控制台报告 |
227
+ | harness-archive | `/harness-archive` | 归档产出到 archive/YYYY-MM-DD-<cn>,释放工作区 | `submit` | 手动 | `.harness/archive/YYYY-MM-DD-<cn>/` |
228
+ | harness-knowledge-query | `/harness-knowledge-query` | 只查询平台语义知识;无本地索引或离线回退 | 独立 | ✅ | CLI JSON(不落本地知识文件) |
229
+ | harness-knowledge-ingest | `/harness-knowledge-ingest` | 确认归档 ZIP 已由平台保存、解包并 ingest | `archive` | ✅ | 服务端 package/knowledge 收据 |
230
+
231
+ > 生命周期 skill(plan → run → test → review → submit → archive)为**手动触发**:单阶段结束后停止,不自动接续下一阶段(已设 `disable-model-invocation`)。sync / codebase-map / knowledge 等辅助 skill 仍可按需被调用。`harness-run`、`harness-submit`、`harness-archive` 涉及 git 写操作、文件移动或归档,调用前必须确保前置条件已满足。
232
+ > `<cn>` = change-name,由 harness-plan 阶段7确定。其他 skill 自动扫描未归档变更定位。
233
+ > 门禁默认 `gate_severity_mode=lenient`(可再生 soft site → WARN);发布阶段与 3 类硬不变量仍 fail-closed。可用 `HUNTER_HARNESS_GATE_MODE` 或 `gate-policy.json` 的 `severityMode` 强制 `strict`。
234
+
235
+ ## 关键合规约束(强制)
236
+
237
+ 以下是各 skill 必须遵守的关键约束,违反任何一条都会导致流程被认定为不合规:
238
+
239
+ ### Shell 与执行安全
240
+
241
+ - **PowerShell-first 自动重试**:Claude 必须默认使用 PowerShell 执行 git/构建/系统命令;如果误用普通 Bash 且被 hook 拒绝,不得中断流程或推断成功,必须立即自动改用等价 PowerShell 命令重试一次
242
+ - **禁止普通 Bash**:Windows / 中文路径下,所有 git/构建/文件移动命令必须通过 `powershell.exe -Command "..."` 执行
243
+ - **PowerShell 重试失败才停止**:只有 PowerShell 重试也失败、被拒绝、超时、无有效输出、或 exit code 非 0,才停止当前阶段并标记 ❌FAIL 或 🟡WARN
244
+ - **失败检测**:输出含 `Denied` / `PreToolUse:Bash hook error` / 非 0 exit code / 无有效 stdout 时,状态必须标记为失败或未知,**不得宣称"成功"**
245
+
246
+ ### P0 执行可信度规则
247
+
248
+ 见 [[shared/p0-trust.md|p0-trust]](各 SKILL 通过 `<!-- @include shared/p0-trust.md -->` 引用)。
249
+
250
+ ### 证据化报告
251
+
252
+ - **编译成功**必须有构建成功证据(Java 的 `BUILD SUCCESS` / 前端 build 成功 / exit 0)
253
+ - **测试通过**必须有测试通过证据(Java 的 `Tests run: N, Failures: 0, Errors: 0` / 前端 N passing 等)
254
+ - **拉取/推送成功**必须有 git 实际成功输出(`Already up to date.`、`Fast-forward`、`To <remote>` 等)
255
+ - **三类状态严格区分**:✅ 真实成功 / 🟡 静态验证或用户跳过 / ❌ 失败或被拒绝
256
+
257
+ ### 各阶段强制检查
258
+
259
+ | 阶段 | 强制检查 |
260
+ |------|---------|
261
+ | **plan 阶段 0** | 检查工作区是否有未提交业务代码变更,已有则询问用户处理方式(继续/暂存/回滚/取消),不得假装"编码前规划" |
262
+ | **plan 阶段 3** | 默认主会话 CodeGraph/Read inline 探索;仅高复杂度且准备委派固定 agent 时单次预检,失败或无效返回立即 inline,不 retry |
263
+ | **plan 阶段 4/6** | 原生规划协议必须记录风险/复用/替代方案/推荐方案/关键决策,以及任务拆分摘要 |
264
+ | **plan 阶段 5** | 设计文档自审结果必须展示给用户;测试场景表未覆盖维度必须标记为 ⚠️ 缺口,不得全部 ✅ |
265
+ | **run 步骤 0** | 任何代码修改前必须先向 `events.ndjson` 追加 `phase.start`;执行日志由阶段结束事件自动渲染 |
266
+ | **run 轻量验证** | `/harness-run` 默认只做开发反馈:TDD RED/GREEN + REFACTOR + 构建命令增量编译(Java 的 `mvn compile -pl <module>` 等)+ 关门检查 + 写 verification-ledger;除非改了公共模块/数据访问层/sql/权限认证/接口层/数据契约 或用户要求 full-run-validation 或不打算继续 `/harness-test`,否则不默认跑全量测试命令(Java 的 `mvn test` 等)。若跑了全量测试必须写入 ledger 供 test/submit 复用 |
267
+ | **run TDD 降级** | 输出必须写"🟡 静态逻辑验证通过,未执行真实单元测试",**禁止写"测试全部通过"**;降级标注写在执行日志和覆盖报告中,**不污染业务代码注释**;记录三项:降级原因、静态验证场景列表、待部署后验证场景列表 |
268
+ | **test ledger 复用** | Phase 1 单元测试前先读 `verification-ledger.json`:若 run 阶段已对同一 diffHash/module/profile 跑过单元测试命令(Java 的 `mvn test` 等)且测试通过(Java 的 `Tests run: N, Failures: 0, Errors: 0` / 前端 N passing),可跳过重跑并标记"✅ 复用 harness-run 单元测试结果";diffHash 不一致 / profile 不一致 / 命令范围更窄 / run 后有行为性修改则不得复用 |
269
+ | **test 批量 runner** | 默认使用 **PowerShell 接口测试执行器**:生成 `.harness/changes/<cn>/runtime/api-test-runner.mjs`,通过一次 PowerShell + node 执行全部场景,输出 `api-test-results.json`,主会话只读 JSON 生成摘要。Playwright MCP `browser_evaluate` 仅作 fallback,报告必须区分执行器:PowerShell 接口测试执行器 ✅使用 / PowerShell batch 🟡fallback / Playwright MCP 🟡fallback / curl 🟡fallback |
270
+ | **test token 策略** | 先读 `.harness/changes/<cn>/runtime/credential-cache.json`(旧名 `token-cache.json` 兼容),本地轻量接口验证通过则复用,失败才访问远程 SSO;接口测试执行器必须用 request context / node fetch 直接请求本地 baseURL,**不得依赖浏览器当前页面 origin** |
271
+ | **post-test 变更分类** | test 之后发生代码变更时,submit/archive 必须按 7 类分类(NON_BEHAVIORAL_CLEANUP / COMMENT_ONLY / TEST_ONLY / BEHAVIORAL_SERVICE_CHANGE / API_CONTRACT_CHANGE / SQL_OR_MAPPER_CHANGE / SECURITY_OR_PERMISSION_CHANGE)写入 ledger 的 `postTestClassification`;非行为性清理可复用 API 测试结果但须记录依据,行为性变更必须重跑相关场景 |
272
+ | **submit 时序** | `/harness-submit` 完成后:主目录模式可直接 `/harness-archive`;worktree 模式在同一 skill 内自动完成合并后再 archive |
273
+ | **submit ledger 复用** | 验证前先读 `verification-ledger.json`:若当前 diffHash 已通过 test 完整验证且无行为性 post-test 修改,submit 不默认重跑构建命令/测试命令(Java 的 `mvn compile`/`mvn test` 等);只在远端有新提交 / staged diff 与 ledger 不一致 / 行为性 post-test 修改 / test 报告缺失或失败 / 用户要求 submit-full-verify 时重跑,重跑结果写回 ledger |
274
+ | **submit commit message** | subject 只根据当前 `git diff --cached` 或本次变更名生成,**不得混入历史任务上下文** |
275
+ | **submit 步骤 3.5** | 强制检查 `.gitignore` 是否包含 `.harness/`;**禁止 `git add -A`** 一把梭,避免 `.harness`/日志/敏感信息被提交 |
276
+ | **submit 步骤 4** | 提交前必须展示四项:实际 staged 文件列表、diff stat、commit message、是否 push |
277
+ | **submit push 前** | `git fetch` 后检查远程是否有新提交;有则**不得直接 pull 后 push**,必须 pull/rebase + 重新 compile/test |
278
+ | **submit hash 记录** | pre-pull local hash + final pushed hash 双标注(主目录);worktree 模式 submit 段只本地 commit,合并段产生 `mergeFinalHash`,archive 以 `mergeFinalHash` 为准(无则回退 final pushed hash) |
279
+ | **archive 阶段 1** | 归档前确认实际计划阶段的证据与结局;有 Git 时核对最终提交身份,无 Git、无 upstream 或跳过 submit 时使用内容清单身份。发布候选资格与本地封存分开判断;阶段边界由 finalize 单进程维护,调用者不额外 append |
280
+ | **archive 文件移动** | 只用 PowerShell 或 Read+Write+验证,**禁止 Bash mv/cp/rm**;移动失败时不删除原目录 |
281
+ | **archive 最终报告** | 必须运行 `harness_archive.py execute`,由内部 finalize 生成权威 `summary-data.json` 并完成 validate。平台直接读取该 JSON;本地不生成重复的 HTML 报告。无测试或无 review 时必须标记 `NOT_RUN` / `ADVISORY_NOT_RUN`,禁止伪造 100% 通过率。状态演进须真实展示(✅OK / 🟡WARN / 🔁REUSED / 🔁RETESTED / 📝ADVISORY / 🧹NON_BEHAVIORAL_CLEANUP) |
282
+
283
+ ### 敏感信息脱敏
284
+
285
+ - token / Authorization / Cookie / Redis 密码 / 数据库密码 / API key / access&secret key 不得明文出现在 execution-log、报告、commit message、summary-data 中
286
+ - 引用敏感值时统一使用占位符:`<TOKEN_REDACTED>` / `<PASSWORD_REDACTED>` / `<SECRET_REDACTED>` / `<API_KEY_REDACTED>` / `<AUTH_HEADER_REDACTED>` / `<COOKIE_REDACTED>`
287
+ - 命令示例使用占位符,不复述真实值
288
+ - 测试中临时使用的 token 在持久化测试报告中必须替换为占位符
289
+
290
+ ## 完整流程
291
+
292
+ ```
293
+ ┌──────────────┐
294
+ │ 初始化检查 │ 由 `npx hunter-harness` 初始化阶段完成(非 skill)
295
+ └──────┬───────┘
296
+
297
+ ┌──────▼───────┐
298
+ │ harness-sync │ "10 项元数据检查" — git pull 后跑
299
+ └──────┬───────┘
300
+
301
+ ┌──────▼───────┐
302
+ │ harness- │ "需求规划" — 需求→计划+场景表
303
+ │ plan │ (自动命名 change-name)
304
+ └──────┬───────┘
305
+
306
+ ┌──────▼───────┐
307
+ │ harness- │ "TDD 编码" — RED→GREEN→REFACTOR
308
+ │ run │ 逐任务实现
309
+ └──────┬───────┘
310
+
311
+ ┌──────▼───────┐
312
+ │ harness-test │ "测试验证" — 单元+接口+数据兼容
313
+ └──────┬───────┘
314
+
315
+ ┌──────▼───────┐
316
+ │ harness- │ "参考性审查" — 6 维度
317
+ │ review │ 📝不阻塞提交
318
+ └──────┬───────┘
319
+
320
+ ┌──────▼───────┐
321
+ │ harness- │ "提交+合并" — 主目录:commit+push / worktree:commit→merge --no-ff→push
322
+ │ submit │
323
+ └──────┬───────┘
324
+
325
+ ┌──────▼───────┐
326
+ │ harness- │ "归档" — 释放工作区
327
+ │ archive │ 移入 archive/
328
+ └─────────────┘
329
+
330
+ ┌─────────────────────▼──────────────────────────┐
331
+ │ .harness/changes/<change-name>/ │
332
+ │ plans/ | reports/ | sqls/ │
333
+ │ 所有产出集中管理,跨 skill 自动引用 │
334
+ │ 归档后移入 .harness/archive/YYYY-MM-DD-<change-name>/ │
335
+ └─────────────────────────────────────────────────┘
336
+ ```
337
+
338
+ > **harness-review 是参考性审查阶段**:默认只生成参考性审查报告和按需 fixback,不影响后续 submit、archive。如果用户选择处理 fixback,回到 `/harness-run --fixback`,再执行 `/harness-test` 和 `/harness-review`;如果团队希望 review RED 阻塞提交,可在 `.harness/config/harness-test-config.md` 中设置 `review.strict-review-gate: true`。
339
+
340
+ > **阶段顺序以计划为准**:Plan 会把本次 `plannedPhases` 写入上下文,后续阶段只消费该计划,不再假定 test、review、submit 或 merge 必经。快速流程默认可用 `plan → run → archive`;需要完整验证、评审或提交时再把对应阶段加入计划。无 Git、无 upstream、仅本地提交或主动跳过 submit 都不妨碍事实封存;只有“发布候选”需要额外满足发布策略。
341
+
342
+ > **verification-ledger 驱动跨阶段复用**:先通过共享状态目录解析器定位变更,再读写其 `evidence/verification-ledger.json`,其中记录 compile/unitTest/apiTest 的结果、证据、diffHash 和作用范围。run/test/submit 执行验证前先读 ledger,满足复用条件(diffHash 一致、module/profile 一致、范围更严格、有证据、无行为性 post-test 修改)则跳过重跑并标记 🔁REUSED;post-test 小改动按 7 类分类,非行为性清理可复用 API 测试。详见 `protocols/ledger-protocol.md`。
343
+
344
+ ## 外部方法论吸收(已内化)
345
+
346
+ `harness-plan`、`harness-run`、`harness-review` 已将外部 skill 的有效方法内化为原生协议,不再运行时调用 Superpowers、grill-me 或 `receiving-code-review`,也不检查、降级或同步 `docs/superpowers/` 草稿。
347
+
348
+ | 方法论来源 | harness 落点 | 当前关系 |
349
+ |------------|--------------|----------|
350
+ | brainstorming | `harness-plan/protocols.md` 的 clarification-protocol | 已内化:风险、复用机会、替代方案、推荐方案 |
351
+ | grill-me | `harness-plan/protocols.md` 的 decision-grilling-protocol | 已内化:有限问题预算、一次一问、每问推荐答案 |
352
+ | writing-plans | `harness-plan/protocols.md` 的 implementation-planning-protocol | 已内化:任务简表、自适应执行参考、无占位符自检 |
353
+ | Superpowers TDD / subagent-driven-dev | `harness-run/protocols.md` 的 run-tdd-protocol / change-cluster-review-protocol | 已内化:RED 类型、GREEN 最小实现、风险触发审查 |
354
+ | receiving-code-review | `harness-review/protocols.md` 的 review-fixback-protocol | 已内化:RED/YELLOW 转结构化 fixback |
355
+
356
+ > **状态说明**:Superpowers / grill-me 可作为人工参考或后续方法论对标来源,但不是 harness 正式流程的运行时依赖;缺失时不触发降级记录。
357
+
358
+ ## shared/ 片段与 overlay 合成(D12/D9)
359
+
360
+ Vault 内 SKILL.md 用 `<!-- @include shared/xxx.md -->` 引用公共段落(`p0-trust`、`read-protocol`、`logging`、`worktree-gate`)。**部署到目标项目前**须运行 `scripts/harness_deploy.py` 展开为自包含单文件。
361
+
362
+ | 路径 | 作用 |
363
+ |------|------|
364
+ | `shared/` | 源片段(Vault 维护,不直接复制到项目) |
365
+ | `overlays/java/` | Java 差异:`.overlay.md` 锚点合并 + `harness-apidoc`/`harness-package` + `pitfalls-java.md` |
366
+ | `overlays/java/PROJECT-PROFILE-EXAMPLE.md` | 项目专属 build-profile 示例(不进 skill 正文) |
367
+
368
+ Java 版独立目录已退役 → [[../../Java后端/harness-skills/README.md|Java harness-skills README]]。
369
+
370
+ ## 安装(推荐:deploy 合成)
371
+
372
+ ```powershell
373
+ $skillsRoot = "<Vault>/技术知识库/03-工作流/通用/harness-skills"
374
+ $out = "<build-output-dir>"
375
+
376
+ # 通用项目
377
+ python "$skillsRoot/scripts/harness_deploy.py" build --skills-root $skillsRoot --out $out --json
378
+
379
+ # Java 后端(core + java overlay → 14 skill 自包含树:12 base + 2 java-only)
380
+ python "$skillsRoot/scripts/harness_deploy.py" build --skills-root $skillsRoot --overlay java --out $out --json
381
+
382
+ python "$skillsRoot/scripts/harness_deploy.py" install --from $out --project "<目标项目>" --json
383
+ python "$skillsRoot/scripts/harness_deploy.py" diff --from $out --project "<目标项目>" --json # harness-sync 可调用
384
+ ```
385
+
386
+ 安装后首次 Java 项目运行:`python "$skillsRoot/scripts/harness_preflight.py" detect --project "<目标项目>" --json` 生成 `.harness/config/build-profile.json`。
387
+
388
+ ### 手动复制(不推荐,无 include 展开)
389
+
390
+ 将整个 `harness-skills/` 目录下的子目录复制到目标项目的 `.claude/skills/` 下:
391
+
392
+ ```powershell
393
+ # 复制所有 skill 到目标项目
394
+ powershell.exe -Command "Copy-Item -Path 'harness-skills/harness-*' -Destination '<目标项目>/.claude/skills/' -Recurse -Force"
395
+ ```
396
+
397
+ 或者只复制需要的 skill:
398
+
399
+ ```powershell
400
+ powershell.exe -Command "Copy-Item -Path 'harness-skills/harness-test' -Destination '<目标项目>/.claude/skills/' -Recurse -Force"
401
+ ```
402
+
403
+ Claude Code/CodeBuddy 可选复制 3 个隔离角色:`harness-explorer` 仅高复杂度探索、`harness-evaluator` 仅 `--adversarial`/高风险规划、`harness-reviewer` 仅发布候选/高风险审查。Codex/Cursor 默认使用主会话或宿主临时隔离任务,不安装固定角色,也不执行固定 agent 预检:
404
+
405
+ ```powershell
406
+ powershell.exe -Command "Copy-Item -Path 'harness-skills/agents/*.md' -Destination '<目标项目>/.claude/agents/' -Recurse -Force"
407
+ ```
408
+
409
+ Claude Code 会自动识别 `.claude/skills/` 下的 skill 目录(每个目录必须含 `SKILL.md`)。
410
+
411
+ **安装后配置**:在目标项目的 `.gitignore` 中添加:
412
+ ```gitignore
413
+ .harness/ # .harness 下所有文件都不提交到 git
414
+ ```
415
+
416
+ ## 快捷调用
417
+
418
+ ```
419
+ npx hunter-harness # 初始化阶段检查环境/CodeGraph/基础状态(非 skill)
420
+ /harness-sync # 10 项元数据检查(7 核心 + 3 辅助)
421
+ /harness-codebase-map # 生成代码库地图(7 类文档)
422
+ /harness-plan # 需求规划(生成测试场景表 + 自动命名变更名)
423
+ /harness-run # TDD 编码
424
+ /harness-test # 运行测试(30条避坑规则)
425
+ /harness-review # 代码审查
426
+ /harness-submit # 提交代码(worktree 模式含合并;/harness-merge 为别名)
427
+ /harness-archive # 归档产出(harness_archive.py execute),释放工作区
428
+ ```
429
+
430
+ ## 避坑知识来源
431
+
432
+ `harness-test/pitfalls.md` 中的 30 条避坑规则来自真实对话日志(2026-06-12 ~ 06-24)。
433
+
434
+ ---
435
+ ← 返回 [[AI开发工作流|工作流主页]]
436
+ ← 参考 [[项目初始化指引]]
437
+ ← 参考 [[TDD测试流程]]
438
+
439
+
440
+ ### Worktree 决策状态
441
+
442
+ `harness-plan` 阶段 2 用户选择后,必须写入 `.harness/changes/<change-name>/meta/worktree.json`。`harness-run` 负责读取该文件并创建/切换 worktree。
443
+
444
+ 硬规则:如果 `worktree.json` 中 `requested=true`,而 worktree 不存在,`harness-run` 必须创建 worktree 或停止,不得静默回到主目录执行。
445
+
446
+
447
+ ## Cross-skill Protocols
448
+
449
+ 为减少重复规则和阶段间不一致,通用协议集中在 `protocols/`:
450
+
451
+ - `protocols/powershell-protocol.md`:Windows 中文路径命令执行协议(已取代原 `harness-plan/shell-safety.md`,各 skill 引用此版本)。
452
+ - `protocols/ledger-protocol.md`:verification-ledger、真实 diffHash、service-fingerprint(已取代原 `harness-plan/verification-ledger.md`,各 skill 引用此版本)。
453
+ - `protocols/sensitive-info-protocol.md`:敏感信息脱敏(token/密码/密钥占位符化,已取代原 `harness-plan/sensitive-info.md`,各 skill 引用此版本)。
454
+ - `protocols/evidence-based-reporting-protocol.md`:证据化报告(✅/🟡/❌ 三态,已取代原 `harness-plan/evidence-based-reporting.md`,各 skill 引用此版本)。
455
+ - `protocols/submit-protocol.md`:固定提交交互、中文 commit 文件、禁止 AI footer。
456
+ - `protocols/archive-report-protocol.md`:summary-data、manifest/checksum 与平台归档展示合同。
457
+ - `protocols/report-pipeline-protocol.md`:events.ndjson + `harness_archive.py execute/replay` + summary-data 一致性校验。
458
+ - `protocols/state-layout-protocol.md`:`.harness/changes/<cn>/` 子目录分层(meta/logs/evidence/reports/scripts/backups),读取先新后旧。
459
+
460
+ 各 skill 的 `SKILL.md` 只保留阶段目标和硬门禁,细节优先引用这些协议,避免在多个 skill 中复制并产生冲突。
461
+
462
+
463
+ ## State Layout Protocol(新增)
464
+
465
+ 新版本 `.harness/changes/<change-name>/` 默认按子目录分层写入:
466
+
467
+ ```text
468
+ meta/ worktree.json、change-context.json、manifest
469
+ logs/ execution-log.md
470
+ evidence/ verification-ledger.json、run-task-status.md
471
+ reports/ test/review/final 报告
472
+ scripts/ 固定脚本和本次运行脚本
473
+ backups/ 未提交但用于验证的测试文件等备份
474
+ ```
475
+
476
+ 读取时先读新路径,再兼容旧路径。详见 `protocols/state-layout-protocol.md`。
477
+
478
+ Archive 常规入口为 `harness_archive.py execute`,内部 finalize 生成 `summary-data.json`。Hunter Platform 直接读取该文件,避免本地重复渲染和两份报告数据不一致。