@hunter-harness/workflow-harness 0.2.6 → 0.2.8

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 (202) hide show
  1. package/harness/bundles/general/claude-code/.harness-build.json +1 -1
  2. package/harness/bundles/general/claude-code/contracts/workflow-policy.json +169 -0
  3. package/harness/bundles/general/claude-code/harness-archive/SKILL.md +3 -1
  4. package/harness/bundles/general/claude-code/harness-codebase-map/SKILL.md +1 -1
  5. package/harness/bundles/general/claude-code/harness-knowledge-ingest/SKILL.md +1 -1
  6. package/harness/bundles/general/claude-code/harness-knowledge-ingest/scripts/harness_knowledge.py +26 -1
  7. package/harness/bundles/general/claude-code/harness-knowledge-ingest/scripts/harness_knowledge_mcp.py +2 -0
  8. package/harness/bundles/general/claude-code/harness-knowledge-query/SKILL.md +3 -1
  9. package/harness/bundles/general/claude-code/harness-plan/SKILL.md +3 -1
  10. package/harness/bundles/general/claude-code/harness-review/SKILL.md +3 -1
  11. package/harness/bundles/general/claude-code/harness-run/SKILL.md +9 -6
  12. package/harness/bundles/general/claude-code/harness-run/checklist.md +2 -2
  13. package/harness/bundles/general/claude-code/harness-run/reference.md +5 -2
  14. package/harness/bundles/general/claude-code/harness-submit/SKILL.md +7 -5
  15. package/harness/bundles/general/claude-code/harness-sync/SKILL.md +1 -1
  16. package/harness/bundles/general/claude-code/harness-test/SKILL.md +8 -2
  17. package/harness/bundles/general/claude-code/scripts/harness_apidoc.py +53 -0
  18. package/harness/bundles/general/claude-code/scripts/harness_archive.py +41 -16
  19. package/harness/bundles/general/claude-code/scripts/harness_change.py +872 -0
  20. package/harness/bundles/general/claude-code/scripts/harness_events.py +26 -0
  21. package/harness/bundles/general/claude-code/scripts/harness_gate.py +1038 -0
  22. package/harness/bundles/general/claude-code/scripts/harness_service.py +34 -1
  23. package/harness/bundles/general/claude-code/scripts/harness_test_guard.py +210 -14
  24. package/harness/bundles/general/claude-code/scripts/harness_workflow_policy.py +160 -0
  25. package/harness/bundles/general/codebuddy/.harness-build.json +1 -1
  26. package/harness/bundles/general/codebuddy/contracts/workflow-policy.json +169 -0
  27. package/harness/bundles/general/codebuddy/harness-archive/SKILL.md +3 -1
  28. package/harness/bundles/general/codebuddy/harness-codebase-map/SKILL.md +1 -1
  29. package/harness/bundles/general/codebuddy/harness-knowledge-ingest/SKILL.md +1 -1
  30. package/harness/bundles/general/codebuddy/harness-knowledge-ingest/scripts/harness_knowledge.py +26 -1
  31. package/harness/bundles/general/codebuddy/harness-knowledge-ingest/scripts/harness_knowledge_mcp.py +2 -0
  32. package/harness/bundles/general/codebuddy/harness-knowledge-query/SKILL.md +3 -1
  33. package/harness/bundles/general/codebuddy/harness-plan/SKILL.md +3 -1
  34. package/harness/bundles/general/codebuddy/harness-review/SKILL.md +3 -1
  35. package/harness/bundles/general/codebuddy/harness-run/SKILL.md +9 -6
  36. package/harness/bundles/general/codebuddy/harness-run/checklist.md +2 -2
  37. package/harness/bundles/general/codebuddy/harness-run/reference.md +5 -2
  38. package/harness/bundles/general/codebuddy/harness-submit/SKILL.md +7 -5
  39. package/harness/bundles/general/codebuddy/harness-sync/SKILL.md +1 -1
  40. package/harness/bundles/general/codebuddy/harness-test/SKILL.md +8 -2
  41. package/harness/bundles/general/codebuddy/scripts/harness_apidoc.py +53 -0
  42. package/harness/bundles/general/codebuddy/scripts/harness_archive.py +41 -16
  43. package/harness/bundles/general/codebuddy/scripts/harness_change.py +872 -0
  44. package/harness/bundles/general/codebuddy/scripts/harness_events.py +26 -0
  45. package/harness/bundles/general/codebuddy/scripts/harness_gate.py +1038 -0
  46. package/harness/bundles/general/codebuddy/scripts/harness_service.py +34 -1
  47. package/harness/bundles/general/codebuddy/scripts/harness_test_guard.py +210 -14
  48. package/harness/bundles/general/codebuddy/scripts/harness_workflow_policy.py +160 -0
  49. package/harness/bundles/general/codex/.harness-build.json +1 -1
  50. package/harness/bundles/general/codex/contracts/workflow-policy.json +169 -0
  51. package/harness/bundles/general/codex/harness-archive/SKILL.md +3 -1
  52. package/harness/bundles/general/codex/harness-codebase-map/SKILL.md +1 -1
  53. package/harness/bundles/general/codex/harness-knowledge-ingest/SKILL.md +1 -1
  54. package/harness/bundles/general/codex/harness-knowledge-ingest/scripts/harness_knowledge.py +26 -1
  55. package/harness/bundles/general/codex/harness-knowledge-ingest/scripts/harness_knowledge_mcp.py +2 -0
  56. package/harness/bundles/general/codex/harness-knowledge-query/SKILL.md +3 -1
  57. package/harness/bundles/general/codex/harness-plan/SKILL.md +3 -1
  58. package/harness/bundles/general/codex/harness-review/SKILL.md +3 -1
  59. package/harness/bundles/general/codex/harness-run/SKILL.md +9 -6
  60. package/harness/bundles/general/codex/harness-run/checklist.md +2 -2
  61. package/harness/bundles/general/codex/harness-run/reference.md +5 -2
  62. package/harness/bundles/general/codex/harness-submit/SKILL.md +7 -5
  63. package/harness/bundles/general/codex/harness-sync/SKILL.md +1 -1
  64. package/harness/bundles/general/codex/harness-test/SKILL.md +8 -2
  65. package/harness/bundles/general/codex/scripts/harness_apidoc.py +53 -0
  66. package/harness/bundles/general/codex/scripts/harness_archive.py +41 -16
  67. package/harness/bundles/general/codex/scripts/harness_change.py +872 -0
  68. package/harness/bundles/general/codex/scripts/harness_events.py +26 -0
  69. package/harness/bundles/general/codex/scripts/harness_gate.py +1038 -0
  70. package/harness/bundles/general/codex/scripts/harness_service.py +34 -1
  71. package/harness/bundles/general/codex/scripts/harness_test_guard.py +210 -14
  72. package/harness/bundles/general/codex/scripts/harness_workflow_policy.py +160 -0
  73. package/harness/bundles/general/cursor/.harness-build.json +1 -1
  74. package/harness/bundles/general/cursor/contracts/workflow-policy.json +169 -0
  75. package/harness/bundles/general/cursor/harness-archive/SKILL.md +3 -1
  76. package/harness/bundles/general/cursor/harness-codebase-map/SKILL.md +1 -1
  77. package/harness/bundles/general/cursor/harness-knowledge-ingest/SKILL.md +1 -1
  78. package/harness/bundles/general/cursor/harness-knowledge-ingest/scripts/harness_knowledge.py +26 -1
  79. package/harness/bundles/general/cursor/harness-knowledge-ingest/scripts/harness_knowledge_mcp.py +2 -0
  80. package/harness/bundles/general/cursor/harness-knowledge-query/SKILL.md +3 -1
  81. package/harness/bundles/general/cursor/harness-plan/SKILL.md +3 -1
  82. package/harness/bundles/general/cursor/harness-review/SKILL.md +3 -1
  83. package/harness/bundles/general/cursor/harness-run/SKILL.md +9 -6
  84. package/harness/bundles/general/cursor/harness-run/checklist.md +2 -2
  85. package/harness/bundles/general/cursor/harness-run/reference.md +5 -2
  86. package/harness/bundles/general/cursor/harness-submit/SKILL.md +7 -5
  87. package/harness/bundles/general/cursor/harness-sync/SKILL.md +1 -1
  88. package/harness/bundles/general/cursor/harness-test/SKILL.md +8 -2
  89. package/harness/bundles/general/cursor/scripts/harness_apidoc.py +53 -0
  90. package/harness/bundles/general/cursor/scripts/harness_archive.py +41 -16
  91. package/harness/bundles/general/cursor/scripts/harness_change.py +872 -0
  92. package/harness/bundles/general/cursor/scripts/harness_events.py +26 -0
  93. package/harness/bundles/general/cursor/scripts/harness_gate.py +1038 -0
  94. package/harness/bundles/general/cursor/scripts/harness_service.py +34 -1
  95. package/harness/bundles/general/cursor/scripts/harness_test_guard.py +210 -14
  96. package/harness/bundles/general/cursor/scripts/harness_workflow_policy.py +160 -0
  97. package/harness/bundles/java/claude-code/.harness-build.json +1 -1
  98. package/harness/bundles/java/claude-code/contracts/workflow-policy.json +169 -0
  99. package/harness/bundles/java/claude-code/harness-apidoc/SKILL.md +7 -1
  100. package/harness/bundles/java/claude-code/harness-archive/SKILL.md +3 -1
  101. package/harness/bundles/java/claude-code/harness-codebase-map/SKILL.md +1 -1
  102. package/harness/bundles/java/claude-code/harness-knowledge-ingest/SKILL.md +1 -1
  103. package/harness/bundles/java/claude-code/harness-knowledge-ingest/scripts/harness_knowledge.py +26 -1
  104. package/harness/bundles/java/claude-code/harness-knowledge-ingest/scripts/harness_knowledge_mcp.py +2 -0
  105. package/harness/bundles/java/claude-code/harness-knowledge-query/SKILL.md +3 -1
  106. package/harness/bundles/java/claude-code/harness-package/SKILL.md +6 -3
  107. package/harness/bundles/java/claude-code/harness-plan/SKILL.md +3 -1
  108. package/harness/bundles/java/claude-code/harness-review/SKILL.md +3 -1
  109. package/harness/bundles/java/claude-code/harness-run/SKILL.md +9 -6
  110. package/harness/bundles/java/claude-code/harness-submit/SKILL.md +7 -5
  111. package/harness/bundles/java/claude-code/harness-sync/SKILL.md +1 -1
  112. package/harness/bundles/java/claude-code/harness-test/SKILL.md +8 -2
  113. package/harness/bundles/java/claude-code/scripts/harness_apidoc.py +53 -0
  114. package/harness/bundles/java/claude-code/scripts/harness_archive.py +41 -16
  115. package/harness/bundles/java/claude-code/scripts/harness_change.py +872 -0
  116. package/harness/bundles/java/claude-code/scripts/harness_events.py +26 -0
  117. package/harness/bundles/java/claude-code/scripts/harness_gate.py +1038 -0
  118. package/harness/bundles/java/claude-code/scripts/harness_service.py +34 -1
  119. package/harness/bundles/java/claude-code/scripts/harness_test_guard.py +210 -14
  120. package/harness/bundles/java/claude-code/scripts/harness_workflow_policy.py +160 -0
  121. package/harness/bundles/java/codebuddy/.harness-build.json +1 -1
  122. package/harness/bundles/java/codebuddy/contracts/workflow-policy.json +169 -0
  123. package/harness/bundles/java/codebuddy/harness-apidoc/SKILL.md +7 -1
  124. package/harness/bundles/java/codebuddy/harness-archive/SKILL.md +3 -1
  125. package/harness/bundles/java/codebuddy/harness-codebase-map/SKILL.md +1 -1
  126. package/harness/bundles/java/codebuddy/harness-knowledge-ingest/SKILL.md +1 -1
  127. package/harness/bundles/java/codebuddy/harness-knowledge-ingest/scripts/harness_knowledge.py +26 -1
  128. package/harness/bundles/java/codebuddy/harness-knowledge-ingest/scripts/harness_knowledge_mcp.py +2 -0
  129. package/harness/bundles/java/codebuddy/harness-knowledge-query/SKILL.md +3 -1
  130. package/harness/bundles/java/codebuddy/harness-package/SKILL.md +6 -3
  131. package/harness/bundles/java/codebuddy/harness-plan/SKILL.md +3 -1
  132. package/harness/bundles/java/codebuddy/harness-review/SKILL.md +3 -1
  133. package/harness/bundles/java/codebuddy/harness-run/SKILL.md +9 -6
  134. package/harness/bundles/java/codebuddy/harness-submit/SKILL.md +7 -5
  135. package/harness/bundles/java/codebuddy/harness-sync/SKILL.md +1 -1
  136. package/harness/bundles/java/codebuddy/harness-test/SKILL.md +8 -2
  137. package/harness/bundles/java/codebuddy/scripts/harness_apidoc.py +53 -0
  138. package/harness/bundles/java/codebuddy/scripts/harness_archive.py +41 -16
  139. package/harness/bundles/java/codebuddy/scripts/harness_change.py +872 -0
  140. package/harness/bundles/java/codebuddy/scripts/harness_events.py +26 -0
  141. package/harness/bundles/java/codebuddy/scripts/harness_gate.py +1038 -0
  142. package/harness/bundles/java/codebuddy/scripts/harness_service.py +34 -1
  143. package/harness/bundles/java/codebuddy/scripts/harness_test_guard.py +210 -14
  144. package/harness/bundles/java/codebuddy/scripts/harness_workflow_policy.py +160 -0
  145. package/harness/bundles/java/codex/.harness-build.json +1 -1
  146. package/harness/bundles/java/codex/contracts/workflow-policy.json +169 -0
  147. package/harness/bundles/java/codex/harness-apidoc/SKILL.md +7 -1
  148. package/harness/bundles/java/codex/harness-archive/SKILL.md +3 -1
  149. package/harness/bundles/java/codex/harness-codebase-map/SKILL.md +1 -1
  150. package/harness/bundles/java/codex/harness-knowledge-ingest/SKILL.md +1 -1
  151. package/harness/bundles/java/codex/harness-knowledge-ingest/scripts/harness_knowledge.py +26 -1
  152. package/harness/bundles/java/codex/harness-knowledge-ingest/scripts/harness_knowledge_mcp.py +2 -0
  153. package/harness/bundles/java/codex/harness-knowledge-query/SKILL.md +3 -1
  154. package/harness/bundles/java/codex/harness-package/SKILL.md +6 -3
  155. package/harness/bundles/java/codex/harness-plan/SKILL.md +3 -1
  156. package/harness/bundles/java/codex/harness-review/SKILL.md +3 -1
  157. package/harness/bundles/java/codex/harness-run/SKILL.md +9 -6
  158. package/harness/bundles/java/codex/harness-submit/SKILL.md +7 -5
  159. package/harness/bundles/java/codex/harness-sync/SKILL.md +1 -1
  160. package/harness/bundles/java/codex/harness-test/SKILL.md +8 -2
  161. package/harness/bundles/java/codex/scripts/harness_apidoc.py +53 -0
  162. package/harness/bundles/java/codex/scripts/harness_archive.py +41 -16
  163. package/harness/bundles/java/codex/scripts/harness_change.py +872 -0
  164. package/harness/bundles/java/codex/scripts/harness_events.py +26 -0
  165. package/harness/bundles/java/codex/scripts/harness_gate.py +1038 -0
  166. package/harness/bundles/java/codex/scripts/harness_service.py +34 -1
  167. package/harness/bundles/java/codex/scripts/harness_test_guard.py +210 -14
  168. package/harness/bundles/java/codex/scripts/harness_workflow_policy.py +160 -0
  169. package/harness/bundles/java/cursor/.harness-build.json +1 -1
  170. package/harness/bundles/java/cursor/contracts/workflow-policy.json +169 -0
  171. package/harness/bundles/java/cursor/harness-apidoc/SKILL.md +7 -1
  172. package/harness/bundles/java/cursor/harness-archive/SKILL.md +3 -1
  173. package/harness/bundles/java/cursor/harness-codebase-map/SKILL.md +1 -1
  174. package/harness/bundles/java/cursor/harness-knowledge-ingest/SKILL.md +1 -1
  175. package/harness/bundles/java/cursor/harness-knowledge-ingest/scripts/harness_knowledge.py +26 -1
  176. package/harness/bundles/java/cursor/harness-knowledge-ingest/scripts/harness_knowledge_mcp.py +2 -0
  177. package/harness/bundles/java/cursor/harness-knowledge-query/SKILL.md +3 -1
  178. package/harness/bundles/java/cursor/harness-package/SKILL.md +6 -3
  179. package/harness/bundles/java/cursor/harness-plan/SKILL.md +3 -1
  180. package/harness/bundles/java/cursor/harness-review/SKILL.md +3 -1
  181. package/harness/bundles/java/cursor/harness-run/SKILL.md +9 -6
  182. package/harness/bundles/java/cursor/harness-submit/SKILL.md +7 -5
  183. package/harness/bundles/java/cursor/harness-sync/SKILL.md +1 -1
  184. package/harness/bundles/java/cursor/harness-test/SKILL.md +8 -2
  185. package/harness/bundles/java/cursor/scripts/harness_apidoc.py +53 -0
  186. package/harness/bundles/java/cursor/scripts/harness_archive.py +41 -16
  187. package/harness/bundles/java/cursor/scripts/harness_change.py +872 -0
  188. package/harness/bundles/java/cursor/scripts/harness_events.py +26 -0
  189. package/harness/bundles/java/cursor/scripts/harness_gate.py +1038 -0
  190. package/harness/bundles/java/cursor/scripts/harness_service.py +34 -1
  191. package/harness/bundles/java/cursor/scripts/harness_test_guard.py +210 -14
  192. package/harness/bundles/java/cursor/scripts/harness_workflow_policy.py +160 -0
  193. package/harness/manifests/general/claude-code.json +40 -20
  194. package/harness/manifests/general/codebuddy.json +40 -20
  195. package/harness/manifests/general/codex.json +40 -20
  196. package/harness/manifests/general/cursor.json +40 -20
  197. package/harness/manifests/java/claude-code.json +40 -20
  198. package/harness/manifests/java/codebuddy.json +40 -20
  199. package/harness/manifests/java/codex.json +40 -20
  200. package/harness/manifests/java/cursor.json +40 -20
  201. package/hunter-workflow-family.json +2 -2
  202. package/package.json +1 -1
