@hunter-harness/workflow-harness 0.2.42 → 0.2.44

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 (334) hide show
  1. package/harness/bundles/general/claude-code/.harness-build.json +1 -1
  2. package/harness/bundles/general/claude-code/contracts/build-profile-v3.schema.json +156 -1
  3. package/harness/bundles/general/claude-code/contracts/fixtures/managed-execution.json +341 -0
  4. package/harness/bundles/general/claude-code/contracts/process-identity.schema.json +132 -0
  5. package/harness/bundles/general/claude-code/contracts/run-session.schema.json +142 -0
  6. package/harness/bundles/general/claude-code/contracts/service-retirement-receipt.schema.json +85 -0
  7. package/harness/bundles/general/claude-code/contracts/service-session.schema.json +147 -0
  8. package/harness/bundles/general/claude-code/harness-archive/SKILL.md +1 -1
  9. package/harness/bundles/general/claude-code/harness-archive/reference.md +1 -0
  10. package/harness/bundles/general/claude-code/harness-archive/templates/render-summary.mjs +8 -0
  11. package/harness/bundles/general/claude-code/harness-archive/templates/summary-data-template.json +28 -0
  12. package/harness/bundles/general/claude-code/harness-codebase-map/SKILL.md +1 -1
  13. package/harness/bundles/general/claude-code/harness-knowledge-ingest/SKILL.md +1 -1
  14. package/harness/bundles/general/claude-code/harness-knowledge-query/SKILL.md +1 -1
  15. package/harness/bundles/general/claude-code/harness-plan/SKILL.md +1 -1
  16. package/harness/bundles/general/claude-code/harness-review/SKILL.md +1 -1
  17. package/harness/bundles/general/claude-code/harness-run/SKILL.md +1 -1
  18. package/harness/bundles/general/claude-code/harness-run/reference.md +6 -1
  19. package/harness/bundles/general/claude-code/harness-submit/SKILL.md +1 -1
  20. package/harness/bundles/general/claude-code/harness-submit/checklist.md +12 -0
  21. package/harness/bundles/general/claude-code/harness-sync/SKILL.md +1 -1
  22. package/harness/bundles/general/claude-code/harness-test/SKILL.md +8 -2
  23. package/harness/bundles/general/claude-code/protocols/execution-session-protocol.md +52 -0
  24. package/harness/bundles/general/claude-code/protocols/state-layout-protocol.md +24 -1
  25. package/harness/bundles/general/claude-code/protocols/verification-graph-protocol.md +6 -0
  26. package/harness/bundles/general/claude-code/scripts/harness_archive.py +271 -22
  27. package/harness/bundles/general/claude-code/scripts/harness_change.py +137 -2
  28. package/harness/bundles/general/claude-code/scripts/harness_efficiency.py +443 -0
  29. package/harness/bundles/general/claude-code/scripts/harness_environment.py +760 -46
  30. package/harness/bundles/general/claude-code/scripts/harness_execution_contracts.py +596 -0
  31. package/harness/bundles/general/claude-code/scripts/harness_fixback.py +742 -0
  32. package/harness/bundles/general/claude-code/scripts/harness_integration.py +289 -52
  33. package/harness/bundles/general/claude-code/scripts/harness_ledger.py +5 -0
  34. package/harness/bundles/general/claude-code/scripts/harness_orchestration.py +344 -0
  35. package/harness/bundles/general/claude-code/scripts/harness_process.py +1065 -0
  36. package/harness/bundles/general/claude-code/scripts/harness_profile.py +278 -4
  37. package/harness/bundles/general/claude-code/scripts/harness_runtime.py +1576 -3
  38. package/harness/bundles/general/claude-code/scripts/harness_service.py +1528 -177
  39. package/harness/bundles/general/claude-code/scripts/harness_test_runner.py +224 -146
  40. package/harness/bundles/general/claude-code/scripts/harness_verification.py +487 -8
  41. package/harness/bundles/general/codebuddy/.harness-build.json +1 -1
  42. package/harness/bundles/general/codebuddy/contracts/build-profile-v3.schema.json +156 -1
  43. package/harness/bundles/general/codebuddy/contracts/fixtures/managed-execution.json +341 -0
  44. package/harness/bundles/general/codebuddy/contracts/process-identity.schema.json +132 -0
  45. package/harness/bundles/general/codebuddy/contracts/run-session.schema.json +142 -0
  46. package/harness/bundles/general/codebuddy/contracts/service-retirement-receipt.schema.json +85 -0
  47. package/harness/bundles/general/codebuddy/contracts/service-session.schema.json +147 -0
  48. package/harness/bundles/general/codebuddy/harness-archive/SKILL.md +1 -1
  49. package/harness/bundles/general/codebuddy/harness-archive/reference.md +1 -0
  50. package/harness/bundles/general/codebuddy/harness-archive/templates/render-summary.mjs +8 -0
  51. package/harness/bundles/general/codebuddy/harness-archive/templates/summary-data-template.json +28 -0
  52. package/harness/bundles/general/codebuddy/harness-codebase-map/SKILL.md +1 -1
  53. package/harness/bundles/general/codebuddy/harness-knowledge-ingest/SKILL.md +1 -1
  54. package/harness/bundles/general/codebuddy/harness-knowledge-query/SKILL.md +1 -1
  55. package/harness/bundles/general/codebuddy/harness-plan/SKILL.md +1 -1
  56. package/harness/bundles/general/codebuddy/harness-review/SKILL.md +1 -1
  57. package/harness/bundles/general/codebuddy/harness-run/SKILL.md +1 -1
  58. package/harness/bundles/general/codebuddy/harness-run/reference.md +6 -1
  59. package/harness/bundles/general/codebuddy/harness-submit/SKILL.md +1 -1
  60. package/harness/bundles/general/codebuddy/harness-submit/checklist.md +12 -0
  61. package/harness/bundles/general/codebuddy/harness-sync/SKILL.md +1 -1
  62. package/harness/bundles/general/codebuddy/harness-test/SKILL.md +8 -2
  63. package/harness/bundles/general/codebuddy/protocols/execution-session-protocol.md +52 -0
  64. package/harness/bundles/general/codebuddy/protocols/state-layout-protocol.md +24 -1
  65. package/harness/bundles/general/codebuddy/protocols/verification-graph-protocol.md +6 -0
  66. package/harness/bundles/general/codebuddy/scripts/harness_archive.py +271 -22
  67. package/harness/bundles/general/codebuddy/scripts/harness_change.py +137 -2
  68. package/harness/bundles/general/codebuddy/scripts/harness_efficiency.py +443 -0
  69. package/harness/bundles/general/codebuddy/scripts/harness_environment.py +760 -46
  70. package/harness/bundles/general/codebuddy/scripts/harness_execution_contracts.py +596 -0
  71. package/harness/bundles/general/codebuddy/scripts/harness_fixback.py +742 -0
  72. package/harness/bundles/general/codebuddy/scripts/harness_integration.py +289 -52
  73. package/harness/bundles/general/codebuddy/scripts/harness_ledger.py +5 -0
  74. package/harness/bundles/general/codebuddy/scripts/harness_orchestration.py +344 -0
  75. package/harness/bundles/general/codebuddy/scripts/harness_process.py +1065 -0
  76. package/harness/bundles/general/codebuddy/scripts/harness_profile.py +278 -4
  77. package/harness/bundles/general/codebuddy/scripts/harness_runtime.py +1576 -3
  78. package/harness/bundles/general/codebuddy/scripts/harness_service.py +1528 -177
  79. package/harness/bundles/general/codebuddy/scripts/harness_test_runner.py +224 -146
  80. package/harness/bundles/general/codebuddy/scripts/harness_verification.py +487 -8
  81. package/harness/bundles/general/codex/.harness-build.json +1 -1
  82. package/harness/bundles/general/codex/contracts/build-profile-v3.schema.json +156 -1
  83. package/harness/bundles/general/codex/contracts/fixtures/managed-execution.json +341 -0
  84. package/harness/bundles/general/codex/contracts/process-identity.schema.json +132 -0
  85. package/harness/bundles/general/codex/contracts/run-session.schema.json +142 -0
  86. package/harness/bundles/general/codex/contracts/service-retirement-receipt.schema.json +85 -0
  87. package/harness/bundles/general/codex/contracts/service-session.schema.json +147 -0
  88. package/harness/bundles/general/codex/harness-archive/SKILL.md +1 -1
  89. package/harness/bundles/general/codex/harness-archive/reference.md +1 -0
  90. package/harness/bundles/general/codex/harness-archive/templates/render-summary.mjs +8 -0
  91. package/harness/bundles/general/codex/harness-archive/templates/summary-data-template.json +28 -0
  92. package/harness/bundles/general/codex/harness-codebase-map/SKILL.md +1 -1
  93. package/harness/bundles/general/codex/harness-knowledge-ingest/SKILL.md +1 -1
  94. package/harness/bundles/general/codex/harness-knowledge-query/SKILL.md +1 -1
  95. package/harness/bundles/general/codex/harness-plan/SKILL.md +1 -1
  96. package/harness/bundles/general/codex/harness-review/SKILL.md +1 -1
  97. package/harness/bundles/general/codex/harness-run/SKILL.md +1 -1
  98. package/harness/bundles/general/codex/harness-run/reference.md +6 -1
  99. package/harness/bundles/general/codex/harness-submit/SKILL.md +1 -1
  100. package/harness/bundles/general/codex/harness-submit/checklist.md +12 -0
  101. package/harness/bundles/general/codex/harness-sync/SKILL.md +1 -1
  102. package/harness/bundles/general/codex/harness-test/SKILL.md +8 -2
  103. package/harness/bundles/general/codex/protocols/execution-session-protocol.md +52 -0
  104. package/harness/bundles/general/codex/protocols/state-layout-protocol.md +24 -1
  105. package/harness/bundles/general/codex/protocols/verification-graph-protocol.md +6 -0
  106. package/harness/bundles/general/codex/scripts/harness_archive.py +271 -22
  107. package/harness/bundles/general/codex/scripts/harness_change.py +137 -2
  108. package/harness/bundles/general/codex/scripts/harness_efficiency.py +443 -0
  109. package/harness/bundles/general/codex/scripts/harness_environment.py +760 -46
  110. package/harness/bundles/general/codex/scripts/harness_execution_contracts.py +596 -0
  111. package/harness/bundles/general/codex/scripts/harness_fixback.py +742 -0
  112. package/harness/bundles/general/codex/scripts/harness_integration.py +289 -52
  113. package/harness/bundles/general/codex/scripts/harness_ledger.py +5 -0
  114. package/harness/bundles/general/codex/scripts/harness_orchestration.py +344 -0
  115. package/harness/bundles/general/codex/scripts/harness_process.py +1065 -0
  116. package/harness/bundles/general/codex/scripts/harness_profile.py +278 -4
  117. package/harness/bundles/general/codex/scripts/harness_runtime.py +1576 -3
  118. package/harness/bundles/general/codex/scripts/harness_service.py +1528 -177
  119. package/harness/bundles/general/codex/scripts/harness_test_runner.py +224 -146
  120. package/harness/bundles/general/codex/scripts/harness_verification.py +487 -8
  121. package/harness/bundles/general/cursor/.harness-build.json +1 -1
  122. package/harness/bundles/general/cursor/contracts/build-profile-v3.schema.json +156 -1
  123. package/harness/bundles/general/cursor/contracts/fixtures/managed-execution.json +341 -0
  124. package/harness/bundles/general/cursor/contracts/process-identity.schema.json +132 -0
  125. package/harness/bundles/general/cursor/contracts/run-session.schema.json +142 -0
  126. package/harness/bundles/general/cursor/contracts/service-retirement-receipt.schema.json +85 -0
  127. package/harness/bundles/general/cursor/contracts/service-session.schema.json +147 -0
  128. package/harness/bundles/general/cursor/harness-archive/SKILL.md +1 -1
  129. package/harness/bundles/general/cursor/harness-archive/reference.md +1 -0
  130. package/harness/bundles/general/cursor/harness-archive/templates/render-summary.mjs +8 -0
  131. package/harness/bundles/general/cursor/harness-archive/templates/summary-data-template.json +28 -0
  132. package/harness/bundles/general/cursor/harness-codebase-map/SKILL.md +1 -1
  133. package/harness/bundles/general/cursor/harness-knowledge-ingest/SKILL.md +1 -1
  134. package/harness/bundles/general/cursor/harness-knowledge-query/SKILL.md +1 -1
  135. package/harness/bundles/general/cursor/harness-plan/SKILL.md +1 -1
  136. package/harness/bundles/general/cursor/harness-review/SKILL.md +1 -1
  137. package/harness/bundles/general/cursor/harness-run/SKILL.md +1 -1
  138. package/harness/bundles/general/cursor/harness-run/reference.md +6 -1
  139. package/harness/bundles/general/cursor/harness-submit/SKILL.md +1 -1
  140. package/harness/bundles/general/cursor/harness-submit/checklist.md +12 -0
  141. package/harness/bundles/general/cursor/harness-sync/SKILL.md +1 -1
  142. package/harness/bundles/general/cursor/harness-test/SKILL.md +8 -2
  143. package/harness/bundles/general/cursor/protocols/execution-session-protocol.md +52 -0
  144. package/harness/bundles/general/cursor/protocols/state-layout-protocol.md +24 -1
  145. package/harness/bundles/general/cursor/protocols/verification-graph-protocol.md +6 -0
  146. package/harness/bundles/general/cursor/scripts/harness_archive.py +271 -22
  147. package/harness/bundles/general/cursor/scripts/harness_change.py +137 -2
  148. package/harness/bundles/general/cursor/scripts/harness_efficiency.py +443 -0
  149. package/harness/bundles/general/cursor/scripts/harness_environment.py +760 -46
  150. package/harness/bundles/general/cursor/scripts/harness_execution_contracts.py +596 -0
  151. package/harness/bundles/general/cursor/scripts/harness_fixback.py +742 -0
  152. package/harness/bundles/general/cursor/scripts/harness_integration.py +289 -52
  153. package/harness/bundles/general/cursor/scripts/harness_ledger.py +5 -0
  154. package/harness/bundles/general/cursor/scripts/harness_orchestration.py +344 -0
  155. package/harness/bundles/general/cursor/scripts/harness_process.py +1065 -0
  156. package/harness/bundles/general/cursor/scripts/harness_profile.py +278 -4
  157. package/harness/bundles/general/cursor/scripts/harness_runtime.py +1576 -3
  158. package/harness/bundles/general/cursor/scripts/harness_service.py +1528 -177
  159. package/harness/bundles/general/cursor/scripts/harness_test_runner.py +224 -146
  160. package/harness/bundles/general/cursor/scripts/harness_verification.py +487 -8
  161. package/harness/bundles/java/claude-code/.harness-build.json +1 -1
  162. package/harness/bundles/java/claude-code/contracts/build-profile-v3.schema.json +156 -1
  163. package/harness/bundles/java/claude-code/contracts/fixtures/managed-execution.json +341 -0
  164. package/harness/bundles/java/claude-code/contracts/process-identity.schema.json +132 -0
  165. package/harness/bundles/java/claude-code/contracts/run-session.schema.json +142 -0
  166. package/harness/bundles/java/claude-code/contracts/service-retirement-receipt.schema.json +85 -0
  167. package/harness/bundles/java/claude-code/contracts/service-session.schema.json +147 -0
  168. package/harness/bundles/java/claude-code/harness-apidoc/SKILL.md +1 -1
  169. package/harness/bundles/java/claude-code/harness-archive/SKILL.md +1 -1
  170. package/harness/bundles/java/claude-code/harness-archive/reference.md +1 -0
  171. package/harness/bundles/java/claude-code/harness-archive/templates/render-summary.mjs +8 -0
  172. package/harness/bundles/java/claude-code/harness-archive/templates/summary-data-template.json +28 -0
  173. package/harness/bundles/java/claude-code/harness-codebase-map/SKILL.md +1 -1
  174. package/harness/bundles/java/claude-code/harness-knowledge-ingest/SKILL.md +1 -1
  175. package/harness/bundles/java/claude-code/harness-knowledge-query/SKILL.md +1 -1
  176. package/harness/bundles/java/claude-code/harness-package/SKILL.md +1 -1
  177. package/harness/bundles/java/claude-code/harness-plan/SKILL.md +1 -1
  178. package/harness/bundles/java/claude-code/harness-review/SKILL.md +1 -1
  179. package/harness/bundles/java/claude-code/harness-run/SKILL.md +1 -1
  180. package/harness/bundles/java/claude-code/harness-submit/SKILL.md +1 -1
  181. package/harness/bundles/java/claude-code/harness-submit/checklist.md +12 -0
  182. package/harness/bundles/java/claude-code/harness-sync/SKILL.md +1 -1
  183. package/harness/bundles/java/claude-code/harness-test/SKILL.md +8 -2
  184. package/harness/bundles/java/claude-code/protocols/execution-session-protocol.md +52 -0
  185. package/harness/bundles/java/claude-code/protocols/state-layout-protocol.md +24 -1
  186. package/harness/bundles/java/claude-code/protocols/verification-graph-protocol.md +6 -0
  187. package/harness/bundles/java/claude-code/scripts/harness_archive.py +271 -22
  188. package/harness/bundles/java/claude-code/scripts/harness_change.py +137 -2
  189. package/harness/bundles/java/claude-code/scripts/harness_efficiency.py +443 -0
  190. package/harness/bundles/java/claude-code/scripts/harness_environment.py +760 -46
  191. package/harness/bundles/java/claude-code/scripts/harness_execution_contracts.py +596 -0
  192. package/harness/bundles/java/claude-code/scripts/harness_fixback.py +742 -0
  193. package/harness/bundles/java/claude-code/scripts/harness_integration.py +289 -52
  194. package/harness/bundles/java/claude-code/scripts/harness_ledger.py +5 -0
  195. package/harness/bundles/java/claude-code/scripts/harness_orchestration.py +344 -0
  196. package/harness/bundles/java/claude-code/scripts/harness_process.py +1065 -0
  197. package/harness/bundles/java/claude-code/scripts/harness_profile.py +278 -4
  198. package/harness/bundles/java/claude-code/scripts/harness_runtime.py +1576 -3
  199. package/harness/bundles/java/claude-code/scripts/harness_service.py +1528 -177
  200. package/harness/bundles/java/claude-code/scripts/harness_test_runner.py +224 -146
  201. package/harness/bundles/java/claude-code/scripts/harness_verification.py +487 -8
  202. package/harness/bundles/java/codebuddy/.harness-build.json +1 -1
  203. package/harness/bundles/java/codebuddy/contracts/build-profile-v3.schema.json +156 -1
  204. package/harness/bundles/java/codebuddy/contracts/fixtures/managed-execution.json +341 -0
  205. package/harness/bundles/java/codebuddy/contracts/process-identity.schema.json +132 -0
  206. package/harness/bundles/java/codebuddy/contracts/run-session.schema.json +142 -0
  207. package/harness/bundles/java/codebuddy/contracts/service-retirement-receipt.schema.json +85 -0
  208. package/harness/bundles/java/codebuddy/contracts/service-session.schema.json +147 -0
  209. package/harness/bundles/java/codebuddy/harness-apidoc/SKILL.md +1 -1
  210. package/harness/bundles/java/codebuddy/harness-archive/SKILL.md +1 -1
  211. package/harness/bundles/java/codebuddy/harness-archive/reference.md +1 -0
  212. package/harness/bundles/java/codebuddy/harness-archive/templates/render-summary.mjs +8 -0
  213. package/harness/bundles/java/codebuddy/harness-archive/templates/summary-data-template.json +28 -0
  214. package/harness/bundles/java/codebuddy/harness-codebase-map/SKILL.md +1 -1
  215. package/harness/bundles/java/codebuddy/harness-knowledge-ingest/SKILL.md +1 -1
  216. package/harness/bundles/java/codebuddy/harness-knowledge-query/SKILL.md +1 -1
  217. package/harness/bundles/java/codebuddy/harness-package/SKILL.md +1 -1
  218. package/harness/bundles/java/codebuddy/harness-plan/SKILL.md +1 -1
  219. package/harness/bundles/java/codebuddy/harness-review/SKILL.md +1 -1
  220. package/harness/bundles/java/codebuddy/harness-run/SKILL.md +1 -1
  221. package/harness/bundles/java/codebuddy/harness-submit/SKILL.md +1 -1
  222. package/harness/bundles/java/codebuddy/harness-submit/checklist.md +12 -0
  223. package/harness/bundles/java/codebuddy/harness-sync/SKILL.md +1 -1
  224. package/harness/bundles/java/codebuddy/harness-test/SKILL.md +8 -2
  225. package/harness/bundles/java/codebuddy/protocols/execution-session-protocol.md +52 -0
  226. package/harness/bundles/java/codebuddy/protocols/state-layout-protocol.md +24 -1
  227. package/harness/bundles/java/codebuddy/protocols/verification-graph-protocol.md +6 -0
  228. package/harness/bundles/java/codebuddy/scripts/harness_archive.py +271 -22
  229. package/harness/bundles/java/codebuddy/scripts/harness_change.py +137 -2
  230. package/harness/bundles/java/codebuddy/scripts/harness_efficiency.py +443 -0
  231. package/harness/bundles/java/codebuddy/scripts/harness_environment.py +760 -46
  232. package/harness/bundles/java/codebuddy/scripts/harness_execution_contracts.py +596 -0
  233. package/harness/bundles/java/codebuddy/scripts/harness_fixback.py +742 -0
  234. package/harness/bundles/java/codebuddy/scripts/harness_integration.py +289 -52
  235. package/harness/bundles/java/codebuddy/scripts/harness_ledger.py +5 -0
  236. package/harness/bundles/java/codebuddy/scripts/harness_orchestration.py +344 -0
  237. package/harness/bundles/java/codebuddy/scripts/harness_process.py +1065 -0
  238. package/harness/bundles/java/codebuddy/scripts/harness_profile.py +278 -4
  239. package/harness/bundles/java/codebuddy/scripts/harness_runtime.py +1576 -3
  240. package/harness/bundles/java/codebuddy/scripts/harness_service.py +1528 -177
  241. package/harness/bundles/java/codebuddy/scripts/harness_test_runner.py +224 -146
  242. package/harness/bundles/java/codebuddy/scripts/harness_verification.py +487 -8
  243. package/harness/bundles/java/codex/.harness-build.json +1 -1
  244. package/harness/bundles/java/codex/contracts/build-profile-v3.schema.json +156 -1
  245. package/harness/bundles/java/codex/contracts/fixtures/managed-execution.json +341 -0
  246. package/harness/bundles/java/codex/contracts/process-identity.schema.json +132 -0
  247. package/harness/bundles/java/codex/contracts/run-session.schema.json +142 -0
  248. package/harness/bundles/java/codex/contracts/service-retirement-receipt.schema.json +85 -0
  249. package/harness/bundles/java/codex/contracts/service-session.schema.json +147 -0
  250. package/harness/bundles/java/codex/harness-apidoc/SKILL.md +1 -1
  251. package/harness/bundles/java/codex/harness-archive/SKILL.md +1 -1
  252. package/harness/bundles/java/codex/harness-archive/reference.md +1 -0
  253. package/harness/bundles/java/codex/harness-archive/templates/render-summary.mjs +8 -0
  254. package/harness/bundles/java/codex/harness-archive/templates/summary-data-template.json +28 -0
  255. package/harness/bundles/java/codex/harness-codebase-map/SKILL.md +1 -1
  256. package/harness/bundles/java/codex/harness-knowledge-ingest/SKILL.md +1 -1
  257. package/harness/bundles/java/codex/harness-knowledge-query/SKILL.md +1 -1
  258. package/harness/bundles/java/codex/harness-package/SKILL.md +1 -1
  259. package/harness/bundles/java/codex/harness-plan/SKILL.md +1 -1
  260. package/harness/bundles/java/codex/harness-review/SKILL.md +1 -1
  261. package/harness/bundles/java/codex/harness-run/SKILL.md +1 -1
  262. package/harness/bundles/java/codex/harness-submit/SKILL.md +1 -1
  263. package/harness/bundles/java/codex/harness-submit/checklist.md +12 -0
  264. package/harness/bundles/java/codex/harness-sync/SKILL.md +1 -1
  265. package/harness/bundles/java/codex/harness-test/SKILL.md +8 -2
  266. package/harness/bundles/java/codex/protocols/execution-session-protocol.md +52 -0
  267. package/harness/bundles/java/codex/protocols/state-layout-protocol.md +24 -1
  268. package/harness/bundles/java/codex/protocols/verification-graph-protocol.md +6 -0
  269. package/harness/bundles/java/codex/scripts/harness_archive.py +271 -22
  270. package/harness/bundles/java/codex/scripts/harness_change.py +137 -2
  271. package/harness/bundles/java/codex/scripts/harness_efficiency.py +443 -0
  272. package/harness/bundles/java/codex/scripts/harness_environment.py +760 -46
  273. package/harness/bundles/java/codex/scripts/harness_execution_contracts.py +596 -0
  274. package/harness/bundles/java/codex/scripts/harness_fixback.py +742 -0
  275. package/harness/bundles/java/codex/scripts/harness_integration.py +289 -52
  276. package/harness/bundles/java/codex/scripts/harness_ledger.py +5 -0
  277. package/harness/bundles/java/codex/scripts/harness_orchestration.py +344 -0
  278. package/harness/bundles/java/codex/scripts/harness_process.py +1065 -0
  279. package/harness/bundles/java/codex/scripts/harness_profile.py +278 -4
  280. package/harness/bundles/java/codex/scripts/harness_runtime.py +1576 -3
  281. package/harness/bundles/java/codex/scripts/harness_service.py +1528 -177
  282. package/harness/bundles/java/codex/scripts/harness_test_runner.py +224 -146
  283. package/harness/bundles/java/codex/scripts/harness_verification.py +487 -8
  284. package/harness/bundles/java/cursor/.harness-build.json +1 -1
  285. package/harness/bundles/java/cursor/contracts/build-profile-v3.schema.json +156 -1
  286. package/harness/bundles/java/cursor/contracts/fixtures/managed-execution.json +341 -0
  287. package/harness/bundles/java/cursor/contracts/process-identity.schema.json +132 -0
  288. package/harness/bundles/java/cursor/contracts/run-session.schema.json +142 -0
  289. package/harness/bundles/java/cursor/contracts/service-retirement-receipt.schema.json +85 -0
  290. package/harness/bundles/java/cursor/contracts/service-session.schema.json +147 -0
  291. package/harness/bundles/java/cursor/harness-apidoc/SKILL.md +1 -1
  292. package/harness/bundles/java/cursor/harness-archive/SKILL.md +1 -1
  293. package/harness/bundles/java/cursor/harness-archive/reference.md +1 -0
  294. package/harness/bundles/java/cursor/harness-archive/templates/render-summary.mjs +8 -0
  295. package/harness/bundles/java/cursor/harness-archive/templates/summary-data-template.json +28 -0
  296. package/harness/bundles/java/cursor/harness-codebase-map/SKILL.md +1 -1
  297. package/harness/bundles/java/cursor/harness-knowledge-ingest/SKILL.md +1 -1
  298. package/harness/bundles/java/cursor/harness-knowledge-query/SKILL.md +1 -1
  299. package/harness/bundles/java/cursor/harness-package/SKILL.md +1 -1
  300. package/harness/bundles/java/cursor/harness-plan/SKILL.md +1 -1
  301. package/harness/bundles/java/cursor/harness-review/SKILL.md +1 -1
  302. package/harness/bundles/java/cursor/harness-run/SKILL.md +1 -1
  303. package/harness/bundles/java/cursor/harness-submit/SKILL.md +1 -1
  304. package/harness/bundles/java/cursor/harness-submit/checklist.md +12 -0
  305. package/harness/bundles/java/cursor/harness-sync/SKILL.md +1 -1
  306. package/harness/bundles/java/cursor/harness-test/SKILL.md +8 -2
  307. package/harness/bundles/java/cursor/protocols/execution-session-protocol.md +52 -0
  308. package/harness/bundles/java/cursor/protocols/state-layout-protocol.md +24 -1
  309. package/harness/bundles/java/cursor/protocols/verification-graph-protocol.md +6 -0
  310. package/harness/bundles/java/cursor/scripts/harness_archive.py +271 -22
  311. package/harness/bundles/java/cursor/scripts/harness_change.py +137 -2
  312. package/harness/bundles/java/cursor/scripts/harness_efficiency.py +443 -0
  313. package/harness/bundles/java/cursor/scripts/harness_environment.py +760 -46
  314. package/harness/bundles/java/cursor/scripts/harness_execution_contracts.py +596 -0
  315. package/harness/bundles/java/cursor/scripts/harness_fixback.py +742 -0
  316. package/harness/bundles/java/cursor/scripts/harness_integration.py +289 -52
  317. package/harness/bundles/java/cursor/scripts/harness_ledger.py +5 -0
  318. package/harness/bundles/java/cursor/scripts/harness_orchestration.py +344 -0
  319. package/harness/bundles/java/cursor/scripts/harness_process.py +1065 -0
  320. package/harness/bundles/java/cursor/scripts/harness_profile.py +278 -4
  321. package/harness/bundles/java/cursor/scripts/harness_runtime.py +1576 -3
  322. package/harness/bundles/java/cursor/scripts/harness_service.py +1528 -177
  323. package/harness/bundles/java/cursor/scripts/harness_test_runner.py +224 -146
  324. package/harness/bundles/java/cursor/scripts/harness_verification.py +487 -8
  325. package/harness/manifests/general/claude-code.json +76 -31
  326. package/harness/manifests/general/codebuddy.json +76 -31
  327. package/harness/manifests/general/codex.json +76 -31
  328. package/harness/manifests/general/cursor.json +76 -31
  329. package/harness/manifests/java/claude-code.json +77 -32
  330. package/harness/manifests/java/codebuddy.json +77 -32
  331. package/harness/manifests/java/codex.json +77 -32
  332. package/harness/manifests/java/cursor.json +77 -32
  333. package/hunter-workflow-family.json +6 -4
  334. package/package.json +1 -1
