@hunter-harness/workflow-harness 0.2.85 → 0.3.0

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 (282) hide show
  1. package/harness/bundles/general/claude-code/.harness-build.json +1 -1
  2. package/harness/bundles/general/claude-code/contracts/workflow-policy.json +46 -17
  3. package/harness/bundles/general/claude-code/harness-archive/SKILL.md +2 -2
  4. package/harness/bundles/general/claude-code/harness-codebase-map/SKILL.md +2 -2
  5. package/harness/bundles/general/claude-code/harness-execute/SKILL.md +189 -0
  6. package/harness/bundles/general/claude-code/harness-knowledge-ingest/SKILL.md +2 -2
  7. package/harness/bundles/general/claude-code/harness-knowledge-query/SKILL.md +2 -2
  8. package/harness/bundles/general/claude-code/harness-plan/SKILL.md +10 -9
  9. package/harness/bundles/general/claude-code/harness-plan/checklist.md +19 -91
  10. package/harness/bundles/general/claude-code/harness-plan/protocols.md +3 -1
  11. package/harness/bundles/general/claude-code/harness-plan/reference.md +74 -83
  12. package/harness/bundles/general/claude-code/harness-pull/SKILL.md +1 -1
  13. package/harness/bundles/general/claude-code/harness-push/SKILL.md +1 -1
  14. package/harness/bundles/general/claude-code/harness-review/SKILL.md +3 -3
  15. package/harness/bundles/general/claude-code/harness-review/protocols.md +1 -1
  16. package/harness/bundles/general/claude-code/harness-run/SKILL.md +13 -5
  17. package/harness/bundles/general/claude-code/harness-submit/SKILL.md +2 -2
  18. package/harness/bundles/general/claude-code/harness-submit/checklist.md +1 -1
  19. package/harness/bundles/general/claude-code/harness-sync/SKILL.md +1 -1
  20. package/harness/bundles/general/claude-code/harness-test/SKILL.md +11 -2
  21. package/harness/bundles/general/claude-code/scripts/harness_adoption_metrics.py +391 -0
  22. package/harness/bundles/general/claude-code/scripts/harness_archive.py +23 -14
  23. package/harness/bundles/general/claude-code/scripts/harness_change.py +25 -7
  24. package/harness/bundles/general/claude-code/scripts/harness_context.py +154 -60
  25. package/harness/bundles/general/claude-code/scripts/harness_events.py +1 -1
  26. package/harness/bundles/general/claude-code/scripts/harness_events_sync.py +1 -0
  27. package/harness/bundles/general/claude-code/scripts/harness_fixback.py +14 -10
  28. package/harness/bundles/general/claude-code/scripts/harness_gate.py +293 -90
  29. package/harness/bundles/general/claude-code/scripts/harness_ledger.py +47 -2
  30. package/harness/bundles/general/claude-code/scripts/harness_paths.py +175 -0
  31. package/harness/bundles/general/claude-code/scripts/harness_phase.py +65 -23
  32. package/harness/bundles/general/claude-code/scripts/harness_plan_finalize.py +140 -874
  33. package/harness/bundles/general/claude-code/scripts/harness_review.py +25 -4
  34. package/harness/bundles/general/codebuddy/.harness-build.json +1 -1
  35. package/harness/bundles/general/codebuddy/contracts/workflow-policy.json +46 -17
  36. package/harness/bundles/general/codebuddy/harness-archive/SKILL.md +2 -2
  37. package/harness/bundles/general/codebuddy/harness-codebase-map/SKILL.md +2 -2
  38. package/harness/bundles/general/codebuddy/harness-execute/SKILL.md +170 -0
  39. package/harness/bundles/general/codebuddy/harness-knowledge-ingest/SKILL.md +2 -2
  40. package/harness/bundles/general/codebuddy/harness-knowledge-query/SKILL.md +2 -2
  41. package/harness/bundles/general/codebuddy/harness-plan/SKILL.md +10 -9
  42. package/harness/bundles/general/codebuddy/harness-plan/checklist.md +19 -91
  43. package/harness/bundles/general/codebuddy/harness-plan/protocols.md +3 -1
  44. package/harness/bundles/general/codebuddy/harness-plan/reference.md +74 -83
  45. package/harness/bundles/general/codebuddy/harness-pull/SKILL.md +1 -1
  46. package/harness/bundles/general/codebuddy/harness-push/SKILL.md +1 -1
  47. package/harness/bundles/general/codebuddy/harness-review/SKILL.md +3 -3
  48. package/harness/bundles/general/codebuddy/harness-review/protocols.md +1 -1
  49. package/harness/bundles/general/codebuddy/harness-run/SKILL.md +13 -5
  50. package/harness/bundles/general/codebuddy/harness-submit/SKILL.md +2 -2
  51. package/harness/bundles/general/codebuddy/harness-submit/checklist.md +1 -1
  52. package/harness/bundles/general/codebuddy/harness-sync/SKILL.md +1 -1
  53. package/harness/bundles/general/codebuddy/harness-test/SKILL.md +11 -2
  54. package/harness/bundles/general/codebuddy/scripts/harness_adoption_metrics.py +391 -0
  55. package/harness/bundles/general/codebuddy/scripts/harness_archive.py +23 -14
  56. package/harness/bundles/general/codebuddy/scripts/harness_change.py +25 -7
  57. package/harness/bundles/general/codebuddy/scripts/harness_context.py +154 -60
  58. package/harness/bundles/general/codebuddy/scripts/harness_events.py +1 -1
  59. package/harness/bundles/general/codebuddy/scripts/harness_events_sync.py +1 -0
  60. package/harness/bundles/general/codebuddy/scripts/harness_fixback.py +14 -10
  61. package/harness/bundles/general/codebuddy/scripts/harness_gate.py +293 -90
  62. package/harness/bundles/general/codebuddy/scripts/harness_ledger.py +47 -2
  63. package/harness/bundles/general/codebuddy/scripts/harness_paths.py +175 -0
  64. package/harness/bundles/general/codebuddy/scripts/harness_phase.py +65 -23
  65. package/harness/bundles/general/codebuddy/scripts/harness_plan_finalize.py +140 -874
  66. package/harness/bundles/general/codebuddy/scripts/harness_review.py +25 -4
  67. package/harness/bundles/general/codex/.harness-build.json +1 -1
  68. package/harness/bundles/general/codex/contracts/workflow-policy.json +46 -17
  69. package/harness/bundles/general/codex/harness-archive/SKILL.md +2 -2
  70. package/harness/bundles/general/codex/harness-codebase-map/SKILL.md +2 -2
  71. package/harness/bundles/general/codex/harness-execute/SKILL.md +170 -0
  72. package/harness/bundles/general/codex/harness-knowledge-ingest/SKILL.md +2 -2
  73. package/harness/bundles/general/codex/harness-knowledge-query/SKILL.md +2 -2
  74. package/harness/bundles/general/codex/harness-plan/SKILL.md +10 -9
  75. package/harness/bundles/general/codex/harness-plan/checklist.md +19 -91
  76. package/harness/bundles/general/codex/harness-plan/protocols.md +3 -1
  77. package/harness/bundles/general/codex/harness-plan/reference.md +74 -83
  78. package/harness/bundles/general/codex/harness-pull/SKILL.md +1 -1
  79. package/harness/bundles/general/codex/harness-push/SKILL.md +1 -1
  80. package/harness/bundles/general/codex/harness-review/SKILL.md +3 -3
  81. package/harness/bundles/general/codex/harness-review/protocols.md +1 -1
  82. package/harness/bundles/general/codex/harness-run/SKILL.md +13 -5
  83. package/harness/bundles/general/codex/harness-submit/SKILL.md +2 -2
  84. package/harness/bundles/general/codex/harness-submit/checklist.md +1 -1
  85. package/harness/bundles/general/codex/harness-sync/SKILL.md +1 -1
  86. package/harness/bundles/general/codex/harness-test/SKILL.md +11 -2
  87. package/harness/bundles/general/codex/scripts/harness_adoption_metrics.py +391 -0
  88. package/harness/bundles/general/codex/scripts/harness_archive.py +23 -14
  89. package/harness/bundles/general/codex/scripts/harness_change.py +25 -7
  90. package/harness/bundles/general/codex/scripts/harness_context.py +154 -60
  91. package/harness/bundles/general/codex/scripts/harness_events.py +1 -1
  92. package/harness/bundles/general/codex/scripts/harness_events_sync.py +1 -0
  93. package/harness/bundles/general/codex/scripts/harness_fixback.py +14 -10
  94. package/harness/bundles/general/codex/scripts/harness_gate.py +293 -90
  95. package/harness/bundles/general/codex/scripts/harness_ledger.py +47 -2
  96. package/harness/bundles/general/codex/scripts/harness_paths.py +175 -0
  97. package/harness/bundles/general/codex/scripts/harness_phase.py +65 -23
  98. package/harness/bundles/general/codex/scripts/harness_plan_finalize.py +140 -874
  99. package/harness/bundles/general/codex/scripts/harness_review.py +25 -4
  100. package/harness/bundles/general/cursor/.harness-build.json +1 -1
  101. package/harness/bundles/general/cursor/contracts/workflow-policy.json +46 -17
  102. package/harness/bundles/general/cursor/harness-archive/SKILL.md +2 -2
  103. package/harness/bundles/general/cursor/harness-codebase-map/SKILL.md +2 -2
  104. package/harness/bundles/general/cursor/harness-execute/SKILL.md +170 -0
  105. package/harness/bundles/general/cursor/harness-knowledge-ingest/SKILL.md +2 -2
  106. package/harness/bundles/general/cursor/harness-knowledge-query/SKILL.md +2 -2
  107. package/harness/bundles/general/cursor/harness-plan/SKILL.md +10 -9
  108. package/harness/bundles/general/cursor/harness-plan/checklist.md +19 -91
  109. package/harness/bundles/general/cursor/harness-plan/protocols.md +3 -1
  110. package/harness/bundles/general/cursor/harness-plan/reference.md +74 -83
  111. package/harness/bundles/general/cursor/harness-pull/SKILL.md +1 -1
  112. package/harness/bundles/general/cursor/harness-push/SKILL.md +1 -1
  113. package/harness/bundles/general/cursor/harness-review/SKILL.md +3 -3
  114. package/harness/bundles/general/cursor/harness-review/protocols.md +1 -1
  115. package/harness/bundles/general/cursor/harness-run/SKILL.md +13 -5
  116. package/harness/bundles/general/cursor/harness-submit/SKILL.md +2 -2
  117. package/harness/bundles/general/cursor/harness-submit/checklist.md +1 -1
  118. package/harness/bundles/general/cursor/harness-sync/SKILL.md +1 -1
  119. package/harness/bundles/general/cursor/harness-test/SKILL.md +11 -2
  120. package/harness/bundles/general/cursor/scripts/harness_adoption_metrics.py +391 -0
  121. package/harness/bundles/general/cursor/scripts/harness_archive.py +23 -14
  122. package/harness/bundles/general/cursor/scripts/harness_change.py +25 -7
  123. package/harness/bundles/general/cursor/scripts/harness_context.py +154 -60
  124. package/harness/bundles/general/cursor/scripts/harness_events.py +1 -1
  125. package/harness/bundles/general/cursor/scripts/harness_events_sync.py +1 -0
  126. package/harness/bundles/general/cursor/scripts/harness_fixback.py +14 -10
  127. package/harness/bundles/general/cursor/scripts/harness_gate.py +293 -90
  128. package/harness/bundles/general/cursor/scripts/harness_ledger.py +47 -2
  129. package/harness/bundles/general/cursor/scripts/harness_paths.py +175 -0
  130. package/harness/bundles/general/cursor/scripts/harness_phase.py +65 -23
  131. package/harness/bundles/general/cursor/scripts/harness_plan_finalize.py +140 -874
  132. package/harness/bundles/general/cursor/scripts/harness_review.py +25 -4
  133. package/harness/bundles/java/claude-code/.harness-build.json +1 -1
  134. package/harness/bundles/java/claude-code/contracts/workflow-policy.json +46 -17
  135. package/harness/bundles/java/claude-code/harness-apidoc/SKILL.md +2 -2
  136. package/harness/bundles/java/claude-code/harness-archive/SKILL.md +2 -2
  137. package/harness/bundles/java/claude-code/harness-codebase-map/SKILL.md +2 -2
  138. package/harness/bundles/java/claude-code/harness-execute/SKILL.md +189 -0
  139. package/harness/bundles/java/claude-code/harness-knowledge-ingest/SKILL.md +2 -2
  140. package/harness/bundles/java/claude-code/harness-knowledge-query/SKILL.md +2 -2
  141. package/harness/bundles/java/claude-code/harness-package/SKILL.md +2 -2
  142. package/harness/bundles/java/claude-code/harness-plan/SKILL.md +10 -9
  143. package/harness/bundles/java/claude-code/harness-plan/checklist.md +19 -91
  144. package/harness/bundles/java/claude-code/harness-plan/protocols.md +3 -1
  145. package/harness/bundles/java/claude-code/harness-plan/reference.md +74 -83
  146. package/harness/bundles/java/claude-code/harness-pull/SKILL.md +1 -1
  147. package/harness/bundles/java/claude-code/harness-push/SKILL.md +1 -1
  148. package/harness/bundles/java/claude-code/harness-review/SKILL.md +3 -3
  149. package/harness/bundles/java/claude-code/harness-review/protocols.md +1 -1
  150. package/harness/bundles/java/claude-code/harness-run/SKILL.md +13 -5
  151. package/harness/bundles/java/claude-code/harness-submit/SKILL.md +2 -2
  152. package/harness/bundles/java/claude-code/harness-submit/checklist.md +1 -1
  153. package/harness/bundles/java/claude-code/harness-sync/SKILL.md +1 -1
  154. package/harness/bundles/java/claude-code/harness-test/SKILL.md +11 -2
  155. package/harness/bundles/java/claude-code/scripts/harness_adoption_metrics.py +391 -0
  156. package/harness/bundles/java/claude-code/scripts/harness_archive.py +23 -14
  157. package/harness/bundles/java/claude-code/scripts/harness_change.py +25 -7
  158. package/harness/bundles/java/claude-code/scripts/harness_context.py +154 -60
  159. package/harness/bundles/java/claude-code/scripts/harness_events.py +1 -1
  160. package/harness/bundles/java/claude-code/scripts/harness_events_sync.py +1 -0
  161. package/harness/bundles/java/claude-code/scripts/harness_fixback.py +14 -10
  162. package/harness/bundles/java/claude-code/scripts/harness_gate.py +293 -90
  163. package/harness/bundles/java/claude-code/scripts/harness_ledger.py +47 -2
  164. package/harness/bundles/java/claude-code/scripts/harness_paths.py +175 -0
  165. package/harness/bundles/java/claude-code/scripts/harness_phase.py +65 -23
  166. package/harness/bundles/java/claude-code/scripts/harness_plan_finalize.py +140 -874
  167. package/harness/bundles/java/claude-code/scripts/harness_review.py +25 -4
  168. package/harness/bundles/java/codebuddy/.harness-build.json +1 -1
  169. package/harness/bundles/java/codebuddy/contracts/workflow-policy.json +46 -17
  170. package/harness/bundles/java/codebuddy/harness-apidoc/SKILL.md +2 -2
  171. package/harness/bundles/java/codebuddy/harness-archive/SKILL.md +2 -2
  172. package/harness/bundles/java/codebuddy/harness-codebase-map/SKILL.md +2 -2
  173. package/harness/bundles/java/codebuddy/harness-execute/SKILL.md +170 -0
  174. package/harness/bundles/java/codebuddy/harness-knowledge-ingest/SKILL.md +2 -2
  175. package/harness/bundles/java/codebuddy/harness-knowledge-query/SKILL.md +2 -2
  176. package/harness/bundles/java/codebuddy/harness-package/SKILL.md +2 -2
  177. package/harness/bundles/java/codebuddy/harness-plan/SKILL.md +10 -9
  178. package/harness/bundles/java/codebuddy/harness-plan/checklist.md +19 -91
  179. package/harness/bundles/java/codebuddy/harness-plan/protocols.md +3 -1
  180. package/harness/bundles/java/codebuddy/harness-plan/reference.md +74 -83
  181. package/harness/bundles/java/codebuddy/harness-pull/SKILL.md +1 -1
  182. package/harness/bundles/java/codebuddy/harness-push/SKILL.md +1 -1
  183. package/harness/bundles/java/codebuddy/harness-review/SKILL.md +3 -3
  184. package/harness/bundles/java/codebuddy/harness-review/protocols.md +1 -1
  185. package/harness/bundles/java/codebuddy/harness-run/SKILL.md +13 -5
  186. package/harness/bundles/java/codebuddy/harness-submit/SKILL.md +2 -2
  187. package/harness/bundles/java/codebuddy/harness-submit/checklist.md +1 -1
  188. package/harness/bundles/java/codebuddy/harness-sync/SKILL.md +1 -1
  189. package/harness/bundles/java/codebuddy/harness-test/SKILL.md +11 -2
  190. package/harness/bundles/java/codebuddy/scripts/harness_adoption_metrics.py +391 -0
  191. package/harness/bundles/java/codebuddy/scripts/harness_archive.py +23 -14
  192. package/harness/bundles/java/codebuddy/scripts/harness_change.py +25 -7
  193. package/harness/bundles/java/codebuddy/scripts/harness_context.py +154 -60
  194. package/harness/bundles/java/codebuddy/scripts/harness_events.py +1 -1
  195. package/harness/bundles/java/codebuddy/scripts/harness_events_sync.py +1 -0
  196. package/harness/bundles/java/codebuddy/scripts/harness_fixback.py +14 -10
  197. package/harness/bundles/java/codebuddy/scripts/harness_gate.py +293 -90
  198. package/harness/bundles/java/codebuddy/scripts/harness_ledger.py +47 -2
  199. package/harness/bundles/java/codebuddy/scripts/harness_paths.py +175 -0
  200. package/harness/bundles/java/codebuddy/scripts/harness_phase.py +65 -23
  201. package/harness/bundles/java/codebuddy/scripts/harness_plan_finalize.py +140 -874
  202. package/harness/bundles/java/codebuddy/scripts/harness_review.py +25 -4
  203. package/harness/bundles/java/codex/.harness-build.json +1 -1
  204. package/harness/bundles/java/codex/contracts/workflow-policy.json +46 -17
  205. package/harness/bundles/java/codex/harness-apidoc/SKILL.md +2 -2
  206. package/harness/bundles/java/codex/harness-archive/SKILL.md +2 -2
  207. package/harness/bundles/java/codex/harness-codebase-map/SKILL.md +2 -2
  208. package/harness/bundles/java/codex/harness-execute/SKILL.md +170 -0
  209. package/harness/bundles/java/codex/harness-knowledge-ingest/SKILL.md +2 -2
  210. package/harness/bundles/java/codex/harness-knowledge-query/SKILL.md +2 -2
  211. package/harness/bundles/java/codex/harness-package/SKILL.md +2 -2
  212. package/harness/bundles/java/codex/harness-plan/SKILL.md +10 -9
  213. package/harness/bundles/java/codex/harness-plan/checklist.md +19 -91
  214. package/harness/bundles/java/codex/harness-plan/protocols.md +3 -1
  215. package/harness/bundles/java/codex/harness-plan/reference.md +74 -83
  216. package/harness/bundles/java/codex/harness-pull/SKILL.md +1 -1
  217. package/harness/bundles/java/codex/harness-push/SKILL.md +1 -1
  218. package/harness/bundles/java/codex/harness-review/SKILL.md +3 -3
  219. package/harness/bundles/java/codex/harness-review/protocols.md +1 -1
  220. package/harness/bundles/java/codex/harness-run/SKILL.md +13 -5
  221. package/harness/bundles/java/codex/harness-submit/SKILL.md +2 -2
  222. package/harness/bundles/java/codex/harness-submit/checklist.md +1 -1
  223. package/harness/bundles/java/codex/harness-sync/SKILL.md +1 -1
  224. package/harness/bundles/java/codex/harness-test/SKILL.md +11 -2
  225. package/harness/bundles/java/codex/scripts/harness_adoption_metrics.py +391 -0
  226. package/harness/bundles/java/codex/scripts/harness_archive.py +23 -14
  227. package/harness/bundles/java/codex/scripts/harness_change.py +25 -7
  228. package/harness/bundles/java/codex/scripts/harness_context.py +154 -60
  229. package/harness/bundles/java/codex/scripts/harness_events.py +1 -1
  230. package/harness/bundles/java/codex/scripts/harness_events_sync.py +1 -0
  231. package/harness/bundles/java/codex/scripts/harness_fixback.py +14 -10
  232. package/harness/bundles/java/codex/scripts/harness_gate.py +293 -90
  233. package/harness/bundles/java/codex/scripts/harness_ledger.py +47 -2
  234. package/harness/bundles/java/codex/scripts/harness_paths.py +175 -0
  235. package/harness/bundles/java/codex/scripts/harness_phase.py +65 -23
  236. package/harness/bundles/java/codex/scripts/harness_plan_finalize.py +140 -874
  237. package/harness/bundles/java/codex/scripts/harness_review.py +25 -4
  238. package/harness/bundles/java/cursor/.harness-build.json +1 -1
  239. package/harness/bundles/java/cursor/contracts/workflow-policy.json +46 -17
  240. package/harness/bundles/java/cursor/harness-apidoc/SKILL.md +2 -2
  241. package/harness/bundles/java/cursor/harness-archive/SKILL.md +2 -2
  242. package/harness/bundles/java/cursor/harness-codebase-map/SKILL.md +2 -2
  243. package/harness/bundles/java/cursor/harness-execute/SKILL.md +170 -0
  244. package/harness/bundles/java/cursor/harness-knowledge-ingest/SKILL.md +2 -2
  245. package/harness/bundles/java/cursor/harness-knowledge-query/SKILL.md +2 -2
  246. package/harness/bundles/java/cursor/harness-package/SKILL.md +2 -2
  247. package/harness/bundles/java/cursor/harness-plan/SKILL.md +10 -9
  248. package/harness/bundles/java/cursor/harness-plan/checklist.md +19 -91
  249. package/harness/bundles/java/cursor/harness-plan/protocols.md +3 -1
  250. package/harness/bundles/java/cursor/harness-plan/reference.md +74 -83
  251. package/harness/bundles/java/cursor/harness-pull/SKILL.md +1 -1
  252. package/harness/bundles/java/cursor/harness-push/SKILL.md +1 -1
  253. package/harness/bundles/java/cursor/harness-review/SKILL.md +3 -3
  254. package/harness/bundles/java/cursor/harness-review/protocols.md +1 -1
  255. package/harness/bundles/java/cursor/harness-run/SKILL.md +13 -5
  256. package/harness/bundles/java/cursor/harness-submit/SKILL.md +2 -2
  257. package/harness/bundles/java/cursor/harness-submit/checklist.md +1 -1
  258. package/harness/bundles/java/cursor/harness-sync/SKILL.md +1 -1
  259. package/harness/bundles/java/cursor/harness-test/SKILL.md +11 -2
  260. package/harness/bundles/java/cursor/scripts/harness_adoption_metrics.py +391 -0
  261. package/harness/bundles/java/cursor/scripts/harness_archive.py +23 -14
  262. package/harness/bundles/java/cursor/scripts/harness_change.py +25 -7
  263. package/harness/bundles/java/cursor/scripts/harness_context.py +154 -60
  264. package/harness/bundles/java/cursor/scripts/harness_events.py +1 -1
  265. package/harness/bundles/java/cursor/scripts/harness_events_sync.py +1 -0
  266. package/harness/bundles/java/cursor/scripts/harness_fixback.py +14 -10
  267. package/harness/bundles/java/cursor/scripts/harness_gate.py +293 -90
  268. package/harness/bundles/java/cursor/scripts/harness_ledger.py +47 -2
  269. package/harness/bundles/java/cursor/scripts/harness_paths.py +175 -0
  270. package/harness/bundles/java/cursor/scripts/harness_phase.py +65 -23
  271. package/harness/bundles/java/cursor/scripts/harness_plan_finalize.py +140 -874
  272. package/harness/bundles/java/cursor/scripts/harness_review.py +25 -4
  273. package/harness/manifests/general/claude-code.json +40 -32
  274. package/harness/manifests/general/codebuddy.json +40 -32
  275. package/harness/manifests/general/codex.json +40 -32
  276. package/harness/manifests/general/cursor.json +40 -32
  277. package/harness/manifests/java/claude-code.json +42 -34
  278. package/harness/manifests/java/codebuddy.json +42 -34
  279. package/harness/manifests/java/codex.json +42 -34
  280. package/harness/manifests/java/cursor.json +42 -34
  281. package/hunter-workflow-family.json +4 -4
  282. package/package.json +1 -1
