@hunter-harness/workflow-harness 0.2.59 → 0.2.61

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/README.md +14 -16
  3. package/harness/bundles/general/claude-code/harness-archive/SKILL.md +43 -46
  4. package/harness/bundles/general/claude-code/harness-archive/checklist.md +10 -10
  5. package/harness/bundles/general/claude-code/harness-archive/reference.md +29 -22
  6. package/harness/bundles/general/claude-code/harness-archive/templates/summary-data-template.json +1 -7
  7. package/harness/bundles/general/claude-code/harness-codebase-map/SKILL.md +1 -1
  8. package/harness/bundles/general/claude-code/harness-knowledge-ingest/SKILL.md +1 -1
  9. package/harness/bundles/general/claude-code/harness-knowledge-query/SKILL.md +1 -1
  10. package/harness/bundles/general/claude-code/harness-plan/SKILL.md +4 -4
  11. package/harness/bundles/general/claude-code/harness-review/SKILL.md +2 -2
  12. package/harness/bundles/general/claude-code/harness-run/SKILL.md +5 -3
  13. package/harness/bundles/general/claude-code/harness-run/checklist.md +10 -9
  14. package/harness/bundles/general/claude-code/harness-run/protocols.md +2 -0
  15. package/harness/bundles/general/claude-code/harness-run/reference.md +19 -16
  16. package/harness/bundles/general/claude-code/harness-submit/SKILL.md +2 -2
  17. package/harness/bundles/general/claude-code/harness-sync/SKILL.md +1 -1
  18. package/harness/bundles/general/claude-code/harness-test/SKILL.md +2 -2
  19. package/harness/bundles/general/claude-code/harness-test/checklist.md +2 -2
  20. package/harness/bundles/general/claude-code/harness-test/pitfalls.md +3 -3
  21. package/harness/bundles/general/claude-code/harness-test/reference.md +2 -2
  22. package/harness/bundles/general/claude-code/protocols/archive-report-protocol.md +18 -25
  23. package/harness/bundles/general/claude-code/protocols/evidence-based-reporting-protocol.md +5 -5
  24. package/harness/bundles/general/claude-code/protocols/ledger-protocol.md +7 -7
  25. package/harness/bundles/general/claude-code/protocols/report-pipeline-protocol.md +10 -9
  26. package/harness/bundles/general/claude-code/protocols/sensitive-info-protocol.md +3 -3
  27. package/harness/bundles/general/claude-code/protocols/state-layout-protocol.md +5 -6
  28. package/harness/bundles/general/claude-code/scripts/harness_archive.py +1043 -1108
  29. package/harness/bundles/general/claude-code/scripts/harness_context.py +8 -2
  30. package/harness/bundles/general/claude-code/scripts/harness_events.py +5 -0
  31. package/harness/bundles/general/claude-code/scripts/harness_ledger.py +79 -2
  32. package/harness/bundles/general/claude-code/scripts/harness_profile.py +7 -0
  33. package/harness/bundles/general/claude-code/scripts/harness_state.py +22 -3
  34. package/harness/bundles/general/codebuddy/.harness-build.json +1 -1
  35. package/harness/bundles/general/codebuddy/README.md +14 -16
  36. package/harness/bundles/general/codebuddy/harness-archive/SKILL.md +43 -46
  37. package/harness/bundles/general/codebuddy/harness-archive/checklist.md +10 -10
  38. package/harness/bundles/general/codebuddy/harness-archive/reference.md +29 -22
  39. package/harness/bundles/general/codebuddy/harness-archive/templates/summary-data-template.json +1 -7
  40. package/harness/bundles/general/codebuddy/harness-codebase-map/SKILL.md +1 -1
  41. package/harness/bundles/general/codebuddy/harness-knowledge-ingest/SKILL.md +1 -1
  42. package/harness/bundles/general/codebuddy/harness-knowledge-query/SKILL.md +1 -1
  43. package/harness/bundles/general/codebuddy/harness-plan/SKILL.md +4 -4
  44. package/harness/bundles/general/codebuddy/harness-review/SKILL.md +2 -2
  45. package/harness/bundles/general/codebuddy/harness-run/SKILL.md +5 -3
  46. package/harness/bundles/general/codebuddy/harness-run/checklist.md +10 -9
  47. package/harness/bundles/general/codebuddy/harness-run/protocols.md +2 -0
  48. package/harness/bundles/general/codebuddy/harness-run/reference.md +19 -16
  49. package/harness/bundles/general/codebuddy/harness-submit/SKILL.md +2 -2
  50. package/harness/bundles/general/codebuddy/harness-sync/SKILL.md +1 -1
  51. package/harness/bundles/general/codebuddy/harness-test/SKILL.md +2 -2
  52. package/harness/bundles/general/codebuddy/harness-test/checklist.md +2 -2
  53. package/harness/bundles/general/codebuddy/harness-test/pitfalls.md +3 -3
  54. package/harness/bundles/general/codebuddy/harness-test/reference.md +2 -2
  55. package/harness/bundles/general/codebuddy/protocols/archive-report-protocol.md +18 -25
  56. package/harness/bundles/general/codebuddy/protocols/evidence-based-reporting-protocol.md +5 -5
  57. package/harness/bundles/general/codebuddy/protocols/ledger-protocol.md +7 -7
  58. package/harness/bundles/general/codebuddy/protocols/report-pipeline-protocol.md +10 -9
  59. package/harness/bundles/general/codebuddy/protocols/sensitive-info-protocol.md +3 -3
  60. package/harness/bundles/general/codebuddy/protocols/state-layout-protocol.md +5 -6
  61. package/harness/bundles/general/codebuddy/scripts/harness_archive.py +1043 -1108
  62. package/harness/bundles/general/codebuddy/scripts/harness_context.py +8 -2
  63. package/harness/bundles/general/codebuddy/scripts/harness_events.py +5 -0
  64. package/harness/bundles/general/codebuddy/scripts/harness_ledger.py +79 -2
  65. package/harness/bundles/general/codebuddy/scripts/harness_profile.py +7 -0
  66. package/harness/bundles/general/codebuddy/scripts/harness_state.py +22 -3
  67. package/harness/bundles/general/codex/.harness-build.json +1 -1
  68. package/harness/bundles/general/codex/README.md +14 -16
  69. package/harness/bundles/general/codex/harness-archive/SKILL.md +43 -46
  70. package/harness/bundles/general/codex/harness-archive/checklist.md +10 -10
  71. package/harness/bundles/general/codex/harness-archive/reference.md +29 -22
  72. package/harness/bundles/general/codex/harness-archive/templates/summary-data-template.json +1 -7
  73. package/harness/bundles/general/codex/harness-codebase-map/SKILL.md +1 -1
  74. package/harness/bundles/general/codex/harness-knowledge-ingest/SKILL.md +1 -1
  75. package/harness/bundles/general/codex/harness-knowledge-query/SKILL.md +1 -1
  76. package/harness/bundles/general/codex/harness-plan/SKILL.md +4 -4
  77. package/harness/bundles/general/codex/harness-review/SKILL.md +2 -2
  78. package/harness/bundles/general/codex/harness-run/SKILL.md +5 -3
  79. package/harness/bundles/general/codex/harness-run/checklist.md +10 -9
  80. package/harness/bundles/general/codex/harness-run/protocols.md +2 -0
  81. package/harness/bundles/general/codex/harness-run/reference.md +19 -16
  82. package/harness/bundles/general/codex/harness-submit/SKILL.md +2 -2
  83. package/harness/bundles/general/codex/harness-sync/SKILL.md +1 -1
  84. package/harness/bundles/general/codex/harness-test/SKILL.md +2 -2
  85. package/harness/bundles/general/codex/harness-test/checklist.md +2 -2
  86. package/harness/bundles/general/codex/harness-test/pitfalls.md +3 -3
  87. package/harness/bundles/general/codex/harness-test/reference.md +2 -2
  88. package/harness/bundles/general/codex/protocols/archive-report-protocol.md +18 -25
  89. package/harness/bundles/general/codex/protocols/evidence-based-reporting-protocol.md +5 -5
  90. package/harness/bundles/general/codex/protocols/ledger-protocol.md +7 -7
  91. package/harness/bundles/general/codex/protocols/report-pipeline-protocol.md +10 -9
  92. package/harness/bundles/general/codex/protocols/sensitive-info-protocol.md +3 -3
  93. package/harness/bundles/general/codex/protocols/state-layout-protocol.md +5 -6
  94. package/harness/bundles/general/codex/scripts/harness_archive.py +1043 -1108
  95. package/harness/bundles/general/codex/scripts/harness_context.py +8 -2
  96. package/harness/bundles/general/codex/scripts/harness_events.py +5 -0
  97. package/harness/bundles/general/codex/scripts/harness_ledger.py +79 -2
  98. package/harness/bundles/general/codex/scripts/harness_profile.py +7 -0
  99. package/harness/bundles/general/codex/scripts/harness_state.py +22 -3
  100. package/harness/bundles/general/cursor/.harness-build.json +1 -1
  101. package/harness/bundles/general/cursor/README.md +14 -16
  102. package/harness/bundles/general/cursor/harness-archive/SKILL.md +43 -46
  103. package/harness/bundles/general/cursor/harness-archive/checklist.md +10 -10
  104. package/harness/bundles/general/cursor/harness-archive/reference.md +29 -22
  105. package/harness/bundles/general/cursor/harness-archive/templates/summary-data-template.json +1 -7
  106. package/harness/bundles/general/cursor/harness-codebase-map/SKILL.md +1 -1
  107. package/harness/bundles/general/cursor/harness-knowledge-ingest/SKILL.md +1 -1
  108. package/harness/bundles/general/cursor/harness-knowledge-query/SKILL.md +1 -1
  109. package/harness/bundles/general/cursor/harness-plan/SKILL.md +4 -4
  110. package/harness/bundles/general/cursor/harness-review/SKILL.md +2 -2
  111. package/harness/bundles/general/cursor/harness-run/SKILL.md +5 -3
  112. package/harness/bundles/general/cursor/harness-run/checklist.md +10 -9
  113. package/harness/bundles/general/cursor/harness-run/protocols.md +2 -0
  114. package/harness/bundles/general/cursor/harness-run/reference.md +19 -16
  115. package/harness/bundles/general/cursor/harness-submit/SKILL.md +2 -2
  116. package/harness/bundles/general/cursor/harness-sync/SKILL.md +1 -1
  117. package/harness/bundles/general/cursor/harness-test/SKILL.md +2 -2
  118. package/harness/bundles/general/cursor/harness-test/checklist.md +2 -2
  119. package/harness/bundles/general/cursor/harness-test/pitfalls.md +3 -3
  120. package/harness/bundles/general/cursor/harness-test/reference.md +2 -2
  121. package/harness/bundles/general/cursor/protocols/archive-report-protocol.md +18 -25
  122. package/harness/bundles/general/cursor/protocols/evidence-based-reporting-protocol.md +5 -5
  123. package/harness/bundles/general/cursor/protocols/ledger-protocol.md +7 -7
  124. package/harness/bundles/general/cursor/protocols/report-pipeline-protocol.md +10 -9
  125. package/harness/bundles/general/cursor/protocols/sensitive-info-protocol.md +3 -3
  126. package/harness/bundles/general/cursor/protocols/state-layout-protocol.md +5 -6
  127. package/harness/bundles/general/cursor/scripts/harness_archive.py +1043 -1108
  128. package/harness/bundles/general/cursor/scripts/harness_context.py +8 -2
  129. package/harness/bundles/general/cursor/scripts/harness_events.py +5 -0
  130. package/harness/bundles/general/cursor/scripts/harness_ledger.py +79 -2
  131. package/harness/bundles/general/cursor/scripts/harness_profile.py +7 -0
  132. package/harness/bundles/general/cursor/scripts/harness_state.py +22 -3
  133. package/harness/bundles/java/claude-code/.harness-build.json +1 -1
  134. package/harness/bundles/java/claude-code/README.md +14 -16
  135. package/harness/bundles/java/claude-code/harness-apidoc/SKILL.md +2 -2
  136. package/harness/bundles/java/claude-code/harness-archive/SKILL.md +43 -46
  137. package/harness/bundles/java/claude-code/harness-archive/checklist.md +10 -10
  138. package/harness/bundles/java/claude-code/harness-archive/reference.md +29 -22
  139. package/harness/bundles/java/claude-code/harness-archive/templates/summary-data-template.json +1 -7
  140. package/harness/bundles/java/claude-code/harness-codebase-map/SKILL.md +1 -1
  141. package/harness/bundles/java/claude-code/harness-knowledge-ingest/SKILL.md +1 -1
  142. package/harness/bundles/java/claude-code/harness-knowledge-query/SKILL.md +1 -1
  143. package/harness/bundles/java/claude-code/harness-package/SKILL.md +2 -2
  144. package/harness/bundles/java/claude-code/harness-plan/SKILL.md +4 -4
  145. package/harness/bundles/java/claude-code/harness-review/SKILL.md +2 -2
  146. package/harness/bundles/java/claude-code/harness-run/SKILL.md +5 -3
  147. package/harness/bundles/java/claude-code/harness-run/protocols.md +2 -0
  148. package/harness/bundles/java/claude-code/harness-submit/SKILL.md +2 -2
  149. package/harness/bundles/java/claude-code/harness-sync/SKILL.md +1 -1
  150. package/harness/bundles/java/claude-code/harness-test/SKILL.md +2 -2
  151. package/harness/bundles/java/claude-code/harness-test/checklist.md +2 -2
  152. package/harness/bundles/java/claude-code/harness-test/pitfalls.md +3 -3
  153. package/harness/bundles/java/claude-code/harness-test/reference.md +2 -2
  154. package/harness/bundles/java/claude-code/protocols/archive-report-protocol.md +18 -25
  155. package/harness/bundles/java/claude-code/protocols/evidence-based-reporting-protocol.md +5 -5
  156. package/harness/bundles/java/claude-code/protocols/ledger-protocol.md +7 -7
  157. package/harness/bundles/java/claude-code/protocols/report-pipeline-protocol.md +10 -9
  158. package/harness/bundles/java/claude-code/protocols/sensitive-info-protocol.md +3 -3
  159. package/harness/bundles/java/claude-code/protocols/state-layout-protocol.md +5 -6
  160. package/harness/bundles/java/claude-code/scripts/harness_archive.py +1043 -1108
  161. package/harness/bundles/java/claude-code/scripts/harness_context.py +8 -2
  162. package/harness/bundles/java/claude-code/scripts/harness_events.py +5 -0
  163. package/harness/bundles/java/claude-code/scripts/harness_ledger.py +79 -2
  164. package/harness/bundles/java/claude-code/scripts/harness_profile.py +7 -0
  165. package/harness/bundles/java/claude-code/scripts/harness_state.py +22 -3
  166. package/harness/bundles/java/codebuddy/.harness-build.json +1 -1
  167. package/harness/bundles/java/codebuddy/README.md +14 -16
  168. package/harness/bundles/java/codebuddy/harness-apidoc/SKILL.md +2 -2
  169. package/harness/bundles/java/codebuddy/harness-archive/SKILL.md +43 -46
  170. package/harness/bundles/java/codebuddy/harness-archive/checklist.md +10 -10
  171. package/harness/bundles/java/codebuddy/harness-archive/reference.md +29 -22
  172. package/harness/bundles/java/codebuddy/harness-archive/templates/summary-data-template.json +1 -7
  173. package/harness/bundles/java/codebuddy/harness-codebase-map/SKILL.md +1 -1
  174. package/harness/bundles/java/codebuddy/harness-knowledge-ingest/SKILL.md +1 -1
  175. package/harness/bundles/java/codebuddy/harness-knowledge-query/SKILL.md +1 -1
  176. package/harness/bundles/java/codebuddy/harness-package/SKILL.md +2 -2
  177. package/harness/bundles/java/codebuddy/harness-plan/SKILL.md +4 -4
  178. package/harness/bundles/java/codebuddy/harness-review/SKILL.md +2 -2
  179. package/harness/bundles/java/codebuddy/harness-run/SKILL.md +5 -3
  180. package/harness/bundles/java/codebuddy/harness-run/protocols.md +2 -0
  181. package/harness/bundles/java/codebuddy/harness-submit/SKILL.md +2 -2
  182. package/harness/bundles/java/codebuddy/harness-sync/SKILL.md +1 -1
  183. package/harness/bundles/java/codebuddy/harness-test/SKILL.md +2 -2
  184. package/harness/bundles/java/codebuddy/harness-test/checklist.md +2 -2
  185. package/harness/bundles/java/codebuddy/harness-test/pitfalls.md +3 -3
  186. package/harness/bundles/java/codebuddy/harness-test/reference.md +2 -2
  187. package/harness/bundles/java/codebuddy/protocols/archive-report-protocol.md +18 -25
  188. package/harness/bundles/java/codebuddy/protocols/evidence-based-reporting-protocol.md +5 -5
  189. package/harness/bundles/java/codebuddy/protocols/ledger-protocol.md +7 -7
  190. package/harness/bundles/java/codebuddy/protocols/report-pipeline-protocol.md +10 -9
  191. package/harness/bundles/java/codebuddy/protocols/sensitive-info-protocol.md +3 -3
  192. package/harness/bundles/java/codebuddy/protocols/state-layout-protocol.md +5 -6
  193. package/harness/bundles/java/codebuddy/scripts/harness_archive.py +1043 -1108
  194. package/harness/bundles/java/codebuddy/scripts/harness_context.py +8 -2
  195. package/harness/bundles/java/codebuddy/scripts/harness_events.py +5 -0
  196. package/harness/bundles/java/codebuddy/scripts/harness_ledger.py +79 -2
  197. package/harness/bundles/java/codebuddy/scripts/harness_profile.py +7 -0
  198. package/harness/bundles/java/codebuddy/scripts/harness_state.py +22 -3
  199. package/harness/bundles/java/codex/.harness-build.json +1 -1
  200. package/harness/bundles/java/codex/README.md +14 -16
  201. package/harness/bundles/java/codex/harness-apidoc/SKILL.md +2 -2
  202. package/harness/bundles/java/codex/harness-archive/SKILL.md +43 -46
  203. package/harness/bundles/java/codex/harness-archive/checklist.md +10 -10
  204. package/harness/bundles/java/codex/harness-archive/reference.md +29 -22
  205. package/harness/bundles/java/codex/harness-archive/templates/summary-data-template.json +1 -7
  206. package/harness/bundles/java/codex/harness-codebase-map/SKILL.md +1 -1
  207. package/harness/bundles/java/codex/harness-knowledge-ingest/SKILL.md +1 -1
  208. package/harness/bundles/java/codex/harness-knowledge-query/SKILL.md +1 -1
  209. package/harness/bundles/java/codex/harness-package/SKILL.md +2 -2
  210. package/harness/bundles/java/codex/harness-plan/SKILL.md +4 -4
  211. package/harness/bundles/java/codex/harness-review/SKILL.md +2 -2
  212. package/harness/bundles/java/codex/harness-run/SKILL.md +5 -3
  213. package/harness/bundles/java/codex/harness-run/protocols.md +2 -0
  214. package/harness/bundles/java/codex/harness-submit/SKILL.md +2 -2
  215. package/harness/bundles/java/codex/harness-sync/SKILL.md +1 -1
  216. package/harness/bundles/java/codex/harness-test/SKILL.md +2 -2
  217. package/harness/bundles/java/codex/harness-test/checklist.md +2 -2
  218. package/harness/bundles/java/codex/harness-test/pitfalls.md +3 -3
  219. package/harness/bundles/java/codex/harness-test/reference.md +2 -2
  220. package/harness/bundles/java/codex/protocols/archive-report-protocol.md +18 -25
  221. package/harness/bundles/java/codex/protocols/evidence-based-reporting-protocol.md +5 -5
  222. package/harness/bundles/java/codex/protocols/ledger-protocol.md +7 -7
  223. package/harness/bundles/java/codex/protocols/report-pipeline-protocol.md +10 -9
  224. package/harness/bundles/java/codex/protocols/sensitive-info-protocol.md +3 -3
  225. package/harness/bundles/java/codex/protocols/state-layout-protocol.md +5 -6
  226. package/harness/bundles/java/codex/scripts/harness_archive.py +1043 -1108
  227. package/harness/bundles/java/codex/scripts/harness_context.py +8 -2
  228. package/harness/bundles/java/codex/scripts/harness_events.py +5 -0
  229. package/harness/bundles/java/codex/scripts/harness_ledger.py +79 -2
  230. package/harness/bundles/java/codex/scripts/harness_profile.py +7 -0
  231. package/harness/bundles/java/codex/scripts/harness_state.py +22 -3
  232. package/harness/bundles/java/cursor/.harness-build.json +1 -1
  233. package/harness/bundles/java/cursor/README.md +14 -16
  234. package/harness/bundles/java/cursor/harness-apidoc/SKILL.md +2 -2
  235. package/harness/bundles/java/cursor/harness-archive/SKILL.md +43 -46
  236. package/harness/bundles/java/cursor/harness-archive/checklist.md +10 -10
  237. package/harness/bundles/java/cursor/harness-archive/reference.md +29 -22
  238. package/harness/bundles/java/cursor/harness-archive/templates/summary-data-template.json +1 -7
  239. package/harness/bundles/java/cursor/harness-codebase-map/SKILL.md +1 -1
  240. package/harness/bundles/java/cursor/harness-knowledge-ingest/SKILL.md +1 -1
  241. package/harness/bundles/java/cursor/harness-knowledge-query/SKILL.md +1 -1
  242. package/harness/bundles/java/cursor/harness-package/SKILL.md +2 -2
  243. package/harness/bundles/java/cursor/harness-plan/SKILL.md +4 -4
  244. package/harness/bundles/java/cursor/harness-review/SKILL.md +2 -2
  245. package/harness/bundles/java/cursor/harness-run/SKILL.md +5 -3
  246. package/harness/bundles/java/cursor/harness-run/protocols.md +2 -0
  247. package/harness/bundles/java/cursor/harness-submit/SKILL.md +2 -2
  248. package/harness/bundles/java/cursor/harness-sync/SKILL.md +1 -1
  249. package/harness/bundles/java/cursor/harness-test/SKILL.md +2 -2
  250. package/harness/bundles/java/cursor/harness-test/checklist.md +2 -2
  251. package/harness/bundles/java/cursor/harness-test/pitfalls.md +3 -3
  252. package/harness/bundles/java/cursor/harness-test/reference.md +2 -2
  253. package/harness/bundles/java/cursor/protocols/archive-report-protocol.md +18 -25
  254. package/harness/bundles/java/cursor/protocols/evidence-based-reporting-protocol.md +5 -5
  255. package/harness/bundles/java/cursor/protocols/ledger-protocol.md +7 -7
  256. package/harness/bundles/java/cursor/protocols/report-pipeline-protocol.md +10 -9
  257. package/harness/bundles/java/cursor/protocols/sensitive-info-protocol.md +3 -3
  258. package/harness/bundles/java/cursor/protocols/state-layout-protocol.md +5 -6
  259. package/harness/bundles/java/cursor/scripts/harness_archive.py +1043 -1108
  260. package/harness/bundles/java/cursor/scripts/harness_context.py +8 -2
  261. package/harness/bundles/java/cursor/scripts/harness_events.py +5 -0
  262. package/harness/bundles/java/cursor/scripts/harness_ledger.py +79 -2
  263. package/harness/bundles/java/cursor/scripts/harness_profile.py +7 -0
  264. package/harness/bundles/java/cursor/scripts/harness_state.py +22 -3
  265. package/harness/manifests/general/claude-code.json +35 -39
  266. package/harness/manifests/general/codebuddy.json +35 -39
  267. package/harness/manifests/general/codex.json +35 -39
  268. package/harness/manifests/general/cursor.json +35 -39
  269. package/harness/manifests/java/claude-code.json +35 -39
  270. package/harness/manifests/java/codebuddy.json +35 -39
  271. package/harness/manifests/java/codex.json +35 -39
  272. package/harness/manifests/java/cursor.json +35 -39
  273. package/hunter-workflow-family.json +5 -5
  274. package/package.json +1 -1
  275. package/harness/bundles/general/claude-code/harness-archive/templates/render-summary.mjs +0 -299
  276. package/harness/bundles/general/codebuddy/harness-archive/templates/render-summary.mjs +0 -299
  277. package/harness/bundles/general/codex/harness-archive/templates/render-summary.mjs +0 -299
  278. package/harness/bundles/general/cursor/harness-archive/templates/render-summary.mjs +0 -299
  279. package/harness/bundles/java/claude-code/harness-archive/templates/render-summary.mjs +0 -299
  280. package/harness/bundles/java/codebuddy/harness-archive/templates/render-summary.mjs +0 -299
  281. package/harness/bundles/java/codex/harness-archive/templates/render-summary.mjs +0 -299
  282. package/harness/bundles/java/cursor/harness-archive/templates/render-summary.mjs +0 -299
