@hunter-harness/workflow-harness 0.3.1 → 0.4.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (402) hide show
  1. package/harness/bundles/general/claude-code/.harness-build.json +1 -1
  2. package/harness/bundles/general/claude-code/harness-archive/SKILL.md +1 -1
  3. package/harness/bundles/general/claude-code/harness-archive/reference.md +30 -1
  4. package/harness/bundles/general/claude-code/harness-archive/templates/summary-data-template.json +1 -0
  5. package/harness/bundles/general/claude-code/harness-codebase-map/SKILL.md +1 -1
  6. package/harness/bundles/general/claude-code/harness-execute/SKILL.md +1 -1
  7. package/harness/bundles/general/claude-code/harness-knowledge-ingest/SKILL.md +1 -1
  8. package/harness/bundles/general/claude-code/harness-knowledge-query/SKILL.md +1 -1
  9. package/harness/bundles/general/claude-code/harness-plan/SKILL.md +1 -1
  10. package/harness/bundles/general/claude-code/harness-pull/SKILL.md +1 -1
  11. package/harness/bundles/general/claude-code/harness-push/SKILL.md +1 -1
  12. package/harness/bundles/general/claude-code/harness-review/SKILL.md +1 -1
  13. package/harness/bundles/general/claude-code/harness-run/SKILL.md +1 -1
  14. package/harness/bundles/general/claude-code/harness-submit/SKILL.md +1 -1
  15. package/harness/bundles/general/claude-code/harness-sync/SKILL.md +1 -1
  16. package/harness/bundles/general/claude-code/harness-test/SKILL.md +1 -1
  17. package/harness/bundles/general/claude-code/scripts/harness_archive.py +146 -8
  18. package/harness/bundles/general/claude-code/scripts/harness_deploy.py +1 -1
  19. package/harness/bundles/general/claude-code/scripts/harness_knowledge_candidates.py +538 -4
  20. package/harness/bundles/general/codebuddy/.harness-build.json +1 -1
  21. package/harness/bundles/general/codebuddy/harness-archive/SKILL.md +1 -1
  22. package/harness/bundles/general/codebuddy/harness-archive/reference.md +30 -1
  23. package/harness/bundles/general/codebuddy/harness-archive/templates/summary-data-template.json +1 -0
  24. package/harness/bundles/general/codebuddy/harness-codebase-map/SKILL.md +1 -1
  25. package/harness/bundles/general/codebuddy/harness-execute/SKILL.md +1 -1
  26. package/harness/bundles/general/codebuddy/harness-knowledge-ingest/SKILL.md +1 -1
  27. package/harness/bundles/general/codebuddy/harness-knowledge-query/SKILL.md +1 -1
  28. package/harness/bundles/general/codebuddy/harness-plan/SKILL.md +1 -1
  29. package/harness/bundles/general/codebuddy/harness-pull/SKILL.md +1 -1
  30. package/harness/bundles/general/codebuddy/harness-push/SKILL.md +1 -1
  31. package/harness/bundles/general/codebuddy/harness-review/SKILL.md +1 -1
  32. package/harness/bundles/general/codebuddy/harness-run/SKILL.md +1 -1
  33. package/harness/bundles/general/codebuddy/harness-submit/SKILL.md +1 -1
  34. package/harness/bundles/general/codebuddy/harness-sync/SKILL.md +1 -1
  35. package/harness/bundles/general/codebuddy/harness-test/SKILL.md +1 -1
  36. package/harness/bundles/general/codebuddy/scripts/harness_archive.py +146 -8
  37. package/harness/bundles/general/codebuddy/scripts/harness_deploy.py +1 -1
  38. package/harness/bundles/general/codebuddy/scripts/harness_knowledge_candidates.py +538 -4
  39. package/harness/bundles/general/codex/.harness-build.json +1 -1
  40. package/harness/bundles/general/codex/harness-archive/SKILL.md +1 -1
  41. package/harness/bundles/general/codex/harness-archive/reference.md +30 -1
  42. package/harness/bundles/general/codex/harness-archive/templates/summary-data-template.json +1 -0
  43. package/harness/bundles/general/codex/harness-codebase-map/SKILL.md +1 -1
  44. package/harness/bundles/general/codex/harness-execute/SKILL.md +1 -1
  45. package/harness/bundles/general/codex/harness-knowledge-ingest/SKILL.md +1 -1
  46. package/harness/bundles/general/codex/harness-knowledge-query/SKILL.md +1 -1
  47. package/harness/bundles/general/codex/harness-plan/SKILL.md +1 -1
  48. package/harness/bundles/general/codex/harness-pull/SKILL.md +1 -1
  49. package/harness/bundles/general/codex/harness-push/SKILL.md +1 -1
  50. package/harness/bundles/general/codex/harness-review/SKILL.md +1 -1
  51. package/harness/bundles/general/codex/harness-run/SKILL.md +1 -1
  52. package/harness/bundles/general/codex/harness-submit/SKILL.md +1 -1
  53. package/harness/bundles/general/codex/harness-sync/SKILL.md +1 -1
  54. package/harness/bundles/general/codex/harness-test/SKILL.md +1 -1
  55. package/harness/bundles/general/codex/scripts/harness_archive.py +146 -8
  56. package/harness/bundles/general/codex/scripts/harness_deploy.py +1 -1
  57. package/harness/bundles/general/codex/scripts/harness_knowledge_candidates.py +538 -4
  58. package/harness/bundles/general/cursor/.harness-build.json +1 -1
  59. package/harness/bundles/general/cursor/harness-archive/SKILL.md +1 -1
  60. package/harness/bundles/general/cursor/harness-archive/reference.md +30 -1
  61. package/harness/bundles/general/cursor/harness-archive/templates/summary-data-template.json +1 -0
  62. package/harness/bundles/general/cursor/harness-codebase-map/SKILL.md +1 -1
  63. package/harness/bundles/general/cursor/harness-execute/SKILL.md +1 -1
  64. package/harness/bundles/general/cursor/harness-knowledge-ingest/SKILL.md +1 -1
  65. package/harness/bundles/general/cursor/harness-knowledge-query/SKILL.md +1 -1
  66. package/harness/bundles/general/cursor/harness-plan/SKILL.md +1 -1
  67. package/harness/bundles/general/cursor/harness-pull/SKILL.md +1 -1
  68. package/harness/bundles/general/cursor/harness-push/SKILL.md +1 -1
  69. package/harness/bundles/general/cursor/harness-review/SKILL.md +1 -1
  70. package/harness/bundles/general/cursor/harness-run/SKILL.md +1 -1
  71. package/harness/bundles/general/cursor/harness-submit/SKILL.md +1 -1
  72. package/harness/bundles/general/cursor/harness-sync/SKILL.md +1 -1
  73. package/harness/bundles/general/cursor/harness-test/SKILL.md +1 -1
  74. package/harness/bundles/general/cursor/scripts/harness_archive.py +146 -8
  75. package/harness/bundles/general/cursor/scripts/harness_deploy.py +1 -1
  76. package/harness/bundles/general/cursor/scripts/harness_knowledge_candidates.py +538 -4
  77. package/harness/bundles/general/pi/.harness-build.json +6 -0
  78. package/harness/bundles/general/pi/CONTEXT.md +98 -0
  79. package/harness/bundles/general/pi/README.md +478 -0
  80. package/harness/bundles/general/pi/contracts/build-profile-v3.schema.json +302 -0
  81. package/harness/bundles/general/pi/contracts/ci-metrics.schema.json +36 -0
  82. package/harness/bundles/general/pi/contracts/doctor-capability.schema.json +43 -0
  83. package/harness/bundles/general/pi/contracts/external-platform-observation.schema.json +62 -0
  84. package/harness/bundles/general/pi/contracts/fixtures/managed-execution.json +341 -0
  85. package/harness/bundles/general/pi/contracts/process-identity.schema.json +132 -0
  86. package/harness/bundles/general/pi/contracts/run-session.schema.json +142 -0
  87. package/harness/bundles/general/pi/contracts/service-retirement-receipt.schema.json +85 -0
  88. package/harness/bundles/general/pi/contracts/service-session.schema.json +147 -0
  89. package/harness/bundles/general/pi/contracts/workflow-policy.json +574 -0
  90. package/harness/bundles/general/pi/harness-archive/SKILL.md +322 -0
  91. package/harness/bundles/general/pi/harness-archive/checklist.md +71 -0
  92. package/harness/bundles/general/pi/harness-archive/reference.md +150 -0
  93. package/harness/bundles/general/pi/harness-archive/scripts/gen-manifest.ps1 +31 -0
  94. package/harness/bundles/general/pi/harness-archive/templates/summary-data-template.json +218 -0
  95. package/harness/bundles/general/pi/harness-codebase-map/SKILL.md +116 -0
  96. package/harness/bundles/general/pi/harness-codebase-map/checklist.md +126 -0
  97. package/harness/bundles/general/pi/harness-codebase-map/reference.md +364 -0
  98. package/harness/bundles/general/pi/harness-codebase-map/templates/ARCHITECTURE.md +57 -0
  99. package/harness/bundles/general/pi/harness-codebase-map/templates/CONCERNS.md +49 -0
  100. package/harness/bundles/general/pi/harness-codebase-map/templates/CONVENTIONS.md +57 -0
  101. package/harness/bundles/general/pi/harness-codebase-map/templates/INTEGRATIONS.md +52 -0
  102. package/harness/bundles/general/pi/harness-codebase-map/templates/STACK.md +55 -0
  103. package/harness/bundles/general/pi/harness-codebase-map/templates/STRUCTURE.md +69 -0
  104. package/harness/bundles/general/pi/harness-codebase-map/templates/TESTING.md +64 -0
  105. package/harness/bundles/general/pi/harness-codebase-map/templates/map-manifest.schema.json +73 -0
  106. package/harness/bundles/general/pi/harness-codebase-map/templates/map-summary.md +64 -0
  107. package/harness/bundles/general/pi/harness-execute/SKILL.md +170 -0
  108. package/harness/bundles/general/pi/harness-knowledge-ingest/SKILL.md +103 -0
  109. package/harness/bundles/general/pi/harness-knowledge-query/SKILL.md +97 -0
  110. package/harness/bundles/general/pi/harness-plan/SKILL.md +158 -0
  111. package/harness/bundles/general/pi/harness-plan/checklist.md +243 -0
  112. package/harness/bundles/general/pi/harness-plan/protocols.md +133 -0
  113. package/harness/bundles/general/pi/harness-plan/reference.md +468 -0
  114. package/harness/bundles/general/pi/harness-pull/SKILL.md +55 -0
  115. package/harness/bundles/general/pi/harness-push/SKILL.md +83 -0
  116. package/harness/bundles/general/pi/harness-review/SKILL.md +175 -0
  117. package/harness/bundles/general/pi/harness-review/checklist.md +124 -0
  118. package/harness/bundles/general/pi/harness-review/protocols.md +69 -0
  119. package/harness/bundles/general/pi/harness-review/reference.md +114 -0
  120. package/harness/bundles/general/pi/harness-run/SKILL.md +188 -0
  121. package/harness/bundles/general/pi/harness-run/checklist.md +279 -0
  122. package/harness/bundles/general/pi/harness-run/protocols.md +141 -0
  123. package/harness/bundles/general/pi/harness-run/reference.md +886 -0
  124. package/harness/bundles/general/pi/harness-submit/SKILL.md +182 -0
  125. package/harness/bundles/general/pi/harness-submit/checklist.md +452 -0
  126. package/harness/bundles/general/pi/harness-submit/reference.md +152 -0
  127. package/harness/bundles/general/pi/harness-sync/SKILL.md +72 -0
  128. package/harness/bundles/general/pi/harness-sync/reference.md +176 -0
  129. package/harness/bundles/general/pi/harness-test/SKILL.md +250 -0
  130. package/harness/bundles/general/pi/harness-test/checklist.md +359 -0
  131. package/harness/bundles/general/pi/harness-test/pitfalls-java.md +14 -0
  132. package/harness/bundles/general/pi/harness-test/pitfalls.md +307 -0
  133. package/harness/bundles/general/pi/harness-test/reference.md +880 -0
  134. package/harness/bundles/general/pi/harness-test/scripts/runtime-helpers.mjs +216 -0
  135. package/harness/bundles/general/pi/protocols/archive-report-protocol.md +196 -0
  136. package/harness/bundles/general/pi/protocols/ci-layering-protocol.md +22 -0
  137. package/harness/bundles/general/pi/protocols/evidence-based-reporting-protocol.md +134 -0
  138. package/harness/bundles/general/pi/protocols/execution-session-protocol.md +52 -0
  139. package/harness/bundles/general/pi/protocols/external-platform-protocol.md +27 -0
  140. package/harness/bundles/general/pi/protocols/ledger-protocol.md +365 -0
  141. package/harness/bundles/general/pi/protocols/memory-closeout-protocol.md +21 -0
  142. package/harness/bundles/general/pi/protocols/model-routing-protocol.md +22 -0
  143. package/harness/bundles/general/pi/protocols/powershell-protocol.md +238 -0
  144. package/harness/bundles/general/pi/protocols/registry-governance-protocol.md +31 -0
  145. package/harness/bundles/general/pi/protocols/report-pipeline-protocol.md +172 -0
  146. package/harness/bundles/general/pi/protocols/sensitive-info-protocol.md +110 -0
  147. package/harness/bundles/general/pi/protocols/state-layout-protocol.md +209 -0
  148. package/harness/bundles/general/pi/protocols/submit-protocol.md +78 -0
  149. package/harness/bundles/general/pi/protocols/verification-graph-protocol.md +32 -0
  150. package/harness/bundles/general/pi/scripts/harness_adoption_metrics.py +391 -0
  151. package/harness/bundles/general/pi/scripts/harness_apidoc.py +53 -0
  152. package/harness/bundles/general/pi/scripts/harness_archive.py +11345 -0
  153. package/harness/bundles/general/pi/scripts/harness_change.py +1626 -0
  154. package/harness/bundles/general/pi/scripts/harness_check_gate.py +113 -0
  155. package/harness/bundles/general/pi/scripts/harness_context.py +1774 -0
  156. package/harness/bundles/general/pi/scripts/harness_deploy.py +968 -0
  157. package/harness/bundles/general/pi/scripts/harness_efficiency.py +443 -0
  158. package/harness/bundles/general/pi/scripts/harness_environment.py +1690 -0
  159. package/harness/bundles/general/pi/scripts/harness_events.py +2234 -0
  160. package/harness/bundles/general/pi/scripts/harness_events_sync.py +1425 -0
  161. package/harness/bundles/general/pi/scripts/harness_execution_contracts.py +596 -0
  162. package/harness/bundles/general/pi/scripts/harness_fixback.py +1975 -0
  163. package/harness/bundles/general/pi/scripts/harness_gate.py +3816 -0
  164. package/harness/bundles/general/pi/scripts/harness_headless.py +37 -0
  165. package/harness/bundles/general/pi/scripts/harness_integration.py +2564 -0
  166. package/harness/bundles/general/pi/scripts/harness_knowledge_candidates.py +796 -0
  167. package/harness/bundles/general/pi/scripts/harness_ledger.py +3556 -0
  168. package/harness/bundles/general/pi/scripts/harness_migration_head.py +220 -0
  169. package/harness/bundles/general/pi/scripts/harness_orchestration.py +344 -0
  170. package/harness/bundles/general/pi/scripts/harness_paths.py +676 -0
  171. package/harness/bundles/general/pi/scripts/harness_phase.py +1726 -0
  172. package/harness/bundles/general/pi/scripts/harness_plan_aggregate.py +249 -0
  173. package/harness/bundles/general/pi/scripts/harness_plan_finalize.py +1016 -0
  174. package/harness/bundles/general/pi/scripts/harness_preflight.py +650 -0
  175. package/harness/bundles/general/pi/scripts/harness_process.py +1065 -0
  176. package/harness/bundles/general/pi/scripts/harness_profile.py +1817 -0
  177. package/harness/bundles/general/pi/scripts/harness_report_model.py +442 -0
  178. package/harness/bundles/general/pi/scripts/harness_retry.py +175 -0
  179. package/harness/bundles/general/pi/scripts/harness_review.py +631 -0
  180. package/harness/bundles/general/pi/scripts/harness_runtime.py +2243 -0
  181. package/harness/bundles/general/pi/scripts/harness_service.py +3355 -0
  182. package/harness/bundles/general/pi/scripts/harness_state.py +365 -0
  183. package/harness/bundles/general/pi/scripts/harness_sync.py +407 -0
  184. package/harness/bundles/general/pi/scripts/harness_test_cleanup.py +175 -0
  185. package/harness/bundles/general/pi/scripts/harness_test_guard.py +1899 -0
  186. package/harness/bundles/general/pi/scripts/harness_test_runner.py +1586 -0
  187. package/harness/bundles/general/pi/scripts/harness_verification.py +593 -0
  188. package/harness/bundles/general/pi/scripts/harness_workflow_policy.py +266 -0
  189. package/harness/bundles/java/claude-code/.harness-build.json +1 -1
  190. package/harness/bundles/java/claude-code/harness-apidoc/SKILL.md +1 -1
  191. package/harness/bundles/java/claude-code/harness-archive/SKILL.md +1 -1
  192. package/harness/bundles/java/claude-code/harness-archive/reference.md +30 -1
  193. package/harness/bundles/java/claude-code/harness-archive/templates/summary-data-template.json +1 -0
  194. package/harness/bundles/java/claude-code/harness-codebase-map/SKILL.md +1 -1
  195. package/harness/bundles/java/claude-code/harness-execute/SKILL.md +1 -1
  196. package/harness/bundles/java/claude-code/harness-knowledge-ingest/SKILL.md +1 -1
  197. package/harness/bundles/java/claude-code/harness-knowledge-query/SKILL.md +1 -1
  198. package/harness/bundles/java/claude-code/harness-package/SKILL.md +1 -1
  199. package/harness/bundles/java/claude-code/harness-plan/SKILL.md +1 -1
  200. package/harness/bundles/java/claude-code/harness-pull/SKILL.md +1 -1
  201. package/harness/bundles/java/claude-code/harness-push/SKILL.md +1 -1
  202. package/harness/bundles/java/claude-code/harness-review/SKILL.md +1 -1
  203. package/harness/bundles/java/claude-code/harness-run/SKILL.md +1 -1
  204. package/harness/bundles/java/claude-code/harness-submit/SKILL.md +1 -1
  205. package/harness/bundles/java/claude-code/harness-sync/SKILL.md +1 -1
  206. package/harness/bundles/java/claude-code/harness-test/SKILL.md +1 -1
  207. package/harness/bundles/java/claude-code/scripts/harness_archive.py +146 -8
  208. package/harness/bundles/java/claude-code/scripts/harness_deploy.py +1 -1
  209. package/harness/bundles/java/claude-code/scripts/harness_knowledge_candidates.py +538 -4
  210. package/harness/bundles/java/codebuddy/.harness-build.json +1 -1
  211. package/harness/bundles/java/codebuddy/harness-apidoc/SKILL.md +1 -1
  212. package/harness/bundles/java/codebuddy/harness-archive/SKILL.md +1 -1
  213. package/harness/bundles/java/codebuddy/harness-archive/reference.md +30 -1
  214. package/harness/bundles/java/codebuddy/harness-archive/templates/summary-data-template.json +1 -0
  215. package/harness/bundles/java/codebuddy/harness-codebase-map/SKILL.md +1 -1
  216. package/harness/bundles/java/codebuddy/harness-execute/SKILL.md +1 -1
  217. package/harness/bundles/java/codebuddy/harness-knowledge-ingest/SKILL.md +1 -1
  218. package/harness/bundles/java/codebuddy/harness-knowledge-query/SKILL.md +1 -1
  219. package/harness/bundles/java/codebuddy/harness-package/SKILL.md +1 -1
  220. package/harness/bundles/java/codebuddy/harness-plan/SKILL.md +1 -1
  221. package/harness/bundles/java/codebuddy/harness-pull/SKILL.md +1 -1
  222. package/harness/bundles/java/codebuddy/harness-push/SKILL.md +1 -1
  223. package/harness/bundles/java/codebuddy/harness-review/SKILL.md +1 -1
  224. package/harness/bundles/java/codebuddy/harness-run/SKILL.md +1 -1
  225. package/harness/bundles/java/codebuddy/harness-submit/SKILL.md +1 -1
  226. package/harness/bundles/java/codebuddy/harness-sync/SKILL.md +1 -1
  227. package/harness/bundles/java/codebuddy/harness-test/SKILL.md +1 -1
  228. package/harness/bundles/java/codebuddy/scripts/harness_archive.py +146 -8
  229. package/harness/bundles/java/codebuddy/scripts/harness_deploy.py +1 -1
  230. package/harness/bundles/java/codebuddy/scripts/harness_knowledge_candidates.py +538 -4
  231. package/harness/bundles/java/codex/.harness-build.json +1 -1
  232. package/harness/bundles/java/codex/harness-apidoc/SKILL.md +1 -1
  233. package/harness/bundles/java/codex/harness-archive/SKILL.md +1 -1
  234. package/harness/bundles/java/codex/harness-archive/reference.md +30 -1
  235. package/harness/bundles/java/codex/harness-archive/templates/summary-data-template.json +1 -0
  236. package/harness/bundles/java/codex/harness-codebase-map/SKILL.md +1 -1
  237. package/harness/bundles/java/codex/harness-execute/SKILL.md +1 -1
  238. package/harness/bundles/java/codex/harness-knowledge-ingest/SKILL.md +1 -1
  239. package/harness/bundles/java/codex/harness-knowledge-query/SKILL.md +1 -1
  240. package/harness/bundles/java/codex/harness-package/SKILL.md +1 -1
  241. package/harness/bundles/java/codex/harness-plan/SKILL.md +1 -1
  242. package/harness/bundles/java/codex/harness-pull/SKILL.md +1 -1
  243. package/harness/bundles/java/codex/harness-push/SKILL.md +1 -1
  244. package/harness/bundles/java/codex/harness-review/SKILL.md +1 -1
  245. package/harness/bundles/java/codex/harness-run/SKILL.md +1 -1
  246. package/harness/bundles/java/codex/harness-submit/SKILL.md +1 -1
  247. package/harness/bundles/java/codex/harness-sync/SKILL.md +1 -1
  248. package/harness/bundles/java/codex/harness-test/SKILL.md +1 -1
  249. package/harness/bundles/java/codex/scripts/harness_archive.py +146 -8
  250. package/harness/bundles/java/codex/scripts/harness_deploy.py +1 -1
  251. package/harness/bundles/java/codex/scripts/harness_knowledge_candidates.py +538 -4
  252. package/harness/bundles/java/cursor/.harness-build.json +1 -1
  253. package/harness/bundles/java/cursor/harness-apidoc/SKILL.md +1 -1
  254. package/harness/bundles/java/cursor/harness-archive/SKILL.md +1 -1
  255. package/harness/bundles/java/cursor/harness-archive/reference.md +30 -1
  256. package/harness/bundles/java/cursor/harness-archive/templates/summary-data-template.json +1 -0
  257. package/harness/bundles/java/cursor/harness-codebase-map/SKILL.md +1 -1
  258. package/harness/bundles/java/cursor/harness-execute/SKILL.md +1 -1
  259. package/harness/bundles/java/cursor/harness-knowledge-ingest/SKILL.md +1 -1
  260. package/harness/bundles/java/cursor/harness-knowledge-query/SKILL.md +1 -1
  261. package/harness/bundles/java/cursor/harness-package/SKILL.md +1 -1
  262. package/harness/bundles/java/cursor/harness-plan/SKILL.md +1 -1
  263. package/harness/bundles/java/cursor/harness-pull/SKILL.md +1 -1
  264. package/harness/bundles/java/cursor/harness-push/SKILL.md +1 -1
  265. package/harness/bundles/java/cursor/harness-review/SKILL.md +1 -1
  266. package/harness/bundles/java/cursor/harness-run/SKILL.md +1 -1
  267. package/harness/bundles/java/cursor/harness-submit/SKILL.md +1 -1
  268. package/harness/bundles/java/cursor/harness-sync/SKILL.md +1 -1
  269. package/harness/bundles/java/cursor/harness-test/SKILL.md +1 -1
  270. package/harness/bundles/java/cursor/scripts/harness_archive.py +146 -8
  271. package/harness/bundles/java/cursor/scripts/harness_deploy.py +1 -1
  272. package/harness/bundles/java/cursor/scripts/harness_knowledge_candidates.py +538 -4
  273. package/harness/bundles/java/pi/.harness-build.json +6 -0
  274. package/harness/bundles/java/pi/CONTEXT.md +98 -0
  275. package/harness/bundles/java/pi/README.md +478 -0
  276. package/harness/bundles/java/pi/contracts/build-profile-v3.schema.json +302 -0
  277. package/harness/bundles/java/pi/contracts/ci-metrics.schema.json +36 -0
  278. package/harness/bundles/java/pi/contracts/doctor-capability.schema.json +43 -0
  279. package/harness/bundles/java/pi/contracts/external-platform-observation.schema.json +62 -0
  280. package/harness/bundles/java/pi/contracts/fixtures/managed-execution.json +341 -0
  281. package/harness/bundles/java/pi/contracts/process-identity.schema.json +132 -0
  282. package/harness/bundles/java/pi/contracts/run-session.schema.json +142 -0
  283. package/harness/bundles/java/pi/contracts/service-retirement-receipt.schema.json +85 -0
  284. package/harness/bundles/java/pi/contracts/service-session.schema.json +147 -0
  285. package/harness/bundles/java/pi/contracts/workflow-policy.json +574 -0
  286. package/harness/bundles/java/pi/harness-apidoc/SKILL.md +97 -0
  287. package/harness/bundles/java/pi/harness-apidoc/checklist.md +142 -0
  288. package/harness/bundles/java/pi/harness-apidoc/reference.md +233 -0
  289. package/harness/bundles/java/pi/harness-archive/SKILL.md +322 -0
  290. package/harness/bundles/java/pi/harness-archive/checklist.md +71 -0
  291. package/harness/bundles/java/pi/harness-archive/reference.md +150 -0
  292. package/harness/bundles/java/pi/harness-archive/scripts/gen-manifest.ps1 +31 -0
  293. package/harness/bundles/java/pi/harness-archive/templates/summary-data-template.json +218 -0
  294. package/harness/bundles/java/pi/harness-codebase-map/SKILL.md +116 -0
  295. package/harness/bundles/java/pi/harness-codebase-map/checklist.md +126 -0
  296. package/harness/bundles/java/pi/harness-codebase-map/reference.md +364 -0
  297. package/harness/bundles/java/pi/harness-codebase-map/templates/ARCHITECTURE.md +57 -0
  298. package/harness/bundles/java/pi/harness-codebase-map/templates/CONCERNS.md +49 -0
  299. package/harness/bundles/java/pi/harness-codebase-map/templates/CONVENTIONS.md +57 -0
  300. package/harness/bundles/java/pi/harness-codebase-map/templates/INTEGRATIONS.md +52 -0
  301. package/harness/bundles/java/pi/harness-codebase-map/templates/STACK.md +55 -0
  302. package/harness/bundles/java/pi/harness-codebase-map/templates/STRUCTURE.md +69 -0
  303. package/harness/bundles/java/pi/harness-codebase-map/templates/TESTING.md +64 -0
  304. package/harness/bundles/java/pi/harness-codebase-map/templates/map-manifest.schema.json +73 -0
  305. package/harness/bundles/java/pi/harness-codebase-map/templates/map-summary.md +64 -0
  306. package/harness/bundles/java/pi/harness-execute/SKILL.md +170 -0
  307. package/harness/bundles/java/pi/harness-knowledge-ingest/SKILL.md +103 -0
  308. package/harness/bundles/java/pi/harness-knowledge-query/SKILL.md +97 -0
  309. package/harness/bundles/java/pi/harness-package/SKILL.md +94 -0
  310. package/harness/bundles/java/pi/harness-package/checklist.md +322 -0
  311. package/harness/bundles/java/pi/harness-package/reference.md +210 -0
  312. package/harness/bundles/java/pi/harness-plan/SKILL.md +158 -0
  313. package/harness/bundles/java/pi/harness-plan/checklist.md +243 -0
  314. package/harness/bundles/java/pi/harness-plan/protocols.md +133 -0
  315. package/harness/bundles/java/pi/harness-plan/reference.md +468 -0
  316. package/harness/bundles/java/pi/harness-pull/SKILL.md +55 -0
  317. package/harness/bundles/java/pi/harness-push/SKILL.md +83 -0
  318. package/harness/bundles/java/pi/harness-review/SKILL.md +175 -0
  319. package/harness/bundles/java/pi/harness-review/checklist.md +124 -0
  320. package/harness/bundles/java/pi/harness-review/protocols.md +69 -0
  321. package/harness/bundles/java/pi/harness-review/reference.md +114 -0
  322. package/harness/bundles/java/pi/harness-run/SKILL.md +206 -0
  323. package/harness/bundles/java/pi/harness-run/checklist.md +252 -0
  324. package/harness/bundles/java/pi/harness-run/protocols.md +141 -0
  325. package/harness/bundles/java/pi/harness-run/reference.md +820 -0
  326. package/harness/bundles/java/pi/harness-submit/SKILL.md +189 -0
  327. package/harness/bundles/java/pi/harness-submit/checklist.md +452 -0
  328. package/harness/bundles/java/pi/harness-submit/reference.md +152 -0
  329. package/harness/bundles/java/pi/harness-sync/SKILL.md +72 -0
  330. package/harness/bundles/java/pi/harness-sync/reference.md +176 -0
  331. package/harness/bundles/java/pi/harness-test/SKILL.md +264 -0
  332. package/harness/bundles/java/pi/harness-test/checklist.md +320 -0
  333. package/harness/bundles/java/pi/harness-test/pitfalls-java.md +16 -0
  334. package/harness/bundles/java/pi/harness-test/pitfalls.md +307 -0
  335. package/harness/bundles/java/pi/harness-test/reference.md +792 -0
  336. package/harness/bundles/java/pi/harness-test/scripts/runtime-helpers.mjs +216 -0
  337. package/harness/bundles/java/pi/protocols/archive-report-protocol.md +196 -0
  338. package/harness/bundles/java/pi/protocols/ci-layering-protocol.md +22 -0
  339. package/harness/bundles/java/pi/protocols/evidence-based-reporting-protocol.md +134 -0
  340. package/harness/bundles/java/pi/protocols/execution-session-protocol.md +52 -0
  341. package/harness/bundles/java/pi/protocols/external-platform-protocol.md +27 -0
  342. package/harness/bundles/java/pi/protocols/ledger-protocol.md +365 -0
  343. package/harness/bundles/java/pi/protocols/memory-closeout-protocol.md +21 -0
  344. package/harness/bundles/java/pi/protocols/model-routing-protocol.md +22 -0
  345. package/harness/bundles/java/pi/protocols/powershell-protocol.md +238 -0
  346. package/harness/bundles/java/pi/protocols/registry-governance-protocol.md +31 -0
  347. package/harness/bundles/java/pi/protocols/report-pipeline-protocol.md +172 -0
  348. package/harness/bundles/java/pi/protocols/sensitive-info-protocol.md +110 -0
  349. package/harness/bundles/java/pi/protocols/state-layout-protocol.md +209 -0
  350. package/harness/bundles/java/pi/protocols/submit-protocol.md +78 -0
  351. package/harness/bundles/java/pi/protocols/verification-graph-protocol.md +32 -0
  352. package/harness/bundles/java/pi/scripts/harness_adoption_metrics.py +391 -0
  353. package/harness/bundles/java/pi/scripts/harness_apidoc.py +53 -0
  354. package/harness/bundles/java/pi/scripts/harness_archive.py +11345 -0
  355. package/harness/bundles/java/pi/scripts/harness_change.py +1626 -0
  356. package/harness/bundles/java/pi/scripts/harness_check_gate.py +113 -0
  357. package/harness/bundles/java/pi/scripts/harness_context.py +1774 -0
  358. package/harness/bundles/java/pi/scripts/harness_deploy.py +968 -0
  359. package/harness/bundles/java/pi/scripts/harness_efficiency.py +443 -0
  360. package/harness/bundles/java/pi/scripts/harness_environment.py +1690 -0
  361. package/harness/bundles/java/pi/scripts/harness_events.py +2234 -0
  362. package/harness/bundles/java/pi/scripts/harness_events_sync.py +1425 -0
  363. package/harness/bundles/java/pi/scripts/harness_execution_contracts.py +596 -0
  364. package/harness/bundles/java/pi/scripts/harness_fixback.py +1975 -0
  365. package/harness/bundles/java/pi/scripts/harness_gate.py +3816 -0
  366. package/harness/bundles/java/pi/scripts/harness_headless.py +37 -0
  367. package/harness/bundles/java/pi/scripts/harness_integration.py +2564 -0
  368. package/harness/bundles/java/pi/scripts/harness_knowledge_candidates.py +796 -0
  369. package/harness/bundles/java/pi/scripts/harness_ledger.py +3556 -0
  370. package/harness/bundles/java/pi/scripts/harness_migration_head.py +220 -0
  371. package/harness/bundles/java/pi/scripts/harness_orchestration.py +344 -0
  372. package/harness/bundles/java/pi/scripts/harness_paths.py +676 -0
  373. package/harness/bundles/java/pi/scripts/harness_phase.py +1726 -0
  374. package/harness/bundles/java/pi/scripts/harness_plan_aggregate.py +249 -0
  375. package/harness/bundles/java/pi/scripts/harness_plan_finalize.py +1016 -0
  376. package/harness/bundles/java/pi/scripts/harness_preflight.py +650 -0
  377. package/harness/bundles/java/pi/scripts/harness_process.py +1065 -0
  378. package/harness/bundles/java/pi/scripts/harness_profile.py +1817 -0
  379. package/harness/bundles/java/pi/scripts/harness_report_model.py +442 -0
  380. package/harness/bundles/java/pi/scripts/harness_retry.py +175 -0
  381. package/harness/bundles/java/pi/scripts/harness_review.py +631 -0
  382. package/harness/bundles/java/pi/scripts/harness_runtime.py +2243 -0
  383. package/harness/bundles/java/pi/scripts/harness_service.py +3355 -0
  384. package/harness/bundles/java/pi/scripts/harness_state.py +365 -0
  385. package/harness/bundles/java/pi/scripts/harness_sync.py +407 -0
  386. package/harness/bundles/java/pi/scripts/harness_test_cleanup.py +175 -0
  387. package/harness/bundles/java/pi/scripts/harness_test_guard.py +1899 -0
  388. package/harness/bundles/java/pi/scripts/harness_test_runner.py +1586 -0
  389. package/harness/bundles/java/pi/scripts/harness_verification.py +593 -0
  390. package/harness/bundles/java/pi/scripts/harness_workflow_policy.py +266 -0
  391. package/harness/manifests/general/claude-code.json +19 -19
  392. package/harness/manifests/general/codebuddy.json +19 -19
  393. package/harness/manifests/general/codex.json +19 -19
  394. package/harness/manifests/general/cursor.json +19 -19
  395. package/harness/manifests/general/pi.json +475 -0
  396. package/harness/manifests/java/claude-code.json +21 -21
  397. package/harness/manifests/java/codebuddy.json +21 -21
  398. package/harness/manifests/java/codex.json +21 -21
  399. package/harness/manifests/java/cursor.json +21 -21
  400. package/harness/manifests/java/pi.json +499 -0
  401. package/hunter-workflow-family.json +2 -2
  402. package/package.json +1 -1