@@ -106,6 +106,25 @@ def execution_log_path(change_dir: Path) -> Path:
106
106
  return change_dir / "logs" / "execution-log.md"
107
107
 
108
108
 
109
+ def archived_change_dir(change_dir: Path) -> Path | None:
110
+ """Return the matching archive when change_dir follows the project layout."""
111
+ changes_root = change_dir.parent
112
+ harness_root = changes_root.parent
113
+ if changes_root.name != "changes" or harness_root.name != ".harness":
114
+ return None
115
+ archive_root = harness_root / "archive"
116
+ if not archive_root.is_dir():
117
+ return None
118
+ suffix = "-" + change_dir.name
119
+ matches = sorted(
120
+ candidate for candidate in archive_root.iterdir()
121
+ if candidate.is_dir() and (
122
+ candidate.name == change_dir.name or candidate.name.endswith(suffix)
123
+ )
124
+ )
125
+ return matches[-1] if matches else None
126
+
127
+
109
128
  def parse_timestamp(value: Any) -> dt.datetime | None:
110
129
  if not isinstance(value, str) or not value.strip():
111
130
  return None
@@ -620,6 +639,13 @@ def cmd_append(args: argparse.Namespace) -> int:
620
639
  as_json=as_json,
621
640
  )
622
641
  change_dir = resolve_change_dir(args.change_dir)
642
+ archived = archived_change_dir(change_dir)
643
+ if archived is not None:
644
+ return emit_error(
645
+ "ARCHIVED_CHANGE_IMMUTABLE: refusing to append to archived change "
646
+ f"{change_dir.name} ({archived})",
647
+ as_json=as_json,
648
+ )
623
649
  path = events_path(change_dir)
624
650
  lock_path = change_dir / "events.ndjson.lock"
625
651