@@ -0,0 +1,142 @@
1
+ {
2
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
3
+ "$id": "https://hunter-harness.dev/contracts/run-session.schema.json",
4
+ "title": "Hunter Harness managed run session",
5
+ "type": "object",
6
+ "additionalProperties": false,
7
+ "required": [
8
+ "schemaVersion",
9
+ "sessionId",
10
+ "status",
11
+ "reasonCode",
12
+ "exitCode",
13
+ "processIdentity",
14
+ "heartbeat",
15
+ "logs",
16
+ "cleanup",
17
+ "resultDigest"
18
+ ],
19
+ "properties": {
20
+ "schemaVersion": { "const": 1 },
21
+ "sessionId": { "type": "string", "minLength": 1 },
22
+ "status": {
23
+ "enum": [
24
+ "PREPARING",
25
+ "STARTING",
26
+ "RUNNING",
27
+ "FINALIZING",
28
+ "OK",
29
+ "FAIL",
30
+ "CANCELLED",
31
+ "INCOMPLETE"
32
+ ]
33
+ },
34
+ "reasonCode": { "$ref": "#/$defs/reasonCode" },
35
+ "exitCode": { "type": ["integer", "null"] },
36
+ "processIdentity": { "type": ["object", "null"] },
37
+ "heartbeat": {
38
+ "oneOf": [
39
+ { "type": "null" },
40
+ { "$ref": "#/$defs/heartbeat" }
41
+ ]
42
+ },
43
+ "logs": {
44
+ "type": "object",
45
+ "additionalProperties": false,
46
+ "required": ["stdout", "stderr"],
47
+ "properties": {
48
+ "stdout": { "$ref": "#/$defs/logStream" },
49
+ "stderr": { "$ref": "#/$defs/logStream" }
50
+ }
51
+ },
52
+ "cleanup": {
53
+ "type": "object",
54
+ "additionalProperties": false,
55
+ "required": ["complete", "reasonCode"],
56
+ "properties": {
57
+ "complete": { "type": "boolean" },
58
+ "reasonCode": {
59
+ "oneOf": [
60
+ { "$ref": "#/$defs/reasonCode" },
61
+ { "type": "null" }
62
+ ]
63
+ }
64
+ }
65
+ },
66
+ "resultDigest": {
67
+ "oneOf": [
68
+ { "$ref": "#/$defs/digest" },
69
+ { "type": "null" }
70
+ ]
71
+ }
72
+ },
73
+ "allOf": [
74
+ {
75
+ "if": {
76
+ "properties": { "status": { "enum": ["OK", "FAIL"] } },
77
+ "required": ["status"]
78
+ },
79
+ "then": {
80
+ "properties": {
81
+ "exitCode": { "type": "integer" },
82
+ "resultDigest": { "$ref": "#/$defs/digest" }
83
+ }
84
+ }
85
+ },
86
+ {
87
+ "if": {
88
+ "properties": { "status": { "const": "INCOMPLETE" } },
89
+ "required": ["status"]
90
+ },
91
+ "then": {
92
+ "properties": {
93
+ "exitCode": { "type": "null" },
94
+ "resultDigest": { "$ref": "#/$defs/digest" }
95
+ }
96
+ }
97
+ }
98
+ ],
99
+ "$defs": {
100
+ "digest": {
101
+ "type": "string",
102
+ "pattern": "^sha256:[0-9a-f]{64}$"
103
+ },
104
+ "reasonCode": {
105
+ "type": "string",
106
+ "minLength": 1
107
+ },
108
+ "heartbeat": {
109
+ "type": "object",
110
+ "additionalProperties": false,
111
+ "required": [
112
+ "kind",
113
+ "writerIdentity",
114
+ "lastSeenAt",
115
+ "ttlSeconds",
116
+ "staleReason"
117
+ ],
118
+ "properties": {
119
+ "kind": { "enum": ["WORKER", "SUPERVISOR", "OBSERVER"] },
120
+ "writerIdentity": { "$ref": "#/$defs/digest" },
121
+ "lastSeenAt": { "type": "string", "minLength": 1 },
122
+ "ttlSeconds": { "type": "integer", "minimum": 1 },
123
+ "staleReason": {
124
+ "oneOf": [
125
+ { "$ref": "#/$defs/reasonCode" },
126
+ { "type": "null" }
127
+ ]
128
+ }
129
+ }
130
+ },
131
+ "logStream": {
132
+ "type": "object",
133
+ "additionalProperties": false,
134
+ "required": ["cursor", "rawDigest", "decodeStatus"],
135
+ "properties": {
136
+ "cursor": { "type": "integer", "minimum": 0 },
137
+ "rawDigest": { "$ref": "#/$defs/digest" },
138
+ "decodeStatus": { "enum": ["OK", "LOG_DECODE_DEGRADED"] }
139
+ }
140
+ }
141
+ }
142
+ }
@@ -0,0 +1,85 @@
1
+ {
2
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
3
+ "$id": "https://hunter-harness.dev/contracts/service-retirement-receipt.schema.json",
4
+ "title": "Hunter Harness service retirement receipt",
5
+ "type": "object",
6
+ "additionalProperties": false,
7
+ "required": [
8
+ "schemaVersion",
9
+ "receiptId",
10
+ "operationId",
11
+ "serviceId",
12
+ "oldSessionId",
13
+ "oldGeneration",
14
+ "state",
15
+ "retirementStateCommit",
16
+ "leaseCleanup",
17
+ "cleanupComplete",
18
+ "awaitingSuperseder",
19
+ "supersededBySessionId",
20
+ "receiptDigest"
21
+ ],
22
+ "properties": {
23
+ "schemaVersion": { "const": 1 },
24
+ "receiptId": { "type": "string", "minLength": 1 },
25
+ "operationId": { "type": "string", "minLength": 1 },
26
+ "serviceId": { "type": "string", "minLength": 1 },
27
+ "oldSessionId": { "type": "string", "minLength": 1 },
28
+ "oldGeneration": { "type": "integer", "minimum": 1 },
29
+ "state": { "enum": ["PENDING", "FINALIZED"] },
30
+ "retirementStateCommit": {
31
+ "type": "object",
32
+ "additionalProperties": false,
33
+ "required": ["status", "reasonCode"],
34
+ "properties": {
35
+ "status": { "enum": ["PENDING", "COMMITTED", "CONFLICT"] },
36
+ "reasonCode": { "type": "string", "minLength": 1 }
37
+ }
38
+ },
39
+ "leaseCleanup": {
40
+ "type": "object",
41
+ "additionalProperties": false,
42
+ "required": ["status", "reasonCode", "leaseId"],
43
+ "properties": {
44
+ "status": { "enum": ["PENDING", "RELEASED", "RETAINED", "UNVERIFIED"] },
45
+ "reasonCode": { "type": "string", "minLength": 1 },
46
+ "leaseId": { "type": ["string", "null"], "minLength": 1 }
47
+ }
48
+ },
49
+ "cleanupComplete": { "type": "boolean" },
50
+ "awaitingSuperseder": { "type": "boolean" },
51
+ "supersededBySessionId": { "type": ["string", "null"], "minLength": 1 },
52
+ "receiptDigest": {
53
+ "type": "string",
54
+ "pattern": "^sha256:[0-9a-f]{64}$"
55
+ }
56
+ },
57
+ "allOf": [
58
+ {
59
+ "if": {
60
+ "properties": {
61
+ "leaseCleanup": {
62
+ "properties": { "status": { "const": "RELEASED" } },
63
+ "required": ["status"]
64
+ }
65
+ },
66
+ "required": ["leaseCleanup"]
67
+ },
68
+ "then": {
69
+ "properties": { "cleanupComplete": { "const": true } }
70
+ },
71
+ "else": {
72
+ "properties": { "cleanupComplete": { "const": false } }
73
+ }
74
+ },
75
+ {
76
+ "if": {
77
+ "properties": { "awaitingSuperseder": { "const": true } },
78
+ "required": ["awaitingSuperseder"]
79
+ },
80
+ "then": {
81
+ "properties": { "supersededBySessionId": { "type": "null" } }
82
+ }
83
+ }
84
+ ]
85
+ }
@@ -0,0 +1,147 @@
1
+ {
2
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
3
+ "$id": "https://hunter-harness.dev/contracts/service-session.schema.json",
4
+ "title": "Hunter Harness managed service session",
5
+ "type": "object",
6
+ "additionalProperties": false,
7
+ "required": [
8
+ "schemaVersion",
9
+ "serviceId",
10
+ "sessionId",
11
+ "status",
12
+ "reasonCode",
13
+ "serviceGeneration",
14
+ "stateRevision",
15
+ "operationId",
16
+ "fingerprint",
17
+ "processIdentity",
18
+ "heartbeat",
19
+ "leaseIdentity",
20
+ "transitionHistory",
21
+ "cleanupComplete",
22
+ "supersedesSessionId"
23
+ ],
24
+ "properties": {
25
+ "schemaVersion": { "const": 1 },
26
+ "serviceId": { "type": "string", "minLength": 1 },
27
+ "sessionId": { "type": "string", "minLength": 1 },
28
+ "status": {
29
+ "enum": [
30
+ "STARTING",
31
+ "READY",
32
+ "STOPPING",
33
+ "STOPPED",
34
+ "FAILED",
35
+ "STALE_IDENTITY_MISMATCH",
36
+ "RETIRED"
37
+ ]
38
+ },
39
+ "reasonCode": { "type": "string", "minLength": 1 },
40
+ "serviceGeneration": { "type": "integer", "minimum": 1 },
41
+ "stateRevision": { "type": "integer", "minimum": 1 },
42
+ "operationId": { "type": "string", "minLength": 1 },
43
+ "fingerprint": { "$ref": "#/$defs/digest" },
44
+ "processIdentity": { "type": ["object", "null"] },
45
+ "heartbeat": {
46
+ "oneOf": [
47
+ { "type": "null" },
48
+ {
49
+ "type": "object",
50
+ "additionalProperties": false,
51
+ "required": [
52
+ "kind",
53
+ "writerIdentity",
54
+ "generation",
55
+ "lastSeenAt",
56
+ "ttlSeconds",
57
+ "staleReason"
58
+ ],
59
+ "properties": {
60
+ "kind": { "enum": ["SUPERVISOR", "OBSERVER"] },
61
+ "writerIdentity": { "$ref": "#/$defs/digest" },
62
+ "generation": { "type": "integer", "minimum": 1 },
63
+ "lastSeenAt": { "type": "string", "minLength": 1 },
64
+ "ttlSeconds": { "type": "integer", "minimum": 1 },
65
+ "staleReason": { "type": ["string", "null"] }
66
+ }
67
+ }
68
+ ]
69
+ },
70
+ "leaseIdentity": {
71
+ "oneOf": [
72
+ { "type": "null" },
73
+ {
74
+ "type": "object",
75
+ "additionalProperties": false,
76
+ "required": [
77
+ "leaseId",
78
+ "changeId",
79
+ "runId",
80
+ "expiresAt",
81
+ "generation"
82
+ ],
83
+ "properties": {
84
+ "leaseId": { "type": "string", "minLength": 1 },
85
+ "changeId": { "type": "string", "minLength": 1 },
86
+ "runId": { "type": "string", "minLength": 1 },
87
+ "expiresAt": { "type": "string", "minLength": 1 },
88
+ "generation": { "type": "integer", "minimum": 1 },
89
+ "listenerIdentity": { "type": "object" }
90
+ }
91
+ }
92
+ ]
93
+ },
94
+ "transitionHistory": {
95
+ "type": "array",
96
+ "items": {
97
+ "type": "object",
98
+ "additionalProperties": false,
99
+ "required": ["from", "to", "reasonCode", "revision"],
100
+ "properties": {
101
+ "from": {
102
+ "type": ["string", "null"]
103
+ },
104
+ "to": { "type": "string", "minLength": 1 },
105
+ "reasonCode": { "type": "string", "minLength": 1 },
106
+ "revision": { "type": "integer", "minimum": 1 },
107
+ "operationId": { "type": "string", "minLength": 1 },
108
+ "at": { "type": "string", "minLength": 1 }
109
+ }
110
+ }
111
+ },
112
+ "cleanupComplete": { "type": "boolean" },
113
+ "supersedesSessionId": { "type": ["string", "null"], "minLength": 1 },
114
+ "pid": { "type": "integer", "minimum": 1 },
115
+ "startedBy": { "type": "string", "minLength": 1 },
116
+ "moduleInputsHash": { "$ref": "#/$defs/digest" },
117
+ "moduleInputsFiles": { "type": "array", "items": { "type": "string" } },
118
+ "profile": { "type": "string", "minLength": 1 },
119
+ "startCommandHash": { "$ref": "#/$defs/digest" },
120
+ "overlayPath": { "type": "string" },
121
+ "startedAt": { "type": "string", "minLength": 1 },
122
+ "command": { "type": "string" },
123
+ "argv": { "type": "array", "items": { "type": "string" } },
124
+ "ownedPorts": {
125
+ "type": "array",
126
+ "items": { "type": "integer", "minimum": 1, "maximum": 65535 }
127
+ },
128
+ "processAttestation": { "type": "object" },
129
+ "ownershipProof": { "type": "object" },
130
+ "servicePid": { "type": "integer", "minimum": 1 },
131
+ "jobId": { "type": "string", "minLength": 1 },
132
+ "leasedPort": { "type": "integer", "minimum": 1, "maximum": 65535 },
133
+ "leaseOwner": { "type": ["string", "null"] },
134
+ "worktreeRoot": { "type": "string", "minLength": 1 },
135
+ "executionRoot": { "type": "string", "minLength": 1 },
136
+ "changeId": { "type": "string", "minLength": 1 },
137
+ "attemptId": { "type": "string", "minLength": 1 },
138
+ "instanceTokenHash": { "$ref": "#/$defs/digest" },
139
+ "identityCompleteness": { "type": "string", "minLength": 1 }
140
+ },
141
+ "$defs": {
142
+ "digest": {
143
+ "type": "string",
144
+ "pattern": "^sha256:[0-9a-f]{64}$"
145
+ }
146
+ }
147
+ }
@@ -3,7 +3,7 @@ name: harness-archive
3
3
  description: 归档所有变更产出(计划/测试报告/审查/SQL/API文档)到