@@ -810,10 +810,15 @@ def close_transition(
810
810
  artifact_entries: list[dict[str, Any]] = []
811
811
  for raw in artifacts or []:
812
812
  requested = Path(raw)
813
+ artifact_bases: list[Path] = []
814
+ for base in (project, contract_root, state_root):
815
+ resolved_base = base.resolve()
816
+ if resolved_base not in artifact_bases:
817
+ artifact_bases.append(resolved_base)
813
818
  candidates = (
814
819
  [requested]
815
820
  if requested.is_absolute()
816
- else [project / requested, contract_root / requested]
821
+ else [base / requested for base in artifact_bases]
817
822
  )
818
823
  valid: list[Path] = []
819
824
  for candidate in candidates:
@@ -838,10 +843,11 @@ def close_transition(
838
843
  "ok": False,
839
844
  "code": "TRANSITION_ARTIFACT_INVALID",
840
845
  "path": raw,
841
- "acceptedBases": [str(project), str(contract_root)],
846
+ "acceptedBases": [str(base) for base in artifact_bases],
842
847
  "examples": [
843
848
  str(contract_root / "meta" / "plan-finalization.json"),
844
849
  f".harness/changes/{change}/meta/plan-finalization.json",
850
+ f".harness/state/changes/{change}/evidence/verification-ledger.json",
845
851
  "meta/plan-finalization.json",
846
852
  ],
847
853
  }
@@ -1077,6 +1077,11 @@ def split_phase_attempts(phase_events: list[dict[str, Any]]) -> list[dict[str, A
1077
1077
  "external.wait",
1078
1078
  "issue",
1079
1079
  "ci.wait",
1080
+ # Preparation is intentionally outside the formal phase lifecycle.
1081
+ # A blocked preflight must remain visible in the raw timeline without
1082
+ # manufacturing an attempt or inflating the phase duration/count.
1083
+ "phase.prepare.start",
1084
+ "phase.prepare.end",
1080
1085
  }
1081
1086
  for event in phase_events:
1082
1087
  if event.get("type") == "phase.start":
@@ -1053,6 +1053,40 @@ def ledger_evidence_identity(ledger: dict[str, Any]) -> str:
1053
1053
  return "sha256:" + hashlib.sha256(canonical).hexdigest()
1054
1054
 
1055
1055
 
1056
+ def _immutable_change_base(
1057
+ change_dir: Path,
1058
+ project_root: Path,
1059
+ ) -> str:
1060
+ roots = [change_dir]
1061
+ try:
1062
+ state_root = harness_paths.resolve_state_dir_for_contract(
1063
+ change_dir,
1064
+ project_root,
1065
+ )
1066
+ if state_root.resolve() != change_dir.resolve():
1067
+ roots.insert(0, state_root)
1068
+ except (OSError, ValueError):
1069
+ pass
1070
+ for root in roots:
1071
+ for relative in (
1072
+ Path("meta") / "state-snapshot.json",
1073
+ Path("state-snapshot.json"),
1074
+ ):
1075
+ path = root / relative
1076
+ if not path.is_file():
1077
+ continue
1078
+ try:
1079
+ payload = json.loads(path.read_text(encoding="utf-8-sig"))
1080
+ except (OSError, json.JSONDecodeError, TypeError):
1081
+ continue
1082
+ if not isinstance(payload, dict):
1083
+ continue
1084
+ value = str(payload.get("changeBase") or "").strip()
1085
+ if value:
1086
+ return value
1087
+ return ""
1088
+
1089
+
1056
1090
  def migrate_ledger_for_write(
1057
1091
  change_dir: Path,
1058
1092
  ledger: dict[str, Any],
@@ -1089,6 +1123,15 @@ def migrate_ledger_for_write(
1089
1123
  if not _nonempty_str(resolved_base):
1090
1124
  resolved_base = ledger.get("baseCommit")
1091
1125
  if not _nonempty_str(resolved_base):
1126
+ resolved_base = _immutable_change_base(change_dir, repo_root)
1127
+ if not _nonempty_str(resolved_base):
1128
+ if record_migration:
1129
+ raise LedgerMigrationError(
1130
+ "immutable change base is missing; recapture the Plan boundary "
1131
+ "or pass an explicit --base-commit instead of using write-time HEAD"
1132
+ )
1133
+ # A genuinely new ledger establishes its identity at the first write.
1134
+ # Existing ledgers are handled above and may never take this fallback.
1092
1135
  resolved_base = current_head
1093
1136
  resolved_diff = diff_hash
1094
1137
  if not _nonempty_str(resolved_diff):
@@ -2795,9 +2838,43 @@ def cmd_diff_hash(args: argparse.Namespace) -> int:
2795
2838
  repo_raw = getattr(args, "repo", None)
2796
2839
  repo = Path(repo_raw).expanduser().resolve() if repo_raw else Path.cwd().resolve()
2797
2840
  base = getattr(args, "base", None)
2798
- change_dir = getattr(args, "change_dir", None)
2841
+ change_dir_raw = getattr(args, "change_dir", None)
2799
2842
  try:
2800
- diff_hash, meta = compute_diff_hash(repo, base=base, change_dir=change_dir)
2843
+ change_dir = resolve_path(change_dir_raw) if change_dir_raw else None
2844
+ if change_dir is not None and _contract_is_v2(change_dir):
2845
+ resolved_base = str(base or "").strip()
2846
+ if not resolved_base:
2847
+ existing, _ = load_ledger(change_dir)
2848
+ if isinstance(existing, dict):
2849
+ resolved_base = str(existing.get("baseCommit") or "").strip()
2850
+ if not resolved_base:
2851
+ resolved_base = _immutable_change_base(change_dir, repo)
2852
+ if not resolved_base:
2853
+ raise ValueError(
2854
+ "immutable change base is missing; capture the Plan boundary "
2855
+ "or pass --base"
2856
+ )
2857
+ detail = compute_ownership_diff(
2858
+ repo,
2859
+ base=resolved_base,
2860
+ change_dir=change_dir,
2861
+ )
2862
+ payload = {
2863
+ "ok": True,
2864
+ "action": "diff-hash",
2865
+ "identityScope": "change-ownership",
2866
+ "algorithmVersion": "ownership-content-changeset-1",
2867
+ "base": resolved_base,
2868
+ "head": _git_text(repo, "rev-parse", "--verify", "HEAD"),
2869
+ **detail,
2870
+ }
2871
+ emit_json(payload, as_json=as_json)
2872
+ return 0
2873
+ diff_hash, meta = compute_diff_hash(
2874
+ repo,
2875
+ base=base,
2876
+ change_dir=str(change_dir) if change_dir is not None else None,
2877
+ )
2801
2878
  except (OSError, RuntimeError, ValueError) as exc:
2802
2879
  return emit_error(str(exc), as_json=as_json)
2803
2880
  payload = {"ok": True, "action": "diff-hash", "diffHash": diff_hash}
@@ -838,13 +838,20 @@ def _node_commands(project: Path) -> dict[str, Any]:
838
838
  "src/**/*.tsx",
839
839
  "test/**/*.ts",
840
840
  "test/**/*.tsx",
841
+ "tests/**/*.ts",
842
+ "tests/**/*.tsx",
841
843
  "packages/*/src/**/*.ts",
842
844
  "packages/*/src/**/*.tsx",
843
845
  "packages/*/test/**/*.ts",
844
846
  "packages/*/test/**/*.tsx",
847
+ "packages/*/tests/**/*.ts",
848
+ "packages/*/tests/**/*.tsx",
845
849
  "apps/*/src/**/*.ts",
846
850
  "apps/*/src/**/*.tsx",
847
851
  "apps/*/test/**/*.ts",
852
+ "apps/*/test/**/*.tsx",
853
+ "apps/*/tests/**/*.ts",
854
+ "apps/*/tests/**/*.tsx",
848
855
  ]
849
856
  # harness dogfood: canonical Python + .mjs sources feed npm run check (vitest
850
857
  # imports harness-test/scripts; smoke:pack runs sync-harness.mjs).
@@ -119,6 +119,10 @@ def capture_snapshot(
119
119
  "schemaVersion": SNAPSHOT_SCHEMA_VERSION,
120
120
  "generatedAt": now_iso(),
121
121
  "changeName": change_name,
122
+ # The first captured Git boundary is the immutable identity of the
123
+ # change. Later phases may advance HEAD, but must never silently move
124
+ # the base and collapse the archive range.
125
+ "changeBase": base or "",
122
126
  "project": {"root": str(project.resolve())},
123
127
  "worktree": {"root": str(Path(worktree_root).resolve())},
124
128
  "git": {"base": base or "", "head": head or ""},
@@ -250,10 +254,25 @@ def capture_current_state(
250
254
  base: str = "",
251
255
  head: str = "HEAD",
252
256
  ) -> tuple[dict[str, Any], list[str]]:
253
- resolved_head = _git(project, "rev-parse", head) or head
254
- resolved_base = _git(project, "rev-parse", base) if base else ""
255
- files = discover_segment_files(project, change_dir, base=resolved_base, head=resolved_head)
257
+ git_head = _git(project, "rev-parse", head)
258
+ resolved_head = git_head or head
256
259
  previous = load_snapshot(change_dir)
260
+ previous_git = previous.get("git") if isinstance(previous, dict) else None
261
+ previous_base = (
262
+ str(previous.get("changeBase") or "").strip()
263
+ if isinstance(previous, dict)
264
+ else ""
265
+ )
266
+ if not previous_base and isinstance(previous_git, dict):
267
+ previous_base = str(
268
+ previous_git.get("base") or previous_git.get("baseCommit") or ""
269
+ ).strip()
270
+ requested_base = _git(project, "rev-parse", base) if base else ""
271
+ # First capture establishes the boundary. A later --base value is an
272
+ # observation hint only; changing the boundary requires the explicit
273
+ # archive range-adoption receipt.
274
+ resolved_base = previous_base or requested_base or git_head
275
+ files = discover_segment_files(project, change_dir, base=resolved_base, head=resolved_head)
257
276
  fresh = capture_snapshot(
258
277
  change_dir,
259
278
  change_name=change_name,
@@ -2,9 +2,9 @@
2
2
  "schema_version": 2,
3
3
  "profile": "general",
4
4
  "adapter": "claude-code",
5
- "bundle_version": "0.2.48",
5
+ "bundle_version": "0.2.50",
6
6
  "requires": {
7
- "minimumCliVersion": "0.2.65",
7
+ "minimumCliVersion": "0.2.67",
8
8
  "capabilities": [
9
9
  "sync@2",
10
10
  "rules-sync@1",
@@ -23,7 +23,7 @@
23
23
  "files": [
24
24
  {
25
25
  "path": ".harness-build.json",
26
- "sha256": "8589c3b942fcc73d946bd08329f4896cbc9c5a00a7b571786296aec1f627c8b1"
26
+ "sha256": "8b914d22f840a59a680468f1bdca127d7066fffc253321e55071e294c3bffa64"
27
27
  },
28
28
  {
29
29
  "path": "agents/harness-evaluator.md",
@@ -83,11 +83,11 @@
83
83
  },
84
84
  {
85
85
  "path": "harness-archive/checklist.md",
86
- "sha256": "05d320f6558fd1cd75f75ffc05574c20c2d5737393068cab76185860c9056b9e"
86
+ "sha256": "4844dcfbe052fe0d95a8b41120502777b35ea538d9fcb63c86ca720368a7196d"
87
87
  },
88
88
  {
89
89
  "path": "harness-archive/reference.md",
90
- "sha256": "7564286fae2b73a9a646819b408d0dcd3ed757fdc833d19e8a130861f92ffb03"
90
+ "sha256": "a9f4ff879018d3e9ff7ad267396ae786ca30cee1239bbf0479a92880bbbcd89b"
91
91
  },
92
92
  {
93
93
  "path": "harness-archive/scripts/gen-manifest.ps1",
@@ -95,15 +95,11 @@
95
95
  },
96
96
  {
97
97
  "path": "harness-archive/SKILL.md",
98
- "sha256": "1b4c56c176bc65e5256bf699c4dee6447fe61d11a7b2804e33033cd35cac51d4"
99
- },
100
- {
101
- "path": "harness-archive/templates/render-summary.mjs",
102
- "sha256": "970585dcd1c590a6fc985289954b60c41b2cf012df7ea2dd790260e452e404c9"
98
+ "sha256": "cd0e297bc677caf07f74cf53b58280545c53c92d7373a01c7a52ffcb042a7969"
103
99
  },
104
100
  {
105
101
  "path": "harness-archive/templates/summary-data-template.json",
106
- "sha256": "6d2a1ef5b02287150f14f530902e78382fcf0111beeff4eb63bcf1a88f26b05c"
102
+ "sha256": "626e8821af4a29d51ae7a8d8e97f413fa72ce5c440186d115b5390bab24df77c"
107
103
  },
108
104
  {
109
105
  "path": "harness-codebase-map/checklist.md",
@@ -115,7 +111,7 @@
115
111
  },
116
112
  {
117
113
  "path": "harness-codebase-map/SKILL.md",
118
- "sha256": "21c4e7e37126e9b25ac5eb1d64066e58d09374f8f2c57931af71238fc0848462"
114
+ "sha256": "df01a87236c743a80f654710bab97192c5c3c9fd3955ca3b8d6503442ab83309"
119
115
  },
120
116
  {
121
117
  "path": "harness-codebase-map/templates/ARCHITECTURE.md",
@@ -155,11 +151,11 @@
155
151
  },
156
152
  {
157
153
  "path": "harness-knowledge-ingest/SKILL.md",
158
- "sha256": "b598952479ccc1a0be4a3c56c4f542ca54344bafa4c62cd31c7cea2aa5b1156d"
154
+ "sha256": "c2bf251986d898bd01610f66f07ddd450f0a568207741119bf978d647b405ad3"
159
155
  },
160
156
  {
161
157
  "path": "harness-knowledge-query/SKILL.md",
162
- "sha256": "9c1b7c403a1d5ab805db97a29b2b27c53defdb46c22a9f8e704373ae21d36c21"
158
+ "sha256": "61af7d3dd7a65de6667b0366cd8ecc77dd3bf778ab6959faa0f6f28653c3522b"
163
159
  },
164
160
  {
165
161
  "path": "harness-plan/checklist.md",
@@ -175,7 +171,7 @@
175
171
  },
176
172
  {
177
173
  "path": "harness-plan/SKILL.md",
178
- "sha256": "eb74a32b4ae17c6e211430a3564f08227b4729a3d3fc076b3674d992ee8d5c08"
174
+ "sha256": "d5970b58fc9b46755a145834c9045f122ea3777bf1ac5f402794a2a73ec6452f"
179
175
  },
180
176
  {
181
177
  "path": "harness-review/checklist.md",
@@ -191,23 +187,23 @@
191
187
  },
192
188
  {
193
189
  "path": "harness-review/SKILL.md",
194
- "sha256": "fb8e6e2717de5681da78cd1836c65bd92c8f7b77060b1f875170a9175caa0593"
190
+ "sha256": "4137a8aa990c1aaaa12660689b7dfad51c102cb578c779b956c1fc98e062ecad"
195
191
  },
196
192
  {
197
193
  "path": "harness-run/checklist.md",
198
- "sha256": "ccbad9ef784da2fbe4c1f1483ab1b02dc995eed6aa1d1750cc0df012b8235bbe"
194
+ "sha256": "76d32970de25d4d56a04c6935846eabd37bc16767bccd979f9f3fdcbd5d39dd7"
199
195
  },
200
196
  {
201
197
  "path": "harness-run/protocols.md",
202
- "sha256": "b02fd6de8c25e0946d89ee7fe9cb8f8aaac73255ecbba6fa7584abb4954469e5"
198
+ "sha256": "101d52437bd439016227ea0b3ae188c1ca834a85d9c6f1c69a032ac9045f8cf4"
203
199
  },
204
200
  {
205
201
  "path": "harness-run/reference.md",
206
- "sha256": "db97a547190bc364f20fff5ff363b78f5cc9732bc93d57900b163c2cf8a73655"
202
+ "sha256": "1d9714349da70302f19ba2a8f41bfaa125beb099db559070df3c0539c8da3a69"
207
203
  },
208
204
  {
209
205
  "path": "harness-run/SKILL.md",
210
- "sha256": "879ee7f60b5a2cf9f08c851a70ca11d5330486a6d3739c43d83573ae22604b61"
206
+ "sha256": "2a0050feba8f4e9e2257471b52cc7f5ef340b67e328c1979c0b630455f2530b7"
211
207
  },
212
208
  {
213
209
  "path": "harness-submit/checklist.md",
@@ -219,7 +215,7 @@
219
215
  },
220
216
  {
221
217
  "path": "harness-submit/SKILL.md",
222
- "sha256": "81b44528a0dfdf1fa8b649cb3755506fcdeb8a25c1a8b2cd630fc8ab40cf4fd8"
218
+ "sha256": "b762b04506481dc8c177b70ed74c99c43b9b5d0cb0e59700301a526217f2e783"
223
219
  },
224
220
  {
225
221
  "path": "harness-sync/reference.md",
@@ -227,11 +223,11 @@
227
223
  },
228
224
  {
229
225
  "path": "harness-sync/SKILL.md",
230
- "sha256": "31bd47cfe2f194e14bf667f5c7711e8e0f329c008ec4dbc379f6a40581b6e1aa"
226
+ "sha256": "1c7a430e1a1d44da6b0e1efb590d0165169c3cac9dc5c6f8f8fb9ecdcce6fa5f"
231
227
  },
232
228
  {
233
229
  "path": "harness-test/checklist.md",
234
- "sha256": "c68bb5e198522f27ac3c6ac53953d428e340898737b5c135de718a178e511e31"
230
+ "sha256": "b61055fdb7e22a53160bc66cba91b8d842bee501d50bd2122dae5849f2e9cf71"
235
231
  },
236
232
  {
237
233
  "path": "harness-test/pitfalls-java.md",
@@ -239,11 +235,11 @@
239
235
  },
240
236
  {
241
237
  "path": "harness-test/pitfalls.md",
242
- "sha256": "2b14fc907885f0f4f5ec5d97e4c6f78fbd83bf1b1368c058b9154a3180c7e761"
238
+ "sha256": "e28bdcbff963d3cb071a5b0662fccf73682e8c26c83bb57981f9e4c2ce308ba3"
243
239
  },
244
240
  {
245
241
  "path": "harness-test/reference.md",
246
- "sha256": "ce79a1f93a99729be8a3f32e923bf32a4a2f94a00b12d4aa8207dbd5747296c8"
242
+ "sha256": "02104991a1a551181a618cca6d793b3a193546b4f7c5d34858ea768dee7545ef"
247
243
  },
248
244
  {
249
245
  "path": "harness-test/scripts/runtime-helpers.mjs",
@@ -251,11 +247,11 @@
251
247
  },
252
248
  {
253
249
  "path": "harness-test/SKILL.md",
254
- "sha256": "6498476a9a787ded376a0a5f3e44e392beff0638820e14dfccef138a8c1a349e"
250
+ "sha256": "24398adf6467864d5bb8534f91bfc6a51fa1320d97c5207ba91abd03c48b92d5"
255
251
  },
256
252
  {
257
253
  "path": "protocols/archive-report-protocol.md",
258
- "sha256": "50bdb1769a57b6e8f29e769a3ae9090c9eddf63a1e22c34bf3671e456cace2d9"
254
+ "sha256": "23add8a690289b5007bb9a38db55009b41866731f0c37c287ce9467392700652"
259
255
  },
260
256
  {
261
257
  "path": "protocols/ci-layering-protocol.md",
@@ -263,7 +259,7 @@
263
259
  },
264
260
  {
265
261
  "path": "protocols/evidence-based-reporting-protocol.md",
266
- "sha256": "f78ea87823c0935a3033175b393582319da433cf4226e1705070b20d53890ba2"
262
+ "sha256": "6560ccf52fa1e29da7a895eb88f1c7fb18c10d70b83f9e86d8fe4edf4b863ceb"
267
263
  },
268
264
  {
269
265
  "path": "protocols/execution-session-protocol.md",
@@ -275,7 +271,7 @@
275
271
  },
276
272
  {
277
273
  "path": "protocols/ledger-protocol.md",
278
- "sha256": "bae14e9cb7422bf9e29551929af258948653ddc44624cc28efadefc5d189d358"
274
+ "sha256": "c52d7e7d0ee1b21e761edcef2d0e853af3c381dcde3a323d3959b77d56e9818e"
279
275
  },
280
276
  {
281
277
  "path": "protocols/memory-closeout-protocol.md",
@@ -295,15 +291,15 @@
295
291
  },
296
292
  {
297
293
  "path": "protocols/report-pipeline-protocol.md",
298
- "sha256": "d37282f90a34e45f4d26f3bbd4f8b7c57ff2fd549a6e4f0ba9d34c037622a990"
294
+ "sha256": "a755c54942c58262e9e3478021e4c9c5ac8255db625d6714f3fd9810eb1067f9"
299
295
  },
300
296
  {
301
297
  "path": "protocols/sensitive-info-protocol.md",
302
- "sha256": "152f87e3218c2eee89362c0ca00fea624e6e37e15c56ca7e28ad2202ef76acec"
298
+ "sha256": "cdf72b7b35f562a46f671fc6aff7ff6f64ca44bc08e9214e2b3d0c82f1703b22"
303
299
  },
304
300
  {
305
301
  "path": "protocols/state-layout-protocol.md",
306
- "sha256": "6cfbaf850cc2455ff89909a27bcfd9f7caa3f210cf552fa0b93b44367b43f860"
302
+ "sha256": "01ff757004a18913d5d5a8083071d0a6fc9d25ac7cf7db07a879f7bb1319445d"
307
303
  },
308
304
  {
309
305
  "path": "protocols/submit-protocol.md",
@@ -315,7 +311,7 @@
315
311
  },
316
312
  {
317
313
  "path": "README.md",
318
- "sha256": "fe2b4a245c7820f3f21886580c17455a95d8411844fcc4e3932d7de0ad491b10"
314
+ "sha256": "0b236ce76b6cc58f431b8b6be441e42e3120359d24a8c8d63b060164a417a8a7"
319
315
  },
320
316
  {
321
317
  "path": "scripts/harness_apidoc.py",
@@ -323,7 +319,7 @@
323
319
  },
324
320
  {
325
321
  "path": "scripts/harness_archive.py",
326
- "sha256": "6ca1f096e69a61b356368c9c8e56859564087ac25b5fedc2edf71c289386d35c"
322
+ "sha256": "3c6fc709e5a2876fd4bad4ec60402b7b3933af1ea6d15bb6d16f269c7d65bf2f"
327
323
  },
328
324
  {
329
325
  "path": "scripts/harness_change.py",
@@ -335,7 +331,7 @@
335
331
  },
336
332
  {
337
333
  "path": "scripts/harness_context.py",
338
- "sha256": "d36bce0bdb0eb6afa57418353e15d87c5fc7823bfa5dbc3fce7d96cdb456878c"
334
+ "sha256": "5ef587edd57b0c819df1c37a448eda33f00a5b97b930c804290d1a83d9a4ad60"
339
335
  },
340
336
  {
341
337
  "path": "scripts/harness_deploy.py",
@@ -355,7 +351,7 @@
355
351
  },
356
352
  {
357
353
  "path": "scripts/harness_events.py",
358
- "sha256": "56858f5488255ed7af22dd38e2529c0287f3e4aa54e889b7a6d37666b4d73cb3"
354
+ "sha256": "f073ff0445a1de6d4e3030eb9b989e2f419ccdc9c36efcf060727ac4405b0804"
359
355
  },
360
356
  {
361
357
  "path": "scripts/harness_execution_contracts.py",
@@ -379,7 +375,7 @@
379
375
  },
380
376
  {
381
377
  "path": "scripts/harness_ledger.py",
382
- "sha256": "a18f3dde32c07593721c1ee03d8625be6217a5aeade902cc1b11778cbeea23dc"
378
+ "sha256": "5c33a09f3b073294afa21804697488dd5fa5601e79707be8b7db9f89be8e95f9"
383
379
  },
384
380
  {
385
381
  "path": "scripts/harness_migration_head.py",
@@ -415,7 +411,7 @@
415
411
  },
416
412
  {
417
413
  "path": "scripts/harness_profile.py",
418
- "sha256": "16b1aac01efc469a57a468fbcb20d72b4cd22a447ae76d0104a013bd3bd4aa0e"
414
+ "sha256": "9a10e62c52a7c84bf373bfb4aff18b2d51bfae6fd0ca75ef5ad7c87d22059e85"
419
415
  },
420
416
  {
421
417
  "path": "scripts/harness_report_model.py",
@@ -439,7 +435,7 @@
439
435
  },
440
436
  {
441
437
  "path": "scripts/harness_state.py",
442
- "sha256": "2a74c29c8c230d0780f23d079cb294597729141e9b988679a0dcc16caf209400"
438
+ "sha256": "cd08bcf0347a289180d121d079d0d2e638c6188f47b9f393cc70bac3564721c4"
443
439
  },
444
440
  {
445
441
  "path": "scripts/harness_sync.py",