@hunter-harness/workflow-harness 0.2.44 → 0.2.45

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 (122) 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-codebase-map/SKILL.md +1 -1
  4. package/harness/bundles/general/claude-code/harness-knowledge-ingest/SKILL.md +1 -1
  5. package/harness/bundles/general/claude-code/harness-knowledge-query/SKILL.md +1 -1
  6. package/harness/bundles/general/claude-code/harness-plan/SKILL.md +1 -1
  7. package/harness/bundles/general/claude-code/harness-review/SKILL.md +1 -1
  8. package/harness/bundles/general/claude-code/harness-run/SKILL.md +1 -1
  9. package/harness/bundles/general/claude-code/harness-submit/SKILL.md +1 -1
  10. package/harness/bundles/general/claude-code/harness-sync/SKILL.md +1 -1
  11. package/harness/bundles/general/claude-code/harness-test/SKILL.md +1 -1
  12. package/harness/bundles/general/claude-code/scripts/harness_archive.py +72 -21
  13. package/harness/bundles/general/claude-code/scripts/harness_runtime.py +105 -2
  14. package/harness/bundles/general/codebuddy/.harness-build.json +1 -1
  15. package/harness/bundles/general/codebuddy/harness-archive/SKILL.md +1 -1
  16. package/harness/bundles/general/codebuddy/harness-codebase-map/SKILL.md +1 -1
  17. package/harness/bundles/general/codebuddy/harness-knowledge-ingest/SKILL.md +1 -1
  18. package/harness/bundles/general/codebuddy/harness-knowledge-query/SKILL.md +1 -1
  19. package/harness/bundles/general/codebuddy/harness-plan/SKILL.md +1 -1
  20. package/harness/bundles/general/codebuddy/harness-review/SKILL.md +1 -1
  21. package/harness/bundles/general/codebuddy/harness-run/SKILL.md +1 -1
  22. package/harness/bundles/general/codebuddy/harness-submit/SKILL.md +1 -1
  23. package/harness/bundles/general/codebuddy/harness-sync/SKILL.md +1 -1
  24. package/harness/bundles/general/codebuddy/harness-test/SKILL.md +1 -1
  25. package/harness/bundles/general/codebuddy/scripts/harness_archive.py +72 -21
  26. package/harness/bundles/general/codebuddy/scripts/harness_runtime.py +105 -2
  27. package/harness/bundles/general/codex/.harness-build.json +1 -1
  28. package/harness/bundles/general/codex/harness-archive/SKILL.md +1 -1
  29. package/harness/bundles/general/codex/harness-codebase-map/SKILL.md +1 -1
  30. package/harness/bundles/general/codex/harness-knowledge-ingest/SKILL.md +1 -1
  31. package/harness/bundles/general/codex/harness-knowledge-query/SKILL.md +1 -1
  32. package/harness/bundles/general/codex/harness-plan/SKILL.md +1 -1
  33. package/harness/bundles/general/codex/harness-review/SKILL.md +1 -1
  34. package/harness/bundles/general/codex/harness-run/SKILL.md +1 -1
  35. package/harness/bundles/general/codex/harness-submit/SKILL.md +1 -1
  36. package/harness/bundles/general/codex/harness-sync/SKILL.md +1 -1
  37. package/harness/bundles/general/codex/harness-test/SKILL.md +1 -1
  38. package/harness/bundles/general/codex/scripts/harness_archive.py +72 -21
  39. package/harness/bundles/general/codex/scripts/harness_runtime.py +105 -2
  40. package/harness/bundles/general/cursor/.harness-build.json +1 -1
  41. package/harness/bundles/general/cursor/harness-archive/SKILL.md +1 -1
  42. package/harness/bundles/general/cursor/harness-codebase-map/SKILL.md +1 -1
  43. package/harness/bundles/general/cursor/harness-knowledge-ingest/SKILL.md +1 -1
  44. package/harness/bundles/general/cursor/harness-knowledge-query/SKILL.md +1 -1
  45. package/harness/bundles/general/cursor/harness-plan/SKILL.md +1 -1
  46. package/harness/bundles/general/cursor/harness-review/SKILL.md +1 -1
  47. package/harness/bundles/general/cursor/harness-run/SKILL.md +1 -1
  48. package/harness/bundles/general/cursor/harness-submit/SKILL.md +1 -1
  49. package/harness/bundles/general/cursor/harness-sync/SKILL.md +1 -1
  50. package/harness/bundles/general/cursor/harness-test/SKILL.md +1 -1
  51. package/harness/bundles/general/cursor/scripts/harness_archive.py +72 -21
  52. package/harness/bundles/general/cursor/scripts/harness_runtime.py +105 -2
  53. package/harness/bundles/java/claude-code/.harness-build.json +1 -1
  54. package/harness/bundles/java/claude-code/harness-apidoc/SKILL.md +1 -1
  55. package/harness/bundles/java/claude-code/harness-archive/SKILL.md +1 -1
  56. package/harness/bundles/java/claude-code/harness-codebase-map/SKILL.md +1 -1
  57. package/harness/bundles/java/claude-code/harness-knowledge-ingest/SKILL.md +1 -1
  58. package/harness/bundles/java/claude-code/harness-knowledge-query/SKILL.md +1 -1
  59. package/harness/bundles/java/claude-code/harness-package/SKILL.md +1 -1
  60. package/harness/bundles/java/claude-code/harness-plan/SKILL.md +1 -1
  61. package/harness/bundles/java/claude-code/harness-review/SKILL.md +1 -1
  62. package/harness/bundles/java/claude-code/harness-run/SKILL.md +1 -1
  63. package/harness/bundles/java/claude-code/harness-submit/SKILL.md +1 -1
  64. package/harness/bundles/java/claude-code/harness-sync/SKILL.md +1 -1
  65. package/harness/bundles/java/claude-code/harness-test/SKILL.md +1 -1
  66. package/harness/bundles/java/claude-code/scripts/harness_archive.py +72 -21
  67. package/harness/bundles/java/claude-code/scripts/harness_runtime.py +105 -2
  68. package/harness/bundles/java/codebuddy/.harness-build.json +1 -1
  69. package/harness/bundles/java/codebuddy/harness-apidoc/SKILL.md +1 -1
  70. package/harness/bundles/java/codebuddy/harness-archive/SKILL.md +1 -1
  71. package/harness/bundles/java/codebuddy/harness-codebase-map/SKILL.md +1 -1
  72. package/harness/bundles/java/codebuddy/harness-knowledge-ingest/SKILL.md +1 -1
  73. package/harness/bundles/java/codebuddy/harness-knowledge-query/SKILL.md +1 -1
  74. package/harness/bundles/java/codebuddy/harness-package/SKILL.md +1 -1
  75. package/harness/bundles/java/codebuddy/harness-plan/SKILL.md +1 -1
  76. package/harness/bundles/java/codebuddy/harness-review/SKILL.md +1 -1
  77. package/harness/bundles/java/codebuddy/harness-run/SKILL.md +1 -1
  78. package/harness/bundles/java/codebuddy/harness-submit/SKILL.md +1 -1
  79. package/harness/bundles/java/codebuddy/harness-sync/SKILL.md +1 -1
  80. package/harness/bundles/java/codebuddy/harness-test/SKILL.md +1 -1
  81. package/harness/bundles/java/codebuddy/scripts/harness_archive.py +72 -21
  82. package/harness/bundles/java/codebuddy/scripts/harness_runtime.py +105 -2
  83. package/harness/bundles/java/codex/.harness-build.json +1 -1
  84. package/harness/bundles/java/codex/harness-apidoc/SKILL.md +1 -1
  85. package/harness/bundles/java/codex/harness-archive/SKILL.md +1 -1
  86. package/harness/bundles/java/codex/harness-codebase-map/SKILL.md +1 -1
  87. package/harness/bundles/java/codex/harness-knowledge-ingest/SKILL.md +1 -1
  88. package/harness/bundles/java/codex/harness-knowledge-query/SKILL.md +1 -1
  89. package/harness/bundles/java/codex/harness-package/SKILL.md +1 -1
  90. package/harness/bundles/java/codex/harness-plan/SKILL.md +1 -1
  91. package/harness/bundles/java/codex/harness-review/SKILL.md +1 -1
  92. package/harness/bundles/java/codex/harness-run/SKILL.md +1 -1
  93. package/harness/bundles/java/codex/harness-submit/SKILL.md +1 -1
  94. package/harness/bundles/java/codex/harness-sync/SKILL.md +1 -1
  95. package/harness/bundles/java/codex/harness-test/SKILL.md +1 -1
  96. package/harness/bundles/java/codex/scripts/harness_archive.py +72 -21
  97. package/harness/bundles/java/codex/scripts/harness_runtime.py +105 -2
  98. package/harness/bundles/java/cursor/.harness-build.json +1 -1
  99. package/harness/bundles/java/cursor/harness-apidoc/SKILL.md +1 -1
  100. package/harness/bundles/java/cursor/harness-archive/SKILL.md +1 -1
  101. package/harness/bundles/java/cursor/harness-codebase-map/SKILL.md +1 -1
  102. package/harness/bundles/java/cursor/harness-knowledge-ingest/SKILL.md +1 -1
  103. package/harness/bundles/java/cursor/harness-knowledge-query/SKILL.md +1 -1
  104. package/harness/bundles/java/cursor/harness-package/SKILL.md +1 -1
  105. package/harness/bundles/java/cursor/harness-plan/SKILL.md +1 -1
  106. package/harness/bundles/java/cursor/harness-review/SKILL.md +1 -1
  107. package/harness/bundles/java/cursor/harness-run/SKILL.md +1 -1
  108. package/harness/bundles/java/cursor/harness-submit/SKILL.md +1 -1
  109. package/harness/bundles/java/cursor/harness-sync/SKILL.md +1 -1
  110. package/harness/bundles/java/cursor/harness-test/SKILL.md +1 -1
  111. package/harness/bundles/java/cursor/scripts/harness_archive.py +72 -21
  112. package/harness/bundles/java/cursor/scripts/harness_runtime.py +105 -2
  113. package/harness/manifests/general/claude-code.json +15 -15
  114. package/harness/manifests/general/codebuddy.json +15 -15
  115. package/harness/manifests/general/codex.json +15 -15
  116. package/harness/manifests/general/cursor.json +15 -15
  117. package/harness/manifests/java/claude-code.json +17 -17
  118. package/harness/manifests/java/codebuddy.json +17 -17
  119. package/harness/manifests/java/codex.json +17 -17
  120. package/harness/manifests/java/cursor.json +17 -17
  121. package/hunter-workflow-family.json +4 -4
  122. package/package.json +1 -1