@@ -194,14 +194,30 @@ def _load_findings(change_dir: Path) -> dict[str, Any] | None:
194
194
 
195
195
 
196
196
  def validate_dispositions(
197
- doc: Any, known_ids: set[str]
197
+ doc: Any, known_ids: set[str], findings_run_id: str | None = None
198
198
  ) -> list[str]:
199
+ """校验处置文档。``findings_run_id`` 给出时,还要求两份 sidecar 同属一轮。
200
+
201
+ runId 以前完全不校验——``write_dispositions`` 直接透传 ``doc.get("runId")``,
202
+ 写 ``None`` 都能落盘,整条 sidecar 的强制力全压在 gate 关门时的一行断言上。
203
+ 而这条断言防的是 fixback 循环里的跨轮重放:sidecar 是 per-change 单文件、不带
204
+ runId 后缀,第二轮 review 关门时磁盘上躺着第一轮那份(finding 全已 FIXED)。
205
+ 在写入端就挡住,比等到关门再拒绝早一整轮。
206
+ """
199
207
  problems: list[str] = []
200
208
  if not isinstance(doc, dict):
201
209
  return ["dispositions document must be an object"]
210
+ run_id = doc.get("runId")
211
+ if not isinstance(run_id, str) or not run_id.strip():
212
+ problems.append("runId is required")
213
+ elif findings_run_id is not None and run_id != findings_run_id:
214
+ problems.append(
215
+ f"runId {run_id} does not match review findings runId {findings_run_id}"
216
+ )
202
217
  dispositions = doc.get("dispositions")