4
4
  .harness/archive/,含归档元数据和可视化最终总结。使用场景:归档、完成归档、收尾、打包产出物
5
5
  ---
6
- <!-- generated by harness_deploy.py; core=33013358599f6743; overlay=none; agent=codex; do not edit -->
6
+ <!-- generated by harness_deploy.py; core=87d21aa6ff19f7c7; overlay=none; agent=codex; do not edit -->
7
7
  # harness-archive — 变更归档
8
8
 
9
9
  ## Purpose
@@ -47,6 +47,7 @@ powershell.exe -NoProfile -ExecutionPolicy Bypass -File "harness-skills/harness-
47
47
  - `durations`:totalMinutes + stages[{stage,skill,startedAt,endedAt,minutes,result}] —— 从 `logs/execution-log.md` 各 `[N] harness-<skill>` 小节的 `开始`/`结束`/`耗时` 解析;
48
48
  - `skillCalls`:每个 skill 的调用次数(含重入)+ 结果 —— 从 execution-log 统计;
49
49
  - `verification`:单元/API/覆盖展示,含 passRate —— 来自 `evidence/verification-ledger.json`;
50
+ - `efficiency`:墙钟/活动/资源等待、验证尝试、失败分类、环境 prepare/reuse/reset/cleanup、重复命令与 wrapper 数 —— 由 `harness_efficiency.py` 从运行回执自动汇总;
50
51
  - `changedFiles`:path/summary/insertions/deletions —— 来自 `git diff --numstat <base>..<head>`;
