@hunter-harness/workflow-harness 0.2.5 → 0.2.7
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.
- package/harness/bundles/general/claude-code/.harness-build.json +1 -1
- package/harness/bundles/general/claude-code/contracts/workflow-policy.json +169 -0
- package/harness/bundles/general/claude-code/harness-archive/SKILL.md +7 -2
- package/harness/bundles/general/claude-code/harness-archive/reference.md +1 -1
- package/harness/bundles/general/claude-code/harness-archive/templates/render-summary.mjs +78 -155
- package/harness/bundles/general/claude-code/harness-codebase-map/SKILL.md +4 -2
- package/harness/bundles/general/claude-code/harness-knowledge-ingest/SKILL.md +5 -3
- package/harness/bundles/general/claude-code/harness-knowledge-ingest/scripts/harness_knowledge.py +109 -7
- package/harness/bundles/general/claude-code/harness-knowledge-ingest/scripts/harness_knowledge_mcp.py +2 -0
- package/harness/bundles/general/claude-code/harness-knowledge-query/SKILL.md +6 -2
- package/harness/bundles/general/claude-code/harness-plan/SKILL.md +8 -3
- package/harness/bundles/general/claude-code/harness-review/SKILL.md +8 -3
- package/harness/bundles/general/claude-code/harness-run/SKILL.md +13 -7
- package/harness/bundles/general/claude-code/harness-run/checklist.md +2 -2
- package/harness/bundles/general/claude-code/harness-run/reference.md +6 -3
- package/harness/bundles/general/claude-code/harness-submit/SKILL.md +11 -6
- package/harness/bundles/general/claude-code/harness-sync/SKILL.md +5 -3
- package/harness/bundles/general/claude-code/harness-test/SKILL.md +12 -3
- package/harness/bundles/general/claude-code/harness-test/reference.md +1 -1
- package/harness/bundles/general/claude-code/protocols/ledger-protocol.md +1 -1
- package/harness/bundles/general/claude-code/protocols/report-pipeline-protocol.md +11 -4
- package/harness/bundles/general/claude-code/scripts/harness_apidoc.py +53 -0
- package/harness/bundles/general/claude-code/scripts/harness_archive.py +231 -48
- package/harness/bundles/general/claude-code/scripts/harness_change.py +854 -0
- package/harness/bundles/general/claude-code/scripts/harness_events.py +134 -40
- package/harness/bundles/general/claude-code/scripts/harness_gate.py +1038 -0
- package/harness/bundles/general/claude-code/scripts/harness_preflight.py +46 -3
- package/harness/bundles/general/claude-code/scripts/harness_profile.py +2 -2
- package/harness/bundles/general/claude-code/scripts/harness_service.py +34 -1
- package/harness/bundles/general/claude-code/scripts/harness_state.py +148 -0
- package/harness/bundles/general/claude-code/scripts/harness_test_guard.py +210 -14
- package/harness/bundles/general/claude-code/scripts/harness_workflow_policy.py +160 -0
- package/harness/bundles/general/codebuddy/.harness-build.json +1 -1
- package/harness/bundles/general/codebuddy/contracts/workflow-policy.json +169 -0
- package/harness/bundles/general/codebuddy/harness-archive/SKILL.md +7 -2
- package/harness/bundles/general/codebuddy/harness-archive/reference.md +1 -1
- package/harness/bundles/general/codebuddy/harness-archive/templates/render-summary.mjs +78 -155
- package/harness/bundles/general/codebuddy/harness-codebase-map/SKILL.md +4 -2
- package/harness/bundles/general/codebuddy/harness-knowledge-ingest/SKILL.md +5 -3
- package/harness/bundles/general/codebuddy/harness-knowledge-ingest/scripts/harness_knowledge.py +109 -7
- package/harness/bundles/general/codebuddy/harness-knowledge-ingest/scripts/harness_knowledge_mcp.py +2 -0
- package/harness/bundles/general/codebuddy/harness-knowledge-query/SKILL.md +6 -2
- package/harness/bundles/general/codebuddy/harness-plan/SKILL.md +8 -3
- package/harness/bundles/general/codebuddy/harness-review/SKILL.md +8 -3
- package/harness/bundles/general/codebuddy/harness-run/SKILL.md +13 -7
- package/harness/bundles/general/codebuddy/harness-run/checklist.md +2 -2
- package/harness/bundles/general/codebuddy/harness-run/reference.md +6 -3
- package/harness/bundles/general/codebuddy/harness-submit/SKILL.md +11 -6
- package/harness/bundles/general/codebuddy/harness-sync/SKILL.md +5 -3
- package/harness/bundles/general/codebuddy/harness-test/SKILL.md +12 -3
- package/harness/bundles/general/codebuddy/harness-test/reference.md +1 -1
- package/harness/bundles/general/codebuddy/protocols/ledger-protocol.md +1 -1
- package/harness/bundles/general/codebuddy/protocols/report-pipeline-protocol.md +11 -4
- package/harness/bundles/general/codebuddy/scripts/harness_apidoc.py +53 -0
- package/harness/bundles/general/codebuddy/scripts/harness_archive.py +231 -48
- package/harness/bundles/general/codebuddy/scripts/harness_change.py +854 -0
- package/harness/bundles/general/codebuddy/scripts/harness_events.py +134 -40
- package/harness/bundles/general/codebuddy/scripts/harness_gate.py +1038 -0
- package/harness/bundles/general/codebuddy/scripts/harness_preflight.py +46 -3
- package/harness/bundles/general/codebuddy/scripts/harness_profile.py +2 -2
- package/harness/bundles/general/codebuddy/scripts/harness_service.py +34 -1
- package/harness/bundles/general/codebuddy/scripts/harness_state.py +148 -0
- package/harness/bundles/general/codebuddy/scripts/harness_test_guard.py +210 -14
- package/harness/bundles/general/codebuddy/scripts/harness_workflow_policy.py +160 -0
- package/harness/bundles/general/codex/.harness-build.json +1 -1
- package/harness/bundles/general/codex/contracts/workflow-policy.json +169 -0
- package/harness/bundles/general/codex/harness-archive/SKILL.md +7 -2
- package/harness/bundles/general/codex/harness-archive/reference.md +1 -1
- package/harness/bundles/general/codex/harness-archive/templates/render-summary.mjs +78 -155
- package/harness/bundles/general/codex/harness-codebase-map/SKILL.md +4 -2
- package/harness/bundles/general/codex/harness-knowledge-ingest/SKILL.md +5 -3
- package/harness/bundles/general/codex/harness-knowledge-ingest/scripts/harness_knowledge.py +109 -7
- package/harness/bundles/general/codex/harness-knowledge-ingest/scripts/harness_knowledge_mcp.py +2 -0
- package/harness/bundles/general/codex/harness-knowledge-query/SKILL.md +6 -2
- package/harness/bundles/general/codex/harness-plan/SKILL.md +8 -3
- package/harness/bundles/general/codex/harness-review/SKILL.md +7 -2
- package/harness/bundles/general/codex/harness-run/SKILL.md +13 -7
- package/harness/bundles/general/codex/harness-run/checklist.md +2 -2
- package/harness/bundles/general/codex/harness-run/reference.md +6 -3
- package/harness/bundles/general/codex/harness-submit/SKILL.md +11 -6
- package/harness/bundles/general/codex/harness-sync/SKILL.md +5 -3
- package/harness/bundles/general/codex/harness-test/SKILL.md +12 -3
- package/harness/bundles/general/codex/harness-test/reference.md +1 -1
- package/harness/bundles/general/codex/protocols/ledger-protocol.md +1 -1
- package/harness/bundles/general/codex/protocols/report-pipeline-protocol.md +11 -4
- package/harness/bundles/general/codex/scripts/harness_apidoc.py +53 -0
- package/harness/bundles/general/codex/scripts/harness_archive.py +231 -48
- package/harness/bundles/general/codex/scripts/harness_change.py +854 -0
- package/harness/bundles/general/codex/scripts/harness_events.py +134 -40
- package/harness/bundles/general/codex/scripts/harness_gate.py +1038 -0
- package/harness/bundles/general/codex/scripts/harness_preflight.py +46 -3
- package/harness/bundles/general/codex/scripts/harness_profile.py +2 -2
- package/harness/bundles/general/codex/scripts/harness_service.py +34 -1
- package/harness/bundles/general/codex/scripts/harness_state.py +148 -0
- package/harness/bundles/general/codex/scripts/harness_test_guard.py +210 -14
- package/harness/bundles/general/codex/scripts/harness_workflow_policy.py +160 -0
- package/harness/bundles/general/cursor/.harness-build.json +1 -1
- package/harness/bundles/general/cursor/contracts/workflow-policy.json +169 -0
- package/harness/bundles/general/cursor/harness-archive/SKILL.md +7 -2
- package/harness/bundles/general/cursor/harness-archive/reference.md +1 -1
- package/harness/bundles/general/cursor/harness-archive/templates/render-summary.mjs +78 -155
- package/harness/bundles/general/cursor/harness-codebase-map/SKILL.md +4 -2
- package/harness/bundles/general/cursor/harness-knowledge-ingest/SKILL.md +5 -3
- package/harness/bundles/general/cursor/harness-knowledge-ingest/scripts/harness_knowledge.py +109 -7
- package/harness/bundles/general/cursor/harness-knowledge-ingest/scripts/harness_knowledge_mcp.py +2 -0
- package/harness/bundles/general/cursor/harness-knowledge-query/SKILL.md +6 -2
- package/harness/bundles/general/cursor/harness-plan/SKILL.md +8 -3
- package/harness/bundles/general/cursor/harness-review/SKILL.md +7 -2
- package/harness/bundles/general/cursor/harness-run/SKILL.md +13 -7
- package/harness/bundles/general/cursor/harness-run/checklist.md +2 -2
- package/harness/bundles/general/cursor/harness-run/reference.md +6 -3
- package/harness/bundles/general/cursor/harness-submit/SKILL.md +11 -6
- package/harness/bundles/general/cursor/harness-sync/SKILL.md +5 -3
- package/harness/bundles/general/cursor/harness-test/SKILL.md +12 -3
- package/harness/bundles/general/cursor/harness-test/reference.md +1 -1
- package/harness/bundles/general/cursor/protocols/ledger-protocol.md +1 -1
- package/harness/bundles/general/cursor/protocols/report-pipeline-protocol.md +11 -4
- package/harness/bundles/general/cursor/scripts/harness_apidoc.py +53 -0
- package/harness/bundles/general/cursor/scripts/harness_archive.py +231 -48
- package/harness/bundles/general/cursor/scripts/harness_change.py +854 -0
- package/harness/bundles/general/cursor/scripts/harness_events.py +134 -40
- package/harness/bundles/general/cursor/scripts/harness_gate.py +1038 -0
- package/harness/bundles/general/cursor/scripts/harness_preflight.py +46 -3
- package/harness/bundles/general/cursor/scripts/harness_profile.py +2 -2
- package/harness/bundles/general/cursor/scripts/harness_service.py +34 -1
- package/harness/bundles/general/cursor/scripts/harness_state.py +148 -0
- package/harness/bundles/general/cursor/scripts/harness_test_guard.py +210 -14
- package/harness/bundles/general/cursor/scripts/harness_workflow_policy.py +160 -0
- package/harness/bundles/java/claude-code/.harness-build.json +1 -1
- package/harness/bundles/java/claude-code/contracts/workflow-policy.json +169 -0
- package/harness/bundles/java/claude-code/harness-apidoc/SKILL.md +11 -2
- package/harness/bundles/java/claude-code/harness-archive/SKILL.md +7 -2
- package/harness/bundles/java/claude-code/harness-archive/reference.md +1 -1
- package/harness/bundles/java/claude-code/harness-archive/templates/render-summary.mjs +78 -155
- package/harness/bundles/java/claude-code/harness-codebase-map/SKILL.md +4 -2
- package/harness/bundles/java/claude-code/harness-knowledge-ingest/SKILL.md +5 -3
- package/harness/bundles/java/claude-code/harness-knowledge-ingest/scripts/harness_knowledge.py +109 -7
- package/harness/bundles/java/claude-code/harness-knowledge-ingest/scripts/harness_knowledge_mcp.py +2 -0
- package/harness/bundles/java/claude-code/harness-knowledge-query/SKILL.md +6 -2
- package/harness/bundles/java/claude-code/harness-package/SKILL.md +10 -4
- package/harness/bundles/java/claude-code/harness-plan/SKILL.md +8 -3
- package/harness/bundles/java/claude-code/harness-review/SKILL.md +8 -3
- package/harness/bundles/java/claude-code/harness-run/SKILL.md +13 -7
- package/harness/bundles/java/claude-code/harness-run/reference.md +1 -1
- package/harness/bundles/java/claude-code/harness-submit/SKILL.md +11 -6
- package/harness/bundles/java/claude-code/harness-sync/SKILL.md +5 -3
- package/harness/bundles/java/claude-code/harness-test/SKILL.md +12 -3
- package/harness/bundles/java/claude-code/harness-test/reference.md +1 -1
- package/harness/bundles/java/claude-code/protocols/ledger-protocol.md +1 -1
- package/harness/bundles/java/claude-code/protocols/report-pipeline-protocol.md +11 -4
- package/harness/bundles/java/claude-code/scripts/harness_apidoc.py +53 -0
- package/harness/bundles/java/claude-code/scripts/harness_archive.py +231 -48
- package/harness/bundles/java/claude-code/scripts/harness_change.py +854 -0
- package/harness/bundles/java/claude-code/scripts/harness_events.py +134 -40
- package/harness/bundles/java/claude-code/scripts/harness_gate.py +1038 -0
- package/harness/bundles/java/claude-code/scripts/harness_preflight.py +46 -3
- package/harness/bundles/java/claude-code/scripts/harness_profile.py +2 -2
- package/harness/bundles/java/claude-code/scripts/harness_service.py +34 -1
- package/harness/bundles/java/claude-code/scripts/harness_state.py +148 -0
- package/harness/bundles/java/claude-code/scripts/harness_test_guard.py +210 -14
- package/harness/bundles/java/claude-code/scripts/harness_workflow_policy.py +160 -0
- package/harness/bundles/java/codebuddy/.harness-build.json +1 -1
- package/harness/bundles/java/codebuddy/contracts/workflow-policy.json +169 -0
- package/harness/bundles/java/codebuddy/harness-apidoc/SKILL.md +11 -2
- package/harness/bundles/java/codebuddy/harness-archive/SKILL.md +7 -2
- package/harness/bundles/java/codebuddy/harness-archive/reference.md +1 -1
- package/harness/bundles/java/codebuddy/harness-archive/templates/render-summary.mjs +78 -155
- package/harness/bundles/java/codebuddy/harness-codebase-map/SKILL.md +4 -2
- package/harness/bundles/java/codebuddy/harness-knowledge-ingest/SKILL.md +5 -3
- package/harness/bundles/java/codebuddy/harness-knowledge-ingest/scripts/harness_knowledge.py +109 -7
- package/harness/bundles/java/codebuddy/harness-knowledge-ingest/scripts/harness_knowledge_mcp.py +2 -0
- package/harness/bundles/java/codebuddy/harness-knowledge-query/SKILL.md +6 -2
- package/harness/bundles/java/codebuddy/harness-package/SKILL.md +10 -4
- package/harness/bundles/java/codebuddy/harness-plan/SKILL.md +8 -3
- package/harness/bundles/java/codebuddy/harness-review/SKILL.md +8 -3
- package/harness/bundles/java/codebuddy/harness-run/SKILL.md +13 -7
- package/harness/bundles/java/codebuddy/harness-run/reference.md +1 -1
- package/harness/bundles/java/codebuddy/harness-submit/SKILL.md +11 -6
- package/harness/bundles/java/codebuddy/harness-sync/SKILL.md +5 -3
- package/harness/bundles/java/codebuddy/harness-test/SKILL.md +12 -3
- package/harness/bundles/java/codebuddy/harness-test/reference.md +1 -1
- package/harness/bundles/java/codebuddy/protocols/ledger-protocol.md +1 -1
- package/harness/bundles/java/codebuddy/protocols/report-pipeline-protocol.md +11 -4
- package/harness/bundles/java/codebuddy/scripts/harness_apidoc.py +53 -0
- package/harness/bundles/java/codebuddy/scripts/harness_archive.py +231 -48
- package/harness/bundles/java/codebuddy/scripts/harness_change.py +854 -0
- package/harness/bundles/java/codebuddy/scripts/harness_events.py +134 -40
- package/harness/bundles/java/codebuddy/scripts/harness_gate.py +1038 -0
- package/harness/bundles/java/codebuddy/scripts/harness_preflight.py +46 -3
- package/harness/bundles/java/codebuddy/scripts/harness_profile.py +2 -2
- package/harness/bundles/java/codebuddy/scripts/harness_service.py +34 -1
- package/harness/bundles/java/codebuddy/scripts/harness_state.py +148 -0
- package/harness/bundles/java/codebuddy/scripts/harness_test_guard.py +210 -14
- package/harness/bundles/java/codebuddy/scripts/harness_workflow_policy.py +160 -0
- package/harness/bundles/java/codex/.harness-build.json +1 -1
- package/harness/bundles/java/codex/contracts/workflow-policy.json +169 -0
- package/harness/bundles/java/codex/harness-apidoc/SKILL.md +11 -2
- package/harness/bundles/java/codex/harness-archive/SKILL.md +7 -2
- package/harness/bundles/java/codex/harness-archive/reference.md +1 -1
- package/harness/bundles/java/codex/harness-archive/templates/render-summary.mjs +78 -155
- package/harness/bundles/java/codex/harness-codebase-map/SKILL.md +4 -2
- package/harness/bundles/java/codex/harness-knowledge-ingest/SKILL.md +5 -3
- package/harness/bundles/java/codex/harness-knowledge-ingest/scripts/harness_knowledge.py +109 -7
- package/harness/bundles/java/codex/harness-knowledge-ingest/scripts/harness_knowledge_mcp.py +2 -0
- package/harness/bundles/java/codex/harness-knowledge-query/SKILL.md +6 -2
- package/harness/bundles/java/codex/harness-package/SKILL.md +10 -4
- package/harness/bundles/java/codex/harness-plan/SKILL.md +8 -3
- package/harness/bundles/java/codex/harness-review/SKILL.md +7 -2
- package/harness/bundles/java/codex/harness-run/SKILL.md +13 -7
- package/harness/bundles/java/codex/harness-run/reference.md +1 -1
- package/harness/bundles/java/codex/harness-submit/SKILL.md +11 -6
- package/harness/bundles/java/codex/harness-sync/SKILL.md +5 -3
- package/harness/bundles/java/codex/harness-test/SKILL.md +12 -3
- package/harness/bundles/java/codex/harness-test/reference.md +1 -1
- package/harness/bundles/java/codex/protocols/ledger-protocol.md +1 -1
- package/harness/bundles/java/codex/protocols/report-pipeline-protocol.md +11 -4
- package/harness/bundles/java/codex/scripts/harness_apidoc.py +53 -0
- package/harness/bundles/java/codex/scripts/harness_archive.py +231 -48
- package/harness/bundles/java/codex/scripts/harness_change.py +854 -0
- package/harness/bundles/java/codex/scripts/harness_events.py +134 -40
- package/harness/bundles/java/codex/scripts/harness_gate.py +1038 -0
- package/harness/bundles/java/codex/scripts/harness_preflight.py +46 -3
- package/harness/bundles/java/codex/scripts/harness_profile.py +2 -2
- package/harness/bundles/java/codex/scripts/harness_service.py +34 -1
- package/harness/bundles/java/codex/scripts/harness_state.py +148 -0
- package/harness/bundles/java/codex/scripts/harness_test_guard.py +210 -14
- package/harness/bundles/java/codex/scripts/harness_workflow_policy.py +160 -0
- package/harness/bundles/java/cursor/.harness-build.json +1 -1
- package/harness/bundles/java/cursor/contracts/workflow-policy.json +169 -0
- package/harness/bundles/java/cursor/harness-apidoc/SKILL.md +11 -2
- package/harness/bundles/java/cursor/harness-archive/SKILL.md +7 -2
- package/harness/bundles/java/cursor/harness-archive/reference.md +1 -1
- package/harness/bundles/java/cursor/harness-archive/templates/render-summary.mjs +78 -155
- package/harness/bundles/java/cursor/harness-codebase-map/SKILL.md +4 -2
- package/harness/bundles/java/cursor/harness-knowledge-ingest/SKILL.md +5 -3
- package/harness/bundles/java/cursor/harness-knowledge-ingest/scripts/harness_knowledge.py +109 -7
- package/harness/bundles/java/cursor/harness-knowledge-ingest/scripts/harness_knowledge_mcp.py +2 -0
- package/harness/bundles/java/cursor/harness-knowledge-query/SKILL.md +6 -2
- package/harness/bundles/java/cursor/harness-package/SKILL.md +10 -4
- package/harness/bundles/java/cursor/harness-plan/SKILL.md +8 -3
- package/harness/bundles/java/cursor/harness-review/SKILL.md +7 -2
- package/harness/bundles/java/cursor/harness-run/SKILL.md +13 -7
- package/harness/bundles/java/cursor/harness-run/reference.md +1 -1
- package/harness/bundles/java/cursor/harness-submit/SKILL.md +11 -6
- package/harness/bundles/java/cursor/harness-sync/SKILL.md +5 -3
- package/harness/bundles/java/cursor/harness-test/SKILL.md +12 -3
- package/harness/bundles/java/cursor/harness-test/reference.md +1 -1
- package/harness/bundles/java/cursor/protocols/ledger-protocol.md +1 -1
- package/harness/bundles/java/cursor/protocols/report-pipeline-protocol.md +11 -4
- package/harness/bundles/java/cursor/scripts/harness_apidoc.py +53 -0
- package/harness/bundles/java/cursor/scripts/harness_archive.py +231 -48
- package/harness/bundles/java/cursor/scripts/harness_change.py +854 -0
- package/harness/bundles/java/cursor/scripts/harness_events.py +134 -40
- package/harness/bundles/java/cursor/scripts/harness_gate.py +1038 -0
- package/harness/bundles/java/cursor/scripts/harness_preflight.py +46 -3
- package/harness/bundles/java/cursor/scripts/harness_profile.py +2 -2
- package/harness/bundles/java/cursor/scripts/harness_service.py +34 -1
- package/harness/bundles/java/cursor/scripts/harness_state.py +148 -0
- package/harness/bundles/java/cursor/scripts/harness_test_guard.py +210 -14
- package/harness/bundles/java/cursor/scripts/harness_workflow_policy.py +160 -0
- package/harness/manifests/general/claude-code.json +48 -28
- package/harness/manifests/general/codebuddy.json +48 -28
- package/harness/manifests/general/codex.json +48 -28
- package/harness/manifests/general/cursor.json +48 -28
- package/harness/manifests/java/claude-code.json +49 -29
- package/harness/manifests/java/codebuddy.json +49 -29
- package/harness/manifests/java/codex.json +49 -29
- package/harness/manifests/java/cursor.json +49 -29
- package/hunter-workflow-family.json +2 -2
- package/package.json +1 -1
|
@@ -0,0 +1,160 @@
|
|
|
1
|
+
#!/usr/bin/env python3
|
|
2
|
+
"""Strict loader for harness/contracts/workflow-policy.json.
|
|
3
|
+
|
|
4
|
+
Unknown fields at any depth fail validation. Python 3.10+, stdlib only.
|
|
5
|
+
"""
|
|
6
|
+
|
|
7
|
+
from __future__ import annotations
|
|
8
|
+
|
|
9
|
+
import json
|
|
10
|
+
from pathlib import Path
|
|
11
|
+
from typing import Any
|
|
12
|
+
|
|
13
|
+
POLICY_REL = Path("harness") / "contracts" / "workflow-policy.json"
|
|
14
|
+
|
|
15
|
+
TOP_LEVEL_KEYS = frozenset(
|
|
16
|
+
{
|
|
17
|
+
"schemaVersion",
|
|
18
|
+
"riskTiers",
|
|
19
|
+
"skills",
|
|
20
|
+
"requiredArtifacts",
|
|
21
|
+
"requiredValidations",
|
|
22
|
+
"conditionalStages",
|
|
23
|
+
"interactionWhitelist",
|
|
24
|
+
"checkpointRules",
|
|
25
|
+
}
|
|
26
|
+
)
|
|
27
|
+
|
|
28
|
+
RISK_TIER_KEYS = frozenset(
|
|
29
|
+
{
|
|
30
|
+
"description",
|
|
31
|
+
"defaultPhases",
|
|
32
|
+
"requiredValidations",
|
|
33
|
+
"conditionalStages",
|
|
34
|
+
"upgradeTriggers",
|
|
35
|
+
}
|
|
36
|
+
)
|
|
37
|
+
|
|
38
|
+
SKILL_KEYS = frozenset(
|
|
39
|
+
{
|
|
40
|
+
"phase",
|
|
41
|
+
"inputs",
|
|
42
|
+
"artifacts",
|
|
43
|
+
"events",
|
|
44
|
+
"allowedInteractions",
|
|
45
|
+
"capabilities",
|
|
46
|
+
"profiles",
|
|
47
|
+
}
|
|
48
|
+
)
|
|
49
|
+
|
|
50
|
+
CONDITIONAL_STAGE_KEYS = frozenset({"tiers", "signals"})
|
|
51
|
+
CHECKPOINT_RULE_KEYS = frozenset(
|
|
52
|
+
{
|
|
53
|
+
"afterTasks",
|
|
54
|
+
"beforeTasks",
|
|
55
|
+
"blocking",
|
|
56
|
+
"requiredReport",
|
|
57
|
+
"reviewerTool",
|
|
58
|
+
}
|
|
59
|
+
)
|
|
60
|
+
|
|
61
|
+
|
|
62
|
+
class PolicyValidationError(ValueError):
|
|
63
|
+
"""Raised when workflow-policy.json contains unknown or invalid fields."""
|
|
64
|
+
|
|
65
|
+
|
|
66
|
+
def _reject_unknown(data: dict[str, Any], allowed: frozenset[str], path: str) -> None:
|
|
67
|
+
unknown = sorted(set(data) - allowed)
|
|
68
|
+
if unknown:
|
|
69
|
+
raise PolicyValidationError(
|
|
70
|
+
f"unknown field(s) at {path}: {', '.join(unknown)}"
|
|
71
|
+
)
|
|
72
|
+
|
|
73
|
+
|
|
74
|
+
def _require_type(value: Any, expected: type | tuple[type, ...], path: str) -> None:
|
|
75
|
+
if not isinstance(value, expected):
|
|
76
|
+
names = (
|
|
77
|
+
expected.__name__
|
|
78
|
+
if isinstance(expected, type)
|
|
79
|
+
else "|".join(t.__name__ for t in expected)
|
|
80
|
+
)
|
|
81
|
+
raise PolicyValidationError(f"{path} must be {names}, got {type(value).__name__}")
|
|
82
|
+
|
|
83
|
+
|
|
84
|
+
def validate_policy(data: Any) -> dict[str, Any]:
|
|
85
|
+
if not isinstance(data, dict):
|
|
86
|
+
raise PolicyValidationError("workflow policy root must be an object")
|
|
87
|
+
_reject_unknown(data, TOP_LEVEL_KEYS, "root")
|
|
88
|
+
_require_type(data.get("schemaVersion"), int, "schemaVersion")
|
|
89
|
+
if data["schemaVersion"] != 1:
|
|
90
|
+
raise PolicyValidationError("unsupported schemaVersion")
|
|
91
|
+
|
|
92
|
+
risk_tiers = data["riskTiers"]
|
|
93
|
+
_require_type(risk_tiers, dict, "riskTiers")
|
|
94
|
+
for tier_name, tier in risk_tiers.items():
|
|
95
|
+
path = f"riskTiers.{tier_name}"
|
|
96
|
+
_require_type(tier, dict, path)
|
|
97
|
+
_reject_unknown(tier, RISK_TIER_KEYS, path)
|
|
98
|
+
_require_type(tier["description"], str, f"{path}.description")
|
|
99
|
+
_require_type(tier["defaultPhases"], list, f"{path}.defaultPhases")
|
|
100
|
+
_require_type(tier["requiredValidations"], list, f"{path}.requiredValidations")
|
|
101
|
+
_require_type(tier["conditionalStages"], list, f"{path}.conditionalStages")
|
|
102
|
+
_require_type(tier["upgradeTriggers"], list, f"{path}.upgradeTriggers")
|
|
103
|
+
|
|
104
|
+
skills = data["skills"]
|
|
105
|
+
_require_type(skills, dict, "skills")
|
|
106
|
+
for skill_name, skill in skills.items():
|
|
107
|
+
path = f"skills.{skill_name}"
|
|
108
|
+
_require_type(skill, dict, path)
|
|
109
|
+
_reject_unknown(skill, SKILL_KEYS, path)
|
|
110
|
+
_require_type(skill["phase"], str, f"{path}.phase")
|
|
111
|
+
for key in ("inputs", "artifacts", "events", "allowedInteractions", "capabilities"):
|
|
112
|
+
_require_type(skill[key], list, f"{path}.{key}")
|
|
113
|
+
profiles = skill.get("profiles", ["general", "java"])
|
|
114
|
+
_require_type(profiles, list, f"{path}.profiles")
|
|
115
|
+
if not profiles or any(item not in {"general", "java"} for item in profiles):
|
|
116
|
+
raise PolicyValidationError(f"{path}.profiles must contain general and/or java")
|
|
117
|
+
|
|
118
|
+
for section in ("requiredArtifacts", "requiredValidations"):
|
|
119
|
+
section_data = data[section]
|
|
120
|
+
_require_type(section_data, dict, section)
|
|
121
|
+
for phase, items in section_data.items():
|
|
122
|
+
_require_type(items, list, f"{section}.{phase}")
|
|
123
|
+
|
|
124
|
+
conditional = data["conditionalStages"]
|
|
125
|
+
_require_type(conditional, dict, "conditionalStages")
|
|
126
|
+
for stage_name, stage in conditional.items():
|
|
127
|
+
path = f"conditionalStages.{stage_name}"
|
|
128
|
+
_require_type(stage, dict, path)
|
|
129
|
+
_reject_unknown(stage, CONDITIONAL_STAGE_KEYS, path)
|
|
130
|
+
_require_type(stage["tiers"], list, f"{path}.tiers")
|
|
131
|
+
_require_type(stage["signals"], list, f"{path}.signals")
|
|
132
|
+
|
|
133
|
+
interaction = data["interactionWhitelist"]
|
|
134
|
+
_require_type(interaction, dict, "interactionWhitelist")
|
|
135
|
+
for key, items in interaction.items():
|
|
136
|
+
_require_type(items, list, f"interactionWhitelist.{key}")
|
|
137
|
+
|
|
138
|
+
checkpoints = data["checkpointRules"]
|
|
139
|
+
_require_type(checkpoints, dict, "checkpointRules")
|
|
140
|
+
for checkpoint_id, rule in checkpoints.items():
|
|
141
|
+
path = f"checkpointRules.{checkpoint_id}"
|
|
142
|
+
_require_type(rule, dict, path)
|
|
143
|
+
_reject_unknown(rule, CHECKPOINT_RULE_KEYS, path)
|
|
144
|
+
_require_type(rule["afterTasks"], list, f"{path}.afterTasks")
|
|
145
|
+
_require_type(rule["beforeTasks"], list, f"{path}.beforeTasks")
|
|
146
|
+
_require_type(rule["blocking"], bool, f"{path}.blocking")
|
|
147
|
+
|
|
148
|
+
return data
|
|
149
|
+
|
|
150
|
+
|
|
151
|
+
def policy_path_for_repo(repo_root: Path) -> Path:
|
|
152
|
+
return repo_root / POLICY_REL
|
|
153
|
+
|
|
154
|
+
|
|
155
|
+
def load_policy(repo_root: Path) -> dict[str, Any]:
|
|
156
|
+
path = policy_path_for_repo(repo_root)
|
|
157
|
+
if not path.is_file():
|
|
158
|
+
raise FileNotFoundError(f"workflow policy missing: {path}")
|
|
159
|
+
data = json.loads(path.read_text(encoding="utf-8-sig"))
|
|
160
|
+
return validate_policy(data)
|
|
@@ -2,12 +2,12 @@
|
|
|
2
2
|
"schema_version": 2,
|
|
3
3
|
"profile": "general",
|
|
4
4
|
"adapter": "claude-code",
|
|
5
|
-
"bundle_version": "0.2.
|
|
5
|
+
"bundle_version": "0.2.7",
|
|
6
6
|
"generator": "harness_deploy.py",
|
|
7
7
|
"files": [
|
|
8
8
|
{
|
|
9
9
|
"path": ".harness-build.json",
|
|
10
|
-
"sha256": "
|
|
10
|
+
"sha256": "62f9de42abd5f5bfb76387cb20376045bd4be7e9fec84fb46126a56fd54a283b"
|
|
11
11
|
},
|
|
12
12
|
{
|
|
13
13
|
"path": "agents/harness-evaluator.md",
|
|
@@ -25,13 +25,17 @@
|
|
|
25
25
|
"path": "CONTEXT.md",
|
|
26
26
|
"sha256": "19c75b493f6f760d0e607a88bd355acdd232fcb66660887ef94d10425f39507b"
|
|
27
27
|
},
|
|
28
|
+
{
|
|
29
|
+
"path": "contracts/workflow-policy.json",
|
|
30
|
+
"sha256": "36614a228338a7e8f2b518351c129607245e3910a67062a5047acdcd42e86853"
|
|
31
|
+
},
|
|
28
32
|
{
|
|
29
33
|
"path": "harness-archive/checklist.md",
|
|
30
34
|
"sha256": "0329561202acf39646f08c861a2859ffe68164df05b95526af86c5b1842d2009"
|
|
31
35
|
},
|
|
32
36
|
{
|
|
33
37
|
"path": "harness-archive/reference.md",
|
|
34
|
-
"sha256": "
|
|
38
|
+
"sha256": "144437331e65a94c2898bf05832edbf85735a1762cf804dd2ec2e5ade157fe49"
|
|
35
39
|
},
|
|
36
40
|
{
|
|
37
41
|
"path": "harness-archive/scripts/gen-manifest.ps1",
|
|
@@ -39,11 +43,11 @@
|
|
|
39
43
|
},
|
|
40
44
|
{
|
|
41
45
|
"path": "harness-archive/SKILL.md",
|
|
42
|
-
"sha256": "
|
|
46
|
+
"sha256": "aafc3b5b11020aa722f6a069b63fc53c6566fb98ffa3c50681712ee832ed3c6c"
|
|
43
47
|
},
|
|
44
48
|
{
|
|
45
49
|
"path": "harness-archive/templates/render-summary.mjs",
|
|
46
|
-
"sha256": "
|
|
50
|
+
"sha256": "fbfde9bdf16dba8aff1ef638e582a517064e81ea4681ed4831ff2e7c55f5ab9c"
|
|
47
51
|
},
|
|
48
52
|
{
|
|
49
53
|
"path": "harness-archive/templates/summary-data-template.json",
|
|
@@ -59,7 +63,7 @@
|
|
|
59
63
|
},
|
|
60
64
|
{
|
|
61
65
|
"path": "harness-codebase-map/SKILL.md",
|
|
62
|
-
"sha256": "
|
|
66
|
+
"sha256": "c1ed96332c181b5a2290b9be46d06b9cdef9d56ad166c6398392a57e447939af"
|
|
63
67
|
},
|
|
64
68
|
{
|
|
65
69
|
"path": "harness-codebase-map/templates/ARCHITECTURE.md",
|
|
@@ -115,19 +119,19 @@
|
|
|
115
119
|
},
|
|
116
120
|
{
|
|
117
121
|
"path": "harness-knowledge-ingest/scripts/harness_knowledge_mcp.py",
|
|
118
|
-
"sha256": "
|
|
122
|
+
"sha256": "a421ca43e8d1ef1718d51a398e20abae411ea0007b3d45aa333791c511a2aa33"
|
|
119
123
|
},
|
|
120
124
|
{
|
|
121
125
|
"path": "harness-knowledge-ingest/scripts/harness_knowledge.py",
|
|
122
|
-
"sha256": "
|
|
126
|
+
"sha256": "2764b7985cf2675749bef3e7742f8ed93b4293c3603eef4a78040a97e5b05144"
|
|
123
127
|
},
|
|
124
128
|
{
|
|
125
129
|
"path": "harness-knowledge-ingest/SKILL.md",
|
|
126
|
-
"sha256": "
|
|
130
|
+
"sha256": "5bc4b25a863c3d40af2b4213d087f93a309c877c844ab475fb288a351a3673b3"
|
|
127
131
|
},
|
|
128
132
|
{
|
|
129
133
|
"path": "harness-knowledge-query/SKILL.md",
|
|
130
|
-
"sha256": "
|
|
134
|
+
"sha256": "8237f93b7e961e21823e562f4a116a63b0d95f9e7c311d3176fe1a77248e6239"
|
|
131
135
|
},
|
|
132
136
|
{
|
|
133
137
|
"path": "harness-plan/checklist.md",
|
|
@@ -143,7 +147,7 @@
|
|
|
143
147
|
},
|
|
144
148
|
{
|
|
145
149
|
"path": "harness-plan/SKILL.md",
|
|
146
|
-
"sha256": "
|
|
150
|
+
"sha256": "0d8fbc2c59b0d0f1343f978848c0d4f1e93e10147d704f891d298b155ccef697"
|
|
147
151
|
},
|
|
148
152
|
{
|
|
149
153
|
"path": "harness-review/checklist.md",
|
|
@@ -159,11 +163,11 @@
|
|
|
159
163
|
},
|
|
160
164
|
{
|
|
161
165
|
"path": "harness-review/SKILL.md",
|
|
162
|
-
"sha256": "
|
|
166
|
+
"sha256": "85d5c71739c9b46423db5f0e8222ac72c6831afaec7ffa4db6819a30e8efc4bf"
|
|
163
167
|
},
|
|
164
168
|
{
|
|
165
169
|
"path": "harness-run/checklist.md",
|
|
166
|
-
"sha256": "
|
|
170
|
+
"sha256": "1bbfdf3d2a5ac7daa7155bfe0ac39c92e3527edf1b66bdf1ece232d63bd31dc3"
|
|
167
171
|
},
|
|
168
172
|
{
|
|
169
173
|
"path": "harness-run/protocols.md",
|
|
@@ -171,11 +175,11 @@
|
|
|
171
175
|
},
|
|
172
176
|
{
|
|
173
177
|
"path": "harness-run/reference.md",
|
|
174
|
-
"sha256": "
|
|
178
|
+
"sha256": "011a7f75e49392df9c7cde0d7126ac9b6772f779b22807e3b09b49f32622e447"
|
|
175
179
|
},
|
|
176
180
|
{
|
|
177
181
|
"path": "harness-run/SKILL.md",
|
|
178
|
-
"sha256": "
|
|
182
|
+
"sha256": "c0db9a68f55106b8696d0b00e142a8119e077cafce18dd4e0e19303567068c34"
|
|
179
183
|
},
|
|
180
184
|
{
|
|
181
185
|
"path": "harness-submit/checklist.md",
|
|
@@ -187,7 +191,7 @@
|
|
|
187
191
|
},
|
|
188
192
|
{
|
|
189
193
|
"path": "harness-submit/SKILL.md",
|
|
190
|
-
"sha256": "
|
|
194
|
+
"sha256": "48ef9c28d527dc3b9b06e3fe228368076b8394e6489bd0280f09b1d8805df56e"
|
|
191
195
|
},
|
|
192
196
|
{
|
|
193
197
|
"path": "harness-sync/reference.md",
|
|
@@ -195,7 +199,7 @@
|
|
|
195
199
|
},
|
|
196
200
|
{
|
|
197
201
|
"path": "harness-sync/SKILL.md",
|
|
198
|
-
"sha256": "
|
|
202
|
+
"sha256": "0764a8f16714fcd95bf8326b432521b0b46ba7dc2316543ebde46971fe011768"
|
|
199
203
|
},
|
|
200
204
|
{
|
|
201
205
|
"path": "harness-test/checklist.md",
|
|
@@ -207,7 +211,7 @@
|
|
|
207
211
|
},
|
|
208
212
|
{
|
|
209
213
|
"path": "harness-test/reference.md",
|
|
210
|
-
"sha256": "
|
|
214
|
+
"sha256": "b85b30256558a40113f0c2442d32aa9f28606cc975c32c72b7eedb0e655ea275"
|
|
211
215
|
},
|
|
212
216
|
{
|
|
213
217
|
"path": "harness-test/scripts/runtime-helpers.mjs",
|
|
@@ -215,7 +219,7 @@
|
|
|
215
219
|
},
|
|
216
220
|
{
|
|
217
221
|
"path": "harness-test/SKILL.md",
|
|
218
|
-
"sha256": "
|
|
222
|
+
"sha256": "50cb626636fb40b1fe0038dbfb6deb988109970963257e0804b4a1dc68d20e69"
|
|
219
223
|
},
|
|
220
224
|
{
|
|
221
225
|
"path": "protocols/archive-report-protocol.md",
|
|
@@ -227,7 +231,7 @@
|
|
|
227
231
|
},
|
|
228
232
|
{
|
|
229
233
|
"path": "protocols/ledger-protocol.md",
|
|
230
|
-
"sha256": "
|
|
234
|
+
"sha256": "6d47d884bc3858bf50c831ecb4c2db263680b41f6dcf2bc3f9b2100330ce9cac"
|
|
231
235
|
},
|
|
232
236
|
{
|
|
233
237
|
"path": "protocols/powershell-protocol.md",
|
|
@@ -235,7 +239,7 @@
|
|
|
235
239
|
},
|
|
236
240
|
{
|
|
237
241
|
"path": "protocols/report-pipeline-protocol.md",
|
|
238
|
-
"sha256": "
|
|
242
|
+
"sha256": "2abfa402c006e2466514893e05d57ba7f71588f5af6b36b30a17abd3dfa8d710"
|
|
239
243
|
},
|
|
240
244
|
{
|
|
241
245
|
"path": "protocols/sensitive-info-protocol.md",
|
|
@@ -253,9 +257,17 @@
|
|
|
253
257
|
"path": "README.md",
|
|
254
258
|
"sha256": "57ae38357a7bf4118f91c4404b8133a81aced923c836c498b04ff18461eae665"
|
|
255
259
|
},
|
|
260
|
+
{
|
|
261
|
+
"path": "scripts/harness_apidoc.py",
|
|
262
|
+
"sha256": "3fa77ffabf99075a90374d9a4b2ddca3408cc5b90610725d779d9d0dfb70fbbb"
|
|
263
|
+
},
|
|
256
264
|
{
|
|
257
265
|
"path": "scripts/harness_archive.py",
|
|
258
|
-
"sha256": "
|
|
266
|
+
"sha256": "b48bea12431e4122bae5b3f776b518fe4b48b873ba85b1c4e09a29f15a046ad2"
|
|
267
|
+
},
|
|
268
|
+
{
|
|
269
|
+
"path": "scripts/harness_change.py",
|
|
270
|
+
"sha256": "50672476e1a66e046e0b16c86cf55b03e117fc2adf8e0df2ced14aa04f7b2548"
|
|
259
271
|
},
|
|
260
272
|
{
|
|
261
273
|
"path": "scripts/harness_check_gate.py",
|
|
@@ -267,7 +279,11 @@
|
|
|
267
279
|
},
|
|
268
280
|
{
|
|
269
281
|
"path": "scripts/harness_events.py",
|
|
270
|
-
"sha256": "
|
|
282
|
+
"sha256": "dbfb0ba77ebf4a11410449bbf437be93f0f80184d1aa8b1b128f3054635d107e"
|
|
283
|
+
},
|
|
284
|
+
{
|
|
285
|
+
"path": "scripts/harness_gate.py",
|
|
286
|
+
"sha256": "fdc596d51116e6fce58baad24673c94fc04b78b4af8781ee8afd7b2cdb3121eb"
|
|
271
287
|
},
|
|
272
288
|
{
|
|
273
289
|
"path": "scripts/harness_ledger.py",
|
|
@@ -275,23 +291,27 @@
|
|
|
275
291
|
},
|
|
276
292
|
{
|
|
277
293
|
"path": "scripts/harness_preflight.py",
|
|
278
|
-
"sha256": "
|
|
294
|
+
"sha256": "245f70d6c1f9979f2921e14e5d7a6078bd5126ae6c5d8c0bcd6cfd9c4fd8e135"
|
|
279
295
|
},
|
|
280
296
|
{
|
|
281
297
|
"path": "scripts/harness_profile.py",
|
|
282
|
-
"sha256": "
|
|
298
|
+
"sha256": "da31a79b128e4c186f17424ec2ad6feb7fb0aaec46fb79fba0c31098596751b4"
|
|
283
299
|
},
|
|
284
300
|
{
|
|
285
301
|
"path": "scripts/harness_service.py",
|
|
286
|
-
"sha256": "
|
|
302
|
+
"sha256": "17c26b40ed3e7d110b74ef61e627fa0ad1bc84718a1721a066e6d72ee0e37649"
|
|
287
303
|
},
|
|
288
304
|
{
|
|
289
305
|
"path": "scripts/harness_state.py",
|
|
290
|
-
"sha256": "
|
|
306
|
+
"sha256": "27073a1d7b1ea6d54a75bf6e679eb250a3507c95311101b60a1c4d32e00f909e"
|
|
291
307
|
},
|
|
292
308
|
{
|
|
293
309
|
"path": "scripts/harness_test_guard.py",
|
|
294
|
-
"sha256": "
|
|
310
|
+
"sha256": "ee3306a56a9ee7adf37ad4bcd26505c6d2c21fcdcb35b88cf5951c05a8f3b615"
|
|
311
|
+
},
|
|
312
|
+
{
|
|
313
|
+
"path": "scripts/harness_workflow_policy.py",
|
|
314
|
+
"sha256": "3e754da7041ebec852c3f0be8736cec423d7a0ee98424164bfe4a06fc4d8ca4f"
|
|
295
315
|
}
|
|
296
316
|
]
|
|
297
317
|
}
|
|
@@ -2,12 +2,12 @@
|
|
|
2
2
|
"schema_version": 2,
|
|
3
3
|
"profile": "general",
|
|
4
4
|
"adapter": "codebuddy",
|
|
5
|
-
"bundle_version": "0.2.
|
|
5
|
+
"bundle_version": "0.2.7",
|
|
6
6
|
"generator": "harness_deploy.py",
|
|
7
7
|
"files": [
|
|
8
8
|
{
|
|
9
9
|
"path": ".harness-build.json",
|
|
10
|
-
"sha256": "
|
|
10
|
+
"sha256": "82e7ca91e1de4f7a268812a4d44ea58a5a9f58204f64258fca9f705e377a94b3"
|
|
11
11
|
},
|
|
12
12
|
{
|
|
13
13
|
"path": "agents/harness-evaluator.md",
|
|
@@ -25,13 +25,17 @@
|
|
|
25
25
|
"path": "CONTEXT.md",
|
|
26
26
|
"sha256": "19c75b493f6f760d0e607a88bd355acdd232fcb66660887ef94d10425f39507b"
|
|
27
27
|
},
|
|
28
|
+
{
|
|
29
|
+
"path": "contracts/workflow-policy.json",
|
|
30
|
+
"sha256": "36614a228338a7e8f2b518351c129607245e3910a67062a5047acdcd42e86853"
|
|
31
|
+
},
|
|
28
32
|
{
|
|
29
33
|
"path": "harness-archive/checklist.md",
|
|
30
34
|
"sha256": "0329561202acf39646f08c861a2859ffe68164df05b95526af86c5b1842d2009"
|
|
31
35
|
},
|
|
32
36
|
{
|
|
33
37
|
"path": "harness-archive/reference.md",
|
|
34
|
-
"sha256": "
|
|
38
|
+
"sha256": "144437331e65a94c2898bf05832edbf85735a1762cf804dd2ec2e5ade157fe49"
|
|
35
39
|
},
|
|
36
40
|
{
|
|
37
41
|
"path": "harness-archive/scripts/gen-manifest.ps1",
|
|
@@ -39,11 +43,11 @@
|
|
|
39
43
|
},
|
|
40
44
|
{
|
|
41
45
|
"path": "harness-archive/SKILL.md",
|
|
42
|
-
"sha256": "
|
|
46
|
+
"sha256": "1101ff1566fe775869988347890adc85392eb060c0e87bc3b98e4608ad8883f7"
|
|
43
47
|
},
|
|
44
48
|
{
|
|
45
49
|
"path": "harness-archive/templates/render-summary.mjs",
|
|
46
|
-
"sha256": "
|
|
50
|
+
"sha256": "fbfde9bdf16dba8aff1ef638e582a517064e81ea4681ed4831ff2e7c55f5ab9c"
|
|
47
51
|
},
|
|
48
52
|
{
|
|
49
53
|
"path": "harness-archive/templates/summary-data-template.json",
|
|
@@ -59,7 +63,7 @@
|
|
|
59
63
|
},
|
|
60
64
|
{
|
|
61
65
|
"path": "harness-codebase-map/SKILL.md",
|
|
62
|
-
"sha256": "
|
|
66
|
+
"sha256": "38080ef3e37c15d09325566087d378f52f37b80ea16a3294a6a263832f2e7cbd"
|
|
63
67
|
},
|
|
64
68
|
{
|
|
65
69
|
"path": "harness-codebase-map/templates/ARCHITECTURE.md",
|
|
@@ -115,19 +119,19 @@
|
|
|
115
119
|
},
|
|
116
120
|
{
|
|
117
121
|
"path": "harness-knowledge-ingest/scripts/harness_knowledge_mcp.py",
|
|
118
|
-
"sha256": "
|
|
122
|
+
"sha256": "a421ca43e8d1ef1718d51a398e20abae411ea0007b3d45aa333791c511a2aa33"
|
|
119
123
|
},
|
|
120
124
|
{
|
|
121
125
|
"path": "harness-knowledge-ingest/scripts/harness_knowledge.py",
|
|
122
|
-
"sha256": "
|
|
126
|
+
"sha256": "2764b7985cf2675749bef3e7742f8ed93b4293c3603eef4a78040a97e5b05144"
|
|
123
127
|
},
|
|
124
128
|
{
|
|
125
129
|
"path": "harness-knowledge-ingest/SKILL.md",
|
|
126
|
-
"sha256": "
|
|
130
|
+
"sha256": "ea7043e61023abda02ad904d5707b972051cea917329ec04093884471d6f5d00"
|
|
127
131
|
},
|
|
128
132
|
{
|
|
129
133
|
"path": "harness-knowledge-query/SKILL.md",
|
|
130
|
-
"sha256": "
|
|
134
|
+
"sha256": "4546742d11d478fb18712d032c87793da2a74f4306a74034b1e52be0fa60ffac"
|
|
131
135
|
},
|
|
132
136
|
{
|
|
133
137
|
"path": "harness-plan/checklist.md",
|
|
@@ -143,7 +147,7 @@
|
|
|
143
147
|
},
|
|
144
148
|
{
|
|
145
149
|
"path": "harness-plan/SKILL.md",
|
|
146
|
-
"sha256": "
|
|
150
|
+
"sha256": "d8f43c6e24acce0b71ea58031029cd530351b28b1b1637d4278941ac0b5585a4"
|
|
147
151
|
},
|
|
148
152
|
{
|
|
149
153
|
"path": "harness-review/checklist.md",
|
|
@@ -159,11 +163,11 @@
|
|
|
159
163
|
},
|
|
160
164
|
{
|
|
161
165
|
"path": "harness-review/SKILL.md",
|
|
162
|
-
"sha256": "
|
|
166
|
+
"sha256": "9acdec41556bc5872da1982b5044a5de05fb21c59b2a6dd9f96260691b075a26"
|
|
163
167
|
},
|
|
164
168
|
{
|
|
165
169
|
"path": "harness-run/checklist.md",
|
|
166
|
-
"sha256": "
|
|
170
|
+
"sha256": "1bbfdf3d2a5ac7daa7155bfe0ac39c92e3527edf1b66bdf1ece232d63bd31dc3"
|
|
167
171
|
},
|
|
168
172
|
{
|
|
169
173
|
"path": "harness-run/protocols.md",
|
|
@@ -171,11 +175,11 @@
|
|
|
171
175
|
},
|
|
172
176
|
{
|
|
173
177
|
"path": "harness-run/reference.md",
|
|
174
|
-
"sha256": "
|
|
178
|
+
"sha256": "011a7f75e49392df9c7cde0d7126ac9b6772f779b22807e3b09b49f32622e447"
|
|
175
179
|
},
|
|
176
180
|
{
|
|
177
181
|
"path": "harness-run/SKILL.md",
|
|
178
|
-
"sha256": "
|
|
182
|
+
"sha256": "5c3aeb6ad0d4e6c7559b5981287f254f8c78049933f1f70b6037e5feeb65cadc"
|
|
179
183
|
},
|
|
180
184
|
{
|
|
181
185
|
"path": "harness-submit/checklist.md",
|
|
@@ -187,7 +191,7 @@
|
|
|
187
191
|
},
|
|
188
192
|
{
|
|
189
193
|
"path": "harness-submit/SKILL.md",
|
|
190
|
-
"sha256": "
|
|
194
|
+
"sha256": "424039642d3657c1bf47e4c99a9c0c2a6ee1676e388b7b1a91c73b33fbcfcd8e"
|
|
191
195
|
},
|
|
192
196
|
{
|
|
193
197
|
"path": "harness-sync/reference.md",
|
|
@@ -195,7 +199,7 @@
|
|
|
195
199
|
},
|
|
196
200
|
{
|
|
197
201
|
"path": "harness-sync/SKILL.md",
|
|
198
|
-
"sha256": "
|
|
202
|
+
"sha256": "10b5fd45695cc931d217280ced77a3e57d0ceeb95031dad41b58658c980b669d"
|
|
199
203
|
},
|
|
200
204
|
{
|
|
201
205
|
"path": "harness-test/checklist.md",
|
|
@@ -207,7 +211,7 @@
|
|
|
207
211
|
},
|
|
208
212
|
{
|
|
209
213
|
"path": "harness-test/reference.md",
|
|
210
|
-
"sha256": "
|
|
214
|
+
"sha256": "b85b30256558a40113f0c2442d32aa9f28606cc975c32c72b7eedb0e655ea275"
|
|
211
215
|
},
|
|
212
216
|
{
|
|
213
217
|
"path": "harness-test/scripts/runtime-helpers.mjs",
|
|
@@ -215,7 +219,7 @@
|
|
|
215
219
|
},
|
|
216
220
|
{
|
|
217
221
|
"path": "harness-test/SKILL.md",
|
|
218
|
-
"sha256": "
|
|
222
|
+
"sha256": "dd7b93192c99f678b1eb8af15a7ca3c8e5d196545dc99c3759307a1bcb87111b"
|
|
219
223
|
},
|
|
220
224
|
{
|
|
221
225
|
"path": "protocols/archive-report-protocol.md",
|
|
@@ -227,7 +231,7 @@
|
|
|
227
231
|
},
|
|
228
232
|
{
|
|
229
233
|
"path": "protocols/ledger-protocol.md",
|
|
230
|
-
"sha256": "
|
|
234
|
+
"sha256": "6d47d884bc3858bf50c831ecb4c2db263680b41f6dcf2bc3f9b2100330ce9cac"
|
|
231
235
|
},
|
|
232
236
|
{
|
|
233
237
|
"path": "protocols/powershell-protocol.md",
|
|
@@ -235,7 +239,7 @@
|
|
|
235
239
|
},
|
|
236
240
|
{
|
|
237
241
|
"path": "protocols/report-pipeline-protocol.md",
|
|
238
|
-
"sha256": "
|
|
242
|
+
"sha256": "2abfa402c006e2466514893e05d57ba7f71588f5af6b36b30a17abd3dfa8d710"
|
|
239
243
|
},
|
|
240
244
|
{
|
|
241
245
|
"path": "protocols/sensitive-info-protocol.md",
|
|
@@ -253,9 +257,17 @@
|
|
|
253
257
|
"path": "README.md",
|
|
254
258
|
"sha256": "57ae38357a7bf4118f91c4404b8133a81aced923c836c498b04ff18461eae665"
|
|
255
259
|
},
|
|
260
|
+
{
|
|
261
|
+
"path": "scripts/harness_apidoc.py",
|
|
262
|
+
"sha256": "3fa77ffabf99075a90374d9a4b2ddca3408cc5b90610725d779d9d0dfb70fbbb"
|
|
263
|
+
},
|
|
256
264
|
{
|
|
257
265
|
"path": "scripts/harness_archive.py",
|
|
258
|
-
"sha256": "
|
|
266
|
+
"sha256": "b48bea12431e4122bae5b3f776b518fe4b48b873ba85b1c4e09a29f15a046ad2"
|
|
267
|
+
},
|
|
268
|
+
{
|
|
269
|
+
"path": "scripts/harness_change.py",
|
|
270
|
+
"sha256": "50672476e1a66e046e0b16c86cf55b03e117fc2adf8e0df2ced14aa04f7b2548"
|
|
259
271
|
},
|
|
260
272
|
{
|
|
261
273
|
"path": "scripts/harness_check_gate.py",
|
|
@@ -267,7 +279,11 @@
|
|
|
267
279
|
},
|
|
268
280
|
{
|
|
269
281
|
"path": "scripts/harness_events.py",
|
|
270
|
-
"sha256": "
|
|
282
|
+
"sha256": "dbfb0ba77ebf4a11410449bbf437be93f0f80184d1aa8b1b128f3054635d107e"
|
|
283
|
+
},
|
|
284
|
+
{
|
|
285
|
+
"path": "scripts/harness_gate.py",
|
|
286
|
+
"sha256": "fdc596d51116e6fce58baad24673c94fc04b78b4af8781ee8afd7b2cdb3121eb"
|
|
271
287
|
},
|
|
272
288
|
{
|
|
273
289
|
"path": "scripts/harness_ledger.py",
|
|
@@ -275,23 +291,27 @@
|
|
|
275
291
|
},
|
|
276
292
|
{
|
|
277
293
|
"path": "scripts/harness_preflight.py",
|
|
278
|
-
"sha256": "
|
|
294
|
+
"sha256": "245f70d6c1f9979f2921e14e5d7a6078bd5126ae6c5d8c0bcd6cfd9c4fd8e135"
|
|
279
295
|
},
|
|
280
296
|
{
|
|
281
297
|
"path": "scripts/harness_profile.py",
|
|
282
|
-
"sha256": "
|
|
298
|
+
"sha256": "da31a79b128e4c186f17424ec2ad6feb7fb0aaec46fb79fba0c31098596751b4"
|
|
283
299
|
},
|
|
284
300
|
{
|
|
285
301
|
"path": "scripts/harness_service.py",
|
|
286
|
-
"sha256": "
|
|
302
|
+
"sha256": "17c26b40ed3e7d110b74ef61e627fa0ad1bc84718a1721a066e6d72ee0e37649"
|
|
287
303
|
},
|
|
288
304
|
{
|
|
289
305
|
"path": "scripts/harness_state.py",
|
|
290
|
-
"sha256": "
|
|
306
|
+
"sha256": "27073a1d7b1ea6d54a75bf6e679eb250a3507c95311101b60a1c4d32e00f909e"
|
|
291
307
|
},
|
|
292
308
|
{
|
|
293
309
|
"path": "scripts/harness_test_guard.py",
|
|
294
|
-
"sha256": "
|
|
310
|
+
"sha256": "ee3306a56a9ee7adf37ad4bcd26505c6d2c21fcdcb35b88cf5951c05a8f3b615"
|
|
311
|
+
},
|
|
312
|
+
{
|
|
313
|
+
"path": "scripts/harness_workflow_policy.py",
|
|
314
|
+
"sha256": "3e754da7041ebec852c3f0be8736cec423d7a0ee98424164bfe4a06fc4d8ca4f"
|
|
295
315
|
}
|
|
296
316
|
]
|
|
297
317
|
}
|