203
218
  if not isinstance(dispositions, list):
204
- return ["dispositions must be a list"]
219
+ problems.append("dispositions must be a list")
220
+ return problems
205
221
  for index, item in enumerate(dispositions):
206
222
  if not isinstance(item, dict):
207
223
  problems.append(f"dispositions[{index}] must be an object")
@@ -226,12 +242,17 @@ def write_dispositions(change_dir: Path, doc: dict[str, Any]) -> dict[str, Any]:
226
242
  f.get("id") for f in (findings_doc or {}).get("findings", [])
227
243
  if isinstance(f, dict)
228
244
  }
229
- problems = validate_dispositions(doc, known_ids)
245
+ findings_run_id = (findings_doc or {}).get("runId")
246
+ problems = validate_dispositions(
247
+ doc,
248
+ known_ids,
249
+ findings_run_id if isinstance(findings_run_id, str) else None,
250
+ )
230
251
  if problems:
231
252
  return {"ok": False, "code": "DISPOSITIONS_INVALID", "problems": problems}
232
253
  payload = {
233
254
  "schemaVersion": 1,
234
- "runId": doc.get("runId"),
255
+ "runId": doc["runId"],
235
256
  "dispositions": doc["dispositions"],
236
257
  }
237
258
  out = dispositions_path(change_dir)