51
52
  - `reviewSummary`:red/yellow + redFixed/redConfirmed/yellowFixed/yellowDeferred 修复进度;
52
53
  - `maintenanceNotes`:给后续维护者看的结论;
@@ -201,6 +201,10 @@ const releaseHtml = recordOnly ? "" : `
201
201
  const remoteCost = record(measurements.remoteCost);
202
202
  const remoteCostTotals = record(remoteCost.totals);
203
203
  const storage = record(measurements.artifactStorage);
204
+ const efficiency = record(data.efficiency);
205
+ const efficiencyTiming = record(efficiency.timing);
206
+ const environmentActions = record(efficiency.environment);
207
+ const failureClasses = record(efficiency.failureClasses);
204
208
  const projection = record(data.projection);
205
209
  const durability = record(data.archiveDurability);
206
210
  const durabilityStatus = durability.status || "ARCHIVED_LOCAL_ONLY";
@@ -264,6 +268,10 @@ ${scenarioCoverageHtml}
264
268
  <div class="fact"><span>未归因 <code title="agentOrToolUnattributedMs">agentOrToolUnattributed</code></span><strong>${esc(duration(timing.agentOrToolUnattributedMs))}</strong></div>
265
269
  <div class="fact"><span>远端 runner 成本</span><strong>${measurement(remoteCostTotals.runnerMinutes ?? remoteCost.runnerMinutes, " 分钟")}</strong></div>
266
270
  <div class="fact"><span>新增制品字节</span><strong>${measurement(storage.bytesAdded, " bytes")}</strong></div>
271
+ <div class="fact"><span>验证尝试 / 资源等待</span><strong>${esc(efficiency.verificationAttempts ?? 0)} / ${esc(duration(efficiencyTiming.resourceWaitMs))}</strong></div>
272
+ <div class="fact"><span>环境准备 / 复用 / 重置 / 清理</span><strong>${esc(environmentActions.prepare ?? 0)} / ${esc(environmentActions.reuse ?? 0)} / ${esc(environmentActions.reset ?? 0)} / ${esc(environmentActions.cleanup ?? 0)}</strong></div>
273
+ <div class="fact"><span>启动器 / 环境 / 测试 / 外部失败</span><strong>${esc(failureClasses.launcher ?? 0)} / ${esc(failureClasses.environment ?? 0)} / ${esc(failureClasses.test ?? 0)} / ${esc(failureClasses.external ?? 0)}</strong></div>
274
+ <div class="fact"><span>无新证据的重复命令</span><strong>${esc(efficiency.repeatedCommandsWithoutNewEvidence ?? 0)}</strong></div>
267
275
  <div class="fact"><span>守恒差值 <code>conservationDeltaMs</code></span><strong>${esc(timing.conservationDeltaMs ?? "N/A")}</strong></div>
268
276
  </div></details>
269
277
  <details><summary>阶段状态</summary><div class="table-wrap"><table><thead><tr><th>阶段</th><th>结果</th></tr></thead><tbody>${stageHtml}</tbody></table></div></details>
@@ -125,6 +125,34 @@
125
125
  "duplicateRunCount": 0
126
126
  }
127
127
  },
128
+ "efficiency": {
129
+ "schemaVersion": 1,
130
+ "timing": {
131
+ "wallClockMs": 0,
132
+ "activeTimeMs": 0,
133
+ "resourceWaitMs": 0
134
+ },
135
+ "verificationAttempts": 0,
136
+ "statusCounts": {},
137
+ "failureClasses": {
138
+ "launcher": 0,
139
+ "environment": 0,
140
+ "test": 0,
141
+ "external": 0,
142
+ "unknown": 0
143
+ },
144
+ "invalidationReasons": {},
145
+ "environment": {
146
+ "prepare": 0,
147
+ "reuse": 0,
148
+ "reset": 0,
149
+ "cleanup": 0
150
+ },
151
+ "productIdentityCount": 0,
152
+ "repeatedCommandsWithoutNewEvidence": 0,
153
+ "manualWrapperCount": 0,
154
+ "notes": []
155
+ },
128
156
  "reviewSummary": {
129
157
  "status": "ADVISORY",
130
158
  "red": 0,
@@ -3,7 +3,7 @@ name: harness-codebase-map
3
3
  description: 分析现有代码库并生成 .harness/codebase/map/
4
4
  下的结构化代码库地图。用于陌生项目理解、重大改造前梳理、harness-sync 提示 map 过期后的人工刷新。
5
5
  ---
6
- <!-- generated by harness_deploy.py; core=33013358599f6743; overlay=none; agent=codex; do not edit -->
6
+ <!-- generated by harness_deploy.py; core=87d21aa6ff19f7c7; overlay=none; agent=codex; do not edit -->
7
7
  # harness-codebase-map — 代码库地图
8
8
 
9
9
  ## Purpose
@@ -3,7 +3,7 @@ name: harness-knowledge-ingest
3
3
  description: 从 .harness/archive 归档整理、同步和维护项目知识索引。适用场景:ingest knowledge、sync
4
4
  knowledge、rebuild knowledge index、promote knowledge、确认知识条目、检查知识库是否过期。
5
5
  ---
6
- <!-- generated by harness_deploy.py; core=33013358599f6743; overlay=none; agent=codex; do not edit -->
6
+ <!-- generated by harness_deploy.py; core=87d21aa6ff19f7c7; overlay=none; agent=codex; do not edit -->
7
7
  # harness-knowledge-ingest
8
8
 
9
9
  从 `.harness/archive/**/reports/final/summary-data.json` 抽取项目知识,生成并维护本地 `.harness/knowledge/` 索引。
@@ -3,7 +3,7 @@ name: harness-knowledge-query
3
3
  description: 根据新需求、设计任务、代码修改请求或问题排查,在规划和编码前查询 .harness/knowledge
4
4
  历史上下文。适用场景:query knowledge、查找历史需求、根据归档理解需求、继续之前类似开发、生成需求上下文包。
5
5
  ---
6
- <!-- generated by harness_deploy.py; core=33013358599f6743; overlay=none; agent=codex; do not edit -->
6
+ <!-- generated by harness_deploy.py; core=87d21aa6ff19f7c7; overlay=none; agent=codex; do not edit -->
7
7
  # harness-knowledge-query
8
8
 
9
9
  并行 change 中查询必须传 `--change <change-id>`;成功后以该 change 的 `meta/knowledge-context.json` 为稳定指针。全局 `context-packs/latest.json` 仅向后兼容,不得用于判断多个 active change 的上下文归属。
@@ -2,7 +2,7 @@
2
2
  name: harness-plan
3
3
  description: 将需求转化为设计文档+实施计划+完整测试场景表,必须在编码前完成。使用场景:需求分析、feature plan、技术方案设计、实现方案规划
4
4
  ---
5
- <!-- generated by harness_deploy.py; core=33013358599f6743; overlay=none; agent=codex; do not edit -->
5
+ <!-- generated by harness_deploy.py; core=87d21aa6ff19f7c7; overlay=none; agent=codex; do not edit -->
6
6
  # harness-plan — 需求规划
7
7
 
8
8
  ## Purpose
@@ -3,7 +3,7 @@ name: harness-review
3
3
  description: 6维度代码审查(架构/安全/规范/兼容/测试/性能),对照项目规则(见
4
4
  .harness/context-index.json)和测试场景表,在隔离上下文运行。使用场景:代码审查、提交前检查、合并评审
5
5
  ---
6
- <!-- generated by harness_deploy.py; core=33013358599f6743; overlay=none; agent=codex; do not edit -->
6
+ <!-- generated by harness_deploy.py; core=87d21aa6ff19f7c7; overlay=none; agent=codex; do not edit -->
7
7
  # harness-review — 代码审查
8
8
 
9
9
  ## Purpose
@@ -2,7 +2,7 @@
2
2
  name: harness-run
3
3
  description: 按变更簇执行 TDD 编码循环(RED→GREEN→REFACTOR→编译验证),逐变更簇实现计划中的任务。使用场景:开始编码、实现功能、写代码、TDD 编码
4
4
  ---
5
- <!-- generated by harness_deploy.py; core=33013358599f6743; overlay=none; agent=codex; do not edit -->
5
+ <!-- generated by harness_deploy.py; core=87d21aa6ff19f7c7; overlay=none; agent=codex; do not edit -->
6
6
  # harness-run — 需求编码
7
7
 
8
8
  ## Purpose
@@ -94,7 +94,7 @@ requested=true + path missing
94
94
  6. **读取测试场景表**:`.harness/changes/<change-name>/plans/<change-name>-test-scenarios.md` → 获取测试真相源
95
95
  7. **读取验证账本**:`.harness/changes/<change-name>/evidence/verification-ledger.json`(如存在)→ 复用已有 compile/unitTest 结果
96
96
  8. **读取任务状态**:`.harness/changes/<change-name>/evidence/run-task-status.md`(如存在)→ 恢复上次运行状态
97
- 9. **读取 review fixback**:用户传入 `--fixback` 或要求修复 review 问题时,读取最新 `.harness/changes/<change-name>/reports/review/fixback-*.md`,并将 RED/YELLOW 条目映射为本轮变更簇
97
+ 9. **读取 review fixback**:用户传入 `--fixback` 或要求修复 review 问题时,读取最新 `.harness/changes/<change-name>/reports/review/fixback-*.md`,并用 `harness_fixback.py` 将相关 RED/YELLOW 条目合并为一个批次;每条问题保留 RED/GREEN 证据,批次关闭后只触发一次 affected verification 与一次 review
98
98
  10. 确认 `项目规则(见 .harness/context-index.json)/` 规则已加载
99
99
  11. **执行测试基础设施探测**(见下方"步骤 0.5")
100
100
  12. 确认构建环境正常(构建命令按技术栈,见项目 CLAUDE.md 或 `.harness/config/harness-build-config.md`;如 Java 的 `powershell.exe -Command "mvn compile -pl <module> -o -q"`)
@@ -102,6 +102,11 @@ requested=true + path missing
102
102
  14. **依赖模块预安装**:如果在 worktree 中执行,检查上游依赖是否已安装(如 Java 的 `mvn install` 到本地仓库、前端的依赖已 install)。缺失时先执行对应安装命令(Java 示例:`powershell.exe -Command "mvn install -pl <upstream-modules> -am -DskipTests -nsu"`)
103
103
  15. **代码探索优先用 codegraph_explore**:一次调用可获取多个相关符号的源码,替代逐个 Read 文件。违反 `项目 codegraph 规则` 规则逐个 Read 会浪费 3-5 分钟。仅在 codegraph 返回结果不完整时补充 Read
104
104
 
105
+ 长时编译或验证不得依赖当前对话持续在线;使用 `harness_runtime.py run-start` 创建
106
+ 受管会话,并以状态/日志游标重连。并行执行前先调用
107
+ `harness_verification.py` 的 `plan` 模式取得资源锁 wave;没有资源声明的重任务保持串行。详见
108
+ `../protocols/execution-session-protocol.md`。
109
+
105
110
  ### 步骤 0.0:正式产物来源确认
106
111
 
107
112
  在读取计划文件后,确认本次执行只使用 `.harness/changes/<change-name>/` 下的正式产物:
@@ -3,7 +3,7 @@ name: harness-submit
3
3
  description: 最终提交封装:验证→中文 commit→提交/推送;worktree 模式含 --no-ff
4
4
  合并回主分支。使用场景:提交代码、commit、push、合并分支、merge to main、完成开发
5
5
  ---
6
- <!-- generated by harness_deploy.py; core=33013358599f6743; overlay=none; agent=codex; do not edit -->
6
+ <!-- generated by harness_deploy.py; core=87d21aa6ff19f7c7; overlay=none; agent=codex; do not edit -->
7
7
  # harness-submit — 最终提交(含 worktree 合并)
8
8
 
9
9
  ## Purpose
@@ -389,6 +389,18 @@ python harness/scripts/harness_integration.py push --change <change-name> --run-
389
389
 
390
390
  远端基线漂移 → `TARGET_MOVED` 结构化失败,不继续。成功后 journal `pushedHead` 即 `mergeFinalHash`。
391
391
 
392
+ 若远端已确认 mergeCommit,但包装事务名与证据所属 Change 不同,导致
393
+ `LEDGER_SYNC_PENDING / LEDGER_MISSING`,必须显式指定真实证据归属后恢复:
394
+
395
+ ```powershell
396
+ python harness/scripts/harness_integration.py recover --change <transaction-change> --evidence-change <evidence-change> --run-id <run-id> --feature-branch harness/<transaction-change> --target-branch <主分支> --temp-root <task-temp>
397
+ ```
398
+
399
+ 该覆盖只允许修复“默认同名台账缺失”的远端已确认事务;一旦 journal 已绑定证据
400
+ Change,后续传入不同值会 fail closed。目标台账的既有三项集成哈希必须精确匹配
401
+ 本事务基线(或已匹配本次 mergeCommit),作为前序集成交接身份;禁止为包装事务
402
+ 伪造空台账或覆盖其他历史 Change 的集成哈希。
403
+
392
404
  ### 步骤 M6:cleanup
393
405
 
394
406
  ```powershell
