hunter-harness 0.2.0 → 0.2.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 (564) hide show
  1. package/dist/bin.js +659 -230
  2. package/package.json +9 -7
  3. package/resources/harness/bundles/general/claude-code/.harness-build.json +0 -6
  4. package/resources/harness/bundles/general/claude-code/CONTEXT.md +0 -65
  5. package/resources/harness/bundles/general/claude-code/README.md +0 -478
  6. package/resources/harness/bundles/general/claude-code/agents/harness-evaluator.md +0 -96
  7. package/resources/harness/bundles/general/claude-code/agents/harness-explorer.md +0 -72
  8. package/resources/harness/bundles/general/claude-code/agents/harness-reviewer.md +0 -69
  9. package/resources/harness/bundles/general/claude-code/harness-archive/SKILL.md +0 -215
  10. package/resources/harness/bundles/general/claude-code/harness-archive/checklist.md +0 -52
  11. package/resources/harness/bundles/general/claude-code/harness-archive/reference.md +0 -103
  12. package/resources/harness/bundles/general/claude-code/harness-archive/scripts/gen-manifest.ps1 +0 -31
  13. package/resources/harness/bundles/general/claude-code/harness-archive/templates/render-summary.mjs +0 -171
  14. package/resources/harness/bundles/general/claude-code/harness-archive/templates/summary-data-template.json +0 -128
  15. package/resources/harness/bundles/general/claude-code/harness-codebase-map/SKILL.md +0 -112
  16. package/resources/harness/bundles/general/claude-code/harness-codebase-map/checklist.md +0 -126
  17. package/resources/harness/bundles/general/claude-code/harness-codebase-map/reference.md +0 -364
  18. package/resources/harness/bundles/general/claude-code/harness-codebase-map/templates/ARCHITECTURE.md +0 -57
  19. package/resources/harness/bundles/general/claude-code/harness-codebase-map/templates/CONCERNS.md +0 -49
  20. package/resources/harness/bundles/general/claude-code/harness-codebase-map/templates/CONVENTIONS.md +0 -57
  21. package/resources/harness/bundles/general/claude-code/harness-codebase-map/templates/INTEGRATIONS.md +0 -52
  22. package/resources/harness/bundles/general/claude-code/harness-codebase-map/templates/STACK.md +0 -55
  23. package/resources/harness/bundles/general/claude-code/harness-codebase-map/templates/STRUCTURE.md +0 -69
  24. package/resources/harness/bundles/general/claude-code/harness-codebase-map/templates/TESTING.md +0 -64
  25. package/resources/harness/bundles/general/claude-code/harness-codebase-map/templates/map-manifest.schema.json +0 -73
  26. package/resources/harness/bundles/general/claude-code/harness-codebase-map/templates/map-summary.md +0 -64
  27. package/resources/harness/bundles/general/claude-code/harness-knowledge-ingest/SKILL.md +0 -246
  28. package/resources/harness/bundles/general/claude-code/harness-knowledge-ingest/design.md +0 -842
  29. package/resources/harness/bundles/general/claude-code/harness-knowledge-ingest/evaluations/harness_knowledge_evaluation.xml +0 -42
  30. package/resources/harness/bundles/general/claude-code/harness-knowledge-ingest/mcp-config.example.json +0 -10
  31. package/resources/harness/bundles/general/claude-code/harness-knowledge-ingest/reference.md +0 -309
  32. package/resources/harness/bundles/general/claude-code/harness-knowledge-ingest/scripts/harness_knowledge.py +0 -4082
  33. package/resources/harness/bundles/general/claude-code/harness-knowledge-ingest/scripts/harness_knowledge_mcp.py +0 -273
  34. package/resources/harness/bundles/general/claude-code/harness-knowledge-query/SKILL.md +0 -164
  35. package/resources/harness/bundles/general/claude-code/harness-plan/SKILL.md +0 -127
  36. package/resources/harness/bundles/general/claude-code/harness-plan/checklist.md +0 -243
  37. package/resources/harness/bundles/general/claude-code/harness-plan/protocols.md +0 -124
  38. package/resources/harness/bundles/general/claude-code/harness-plan/reference.md +0 -376
  39. package/resources/harness/bundles/general/claude-code/harness-review/SKILL.md +0 -160
  40. package/resources/harness/bundles/general/claude-code/harness-review/checklist.md +0 -124
  41. package/resources/harness/bundles/general/claude-code/harness-review/protocols.md +0 -68
  42. package/resources/harness/bundles/general/claude-code/harness-review/reference.md +0 -86
  43. package/resources/harness/bundles/general/claude-code/harness-run/SKILL.md +0 -132
  44. package/resources/harness/bundles/general/claude-code/harness-run/checklist.md +0 -259
  45. package/resources/harness/bundles/general/claude-code/harness-run/protocols.md +0 -78
  46. package/resources/harness/bundles/general/claude-code/harness-run/reference.md +0 -834
  47. package/resources/harness/bundles/general/claude-code/harness-submit/SKILL.md +0 -159
  48. package/resources/harness/bundles/general/claude-code/harness-submit/checklist.md +0 -407
  49. package/resources/harness/bundles/general/claude-code/harness-submit/reference.md +0 -152
  50. package/resources/harness/bundles/general/claude-code/harness-sync/SKILL.md +0 -82
  51. package/resources/harness/bundles/general/claude-code/harness-sync/reference.md +0 -153
  52. package/resources/harness/bundles/general/claude-code/harness-test/SKILL.md +0 -180
  53. package/resources/harness/bundles/general/claude-code/harness-test/checklist.md +0 -319
  54. package/resources/harness/bundles/general/claude-code/harness-test/pitfalls.md +0 -260
  55. package/resources/harness/bundles/general/claude-code/harness-test/reference.md +0 -791
  56. package/resources/harness/bundles/general/claude-code/protocols/archive-report-protocol.md +0 -175
  57. package/resources/harness/bundles/general/claude-code/protocols/evidence-based-reporting-protocol.md +0 -134
  58. package/resources/harness/bundles/general/claude-code/protocols/ledger-protocol.md +0 -270
  59. package/resources/harness/bundles/general/claude-code/protocols/powershell-protocol.md +0 -181
  60. package/resources/harness/bundles/general/claude-code/protocols/report-pipeline-protocol.md +0 -150
  61. package/resources/harness/bundles/general/claude-code/protocols/sensitive-info-protocol.md +0 -92
  62. package/resources/harness/bundles/general/claude-code/protocols/state-layout-protocol.md +0 -131
  63. package/resources/harness/bundles/general/claude-code/protocols/submit-protocol.md +0 -78
  64. package/resources/harness/bundles/general/claude-code/scripts/harness_archive.py +0 -2319
  65. package/resources/harness/bundles/general/claude-code/scripts/harness_deploy.py +0 -674
  66. package/resources/harness/bundles/general/claude-code/scripts/harness_events.py +0 -680
  67. package/resources/harness/bundles/general/claude-code/scripts/harness_ledger.py +0 -671
  68. package/resources/harness/bundles/general/claude-code/scripts/harness_preflight.py +0 -780
  69. package/resources/harness/bundles/general/claude-code/scripts/harness_service.py +0 -1331
  70. package/resources/harness/bundles/general/codebuddy/.harness-build.json +0 -6
  71. package/resources/harness/bundles/general/codebuddy/CONTEXT.md +0 -65
  72. package/resources/harness/bundles/general/codebuddy/README.md +0 -478
  73. package/resources/harness/bundles/general/codebuddy/agents/harness-evaluator.md +0 -94
  74. package/resources/harness/bundles/general/codebuddy/agents/harness-explorer.md +0 -53
  75. package/resources/harness/bundles/general/codebuddy/agents/harness-reviewer.md +0 -52
  76. package/resources/harness/bundles/general/codebuddy/harness-archive/SKILL.md +0 -198
  77. package/resources/harness/bundles/general/codebuddy/harness-archive/checklist.md +0 -52
  78. package/resources/harness/bundles/general/codebuddy/harness-archive/reference.md +0 -103
  79. package/resources/harness/bundles/general/codebuddy/harness-archive/scripts/gen-manifest.ps1 +0 -31
  80. package/resources/harness/bundles/general/codebuddy/harness-archive/templates/render-summary.mjs +0 -171
  81. package/resources/harness/bundles/general/codebuddy/harness-archive/templates/summary-data-template.json +0 -128
  82. package/resources/harness/bundles/general/codebuddy/harness-codebase-map/SKILL.md +0 -95
  83. package/resources/harness/bundles/general/codebuddy/harness-codebase-map/checklist.md +0 -126
  84. package/resources/harness/bundles/general/codebuddy/harness-codebase-map/reference.md +0 -364
  85. package/resources/harness/bundles/general/codebuddy/harness-codebase-map/templates/ARCHITECTURE.md +0 -57
  86. package/resources/harness/bundles/general/codebuddy/harness-codebase-map/templates/CONCERNS.md +0 -49
  87. package/resources/harness/bundles/general/codebuddy/harness-codebase-map/templates/CONVENTIONS.md +0 -57
  88. package/resources/harness/bundles/general/codebuddy/harness-codebase-map/templates/INTEGRATIONS.md +0 -52
  89. package/resources/harness/bundles/general/codebuddy/harness-codebase-map/templates/STACK.md +0 -55
  90. package/resources/harness/bundles/general/codebuddy/harness-codebase-map/templates/STRUCTURE.md +0 -69
  91. package/resources/harness/bundles/general/codebuddy/harness-codebase-map/templates/TESTING.md +0 -64
  92. package/resources/harness/bundles/general/codebuddy/harness-codebase-map/templates/map-manifest.schema.json +0 -73
  93. package/resources/harness/bundles/general/codebuddy/harness-codebase-map/templates/map-summary.md +0 -64
  94. package/resources/harness/bundles/general/codebuddy/harness-knowledge-ingest/SKILL.md +0 -229
  95. package/resources/harness/bundles/general/codebuddy/harness-knowledge-ingest/design.md +0 -842
  96. package/resources/harness/bundles/general/codebuddy/harness-knowledge-ingest/evaluations/harness_knowledge_evaluation.xml +0 -42
  97. package/resources/harness/bundles/general/codebuddy/harness-knowledge-ingest/mcp-config.example.json +0 -10
  98. package/resources/harness/bundles/general/codebuddy/harness-knowledge-ingest/reference.md +0 -309
  99. package/resources/harness/bundles/general/codebuddy/harness-knowledge-ingest/scripts/harness_knowledge.py +0 -4082
  100. package/resources/harness/bundles/general/codebuddy/harness-knowledge-ingest/scripts/harness_knowledge_mcp.py +0 -273
  101. package/resources/harness/bundles/general/codebuddy/harness-knowledge-query/SKILL.md +0 -147
  102. package/resources/harness/bundles/general/codebuddy/harness-plan/SKILL.md +0 -109
  103. package/resources/harness/bundles/general/codebuddy/harness-plan/checklist.md +0 -243
  104. package/resources/harness/bundles/general/codebuddy/harness-plan/protocols.md +0 -124
  105. package/resources/harness/bundles/general/codebuddy/harness-plan/reference.md +0 -376
  106. package/resources/harness/bundles/general/codebuddy/harness-review/SKILL.md +0 -142
  107. package/resources/harness/bundles/general/codebuddy/harness-review/checklist.md +0 -124
  108. package/resources/harness/bundles/general/codebuddy/harness-review/protocols.md +0 -68
  109. package/resources/harness/bundles/general/codebuddy/harness-review/reference.md +0 -86
  110. package/resources/harness/bundles/general/codebuddy/harness-run/SKILL.md +0 -113
  111. package/resources/harness/bundles/general/codebuddy/harness-run/checklist.md +0 -259
  112. package/resources/harness/bundles/general/codebuddy/harness-run/protocols.md +0 -78
  113. package/resources/harness/bundles/general/codebuddy/harness-run/reference.md +0 -834
  114. package/resources/harness/bundles/general/codebuddy/harness-submit/SKILL.md +0 -142
  115. package/resources/harness/bundles/general/codebuddy/harness-submit/checklist.md +0 -407
  116. package/resources/harness/bundles/general/codebuddy/harness-submit/reference.md +0 -152
  117. package/resources/harness/bundles/general/codebuddy/harness-sync/SKILL.md +0 -65
  118. package/resources/harness/bundles/general/codebuddy/harness-sync/reference.md +0 -153
  119. package/resources/harness/bundles/general/codebuddy/harness-test/SKILL.md +0 -160
  120. package/resources/harness/bundles/general/codebuddy/harness-test/checklist.md +0 -319
  121. package/resources/harness/bundles/general/codebuddy/harness-test/pitfalls.md +0 -260
  122. package/resources/harness/bundles/general/codebuddy/harness-test/reference.md +0 -791
  123. package/resources/harness/bundles/general/codebuddy/protocols/archive-report-protocol.md +0 -175
  124. package/resources/harness/bundles/general/codebuddy/protocols/evidence-based-reporting-protocol.md +0 -134
  125. package/resources/harness/bundles/general/codebuddy/protocols/ledger-protocol.md +0 -270
  126. package/resources/harness/bundles/general/codebuddy/protocols/powershell-protocol.md +0 -181
  127. package/resources/harness/bundles/general/codebuddy/protocols/report-pipeline-protocol.md +0 -150
  128. package/resources/harness/bundles/general/codebuddy/protocols/sensitive-info-protocol.md +0 -92
  129. package/resources/harness/bundles/general/codebuddy/protocols/state-layout-protocol.md +0 -131
  130. package/resources/harness/bundles/general/codebuddy/protocols/submit-protocol.md +0 -78
  131. package/resources/harness/bundles/general/codebuddy/scripts/harness_archive.py +0 -2319
  132. package/resources/harness/bundles/general/codebuddy/scripts/harness_deploy.py +0 -674
  133. package/resources/harness/bundles/general/codebuddy/scripts/harness_events.py +0 -680
  134. package/resources/harness/bundles/general/codebuddy/scripts/harness_ledger.py +0 -671
  135. package/resources/harness/bundles/general/codebuddy/scripts/harness_preflight.py +0 -780
  136. package/resources/harness/bundles/general/codebuddy/scripts/harness_service.py +0 -1331
  137. package/resources/harness/bundles/general/codex/.harness-build.json +0 -6
  138. package/resources/harness/bundles/general/codex/CONTEXT.md +0 -65
  139. package/resources/harness/bundles/general/codex/README.md +0 -478
  140. package/resources/harness/bundles/general/codex/harness-archive/SKILL.md +0 -198
  141. package/resources/harness/bundles/general/codex/harness-archive/checklist.md +0 -52
  142. package/resources/harness/bundles/general/codex/harness-archive/reference.md +0 -103
  143. package/resources/harness/bundles/general/codex/harness-archive/scripts/gen-manifest.ps1 +0 -31
  144. package/resources/harness/bundles/general/codex/harness-archive/templates/render-summary.mjs +0 -171
  145. package/resources/harness/bundles/general/codex/harness-archive/templates/summary-data-template.json +0 -128
  146. package/resources/harness/bundles/general/codex/harness-codebase-map/SKILL.md +0 -95
  147. package/resources/harness/bundles/general/codex/harness-codebase-map/checklist.md +0 -126
  148. package/resources/harness/bundles/general/codex/harness-codebase-map/reference.md +0 -364
  149. package/resources/harness/bundles/general/codex/harness-codebase-map/templates/ARCHITECTURE.md +0 -57
  150. package/resources/harness/bundles/general/codex/harness-codebase-map/templates/CONCERNS.md +0 -49
  151. package/resources/harness/bundles/general/codex/harness-codebase-map/templates/CONVENTIONS.md +0 -57
  152. package/resources/harness/bundles/general/codex/harness-codebase-map/templates/INTEGRATIONS.md +0 -52
  153. package/resources/harness/bundles/general/codex/harness-codebase-map/templates/STACK.md +0 -55
  154. package/resources/harness/bundles/general/codex/harness-codebase-map/templates/STRUCTURE.md +0 -69
  155. package/resources/harness/bundles/general/codex/harness-codebase-map/templates/TESTING.md +0 -64
  156. package/resources/harness/bundles/general/codex/harness-codebase-map/templates/map-manifest.schema.json +0 -73
  157. package/resources/harness/bundles/general/codex/harness-codebase-map/templates/map-summary.md +0 -64
  158. package/resources/harness/bundles/general/codex/harness-knowledge-ingest/SKILL.md +0 -229
  159. package/resources/harness/bundles/general/codex/harness-knowledge-ingest/design.md +0 -842
  160. package/resources/harness/bundles/general/codex/harness-knowledge-ingest/evaluations/harness_knowledge_evaluation.xml +0 -42
  161. package/resources/harness/bundles/general/codex/harness-knowledge-ingest/mcp-config.example.json +0 -10
  162. package/resources/harness/bundles/general/codex/harness-knowledge-ingest/reference.md +0 -309
  163. package/resources/harness/bundles/general/codex/harness-knowledge-ingest/scripts/harness_knowledge.py +0 -4082
  164. package/resources/harness/bundles/general/codex/harness-knowledge-ingest/scripts/harness_knowledge_mcp.py +0 -273
  165. package/resources/harness/bundles/general/codex/harness-knowledge-query/SKILL.md +0 -147
  166. package/resources/harness/bundles/general/codex/harness-plan/SKILL.md +0 -109
  167. package/resources/harness/bundles/general/codex/harness-plan/checklist.md +0 -243
  168. package/resources/harness/bundles/general/codex/harness-plan/protocols.md +0 -124
  169. package/resources/harness/bundles/general/codex/harness-plan/reference.md +0 -376
  170. package/resources/harness/bundles/general/codex/harness-review/SKILL.md +0 -137
  171. package/resources/harness/bundles/general/codex/harness-review/checklist.md +0 -124
  172. package/resources/harness/bundles/general/codex/harness-review/protocols.md +0 -68
  173. package/resources/harness/bundles/general/codex/harness-review/reference.md +0 -86
  174. package/resources/harness/bundles/general/codex/harness-run/SKILL.md +0 -113
  175. package/resources/harness/bundles/general/codex/harness-run/checklist.md +0 -259
  176. package/resources/harness/bundles/general/codex/harness-run/protocols.md +0 -78
  177. package/resources/harness/bundles/general/codex/harness-run/reference.md +0 -834
  178. package/resources/harness/bundles/general/codex/harness-submit/SKILL.md +0 -142
  179. package/resources/harness/bundles/general/codex/harness-submit/checklist.md +0 -407
  180. package/resources/harness/bundles/general/codex/harness-submit/reference.md +0 -152
  181. package/resources/harness/bundles/general/codex/harness-sync/SKILL.md +0 -65
  182. package/resources/harness/bundles/general/codex/harness-sync/reference.md +0 -153
  183. package/resources/harness/bundles/general/codex/harness-test/SKILL.md +0 -160
  184. package/resources/harness/bundles/general/codex/harness-test/checklist.md +0 -319
  185. package/resources/harness/bundles/general/codex/harness-test/pitfalls.md +0 -260
  186. package/resources/harness/bundles/general/codex/harness-test/reference.md +0 -791
  187. package/resources/harness/bundles/general/codex/protocols/archive-report-protocol.md +0 -175
  188. package/resources/harness/bundles/general/codex/protocols/evidence-based-reporting-protocol.md +0 -134
  189. package/resources/harness/bundles/general/codex/protocols/ledger-protocol.md +0 -270
  190. package/resources/harness/bundles/general/codex/protocols/powershell-protocol.md +0 -181
  191. package/resources/harness/bundles/general/codex/protocols/report-pipeline-protocol.md +0 -150
  192. package/resources/harness/bundles/general/codex/protocols/sensitive-info-protocol.md +0 -92
  193. package/resources/harness/bundles/general/codex/protocols/state-layout-protocol.md +0 -131
  194. package/resources/harness/bundles/general/codex/protocols/submit-protocol.md +0 -78
  195. package/resources/harness/bundles/general/codex/scripts/harness_archive.py +0 -2319
  196. package/resources/harness/bundles/general/codex/scripts/harness_deploy.py +0 -674
  197. package/resources/harness/bundles/general/codex/scripts/harness_events.py +0 -680
  198. package/resources/harness/bundles/general/codex/scripts/harness_ledger.py +0 -671
  199. package/resources/harness/bundles/general/codex/scripts/harness_preflight.py +0 -780
  200. package/resources/harness/bundles/general/codex/scripts/harness_service.py +0 -1331
  201. package/resources/harness/bundles/general/cursor/.harness-build.json +0 -6
  202. package/resources/harness/bundles/general/cursor/CONTEXT.md +0 -65
  203. package/resources/harness/bundles/general/cursor/README.md +0 -478
  204. package/resources/harness/bundles/general/cursor/harness-archive/SKILL.md +0 -198
  205. package/resources/harness/bundles/general/cursor/harness-archive/checklist.md +0 -52
  206. package/resources/harness/bundles/general/cursor/harness-archive/reference.md +0 -103
  207. package/resources/harness/bundles/general/cursor/harness-archive/scripts/gen-manifest.ps1 +0 -31
  208. package/resources/harness/bundles/general/cursor/harness-archive/templates/render-summary.mjs +0 -171
  209. package/resources/harness/bundles/general/cursor/harness-archive/templates/summary-data-template.json +0 -128
  210. package/resources/harness/bundles/general/cursor/harness-codebase-map/SKILL.md +0 -95
  211. package/resources/harness/bundles/general/cursor/harness-codebase-map/checklist.md +0 -126
  212. package/resources/harness/bundles/general/cursor/harness-codebase-map/reference.md +0 -364
  213. package/resources/harness/bundles/general/cursor/harness-codebase-map/templates/ARCHITECTURE.md +0 -57
  214. package/resources/harness/bundles/general/cursor/harness-codebase-map/templates/CONCERNS.md +0 -49
  215. package/resources/harness/bundles/general/cursor/harness-codebase-map/templates/CONVENTIONS.md +0 -57
  216. package/resources/harness/bundles/general/cursor/harness-codebase-map/templates/INTEGRATIONS.md +0 -52
  217. package/resources/harness/bundles/general/cursor/harness-codebase-map/templates/STACK.md +0 -55
  218. package/resources/harness/bundles/general/cursor/harness-codebase-map/templates/STRUCTURE.md +0 -69
  219. package/resources/harness/bundles/general/cursor/harness-codebase-map/templates/TESTING.md +0 -64
  220. package/resources/harness/bundles/general/cursor/harness-codebase-map/templates/map-manifest.schema.json +0 -73
  221. package/resources/harness/bundles/general/cursor/harness-codebase-map/templates/map-summary.md +0 -64
  222. package/resources/harness/bundles/general/cursor/harness-knowledge-ingest/SKILL.md +0 -229
  223. package/resources/harness/bundles/general/cursor/harness-knowledge-ingest/design.md +0 -842
  224. package/resources/harness/bundles/general/cursor/harness-knowledge-ingest/evaluations/harness_knowledge_evaluation.xml +0 -42
  225. package/resources/harness/bundles/general/cursor/harness-knowledge-ingest/mcp-config.example.json +0 -10
  226. package/resources/harness/bundles/general/cursor/harness-knowledge-ingest/reference.md +0 -309
  227. package/resources/harness/bundles/general/cursor/harness-knowledge-ingest/scripts/harness_knowledge.py +0 -4082
  228. package/resources/harness/bundles/general/cursor/harness-knowledge-ingest/scripts/harness_knowledge_mcp.py +0 -273
  229. package/resources/harness/bundles/general/cursor/harness-knowledge-query/SKILL.md +0 -147
  230. package/resources/harness/bundles/general/cursor/harness-plan/SKILL.md +0 -109
  231. package/resources/harness/bundles/general/cursor/harness-plan/checklist.md +0 -243
  232. package/resources/harness/bundles/general/cursor/harness-plan/protocols.md +0 -124
  233. package/resources/harness/bundles/general/cursor/harness-plan/reference.md +0 -376
  234. package/resources/harness/bundles/general/cursor/harness-review/SKILL.md +0 -137
  235. package/resources/harness/bundles/general/cursor/harness-review/checklist.md +0 -124
  236. package/resources/harness/bundles/general/cursor/harness-review/protocols.md +0 -68
  237. package/resources/harness/bundles/general/cursor/harness-review/reference.md +0 -86
  238. package/resources/harness/bundles/general/cursor/harness-run/SKILL.md +0 -113
  239. package/resources/harness/bundles/general/cursor/harness-run/checklist.md +0 -259
  240. package/resources/harness/bundles/general/cursor/harness-run/protocols.md +0 -78
  241. package/resources/harness/bundles/general/cursor/harness-run/reference.md +0 -834
  242. package/resources/harness/bundles/general/cursor/harness-submit/SKILL.md +0 -142
  243. package/resources/harness/bundles/general/cursor/harness-submit/checklist.md +0 -407
  244. package/resources/harness/bundles/general/cursor/harness-submit/reference.md +0 -152
  245. package/resources/harness/bundles/general/cursor/harness-sync/SKILL.md +0 -65
  246. package/resources/harness/bundles/general/cursor/harness-sync/reference.md +0 -153
  247. package/resources/harness/bundles/general/cursor/harness-test/SKILL.md +0 -160
  248. package/resources/harness/bundles/general/cursor/harness-test/checklist.md +0 -319
  249. package/resources/harness/bundles/general/cursor/harness-test/pitfalls.md +0 -260
  250. package/resources/harness/bundles/general/cursor/harness-test/reference.md +0 -791
  251. package/resources/harness/bundles/general/cursor/protocols/archive-report-protocol.md +0 -175
  252. package/resources/harness/bundles/general/cursor/protocols/evidence-based-reporting-protocol.md +0 -134
  253. package/resources/harness/bundles/general/cursor/protocols/ledger-protocol.md +0 -270
  254. package/resources/harness/bundles/general/cursor/protocols/powershell-protocol.md +0 -181
  255. package/resources/harness/bundles/general/cursor/protocols/report-pipeline-protocol.md +0 -150
  256. package/resources/harness/bundles/general/cursor/protocols/sensitive-info-protocol.md +0 -92
  257. package/resources/harness/bundles/general/cursor/protocols/state-layout-protocol.md +0 -131
  258. package/resources/harness/bundles/general/cursor/protocols/submit-protocol.md +0 -78
  259. package/resources/harness/bundles/general/cursor/scripts/harness_archive.py +0 -2319
  260. package/resources/harness/bundles/general/cursor/scripts/harness_deploy.py +0 -674
  261. package/resources/harness/bundles/general/cursor/scripts/harness_events.py +0 -680
  262. package/resources/harness/bundles/general/cursor/scripts/harness_ledger.py +0 -671
  263. package/resources/harness/bundles/general/cursor/scripts/harness_preflight.py +0 -780
  264. package/resources/harness/bundles/general/cursor/scripts/harness_service.py +0 -1331
  265. package/resources/harness/bundles/java/claude-code/.harness-build.json +0 -6
  266. package/resources/harness/bundles/java/claude-code/CONTEXT.md +0 -65
  267. package/resources/harness/bundles/java/claude-code/README.md +0 -478
  268. package/resources/harness/bundles/java/claude-code/agents/harness-evaluator.md +0 -96
  269. package/resources/harness/bundles/java/claude-code/agents/harness-explorer.md +0 -72
  270. package/resources/harness/bundles/java/claude-code/agents/harness-reviewer.md +0 -69
  271. package/resources/harness/bundles/java/claude-code/harness-apidoc/SKILL.md +0 -86
  272. package/resources/harness/bundles/java/claude-code/harness-apidoc/checklist.md +0 -142
  273. package/resources/harness/bundles/java/claude-code/harness-apidoc/reference.md +0 -233
  274. package/resources/harness/bundles/java/claude-code/harness-archive/SKILL.md +0 -215
  275. package/resources/harness/bundles/java/claude-code/harness-archive/checklist.md +0 -52
  276. package/resources/harness/bundles/java/claude-code/harness-archive/reference.md +0 -103
  277. package/resources/harness/bundles/java/claude-code/harness-archive/scripts/gen-manifest.ps1 +0 -31
  278. package/resources/harness/bundles/java/claude-code/harness-archive/templates/render-summary.mjs +0 -171
  279. package/resources/harness/bundles/java/claude-code/harness-archive/templates/summary-data-template.json +0 -128
  280. package/resources/harness/bundles/java/claude-code/harness-codebase-map/SKILL.md +0 -112
  281. package/resources/harness/bundles/java/claude-code/harness-codebase-map/checklist.md +0 -126
  282. package/resources/harness/bundles/java/claude-code/harness-codebase-map/reference.md +0 -364
  283. package/resources/harness/bundles/java/claude-code/harness-codebase-map/templates/ARCHITECTURE.md +0 -57
  284. package/resources/harness/bundles/java/claude-code/harness-codebase-map/templates/CONCERNS.md +0 -49
  285. package/resources/harness/bundles/java/claude-code/harness-codebase-map/templates/CONVENTIONS.md +0 -57
  286. package/resources/harness/bundles/java/claude-code/harness-codebase-map/templates/INTEGRATIONS.md +0 -52
  287. package/resources/harness/bundles/java/claude-code/harness-codebase-map/templates/STACK.md +0 -55
  288. package/resources/harness/bundles/java/claude-code/harness-codebase-map/templates/STRUCTURE.md +0 -69
  289. package/resources/harness/bundles/java/claude-code/harness-codebase-map/templates/TESTING.md +0 -64
  290. package/resources/harness/bundles/java/claude-code/harness-codebase-map/templates/map-manifest.schema.json +0 -73
  291. package/resources/harness/bundles/java/claude-code/harness-codebase-map/templates/map-summary.md +0 -64
  292. package/resources/harness/bundles/java/claude-code/harness-knowledge-ingest/SKILL.md +0 -246
  293. package/resources/harness/bundles/java/claude-code/harness-knowledge-ingest/design.md +0 -842
  294. package/resources/harness/bundles/java/claude-code/harness-knowledge-ingest/evaluations/harness_knowledge_evaluation.xml +0 -42
  295. package/resources/harness/bundles/java/claude-code/harness-knowledge-ingest/mcp-config.example.json +0 -10
  296. package/resources/harness/bundles/java/claude-code/harness-knowledge-ingest/reference.md +0 -309
  297. package/resources/harness/bundles/java/claude-code/harness-knowledge-ingest/scripts/harness_knowledge.py +0 -4082
  298. package/resources/harness/bundles/java/claude-code/harness-knowledge-ingest/scripts/harness_knowledge_mcp.py +0 -273
  299. package/resources/harness/bundles/java/claude-code/harness-knowledge-query/SKILL.md +0 -164
  300. package/resources/harness/bundles/java/claude-code/harness-package/SKILL.md +0 -87
  301. package/resources/harness/bundles/java/claude-code/harness-package/checklist.md +0 -322
  302. package/resources/harness/bundles/java/claude-code/harness-package/reference.md +0 -210
  303. package/resources/harness/bundles/java/claude-code/harness-plan/SKILL.md +0 -127
  304. package/resources/harness/bundles/java/claude-code/harness-plan/checklist.md +0 -243
  305. package/resources/harness/bundles/java/claude-code/harness-plan/protocols.md +0 -124
  306. package/resources/harness/bundles/java/claude-code/harness-plan/reference.md +0 -376
  307. package/resources/harness/bundles/java/claude-code/harness-review/SKILL.md +0 -160
  308. package/resources/harness/bundles/java/claude-code/harness-review/checklist.md +0 -124
  309. package/resources/harness/bundles/java/claude-code/harness-review/protocols.md +0 -68
  310. package/resources/harness/bundles/java/claude-code/harness-review/reference.md +0 -86
  311. package/resources/harness/bundles/java/claude-code/harness-run/SKILL.md +0 -148
  312. package/resources/harness/bundles/java/claude-code/harness-run/checklist.md +0 -250
  313. package/resources/harness/bundles/java/claude-code/harness-run/protocols.md +0 -78
  314. package/resources/harness/bundles/java/claude-code/harness-run/reference.md +0 -814
  315. package/resources/harness/bundles/java/claude-code/harness-submit/SKILL.md +0 -166
  316. package/resources/harness/bundles/java/claude-code/harness-submit/checklist.md +0 -407
  317. package/resources/harness/bundles/java/claude-code/harness-submit/reference.md +0 -152
  318. package/resources/harness/bundles/java/claude-code/harness-sync/SKILL.md +0 -82
  319. package/resources/harness/bundles/java/claude-code/harness-sync/reference.md +0 -153
  320. package/resources/harness/bundles/java/claude-code/harness-test/SKILL.md +0 -192
  321. package/resources/harness/bundles/java/claude-code/harness-test/checklist.md +0 -317
  322. package/resources/harness/bundles/java/claude-code/harness-test/pitfalls-java.md +0 -16
  323. package/resources/harness/bundles/java/claude-code/harness-test/pitfalls.md +0 -260
  324. package/resources/harness/bundles/java/claude-code/harness-test/reference.md +0 -788
  325. package/resources/harness/bundles/java/claude-code/protocols/archive-report-protocol.md +0 -175
  326. package/resources/harness/bundles/java/claude-code/protocols/evidence-based-reporting-protocol.md +0 -134
  327. package/resources/harness/bundles/java/claude-code/protocols/ledger-protocol.md +0 -270
  328. package/resources/harness/bundles/java/claude-code/protocols/powershell-protocol.md +0 -181
  329. package/resources/harness/bundles/java/claude-code/protocols/report-pipeline-protocol.md +0 -150
  330. package/resources/harness/bundles/java/claude-code/protocols/sensitive-info-protocol.md +0 -92
  331. package/resources/harness/bundles/java/claude-code/protocols/state-layout-protocol.md +0 -131
  332. package/resources/harness/bundles/java/claude-code/protocols/submit-protocol.md +0 -78
  333. package/resources/harness/bundles/java/claude-code/scripts/harness_archive.py +0 -2319
  334. package/resources/harness/bundles/java/claude-code/scripts/harness_deploy.py +0 -674
  335. package/resources/harness/bundles/java/claude-code/scripts/harness_events.py +0 -680
  336. package/resources/harness/bundles/java/claude-code/scripts/harness_ledger.py +0 -671
  337. package/resources/harness/bundles/java/claude-code/scripts/harness_preflight.py +0 -780
  338. package/resources/harness/bundles/java/claude-code/scripts/harness_service.py +0 -1331
  339. package/resources/harness/bundles/java/codebuddy/.harness-build.json +0 -6
  340. package/resources/harness/bundles/java/codebuddy/CONTEXT.md +0 -65
  341. package/resources/harness/bundles/java/codebuddy/README.md +0 -478
  342. package/resources/harness/bundles/java/codebuddy/agents/harness-evaluator.md +0 -94
  343. package/resources/harness/bundles/java/codebuddy/agents/harness-explorer.md +0 -53
  344. package/resources/harness/bundles/java/codebuddy/agents/harness-reviewer.md +0 -52
  345. package/resources/harness/bundles/java/codebuddy/harness-apidoc/SKILL.md +0 -68
  346. package/resources/harness/bundles/java/codebuddy/harness-apidoc/checklist.md +0 -142
  347. package/resources/harness/bundles/java/codebuddy/harness-apidoc/reference.md +0 -233
  348. package/resources/harness/bundles/java/codebuddy/harness-archive/SKILL.md +0 -198
  349. package/resources/harness/bundles/java/codebuddy/harness-archive/checklist.md +0 -52
  350. package/resources/harness/bundles/java/codebuddy/harness-archive/reference.md +0 -103
  351. package/resources/harness/bundles/java/codebuddy/harness-archive/scripts/gen-manifest.ps1 +0 -31
  352. package/resources/harness/bundles/java/codebuddy/harness-archive/templates/render-summary.mjs +0 -171
  353. package/resources/harness/bundles/java/codebuddy/harness-archive/templates/summary-data-template.json +0 -128
  354. package/resources/harness/bundles/java/codebuddy/harness-codebase-map/SKILL.md +0 -95
  355. package/resources/harness/bundles/java/codebuddy/harness-codebase-map/checklist.md +0 -126
  356. package/resources/harness/bundles/java/codebuddy/harness-codebase-map/reference.md +0 -364
  357. package/resources/harness/bundles/java/codebuddy/harness-codebase-map/templates/ARCHITECTURE.md +0 -57
  358. package/resources/harness/bundles/java/codebuddy/harness-codebase-map/templates/CONCERNS.md +0 -49
  359. package/resources/harness/bundles/java/codebuddy/harness-codebase-map/templates/CONVENTIONS.md +0 -57
  360. package/resources/harness/bundles/java/codebuddy/harness-codebase-map/templates/INTEGRATIONS.md +0 -52
  361. package/resources/harness/bundles/java/codebuddy/harness-codebase-map/templates/STACK.md +0 -55
  362. package/resources/harness/bundles/java/codebuddy/harness-codebase-map/templates/STRUCTURE.md +0 -69
  363. package/resources/harness/bundles/java/codebuddy/harness-codebase-map/templates/TESTING.md +0 -64
  364. package/resources/harness/bundles/java/codebuddy/harness-codebase-map/templates/map-manifest.schema.json +0 -73
  365. package/resources/harness/bundles/java/codebuddy/harness-codebase-map/templates/map-summary.md +0 -64
  366. package/resources/harness/bundles/java/codebuddy/harness-knowledge-ingest/SKILL.md +0 -229
  367. package/resources/harness/bundles/java/codebuddy/harness-knowledge-ingest/design.md +0 -842
  368. package/resources/harness/bundles/java/codebuddy/harness-knowledge-ingest/evaluations/harness_knowledge_evaluation.xml +0 -42
  369. package/resources/harness/bundles/java/codebuddy/harness-knowledge-ingest/mcp-config.example.json +0 -10
  370. package/resources/harness/bundles/java/codebuddy/harness-knowledge-ingest/reference.md +0 -309
  371. package/resources/harness/bundles/java/codebuddy/harness-knowledge-ingest/scripts/harness_knowledge.py +0 -4082
  372. package/resources/harness/bundles/java/codebuddy/harness-knowledge-ingest/scripts/harness_knowledge_mcp.py +0 -273
  373. package/resources/harness/bundles/java/codebuddy/harness-knowledge-query/SKILL.md +0 -147
  374. package/resources/harness/bundles/java/codebuddy/harness-package/SKILL.md +0 -69
  375. package/resources/harness/bundles/java/codebuddy/harness-package/checklist.md +0 -322
  376. package/resources/harness/bundles/java/codebuddy/harness-package/reference.md +0 -210
  377. package/resources/harness/bundles/java/codebuddy/harness-plan/SKILL.md +0 -109
  378. package/resources/harness/bundles/java/codebuddy/harness-plan/checklist.md +0 -243
  379. package/resources/harness/bundles/java/codebuddy/harness-plan/protocols.md +0 -124
  380. package/resources/harness/bundles/java/codebuddy/harness-plan/reference.md +0 -376
  381. package/resources/harness/bundles/java/codebuddy/harness-review/SKILL.md +0 -142
  382. package/resources/harness/bundles/java/codebuddy/harness-review/checklist.md +0 -124
  383. package/resources/harness/bundles/java/codebuddy/harness-review/protocols.md +0 -68
  384. package/resources/harness/bundles/java/codebuddy/harness-review/reference.md +0 -86
  385. package/resources/harness/bundles/java/codebuddy/harness-run/SKILL.md +0 -129
  386. package/resources/harness/bundles/java/codebuddy/harness-run/checklist.md +0 -250
  387. package/resources/harness/bundles/java/codebuddy/harness-run/protocols.md +0 -78
  388. package/resources/harness/bundles/java/codebuddy/harness-run/reference.md +0 -814
  389. package/resources/harness/bundles/java/codebuddy/harness-submit/SKILL.md +0 -149
  390. package/resources/harness/bundles/java/codebuddy/harness-submit/checklist.md +0 -407
  391. package/resources/harness/bundles/java/codebuddy/harness-submit/reference.md +0 -152
  392. package/resources/harness/bundles/java/codebuddy/harness-sync/SKILL.md +0 -65
  393. package/resources/harness/bundles/java/codebuddy/harness-sync/reference.md +0 -153
  394. package/resources/harness/bundles/java/codebuddy/harness-test/SKILL.md +0 -172
  395. package/resources/harness/bundles/java/codebuddy/harness-test/checklist.md +0 -317
  396. package/resources/harness/bundles/java/codebuddy/harness-test/pitfalls-java.md +0 -16
  397. package/resources/harness/bundles/java/codebuddy/harness-test/pitfalls.md +0 -260
  398. package/resources/harness/bundles/java/codebuddy/harness-test/reference.md +0 -788
  399. package/resources/harness/bundles/java/codebuddy/protocols/archive-report-protocol.md +0 -175
  400. package/resources/harness/bundles/java/codebuddy/protocols/evidence-based-reporting-protocol.md +0 -134
  401. package/resources/harness/bundles/java/codebuddy/protocols/ledger-protocol.md +0 -270
  402. package/resources/harness/bundles/java/codebuddy/protocols/powershell-protocol.md +0 -181
  403. package/resources/harness/bundles/java/codebuddy/protocols/report-pipeline-protocol.md +0 -150
  404. package/resources/harness/bundles/java/codebuddy/protocols/sensitive-info-protocol.md +0 -92
  405. package/resources/harness/bundles/java/codebuddy/protocols/state-layout-protocol.md +0 -131
  406. package/resources/harness/bundles/java/codebuddy/protocols/submit-protocol.md +0 -78
  407. package/resources/harness/bundles/java/codebuddy/scripts/harness_archive.py +0 -2319
  408. package/resources/harness/bundles/java/codebuddy/scripts/harness_deploy.py +0 -674
  409. package/resources/harness/bundles/java/codebuddy/scripts/harness_events.py +0 -680
  410. package/resources/harness/bundles/java/codebuddy/scripts/harness_ledger.py +0 -671
  411. package/resources/harness/bundles/java/codebuddy/scripts/harness_preflight.py +0 -780
  412. package/resources/harness/bundles/java/codebuddy/scripts/harness_service.py +0 -1331
  413. package/resources/harness/bundles/java/codex/.harness-build.json +0 -6
  414. package/resources/harness/bundles/java/codex/CONTEXT.md +0 -65
  415. package/resources/harness/bundles/java/codex/README.md +0 -478
  416. package/resources/harness/bundles/java/codex/harness-apidoc/SKILL.md +0 -68
  417. package/resources/harness/bundles/java/codex/harness-apidoc/checklist.md +0 -142
  418. package/resources/harness/bundles/java/codex/harness-apidoc/reference.md +0 -233
  419. package/resources/harness/bundles/java/codex/harness-archive/SKILL.md +0 -198
  420. package/resources/harness/bundles/java/codex/harness-archive/checklist.md +0 -52
  421. package/resources/harness/bundles/java/codex/harness-archive/reference.md +0 -103
  422. package/resources/harness/bundles/java/codex/harness-archive/scripts/gen-manifest.ps1 +0 -31
  423. package/resources/harness/bundles/java/codex/harness-archive/templates/render-summary.mjs +0 -171
  424. package/resources/harness/bundles/java/codex/harness-archive/templates/summary-data-template.json +0 -128
  425. package/resources/harness/bundles/java/codex/harness-codebase-map/SKILL.md +0 -95
  426. package/resources/harness/bundles/java/codex/harness-codebase-map/checklist.md +0 -126
  427. package/resources/harness/bundles/java/codex/harness-codebase-map/reference.md +0 -364
  428. package/resources/harness/bundles/java/codex/harness-codebase-map/templates/ARCHITECTURE.md +0 -57
  429. package/resources/harness/bundles/java/codex/harness-codebase-map/templates/CONCERNS.md +0 -49
  430. package/resources/harness/bundles/java/codex/harness-codebase-map/templates/CONVENTIONS.md +0 -57
  431. package/resources/harness/bundles/java/codex/harness-codebase-map/templates/INTEGRATIONS.md +0 -52
  432. package/resources/harness/bundles/java/codex/harness-codebase-map/templates/STACK.md +0 -55
  433. package/resources/harness/bundles/java/codex/harness-codebase-map/templates/STRUCTURE.md +0 -69
  434. package/resources/harness/bundles/java/codex/harness-codebase-map/templates/TESTING.md +0 -64
  435. package/resources/harness/bundles/java/codex/harness-codebase-map/templates/map-manifest.schema.json +0 -73
  436. package/resources/harness/bundles/java/codex/harness-codebase-map/templates/map-summary.md +0 -64
  437. package/resources/harness/bundles/java/codex/harness-knowledge-ingest/SKILL.md +0 -229
  438. package/resources/harness/bundles/java/codex/harness-knowledge-ingest/design.md +0 -842
  439. package/resources/harness/bundles/java/codex/harness-knowledge-ingest/evaluations/harness_knowledge_evaluation.xml +0 -42
  440. package/resources/harness/bundles/java/codex/harness-knowledge-ingest/mcp-config.example.json +0 -10
  441. package/resources/harness/bundles/java/codex/harness-knowledge-ingest/reference.md +0 -309
  442. package/resources/harness/bundles/java/codex/harness-knowledge-ingest/scripts/harness_knowledge.py +0 -4082
  443. package/resources/harness/bundles/java/codex/harness-knowledge-ingest/scripts/harness_knowledge_mcp.py +0 -273
  444. package/resources/harness/bundles/java/codex/harness-knowledge-query/SKILL.md +0 -147
  445. package/resources/harness/bundles/java/codex/harness-package/SKILL.md +0 -69
  446. package/resources/harness/bundles/java/codex/harness-package/checklist.md +0 -322
  447. package/resources/harness/bundles/java/codex/harness-package/reference.md +0 -210
  448. package/resources/harness/bundles/java/codex/harness-plan/SKILL.md +0 -109
  449. package/resources/harness/bundles/java/codex/harness-plan/checklist.md +0 -243
  450. package/resources/harness/bundles/java/codex/harness-plan/protocols.md +0 -124
  451. package/resources/harness/bundles/java/codex/harness-plan/reference.md +0 -376
  452. package/resources/harness/bundles/java/codex/harness-review/SKILL.md +0 -137
  453. package/resources/harness/bundles/java/codex/harness-review/checklist.md +0 -124
  454. package/resources/harness/bundles/java/codex/harness-review/protocols.md +0 -68
  455. package/resources/harness/bundles/java/codex/harness-review/reference.md +0 -86
  456. package/resources/harness/bundles/java/codex/harness-run/SKILL.md +0 -129
  457. package/resources/harness/bundles/java/codex/harness-run/checklist.md +0 -250
  458. package/resources/harness/bundles/java/codex/harness-run/protocols.md +0 -78
  459. package/resources/harness/bundles/java/codex/harness-run/reference.md +0 -814
  460. package/resources/harness/bundles/java/codex/harness-submit/SKILL.md +0 -149
  461. package/resources/harness/bundles/java/codex/harness-submit/checklist.md +0 -407
  462. package/resources/harness/bundles/java/codex/harness-submit/reference.md +0 -152
  463. package/resources/harness/bundles/java/codex/harness-sync/SKILL.md +0 -65
  464. package/resources/harness/bundles/java/codex/harness-sync/reference.md +0 -153
  465. package/resources/harness/bundles/java/codex/harness-test/SKILL.md +0 -172
  466. package/resources/harness/bundles/java/codex/harness-test/checklist.md +0 -317
  467. package/resources/harness/bundles/java/codex/harness-test/pitfalls-java.md +0 -16
  468. package/resources/harness/bundles/java/codex/harness-test/pitfalls.md +0 -260
  469. package/resources/harness/bundles/java/codex/harness-test/reference.md +0 -788
  470. package/resources/harness/bundles/java/codex/protocols/archive-report-protocol.md +0 -175
  471. package/resources/harness/bundles/java/codex/protocols/evidence-based-reporting-protocol.md +0 -134
  472. package/resources/harness/bundles/java/codex/protocols/ledger-protocol.md +0 -270
  473. package/resources/harness/bundles/java/codex/protocols/powershell-protocol.md +0 -181
  474. package/resources/harness/bundles/java/codex/protocols/report-pipeline-protocol.md +0 -150
  475. package/resources/harness/bundles/java/codex/protocols/sensitive-info-protocol.md +0 -92
  476. package/resources/harness/bundles/java/codex/protocols/state-layout-protocol.md +0 -131
  477. package/resources/harness/bundles/java/codex/protocols/submit-protocol.md +0 -78
  478. package/resources/harness/bundles/java/codex/scripts/harness_archive.py +0 -2319
  479. package/resources/harness/bundles/java/codex/scripts/harness_deploy.py +0 -674
  480. package/resources/harness/bundles/java/codex/scripts/harness_events.py +0 -680
  481. package/resources/harness/bundles/java/codex/scripts/harness_ledger.py +0 -671
  482. package/resources/harness/bundles/java/codex/scripts/harness_preflight.py +0 -780
  483. package/resources/harness/bundles/java/codex/scripts/harness_service.py +0 -1331
  484. package/resources/harness/bundles/java/cursor/.harness-build.json +0 -6
  485. package/resources/harness/bundles/java/cursor/CONTEXT.md +0 -65
  486. package/resources/harness/bundles/java/cursor/README.md +0 -478
  487. package/resources/harness/bundles/java/cursor/harness-apidoc/SKILL.md +0 -68
  488. package/resources/harness/bundles/java/cursor/harness-apidoc/checklist.md +0 -142
  489. package/resources/harness/bundles/java/cursor/harness-apidoc/reference.md +0 -233
  490. package/resources/harness/bundles/java/cursor/harness-archive/SKILL.md +0 -198
  491. package/resources/harness/bundles/java/cursor/harness-archive/checklist.md +0 -52
  492. package/resources/harness/bundles/java/cursor/harness-archive/reference.md +0 -103
  493. package/resources/harness/bundles/java/cursor/harness-archive/scripts/gen-manifest.ps1 +0 -31
  494. package/resources/harness/bundles/java/cursor/harness-archive/templates/render-summary.mjs +0 -171
  495. package/resources/harness/bundles/java/cursor/harness-archive/templates/summary-data-template.json +0 -128
  496. package/resources/harness/bundles/java/cursor/harness-codebase-map/SKILL.md +0 -95
  497. package/resources/harness/bundles/java/cursor/harness-codebase-map/checklist.md +0 -126
  498. package/resources/harness/bundles/java/cursor/harness-codebase-map/reference.md +0 -364
  499. package/resources/harness/bundles/java/cursor/harness-codebase-map/templates/ARCHITECTURE.md +0 -57
  500. package/resources/harness/bundles/java/cursor/harness-codebase-map/templates/CONCERNS.md +0 -49
  501. package/resources/harness/bundles/java/cursor/harness-codebase-map/templates/CONVENTIONS.md +0 -57
  502. package/resources/harness/bundles/java/cursor/harness-codebase-map/templates/INTEGRATIONS.md +0 -52
  503. package/resources/harness/bundles/java/cursor/harness-codebase-map/templates/STACK.md +0 -55
  504. package/resources/harness/bundles/java/cursor/harness-codebase-map/templates/STRUCTURE.md +0 -69
  505. package/resources/harness/bundles/java/cursor/harness-codebase-map/templates/TESTING.md +0 -64
  506. package/resources/harness/bundles/java/cursor/harness-codebase-map/templates/map-manifest.schema.json +0 -73
  507. package/resources/harness/bundles/java/cursor/harness-codebase-map/templates/map-summary.md +0 -64
  508. package/resources/harness/bundles/java/cursor/harness-knowledge-ingest/SKILL.md +0 -229
  509. package/resources/harness/bundles/java/cursor/harness-knowledge-ingest/design.md +0 -842
  510. package/resources/harness/bundles/java/cursor/harness-knowledge-ingest/evaluations/harness_knowledge_evaluation.xml +0 -42
  511. package/resources/harness/bundles/java/cursor/harness-knowledge-ingest/mcp-config.example.json +0 -10
  512. package/resources/harness/bundles/java/cursor/harness-knowledge-ingest/reference.md +0 -309
  513. package/resources/harness/bundles/java/cursor/harness-knowledge-ingest/scripts/harness_knowledge.py +0 -4082
  514. package/resources/harness/bundles/java/cursor/harness-knowledge-ingest/scripts/harness_knowledge_mcp.py +0 -273
  515. package/resources/harness/bundles/java/cursor/harness-knowledge-query/SKILL.md +0 -147
  516. package/resources/harness/bundles/java/cursor/harness-package/SKILL.md +0 -69
  517. package/resources/harness/bundles/java/cursor/harness-package/checklist.md +0 -322
  518. package/resources/harness/bundles/java/cursor/harness-package/reference.md +0 -210
  519. package/resources/harness/bundles/java/cursor/harness-plan/SKILL.md +0 -109
  520. package/resources/harness/bundles/java/cursor/harness-plan/checklist.md +0 -243
  521. package/resources/harness/bundles/java/cursor/harness-plan/protocols.md +0 -124
  522. package/resources/harness/bundles/java/cursor/harness-plan/reference.md +0 -376
  523. package/resources/harness/bundles/java/cursor/harness-review/SKILL.md +0 -137
  524. package/resources/harness/bundles/java/cursor/harness-review/checklist.md +0 -124
  525. package/resources/harness/bundles/java/cursor/harness-review/protocols.md +0 -68
  526. package/resources/harness/bundles/java/cursor/harness-review/reference.md +0 -86
  527. package/resources/harness/bundles/java/cursor/harness-run/SKILL.md +0 -129
  528. package/resources/harness/bundles/java/cursor/harness-run/checklist.md +0 -250
  529. package/resources/harness/bundles/java/cursor/harness-run/protocols.md +0 -78
  530. package/resources/harness/bundles/java/cursor/harness-run/reference.md +0 -814
  531. package/resources/harness/bundles/java/cursor/harness-submit/SKILL.md +0 -149
  532. package/resources/harness/bundles/java/cursor/harness-submit/checklist.md +0 -407
  533. package/resources/harness/bundles/java/cursor/harness-submit/reference.md +0 -152
  534. package/resources/harness/bundles/java/cursor/harness-sync/SKILL.md +0 -65
  535. package/resources/harness/bundles/java/cursor/harness-sync/reference.md +0 -153
  536. package/resources/harness/bundles/java/cursor/harness-test/SKILL.md +0 -172
  537. package/resources/harness/bundles/java/cursor/harness-test/checklist.md +0 -317
  538. package/resources/harness/bundles/java/cursor/harness-test/pitfalls-java.md +0 -16
  539. package/resources/harness/bundles/java/cursor/harness-test/pitfalls.md +0 -260
  540. package/resources/harness/bundles/java/cursor/harness-test/reference.md +0 -788
  541. package/resources/harness/bundles/java/cursor/protocols/archive-report-protocol.md +0 -175
  542. package/resources/harness/bundles/java/cursor/protocols/evidence-based-reporting-protocol.md +0 -134
  543. package/resources/harness/bundles/java/cursor/protocols/ledger-protocol.md +0 -270
  544. package/resources/harness/bundles/java/cursor/protocols/powershell-protocol.md +0 -181
  545. package/resources/harness/bundles/java/cursor/protocols/report-pipeline-protocol.md +0 -150
  546. package/resources/harness/bundles/java/cursor/protocols/sensitive-info-protocol.md +0 -92
  547. package/resources/harness/bundles/java/cursor/protocols/state-layout-protocol.md +0 -131
  548. package/resources/harness/bundles/java/cursor/protocols/submit-protocol.md +0 -78
  549. package/resources/harness/bundles/java/cursor/scripts/harness_archive.py +0 -2319
  550. package/resources/harness/bundles/java/cursor/scripts/harness_deploy.py +0 -674
  551. package/resources/harness/bundles/java/cursor/scripts/harness_events.py +0 -680
  552. package/resources/harness/bundles/java/cursor/scripts/harness_ledger.py +0 -671
  553. package/resources/harness/bundles/java/cursor/scripts/harness_preflight.py +0 -780
  554. package/resources/harness/bundles/java/cursor/scripts/harness_service.py +0 -1331
  555. package/resources/harness/manifests/general/claude-code.json +0 -277
  556. package/resources/harness/manifests/general/codebuddy.json +0 -277
  557. package/resources/harness/manifests/general/codex.json +0 -265
  558. package/resources/harness/manifests/general/cursor.json +0 -265
  559. package/resources/harness/manifests/java/claude-code.json +0 -305
  560. package/resources/harness/manifests/java/codebuddy.json +0 -305
  561. package/resources/harness/manifests/java/codex.json +0 -293
  562. package/resources/harness/manifests/java/cursor.json +0 -293
  563. package/resources/harness/migrations/0.1.1/general.json +0 -358
  564. package/resources/harness/migrations/0.1.1/java.json +0 -398