@@ -0,0 +1,341 @@
1
+ {
2
+ "schemaVersion": 1,
3
+ "corpusHash": "sha256:31fe3f111d35e37b7c0f067d2757d2e1b7bf7969fcee81f66276e87b321680d5",
4
+ "fixtures": [
5
+ {
6
+ "id": "process-valid-complete",
7
+ "contract": "process-identity",
8
+ "valid": true,
9
+ "payload": {
10
+ "schemaVersion": 1,
11
+ "pid": 4200,
12
+ "alive": true,
13
+ "createdAt": "2026-07-31T12:00:00Z",
14
+ "executable": "C:\\Python\\python.exe",
15
+ "argvHash": "sha256:aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
16
+ "workingDirectory": "C:\\工作区\\managed run",
17
+ "parentIdentity": {
18
+ "pid": 4100,
19
+ "createdAt": "2026-07-31T11:59:59Z",
20
+ "executable": "C:\\PowerShell\\pwsh.exe"
21
+ },
22
+ "ownerTokenHash": "sha256:bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb",
23
+ "treeIdentity": {
24
+ "platform": "WINDOWS",
25
+ "proofKind": "NAMED_JOB",
26
+ "memberPids": [4200, 4210],
27
+ "complete": true
28
+ },
29
+ "fieldProvenance": {
30
+ "pid": "OBSERVED",
31
+ "createdAt": "OBSERVED",
32
+ "executable": "OBSERVED",
33
+ "argvHash": "ATTESTED",
34
+ "workingDirectory": "ATTESTED",
35
+ "parentIdentity": "OBSERVED",
36
+ "ownerTokenHash": "ATTESTED",
37
+ "treeIdentity": "OBSERVED"
38
+ },
39
+ "capabilities": {
40
+ "canObserveCreateTime": true,
41
+ "canObserveExecutable": true,
42
+ "canObserveArgv": false,
43
+ "canObserveWorkingDirectory": false,
44
+ "canObserveParent": true,
45
+ "canEnumerateTree": true,
46
+ "canVerifyOwnership": true
47
+ }
48
+ }
49
+ },
50
+ {
51
+ "id": "process-invalid-self-attested-pid",
52
+ "contract": "process-identity",
53
+ "valid": false,
54
+ "payload": {
55
+ "schemaVersion": 1,
56
+ "pid": 4200,
57
+ "alive": true,
58
+ "createdAt": null,
59
+ "executable": null,
60
+ "argvHash": null,
61
+ "workingDirectory": null,
62
+ "parentIdentity": null,
63
+ "ownerTokenHash": null,
64
+ "treeIdentity": null,
65
+ "fieldProvenance": {
66
+ "pid": "ATTESTED",
67
+ "createdAt": "UNAVAILABLE",
68
+ "executable": "UNAVAILABLE",
69
+ "argvHash": "UNAVAILABLE",
70
+ "workingDirectory": "UNAVAILABLE",
71
+ "parentIdentity": "UNAVAILABLE",
72
+ "ownerTokenHash": "UNAVAILABLE",
73
+ "treeIdentity": "UNAVAILABLE"
74
+ },
75
+ "capabilities": {
76
+ "canObserveCreateTime": false,
77
+ "canObserveExecutable": false,
78
+ "canObserveArgv": false,
79
+ "canObserveWorkingDirectory": false,
80
+ "canObserveParent": false,
81
+ "canEnumerateTree": false,
82
+ "canVerifyOwnership": false
83
+ }
84
+ }
85
+ },
86
+ {
87
+ "id": "run-valid-ok",
88
+ "contract": "run-session",
89
+ "valid": true,
90
+ "payload": {
91
+ "schemaVersion": 1,
92
+ "sessionId": "run-valid-ok",
93
+ "status": "OK",
94
+ "reasonCode": "CHILD_EXIT_ZERO",
95
+ "exitCode": 0,
96
+ "processIdentity": null,
97
+ "heartbeat": null,
98
+ "logs": {
99
+ "stdout": {
100
+ "cursor": 12,
101
+ "rawDigest": "sha256:cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc",
102
+ "decodeStatus": "OK"
103
+ },
104
+ "stderr": {
105
+ "cursor": 0,
106
+ "rawDigest": "sha256:dddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddd",
107
+ "decodeStatus": "OK"
108
+ }
109
+ },
110
+ "cleanup": {
111
+ "complete": true,
112
+ "reasonCode": null
113
+ },
114
+ "resultDigest": "sha256:eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee"
115
+ }
116
+ },
117
+ {
118
+ "id": "run-invalid-terminal-exit",
119
+ "contract": "run-session",
120
+ "valid": false,
121
+ "payload": {
122
+ "schemaVersion": 1,
123
+ "sessionId": "run-invalid-terminal-exit",
124
+ "status": "FAIL",
125
+ "reasonCode": "CHILD_EXIT_NONZERO",
126
+ "exitCode": null,
127
+ "processIdentity": null,
128
+ "heartbeat": null,
129
+ "logs": {
130
+ "stdout": {
131
+ "cursor": 0,
132
+ "rawDigest": "sha256:cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc",
133
+ "decodeStatus": "OK"
134
+ },
135
+ "stderr": {
136
+ "cursor": 4,
137
+ "rawDigest": "sha256:dddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddd",
138
+ "decodeStatus": "OK"
139
+ }
140
+ },
141
+ "cleanup": {
142
+ "complete": true,
143
+ "reasonCode": null
144
+ },
145
+ "resultDigest": "sha256:eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee"
146
+ }
147
+ },
148
+ {
149
+ "id": "run-valid-incomplete",
150
+ "contract": "run-session",
151
+ "valid": true,
152
+ "payload": {
153
+ "schemaVersion": 1,
154
+ "sessionId": "run-valid-incomplete",
155
+ "status": "INCOMPLETE",
156
+ "reasonCode": "HEARTBEAT_LOST",
157
+ "exitCode": null,
158
+ "processIdentity": null,
159
+ "heartbeat": {
160
+ "kind": "WORKER",
161
+ "writerIdentity": "sha256:ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff",
162
+ "lastSeenAt": "2026-07-31T12:00:30Z",
163
+ "ttlSeconds": 30,
164
+ "staleReason": "HEARTBEAT_LOST"
165
+ },
166
+ "logs": {
167
+ "stdout": {
168
+ "cursor": 2,
169
+ "rawDigest": "sha256:cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc",
170
+ "decodeStatus": "LOG_DECODE_DEGRADED"
171
+ },
172
+ "stderr": {
173
+ "cursor": 0,
174
+ "rawDigest": "sha256:dddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddd",
175
+ "decodeStatus": "OK"
176
+ }
177
+ },
178
+ "cleanup": {
179
+ "complete": false,
180
+ "reasonCode": "IDENTITY_UNVERIFIABLE"
181
+ },
182
+ "resultDigest": "sha256:eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee"
183
+ }
184
+ },
185
+ {
186
+ "id": "run-invalid-incomplete-exit",
187
+ "contract": "run-session",
188
+ "valid": false,
189
+ "payload": {
190
+ "schemaVersion": 1,
191
+ "sessionId": "run-invalid-incomplete-exit",
192
+ "status": "INCOMPLETE",
193
+ "reasonCode": "HEARTBEAT_LOST",
194
+ "exitCode": 9,
195
+ "processIdentity": null,
196
+ "heartbeat": null,
197
+ "logs": {
198
+ "stdout": {
199
+ "cursor": 0,
200
+ "rawDigest": "sha256:cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc",
201
+ "decodeStatus": "OK"
202
+ },
203
+ "stderr": {
204
+ "cursor": 0,
205
+ "rawDigest": "sha256:dddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddd",
206
+ "decodeStatus": "OK"
207
+ }
208
+ },
209
+ "cleanup": {
210
+ "complete": false,
211
+ "reasonCode": "IDENTITY_UNVERIFIABLE"
212
+ },
213
+ "resultDigest": "sha256:eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee"
214
+ }
215
+ },
216
+ {
217
+ "id": "service-valid-ready",
218
+ "contract": "service-session",
219
+ "valid": true,
220
+ "payload": {
221
+ "schemaVersion": 1,
222
+ "serviceId": "preview",
223
+ "sessionId": "service-preview-generation-2",
224
+ "status": "READY",
225
+ "reasonCode": "SERVICE_READY",
226
+ "serviceGeneration": 2,
227
+ "stateRevision": 3,
228
+ "operationId": "ensure-02",
229
+ "fingerprint": "sha256:1111111111111111111111111111111111111111111111111111111111111111",
230
+ "processIdentity": null,
231
+ "heartbeat": {
232
+ "kind": "SUPERVISOR",
233
+ "writerIdentity": "sha256:2222222222222222222222222222222222222222222222222222222222222222",
234
+ "generation": 2,
235
+ "lastSeenAt": "2026-07-31T12:01:00Z",
236
+ "ttlSeconds": 30,
237
+ "staleReason": null
238
+ },
239
+ "leaseIdentity": {
240
+ "leaseId": "lease-preview-2",
241
+ "changeId": "change-preview",
242
+ "runId": "run-preview",
243
+ "expiresAt": "2026-07-31T13:00:00Z",
244
+ "generation": 2
245
+ },
246
+ "transitionHistory": [
247
+ {
248
+ "from": null,
249
+ "to": "STARTING",
250
+ "reasonCode": "SERVICE_START_REQUESTED",
251
+ "revision": 1
252
+ },
253
+ {
254
+ "from": "STARTING",
255
+ "to": "READY",
256
+ "reasonCode": "SERVICE_READY",
257
+ "revision": 3
258
+ }
259
+ ],
260
+ "cleanupComplete": false,
261
+ "supersedesSessionId": null
262
+ }
263
+ },
264
+ {
265
+ "id": "service-invalid-revision",
266
+ "contract": "service-session",
267
+ "valid": false,
268
+ "payload": {
269
+ "schemaVersion": 1,
270
+ "serviceId": "preview",
271
+ "sessionId": "service-preview-generation-2",
272
+ "status": "READY",
273
+ "reasonCode": "SERVICE_READY",
274
+ "serviceGeneration": 2,
275
+ "stateRevision": 0,
276
+ "operationId": "ensure-02",
277
+ "fingerprint": "sha256:1111111111111111111111111111111111111111111111111111111111111111",
278
+ "processIdentity": null,
279
+ "heartbeat": null,
280
+ "leaseIdentity": null,
281
+ "transitionHistory": [],
282
+ "cleanupComplete": false,
283
+ "supersedesSessionId": null
284
+ }
285
+ },
286
+ {
287
+ "id": "retirement-valid-retained",
288
+ "contract": "service-retirement-receipt",
289
+ "valid": true,
290
+ "payload": {
291
+ "schemaVersion": 1,
292
+ "receiptId": "retirement-preview-1",
293
+ "operationId": "retire-operation-1",
294
+ "serviceId": "preview",
295
+ "oldSessionId": "service-preview-generation-1",
296
+ "oldGeneration": 1,
297
+ "state": "FINALIZED",
298
+ "retirementStateCommit": {
299
+ "status": "COMMITTED",
300
+ "reasonCode": "SERVICE_RETIRED"
301
+ },
302
+ "leaseCleanup": {
303
+ "status": "RETAINED",
304
+ "reasonCode": "LISTENER_IDENTITY_UNVERIFIABLE",
305
+ "leaseId": "lease-preview-1"
306
+ },
307
+ "cleanupComplete": false,
308
+ "awaitingSuperseder": true,
309
+ "supersededBySessionId": null,
310
+ "receiptDigest": "sha256:3333333333333333333333333333333333333333333333333333333333333333"
311
+ }
312
+ },
313
+ {
314
+ "id": "retirement-invalid-cleanup-claim",
315
+ "contract": "service-retirement-receipt",
316
+ "valid": false,
317
+ "payload": {
318
+ "schemaVersion": 1,
319
+ "receiptId": "retirement-preview-1",
320
+ "operationId": "retire-operation-1",
321
+ "serviceId": "preview",
322
+ "oldSessionId": "service-preview-generation-1",
323
+ "oldGeneration": 1,
324
+ "state": "FINALIZED",
325
+ "retirementStateCommit": {
326
+ "status": "COMMITTED",
327
+ "reasonCode": "SERVICE_RETIRED"
328
+ },
329
+ "leaseCleanup": {
330
+ "status": "RETAINED",
331
+ "reasonCode": "LISTENER_IDENTITY_UNVERIFIABLE",
332
+ "leaseId": "lease-preview-1"
333
+ },
334
+ "cleanupComplete": true,
335
+ "awaitingSuperseder": true,
336
+ "supersededBySessionId": null,
337
+ "receiptDigest": "sha256:3333333333333333333333333333333333333333333333333333333333333333"
338
+ }
339
+ }
340
+ ]
341
+ }
@@ -0,0 +1,132 @@
1
+ {
2
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
3
+ "$id": "https://hunter-harness.dev/contracts/process-identity.schema.json",
4
+ "title": "Hunter Harness process identity",
5
+ "type": "object",
6
+ "additionalProperties": false,
7
+ "required": [
8
+ "schemaVersion",
9
+ "pid",
10
+ "alive",
11
+ "createdAt",
12
+ "executable",
13
+ "argvHash",
14
+ "workingDirectory",
15
+ "parentIdentity",
16
+ "ownerTokenHash",
17
+ "treeIdentity",
18
+ "fieldProvenance",
19
+ "capabilities"
20
+ ],
21
+ "properties": {
22
+ "schemaVersion": { "const": 1 },
23
+ "pid": { "type": "integer", "minimum": 1 },
24
+ "alive": { "type": "boolean" },
25
+ "createdAt": { "type": ["string", "null"], "minLength": 1 },
26
+ "executable": { "type": ["string", "null"], "minLength": 1 },
27
+ "argvHash": { "$ref": "#/$defs/nullableDigest" },
28
+ "workingDirectory": { "type": ["string", "null"], "minLength": 1 },
29
+ "parentIdentity": {
30
+ "oneOf": [
31
+ { "type": "null" },
32
+ {
33
+ "type": "object",
34
+ "additionalProperties": false,
35
+ "required": ["pid", "createdAt", "executable"],
36
+ "properties": {
37
+ "pid": { "type": "integer", "minimum": 1 },
38
+ "createdAt": { "type": ["string", "null"], "minLength": 1 },
39
+ "executable": { "type": ["string", "null"], "minLength": 1 }
40
+ }
41
+ }
42
+ ]
43
+ },
44
+ "ownerTokenHash": { "$ref": "#/$defs/nullableDigest" },
45
+ "commandHash": { "$ref": "#/$defs/digest" },
46
+ "parentChain": { "type": "array" },
47
+ "startedAt": { "type": "string", "minLength": 1 },
48
+ "treeIdentity": {
49
+ "oneOf": [
50
+ { "type": "null" },
51
+ {
52
+ "type": "object",
53
+ "additionalProperties": false,
54
+ "required": ["platform", "proofKind", "memberPids", "complete"],
55
+ "properties": {
56
+ "platform": { "enum": ["WINDOWS", "LINUX", "POSIX"] },
57
+ "proofKind": { "type": "string", "minLength": 1 },
58
+ "memberPids": {
59
+ "type": "array",
60
+ "items": { "type": "integer", "minimum": 1 },
61
+ "uniqueItems": true
62
+ },
63
+ "complete": { "type": "boolean" },
64
+ "groupId": { "type": "integer", "minimum": 1 },
65
+ "sessionId": { "type": "integer", "minimum": 1 }
66
+ }
67
+ }
68
+ ]
69
+ },
70
+ "fieldProvenance": {
71
+ "type": "object",
72
+ "additionalProperties": false,
73
+ "required": [
74
+ "pid",
75
+ "createdAt",
76
+ "executable",
77
+ "argvHash",
78
+ "workingDirectory",
79
+ "parentIdentity",
80
+ "ownerTokenHash",
81
+ "treeIdentity"
82
+ ],
83
+ "properties": {
84
+ "pid": { "const": "OBSERVED" },
85
+ "createdAt": { "$ref": "#/$defs/provenance" },
86
+ "executable": { "$ref": "#/$defs/provenance" },
87
+ "argvHash": { "$ref": "#/$defs/provenance" },
88
+ "workingDirectory": { "$ref": "#/$defs/provenance" },
89
+ "parentIdentity": { "$ref": "#/$defs/provenance" },
90
+ "ownerTokenHash": { "$ref": "#/$defs/provenance" },
91
+ "treeIdentity": { "$ref": "#/$defs/provenance" }
92
+ }
93
+ },
94
+ "capabilities": {
95
+ "type": "object",
96
+ "additionalProperties": false,
97
+ "required": [
98
+ "canObserveCreateTime",
99
+ "canObserveExecutable",
100
+ "canObserveArgv",
101
+ "canObserveWorkingDirectory",
102
+ "canObserveParent",
103
+ "canEnumerateTree",
104
+ "canVerifyOwnership"
105
+ ],
106
+ "properties": {
107
+ "canObserveCreateTime": { "type": "boolean" },
108
+ "canObserveExecutable": { "type": "boolean" },
109
+ "canObserveArgv": { "type": "boolean" },
110
+ "canObserveWorkingDirectory": { "type": "boolean" },
111
+ "canObserveParent": { "type": "boolean" },
112
+ "canEnumerateTree": { "type": "boolean" },
113
+ "canVerifyOwnership": { "type": "boolean" }
114
+ }
115
+ }
116
+ },
117
+ "$defs": {
118
+ "digest": {
119
+ "type": "string",
120
+ "pattern": "^sha256:[0-9a-f]{64}$"
121
+ },
122
+ "nullableDigest": {
123
+ "oneOf": [
124
+ { "$ref": "#/$defs/digest" },
125
+ { "type": "null" }
126
+ ]
127
+ },
128
+ "provenance": {
129
+ "enum": ["OBSERVED", "ATTESTED", "UNAVAILABLE"]
130
+ }
131
+ }
132
+ }
@@ -0,0 +1,142 @@
1
+ {
2
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
3
+ "$id": "https://hunter-harness.dev/contracts/run-session.schema.json",
4
+ "title": "Hunter Harness managed run session",
5
+ "type": "object",
6
+ "additionalProperties": false,
7
+ "required": [
8
+ "schemaVersion",
9
+ "sessionId",
10
+ "status",
11
+ "reasonCode",
12
+ "exitCode",
13
+ "processIdentity",
14
+ "heartbeat",
15
+ "logs",
16
+ "cleanup",
17
+ "resultDigest"
18
+ ],
19
+ "properties": {
20
+ "schemaVersion": { "const": 1 },
21
+ "sessionId": { "type": "string", "minLength": 1 },
22
+ "status": {
23
+ "enum": [
24
+ "PREPARING",
25
+ "STARTING",
26
+ "RUNNING",
27
+ "FINALIZING",
28
+ "OK",
29
+ "FAIL",
30
+ "CANCELLED",
31
+ "INCOMPLETE"
32
+ ]
33
+ },
34
+ "reasonCode": { "$ref": "#/$defs/reasonCode" },
35
+ "exitCode": { "type": ["integer", "null"] },
36
+ "processIdentity": { "type": ["object", "null"] },
37
+ "heartbeat": {
38
+ "oneOf": [
39
+ { "type": "null" },
40
+ { "$ref": "#/$defs/heartbeat" }
41
+ ]
42
+ },
43
+ "logs": {
44
+ "type": "object",
45
+ "additionalProperties": false,
46
+ "required": ["stdout", "stderr"],
47
+ "properties": {
48
+ "stdout": { "$ref": "#/$defs/logStream" },
49
+ "stderr": { "$ref": "#/$defs/logStream" }
50
+ }
51
+ },
52
+ "cleanup": {
53
+ "type": "object",
54
+ "additionalProperties": false,
55
+ "required": ["complete", "reasonCode"],
56
+ "properties": {
57
+ "complete": { "type": "boolean" },
58
+ "reasonCode": {
59
+ "oneOf": [
60
+ { "$ref": "#/$defs/reasonCode" },
61
+ { "type": "null" }
62
+ ]
63
+ }
64
+ }
65
+ },
66
+ "resultDigest": {
67
+ "oneOf": [
68
+ { "$ref": "#/$defs/digest" },
69
+ { "type": "null" }
70
+ ]
71
+ }
72
+ },
73
+ "allOf": [
74
+ {
75
+ "if": {
76
+ "properties": { "status": { "enum": ["OK", "FAIL"] } },
77
+ "required": ["status"]
78
+ },
79
+ "then": {
80
+ "properties": {
81
+ "exitCode": { "type": "integer" },
82
+ "resultDigest": { "$ref": "#/$defs/digest" }
83
+ }
84
+ }
85
+ },
86
+ {
87
+ "if": {
88
+ "properties": { "status": { "const": "INCOMPLETE" } },
89
+ "required": ["status"]
90
+ },
91
+ "then": {
92
+ "properties": {
93
+ "exitCode": { "type": "null" },
94
+ "resultDigest": { "$ref": "#/$defs/digest" }
95
+ }
96
+ }
97
+ }
98
+ ],
99
+ "$defs": {
100
+ "digest": {
101
+ "type": "string",
102
+ "pattern": "^sha256:[0-9a-f]{64}$"
103
+ },
104
+ "reasonCode": {
105
+ "type": "string",
106
+ "minLength": 1
107
+ },
108
+ "heartbeat": {
109
+ "type": "object",
110
+ "additionalProperties": false,
111
+ "required": [
112
+ "kind",
113
+ "writerIdentity",
114
+ "lastSeenAt",
115
+ "ttlSeconds",
116
+ "staleReason"
117
+ ],
118
+ "properties": {
119
+ "kind": { "enum": ["WORKER", "SUPERVISOR", "OBSERVER"] },
120
+ "writerIdentity": { "$ref": "#/$defs/digest" },
121
+ "lastSeenAt": { "type": "string", "minLength": 1 },
122
+ "ttlSeconds": { "type": "integer", "minimum": 1 },
123
+ "staleReason": {
124
+ "oneOf": [
125
+ { "$ref": "#/$defs/reasonCode" },
126
+ { "type": "null" }
127
+ ]
128
+ }
129
+ }
130
+ },
131
+ "logStream": {
132
+ "type": "object",
133
+ "additionalProperties": false,
134
+ "required": ["cursor", "rawDigest", "decodeStatus"],
135
+ "properties": {
136
+ "cursor": { "type": "integer", "minimum": 0 },
137
+ "rawDigest": { "$ref": "#/$defs/digest" },
138
+ "decodeStatus": { "enum": ["OK", "LOG_DECODE_DEGRADED"] }
139
+ }
140
+ }
141
+ }
142
+ }