@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,266 @@
1
+ #!/usr/bin/env python3
2
+ """Strict loader for harness/contracts/workflow-policy.json.
3
+
4
+ Unknown fields at any depth fail validation. Python 3.10+, stdlib only.
5
+ """
6
+
7
+ from __future__ import annotations
8
+
9
+ import json
10
+ from pathlib import Path
11
+ from typing import Any
12
+
13
+ POLICY_REL = Path("harness") / "contracts" / "workflow-policy.json"
14
+
15
+ TOP_LEVEL_KEYS = frozenset(
16
+ {
17
+ "schemaVersion",
18
+ "testExecution",
19
+ "riskTiers",
20
+ "skills",
21
+ "requiredArtifacts",
22
+ "requiredValidations",
23
+ "validationPhases",
24
+ "capabilityGates",
25
+ "conditionalStages",
26
+ "interactionWhitelist",
27
+ "checkpointRules",
28
+ }
29
+ )
30
+
31
+ RISK_TIER_KEYS = frozenset(
32
+ {
33
+ "description",
34
+ "defaultPhases",
35
+ "requiredValidations",
36
+ "conditionalStages",
37
+ "upgradeTriggers",
38
+ }
39
+ )
40
+
41
+ SKILL_KEYS = frozenset(
42
+ {
43
+ "phase",
44
+ "inputs",
45
+ "artifacts",
46
+ "events",
47
+ "allowedInteractions",
48
+ "capabilities",
49
+ "profiles",
50
+ }
51
+ )
52
+
53
+ CONDITIONAL_STAGE_KEYS = frozenset({"tiers", "signals"})
54
+ CAPABILITY_GATE_KEYS = frozenset(
55
+ {"signals", "requiredStages", "requiredValidations"}
56
+ )
57
+ CHECKPOINT_RULE_KEYS = frozenset(
58
+ {
59
+ "afterTasks",
60
+ "beforeTasks",
61
+ "blocking",
62
+ "requiredReport",
63
+ "reviewerTool",
64
+ }
65
+ )
66
+ TEST_EXECUTION_KEYS = frozenset(
67
+ {
68
+ "runner",
69
+ "defaultProfile",
70
+ "maxWorkers",
71
+ "singleInstance",
72
+ "processTreeCleanup",
73
+ "detachedProcessPreflight",
74
+ "confirmationFlag",
75
+ "confirmationRequiredProfiles",
76
+ "resourceIntensiveModules",
77
+ "profiles",
78
+ }
79
+ )
80
+ TEST_EXECUTION_PROFILE_KEYS = frozenset(
81
+ {
82
+ "description",
83
+ "includesResourceIntensive",
84
+ "moduleTimeoutSeconds",
85
+ }
86
+ )
87
+
88
+
89
+ class PolicyValidationError(ValueError):
90
+ """Raised when workflow-policy.json contains unknown or invalid fields."""
91
+
92
+
93
+ def _reject_unknown(data: dict[str, Any], allowed: frozenset[str], path: str) -> None:
94
+ unknown = sorted(set(data) - allowed)
95
+ if unknown:
96
+ raise PolicyValidationError(
97
+ f"unknown field(s) at {path}: {', '.join(unknown)}"
98
+ )
99
+
100
+
101
+ def _require_type(value: Any, expected: type | tuple[type, ...], path: str) -> None:
102
+ if not isinstance(value, expected):
103
+ names = (
104
+ expected.__name__
105
+ if isinstance(expected, type)
106
+ else "|".join(t.__name__ for t in expected)
107
+ )
108
+ raise PolicyValidationError(f"{path} must be {names}, got {type(value).__name__}")
109
+
110
+
111
+ def validate_policy(data: Any) -> dict[str, Any]:
112
+ if not isinstance(data, dict):
113
+ raise PolicyValidationError("workflow policy root must be an object")
114
+ _reject_unknown(data, TOP_LEVEL_KEYS, "root")
115
+ _require_type(data.get("schemaVersion"), int, "schemaVersion")
116
+ if data["schemaVersion"] != 1:
117
+ raise PolicyValidationError("unsupported schemaVersion")
118
+
119
+ test_execution = data["testExecution"]
120
+ _require_type(test_execution, dict, "testExecution")
121
+ _reject_unknown(test_execution, TEST_EXECUTION_KEYS, "testExecution")
122
+ for key in ("runner", "defaultProfile", "confirmationFlag"):
123
+ _require_type(test_execution[key], str, f"testExecution.{key}")
124
+ max_workers = test_execution["maxWorkers"]
125
+ _require_type(max_workers, int, "testExecution.maxWorkers")
126
+ if isinstance(max_workers, bool) or max_workers < 1 or max_workers > 2:
127
+ raise PolicyValidationError("testExecution.maxWorkers must be 1 or 2")
128
+ for key in (
129
+ "singleInstance",
130
+ "processTreeCleanup",
131
+ "detachedProcessPreflight",
132
+ ):
133
+ _require_type(test_execution[key], bool, f"testExecution.{key}")
134
+ if not test_execution[key]:
135
+ raise PolicyValidationError(f"testExecution.{key} must be true")
136
+ for key in ("confirmationRequiredProfiles", "resourceIntensiveModules"):
137
+ values = test_execution[key]
138
+ _require_type(values, list, f"testExecution.{key}")
139
+ if any(not isinstance(item, str) or not item for item in values):
140
+ raise PolicyValidationError(
141
+ f"testExecution.{key} must contain non-empty strings"
142
+ )
143
+
144
+ execution_profiles = test_execution["profiles"]
145
+ _require_type(execution_profiles, dict, "testExecution.profiles")
146
+ required_profile_names = {"safe", "system", "full"}
147
+ if set(execution_profiles) != required_profile_names:
148
+ raise PolicyValidationError(
149
+ "testExecution.profiles must define exactly safe, system, and full"
150
+ )
151
+ if test_execution["defaultProfile"] != "safe":
152
+ raise PolicyValidationError("testExecution.defaultProfile must be safe")
153
+ confirmation_profiles = set(test_execution["confirmationRequiredProfiles"])
154
+ if not {"system", "full"}.issubset(confirmation_profiles):
155
+ raise PolicyValidationError(
156
+ "testExecution confirmation must cover system and full"
157
+ )
158
+ for profile_name, profile in execution_profiles.items():
159
+ path = f"testExecution.profiles.{profile_name}"
160
+ _require_type(profile, dict, path)
161
+ _reject_unknown(profile, TEST_EXECUTION_PROFILE_KEYS, path)
162
+ _require_type(profile["description"], str, f"{path}.description")
163
+ _require_type(
164
+ profile["includesResourceIntensive"],
165
+ bool,
166
+ f"{path}.includesResourceIntensive",
167
+ )
168
+ timeout = profile["moduleTimeoutSeconds"]
169
+ _require_type(timeout, int, f"{path}.moduleTimeoutSeconds")
170
+ if isinstance(timeout, bool) or timeout <= 0:
171
+ raise PolicyValidationError(
172
+ f"{path}.moduleTimeoutSeconds must be a positive integer"
173
+ )
174
+ if execution_profiles["safe"]["includesResourceIntensive"]:
175
+ raise PolicyValidationError(
176
+ "testExecution.profiles.safe must exclude resource-intensive tests"
177
+ )
178
+ for profile_name in ("system", "full"):
179
+ if not execution_profiles[profile_name]["includesResourceIntensive"]:
180
+ raise PolicyValidationError(
181
+ f"testExecution.profiles.{profile_name} must include resource-intensive tests"
182
+ )
183
+
184
+ risk_tiers = data["riskTiers"]
185
+ _require_type(risk_tiers, dict, "riskTiers")
186
+ for tier_name, tier in risk_tiers.items():
187
+ path = f"riskTiers.{tier_name}"
188
+ _require_type(tier, dict, path)
189
+ _reject_unknown(tier, RISK_TIER_KEYS, path)
190
+ _require_type(tier["description"], str, f"{path}.description")
191
+ _require_type(tier["defaultPhases"], list, f"{path}.defaultPhases")
192
+ _require_type(tier["requiredValidations"], list, f"{path}.requiredValidations")
193
+ _require_type(tier["conditionalStages"], list, f"{path}.conditionalStages")
194
+ _require_type(tier["upgradeTriggers"], list, f"{path}.upgradeTriggers")
195
+
196
+ skills = data["skills"]
197
+ _require_type(skills, dict, "skills")
198
+ for skill_name, skill in skills.items():
199
+ path = f"skills.{skill_name}"
200
+ _require_type(skill, dict, path)
201
+ _reject_unknown(skill, SKILL_KEYS, path)
202
+ _require_type(skill["phase"], str, f"{path}.phase")
203
+ for key in ("inputs", "artifacts", "events", "allowedInteractions", "capabilities"):
204
+ _require_type(skill[key], list, f"{path}.{key}")
205
+ profiles = skill.get("profiles", ["general", "java"])
206
+ _require_type(profiles, list, f"{path}.profiles")
207
+ if not profiles or any(item not in {"general", "java"} for item in profiles):
208
+ raise PolicyValidationError(f"{path}.profiles must contain general and/or java")
209
+
210
+ for section in ("requiredArtifacts", "requiredValidations"):
211
+ section_data = data[section]
212
+ _require_type(section_data, dict, section)
213
+ for phase, items in section_data.items():
214
+ _require_type(items, list, f"{section}.{phase}")
215
+
216
+ validation_phases = data["validationPhases"]
217
+ _require_type(validation_phases, dict, "validationPhases")
218
+ for verification, phase in validation_phases.items():
219
+ _require_type(phase, str, f"validationPhases.{verification}")
220
+
221
+ capability_gates = data["capabilityGates"]
222
+ _require_type(capability_gates, dict, "capabilityGates")
223
+ for capability, gate in capability_gates.items():
224
+ path = f"capabilityGates.{capability}"
225
+ _require_type(gate, dict, path)
226
+ _reject_unknown(gate, CAPABILITY_GATE_KEYS, path)
227
+ for key in CAPABILITY_GATE_KEYS:
228
+ _require_type(gate[key], list, f"{path}.{key}")
229
+
230
+ conditional = data["conditionalStages"]
231
+ _require_type(conditional, dict, "conditionalStages")
232
+ for stage_name, stage in conditional.items():
233
+ path = f"conditionalStages.{stage_name}"
234
+ _require_type(stage, dict, path)
235
+ _reject_unknown(stage, CONDITIONAL_STAGE_KEYS, path)
236
+ _require_type(stage["tiers"], list, f"{path}.tiers")
237
+ _require_type(stage["signals"], list, f"{path}.signals")
238
+
239
+ interaction = data["interactionWhitelist"]
240
+ _require_type(interaction, dict, "interactionWhitelist")
241
+ for key, items in interaction.items():
242
+ _require_type(items, list, f"interactionWhitelist.{key}")
243
+
244
+ checkpoints = data["checkpointRules"]
245
+ _require_type(checkpoints, dict, "checkpointRules")
246
+ for checkpoint_id, rule in checkpoints.items():
247
+ path = f"checkpointRules.{checkpoint_id}"
248
+ _require_type(rule, dict, path)
249
+ _reject_unknown(rule, CHECKPOINT_RULE_KEYS, path)
250
+ _require_type(rule["afterTasks"], list, f"{path}.afterTasks")
251
+ _require_type(rule["beforeTasks"], list, f"{path}.beforeTasks")
252
+ _require_type(rule["blocking"], bool, f"{path}.blocking")
253
+
254
+ return data
255
+
256
+
257
+ def policy_path_for_repo(repo_root: Path) -> Path:
258
+ return repo_root / POLICY_REL
259
+
260
+
261
+ def load_policy(repo_root: Path) -> dict[str, Any]:
262
+ path = policy_path_for_repo(repo_root)
263
+ if not path.is_file():
264
+ raise FileNotFoundError(f"workflow policy missing: {path}")
265
+ data = json.loads(path.read_text(encoding="utf-8-sig"))
266
+ return validate_policy(data)
@@ -25,7 +25,7 @@
25
25
  "files": [
26
26
  {
27
27
  "path": ".harness-build.json",
28
- "sha256": "8b8041e6b22d3587c107e2caa797341de7d6291bdb7fe2163d11f2f50fcb682a"
28
+ "sha256": "3ef851702482b9a60369d6fa87beb5c0173efb2d63b20b73ec0efcca10143165"
29
29
  },
30
30
  {
31
31
  "path": "agents/harness-evaluator.md",
@@ -89,7 +89,7 @@
89
89
  },
90
90
  {
91
91
  "path": "harness-archive/reference.md",
92
- "sha256": "a9f4ff879018d3e9ff7ad267396ae786ca30cee1239bbf0479a92880bbbcd89b"
92
+ "sha256": "1c28d9cc85badac2aa99f6e95d31f25dc3ea5c6f682c261b2f978cff98972e1d"
93
93
  },
94
94
  {
95
95
  "path": "harness-archive/scripts/gen-manifest.ps1",
@@ -97,11 +97,11 @@
97
97
  },
98
98
  {
99
99
  "path": "harness-archive/SKILL.md",
100
- "sha256": "dccaed6f8111821575af906c4f7b8eba4aaebc779e06a0fb5a0c3865c2d5a346"
100
+ "sha256": "4bed475030a9d821c76efc9ac98a104beebc2e79c565790b466f083c1612bb0d"
101
101
  },
102
102
  {
103
103
  "path": "harness-archive/templates/summary-data-template.json",
104
- "sha256": "626e8821af4a29d51ae7a8d8e97f413fa72ce5c440186d115b5390bab24df77c"
104
+ "sha256": "9fbe0618dcfc8c12a7062a80b78d43ce3ce3ac0732448e0c41461af46822343f"
105
105
  },
106
106
  {
107
107
  "path": "harness-codebase-map/checklist.md",
@@ -113,7 +113,7 @@
113
113
  },
114
114
  {
115
115
  "path": "harness-codebase-map/SKILL.md",
116
- "sha256": "334609ab6bc2bc43226cf4848ee8b24af8afc00f0bfcbb168104d3ef5fc52973"
116
+ "sha256": "f48d992bd30d1c6aa1d540ce9606816d14bced0afac96b916adb1cadb0a15842"
117
117
  },
118
118
  {
119
119
  "path": "harness-codebase-map/templates/ARCHITECTURE.md",
@@ -153,15 +153,15 @@
153
153
  },
154
154
  {
155
155
  "path": "harness-execute/SKILL.md",
156
- "sha256": "9cfc23f7690274ffea8ee316ed5acfb0e218860e23ed12372b43cf4356b25202"
156
+ "sha256": "101114cab3b14959c179f8e62547473e013a55390702a5dab3e25333bc3199cb"
157
157
  },
158
158
  {
159
159
  "path": "harness-knowledge-ingest/SKILL.md",
160
- "sha256": "19615d9235dae99724f2e9d8d6564a1d33c96deac30be0b26a814160b168cac4"
160
+ "sha256": "daa175e4ef5cdd8f87f7c3fbdbad49e49423d669f8b8884e2b1246a8784b47f6"
161
161
  },
162
162
  {
163
163
  "path": "harness-knowledge-query/SKILL.md",
164
- "sha256": "a80e34fbbed74dced393c1b983ab1dfdf19d1ac1d1dce2d1c861f65229ff8580"
164
+ "sha256": "b4e8ac7f9c1e0a00d6faed4364a5c2c1894053a7f2c9109466a5b0b16d1d8c9f"
165
165
  },
166
166
  {
167
167
  "path": "harness-plan/checklist.md",
@@ -177,15 +177,15 @@
177
177
  },
178
178
  {
179
179
  "path": "harness-plan/SKILL.md",
180
- "sha256": "7c8da4137bd8e9aef6d1f73f75deb1b4e2f3b475b6b2ea2228bbd05a94daf6b3"
180
+ "sha256": "5ecaaf4ad4ea26288ecbc5131454498f8338d47452b674beb1390ce54a104313"
181
181
  },
182
182
  {
183
183
  "path": "harness-pull/SKILL.md",
184
- "sha256": "40cd228ec955f385a05dea2458a28b9f34254b0b2b05f42c3c5ed8840dea976f"
184
+ "sha256": "6e05767b80e914fa7b41252992f63c31f58d955fd229825db2c9404e27e5a7ee"
185
185
  },
186
186
  {
187
187
  "path": "harness-push/SKILL.md",
188
- "sha256": "30432a76f767c3120f1718d0793b979427e5d5fbce8bb11cdd9b495274093cd8"
188
+ "sha256": "82db22d3ec5ecc259ed9896dcdc73dfa1f029efa4df8eedd05af5bd21bad1d8f"
189
189
  },
190
190
  {
191
191
  "path": "harness-review/checklist.md",
@@ -201,7 +201,7 @@
201
201
  },
202
202
  {
203
203
  "path": "harness-review/SKILL.md",
204
- "sha256": "70337c03a79580e5ebda2f0afce1a3559374da6224cea3322cfb0f30c1c3bfc3"
204
+ "sha256": "fb847a107b62dafd4b4038c3d473adb099e2dccc52152dc44a752ddca9b92fce"
205
205
  },
206
206
  {
207
207
  "path": "harness-run/checklist.md",
@@ -217,7 +217,7 @@
217
217
  },
218
218
  {
219
219
  "path": "harness-run/SKILL.md",
220
- "sha256": "299692ef72690fb8c8a3b8139328111ca327340100aa8f2fc9c3b17d5fc88907"
220
+ "sha256": "bf2be34f2ab5aeb8cd3794fcd308e435b7492bbae91a3b6848ecd0adcde8f91c"
221
221
  },
222
222
  {
223
223
  "path": "harness-submit/checklist.md",
@@ -229,7 +229,7 @@
229
229
  },
230
230
  {
231
231
  "path": "harness-submit/SKILL.md",
232
- "sha256": "8182208f68a3b530e3bdc393a9931b50f2c73a03163ff25eed775ca609b37da1"
232
+ "sha256": "147c0455d27c3c536ca69e2fe764179991b00bee41a6b3fef0efd38083077ff9"
233
233
  },
234
234
  {
235
235
  "path": "harness-sync/reference.md",
@@ -237,7 +237,7 @@
237
237
  },
238
238
  {
239
239
  "path": "harness-sync/SKILL.md",
240
- "sha256": "65c9749f085b8f44af46aae5816887f9ede99a1042c4f5d005814cca5dd15be8"
240
+ "sha256": "367b49b872e88a7e36f719b2746fd455ff544e8fb351820f50925d631c92d17c"
241
241
  },
242
242
  {
243
243
  "path": "harness-test/checklist.md",
@@ -261,7 +261,7 @@
261
261
  },
262
262
  {
263
263
  "path": "harness-test/SKILL.md",
264
- "sha256": "0e93df9f6fd97a164f99f9e2924bdc2504212aa3a7d709eb98aa9fc50185511c"
264
+ "sha256": "0e888323f6bd88364911ddb64e9166979a672ef373554edb391201a17838feeb"
265
265
  },
266
266
  {
267
267
  "path": "protocols/archive-report-protocol.md",
@@ -337,7 +337,7 @@
337
337
  },
338
338
  {
339
339
  "path": "scripts/harness_archive.py",
340
- "sha256": "a1552cd3289ad3c774afa201db9146d3a546270d3407b57903d0979fa8607737"
340
+ "sha256": "ed72e4f0bda6265fc397debc0fd6cc72b5ec6bd87d967823173f3cea9fbf006e"
341
341
  },
342
342
  {
343
343
  "path": "scripts/harness_change.py",
@@ -353,7 +353,7 @@
353
353
  },
354
354
  {
355
355
  "path": "scripts/harness_deploy.py",
356
- "sha256": "fb4290c2dd5c28a09c378da5ee7be491bdefe0410f277ec5dd2af1952cfddbca"
356
+ "sha256": "d64c2fbc0e50b39c3f5a135d05afc8720a480952c25a05c3dfa361cbc5d87c66"
357
357
  },
358
358
  {
359
359
  "path": "scripts/harness_efficiency.py",
@@ -393,7 +393,7 @@
393
393
  },
394
394
  {
395
395
  "path": "scripts/harness_knowledge_candidates.py",
396
- "sha256": "efbc52faa1f01053e033c3a609ab99a0a3df153567a7fb89558f6b3a87e041f7"
396
+ "sha256": "6f17bbe80f47839bbafab73b9231cf078569a2b3275fc79c1275d039b15861fc"
397
397
  },
398
398
  {
399
399
  "path": "scripts/harness_ledger.py",
@@ -25,7 +25,7 @@
25
25
  "files": [
26
26
  {
27
27
  "path": ".harness-build.json",
28
- "sha256": "8cb85e5014221d72834ac5e71b9d163a8b4ce845ae07c6341b80718815691b22"
28
+ "sha256": "2a3288debede9e3b77e05777102420dc0c50a2f37809cd74aedd29630843628b"
29
29
  },
30
30
  {
31
31
  "path": "agents/harness-evaluator.md",
@@ -89,7 +89,7 @@
89
89
  },
90
90
  {
91
91
  "path": "harness-archive/reference.md",
92
- "sha256": "a9f4ff879018d3e9ff7ad267396ae786ca30cee1239bbf0479a92880bbbcd89b"
92
+ "sha256": "1c28d9cc85badac2aa99f6e95d31f25dc3ea5c6f682c261b2f978cff98972e1d"
93
93
  },
94
94
  {
95
95
  "path": "harness-archive/scripts/gen-manifest.ps1",
@@ -97,11 +97,11 @@
97
97
  },
98
98
  {
99
99
  "path": "harness-archive/SKILL.md",
100
- "sha256": "c8f41de625e78cd86f6795166011acdbfaeb2bb99082af8759e1747cc8b9eaea"
100
+ "sha256": "1fca0ef73c821e11353eed1f53141154057720e1d0bdd8ac86db8f3d83a4504f"
101
101
  },
102
102
  {
103
103
  "path": "harness-archive/templates/summary-data-template.json",
104
- "sha256": "626e8821af4a29d51ae7a8d8e97f413fa72ce5c440186d115b5390bab24df77c"
104
+ "sha256": "9fbe0618dcfc8c12a7062a80b78d43ce3ce3ac0732448e0c41461af46822343f"
105
105
  },
106
106
  {
107
107
  "path": "harness-codebase-map/checklist.md",
@@ -113,7 +113,7 @@
113
113
  },
114
114
  {
115
115
  "path": "harness-codebase-map/SKILL.md",
116
- "sha256": "8418f3838d0556909e392cda06f0f7b3afc143938a6219146abc360ca7f6ad8c"
116
+ "sha256": "dd5917f396deb077cd1f174b788bf3f18defdad4670c7930e02c3b11d3ba04b8"
117
117
  },
118
118
  {
119
119
  "path": "harness-codebase-map/templates/ARCHITECTURE.md",
@@ -153,15 +153,15 @@
153
153
  },
154
154
  {
155
155
  "path": "harness-execute/SKILL.md",
156
- "sha256": "69890dc8a4fda2602ad7bf2edf7779c05ad151234ea3b24146f90e892e40118c"
156
+ "sha256": "ea7ce4f1d8396927a1e1ccab7bde20b22bd1d50ae32270443ff19c8972009d63"
157
157
  },
158
158
  {
159
159
  "path": "harness-knowledge-ingest/SKILL.md",
160
- "sha256": "60026a2e693677c6ca51b756f522e1930e2eb56d2a6f2a54d85b9b455f3d2bf5"
160
+ "sha256": "66439d3fc4fd51b5b58d5c076bc7acee47f6f3deb0026169e24c05c08f2b621b"
161
161
  },
162
162
  {
163
163
  "path": "harness-knowledge-query/SKILL.md",
164
- "sha256": "c1b776ebd73c7ed3c663d45212a2df625970c98ab6c95d53a48ef6aa4583de96"
164
+ "sha256": "f7425336cb6c356d54fb7563db8f922243248c2661f9532c51a4d691154c0776"
165
165
  },
166
166
  {
167
167
  "path": "harness-plan/checklist.md",
@@ -177,15 +177,15 @@
177
177
  },
178
178
  {
179
179
  "path": "harness-plan/SKILL.md",
180
- "sha256": "cbd3534f684b06179769a9bd591ac4c09d1125414331d9a9543f20fe03fe149d"
180
+ "sha256": "0d07b58b53ebe9cf730783853a8a35d442adc6cf6d0e23c999da93edd9a40417"
181
181
  },
182
182
  {
183
183
  "path": "harness-pull/SKILL.md",
184
- "sha256": "e39fa9ee98a9d50998dcbb58d6c6aca68b874896fffeebaa1b4ff327a44d19e2"
184
+ "sha256": "1728661bba39d630d658da485e595f29e87f0a4a5b8413127f3ce790da30a5a4"
185
185
  },
186
186
  {
187
187
  "path": "harness-push/SKILL.md",
188
- "sha256": "6c59939a3e7e6ff5673b12972ff022c90327a386fc37990d7edf7ae8ec95cde7"
188
+ "sha256": "e3a76874dd63fe65463861b03ebdf67d49af5fdf16ae7ca89986eca793fc01b1"
189
189
  },
190
190
  {
191
191
  "path": "harness-review/checklist.md",
@@ -201,7 +201,7 @@
201
201
  },
202
202
  {
203
203
  "path": "harness-review/SKILL.md",
204
- "sha256": "27c9f21c0023cd71a592e0fd5a27b36b206153021045e41af02210c3b7b93e6b"
204
+ "sha256": "fe765a0a4b213dad847660f02f14a788cd10aeef24f7c3b56105ecdfbcb652fe"
205
205
  },
206
206
  {
207
207
  "path": "harness-run/checklist.md",
@@ -217,7 +217,7 @@
217
217
  },
218
218
  {
219
219
  "path": "harness-run/SKILL.md",
220
- "sha256": "ff45e9cd4b9c5caf2c9d15588bb7b0126c98c19578eb0b9661d414bf939ac08b"
220
+ "sha256": "205cfe8582256d56a46070f25d78dfb16867c266ae537a2fbbd3c8d14a2332eb"
221
221
  },
222
222
  {
223
223
  "path": "harness-submit/checklist.md",
@@ -229,7 +229,7 @@
229
229
  },
230
230
  {
231
231
  "path": "harness-submit/SKILL.md",
232
- "sha256": "5f1e16506e9716868103adabc4b8b0d449ab88d1179585810093e223eeb3efa0"
232
+ "sha256": "b8c1a9b07782a4bade7408eca3585ba1106cb74e0d63790679df5cb163440945"
233
233
  },
234
234
  {
235
235
  "path": "harness-sync/reference.md",
@@ -237,7 +237,7 @@
237
237
  },
238
238
  {
239
239
  "path": "harness-sync/SKILL.md",
240
- "sha256": "6a3b2cebd7088d9edd04e709530d65e115e533a940f30ab215b88dd0982c70f9"
240
+ "sha256": "326280b76a5b72891b8536c2c1588663e90bb5b1ff6dfcc89577ee90d13bb660"
241
241
  },
242
242
  {
243
243
  "path": "harness-test/checklist.md",
@@ -261,7 +261,7 @@
261
261
  },
262
262
  {
263
263
  "path": "harness-test/SKILL.md",
264
- "sha256": "abd4402259c221e499f8d6d99fdf06530bd8bb896c36b59ccecfc6c2f566eac3"
264
+ "sha256": "0e1c8cb4619a43669d6087220832180edc6b9420995bfa0e80972d17143f6fb3"
265
265
  },
266
266
  {
267
267
  "path": "protocols/archive-report-protocol.md",
@@ -337,7 +337,7 @@
337
337
  },
338
338
  {
339
339
  "path": "scripts/harness_archive.py",
340
- "sha256": "a1552cd3289ad3c774afa201db9146d3a546270d3407b57903d0979fa8607737"
340
+ "sha256": "ed72e4f0bda6265fc397debc0fd6cc72b5ec6bd87d967823173f3cea9fbf006e"
341
341
  },
342
342
  {
343
343
  "path": "scripts/harness_change.py",
@@ -353,7 +353,7 @@
353
353
  },
354
354
  {
355
355
  "path": "scripts/harness_deploy.py",
356
- "sha256": "fb4290c2dd5c28a09c378da5ee7be491bdefe0410f277ec5dd2af1952cfddbca"
356
+ "sha256": "d64c2fbc0e50b39c3f5a135d05afc8720a480952c25a05c3dfa361cbc5d87c66"
357
357
  },
358
358
  {
359
359
  "path": "scripts/harness_efficiency.py",
@@ -393,7 +393,7 @@
393
393
  },
394
394
  {
395
395
  "path": "scripts/harness_knowledge_candidates.py",
396
- "sha256": "efbc52faa1f01053e033c3a609ab99a0a3df153567a7fb89558f6b3a87e041f7"
396
+ "sha256": "6f17bbe80f47839bbafab73b9231cf078569a2b3275fc79c1275d039b15861fc"
397
397
  },
398
398
  {
399
399
  "path": "scripts/harness_ledger.py",