@@ -1,674 +0,0 @@
1
- #!/usr/bin/env python3
2
- """Harness deploy: build core + overlay into self-contained skills tree (D9/D12).
3
-
4
- Python 3.10+ stdlib only. UTF-8 without BOM.
5
- """
6
-
7
- from __future__ import annotations
8
-
9
- import argparse
10
- import datetime as dt
11
- import filecmp
12
- import hashlib
13
- import json
14
- import os
15
- import re
16
- import shutil
17
- import sys
18
- import uuid
19
- from pathlib import Path
20
- from typing import Any, Iterable
21
-
22
- if hasattr(sys.stdout, "reconfigure"):
23
- sys.stdout.reconfigure(encoding="utf-8")
24
- if hasattr(sys.stderr, "reconfigure"):
25
- sys.stderr.reconfigure(encoding="utf-8")
26
-
27
- INCLUDE_RE = re.compile(r"<!--\s*@include\s+shared/([^\s]+)\s*-->")
28
- # §7.5: overlay anchors support both new section-id and legacy section:"title".
29
- OVERRIDE_RE = re.compile(r'<!--\s*@override\s+(?:section-id:"([^"]+)"|section:"([^"]+)")\s*-->')
30
- APPEND_RE = re.compile(r'<!--\s*@append-after\s+(?:section-id:"([^"]+)"|section:"([^"]+)")\s*-->')
31
- SECTION_ID_RE = re.compile(r"<!--\s*@section-id\s+([\w.-]+)\s*-->")
32
- HEADING_RE = re.compile(r"^(#{2,6})\s+(.+?)\s*$")
33
- FRAGMENT_HINT_RE = re.compile(r"^>\s*片段:\[\[shared/[^\]]+\]\]\s*.*$")
34
-
35
- BUILD_MARKER = ".harness-build.json"
36
-
37
- SKIP_DIR_NAMES = {
38
- "__pycache__",
39
- ".pytest_cache",
40
- "redesign",
41
- "shared",
42
- "overlays",
43
- "adapters",
44
- ".git",
45
- }
46
- SKIP_TOP_NAMES = {"harness-merge", "harness-report"}
47
- HARNESS_AGENTS = ("claude-code", "codex", "cursor", "codebuddy")
48
- AGENTS_WITH_CUSTOM_AGENTS = frozenset({"claude-code", "codebuddy"})
49
-
50
-
51
- def now_iso() -> str:
52
- return dt.datetime.now().astimezone().isoformat(timespec="seconds")
53
-
54
-
55
- def emit_json(payload: dict[str, Any], *, ok: bool = True) -> int:
56
- print(json.dumps(payload, ensure_ascii=False, indent=2))
57
- return 0 if ok else 1
58
-
59
-
60
- def normalize_section_title(title: str) -> str:
61
- t = title.strip()
62
- t = re.sub(r"\s*⚠️.*$", "", t)
63
- t = re.sub(r"\s*([^)]*)\s*$", "", t)
64
- return t.strip()
65
-
66
-
67
- def sha256_file(path: Path) -> str:
68
- h = hashlib.sha256()
69
- with path.open("rb") as fh:
70
- for chunk in iter(lambda: fh.read(65536), b""):
71
- h.update(chunk)
72
- return h.hexdigest()
73
-
74
-
75
- def iter_copy_entries(skills_root: Path, agent: str = "claude-code") -> Iterable[Path]:
76
- for entry in sorted(skills_root.iterdir()):
77
- if entry.name in SKIP_TOP_NAMES:
78
- continue
79
- if entry.is_dir() and entry.name in SKIP_DIR_NAMES:
80
- continue
81
- if entry.is_dir() and entry.name == "agents" and agent not in AGENTS_WITH_CUSTOM_AGENTS:
82
- continue
83
- if entry.is_file() and entry.name.startswith("."):
84
- continue
85
- yield entry
86
-
87
-
88
- RUNTIME_IGNORE = shutil.ignore_patterns(
89
- "tests", "__pycache__", "*.pyc", ".pytest_cache", "_last_run.txt", "_same_proc_*"
90
- )
91
- RUNTIME_SKIP_FILES = {"_last_run.txt", "_same_proc_pid.txt", "_same_proc_tmp.txt"}
92
-
93
-
94
- def copy_tree(skills_root: Path, out_dir: Path, agent: str = "claude-code") -> list[str]:
95
- copied: list[str] = []
96
- out_dir.mkdir(parents=True, exist_ok=True)
97
- for entry in iter_copy_entries(skills_root, agent):
98
- dest = out_dir / entry.name
99
- if entry.is_dir():
100
- if entry.name == "scripts":
101
- # §7.4: runtime keeps only scripts/*.py; scripts/tests/ excluded.
102
- # harness_acceptance.py is an acceptance meta-tool (not a runtime
103
- # skill script) and is excluded from the deployed tree.
104
- dest.mkdir(parents=True, exist_ok=True)
105
- for py in sorted(entry.glob("*.py")):
106
- if py.name == "harness_acceptance.py":
107
- continue
108
- shutil.copy2(py, dest / py.name)
109
- copied.append(f"scripts/{py.name}")
110
- else:
111
- shutil.copytree(entry, dest, ignore=RUNTIME_IGNORE)
112
- copied.append(entry.name + "/")
113
- else:
114
- if entry.name in RUNTIME_SKIP_FILES or entry.name.endswith(".pyc"):
115
- continue
116
- shutil.copy2(entry, dest)
117
- copied.append(entry.name)
118
- return copied
119
-
120
-
121
- def expand_includes(text: str, shared_dir: Path) -> str:
122
- def repl(match: re.Match[str]) -> str:
123
- rel = match.group(1)
124
- inc_path = shared_dir / rel
125
- if not inc_path.is_file():
126
- raise FileNotFoundError(f"shared include not found: {rel}")
127
- body = inc_path.read_text(encoding="utf-8").rstrip()
128
- return body
129
-
130
- expanded = INCLUDE_RE.sub(repl, text)
131
- lines = [ln for ln in expanded.splitlines() if not FRAGMENT_HINT_RE.match(ln)]
132
- return "\n".join(lines) + ("\n" if text.endswith("\n") else "")
133
-
134
-
135
- def find_section_span(lines: list[str], section: str) -> tuple[int, int, int]:
136
- target = normalize_section_title(section)
137
- start = end = level = -1
138
- for i, line in enumerate(lines):
139
- m = HEADING_RE.match(line)
140
- if not m:
141
- continue
142
- title = normalize_section_title(m.group(2))
143
- if title == target or title.startswith(target):
144
- start = i
145
- level = len(m.group(1))
146
- break
147
- if start < 0:
148
- raise KeyError(section)
149
- end = len(lines)
150
- for j in range(start + 1, len(lines)):
151
- m = HEADING_RE.match(lines[j])
152
- if m and len(m.group(1)) <= level:
153
- end = j
154
- break
155
- return start, end, level
156
-
157
-
158
- def parse_section_ids(text: str) -> dict[str, tuple[int, int, int]]:
159
- """Parse ``<!-- @section-id name -->`` markers; map id -> (start, end, level)
160
- of the heading that follows. Raise ValueError on duplicate ids (§7.5)."""
161
- lines = text.splitlines()
162
- ids: dict[str, tuple[int, int, int]] = {}
163
- pending: str | None = None
164
- for i, line in enumerate(lines):
165
- m = SECTION_ID_RE.search(line)
166
- if m:
167
- sid = m.group(1)
168
- if sid in ids:
169
- raise ValueError(f"duplicate section-id: {sid}")
170
- pending = sid
171
- continue
172
- hm = HEADING_RE.match(line)
173
- if hm and pending is not None:
174
- level = len(hm.group(1))
175
- start = i
176
- end = len(lines)
177
- for j in range(i + 1, len(lines)):
178
- m2 = HEADING_RE.match(lines[j])
179
- if m2 and len(m2.group(1)) <= level:
180
- end = j
181
- break
182
- ids[pending] = (start, end, level)
183
- pending = None
184
- return ids
185
-
186
-
187
- def apply_overlay_blocks(
188
- core_text: str, overlay_text: str, section_ids: dict[str, tuple[int, int, int]] | None = None
189
- ) -> str:
190
- lines = core_text.splitlines()
191
- pos = 0
192
- while pos < len(overlay_text):
193
- override = OVERRIDE_RE.search(overlay_text, pos)
194
- append = APPEND_RE.search(overlay_text, pos)
195
- candidates = [(m.start(), "override", m) for m in [override] if m]
196
- candidates += [(m.start(), "append", m) for m in [append] if m]
197
- if not candidates:
198
- break
199
- candidates.sort(key=lambda x: x[0])
200
- _, kind, match = candidates[0]
201
- section_id = match.group(1) # new style, may be None
202
- section_title = match.group(2) # legacy style, may be None
203
- content_start = match.end()
204
- next_marker = min(
205
- (
206
- m.start()
207
- for m in (
208
- OVERRIDE_RE.search(overlay_text, content_start),
209
- APPEND_RE.search(overlay_text, content_start),
210
- )
211
- if m
212
- ),
213
- default=len(overlay_text),
214
- )
215
- block = overlay_text[content_start:next_marker].strip("\n")
216
- if section_id:
217
- if not section_ids or section_id not in section_ids:
218
- raise KeyError(f"section-id:{section_id}")
219
- start, end, _ = section_ids[section_id]
220
- else:
221
- start, end, _ = find_section_span(lines, section_title)
222
- if kind == "override":
223
- replacement = block.splitlines()
224
- lines = lines[:start] + replacement + lines[end:]
225
- else:
226
- insertion = block.splitlines()
227
- lines = lines[:end] + insertion + lines[end:]
228
- pos = next_marker
229
- return "\n".join(lines) + ("\n" if core_text.endswith("\n") else "")
230
-
231
-
232
- def _is_relative_to(child: Path, parent: Path) -> bool:
233
- try:
234
- child.relative_to(parent)
235
- return True
236
- except ValueError:
237
- return False
238
-
239
-
240
- def validate_build_paths(skills_root: Path, out_dir: Path) -> tuple[Path, Path]:
241
- """Return resolved safe paths; raise ValueError for every forbidden relation.
242
-
243
- §7.1: refuse out==source, out as ancestor of source, out inside source,
244
- an existing non-empty out without the build marker, and obvious danger
245
- dirs (user home).
246
- """
247
- skills_root = skills_root.resolve()
248
- out_dir = out_dir.resolve()
249
-
250
- if out_dir == skills_root:
251
- raise ValueError(f"out_dir must not equal skills_root: {out_dir}")
252
- if _is_relative_to(skills_root, out_dir):
253
- raise ValueError(f"out_dir must not be an ancestor of skills_root: {out_dir}")
254
- if _is_relative_to(out_dir, skills_root):
255
- raise ValueError(f"out_dir must not be inside skills_root: {out_dir}")
256
- try:
257
- home = Path.home().resolve()
258
- except OSError:
259
- home = None
260
- if home is not None and out_dir == home:
261
- raise ValueError(f"out_dir must not be the user home: {out_dir}")
262
-
263
- if out_dir.exists() and out_dir.is_dir():
264
- has_marker = (out_dir / BUILD_MARKER).is_file()
265
- has_user_files = any(p.name != BUILD_MARKER for p in out_dir.iterdir())
266
- if has_user_files and not has_marker:
267
- raise ValueError(
268
- f"out_dir exists with user files and no {BUILD_MARKER} marker: {out_dir}"
269
- )
270
- return skills_root, out_dir
271
-
272
-
273
- def core_content_hash(
274
- skills_root: Path,
275
- overlay_dir: Path | None,
276
- agent_overlay_dir: Path | None = None,
277
- ) -> str:
278
- """SHA-256 over the actual core/shared/protocol/script/overlay files that
279
- participate in the build (path-relative + content). Deterministic across
280
- time and machine paths (§7.3)."""
281
- h = hashlib.sha256()
282
- files: list[Path] = []
283
- # Hash exactly the runtime source universe copied by copy_tree, including
284
- # references/templates/checklists rather than only SKILL.md files.
285
- for entry in iter_copy_entries(skills_root):
286
- if entry.is_file():
287
- if entry.name not in RUNTIME_SKIP_FILES and not entry.name.endswith(".pyc"):
288
- files.append(entry)
289
- elif entry.name == "scripts":
290
- files.extend(p for p in entry.glob("*.py") if p.name != "harness_acceptance.py")
291
- else:
292
- files.extend(
293
- p for p in entry.rglob("*")
294
- if p.is_file() and "__pycache__" not in p.parts and "tests" not in p.parts
295
- and not p.name.endswith(".pyc") and p.name not in RUNTIME_SKIP_FILES
296
- )
297
- if overlay_dir and overlay_dir.is_dir():
298
- files.extend(p for p in overlay_dir.rglob("*") if p.is_file())
299
- if agent_overlay_dir and agent_overlay_dir.is_dir():
300
- files.extend(p for p in agent_overlay_dir.rglob("*") if p.is_file())
301
- for f in sorted(set(files)):
302
- rel = f.resolve().relative_to(skills_root.resolve()).as_posix()
303
- h.update(rel.encode("utf-8"))
304
- h.update(b"\0")
305
- h.update(sha256_file(f).encode("ascii"))
306
- h.update(b"\0")
307
- return h.hexdigest()[:16]
308
-
309
-
310
- def synthesis_header(
311
- skills_root: Path,
312
- overlay_dir: Path | None,
313
- agent: str = "claude-code",
314
- agent_overlay_dir: Path | None = None,
315
- ) -> str:
316
- """Deterministic synth header: no absolute path, no timestamp (§7.3)."""
317
- core_hash = core_content_hash(skills_root, overlay_dir, agent_overlay_dir)
318
- overlay_name = overlay_dir.name if overlay_dir else "none"
319
- return (
320
- f"<!-- generated by harness_deploy.py; core={core_hash}; "
321
- f"overlay={overlay_name}; agent={agent}; do not edit -->\n"
322
- )
323
-
324
-
325
- def inject_header(text: str, header: str) -> str:
326
- if text.startswith("---"):
327
- parts = text.split("---", 2)
328
- if len(parts) >= 3:
329
- body = parts[2].lstrip("\n")
330
- return f"---{parts[1]}---\n{header}{body}"
331
- return header + text
332
-
333
-
334
- def process_skill_md(
335
- path: Path,
336
- shared_dir: Path,
337
- overlay_path: Path | None,
338
- header: str,
339
- agent_overlay_path: Path | None = None,
340
- ) -> None:
341
- text = path.read_text(encoding="utf-8")
342
- text = expand_includes(text, shared_dir)
343
- section_ids = parse_section_ids(text) # §7.5: raises on duplicate section-id
344
- if overlay_path and overlay_path.is_file():
345
- overlay = overlay_path.read_text(encoding="utf-8")
346
- text = apply_overlay_blocks(text, overlay, section_ids)
347
- section_ids = parse_section_ids(text)
348
- if agent_overlay_path and agent_overlay_path.is_file():
349
- agent_overlay = agent_overlay_path.read_text(encoding="utf-8")
350
- text = apply_overlay_blocks(text, agent_overlay, section_ids)
351
- text = inject_header(text, header)
352
- if INCLUDE_RE.search(text):
353
- raise RuntimeError(f"unexpanded include placeholder remains in {path}")
354
- path.write_text(text, encoding="utf-8", newline="\n")
355
-
356
-
357
- def overlay_for_skill(overlay_dir: Path, skill_name: str) -> Path | None:
358
- candidate = overlay_dir / f"{skill_name}.overlay.md"
359
- return candidate if candidate.is_file() else None
360
-
361
-
362
- def copy_adapter_agents(adapter_agents_dir: Path, staging: Path) -> list[str]:
363
- """Copy adapters/<agent>/agents/*.md over staging/agents/."""
364
- if not adapter_agents_dir.is_dir():
365
- return []
366
- dest = staging / "agents"
367
- dest.mkdir(parents=True, exist_ok=True)
368
- copied: list[str] = []
369
- for agent_file in sorted(adapter_agents_dir.glob("*.md")):
370
- shutil.copy2(agent_file, dest / agent_file.name)
371
- copied.append(f"agents/{agent_file.name}")
372
- return copied
373
-
374
-
375
- def copy_overlay_unique_skills(overlay_dir: Path, out_dir: Path) -> list[str]:
376
- added: list[str] = []
377
- for entry in sorted(overlay_dir.iterdir()):
378
- if not entry.is_dir():
379
- continue
380
- if not entry.name.startswith("harness-"):
381
- continue
382
- if not (entry / "SKILL.md").is_file():
383
- continue
384
- if (out_dir / entry.name).exists():
385
- continue
386
- shutil.copytree(
387
- entry,
388
- out_dir / entry.name,
389
- ignore=shutil.ignore_patterns("__pycache__", "*.pyc"),
390
- )
391
- added.append(entry.name + "/")
392
- return added
393
-
394
-
395
- def merge_overlay_skill_extras(overlay_dir: Path, out_dir: Path) -> list[str]:
396
- """Copy overlays/java/harness-<name>/* into existing out/harness-<name>/ (reference, etc.)."""
397
- merged: list[str] = []
398
- unique = {
399
- p.name
400
- for p in overlay_dir.iterdir()
401
- if p.is_dir() and (p / "SKILL.md").is_file()
402
- }
403
- for entry in sorted(overlay_dir.iterdir()):
404
- if not entry.is_dir() or not entry.name.startswith("harness-"):
405
- continue
406
- if entry.name in unique:
407
- continue
408
- dest_skill = out_dir / entry.name
409
- if not dest_skill.is_dir():
410
- continue
411
- for src in entry.rglob("*"):
412
- if src.is_dir() or "__pycache__" in src.parts:
413
- continue
414
- rel = src.relative_to(entry)
415
- dest = dest_skill / rel
416
- dest.parent.mkdir(parents=True, exist_ok=True)
417
- shutil.copy2(src, dest)
418
- merged.append(f"{entry.name}/{rel.as_posix()}")
419
- return merged
420
-
421
-
422
- def copy_overlay_extras(overlay_dir: Path, out_dir: Path) -> list[str]:
423
- extras: list[str] = []
424
- # §7.4: PROJECT-PROFILE-EXAMPLE.md stays a Vault doc (UDP real values);
425
- # it must NOT be installed to runtime. Only pitfalls-java.md is runtime.
426
- pitfalls = overlay_dir / "pitfalls-java.md"
427
- if pitfalls.is_file():
428
- test_pit = out_dir / "harness-test" / "pitfalls-java.md"
429
- test_pit.parent.mkdir(parents=True, exist_ok=True)
430
- shutil.copy2(pitfalls, test_pit)
431
- extras.append("harness-test/pitfalls-java.md")
432
- return extras
433
-
434
-
435
- def cmd_build(
436
- skills_root: Path,
437
- out_dir: Path,
438
- overlay: str | None,
439
- agent: str | None = None,
440
- ) -> dict[str, Any]:
441
- skills_root, out_dir = validate_build_paths(skills_root, out_dir)
442
- shared_dir = skills_root / "shared"
443
- if not shared_dir.is_dir():
444
- raise FileNotFoundError(f"shared/ missing under {skills_root}")
445
- if agent is None:
446
- print(
447
- "WARNING: --agent missing, defaulting to claude-code (deprecated)",
448
- file=sys.stderr,
449
- )
450
- agent = "claude-code"
451
- if agent not in HARNESS_AGENTS:
452
- raise ValueError(f"unknown agent: {agent}")
453
- overlay_dir = skills_root / "overlays" / overlay if overlay else None
454
- if overlay and (not overlay_dir or not overlay_dir.is_dir()):
455
- raise FileNotFoundError(f"overlay not found: overlays/{overlay}")
456
- agent_overlay_dir = skills_root / "adapters" / agent / "skill-overlays"
457
- if not agent_overlay_dir.is_dir():
458
- agent_overlay_dir = None
459
- adapter_agents_dir = skills_root / "adapters" / agent / "agents"
460
-
461
- # §7.2: build entirely in a staging dir; out_dir is untouched until the
462
- # atomic swap. Never `shutil.rmtree(out_dir)` at build start.
463
- staging = out_dir.parent / f".{out_dir.name}.staging-{uuid.uuid4().hex[:8]}"
464
- if staging.exists():
465
- shutil.rmtree(staging)
466
- try:
467
- copied = copy_tree(skills_root, staging, agent)
468
- if overlay:
469
- copied.extend(copy_overlay_unique_skills(overlay_dir, staging))
470
- copied.extend(copy_overlay_extras(overlay_dir, staging))
471
- copied.extend(merge_overlay_skill_extras(overlay_dir, staging))
472
- if agent in AGENTS_WITH_CUSTOM_AGENTS:
473
- copied.extend(copy_adapter_agents(adapter_agents_dir, staging))
474
-
475
- header = synthesis_header(skills_root, overlay_dir, agent, agent_overlay_dir)
476
- processed: list[str] = []
477
- for skill_md in sorted(staging.glob("harness-*/SKILL.md")):
478
- ov = overlay_for_skill(overlay_dir, skill_md.parent.name) if overlay_dir else None
479
- agent_ov = (
480
- overlay_for_skill(agent_overlay_dir, skill_md.parent.name)
481
- if agent_overlay_dir
482
- else None
483
- )
484
- try:
485
- process_skill_md(skill_md, shared_dir, ov, header, agent_ov)
486
- except KeyError as exc:
487
- raise KeyError(
488
- f"overlay anchor not found: {exc.args[0]} ({skill_md})"
489
- ) from exc
490
- processed.append(str(skill_md.relative_to(staging)))
491
-
492
- for skill_md in sorted(staging.glob("harness-*/SKILL.md")):
493
- if INCLUDE_RE.search(skill_md.read_text(encoding="utf-8")):
494
- raise RuntimeError(f"include placeholder remains: {skill_md}")
495
-
496
- # deterministic build marker (no timestamp -> byte-identical builds)
497
- core_hash = core_content_hash(skills_root, overlay_dir, agent_overlay_dir)
498
- (staging / BUILD_MARKER).write_text(
499
- json.dumps(
500
- {
501
- "schemaVersion": 1,
502
- "overlay": overlay or "none",
503
- "agent": agent,
504
- "coreHash": core_hash,
505
- },
506
- ensure_ascii=False,
507
- indent=2,
508
- )
509
- + "\n",
510
- encoding="utf-8",
511
- newline="\n",
512
- )
513
- except Exception:
514
- # build failed: clean staging, leave out_dir completely untouched
515
- shutil.rmtree(staging, ignore_errors=True)
516
- raise
517
-
518
- # atomic swap: move old out aside (if a valid build), rename staging -> out
519
- old_backup = None
520
- if out_dir.exists():
521
- if (out_dir / BUILD_MARKER).is_file():
522
- old_backup = out_dir.parent / f".{out_dir.name}.old-{uuid.uuid4().hex[:8]}"
523
- os.replace(out_dir, old_backup)
524
- else:
525
- shutil.rmtree(staging, ignore_errors=True)
526
- raise ValueError(f"refusing to overwrite unmarked out_dir: {out_dir}")
527
- try:
528
- os.replace(staging, out_dir)
529
- except OSError:
530
- if old_backup is not None and old_backup.exists():
531
- os.replace(old_backup, out_dir)
532
- raise
533
- if old_backup is not None:
534
- shutil.rmtree(old_backup, ignore_errors=True)
535
-
536
- return {
537
- "ok": True,
538
- "action": "build",
539
- "skillsRoot": str(skills_root),
540
- "outDir": str(out_dir),
541
- "overlay": overlay,
542
- "agent": agent,
543
- "copied": copied,
544
- "processedSkills": processed,
545
- }
546
-
547
-
548
- def collect_files(root: Path) -> dict[str, str]:
549
- files: dict[str, str] = {}
550
- for path in sorted(root.rglob("*")):
551
- if path.is_file() and "__pycache__" not in path.parts:
552
- rel = path.relative_to(root).as_posix()
553
- files[rel] = sha256_file(path)
554
- return files
555
-
556
-
557
- def cmd_install(build_out: Path, project: Path, target: Path | None) -> dict[str, Any]:
558
- build_out = build_out.resolve()
559
- project = project.resolve()
560
- dest = (target or project / ".claude" / "skills").resolve()
561
- if not (build_out / BUILD_MARKER).is_file():
562
- raise ValueError(f"install source is not a marked harness build: {build_out}")
563
- backup: str | None = None
564
- staging = dest.parent / f".{dest.name}.staging-{uuid.uuid4().hex[:8]}"
565
- shutil.copytree(build_out, staging)
566
- if dest.exists() and any(dest.iterdir()):
567
- stamp = dt.datetime.now().strftime("%Y%m%d-%H%M%S")
568
- backup_path = dest.parent / f"skills-backup-{stamp}"
569
- os.replace(dest, backup_path)
570
- backup = str(backup_path)
571
- try:
572
- os.replace(staging, dest)
573
- except OSError:
574
- shutil.rmtree(staging, ignore_errors=True)
575
- if backup:
576
- os.replace(Path(backup), dest)
577
- raise
578
-
579
- agents_src = build_out / "agents"
580
- agents_dest = project / ".claude" / "agents"
581
- if agents_src.is_dir():
582
- agents_dest.mkdir(parents=True, exist_ok=True)
583
- for agent in agents_src.glob("*.md"):
584
- shutil.copy2(agent, agents_dest / agent.name)
585
-
586
- return {
587
- "ok": True,
588
- "action": "install",
589
- "from": str(build_out),
590
- "project": str(project),
591
- "target": str(dest),
592
- "backup": backup,
593
- "installedAt": now_iso(),
594
- }
595
-
596
-
597
- def cmd_diff(build_out: Path, project: Path, target: Path | None) -> dict[str, Any]:
598
- build_out = build_out.resolve()
599
- project = project.resolve()
600
- installed = (target or project / ".claude" / "skills").resolve()
601
- if not installed.is_dir():
602
- return {
603
- "ok": True,
604
- "action": "diff",
605
- "stale": True,
606
- "missingInstall": True,
607
- "outdated": [],
608
- "missing": [],
609
- "extra": [],
610
- }
611
-
612
- built = collect_files(build_out)
613
- current = collect_files(installed)
614
- outdated = [p for p, h in built.items() if p in current and current[p] != h]
615
- missing = [p for p in built if p not in current]
616
- extra = [p for p in current if p not in built]
617
- return {
618
- "ok": True,
619
- "action": "diff",
620
- "stale": bool(outdated or missing),
621
- "outdated": sorted(outdated),
622
- "missing": sorted(missing),
623
- "extra": sorted(extra),
624
- "comparedAt": now_iso(),
625
- }
626
-
627
-
628
- def build_parser() -> argparse.ArgumentParser:
629
- p = argparse.ArgumentParser(description="Harness skills deploy (build/install/diff)")
630
- sub = p.add_subparsers(dest="command", required=True)
631
-
632
- b = sub.add_parser("build", help="Synthesize core + overlay into output dir")
633
- b.add_argument("--skills-root", type=Path, required=True)
634
- b.add_argument("--out", type=Path, required=True)
635
- b.add_argument("--overlay")
636
- b.add_argument("--agent", choices=HARNESS_AGENTS)
637
- b.add_argument("--json", action="store_true")
638
-
639
- i = sub.add_parser("install", help="Install build output to project .claude/skills")
640
- i.add_argument("--from", dest="from_dir", type=Path, required=True)
641
- i.add_argument("--project", type=Path, required=True)
642
- i.add_argument("--target", type=Path)
643
- i.add_argument("--json", action="store_true")
644
-
645
- d = sub.add_parser("diff", help="Compare installed skills vs build output")
646
- d.add_argument("--from", dest="from_dir", type=Path, required=True)
647
- d.add_argument("--project", type=Path, required=True)
648
- d.add_argument("--target", type=Path)
649
- d.add_argument("--json", action="store_true")
650
- return p
651
-
652
-
653
- def main(argv: list[str] | None = None) -> int:
654
- args = build_parser().parse_args(argv)
655
- try:
656
- if args.command == "build":
657
- result = cmd_build(args.skills_root, args.out, args.overlay, args.agent)
658
- return emit_json(result) if args.json else 0
659
- if args.command == "install":
660
- result = cmd_install(args.from_dir, args.project, args.target)
661
- return emit_json(result) if args.json else 0
662
- if args.command == "diff":
663
- result = cmd_diff(args.from_dir, args.project, args.target)
664
- return emit_json(result) if args.json else 0
665
- except (FileNotFoundError, KeyError, RuntimeError, ValueError) as exc:
666
- if getattr(args, "json", False):
667
- return emit_json({"ok": False, "error": str(exc)}, ok=False)
668
- print(f"ERROR: {exc}", file=sys.stderr)
669
- return 1
670
- return 1
671
-
672
-
673
- if __name__ == "__main__":
674
- raise SystemExit(main())