@@ -4,7 +4,7 @@ description: Use when the user asks to synchronize, refresh, or validate Harness
4
4
  metadata, adapters, knowledge, rules, instruction entrypoints, config origins,
5
5
  or CodeGraph status.
6
6
  ---
7
- <!-- generated by harness_deploy.py; core=33013358599f6743; overlay=none; agent=codex; do not edit -->
7
+ <!-- generated by harness_deploy.py; core=87d21aa6ff19f7c7; overlay=none; agent=codex; do not edit -->
8
8
  # harness-sync
9
9
 
10
10
  ## Purpose
@@ -2,7 +2,7 @@
2
2
  name: harness-test
3
3
  description: 测试执行:读取场景表,执行单元测试+API接口测试+数据兼容验证,输出测试报告。当用户说'跑测试/验证/跑用例/接口测试/单元测试'时使用
4
4
  ---
5
- <!-- generated by harness_deploy.py; core=33013358599f6743; overlay=none; agent=codex; do not edit -->
5
+ <!-- generated by harness_deploy.py; core=87d21aa6ff19f7c7; overlay=none; agent=codex; do not edit -->
6
6
  # harness-test — 测试执行
7
7
 
8
8
  ## Purpose
@@ -72,11 +72,17 @@ Runner 强制同项目单实例、低调度优先级、逐命令超时、正常
72
72
 