@@ -217,7 +217,7 @@ def sensitive_evidence_candidates(root: Path) -> list[dict[str, Any]]:
217
217
  return _sensitive_candidates(root)
218
218
 
219
219
 
220
- def _write_sensitive_scan_receipt(
220
+ def _build_sensitive_scan_receipt(
221
221
  change_root: Path,
222
222
  *,
223
223
  entries: list[dict[str, Any]],
@@ -225,7 +225,7 @@ def _write_sensitive_scan_receipt(
225
225
  status: str,
226
226
  ) -> dict[str, Any]:
227
227
  change_root = change_root.expanduser().resolve()
228
- receipt = {
228
+ return {
229
229
  "schemaVersion": 1,
230
230
  "rulesVersion": SECRET_SCAN_RULES_VERSION,
231
231
  "changeId": change_root.name,
@@ -236,6 +236,22 @@ def _write_sensitive_scan_receipt(
236
236
  "publicationExcluded": True,
237
237
  "recordedAt": now_iso(),
238
238
  }
239
+
240
+
241
+ def _write_sensitive_scan_receipt(
242
+ change_root: Path,
243
+ *,
244
+ entries: list[dict[str, Any]],
245
+ unresolved: list[dict[str, Any]],
246
+ status: str,
247
+ ) -> dict[str, Any]:
248
+ change_root = change_root.expanduser().resolve()
249
+ receipt = _build_sensitive_scan_receipt(
250
+ change_root,
251
+ entries=entries,
252
+ unresolved=unresolved,
253
+ status=status,
254
+ )
239
255
  atomic_write_json(_sensitive_evidence_receipt_path(change_root), receipt)
240
256
  return receipt
241
257
 
@@ -364,6 +380,93 @@ def ensure_sensitive_evidence_scan_receipt(change_root: Path) -> dict[str, Any]:
364
380
  )
365
381
 
366
382
 
383
+ def refresh_sensitive_evidence_scan_receipt(
384
+ change_root: Path,
385
+ *,
386
+ persist: bool = True,
387
+ ) -> dict[str, Any]:
388
+ """Rescan current bytes while preserving valid quarantine audit entries."""
389
+ change_root = change_root.expanduser().resolve()
390
+ receipt_path = _sensitive_evidence_receipt_path(change_root)
391
+ entries: list[dict[str, Any]] = []
392
+ if receipt_path.is_file():
393
+ try:
394
+ prior = json.loads(receipt_path.read_text(encoding="utf-8-sig"))
395
+ except (OSError, json.JSONDecodeError) as exc:
396
+ return {
397
+ "ok": False,
398
+ "reasonCode": "SECRET_SCAN_RECEIPT_INVALID",
399
+ "receiptPath": str(receipt_path),
400
+ "error": str(exc),
401
+ }
402
+ if not isinstance(prior, dict):
403
+ return {
404
+ "ok": False,
405
+ "reasonCode": "SECRET_SCAN_RECEIPT_INVALID",
406
+ "receiptPath": str(receipt_path),
407
+ "error": "receipt must be an object",
408
+ }
409
+ prior_entries = prior.get("entries")
410
+ prior_unresolved = prior.get("unresolvedFailures")
411
+ valid_identity = (
412
+ prior.get("schemaVersion") == 1
413
+ and prior.get("rulesVersion") == SECRET_SCAN_RULES_VERSION
414
+ and prior.get("changeId") == change_root.name
415
+ and prior.get("publicationExcluded") is True
416
+ and str(prior.get("status") or "").upper()
417
+ in {"OK", "QUARANTINED", "FAIL"}
418
+ )
419
+ if (
420
+ not valid_identity
421
+ or not isinstance(prior_entries, list)
422
+ or not isinstance(prior_unresolved, list)
423
+ ):
424
+ return {
425
+ "ok": False,
426
+ "reasonCode": "SECRET_SCAN_RECEIPT_INVALID",
427
+ "receiptPath": str(receipt_path),
428
+ "error": "receipt identity or collection fields are invalid",
429
+ }
430
+ entries = list(prior_entries)
431
+
432
+ unresolved = _sensitive_candidates(change_root)
433
+ status = "FAIL" if unresolved else "QUARANTINED" if entries else "OK"
434
+ if persist:
435
+ try:
436
+ receipt = _write_sensitive_scan_receipt(
437
+ change_root,
438
+ entries=entries,
439
+ unresolved=unresolved,
440
+ status=status,
441
+ )
442
+ except OSError as exc:
443
+ return {
444
+ "ok": False,
445
+ "reasonCode": "SECRET_SCAN_RECEIPT_REFRESH_FAILED",
446
+ "receiptPath": str(receipt_path),
447
+ "error": str(exc),
448
+ }
449
+ else:
450
+ receipt = _build_sensitive_scan_receipt(
451
+ change_root,
452
+ entries=entries,
453
+ unresolved=unresolved,
454
+ status=status,
455
+ )
456
+ return {
457
+ "ok": not unresolved,
458
+ "reasonCode": (
459
+ "SENSITIVE_EVIDENCE_UNQUARANTINED"
460
+ if unresolved
461
+ else "SECRET_SCAN_RECEIPT_REFRESHED"
462
+ ),
463
+ "receiptPath": str(receipt_path),
464
+ "receipt": receipt,
465
+ "persisted": persist,
466
+ "unresolvedFailures": unresolved,
467
+ }
468
+
469
+
367
470
  def _run_sessions_root(state_root: Path) -> Path:
368
471
  return state_root.expanduser().resolve() / "runtime" / "run-sessions"
369
472
 
@@ -2,9 +2,9 @@
2
2
  "schema_version": 2,
3
3
  "profile": "general",
4
4
  "adapter": "claude-code",
5
- "bundle_version": "0.2.33",
5
+ "bundle_version": "0.2.34",
6
6
  "requires": {
7
- "minimumCliVersion": "0.2.46",
7
+ "minimumCliVersion": "0.2.47",
8
8
  "capabilities": [
9
9
  "sync@2",
10
10
  "rules-sync@1",
@@ -23,7 +23,7 @@
23
23
  "files": [
24
24
  {
25
25
  "path": ".harness-build.json",
26
- "sha256": "d010ff0d0c32e51446d4dfc0857f74a4415dfd97b55e403e2e44cb700ea67da2"
26
+ "sha256": "5293ddd95f5ab1c68ae0372e0c3f95ab0a461d8ef5f02170548db5ab7c13d7b4"
27
27
  },
28
28
  {
29
29
  "path": "agents/harness-evaluator.md",
@@ -95,7 +95,7 @@
95
95
  },
96
96
  {
97
97
  "path": "harness-archive/SKILL.md",
98
- "sha256": "6615bedccef8cc7db52c491117d732510f8df385c3778639535b36eb98af5c0f"
98
+ "sha256": "e6359fc4c8973a22b830777295f5c606b7ae03fb790b98aca309ad000a98a29c"
99
99
  },
100
100
  {
101
101
  "path": "harness-archive/templates/render-summary.mjs",
@@ -115,7 +115,7 @@
115
115
  },
116
116
  {
117
117
  "path": "harness-codebase-map/SKILL.md",
118
- "sha256": "afb2a4ee7ef1846ea50552be5ded6f0ab6637fdc9388e6f4d2e4aeb42d662307"
118
+ "sha256": "6914d4ce401dab5445eba401357d61a6ad4e677c08b12e8e3f940faa84e73bc8"
119
119
  },
120
120
  {
121
121
  "path": "harness-codebase-map/templates/ARCHITECTURE.md",
@@ -179,11 +179,11 @@
179
179
  },
180
180
  {
181
181
  "path": "harness-knowledge-ingest/SKILL.md",
182
- "sha256": "72689a21b4c89ddd14bc1431fc155d59471f3ff6c874d93766d45e31bc3e33e4"
182
+ "sha256": "bcdfee63fb5f4db5777a45fec78663ff7130434f49f6501e3190100232f3c8e0"
183
183
  },
184
184
  {
185
185
  "path": "harness-knowledge-query/SKILL.md",
186
- "sha256": "0297d74123802665ef86a25a513f0dcc227e89d7f5f546f228469b42e24be2c6"
186
+ "sha256": "2b8d669199c6f0115d8b921dd08f161d479c823fcb50668172adf4240f3a0cf2"
187
187
  },
188
188
  {
189
189
  "path": "harness-plan/checklist.md",
@@ -199,7 +199,7 @@
199
199
  },
200
200
  {
201
201
  "path": "harness-plan/SKILL.md",
202
- "sha256": "798ed3a606b1dbd264812cf20aee0975b816ac2af93c85a32e388d38ea807e73"
202
+ "sha256": "a250a4935871136edc067f4b123638887962d5c20ae273fda94ea58befd6f20a"
203
203
  },
204
204
  {
205
205
  "path": "harness-review/checklist.md",
@@ -215,7 +215,7 @@
215
215
  },
216
216
  {
217
217
  "path": "harness-review/SKILL.md",
218
- "sha256": "97eed2b22c469b49654bb4f26b49161bd3030bbc29be5cf1aa621bcf1b17bbcb"
218
+ "sha256": "dd2f478045249b2b339a8837e47f3863b2fbbe8c7268794f5f0ef34d9b0bd86a"
219
219
  },
220
220
  {
221
221
  "path": "harness-run/checklist.md",
@@ -231,7 +231,7 @@
231
231
  },
232
232
  {
233
233
  "path": "harness-run/SKILL.md",
234
- "sha256": "f6a97bee0d978a628b07f842becbc1c8f89a4f5b6d79c84de9987243c0870cf3"
234
+ "sha256": "05d1d9f17e191888c616509f53691b9a637d3f4bf42103d86ed1a1ed4f6fe354"
235
235
  },
236
236
  {
237
237
  "path": "harness-submit/checklist.md",
@@ -243,7 +243,7 @@
243
243
  },
244
244
  {
245
245
  "path": "harness-submit/SKILL.md",
246
- "sha256": "075bb168296483dfcc31700bcbc7c26a837b5ee817c00d3f9c531f898f6f9e3c"
246
+ "sha256": "c82a054e55ecee061e36114063032180baadbbe17c4270a2c89bd0bc03418d32"
247
247
  },
248
248
  {
249
249
  "path": "harness-sync/reference.md",
@@ -251,7 +251,7 @@
251
251
  },
252
252
  {
253
253
  "path": "harness-sync/SKILL.md",
254
- "sha256": "85c6f1ff38ca69f03d8281211a8303857b04e349119ebc785aa21068a8ddcfdf"
254
+ "sha256": "d846ccfaa0421b5c339667012f78644b362d81d4c08c54eab74887e4464716de"
255
255
  },
256
256
  {
257
257
  "path": "harness-test/checklist.md",
@@ -275,7 +275,7 @@
275
275
  },
276
276
  {
277
277
  "path": "harness-test/SKILL.md",
278
- "sha256": "3ae7115a04f4c8ea9a3e9705264f836d118cfcf826b96690256a7fe3c3a065bb"
278
+ "sha256": "4a8ca56bb771e6fab5f2bbb1e83cbaf23975f13554eac362a4f44fa9bce5457c"
279
279
  },
280
280
  {
281
281
  "path": "protocols/archive-report-protocol.md",
@@ -347,7 +347,7 @@
347
347
  },
348
348
  {
349
349
  "path": "scripts/harness_archive.py",
350
- "sha256": "a565c3d16ceb4b2520cc9249b9967736b885c341bdbca27afaa71f113cabfda6"
350
+ "sha256": "0d47db600eefe508032b5b1fed390907856e65efcaf5e9a16395fa95e45bf1b7"
351
351
  },
352
352
  {
353
353
  "path": "scripts/harness_change.py",
@@ -447,7 +447,7 @@
447
447
  },
448
448
  {
449
449
  "path": "scripts/harness_runtime.py",
450
- "sha256": "bc6373ddea971b3eba799d3a7296654b0717fe58fff996df3cfc7f19f00fb710"
450
+ "sha256": "75341de64c53f6393d99cfd944d83578e55317c494a76273865baa87459abdfa"
451
451
  },
452
452
  {
453
453
  "path": "scripts/harness_service.py",
@@ -2,9 +2,9 @@
2
2
  "schema_version": 2,
3
3
  "profile": "general",
4
4
  "adapter": "codebuddy",
5
- "bundle_version": "0.2.33",
5
+ "bundle_version": "0.2.34",
6
6
  "requires": {
7
- "minimumCliVersion": "0.2.46",
7
+ "minimumCliVersion": "0.2.47",
8
8
  "capabilities": [
9
9
  "sync@2",
10
10
  "rules-sync@1",
@@ -23,7 +23,7 @@
23
23
  "files": [
24
24
  {
25
25
  "path": ".harness-build.json",
26
- "sha256": "fbcf33d58d6320234e008738318e7321e83929d73ce66882a911eb2dc648d85e"
26
+ "sha256": "4bb50f575ac3e8b39135bd7f899a60cac112deedcc3bc75ce279d1115b6e7aba"
27
27
  },
28
28
  {
29
29
  "path": "agents/harness-evaluator.md",
@@ -95,7 +95,7 @@
95
95
  },
96
96
  {
97
97
  "path": "harness-archive/SKILL.md",
98
- "sha256": "e15105ea3a685b893e6ca83fda56e8874d50f708e51a1f310f8156bd9eabfd88"
98
+ "sha256": "cd1bce07392ba3d8325afcb7c4800ce0af0e51fb28575ae91ef1bee05c868753"
99
99
  },
100
100
  {
101
101
  "path": "harness-archive/templates/render-summary.mjs",
@@ -115,7 +115,7 @@
115
115
  },
116
116
  {
117
117
  "path": "harness-codebase-map/SKILL.md",
118
- "sha256": "1d7968a38e5af491bd05dec153c23e49cff9ebe5ee4ca3bcef1c3404a5fb8761"
118
+ "sha256": "3e6a619048c988af07f2d2c091ecaa0252d32f5994374e431062645874eb25bd"
119
119
  },
120
120
  {
121
121
  "path": "harness-codebase-map/templates/ARCHITECTURE.md",
@@ -179,11 +179,11 @@
179
179
  },
180
180
  {
181
181
  "path": "harness-knowledge-ingest/SKILL.md",
182
- "sha256": "366b292877ba67845b41daa35d2731978befd2bb6067ef285405d18c6049dc83"
182
+ "sha256": "028347442f5c3ce4ebdacc00eca2fcc69a471fa2beb58b357cbf2b3b1a931e63"
183
183
  },
184
184
  {
185
185
  "path": "harness-knowledge-query/SKILL.md",
186
- "sha256": "c7329af356927d8f668855cebc2d967f97cc711d2c149bc77ed96ed6e28c5a5c"
186
+ "sha256": "f42f14fd1a3660b968688311a706052a122d392777724c4d2675788c8fd6f40a"
187
187
  },
188
188
  {
189
189
  "path": "harness-plan/checklist.md",
@@ -199,7 +199,7 @@
199
199
  },
200
200
  {
201
201
  "path": "harness-plan/SKILL.md",
202
- "sha256": "f2b9d15e48b586a1bf4500e1eabc5c05cc0a2dbf06988bbb1a5b4cee97f286f7"
202
+ "sha256": "26fc9bc9f83ea0c15550a71df135570cfd34193602fc16861ea9c4ef4aa7b7aa"
203
203
  },
204
204
  {
205
205
  "path": "harness-review/checklist.md",
@@ -215,7 +215,7 @@
215
215
  },
216
216
  {
217
217
  "path": "harness-review/SKILL.md",
218
- "sha256": "bfd68745e15e1718afecc8aaa0851a5df3524a6e7e13c13c9781129fabf2856f"
218
+ "sha256": "e40a56ec0ca6177a774c554910195ee2e5fe50b167356bf50312f24756f864c7"
219
219
  },
220
220
  {
221
221
  "path": "harness-run/checklist.md",
@@ -231,7 +231,7 @@
231
231
  },
232
232
  {
233
233
  "path": "harness-run/SKILL.md",
234
- "sha256": "c102f20ad736e36c0936b50cff2c1009aad9a090da5db7a82b508a97cc82d637"
234
+ "sha256": "51ee20d0d5d40989bd54fb4ba027b0a365e9a6570e6fc13922a76a993779e8e9"
235
235
  },
236
236
  {
237
237
  "path": "harness-submit/checklist.md",
@@ -243,7 +243,7 @@
243
243
  },
244
244
  {
245
245
  "path": "harness-submit/SKILL.md",
246
- "sha256": "f89b8692ecc5b5258ab2cda51eb76cfae03f04923c6ee0cb9b061fc488bb3546"
246
+ "sha256": "fa65dd6b3ba6ab0f80050064e2150b6c1f7a6f1763b6086b3b674ee37c181236"
247
247
  },
248
248
  {
249
249
  "path": "harness-sync/reference.md",
@@ -251,7 +251,7 @@
251
251
  },
252
252
  {
253
253
  "path": "harness-sync/SKILL.md",
254
- "sha256": "d9d483f0783612a7bbd7202ba46ee71ecf449504093f900e3815e2bf7f5acfe0"
254
+ "sha256": "c432a5806c867e402e20fda56f005e0d8c6b88ae597878d0a126e4558070ad41"
255
255
  },
256
256
  {
257
257
  "path": "harness-test/checklist.md",
@@ -275,7 +275,7 @@
275
275
  },
276
276
  {
277
277
  "path": "harness-test/SKILL.md",
278
- "sha256": "274dae1c79724722422e09746c5390616842a94d5c72904d1c607d4bf27a3730"
278
+ "sha256": "fbd91d27ebac165425a92a38f9e1789099b88dd5c0efd1366d9b44ee04995c42"
279
279
  },
280
280
  {
281
281
  "path": "protocols/archive-report-protocol.md",
@@ -347,7 +347,7 @@
347
347
  },
348
348
  {
349
349
  "path": "scripts/harness_archive.py",
350
- "sha256": "a565c3d16ceb4b2520cc9249b9967736b885c341bdbca27afaa71f113cabfda6"
350
+ "sha256": "0d47db600eefe508032b5b1fed390907856e65efcaf5e9a16395fa95e45bf1b7"
351
351
  },
352
352
  {
353
353
  "path": "scripts/harness_change.py",
@@ -447,7 +447,7 @@
447
447
  },
448
448
  {
449
449
  "path": "scripts/harness_runtime.py",
450
- "sha256": "bc6373ddea971b3eba799d3a7296654b0717fe58fff996df3cfc7f19f00fb710"
450
+ "sha256": "75341de64c53f6393d99cfd944d83578e55317c494a76273865baa87459abdfa"
451
451
  },
452
452
  {
453
453
  "path": "scripts/harness_service.py",
@@ -2,9 +2,9 @@
2
2
  "schema_version": 2,
3
3
  "profile": "general",
4
4
  "adapter": "codex",
5
- "bundle_version": "0.2.33",
5
+ "bundle_version": "0.2.34",
6
6
  "requires": {
7
- "minimumCliVersion": "0.2.46",
7
+ "minimumCliVersion": "0.2.47",
8
8
  "capabilities": [
9
9
  "sync@2",
10
10
  "rules-sync@1",
@@ -23,7 +23,7 @@
23
23
  "files": [
24
24
  {
25
25
  "path": ".harness-build.json",
26
- "sha256": "f38c60d946db22704b456f8b7fd73f830a6fd40cc66692e6afc4585eceb3002d"
26
+ "sha256": "88c1859f8dd37c7c202e49a836881e1899d29c47084ff0161e3d6f689552ef62"
27
27
  },
28
28
  {
29
29
  "path": "CONTEXT.md",
@@ -83,7 +83,7 @@
83
83
  },
84
84
  {
85
85
  "path": "harness-archive/SKILL.md",
86
- "sha256": "49d057613798e00d7c974cf4cb056c316d442aea9f29e22cbce7ba0bc739a513"
86
+ "sha256": "3ca847b4aa8bf2647c06d056478c9b03d59d1217aa9134221fb7cf27b489ed34"
87
87
  },
88
88
  {
89
89
  "path": "harness-archive/templates/render-summary.mjs",
@@ -103,7 +103,7 @@
103
103
  },
104
104
  {
105
105
  "path": "harness-codebase-map/SKILL.md",
106
- "sha256": "a81b96b9a2b31af5deeb40af2679ecf1dcaf8c13e273dae0ff155f9150064cd3"
106
+ "sha256": "e8aa7184ca0d3f7c530c2f5f2fdb8130930b7f28d1f318cb7fd86cd238c16cc9"
107
107
  },
108
108
  {
109
109
  "path": "harness-codebase-map/templates/ARCHITECTURE.md",
@@ -167,11 +167,11 @@
167
167
  },
168
168
  {
169
169
  "path": "harness-knowledge-ingest/SKILL.md",
170
- "sha256": "71a53c42a3c1e6a62770f3e755d0563beb3e5cdbac7dc19f26197cf1604f92c6"
170
+ "sha256": "f88bc30baacd611050cae50741c6f7afe3b72c38003c8f90a279847cb7fee337"
171
171
  },
172
172
  {
173
173
  "path": "harness-knowledge-query/SKILL.md",
174
- "sha256": "75fd47dcf2c17b857051a70ba0a0374cf3d05e1c72bdb1f3bd3f44a636fcf7d9"
174
+ "sha256": "ed957634f5c9abb67e3157f9fd67edf4248c8587eb3e937a7945fe6e50444b0a"
175
175
  },
176
176
  {
177
177
  "path": "harness-plan/checklist.md",
@@ -187,7 +187,7 @@
187
187
  },
188
188
  {
189
189
  "path": "harness-plan/SKILL.md",
190
- "sha256": "9ad0305e31af9b7b2fa7c07ad67551374bcfb0033d60c210df79133e0b3a8ade"
190
+ "sha256": "12c6bcdf54efe1545b7bd2d9ee19ede8e8ae12b519504fca92bce0bc6775255c"
191
191
  },
192
192
  {
193
193
  "path": "harness-review/checklist.md",
@@ -203,7 +203,7 @@
203
203
  },
204
204
  {
205
205
  "path": "harness-review/SKILL.md",
206
- "sha256": "ddbf85405cb5d640b65112f741c9331eb9701e9e8605f945475a0960c5cf36fc"
206
+ "sha256": "c58a63bf87657d1501b4386e9bdaa9b51800218b51eb1d932cd0a1d387fae658"
207
207
  },
208
208
  {
209
209
  "path": "harness-run/checklist.md",
@@ -219,7 +219,7 @@
219
219
  },
220
220
  {
221
221
  "path": "harness-run/SKILL.md",
222
- "sha256": "522ac839fce2f37fdaa303953ec1a77e30c0f24601b404dad273411746e64610"
222
+ "sha256": "ef98f6767d9791cecd93e74e0d72857a3e97e51fdead7b06793212d61115e7cc"
223
223
  },
224
224
  {
225
225
  "path": "harness-submit/checklist.md",
@@ -231,7 +231,7 @@
231
231
  },
232
232
  {
233
233
  "path": "harness-submit/SKILL.md",
234
- "sha256": "65f6ffa76061bff1bc08ef5f6a47b5b2396e204660d8ff109a27cab03531a592"
234
+ "sha256": "fb170b843aa0bc180ca9e22ee04ca9482286e4905e72b87647ddbb17402afc56"
235
235
  },
236
236
  {
237
237
  "path": "harness-sync/reference.md",
@@ -239,7 +239,7 @@
239
239
  },
240
240
  {
241
241
  "path": "harness-sync/SKILL.md",
242
- "sha256": "551bee4a4010296e876e37673e5d96865ef175578ffa38883b5d3a32b2af2384"
242
+ "sha256": "65e705102675796fc9ceadaf9e195d00c60f9bde9ed7fd9171859d33a18bc1bb"
243
243
  },
244
244
  {
245
245
  "path": "harness-test/checklist.md",
@@ -263,7 +263,7 @@
263
263
  },
264
264
  {
265
265
  "path": "harness-test/SKILL.md",
266
- "sha256": "d999f471cbc2f54bfbea1f0982c195e40f4a6419c1c1430abac16b8afe960fef"
266
+ "sha256": "2e4e0d82c240da1ec0b469691923348b7488691a3abaa78ee973e638d85a6429"
267
267
  },
268
268
  {
269
269
  "path": "protocols/archive-report-protocol.md",
@@ -335,7 +335,7 @@
335
335
  },
336
336
  {
337
337
  "path": "scripts/harness_archive.py",
338
- "sha256": "a565c3d16ceb4b2520cc9249b9967736b885c341bdbca27afaa71f113cabfda6"
338
+ "sha256": "0d47db600eefe508032b5b1fed390907856e65efcaf5e9a16395fa95e45bf1b7"
339
339
  },
340
340
  {
341
341
  "path": "scripts/harness_change.py",
@@ -435,7 +435,7 @@
435
435
  },
436
436
  {
437
437
  "path": "scripts/harness_runtime.py",
438
- "sha256": "bc6373ddea971b3eba799d3a7296654b0717fe58fff996df3cfc7f19f00fb710"
438
+ "sha256": "75341de64c53f6393d99cfd944d83578e55317c494a76273865baa87459abdfa"
439
439
  },
440
440
  {
441
441
  "path": "scripts/harness_service.py",
@@ -2,9 +2,9 @@
2
2
  "schema_version": 2,
3
3
  "profile": "general",
4
4
  "adapter": "cursor",
5
- "bundle_version": "0.2.33",
5
+ "bundle_version": "0.2.34",
6
6
  "requires": {
7
- "minimumCliVersion": "0.2.46",
7
+ "minimumCliVersion": "0.2.47",
8
8
  "capabilities": [
9
9
  "sync@2",
10
10
  "rules-sync@1",
@@ -23,7 +23,7 @@
23
23
  "files": [
24
24
  {
25
25
  "path": ".harness-build.json",
26
- "sha256": "2b0e07e12e5855cf909c5a32ef998c7cf5c558717881eedc5eeb86169152a9fd"
26
+ "sha256": "7ac2b74f9103aa612ba65163098c3143dd148b2932643f54944fb79d39b1cb57"
27
27
  },
28
28
  {
29
29
  "path": "CONTEXT.md",
@@ -83,7 +83,7 @@
83
83
  },
84
84
  {
85
85
  "path": "harness-archive/SKILL.md",
86
- "sha256": "0bce82ef73c3d8ed9646c90c955436d3efb63d729b9f48ce9fbd6f648cf20094"
86
+ "sha256": "5cbe6d88c4baaba9df1728b872e26d1d430b031fb97fbbb6d9444cc302fbf187"
87
87
  },
88
88
  {
89
89
  "path": "harness-archive/templates/render-summary.mjs",
@@ -103,7 +103,7 @@
103
103
  },
104
104
  {
105
105
  "path": "harness-codebase-map/SKILL.md",
106
- "sha256": "9359da0237072f9a9a2c3c15c8cbd71beaac2aefaa22bfe6c59486fda4c7d46a"
106
+ "sha256": "914d88b8f85138beeb8dbc5bf6f9ced562fdff9e043f5dd2f7418f19922fa876"
107
107
  },
108
108
  {
109
109
  "path": "harness-codebase-map/templates/ARCHITECTURE.md",
@@ -167,11 +167,11 @@
167
167
  },
168
168
  {
169
169
  "path": "harness-knowledge-ingest/SKILL.md",
170
- "sha256": "75040c2415752b51f02a9420afcd32d932b31f3eab5b6d642a77eb11159fa53a"
170
+ "sha256": "2439fcd210fb47407f0ac19cb85266b62c568ce67fa2f6bd351dc1afc16403d3"
171
171
  },
172
172
  {
173
173
  "path": "harness-knowledge-query/SKILL.md",
174
- "sha256": "69aac646be82e784ef108b3b026043b64743cd803ac2988312cb01c9ab859f1f"
174
+ "sha256": "81705283186f57b779f03d189b92a736d19ec7da03ffa8b3be0458d093a2d687"
175
175
  },
176
176
  {
177
177
  "path": "harness-plan/checklist.md",
@@ -187,7 +187,7 @@
187
187
  },
188
188
  {
189
189
  "path": "harness-plan/SKILL.md",
190
- "sha256": "80fb6874dff603430cfd67cc4719467e7360a60feffe14997e66e678248867f9"
190
+ "sha256": "5e92a8125efb8214cc368e29f86fa9d04932f587f58f7d0f847fdb7eefd6aa88"
191
191
  },
192
192
  {
193
193
  "path": "harness-review/checklist.md",
@@ -203,7 +203,7 @@
203
203
  },
204
204
  {
205
205
  "path": "harness-review/SKILL.md",
206
- "sha256": "41d0db160a7e4d413ebd499282659e6622fd1f8afd2f9d9b826cc68278a1d07a"
206
+ "sha256": "1a284cf78f10429c5ad4ec444fd3c5fe8cc657ac36d6d749178d63c2a67dcb0b"
207
207
  },
208
208
  {
209
209
  "path": "harness-run/checklist.md",
@@ -219,7 +219,7 @@
219
219
  },
220
220
  {
221
221
  "path": "harness-run/SKILL.md",
222
- "sha256": "8235307a049aeb5c4703063498f0159151ffda1ed7f68e3c5cf4fe41bebcc42e"
222
+ "sha256": "7d3c556998f06d7641accd65901f4fc753cccaafbb00989b9e9efe13a20fbfc0"
223
223
  },
224
224
  {
225
225
  "path": "harness-submit/checklist.md",
@@ -231,7 +231,7 @@
231
231
  },
232
232
  {
233
233
  "path": "harness-submit/SKILL.md",
234
- "sha256": "5577c047854aa67ec80dbd58e666f621b345e63a90d3297db886146fc73127f7"
234
+ "sha256": "a2c5661628e2ce02b1c56aa8b3117aafeb00ba1d5b5345667988be639bda5a10"
235
235
  },
236
236
  {
237
237
  "path": "harness-sync/reference.md",
@@ -239,7 +239,7 @@
239
239
  },
240
240
  {
241
241
  "path": "harness-sync/SKILL.md",
242
- "sha256": "f330b38dcc280fe7379959c3d40be59095cda25fbfa1dbf75b82c7f40dbe6f5a"
242
+ "sha256": "008cbf304d7eac291976e3e194c0b3341b75515f2976c88524344f4ad168522f"
243
243
  },
244
244
  {
245
245
  "path": "harness-test/checklist.md",
@@ -263,7 +263,7 @@
263
263
  },
264
264
  {
265
265
  "path": "harness-test/SKILL.md",
266
- "sha256": "f72c912cb3cd20df9994a7a95079972304b70f1ae2e489e2dc92ee2def3be883"
266
+ "sha256": "7b6bb7af6b475e556c6785ac439a9e05d08d813130d739983e2073cd24c783fd"
267
267
  },
268
268
  {
269
269
  "path": "protocols/archive-report-protocol.md",
@@ -335,7 +335,7 @@
335
335
  },
336
336
  {
337
337
  "path": "scripts/harness_archive.py",
338
- "sha256": "a565c3d16ceb4b2520cc9249b9967736b885c341bdbca27afaa71f113cabfda6"
338
+ "sha256": "0d47db600eefe508032b5b1fed390907856e65efcaf5e9a16395fa95e45bf1b7"
339
339
  },
340
340
  {
341
341
  "path": "scripts/harness_change.py",
@@ -435,7 +435,7 @@
435
435
  },
436
436
  {
437
437
  "path": "scripts/harness_runtime.py",
438
- "sha256": "bc6373ddea971b3eba799d3a7296654b0717fe58fff996df3cfc7f19f00fb710"
438
+ "sha256": "75341de64c53f6393d99cfd944d83578e55317c494a76273865baa87459abdfa"
439
439
  },
440
440
  {
441
441
  "path": "scripts/harness_service.py",