@@ -4,7 +4,7 @@
4
4
  "adapter": "claude-code",
5
5
  "bundle_version": "0.2.73",
6
6
  "requires": {
7
- "minimumCliVersion": "0.2.91",
7
+ "minimumCliVersion": "0.2.92",
8
8
  "capabilities": [
9
9
  "sync@2",
10
10
  "rules-sync@1",
@@ -25,7 +25,7 @@
25
25
  "files": [
26
26
  {
27
27
  "path": ".harness-build.json",
28
- "sha256": "61081cabc198cc4cc6e70e67627c57b5cd56179e2e5df96c2c00826ec04ae837"
28
+ "sha256": "c66c43ac744f94c7d45b92fcc887b4826adbb62e44ab12d465b582de8549a2ec"
29
29
  },
30
30
  {
31
31
  "path": "agents/harness-evaluator.md",
@@ -81,7 +81,7 @@
81
81
  },
82
82
  {
83
83
  "path": "contracts/workflow-policy.json",
84
- "sha256": "65a308f68b43b7c43b7566d77336b15152a391d26abc7f9fec18290994c85a82"
84
+ "sha256": "69fec9ed7eb01b5d9f5b4fcc44e0c983f67acb15a25c418c9934d6496f3d75c8"
85
85
  },
86
86
  {
87
87
  "path": "harness-archive/checklist.md",
@@ -97,7 +97,7 @@
97
97
  },
98
98
  {
99
99
  "path": "harness-archive/SKILL.md",
100
- "sha256": "ff76b7128a867a872ef91889b879efd6216331c48e2947c2b3fe83fc131f387e"
100
+ "sha256": "bab718b68758e538f80716cf0a33afdc980095c27754978d26f3f75e9643ae1a"
101
101
  },
102
102
  {
103
103
  "path": "harness-archive/templates/summary-data-template.json",
@@ -113,7 +113,7 @@
113
113
  },
114
114
  {
115
115
  "path": "harness-codebase-map/SKILL.md",
116
- "sha256": "03027ba66bfc73f0e8d762766a0163c109466f544e537afda89eb9023118d6fe"
116
+ "sha256": "43c5f9dccea7ad47ac71fc55ab7e1b38b3a5a19dafd14d0cd7fec351f31a8c33"
117
117
  },
118
118
  {
119
119
  "path": "harness-codebase-map/templates/ARCHITECTURE.md",
@@ -151,37 +151,41 @@
151
151
  "path": "harness-codebase-map/templates/TESTING.md",
152
152
  "sha256": "3e19408d0d711a8a9432a17b6f85e025d20e19c31fa385bacb622012e300c015"
153
153
  },
154
+ {
155
+ "path": "harness-execute/SKILL.md",
156
+ "sha256": "2bfb00908e86a1da73389c292f598da843edb6942587f7c085d8e955a74515b4"
157
+ },
154
158
  {
155
159
  "path": "harness-knowledge-ingest/SKILL.md",
156
- "sha256": "edef9ca1b46dd7068499c067f63ed229d07db3aa36de16e373968581419d37e8"
160
+ "sha256": "3ede90104b08185776e2dd6741c5a2a8a80d4d865a276ebc08436a7df47ee293"
157
161
  },
158
162
  {
159
163
  "path": "harness-knowledge-query/SKILL.md",
160
- "sha256": "c734278aa9128e232e63f43070c18e13ff03c779ed19c876b58a29903ca04b67"
164
+ "sha256": "3d5982b17d1d4c26694f679a5186d680d62a507bea728951f2b58fd8d65446ec"
161
165
  },
162
166
  {
163
167
  "path": "harness-plan/checklist.md",
164
- "sha256": "31c66e6e08595d6d97e5f57fcd6d99ced5b721b82c122fbb26bb8fba34c23d90"
168
+ "sha256": "019e3889482cb3583a986e34d6dd9e8f4b0f17b6dbeb07a95ee826b9d161b53e"
165
169
  },
166
170
  {
167
171
  "path": "harness-plan/protocols.md",
168
- "sha256": "9bff7f88fc236adbc1c01db2fcbeb39248399e98f6a172080c8592ee27e742c5"
172
+ "sha256": "ee15618cbe4005ec1efd5ae91b0105920b929a9eedba8dffd29183efadf52485"
169
173
  },
170
174
  {
171
175
  "path": "harness-plan/reference.md",
172
- "sha256": "197f5b764d1054ef401f61f95055b468ab2a0c66ad482efc50a014ab7ea89711"
176
+ "sha256": "f1c2442ba4ed31456a878cadb34307923a494bb53b973be4b25e85f3377caa73"
173
177
  },
174
178
  {
175
179
  "path": "harness-plan/SKILL.md",
176
- "sha256": "0ae55ffb8ae2f8129f1cf6f7bf04364ecdef17ca23cc457208cd774cac6a4b45"
180
+ "sha256": "f77c1292f499e1dd4a951d4c067876d9ac2950408580dbb8a7a1ae457a4a8633"
177
181
  },
178
182
  {
179
183
  "path": "harness-pull/SKILL.md",
180
- "sha256": "cb671d8f8e219528a6aee26846a7b2ed766ed7b3acb8ed3eabba44a81c235272"
184
+ "sha256": "7576bc46fb02b7f07c86a9c15a1b257ce40a28456355085a2414a336c069204d"
181
185
  },
182
186
  {
183
187
  "path": "harness-push/SKILL.md",
184
- "sha256": "e9c409d6c3858d91197f884e037bdad060f9c12de6c4f1f6d9494ad76b0ce5f1"
188
+ "sha256": "56bfb83feb9329ae2934bd7f41c01c0a0ee9e0dd11f6aefd02d25bd33ec0166c"
185
189
  },
186
190
  {
187
191
  "path": "harness-review/checklist.md",
@@ -189,7 +193,7 @@
189
193
  },
190
194
  {
191
195
  "path": "harness-review/protocols.md",
192
- "sha256": "9ccc98d8c5a21836473466d102fdb92f3a03b5ca74a674f57b1c775b6fd9c07f"
196
+ "sha256": "8eb72639f8c424e3d1d8c8eb72d7fec4cf4f4ded7f02cd6db90808ac7efe46fc"
193
197
  },
194
198
  {
195
199
  "path": "harness-review/reference.md",
@@ -197,7 +201,7 @@
197
201
  },
198
202
  {
199
203
  "path": "harness-review/SKILL.md",
200
- "sha256": "f85d811af75f23464a78ab84ba0a2e89db3da48f68959fd4af662c4b6500c59b"
204
+ "sha256": "b56bf69228f78f40b75002a7d8648a458bd0511db19dd30fc6a7877ec62f7a5b"
201
205
  },
202
206
  {
203
207
  "path": "harness-run/checklist.md",
@@ -213,11 +217,11 @@
213
217
  },
214
218
  {
215
219
  "path": "harness-run/SKILL.md",
216
- "sha256": "cb2955e609670a5d5c5767928264e9c3df1cbad75b227e630f75aa8e42cfdefe"
220
+ "sha256": "cba9400d4763626654a8a3ac1931695a2565b499ffb97f31453b951de5362e7c"
217
221
  },
218
222
  {
219
223
  "path": "harness-submit/checklist.md",
220
- "sha256": "63aded0d06b986c28a54783ec5b5dca55a8b20d7966029a517bc35c5b3cf11a3"
224
+ "sha256": "7c8ae24ee908ea50d3c77fc4048b358c0080383d5de5be5e2dee5a094d800385"
221
225
  },
222
226
  {
223
227
  "path": "harness-submit/reference.md",
@@ -225,7 +229,7 @@
225
229
  },
226
230
  {
227
231
  "path": "harness-submit/SKILL.md",
228
- "sha256": "77097c018a1512cf2e824dee3699e1af882543b5c57ced629ef0601c3f954782"
232
+ "sha256": "966f8bd5ef59db551ef3749ad69a935f9a93508c780e2b511284c040019a16e7"
229
233
  },
230
234
  {
231
235
  "path": "harness-sync/reference.md",
@@ -233,7 +237,7 @@
233
237
  },
234
238
  {
235
239
  "path": "harness-sync/SKILL.md",
236
- "sha256": "87f42bc67bc3f63a56e8e96790b12aa7e45bfd62d33872a69127a0ce0ecc9f81"
240
+ "sha256": "76794fe9b08a9b9912b5a083d9a1de83bc66869ec94277fc2a158e1ca4269d7f"
237
241
  },
238
242
  {
239
243
  "path": "harness-test/checklist.md",
@@ -257,7 +261,7 @@
257
261
  },
258
262
  {
259
263
  "path": "harness-test/SKILL.md",
260
- "sha256": "1df46245e947f31768b51068567f72aefa37759bfcb32488cfab25c5fff701f5"
264
+ "sha256": "b455800fd65aa2f35f35a7d07a08c5bfbdfcb501f8a9f8cf8ccec1a28495e7ab"
261
265
  },
262
266
  {
263
267
  "path": "protocols/archive-report-protocol.md",
@@ -323,17 +327,21 @@
323
327
  "path": "README.md",
324
328
  "sha256": "0037fa52e150adb6ee698c5d12aca8d5b200aca87668608ed36756a39d4113ef"
325
329
  },
330
+ {
331
+ "path": "scripts/harness_adoption_metrics.py",
332
+ "sha256": "21e0c2c0708ba6bff1b6261994c6df0f9ff53166cdd30b8a4e6d7efc553a84de"
333
+ },
326
334
  {
327
335
  "path": "scripts/harness_apidoc.py",
328
336
  "sha256": "3fa77ffabf99075a90374d9a4b2ddca3408cc5b90610725d779d9d0dfb70fbbb"
329
337
  },
330
338
  {
331
339
  "path": "scripts/harness_archive.py",
332
- "sha256": "8882a1caf4561d28ad7daf4313010205826139e7c60f909d69271f5bc37d1e67"
340
+ "sha256": "73e6abdc6295a6f75bde0af424a8464d10239292bd444c34a6ab04573e2df3b9"
333
341
  },
334
342
  {
335
343
  "path": "scripts/harness_change.py",
336
- "sha256": "f4e2d4ab9ee13e93cf200555b6b116342ad044dcdd5dfa25fa7e7ca435dd1882"
344
+ "sha256": "9d35cfb6184028ee03c7d574a6d24b33f8cc437ba5c3dae9a0487d50566bda1f"
337
345
  },
338
346
  {
339
347
  "path": "scripts/harness_check_gate.py",
@@ -341,7 +349,7 @@
341
349
  },
342
350
  {
343
351
  "path": "scripts/harness_context.py",
344
- "sha256": "c7ad3199bda332e853a24e6268fa32dcc253adb6dfe7e0de7aa3b7f0ae7ae312"
352
+ "sha256": "aea16aa3aa038812de506c6ad2f68f7ece94d1f9ca8fb3cddbb1885a9df5611c"
345
353
  },
346
354
  {
347
355
  "path": "scripts/harness_deploy.py",
@@ -357,11 +365,11 @@
357
365
  },
358
366
  {
359
367
  "path": "scripts/harness_events_sync.py",
360
- "sha256": "4d003e3d918ec6b18cf186a96def4cba10b0d4f756a0881451635e8e7cf968ec"
368
+ "sha256": "581bcfd458ae75358927a1ac1059ed667bfd23a160a9b9554ea0001e6ee8d619"
361
369
  },
362
370
  {
363
371
  "path": "scripts/harness_events.py",
364
- "sha256": "e992498f7256d11ae98d6e71be4f88fc8e08331311ca74372bbc890a720eae43"
372
+ "sha256": "92f457533b441493e98992bd4c26d7afbc93d48d35dbed443f24ac98b341bcbc"
365
373
  },
366
374
  {
367
375
  "path": "scripts/harness_execution_contracts.py",
@@ -369,11 +377,11 @@
369
377
  },
370
378
  {
371
379
  "path": "scripts/harness_fixback.py",
372
- "sha256": "56a961a8654dd78d31b5e6f875fd15651419266ea9cab7b81fe0106f2d8a2420"
380
+ "sha256": "2ba83e62320fe47f2a0a7d46d41d6b6338e3e8a51fcdb70c89605ad82f421d6f"
373
381
  },
374
382
  {
375
383
  "path": "scripts/harness_gate.py",
376
- "sha256": "aa8527c794ac974e2c2a6d55f72021c67e80f56e919b670f02c268d6048f5908"
384
+ "sha256": "20f6a9e6e3cb6efbb3bcecc3e6b01a41615140ff383f035ab2c71952022210e4"
377
385
  },
378
386
  {
379
387
  "path": "scripts/harness_headless.py",
@@ -389,7 +397,7 @@
389
397
  },
390
398
  {
391
399
  "path": "scripts/harness_ledger.py",
392
- "sha256": "476832333a63089fe312d9fb288b9e8a51d081a44b30548e1dac9a2b8298e0fb"
400
+ "sha256": "3952d8af287272b667976e18a61204833ca275e14d21c581a3ff534fb9d95523"
393
401
  },
394
402
  {
395
403
  "path": "scripts/harness_migration_head.py",
@@ -401,11 +409,11 @@
401
409
  },
402
410
  {
403
411
  "path": "scripts/harness_paths.py",
404
- "sha256": "4042a0ee0521a3ff26448d63415eaf63dd45161d71d8c54a2b72665a1263e02b"
412
+ "sha256": "01615e63ef7df250ff9a6a86c3cf2b9dd429696afc494e2f88113e314758bf35"
405
413
  },
406
414
  {
407
415
  "path": "scripts/harness_phase.py",
408
- "sha256": "b1e53c1f7becf198195cb9a4bcba835767aed82420450e1842cc07d89febf532"
416
+ "sha256": "5216a015903cc0905b98f94be7cb4790adda836891ce4f7c065e2712226cd0b6"
409
417
  },
410
418
  {
411
419
  "path": "scripts/harness_plan_aggregate.py",
@@ -413,7 +421,7 @@
413
421
  },
414
422
  {
415
423
  "path": "scripts/harness_plan_finalize.py",
416
- "sha256": "6f4dcee06f92f7ed7a3bd0ee615e9dd7e8fd921502b132305e37c4871b97537b"
424
+ "sha256": "c045b8c10e936323c1c0de9617283b37ce23b0c70d31521107f78e7e6f7085e7"
417
425
  },
418
426
  {
419
427
  "path": "scripts/harness_preflight.py",
@@ -437,7 +445,7 @@
437
445
  },
438
446
  {
439
447
  "path": "scripts/harness_review.py",
440
- "sha256": "3e14be966ffc0f2e0261f471390d1ed308f2272e1df7e0cb30d7c9ba5e33f858"
448
+ "sha256": "c3c591323846bee24afc13ba0ab4eb275233eff84f57c1bb5d155a453bd127db"
441
449
  },
442
450
  {
443
451
  "path": "scripts/harness_runtime.py",
@@ -4,7 +4,7 @@
4
4
  "adapter": "codebuddy",
5
5
  "bundle_version": "0.2.73",
6
6
  "requires": {
7
- "minimumCliVersion": "0.2.91",
7
+ "minimumCliVersion": "0.2.92",
8
8
  "capabilities": [
9
9
  "sync@2",
10
10
  "rules-sync@1",
@@ -25,7 +25,7 @@
25
25
  "files": [
26
26
  {
27
27
  "path": ".harness-build.json",
28
- "sha256": "710d97164be1fee8bdec9341ce2b0c4609ad9b3e02462817e6e6745175c55702"
28
+ "sha256": "4a3be195444b29aa4e0eaa7873bdf34773c67b2f52d95ac99ade73a0bdf53708"
29
29
  },
30
30
  {
31
31
  "path": "agents/harness-evaluator.md",
@@ -81,7 +81,7 @@
81
81
  },
82
82
  {
83
83
  "path": "contracts/workflow-policy.json",
84
- "sha256": "65a308f68b43b7c43b7566d77336b15152a391d26abc7f9fec18290994c85a82"
84
+ "sha256": "69fec9ed7eb01b5d9f5b4fcc44e0c983f67acb15a25c418c9934d6496f3d75c8"
85
85
  },
86
86
  {
87
87
  "path": "harness-archive/checklist.md",
@@ -97,7 +97,7 @@
97
97
  },
98
98
  {
99
99
  "path": "harness-archive/SKILL.md",
100
- "sha256": "8dc2d8de45dbc2dc64cc6b070a741f9ebc5a8ab041d8dd13ee1659386909abaf"
100
+ "sha256": "e24066ad25de6eaf520a06982859b0d7915ca59cefb2cc03d9af7649aaebca71"
101
101
  },
102
102
  {
103
103
  "path": "harness-archive/templates/summary-data-template.json",
@@ -113,7 +113,7 @@
113
113
  },
114
114
  {
115
115
  "path": "harness-codebase-map/SKILL.md",
116
- "sha256": "ddb2c296c4f38e300bd7917b830ca64f955f62fdb62a78a98693801235554d18"
116
+ "sha256": "f3bd2d4619f2c7a232f1e9a90b0049f3c8d206a8a1bb651195021b504dbfab53"
117
117
  },
118
118
  {
119
119
  "path": "harness-codebase-map/templates/ARCHITECTURE.md",
@@ -151,37 +151,41 @@
151
151
  "path": "harness-codebase-map/templates/TESTING.md",
152
152
  "sha256": "3e19408d0d711a8a9432a17b6f85e025d20e19c31fa385bacb622012e300c015"
153
153
  },
154
+ {
155
+ "path": "harness-execute/SKILL.md",
156
+ "sha256": "b5a512a86c45651bd9c69242ac8ecf6a6618bd8f721e4153f25e7a6fc4b4c9e5"
157
+ },
154
158
  {
155
159
  "path": "harness-knowledge-ingest/SKILL.md",
156
- "sha256": "286125cfed62c9484de3da3b1f7e43bbfcd0346b1c3a5d44f0db46c117abf450"
160
+ "sha256": "eaf92be22b86c1887312945a7e2c5dd1fcf875347a102beb8feae9269ca8daa5"
157
161
  },
158
162
  {
159
163
  "path": "harness-knowledge-query/SKILL.md",
160
- "sha256": "ceba18bb2cb03cf7be2d80598a67f830830468764c0fd85580a9346957880b78"
164
+ "sha256": "9b889f9c4d40bd2b413bcc6b9ac66211045e81679cfc1a3d4a7ba6594be2b3a4"
161
165
  },
162
166
  {
163
167
  "path": "harness-plan/checklist.md",
164
- "sha256": "31c66e6e08595d6d97e5f57fcd6d99ced5b721b82c122fbb26bb8fba34c23d90"
168
+ "sha256": "019e3889482cb3583a986e34d6dd9e8f4b0f17b6dbeb07a95ee826b9d161b53e"
165
169
  },
166
170
  {
167
171
  "path": "harness-plan/protocols.md",
168
- "sha256": "9bff7f88fc236adbc1c01db2fcbeb39248399e98f6a172080c8592ee27e742c5"
172
+ "sha256": "ee15618cbe4005ec1efd5ae91b0105920b929a9eedba8dffd29183efadf52485"
169
173
  },
170
174
  {
171
175
  "path": "harness-plan/reference.md",
172
- "sha256": "197f5b764d1054ef401f61f95055b468ab2a0c66ad482efc50a014ab7ea89711"
176
+ "sha256": "f1c2442ba4ed31456a878cadb34307923a494bb53b973be4b25e85f3377caa73"
173
177
  },
174
178
  {
175
179
  "path": "harness-plan/SKILL.md",
176
- "sha256": "6cbb9439030a35a60c2a4a6cc025c69f16eb3204512529329e7446a56a61afe8"
180
+ "sha256": "98c6188912d5e4741e7406da83b97cc97f5f2653d270f4f042f439ea5ab71460"
177
181
  },
178
182
  {
179
183
  "path": "harness-pull/SKILL.md",
180
- "sha256": "8d4030cb1418085a809efec425689ba9a677564a0e77a62c8ed08aeb0ef5a785"
184
+ "sha256": "62a5346eb94a96e54084715ba5497d94891e1e98305421f92e7ce803aed977d6"
181
185
  },
182
186
  {
183
187
  "path": "harness-push/SKILL.md",
184
- "sha256": "282e53222b0e9b494d2fce499fcda34213e35acaeba48ed079fffe7c4bf3b22f"
188
+ "sha256": "11ab78fe79456097e3c3d97fe42fd7e92be505aa620709b7a4bd81a13c33af69"
185
189
  },
186
190
  {
187
191
  "path": "harness-review/checklist.md",
@@ -189,7 +193,7 @@
189
193
  },
190
194
  {
191
195
  "path": "harness-review/protocols.md",
192
- "sha256": "9ccc98d8c5a21836473466d102fdb92f3a03b5ca74a674f57b1c775b6fd9c07f"
196
+ "sha256": "8eb72639f8c424e3d1d8c8eb72d7fec4cf4f4ded7f02cd6db90808ac7efe46fc"
193
197
  },
194
198
  {
195
199
  "path": "harness-review/reference.md",
@@ -197,7 +201,7 @@
197
201
  },
198
202
  {
199
203
  "path": "harness-review/SKILL.md",
200
- "sha256": "a3a9393b010685c904a1fb917c359e713dd2898fb8a33d5d9531326145ecdfde"
204
+ "sha256": "9ce7d6581a8483c24889db4f9ab6e1c91d0b257b38228d2387bd0470c090dbfd"
201
205
  },
202
206
  {
203
207
  "path": "harness-run/checklist.md",
@@ -213,11 +217,11 @@
213
217
  },
214
218
  {
215
219
  "path": "harness-run/SKILL.md",
216
- "sha256": "ed2cc6b6e07221d30e03af52bd7f86ea148f4717e4da40f7ae266359cdeb864b"
220
+ "sha256": "0f95be56c2a6d34308d034b4db900c185a23f4370c00de1897e0fc20b527164b"
217
221
  },
218
222
  {
219
223
  "path": "harness-submit/checklist.md",
220
- "sha256": "63aded0d06b986c28a54783ec5b5dca55a8b20d7966029a517bc35c5b3cf11a3"
224
+ "sha256": "7c8ae24ee908ea50d3c77fc4048b358c0080383d5de5be5e2dee5a094d800385"
221
225
  },
222
226
  {
223
227
  "path": "harness-submit/reference.md",
@@ -225,7 +229,7 @@
225
229
  },
226
230
  {
227
231
  "path": "harness-submit/SKILL.md",
228
- "sha256": "9ed3479b2961c6c9dde433955c33b64c641062dd6b5fcb15bfa3c928b7fde7c4"
232
+ "sha256": "4b6a7590a9321bdb140a10c2146875a6cdace54c8d28105004d4c56197cbe2f3"
229
233
  },
230
234
  {
231
235
  "path": "harness-sync/reference.md",
@@ -233,7 +237,7 @@
233
237
  },
234
238
  {
235
239
  "path": "harness-sync/SKILL.md",
236
- "sha256": "03b59e0668c52557ee2f550d7c47e18a43a6332c7dc6b49cfd21856a28a7944f"
240
+ "sha256": "6b93e7c264508dae1e129b9c5b69afda6a13e25180d48af4db515ef82ae4bbad"
237
241
  },
238
242
  {
239
243
  "path": "harness-test/checklist.md",
@@ -257,7 +261,7 @@
257
261
  },
258
262
  {
259
263
  "path": "harness-test/SKILL.md",
260
- "sha256": "3a38658f95deba1a07f13eeeba4823576c786feeab65cabbc56f123bc9e2bb4d"
264
+ "sha256": "2228bafa2f197fb9b1d35372b368c97ce7f4241658cabab937e15ddfe7aeec0a"
261
265
  },
262
266
  {
263
267
  "path": "protocols/archive-report-protocol.md",
@@ -323,17 +327,21 @@
323
327
  "path": "README.md",
324
328
  "sha256": "0037fa52e150adb6ee698c5d12aca8d5b200aca87668608ed36756a39d4113ef"
325
329
  },
330
+ {
331
+ "path": "scripts/harness_adoption_metrics.py",
332
+ "sha256": "21e0c2c0708ba6bff1b6261994c6df0f9ff53166cdd30b8a4e6d7efc553a84de"
333
+ },
326
334
  {
327
335
  "path": "scripts/harness_apidoc.py",
328
336
  "sha256": "3fa77ffabf99075a90374d9a4b2ddca3408cc5b90610725d779d9d0dfb70fbbb"
329
337
  },
330
338
  {
331
339
  "path": "scripts/harness_archive.py",
332
- "sha256": "8882a1caf4561d28ad7daf4313010205826139e7c60f909d69271f5bc37d1e67"
340
+ "sha256": "73e6abdc6295a6f75bde0af424a8464d10239292bd444c34a6ab04573e2df3b9"
333
341
  },
334
342
  {
335
343
  "path": "scripts/harness_change.py",
336
- "sha256": "f4e2d4ab9ee13e93cf200555b6b116342ad044dcdd5dfa25fa7e7ca435dd1882"
344
+ "sha256": "9d35cfb6184028ee03c7d574a6d24b33f8cc437ba5c3dae9a0487d50566bda1f"
337
345
  },
338
346
  {
339
347
  "path": "scripts/harness_check_gate.py",
@@ -341,7 +349,7 @@
341
349
  },
342
350
  {
343
351
  "path": "scripts/harness_context.py",
344
- "sha256": "c7ad3199bda332e853a24e6268fa32dcc253adb6dfe7e0de7aa3b7f0ae7ae312"
352
+ "sha256": "aea16aa3aa038812de506c6ad2f68f7ece94d1f9ca8fb3cddbb1885a9df5611c"
345
353
  },
346
354
  {
347
355
  "path": "scripts/harness_deploy.py",
@@ -357,11 +365,11 @@
357
365
  },
358
366
  {
359
367
  "path": "scripts/harness_events_sync.py",
360
- "sha256": "4d003e3d918ec6b18cf186a96def4cba10b0d4f756a0881451635e8e7cf968ec"
368
+ "sha256": "581bcfd458ae75358927a1ac1059ed667bfd23a160a9b9554ea0001e6ee8d619"
361
369
  },
362
370
  {
363
371
  "path": "scripts/harness_events.py",
364
- "sha256": "e992498f7256d11ae98d6e71be4f88fc8e08331311ca74372bbc890a720eae43"
372
+ "sha256": "92f457533b441493e98992bd4c26d7afbc93d48d35dbed443f24ac98b341bcbc"
365
373
  },
366
374
  {
367
375
  "path": "scripts/harness_execution_contracts.py",
@@ -369,11 +377,11 @@
369
377
  },
370
378
  {
371
379
  "path": "scripts/harness_fixback.py",
372
- "sha256": "56a961a8654dd78d31b5e6f875fd15651419266ea9cab7b81fe0106f2d8a2420"
380
+ "sha256": "2ba83e62320fe47f2a0a7d46d41d6b6338e3e8a51fcdb70c89605ad82f421d6f"
373
381
  },
374
382
  {
375
383
  "path": "scripts/harness_gate.py",
376
- "sha256": "aa8527c794ac974e2c2a6d55f72021c67e80f56e919b670f02c268d6048f5908"
384
+ "sha256": "20f6a9e6e3cb6efbb3bcecc3e6b01a41615140ff383f035ab2c71952022210e4"
377
385
  },
378
386
  {
379
387
  "path": "scripts/harness_headless.py",
@@ -389,7 +397,7 @@
389
397
  },
390
398
  {
391
399
  "path": "scripts/harness_ledger.py",
392
- "sha256": "476832333a63089fe312d9fb288b9e8a51d081a44b30548e1dac9a2b8298e0fb"
400
+ "sha256": "3952d8af287272b667976e18a61204833ca275e14d21c581a3ff534fb9d95523"
393
401
  },
394
402
  {
395
403
  "path": "scripts/harness_migration_head.py",
@@ -401,11 +409,11 @@
401
409
  },
402
410
  {
403
411
  "path": "scripts/harness_paths.py",
404
- "sha256": "4042a0ee0521a3ff26448d63415eaf63dd45161d71d8c54a2b72665a1263e02b"
412
+ "sha256": "01615e63ef7df250ff9a6a86c3cf2b9dd429696afc494e2f88113e314758bf35"
405
413
  },
406
414
  {
407
415
  "path": "scripts/harness_phase.py",
408
- "sha256": "b1e53c1f7becf198195cb9a4bcba835767aed82420450e1842cc07d89febf532"
416
+ "sha256": "5216a015903cc0905b98f94be7cb4790adda836891ce4f7c065e2712226cd0b6"
409
417
  },
410
418
  {
411
419
  "path": "scripts/harness_plan_aggregate.py",
@@ -413,7 +421,7 @@
413
421
  },
414
422
  {
415
423
  "path": "scripts/harness_plan_finalize.py",
416
- "sha256": "6f4dcee06f92f7ed7a3bd0ee615e9dd7e8fd921502b132305e37c4871b97537b"
424
+ "sha256": "c045b8c10e936323c1c0de9617283b37ce23b0c70d31521107f78e7e6f7085e7"
417
425
  },
418
426
  {
419
427
  "path": "scripts/harness_preflight.py",
@@ -437,7 +445,7 @@
437
445
  },
438
446
  {
439
447
  "path": "scripts/harness_review.py",
440
- "sha256": "3e14be966ffc0f2e0261f471390d1ed308f2272e1df7e0cb30d7c9ba5e33f858"
448
+ "sha256": "c3c591323846bee24afc13ba0ab4eb275233eff84f57c1bb5d155a453bd127db"
441
449
  },
442
450
  {
443
451
  "path": "scripts/harness_runtime.py",