73
73
  动态数据库/Redis/令牌字段必须先由 `harness_environment.py prepare` 生成 secret-free receipt,再用 `exec --environment-receipt <file> --required-environment-field <NAME>` 闭包注入;缺失或指纹变化在启动测试前返回 `VERIFICATION_ENVIRONMENT_INCOMPLETE`。复杂 JSON、Docker template 或含引号参数不得跨多层 `-Command` 传递,改用 `exec --argv-file <utf8-json> --runtime-receipt <file>`;参数文件记录 PowerShell edition/version,运行回执只存 argv hash。`harness_service.py ensure` 属于正式持久服务模式,禁止从 bounded runner 内启动;命中时返回 `PERSISTENT_SERVICE_MODE_REQUIRED`。
74
74
 
75
+ 预计超过交互窗口的正式验证使用 `harness_runtime.py run-start`,随后通过
76
+ `run-status` / `run-log --cursor` 重连;不得把调用方存活当作验证存活条件。环境 acquire
77
+ 必须显式选择 `change-session`(同 change + 内容指纹复用)或 `ephemeral`(每次重置)。
78
+ 验证 DAG 的并行度由 `resourceLocks` 决定,未分类重任务默认串行。完整合同见
79
+ `../protocols/execution-session-protocol.md`。
80
+
75
81
  ### Phase 0:环境准备(主会话执行,需要交互确认)
76
82
 
77
83
  先 `harness_context.py prepare --phase test --executor <tool> [--change <id>] --json`,再 `harness_context.py begin --phase test --change <id> --executor <tool> --json` 校验最新 run→test receipt 的 artifact/hash/HEAD;然后 **`harness_gate.py begin --phase test --change <id>`**(禁止手工 phase.start / 手写 ledger)。执行各项强制环境检查 + **命令执行模式 preflight (0.1)**;只有首选执行器不可用时,才执行 fallback 执行器探测。
78
84
 
79
- 验证写入**仅**允许 `harness_ledger.py record` / `can-reuse`;禁止 Write/Edit `verification-ledger.json`。测试跟踪:`harness_test_guard.py begin` → 执行 → `close`(可选 `mark` stale-test-repair)。阶段结束必须 `harness_gate.py close --phase test --status ...`,随后 `harness_context.py close --from-phase test --to-phase review --executor <tool> --json`;fixback 时改为 `--to-phase run` 并由 context 失效受影响 target。
85
+ 验证写入**仅**允许 `harness_ledger.py record` / `can-reuse`;禁止 Write/Edit `verification-ledger.json`。测试跟踪:`harness_test_guard.py begin` → 执行 → `close`(可选 `mark` stale-test-repair)。阶段结束必须 `harness_gate.py close --phase test --status ...`,随后 `harness_context.py close --from-phase test --to-phase review --executor <tool> --json`;fixback 时由 `harness_fixback.py` 合批记录 RED/GREEN 和 affected verification,再 `--to-phase run` 并由 context 失效受影响 target。
80
86
 
81
87
  - **Read `checklist.md`** — 各项检查详情 + 0.1 preflight + Playwright 探测 + 避坑规则指引
82
88
  - **失败处理**:任一项检查失败 → 终止流程并报告原因,用户确认修复后才能继续