@hunter-harness/workflow-harness 0.4.8 → 0.4.9
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/CONTEXT.md +1 -1
- package/harness/bundles/general/claude-code/README.md +36 -38
- package/harness/bundles/general/claude-code/contracts/workflow-policy.json +0 -50
- package/harness/bundles/general/claude-code/harness-archive/SKILL.md +1 -1
- package/harness/bundles/general/claude-code/harness-codebase-map/SKILL.md +1 -1
- package/harness/bundles/general/claude-code/harness-codebase-map/templates/TESTING.md +1 -1
- package/harness/bundles/general/claude-code/harness-execute/SKILL.md +16 -16
- package/harness/bundles/general/{codex/harness-run/checklist.md → claude-code/harness-execute/coding-checklist.md} +9 -9
- package/harness/bundles/general/{codex/harness-run/reference.md → claude-code/harness-execute/coding-reference.md} +36 -36
- package/harness/bundles/general/{codex/harness-run → claude-code/harness-execute}/protocols.md +4 -4
- package/harness/bundles/general/{codebuddy/harness-test/checklist.md → claude-code/harness-execute/testing-checklist.md} +9 -10
- package/harness/bundles/general/claude-code/{harness-test/pitfalls-java.md → harness-execute/testing-pitfalls-java.md} +2 -2
- package/harness/bundles/general/{codex/harness-test/pitfalls.md → claude-code/harness-execute/testing-pitfalls.md} +7 -7
- package/harness/bundles/general/claude-code/{harness-test/reference.md → harness-execute/testing-reference.md} +13 -13
- package/harness/bundles/general/claude-code/harness-knowledge-ingest/SKILL.md +1 -1
- package/harness/bundles/general/claude-code/harness-knowledge-query/SKILL.md +1 -1
- package/harness/bundles/general/claude-code/harness-plan/SKILL.md +1 -1
- package/harness/bundles/general/claude-code/harness-plan/checklist.md +1 -1
- package/harness/bundles/general/claude-code/harness-pull/SKILL.md +1 -1
- package/harness/bundles/general/claude-code/harness-push/SKILL.md +1 -1
- package/harness/bundles/general/claude-code/harness-review/SKILL.md +3 -3
- package/harness/bundles/general/claude-code/harness-review/checklist.md +1 -1
- package/harness/bundles/general/claude-code/harness-submit/SKILL.md +1 -1
- package/harness/bundles/general/claude-code/harness-submit/checklist.md +1 -1
- package/harness/bundles/general/claude-code/harness-submit/reference.md +1 -1
- package/harness/bundles/general/claude-code/harness-sync/SKILL.md +1 -1
- package/harness/bundles/general/claude-code/protocols/evidence-based-reporting-protocol.md +1 -1
- package/harness/bundles/general/claude-code/protocols/ledger-protocol.md +8 -8
- package/harness/bundles/general/claude-code/protocols/sensitive-info-protocol.md +2 -2
- package/harness/bundles/general/claude-code/scripts/harness_deploy.py +2 -2
- package/harness/bundles/general/claude-code/scripts/harness_gate.py +1 -1
- package/harness/bundles/general/claude-code/scripts/harness_profile.py +3 -3
- package/harness/bundles/general/codebuddy/.harness-build.json +1 -1
- package/harness/bundles/general/codebuddy/CONTEXT.md +1 -1
- package/harness/bundles/general/codebuddy/README.md +36 -38
- package/harness/bundles/general/codebuddy/contracts/workflow-policy.json +0 -50
- package/harness/bundles/general/codebuddy/harness-archive/SKILL.md +1 -1
- package/harness/bundles/general/codebuddy/harness-codebase-map/SKILL.md +1 -1
- package/harness/bundles/general/codebuddy/harness-codebase-map/templates/TESTING.md +1 -1
- package/harness/bundles/general/codebuddy/harness-execute/SKILL.md +16 -16
- package/harness/bundles/general/{claude-code/harness-run/checklist.md → codebuddy/harness-execute/coding-checklist.md} +9 -9
- package/harness/bundles/general/codebuddy/{harness-run/reference.md → harness-execute/coding-reference.md} +36 -36
- package/harness/bundles/general/codebuddy/{harness-run → harness-execute}/protocols.md +4 -4
- package/harness/bundles/general/{codex/harness-test/checklist.md → codebuddy/harness-execute/testing-checklist.md} +9 -10
- package/harness/bundles/general/codebuddy/{harness-test/pitfalls-java.md → harness-execute/testing-pitfalls-java.md} +2 -2
- package/harness/bundles/general/{claude-code/harness-test/pitfalls.md → codebuddy/harness-execute/testing-pitfalls.md} +7 -7
- package/harness/bundles/general/codebuddy/{harness-test/reference.md → harness-execute/testing-reference.md} +13 -13
- package/harness/bundles/general/codebuddy/harness-knowledge-ingest/SKILL.md +1 -1
- package/harness/bundles/general/codebuddy/harness-knowledge-query/SKILL.md +1 -1
- package/harness/bundles/general/codebuddy/harness-plan/SKILL.md +1 -1
- package/harness/bundles/general/codebuddy/harness-plan/checklist.md +1 -1
- package/harness/bundles/general/codebuddy/harness-pull/SKILL.md +1 -1
- package/harness/bundles/general/codebuddy/harness-push/SKILL.md +1 -1
- package/harness/bundles/general/codebuddy/harness-review/SKILL.md +3 -3
- package/harness/bundles/general/codebuddy/harness-review/checklist.md +1 -1
- package/harness/bundles/general/codebuddy/harness-submit/SKILL.md +1 -1
- package/harness/bundles/general/codebuddy/harness-submit/checklist.md +1 -1
- package/harness/bundles/general/codebuddy/harness-submit/reference.md +1 -1
- package/harness/bundles/general/codebuddy/harness-sync/SKILL.md +1 -1
- package/harness/bundles/general/codebuddy/protocols/evidence-based-reporting-protocol.md +1 -1
- package/harness/bundles/general/codebuddy/protocols/ledger-protocol.md +8 -8
- package/harness/bundles/general/codebuddy/protocols/sensitive-info-protocol.md +2 -2
- package/harness/bundles/general/codebuddy/scripts/harness_deploy.py +2 -2
- package/harness/bundles/general/codebuddy/scripts/harness_gate.py +1 -1
- package/harness/bundles/general/codebuddy/scripts/harness_profile.py +3 -3
- package/harness/bundles/general/codex/.harness-build.json +1 -1
- package/harness/bundles/general/codex/CONTEXT.md +1 -1
- package/harness/bundles/general/codex/README.md +36 -38
- package/harness/bundles/general/codex/contracts/workflow-policy.json +0 -50
- package/harness/bundles/general/codex/harness-archive/SKILL.md +1 -1
- package/harness/bundles/general/codex/harness-codebase-map/SKILL.md +1 -1
- package/harness/bundles/general/codex/harness-codebase-map/templates/TESTING.md +1 -1
- package/harness/bundles/general/codex/harness-execute/SKILL.md +16 -16
- package/harness/bundles/general/{cursor/harness-run/checklist.md → codex/harness-execute/coding-checklist.md} +9 -9
- package/harness/bundles/general/{cursor/harness-run/reference.md → codex/harness-execute/coding-reference.md} +36 -36
- package/harness/bundles/general/{claude-code/harness-run → codex/harness-execute}/protocols.md +4 -4
- package/harness/bundles/general/{cursor/harness-test/checklist.md → codex/harness-execute/testing-checklist.md} +9 -10
- package/harness/bundles/general/codex/{harness-test/pitfalls-java.md → harness-execute/testing-pitfalls-java.md} +2 -2
- package/harness/bundles/general/{codebuddy/harness-test/pitfalls.md → codex/harness-execute/testing-pitfalls.md} +7 -7
- package/harness/bundles/general/codex/{harness-test/reference.md → harness-execute/testing-reference.md} +13 -13
- package/harness/bundles/general/codex/harness-knowledge-ingest/SKILL.md +1 -1
- package/harness/bundles/general/codex/harness-knowledge-query/SKILL.md +1 -1
- package/harness/bundles/general/codex/harness-plan/SKILL.md +1 -1
- package/harness/bundles/general/codex/harness-plan/checklist.md +1 -1
- package/harness/bundles/general/codex/harness-pull/SKILL.md +1 -1
- package/harness/bundles/general/codex/harness-push/SKILL.md +1 -1
- package/harness/bundles/general/codex/harness-review/SKILL.md +3 -3
- package/harness/bundles/general/codex/harness-review/checklist.md +1 -1
- package/harness/bundles/general/codex/harness-submit/SKILL.md +1 -1
- package/harness/bundles/general/codex/harness-submit/checklist.md +1 -1
- package/harness/bundles/general/codex/harness-submit/reference.md +1 -1
- package/harness/bundles/general/codex/harness-sync/SKILL.md +1 -1
- package/harness/bundles/general/codex/protocols/evidence-based-reporting-protocol.md +1 -1
- package/harness/bundles/general/codex/protocols/ledger-protocol.md +8 -8
- package/harness/bundles/general/codex/protocols/sensitive-info-protocol.md +2 -2
- package/harness/bundles/general/codex/scripts/harness_deploy.py +2 -2
- package/harness/bundles/general/codex/scripts/harness_gate.py +1 -1
- package/harness/bundles/general/codex/scripts/harness_profile.py +3 -3
- package/harness/bundles/general/cursor/.harness-build.json +1 -1
- package/harness/bundles/general/cursor/CONTEXT.md +1 -1
- package/harness/bundles/general/cursor/README.md +36 -38
- package/harness/bundles/general/cursor/contracts/workflow-policy.json +0 -50
- package/harness/bundles/general/cursor/harness-archive/SKILL.md +1 -1
- package/harness/bundles/general/cursor/harness-codebase-map/SKILL.md +1 -1
- package/harness/bundles/general/cursor/harness-codebase-map/templates/TESTING.md +1 -1
- package/harness/bundles/general/cursor/harness-execute/SKILL.md +16 -16
- package/harness/bundles/general/{codebuddy/harness-run/checklist.md → cursor/harness-execute/coding-checklist.md} +9 -9
- package/harness/bundles/general/{claude-code/harness-run/reference.md → cursor/harness-execute/coding-reference.md} +36 -36
- package/harness/bundles/general/cursor/{harness-run → harness-execute}/protocols.md +4 -4
- package/harness/bundles/general/{claude-code/harness-test/checklist.md → cursor/harness-execute/testing-checklist.md} +9 -10
- package/harness/bundles/general/cursor/{harness-test/pitfalls-java.md → harness-execute/testing-pitfalls-java.md} +2 -2
- package/harness/bundles/general/cursor/{harness-test/pitfalls.md → harness-execute/testing-pitfalls.md} +7 -7
- package/harness/bundles/general/cursor/{harness-test/reference.md → harness-execute/testing-reference.md} +13 -13
- package/harness/bundles/general/cursor/harness-knowledge-ingest/SKILL.md +1 -1
- package/harness/bundles/general/cursor/harness-knowledge-query/SKILL.md +1 -1
- package/harness/bundles/general/cursor/harness-plan/SKILL.md +1 -1
- package/harness/bundles/general/cursor/harness-plan/checklist.md +1 -1
- package/harness/bundles/general/cursor/harness-pull/SKILL.md +1 -1
- package/harness/bundles/general/cursor/harness-push/SKILL.md +1 -1
- package/harness/bundles/general/cursor/harness-review/SKILL.md +3 -3
- package/harness/bundles/general/cursor/harness-review/checklist.md +1 -1
- package/harness/bundles/general/cursor/harness-submit/SKILL.md +1 -1
- package/harness/bundles/general/cursor/harness-submit/checklist.md +1 -1
- package/harness/bundles/general/cursor/harness-submit/reference.md +1 -1
- package/harness/bundles/general/cursor/harness-sync/SKILL.md +1 -1
- package/harness/bundles/general/cursor/protocols/evidence-based-reporting-protocol.md +1 -1
- package/harness/bundles/general/cursor/protocols/ledger-protocol.md +8 -8
- package/harness/bundles/general/cursor/protocols/sensitive-info-protocol.md +2 -2
- package/harness/bundles/general/cursor/scripts/harness_deploy.py +2 -2
- package/harness/bundles/general/cursor/scripts/harness_gate.py +1 -1
- package/harness/bundles/general/cursor/scripts/harness_profile.py +3 -3
- package/harness/bundles/general/pi/.harness-build.json +1 -1
- package/harness/bundles/general/pi/CONTEXT.md +1 -1
- package/harness/bundles/general/pi/README.md +36 -38
- package/harness/bundles/general/pi/contracts/workflow-policy.json +0 -50
- package/harness/bundles/general/pi/harness-archive/SKILL.md +1 -1
- package/harness/bundles/general/pi/harness-codebase-map/SKILL.md +1 -1
- package/harness/bundles/general/pi/harness-codebase-map/templates/TESTING.md +1 -1
- package/harness/bundles/general/pi/harness-execute/SKILL.md +16 -16
- package/harness/bundles/general/pi/harness-execute/coding-checklist.md +279 -0
- package/harness/bundles/general/pi/harness-execute/coding-reference.md +886 -0
- package/harness/bundles/general/pi/harness-execute/protocols.md +141 -0
- package/harness/bundles/general/pi/harness-execute/testing-checklist.md +358 -0
- package/harness/bundles/general/pi/harness-execute/testing-pitfalls-java.md +14 -0
- package/harness/bundles/general/pi/harness-execute/testing-pitfalls.md +307 -0
- package/harness/bundles/general/pi/harness-execute/testing-reference.md +880 -0
- package/harness/bundles/general/pi/harness-knowledge-ingest/SKILL.md +1 -1
- package/harness/bundles/general/pi/harness-knowledge-query/SKILL.md +1 -1
- package/harness/bundles/general/pi/harness-plan/SKILL.md +1 -1
- package/harness/bundles/general/pi/harness-plan/checklist.md +1 -1
- package/harness/bundles/general/pi/harness-pull/SKILL.md +1 -1
- package/harness/bundles/general/pi/harness-push/SKILL.md +1 -1
- package/harness/bundles/general/pi/harness-review/SKILL.md +3 -3
- package/harness/bundles/general/pi/harness-review/checklist.md +1 -1
- package/harness/bundles/general/pi/harness-submit/SKILL.md +1 -1
- package/harness/bundles/general/pi/harness-submit/checklist.md +1 -1
- package/harness/bundles/general/pi/harness-submit/reference.md +1 -1
- package/harness/bundles/general/pi/harness-sync/SKILL.md +1 -1
- package/harness/bundles/general/pi/protocols/evidence-based-reporting-protocol.md +1 -1
- package/harness/bundles/general/pi/protocols/ledger-protocol.md +8 -8
- package/harness/bundles/general/pi/protocols/sensitive-info-protocol.md +2 -2
- package/harness/bundles/general/pi/scripts/harness_deploy.py +2 -2
- package/harness/bundles/general/pi/scripts/harness_gate.py +1 -1
- package/harness/bundles/general/pi/scripts/harness_profile.py +3 -3
- package/harness/bundles/java/claude-code/.harness-build.json +1 -1
- package/harness/bundles/java/claude-code/CONTEXT.md +1 -1
- package/harness/bundles/java/claude-code/README.md +36 -38
- package/harness/bundles/java/claude-code/contracts/workflow-policy.json +0 -50
- package/harness/bundles/java/claude-code/harness-apidoc/SKILL.md +1 -1
- package/harness/bundles/java/claude-code/harness-archive/SKILL.md +1 -1
- package/harness/bundles/java/claude-code/harness-codebase-map/SKILL.md +1 -1
- package/harness/bundles/java/claude-code/harness-codebase-map/templates/TESTING.md +1 -1
- package/harness/bundles/java/claude-code/harness-execute/SKILL.md +48 -16
- package/harness/bundles/java/claude-code/{harness-run/checklist.md → harness-execute/coding-checklist.md} +6 -6
- package/harness/bundles/java/claude-code/{harness-run/reference.md → harness-execute/coding-reference.md} +37 -37
- package/harness/bundles/java/claude-code/harness-execute/protocols.md +141 -0
- package/harness/bundles/java/claude-code/{harness-test/checklist.md → harness-execute/testing-checklist.md} +9 -9
- package/harness/bundles/java/claude-code/{harness-test/pitfalls-java.md → harness-execute/testing-pitfalls-java.md} +1 -1
- package/harness/bundles/java/claude-code/harness-execute/testing-pitfalls.md +307 -0
- package/harness/bundles/java/claude-code/{harness-test/reference.md → harness-execute/testing-reference.md} +13 -13
- package/harness/bundles/java/claude-code/harness-knowledge-ingest/SKILL.md +1 -1
- package/harness/bundles/java/claude-code/harness-knowledge-query/SKILL.md +1 -1
- package/harness/bundles/java/claude-code/harness-package/SKILL.md +1 -1
- package/harness/bundles/java/claude-code/harness-package/checklist.md +7 -7
- package/harness/bundles/java/claude-code/harness-plan/SKILL.md +1 -1
- package/harness/bundles/java/claude-code/harness-plan/checklist.md +1 -1
- package/harness/bundles/java/claude-code/harness-pull/SKILL.md +1 -1
- package/harness/bundles/java/claude-code/harness-push/SKILL.md +1 -1
- package/harness/bundles/java/claude-code/harness-review/SKILL.md +3 -3
- package/harness/bundles/java/claude-code/harness-review/checklist.md +1 -1
- package/harness/bundles/java/claude-code/harness-submit/SKILL.md +1 -1
- package/harness/bundles/java/claude-code/harness-submit/checklist.md +1 -1
- package/harness/bundles/java/claude-code/harness-submit/reference.md +1 -1
- package/harness/bundles/java/claude-code/harness-sync/SKILL.md +1 -1
- package/harness/bundles/java/claude-code/protocols/evidence-based-reporting-protocol.md +1 -1
- package/harness/bundles/java/claude-code/protocols/ledger-protocol.md +8 -8
- package/harness/bundles/java/claude-code/protocols/sensitive-info-protocol.md +2 -2
- package/harness/bundles/java/claude-code/scripts/harness_deploy.py +2 -2
- package/harness/bundles/java/claude-code/scripts/harness_gate.py +1 -1
- package/harness/bundles/java/claude-code/scripts/harness_profile.py +3 -3
- package/harness/bundles/java/codebuddy/.harness-build.json +1 -1
- package/harness/bundles/java/codebuddy/CONTEXT.md +1 -1
- package/harness/bundles/java/codebuddy/README.md +36 -38
- package/harness/bundles/java/codebuddy/contracts/workflow-policy.json +0 -50
- package/harness/bundles/java/codebuddy/harness-apidoc/SKILL.md +1 -1
- package/harness/bundles/java/codebuddy/harness-archive/SKILL.md +1 -1
- package/harness/bundles/java/codebuddy/harness-codebase-map/SKILL.md +1 -1
- package/harness/bundles/java/codebuddy/harness-codebase-map/templates/TESTING.md +1 -1
- package/harness/bundles/java/codebuddy/harness-execute/SKILL.md +48 -16
- package/harness/bundles/java/codebuddy/{harness-run/checklist.md → harness-execute/coding-checklist.md} +6 -6
- package/harness/bundles/java/codebuddy/{harness-run/reference.md → harness-execute/coding-reference.md} +37 -37
- package/harness/bundles/java/codebuddy/harness-execute/protocols.md +141 -0
- package/harness/bundles/java/codebuddy/{harness-test/checklist.md → harness-execute/testing-checklist.md} +9 -9
- package/harness/bundles/java/codebuddy/{harness-test/pitfalls-java.md → harness-execute/testing-pitfalls-java.md} +1 -1
- package/harness/bundles/java/codebuddy/harness-execute/testing-pitfalls.md +307 -0
- package/harness/bundles/java/codebuddy/{harness-test/reference.md → harness-execute/testing-reference.md} +13 -13
- package/harness/bundles/java/codebuddy/harness-knowledge-ingest/SKILL.md +1 -1
- package/harness/bundles/java/codebuddy/harness-knowledge-query/SKILL.md +1 -1
- package/harness/bundles/java/codebuddy/harness-package/SKILL.md +1 -1
- package/harness/bundles/java/codebuddy/harness-package/checklist.md +7 -7
- package/harness/bundles/java/codebuddy/harness-plan/SKILL.md +1 -1
- package/harness/bundles/java/codebuddy/harness-plan/checklist.md +1 -1
- package/harness/bundles/java/codebuddy/harness-pull/SKILL.md +1 -1
- package/harness/bundles/java/codebuddy/harness-push/SKILL.md +1 -1
- package/harness/bundles/java/codebuddy/harness-review/SKILL.md +3 -3
- package/harness/bundles/java/codebuddy/harness-review/checklist.md +1 -1
- package/harness/bundles/java/codebuddy/harness-submit/SKILL.md +1 -1
- package/harness/bundles/java/codebuddy/harness-submit/checklist.md +1 -1
- package/harness/bundles/java/codebuddy/harness-submit/reference.md +1 -1
- package/harness/bundles/java/codebuddy/harness-sync/SKILL.md +1 -1
- package/harness/bundles/java/codebuddy/protocols/evidence-based-reporting-protocol.md +1 -1
- package/harness/bundles/java/codebuddy/protocols/ledger-protocol.md +8 -8
- package/harness/bundles/java/codebuddy/protocols/sensitive-info-protocol.md +2 -2
- package/harness/bundles/java/codebuddy/scripts/harness_deploy.py +2 -2
- package/harness/bundles/java/codebuddy/scripts/harness_gate.py +1 -1
- package/harness/bundles/java/codebuddy/scripts/harness_profile.py +3 -3
- package/harness/bundles/java/codex/.harness-build.json +1 -1
- package/harness/bundles/java/codex/CONTEXT.md +1 -1
- package/harness/bundles/java/codex/README.md +36 -38
- package/harness/bundles/java/codex/contracts/workflow-policy.json +0 -50
- package/harness/bundles/java/codex/harness-apidoc/SKILL.md +1 -1
- package/harness/bundles/java/codex/harness-archive/SKILL.md +1 -1
- package/harness/bundles/java/codex/harness-codebase-map/SKILL.md +1 -1
- package/harness/bundles/java/codex/harness-codebase-map/templates/TESTING.md +1 -1
- package/harness/bundles/java/codex/harness-execute/SKILL.md +48 -16
- package/harness/bundles/java/codex/{harness-run/checklist.md → harness-execute/coding-checklist.md} +6 -6
- package/harness/bundles/java/codex/{harness-run/reference.md → harness-execute/coding-reference.md} +37 -37
- package/harness/bundles/java/codex/harness-execute/protocols.md +141 -0
- package/harness/bundles/java/codex/{harness-test/checklist.md → harness-execute/testing-checklist.md} +9 -9
- package/harness/bundles/java/codex/{harness-test/pitfalls-java.md → harness-execute/testing-pitfalls-java.md} +1 -1
- package/harness/bundles/java/codex/harness-execute/testing-pitfalls.md +307 -0
- package/harness/bundles/java/codex/{harness-test/reference.md → harness-execute/testing-reference.md} +13 -13
- package/harness/bundles/java/codex/harness-knowledge-ingest/SKILL.md +1 -1
- package/harness/bundles/java/codex/harness-knowledge-query/SKILL.md +1 -1
- package/harness/bundles/java/codex/harness-package/SKILL.md +1 -1
- package/harness/bundles/java/codex/harness-package/checklist.md +7 -7
- package/harness/bundles/java/codex/harness-plan/SKILL.md +1 -1
- package/harness/bundles/java/codex/harness-plan/checklist.md +1 -1
- package/harness/bundles/java/codex/harness-pull/SKILL.md +1 -1
- package/harness/bundles/java/codex/harness-push/SKILL.md +1 -1
- package/harness/bundles/java/codex/harness-review/SKILL.md +3 -3
- package/harness/bundles/java/codex/harness-review/checklist.md +1 -1
- package/harness/bundles/java/codex/harness-submit/SKILL.md +1 -1
- package/harness/bundles/java/codex/harness-submit/checklist.md +1 -1
- package/harness/bundles/java/codex/harness-submit/reference.md +1 -1
- package/harness/bundles/java/codex/harness-sync/SKILL.md +1 -1
- package/harness/bundles/java/codex/protocols/evidence-based-reporting-protocol.md +1 -1
- package/harness/bundles/java/codex/protocols/ledger-protocol.md +8 -8
- package/harness/bundles/java/codex/protocols/sensitive-info-protocol.md +2 -2
- package/harness/bundles/java/codex/scripts/harness_deploy.py +2 -2
- package/harness/bundles/java/codex/scripts/harness_gate.py +1 -1
- package/harness/bundles/java/codex/scripts/harness_profile.py +3 -3
- package/harness/bundles/java/cursor/.harness-build.json +1 -1
- package/harness/bundles/java/cursor/CONTEXT.md +1 -1
- package/harness/bundles/java/cursor/README.md +36 -38
- package/harness/bundles/java/cursor/contracts/workflow-policy.json +0 -50
- package/harness/bundles/java/cursor/harness-apidoc/SKILL.md +1 -1
- package/harness/bundles/java/cursor/harness-archive/SKILL.md +1 -1
- package/harness/bundles/java/cursor/harness-codebase-map/SKILL.md +1 -1
- package/harness/bundles/java/cursor/harness-codebase-map/templates/TESTING.md +1 -1
- package/harness/bundles/java/cursor/harness-execute/SKILL.md +48 -16
- package/harness/bundles/java/cursor/{harness-run/checklist.md → harness-execute/coding-checklist.md} +6 -6
- package/harness/bundles/java/cursor/{harness-run/reference.md → harness-execute/coding-reference.md} +37 -37
- package/harness/bundles/java/cursor/harness-execute/protocols.md +141 -0
- package/harness/bundles/java/cursor/{harness-test/checklist.md → harness-execute/testing-checklist.md} +9 -9
- package/harness/bundles/java/cursor/{harness-test/pitfalls-java.md → harness-execute/testing-pitfalls-java.md} +1 -1
- package/harness/bundles/java/cursor/harness-execute/testing-pitfalls.md +307 -0
- package/harness/bundles/java/cursor/{harness-test/reference.md → harness-execute/testing-reference.md} +13 -13
- package/harness/bundles/java/cursor/harness-knowledge-ingest/SKILL.md +1 -1
- package/harness/bundles/java/cursor/harness-knowledge-query/SKILL.md +1 -1
- package/harness/bundles/java/cursor/harness-package/SKILL.md +1 -1
- package/harness/bundles/java/cursor/harness-package/checklist.md +7 -7
- package/harness/bundles/java/cursor/harness-plan/SKILL.md +1 -1
- package/harness/bundles/java/cursor/harness-plan/checklist.md +1 -1
- package/harness/bundles/java/cursor/harness-pull/SKILL.md +1 -1
- package/harness/bundles/java/cursor/harness-push/SKILL.md +1 -1
- package/harness/bundles/java/cursor/harness-review/SKILL.md +3 -3
- package/harness/bundles/java/cursor/harness-review/checklist.md +1 -1
- package/harness/bundles/java/cursor/harness-submit/SKILL.md +1 -1
- package/harness/bundles/java/cursor/harness-submit/checklist.md +1 -1
- package/harness/bundles/java/cursor/harness-submit/reference.md +1 -1
- package/harness/bundles/java/cursor/harness-sync/SKILL.md +1 -1
- package/harness/bundles/java/cursor/protocols/evidence-based-reporting-protocol.md +1 -1
- package/harness/bundles/java/cursor/protocols/ledger-protocol.md +8 -8
- package/harness/bundles/java/cursor/protocols/sensitive-info-protocol.md +2 -2
- package/harness/bundles/java/cursor/scripts/harness_deploy.py +2 -2
- package/harness/bundles/java/cursor/scripts/harness_gate.py +1 -1
- package/harness/bundles/java/cursor/scripts/harness_profile.py +3 -3
- package/harness/bundles/java/pi/.harness-build.json +1 -1
- package/harness/bundles/java/pi/CONTEXT.md +1 -1
- package/harness/bundles/java/pi/README.md +36 -38
- package/harness/bundles/java/pi/contracts/workflow-policy.json +0 -50
- package/harness/bundles/java/pi/harness-apidoc/SKILL.md +1 -1
- package/harness/bundles/java/pi/harness-archive/SKILL.md +1 -1
- package/harness/bundles/java/pi/harness-codebase-map/SKILL.md +1 -1
- package/harness/bundles/java/pi/harness-codebase-map/templates/TESTING.md +1 -1
- package/harness/bundles/java/pi/harness-execute/SKILL.md +48 -16
- package/harness/bundles/java/pi/harness-execute/coding-checklist.md +252 -0
- package/harness/bundles/java/pi/harness-execute/coding-reference.md +820 -0
- package/harness/bundles/java/pi/harness-execute/protocols.md +141 -0
- package/harness/bundles/java/pi/harness-execute/testing-checklist.md +320 -0
- package/harness/bundles/java/pi/harness-execute/testing-pitfalls-java.md +16 -0
- package/harness/bundles/java/pi/harness-execute/testing-pitfalls.md +307 -0
- package/harness/bundles/java/pi/harness-execute/testing-reference.md +792 -0
- package/harness/bundles/java/pi/harness-knowledge-ingest/SKILL.md +1 -1
- package/harness/bundles/java/pi/harness-knowledge-query/SKILL.md +1 -1
- package/harness/bundles/java/pi/harness-package/SKILL.md +1 -1
- package/harness/bundles/java/pi/harness-package/checklist.md +7 -7
- package/harness/bundles/java/pi/harness-plan/SKILL.md +1 -1
- package/harness/bundles/java/pi/harness-plan/checklist.md +1 -1
- package/harness/bundles/java/pi/harness-pull/SKILL.md +1 -1
- package/harness/bundles/java/pi/harness-push/SKILL.md +1 -1
- package/harness/bundles/java/pi/harness-review/SKILL.md +3 -3
- package/harness/bundles/java/pi/harness-review/checklist.md +1 -1
- package/harness/bundles/java/pi/harness-submit/SKILL.md +1 -1
- package/harness/bundles/java/pi/harness-submit/checklist.md +1 -1
- package/harness/bundles/java/pi/harness-submit/reference.md +1 -1
- package/harness/bundles/java/pi/harness-sync/SKILL.md +1 -1
- package/harness/bundles/java/pi/protocols/evidence-based-reporting-protocol.md +1 -1
- package/harness/bundles/java/pi/protocols/ledger-protocol.md +8 -8
- package/harness/bundles/java/pi/protocols/sensitive-info-protocol.md +2 -2
- package/harness/bundles/java/pi/scripts/harness_deploy.py +2 -2
- package/harness/bundles/java/pi/scripts/harness_gate.py +1 -1
- package/harness/bundles/java/pi/scripts/harness_profile.py +3 -3
- package/harness/manifests/general/claude-code.json +58 -66
- package/harness/manifests/general/codebuddy.json +58 -66
- package/harness/manifests/general/codex.json +58 -66
- package/harness/manifests/general/cursor.json +58 -66
- package/harness/manifests/general/pi.json +58 -66
- package/harness/manifests/java/claude-code.json +61 -69
- package/harness/manifests/java/codebuddy.json +61 -69
- package/harness/manifests/java/codex.json +61 -69
- package/harness/manifests/java/cursor.json +61 -69
- package/harness/manifests/java/pi.json +61 -69
- package/hunter-workflow-family.json +2 -2
- package/package.json +1 -1
- package/harness/bundles/general/claude-code/harness-run/SKILL.md +0 -207
- package/harness/bundles/general/claude-code/harness-test/SKILL.md +0 -270
- package/harness/bundles/general/codebuddy/harness-run/SKILL.md +0 -188
- package/harness/bundles/general/codebuddy/harness-test/SKILL.md +0 -250
- package/harness/bundles/general/codex/harness-run/SKILL.md +0 -188
- package/harness/bundles/general/codex/harness-test/SKILL.md +0 -250
- package/harness/bundles/general/cursor/harness-run/SKILL.md +0 -188
- package/harness/bundles/general/cursor/harness-test/SKILL.md +0 -250
- package/harness/bundles/general/pi/harness-run/SKILL.md +0 -188
- package/harness/bundles/general/pi/harness-run/checklist.md +0 -279
- package/harness/bundles/general/pi/harness-run/protocols.md +0 -141
- package/harness/bundles/general/pi/harness-run/reference.md +0 -886
- package/harness/bundles/general/pi/harness-test/SKILL.md +0 -250
- package/harness/bundles/general/pi/harness-test/checklist.md +0 -359
- package/harness/bundles/general/pi/harness-test/pitfalls-java.md +0 -14
- package/harness/bundles/general/pi/harness-test/pitfalls.md +0 -307
- package/harness/bundles/general/pi/harness-test/reference.md +0 -880
- package/harness/bundles/java/claude-code/harness-run/SKILL.md +0 -225
- package/harness/bundles/java/claude-code/harness-run/protocols.md +0 -141
- package/harness/bundles/java/claude-code/harness-test/SKILL.md +0 -284
- package/harness/bundles/java/claude-code/harness-test/pitfalls.md +0 -307
- package/harness/bundles/java/codebuddy/harness-run/SKILL.md +0 -206
- package/harness/bundles/java/codebuddy/harness-run/protocols.md +0 -141
- package/harness/bundles/java/codebuddy/harness-test/SKILL.md +0 -264
- package/harness/bundles/java/codebuddy/harness-test/pitfalls.md +0 -307
- package/harness/bundles/java/codex/harness-run/SKILL.md +0 -206
- package/harness/bundles/java/codex/harness-run/protocols.md +0 -141
- package/harness/bundles/java/codex/harness-test/SKILL.md +0 -264
- package/harness/bundles/java/codex/harness-test/pitfalls.md +0 -307
- package/harness/bundles/java/cursor/harness-run/SKILL.md +0 -206
- package/harness/bundles/java/cursor/harness-run/protocols.md +0 -141
- package/harness/bundles/java/cursor/harness-test/SKILL.md +0 -264
- package/harness/bundles/java/cursor/harness-test/pitfalls.md +0 -307
- package/harness/bundles/java/pi/harness-run/SKILL.md +0 -206
- package/harness/bundles/java/pi/harness-run/checklist.md +0 -252
- package/harness/bundles/java/pi/harness-run/protocols.md +0 -141
- package/harness/bundles/java/pi/harness-run/reference.md +0 -820
- package/harness/bundles/java/pi/harness-test/SKILL.md +0 -264
- package/harness/bundles/java/pi/harness-test/checklist.md +0 -320
- package/harness/bundles/java/pi/harness-test/pitfalls-java.md +0 -16
- package/harness/bundles/java/pi/harness-test/pitfalls.md +0 -307
- package/harness/bundles/java/pi/harness-test/reference.md +0 -792
- /package/harness/bundles/general/claude-code/{harness-test → harness-execute}/scripts/runtime-helpers.mjs +0 -0
- /package/harness/bundles/general/codebuddy/{harness-test → harness-execute}/scripts/runtime-helpers.mjs +0 -0
- /package/harness/bundles/general/codex/{harness-test → harness-execute}/scripts/runtime-helpers.mjs +0 -0
- /package/harness/bundles/general/cursor/{harness-test → harness-execute}/scripts/runtime-helpers.mjs +0 -0
- /package/harness/bundles/general/pi/{harness-test → harness-execute}/scripts/runtime-helpers.mjs +0 -0
- /package/harness/bundles/java/claude-code/{harness-test → harness-execute}/scripts/runtime-helpers.mjs +0 -0
- /package/harness/bundles/java/codebuddy/{harness-test → harness-execute}/scripts/runtime-helpers.mjs +0 -0
- /package/harness/bundles/java/codex/{harness-test → harness-execute}/scripts/runtime-helpers.mjs +0 -0
- /package/harness/bundles/java/cursor/{harness-test → harness-execute}/scripts/runtime-helpers.mjs +0 -0
- /package/harness/bundles/java/pi/{harness-test → harness-execute}/scripts/runtime-helpers.mjs +0 -0
|
@@ -22,7 +22,7 @@ disallowed-tools:
|
|
|
22
22
|
- Bash(curl *)
|
|
23
23
|
- Bash(codegraph *)
|
|
24
24
|
---
|
|
25
|
-
<!-- generated by harness_deploy.py; core=
|
|
25
|
+
<!-- generated by harness_deploy.py; core=8334c3150a633202; overlay=java; agent=claude-code; do not edit -->
|
|
26
26
|
# harness-review — 代码审查
|
|
27
27
|
|
|
28
28
|
## Purpose
|
|
@@ -43,7 +43,7 @@ disallowed-tools:
|
|
|
43
43
|
## 前置条件
|
|
44
44
|
|
|
45
45
|
- `.harness/changes/<change-name>/plans/<change-name>-plan.md` 存在(任务真相源)
|
|
46
|
-
- 必须读取 `.harness/changes/<change-name>/meta/worktree.json`:`requested=true` 且 worktree 已创建 → 在 worktree 目录中执行审查;`requested=true` 但 worktree 不存在 → 停止,提示先修复 `harness-
|
|
46
|
+
- 必须读取 `.harness/changes/<change-name>/meta/worktree.json`:`requested=true` 且 worktree 已创建 → 在 worktree 目录中执行审查;`requested=true` 但 worktree 不存在 → 停止,提示先修复 `harness-execute`,不得静默回主目录
|
|
47
47
|
- **review 不阻塞后续流程**:test 报告缺失或未运行不阻止 review(review 是参考性阶段),但应在报告中标注 test 状态供参考
|
|
48
48
|
|
|
49
49
|
## 统一读取协议
|
|
@@ -67,7 +67,7 @@ disallowed-tools:
|
|
|
67
67
|
先用 `harness_context.py prepare --phase review --executor <tool> [--change <id>] --json` 与 `harness_context.py begin --phase review --change <id> --executor <tool> --json` 解析唯一 active change 并校验实际前序 receipt;多个 active change 未显式选择时返回 `ACTIVE_CHANGE_AMBIGUOUS`,禁止再按 Glob/mtime 猜测。阶段门禁使用 `harness_gate.py begin --phase review --change <id> --task <n> --skills-root <skills-root> --executor-tool <tool> --json`;结束时只执行一次 `harness_gate.py close`,正常路径的 `--to-phase` 取 `plannedPhases` 中 review 的后继,Fixback 才返回 run。由 gate 完成阶段事件、租约、上下文交接与远端补传。不得手工追加阶段边界或再次调用 context close;任一 close 失败不得宣称评审完成。
|
|
68
68
|
|
|
69
69
|
0. **启动准备** — 确定变更名(Glob `.harness/changes/*/plans/*-plan.md`,排除 `.harness/archive/*/`,读 frontmatter 提取 change-name);**append `phase.start` 事件**(不得等审查完成才补)
|
|
70
|
-
1. **读取 worktree 状态(门禁检查)** — 读 `.harness/changes/<change-name>/meta/worktree.json`:`requested=true` 但 worktree 不存在 → 停止并提示先修复 `harness-
|
|
70
|
+
1. **读取 worktree 状态(门禁检查)** — 读 `.harness/changes/<change-name>/meta/worktree.json`:`requested=true` 但 worktree 不存在 → 停止并提示先修复 `harness-execute`,不得静默回主目录(否则 git diff 为空);`requested=true` 且 worktree 已创建 → spawned agent 用该 worktree 路径执行 `git diff`(确保审查 worktree 变更而非主目录);`requested=false` → 审查主目录变更
|
|
71
71
|
<!-- @section-id review.delegate -->
|
|
72
72
|
### 2. 审查执行(独立评审优先)
|
|
73
73
|
|
|
@@ -8,7 +8,7 @@ description: harness-review 的6维度审查检查项详细列表。仅在执行
|
|
|
8
8
|
|
|
9
9
|
用 Glob 搜索 `.harness/changes/*/plans/*-plan.md`(**排除 `.harness/archive/*/`**),读取 frontmatter 提取 `change-name`。默认最多一个未归档变更;如有多个,优先取最近修改的,或询问用户。后续所有路径基于此变更名。
|
|
10
10
|
|
|
11
|
-
**读取 worktree 状态**:读 `.harness/changes/<change-name>/meta/worktree.json`。`requested=true` 且 worktree 已创建 → 后续 `git diff` 的 `<项目路径>` 用 worktree 路径(`.worktrees/<change-name>`);`requested=true` 但 worktree 不存在 → 停止,提示先修复 `harness-
|
|
11
|
+
**读取 worktree 状态**:读 `.harness/changes/<change-name>/meta/worktree.json`。`requested=true` 且 worktree 已创建 → 后续 `git diff` 的 `<项目路径>` 用 worktree 路径(`.worktrees/<change-name>`);`requested=true` 但 worktree 不存在 → 停止,提示先修复 `harness-execute`,不得静默回主目录。
|
|
12
12
|
|
|
13
13
|
## 审查流程
|
|
14
14
|
|
|
@@ -21,7 +21,7 @@ disallowed-tools:
|
|
|
21
21
|
- Bash(awk *)
|
|
22
22
|
- Bash(curl *)
|
|
23
23
|
---
|
|
24
|
-
<!-- generated by harness_deploy.py; core=
|
|
24
|
+
<!-- generated by harness_deploy.py; core=8334c3150a633202; overlay=java; agent=claude-code; do not edit -->
|
|
25
25
|
# harness-submit — 最终提交(含 worktree 合并)
|
|
26
26
|
|
|
27
27
|
## Purpose
|
|
@@ -33,7 +33,7 @@ description: harness-submit 的8 步工作流详细步骤和执行日志记录
|
|
|
33
33
|
1. 通过 state layout resolver 读取权威 `evidence/verification-ledger.json`,记录 `diffHash` / `currentHead` / `unitTest` / `apiTest` 状态;split-v1 不得回退复制到 contract 目录
|
|
34
34
|
2. 执行 `harness_ledger.py diff-hash --repo . --base <baseCommit> --change-dir ".harness/changes/<change-name>" --json` 计算当前 diffHash;manifest 校验失败即停止,不得绕过后与 ledger 比对
|
|
35
35
|
3. 若 test 之后有代码变更(当前 diffHash ≠ test 完成时的 diffHash),按 7 类对 post-test diff 分类(见 `../protocols/ledger-protocol.md` 第六章),写入 ledger 的 `postTestClassification`
|
|
36
|
-
4. 行为性变更(BEHAVIORAL_SERVICE_CHANGE / API_CONTRACT_CHANGE / SQL_OR_MAPPER_CHANGE / SECURITY_OR_PERMISSION_CHANGE)→ **停止 submit**,提示先重跑 `/harness-
|
|
36
|
+
4. 行为性变更(BEHAVIORAL_SERVICE_CHANGE / API_CONTRACT_CHANGE / SQL_OR_MAPPER_CHANGE / SECURITY_OR_PERMISSION_CHANGE)→ **停止 submit**,提示先重跑 `/harness-execute` 相关场景
|
|
37
37
|
5. 非行为性变更(NON_BEHAVIORAL_CLEANUP / COMMENT_ONLY / TEST_ONLY)→ 可继续 submit,但后续验证按复用规则处理
|
|
38
38
|
|
|
39
39
|
**append `phase.start` 事件**(`harness_events.py append`;`note` 含 ledger diffHash、post-test 分类、验证策略):
|
|
@@ -136,7 +136,7 @@ powershell.exe -NoProfile -Command "git -C '<项目路径>' log HEAD..@{u} --one
|
|
|
136
136
|
powershell.exe -Command "[System.IO.Directory]::Delete('<worktree-path>', $true)"
|
|
137
137
|
```
|
|
138
138
|
|
|
139
|
-
4. **ExitWorktree 工具限制**:`ExitWorktree(remove)` 只删由 `EnterWorktree` 创建的 worktree。若本会话进入的是已存在 worktree(由 `harness-
|
|
139
|
+
4. **ExitWorktree 工具限制**:`ExitWorktree(remove)` 只删由 `EnterWorktree` 创建的 worktree。若本会话进入的是已存在 worktree(由 `harness-execute` 创建),工具会拒绝删除。此时用 `action:keep` 返回主仓库,再按上述 1-3 步手动清理。
|
|
140
140
|
|
|
141
141
|
5. **清理后更新 `meta/worktree.json`**:置 `created=false` + 追加 `removedAt`/`removedBy`/`removalNote`,记录产出保留待 `/harness-archive`。
|
|
142
142
|
|
|
@@ -19,7 +19,7 @@ disallowed-tools:
|
|
|
19
19
|
- Bash(awk *)
|
|
20
20
|
- Bash(curl *)
|
|
21
21
|
---
|
|
22
|
-
<!-- generated by harness_deploy.py; core=
|
|
22
|
+
<!-- generated by harness_deploy.py; core=8334c3150a633202; overlay=java; agent=claude-code; do not edit -->
|
|
23
23
|
# harness-sync
|
|
24
24
|
|
|
25
25
|
## Purpose
|
|
@@ -42,7 +42,7 @@ description: harness 全流程的证据化报告协议。所有 skill 输出必
|
|
|
42
42
|
| 情况 | 状态标记 | 报告表述 |
|
|
43
43
|
|------|:--------:|----------|
|
|
44
44
|
| 测试命令输出包含测试通过证据(Java=`Tests run: N, Failures: 0`;前端/Python 按各自工具) | ✅ | ✅ 已测试通过:N 个用例,0 失败 |
|
|
45
|
-
| TDD 降级(无测试基础设施) | 🟡 | 🟡 静态验证通过,未执行真实单元测试,待测试基础设施补齐后运行 harness-
|
|
45
|
+
| TDD 降级(无测试基础设施) | 🟡 | 🟡 静态验证通过,未执行真实单元测试,待测试基础设施补齐后运行 harness-execute |
|
|
46
46
|
| 测试命令被 hook 拒绝 | ❌ | ❌ 测试命令被拒绝,无法确认测试结果 |
|
|
47
47
|
| 测试失败(有 Failures > 0) | ❌ | ❌ 测试失败:N 个用例,M 个失败 |
|
|
48
48
|
| 用户确认跳过测试 | 🟡 | 🟡 用户确认跳过测试 |
|
|
@@ -4,7 +4,7 @@ description: verification-ledger、diffHash、service-fingerprint 的统一协
|
|
|
4
4
|
|
|
5
5
|
# Ledger Protocol
|
|
6
6
|
|
|
7
|
-
> 本协议被 harness-plan / harness-
|
|
7
|
+
> 本协议被 harness-plan / harness-execute / harness-execute / harness-submit / harness-archive 共同引用。
|
|
8
8
|
> 目标:消除跨阶段重复编译/测试,让每个"✅ 已验证"结论可追溯、可复用,避免 post-test 小改动导致前序报告有效性表达不清。
|
|
9
9
|
|
|
10
10
|
## 一、为什么需要 verification-ledger
|
|
@@ -156,7 +156,7 @@ verification-ledger 把每次验证(compile / unit test / api test / package
|
|
|
156
156
|
"moduleInputsHash": "sha256:<依赖闭包内容指纹>",
|
|
157
157
|
"moduleInputsFiles": ["<project>/Svc.java", "..."],
|
|
158
158
|
"profile": "local-dev-remote-sdk",
|
|
159
|
-
"overlayPath": "C:/temp/harness-
|
|
159
|
+
"overlayPath": "C:/temp/harness-execute-overlay/<change>/application-harness-execute.yml",
|
|
160
160
|
"startCommandHash": "sha256:<command 指纹>",
|
|
161
161
|
"command": "<serviceStart.command>",
|
|
162
162
|
"startedAt": "..."
|
|
@@ -165,7 +165,7 @@ verification-ledger 把每次验证(compile / unit test / api test / package
|
|
|
165
165
|
|
|
166
166
|
`moduleInputsHash` 由 CLI `--files` ∪ `build-profile.json` 的 `serviceStart.inputFiles`(glob 列表,相对 project 展开)计算。**空输入被拒绝**(exit 非 0),不得生成可复用的空指纹(§5.1/§5.2)。
|
|
167
167
|
|
|
168
|
-
复用必须**同时**满足(§5.3):`moduleInputsHash` 一致、`startCommandHash` 一致、`profile` 一致、`overlayPath` 一致、进程身份(pid 存活 + create time 匹配 `startedAt`)可确认。任一变化 -> AI 自动 restart;身份无法确认 -> `needs-user-decision`;非 AI 用户进程永不自动 kill。否则必须进入 Service Decision Gate(见 harness-
|
|
168
|
+
复用必须**同时**满足(§5.3):`moduleInputsHash` 一致、`startCommandHash` 一致、`profile` 一致、`overlayPath` 一致、进程身份(pid 存活 + create time 匹配 `startedAt`)可确认。任一变化 -> AI 自动 restart;身份无法确认 -> `needs-user-decision`;非 AI 用户进程永不自动 kill。否则必须进入 Service Decision Gate(见 harness-execute)。
|
|
169
169
|
|
|
170
170
|
### 4.2 unitTestFull 最终全量门禁
|
|
171
171
|
|
|
@@ -216,13 +216,13 @@ harness_ledger.py diff-hash --repo <projectRoot> --base <baseCommit> --change-di
|
|
|
216
216
|
- manifest 存在时必须严格验证 schema/mode/projectRoot、精确相对路径、文件存在性与 SHA-256;结构非法、路径越界或 hash 漂移均非零退出,旧 ledger 不得复用。
|
|
217
217
|
- ignored test 在 checkpoint 前由 manifest 加入内容集;经 guard force-stage/commit 后由 Git diff 加入同一路径,集合去重,因此 hash 保持不变。
|
|
218
218
|
- diffHash 只用于"内容是否变化"判断,不等于 commit hash
|
|
219
|
-
- 账本中 `currentHead`(验证时 HEAD)与 `diffHash` 分开记录;reuse 规则 #2 允许 HEAD 前移(如 harness-
|
|
219
|
+
- 账本中 `currentHead`(验证时 HEAD)与 `diffHash` 分开记录;reuse 规则 #2 允许 HEAD 前移(如 harness-execute Step 5 checkpoint commit),因 diffHash 已 commit-invariant,HEAD 前移不改变指纹
|
|
220
220
|
- **禁止**使用类似 `3files-84plus-5minus` 的描述性字符串作为复用依据
|
|
221
221
|
- **禁止**删除/忽略 test-tracking manifest 后继续复用,也禁止用手写 Git/Node/PowerShell hash 替代 canonical 命令。
|
|
222
222
|
|
|
223
223
|
## 六、Post-test 变更分类
|
|
224
224
|
|
|
225
|
-
当 `/harness-
|
|
225
|
+
当 `/harness-execute` 完成后又发生代码变更(常见于 review 后清理、submit 前发现的小问题),后续 submit/package/archive **必须先对变更做分类**,写入 ledger 的 `postTestClassification`:
|
|
226
226
|
|
|
227
227
|
| 类型 | 示例 | 是否需要重跑 API | 是否需要重跑 unit | 是否需要重 compile |
|
|
228
228
|
|------|------|:---:|:---:|:---:|
|
|
@@ -245,15 +245,15 @@ post-test 变更: NON_BEHAVIORAL_CLEANUP
|
|
|
245
245
|
API 测试: 🔁 复用上一轮结果(diffHash 未变 / 仅清理性变更)
|
|
246
246
|
```
|
|
247
247
|
|
|
248
|
-
**行为性变更**:必须重新运行 `/harness-
|
|
248
|
+
**行为性变更**:必须重新运行 `/harness-execute` 的相关场景(至少覆盖变更影响的接口/权限/SQL),ledger 对应项作废并重写。
|
|
249
249
|
|
|
250
250
|
## 七、各阶段与 ledger 的交互
|
|
251
251
|
|
|
252
252
|
| 阶段 | 读 ledger | 写 ledger |
|
|
253
253
|
|------|:---:|:---:|
|
|
254
254
|
| harness-plan | 计划起点读(了解前序变更状态/已有 ledger,作为复用链起点) | 计划落定后写初始 ledger(changeName/module/profile/baseCommit/diffHash 占位) |
|
|
255
|
-
| harness-
|
|
256
|
-
| harness-
|
|
255
|
+
| harness-execute | 步骤 2 前读(确认是否已有 compile/unitTest 可复用) | 步骤 2 后写 compile + unitTest(若跑了全量测试) |
|
|
256
|
+
| harness-execute | Phase 1 前读(复用 run 的 unitTest) | Phase 1/2 后写 unitTest + apiTest |
|
|
257
257
|
| harness-submit | 验证前读(复用 test 的 compile/unitTest) | 若重跑则写回 |
|
|
258
258
|
| harness-archive | 归档前读(汇总各阶段状态,写入 `summary-data.json` 并上传平台) | 不写(归档时一并移入 archive) |
|
|
259
259
|
|
|
@@ -98,13 +98,13 @@ spring:
|
|
|
98
98
|
> `HUNTER_HARNESS_SENSITIVE_SCAN=block` 才恢复阻断、`=off` 完全关闭。
|
|
99
99
|
> 门禁放行不等于内容可以带明文凭据——本节的要求始终成立。
|
|
100
100
|
|
|
101
|
-
profile `build-profile.json`、规则文档、Skill Markdown **不得包含凭据明文值**(spec §3.4 凭据边界:配置只含 env key、cache path、角色,不含值)。发布前用 `harness-
|
|
101
|
+
profile `build-profile.json`、规则文档、Skill Markdown **不得包含凭据明文值**(spec §3.4 凭据边界:配置只含 env key、cache path、角色,不含值)。发布前用 `harness-execute/scripts/runtime-helpers.mjs` 的 `findCredentialValues(text)` 扫描:
|
|
102
102
|
|
|
103
103
|
- 命中 `password/token/secret/accessKey/Authorization: Bearer/jdbc password=` 等明文值 → ❌FAIL,必须改为占位符 `<*_REDACTED>` 或 env 引用 `${ENV}` / `$ENV`。
|
|
104
104
|
- 占位符 `<TOKEN_REDACTED>` 与 env 引用 `${TEST_TOKEN}` / `$DB_PASSWORD` 不报(credential 配置允许 env key)。
|
|
105
105
|
|
|
106
106
|
```js
|
|
107
|
-
import { findCredentialValues } from '<skills-root>/harness-
|
|
107
|
+
import { findCredentialValues } from '<skills-root>/harness-execute/scripts/runtime-helpers.mjs';
|
|
108
108
|
const findings = findCredentialValues(fs.readFileSync('build-profile.json', 'utf8'));
|
|
109
109
|
if (findings.length > 0) { /* ❌FAIL: 列出 line/code/snippet,改为 env key 或占位符 */ }
|
|
110
110
|
```
|
|
@@ -479,10 +479,10 @@ def copy_overlay_extras(overlay_dir: Path, out_dir: Path) -> list[str]:
|
|
|
479
479
|
# it must NOT be installed to runtime. Only pitfalls-java.md is runtime.
|
|
480
480
|
pitfalls = overlay_dir / "pitfalls-java.md"
|
|
481
481
|
if pitfalls.is_file():
|
|
482
|
-
test_pit = out_dir / "harness-
|
|
482
|
+
test_pit = out_dir / "harness-execute" / "testing-pitfalls-java.md"
|
|
483
483
|
test_pit.parent.mkdir(parents=True, exist_ok=True)
|
|
484
484
|
shutil.copy2(pitfalls, test_pit)
|
|
485
|
-
extras.append("harness-
|
|
485
|
+
extras.append("harness-execute/testing-pitfalls-java.md")
|
|
486
486
|
return extras
|
|
487
487
|
|
|
488
488
|
|
|
@@ -2220,7 +2220,7 @@ def _validate_scenario_coverage(
|
|
|
2220
2220
|
is due by that phase are required to carry passing receipts. Scenarios
|
|
2221
2221
|
owned by a later phase (e.g. `ownerPhase=test` at `run` close) are
|
|
2222
2222
|
reported under `deferred` instead of blocking the close — this matches the
|
|
2223
|
-
documented hand-off rule in harness-
|
|
2223
|
+
documented hand-off rule in harness-execute/SKILL.md ("ownerPhase=test 按计划移交").
|
|
2224
2224
|
"""
|
|
2225
2225
|
manifest_path = change_dir / "meta" / "scenario-manifest.json"
|
|
2226
2226
|
if not manifest_path.is_file():
|
|
@@ -854,13 +854,13 @@ def _node_commands(project: Path) -> dict[str, Any]:
|
|
|
854
854
|
"apps/*/tests/**/*.tsx",
|
|
855
855
|
]
|
|
856
856
|
# harness dogfood: canonical Python + .mjs sources feed npm run check (vitest
|
|
857
|
-
# imports harness-
|
|
857
|
+
# imports harness-execute/scripts; smoke:pack runs sync-harness.mjs).
|
|
858
858
|
if (project / "harness").is_dir():
|
|
859
859
|
inputs.extend(
|
|
860
860
|
[
|
|
861
861
|
"harness/scripts/*.py",
|
|
862
|
-
"harness/harness-
|
|
863
|
-
"harness/harness-
|
|
862
|
+
"harness/harness-execute/scripts/*.mjs",
|
|
863
|
+
"harness/harness-execute/scripts/tests/*.mjs",
|
|
864
864
|
"scripts/*.mjs",
|
|
865
865
|
]
|
|
866
866
|
)
|
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
|
|
5
5
|
本包为通用 harness-skills,技术栈无关:构建/测试/打包命令按目标项目技术栈解析(Java=Maven、前端=npm、Python=pytest 等,详见项目 CLAUDE.md 或 `.harness/config/`)。文中 Java/Maven、Mapper/Controller/VO、Spring Boot、jar/war 等措辞仅为示例,不影响流程骨架的通用性。
|
|
6
6
|
|
|
7
|
-
环境、CodeGraph 等外部增强检查应在 `npx hunter-harness` 初始化阶段完成。Superpowers / grill-me 等外部技能只作为方法论来源与人工参考;`harness-plan`、`harness-
|
|
7
|
+
环境、CodeGraph 等外部增强检查应在 `npx hunter-harness` 初始化阶段完成。Superpowers / grill-me 等外部技能只作为方法论来源与人工参考;`harness-plan`、`harness-execute`、`harness-review` 已内化关键能力,不再运行时依赖外部 skill。
|
|
8
8
|
|
|
9
9
|
|
|
10
10
|
> 一套完整的 AI 辅助开发 Skill,覆盖从上下文同步到代码提交的全流程。
|
|
@@ -49,10 +49,9 @@
|
|
|
49
49
|
| Skill | allowed-tools | disallowed-tools |
|
|
50
50
|
|-------|---------------|------------------|
|
|
51
51
|
| harness-plan | `[Read, Glob, Grep, Edit, Write, Agent, Bash(powershell.exe:*)]` | `Bash(git *)`, `Bash(mvn *)`, 等 14 项普通 Bash 命令 |
|
|
52
|
-
| harness-
|
|
52
|
+
| harness-execute | `[Read, Edit, Write, Glob, Grep, Agent, Bash(powershell.exe:*)]` | 同上 + `Bash(node *)` |
|
|
53
53
|
| harness-submit | `[Bash(powershell.exe:*), Read, Write, Edit, Glob, Grep]` | 同上 |
|
|
54
54
|
| harness-archive | `[Read, Edit, Write, Glob, Grep, Bash(powershell.exe:*)]` | 同上 |
|
|
55
|
-
| harness-test | `[Read, Glob, Grep, Write, Edit, Agent, Bash(powershell.exe:*)]` | 同上 + `Bash(node *)` |
|
|
56
55
|
| harness-review | `[Read, Write, Edit, Glob, Grep, Agent, Bash(powershell.exe:*)]` | 同上 |
|
|
57
56
|
| harness-sync | `[Read, Glob, Grep, Edit, Write, Bash(powershell.exe:*)]` | 同上 |
|
|
58
57
|
| harness-codebase-map | `[Read, Glob, Grep, Write, Edit, Agent, Bash(powershell.exe:*)]` | 同上 |
|
|
@@ -103,18 +102,18 @@
|
|
|
103
102
|
│ │ └── <change-name>-test-scenarios.md # 测试场景表(4维度覆盖)
|
|
104
103
|
│ ├── evidence/ # 验证证据
|
|
105
104
|
│ │ ├── verification-ledger.json # 验证账本(compile/unit/api 可复用结果)
|
|
106
|
-
│ │ └── run-task-status.md # 任务执行状态(harness-
|
|
105
|
+
│ │ └── run-task-status.md # 任务执行状态(harness-execute 持久化产出)
|
|
107
106
|
│ ├── reports/ # 报告
|
|
108
107
|
│ │ ├── test/
|
|
109
|
-
│ │ │ └── test-report-YYYYMMDD-HHmm.md # harness-
|
|
108
|
+
│ │ │ └── test-report-YYYYMMDD-HHmm.md # harness-execute 产出(时间戳区分多次运行)
|
|
110
109
|
│ │ └── review/
|
|
111
110
|
│ │ ├── review-report-YYYYMMDD-HHmm.md # harness-review 产出(时间戳区分多次运行)
|
|
112
111
|
│ │ └── fixback-YYYYMMDD-HHmm.md # RED/YELLOW 修复反馈(按需)
|
|
113
112
|
│ ├── sqls/
|
|
114
|
-
│ │ └── V<version>__<desc>.sql # 数据库迁移脚本(harness-
|
|
113
|
+
│ │ └── V<version>__<desc>.sql # 数据库迁移脚本(harness-execute 产出)
|
|
115
114
|
│ ├── scripts/ # 固定脚本和本次运行脚本
|
|
116
115
|
│ ├── runtime/ # 运行时临时文件(不提交)
|
|
117
|
-
│ │ ├── api-test-runner.mjs # 接口测试执行器脚本(harness-
|
|
116
|
+
│ │ ├── api-test-runner.mjs # 接口测试执行器脚本(harness-execute 产出)
|
|
118
117
|
│ │ ├── api-test-results.json # runner 输出的结构化结果
|
|
119
118
|
│ │ └── credential-cache.json # 认证凭证缓存(旧名 token-cache.json 兼容读取)
|
|
120
119
|
│ └── backups/
|
|
@@ -186,16 +185,16 @@ harness-skills/
|
|
|
186
185
|
│ ├── checklist.md # 阶段检查清单
|
|
187
186
|
│ ├── protocols.md # 原生澄清/有限盘问/任务拆分协议
|
|
188
187
|
│ └── reference.md # 详细模板和规则
|
|
189
|
-
├── harness-
|
|
190
|
-
│ ├── SKILL.md # TDD
|
|
191
|
-
│ ├── checklist.md # 编码步骤检查清单
|
|
188
|
+
├── harness-execute/
|
|
189
|
+
│ ├── SKILL.md # execute 阶段:编码(变更簇 TDD)+ 验证(单元/接口/兼容)
|
|
192
190
|
│ ├── protocols.md # 原生 TDD / 变更簇审查协议
|
|
193
|
-
│
|
|
194
|
-
├──
|
|
195
|
-
│ ├──
|
|
196
|
-
│ ├── checklist.md
|
|
197
|
-
│ ├──
|
|
198
|
-
│
|
|
191
|
+
│ ├── coding-reference.md # 编译失败策略 + TDD 降级 + 编码约束
|
|
192
|
+
│ ├── coding-checklist.md # 编码步骤检查清单
|
|
193
|
+
│ ├── testing-reference.md # API 测试细节 + 响应验证 + 执行器模板
|
|
194
|
+
│ ├── testing-checklist.md # Phase 0 环境准备 7 项检查
|
|
195
|
+
│ ├── testing-pitfalls.md # 30 条避坑规则(详细说明)
|
|
196
|
+
│ ├── testing-pitfalls-java.md # Java 专项避坑(java profile 由 overlay 覆盖)
|
|
197
|
+
│ └── scripts/ # runtime-helpers.mjs(BOM-safe JSON 等运行时辅助)
|
|
199
198
|
├── harness-review/
|
|
200
199
|
│ ├── SKILL.md # 6 维度代码审查
|
|
201
200
|
│ ├── checklist.md # 6 维度详细检查项
|
|
@@ -220,15 +219,14 @@ harness-skills/
|
|
|
220
219
|
| harness-sync | `/harness-sync` | 10 项元数据检查(7 核心 + 3 辅助) | 初始化检查 | ✅ | 控制台报告 + 自动更新 |
|
|
221
220
|
| harness-codebase-map | `/harness-codebase-map` | 生成代码库地图(7 类文档 + summary + manifest) | `sync`/独立 | ✅ | `.harness/codebase/map/` |
|
|
222
221
|
| harness-plan | `/harness-plan` | 需求→设计→任务拆分→**测试场景表** + 自动命名变更名 | `sync` | 手动 | `.harness/changes/<cn>/plans/` |
|
|
223
|
-
| harness-
|
|
224
|
-
| harness-
|
|
225
|
-
| harness-review | `/harness-review` | 6维度参考性审查(不阻塞后续流程) | `test` | 手动 | `.harness/changes/<cn>/reports/review/` |
|
|
222
|
+
| harness-execute | `/harness-execute` | 变更簇 TDD 编码 + 单元/接口测试 + 数据兼容验证 | `plan` | 手动 | `.harness/changes/<cn>/sqls/`、`reports/test/` |
|
|
223
|
+
| harness-review | `/harness-review` | 6维度参考性审查(不阻塞后续流程) | `execute` | 手动 | `.harness/changes/<cn>/reports/review/` |
|
|
226
224
|
| harness-submit | `/harness-submit` 或 `/harness-merge`(别名) | commit+push(主目录)/ worktree:本地 commit→--no-ff 合并→push 主分支 | `review` | 手动 | ledger `mergeFinalHash` + 控制台报告 |
|
|
227
225
|
| harness-archive | `/harness-archive` | 归档产出到 archive/YYYY-MM-DD-<cn>,释放工作区 | `submit` | 手动 | `.harness/archive/YYYY-MM-DD-<cn>/` |
|
|
228
226
|
| harness-knowledge-query | `/harness-knowledge-query` | 只查询平台语义知识;无本地索引或离线回退 | 独立 | ✅ | CLI JSON(不落本地知识文件) |
|
|
229
227
|
| harness-knowledge-ingest | `/harness-knowledge-ingest` | 确认归档 ZIP 已由平台保存、解包并 ingest | `archive` | ✅ | 服务端 package/knowledge 收据 |
|
|
230
228
|
|
|
231
|
-
> 生命周期 skill(plan →
|
|
229
|
+
> 生命周期 skill(plan → execute → review → submit → archive)为**手动触发**:单阶段结束后停止,不自动接续下一阶段(已设 `disable-model-invocation`)。2026-08 起 run+test 合并为 execute,0.4.9(workflow-harness)起 `/harness-run`、`/harness-test` 入口移除。sync / codebase-map / knowledge 等辅助 skill 仍可按需被调用。`harness-execute`、`harness-submit`、`harness-archive` 涉及 git 写操作、文件移动或归档,调用前必须确保前置条件已满足。
|
|
232
230
|
> `<cn>` = change-name,由 harness-plan 阶段7确定。其他 skill 自动扫描未归档变更定位。
|
|
233
231
|
> 门禁默认 `gate_severity_mode=lenient`(可再生 soft site → WARN);发布阶段与 3 类硬不变量仍 fail-closed。可用 `HUNTER_HARNESS_GATE_MODE` 或 `gate-policy.json` 的 `severityMode` 强制 `strict`。
|
|
234
232
|
|
|
@@ -262,13 +260,13 @@ harness-skills/
|
|
|
262
260
|
| **plan 阶段 3** | 默认主会话 CodeGraph/Read inline 探索;仅高复杂度且准备委派固定 agent 时单次预检,失败或无效返回立即 inline,不 retry |
|
|
263
261
|
| **plan 阶段 4/6** | 原生规划协议必须记录风险/复用/替代方案/推荐方案/关键决策,以及任务拆分摘要 |
|
|
264
262
|
| **plan 阶段 5** | 设计文档自审结果必须展示给用户;测试场景表未覆盖维度必须标记为 ⚠️ 缺口,不得全部 ✅ |
|
|
265
|
-
| **
|
|
266
|
-
| **
|
|
267
|
-
| **
|
|
268
|
-
| **
|
|
269
|
-
| **
|
|
270
|
-
| **
|
|
271
|
-
| **
|
|
263
|
+
| **execute 编码侧步骤 0** | 任何代码修改前必须先向 `events.ndjson` 追加 `phase.start`;执行日志由阶段结束事件自动渲染 |
|
|
264
|
+
| **execute 轻量验证** | `/harness-execute` 编码侧默认只做开发反馈:TDD RED/GREEN + REFACTOR + 构建命令增量编译(Java 的 `mvn compile -pl <module>` 等)+ 关门检查 + 写 verification-ledger;除非改了公共模块/数据访问层/sql/权限认证/接口层/数据契约 或用户要求 full-run-validation,否则不默认跑全量测试命令(Java 的 `mvn test` 等)。若跑了全量测试必须写入 ledger 供验证侧/submit 复用 |
|
|
265
|
+
| **execute TDD 降级** | 输出必须写"🟡 静态逻辑验证通过,未执行真实单元测试",**禁止写"测试全部通过"**;降级标注写在执行日志和覆盖报告中,**不污染业务代码注释**;记录三项:降级原因、静态验证场景列表、待部署后验证场景列表 |
|
|
266
|
+
| **execute ledger 复用** | 验证侧执行单元测试前先读 `verification-ledger.json`:若编码侧已对同一 diffHash/module/profile 跑过单元测试命令(Java 的 `mvn test` 等)且测试通过(Java 的 `Tests run: N, Failures: 0, Errors: 0` / 前端 N passing),可跳过重跑并标记"✅ 复用编码侧单元测试结果";diffHash 不一致 / profile 不一致 / 命令范围更窄 / 编码侧之后有行为性修改则不得复用 |
|
|
267
|
+
| **execute 批量 runner** | 默认使用 **PowerShell 接口测试执行器**:生成 `.harness/changes/<cn>/runtime/api-test-runner.mjs`,通过一次 PowerShell + node 执行全部场景,输出 `api-test-results.json`,主会话只读 JSON 生成摘要。Playwright MCP `browser_evaluate` 仅作 fallback,报告必须区分执行器:PowerShell 接口测试执行器 ✅使用 / PowerShell batch 🟡fallback / Playwright MCP 🟡fallback / curl 🟡fallback |
|
|
268
|
+
| **execute token 策略** | 先读 `.harness/changes/<cn>/runtime/credential-cache.json`(旧名 `token-cache.json` 兼容),本地轻量接口验证通过则复用,失败才访问远程 SSO;接口测试执行器必须用 request context / node fetch 直接请求本地 baseURL,**不得依赖浏览器当前页面 origin** |
|
|
269
|
+
| **execute 后变更分类** | 验证完成后发生代码变更时,submit/archive 必须按 7 类分类(NON_BEHAVIORAL_CLEANUP / COMMENT_ONLY / TEST_ONLY / BEHAVIORAL_SERVICE_CHANGE / API_CONTRACT_CHANGE / SQL_OR_MAPPER_CHANGE / SECURITY_OR_PERMISSION_CHANGE)写入 ledger 的 `postTestClassification`;非行为性清理可复用 API 测试结果但须记录依据,行为性变更必须重跑相关场景 |
|
|
272
270
|
| **submit 时序** | `/harness-submit` 完成后:主目录模式可直接 `/harness-archive`;worktree 模式在同一 skill 内自动完成合并后再 archive |
|
|
273
271
|
| **submit ledger 复用** | 验证前先读 `verification-ledger.json`:若当前 diffHash 已通过 test 完整验证且无行为性 post-test 修改,submit 不默认重跑构建命令/测试命令(Java 的 `mvn compile`/`mvn test` 等);只在远端有新提交 / staged diff 与 ledger 不一致 / 行为性 post-test 修改 / test 报告缺失或失败 / 用户要求 submit-full-verify 时重跑,重跑结果写回 ledger |
|
|
274
272
|
| **submit commit message** | subject 只根据当前 `git diff --cached` 或本次变更名生成,**不得混入历史任务上下文** |
|
|
@@ -309,7 +307,7 @@ harness-skills/
|
|
|
309
307
|
└──────┬───────┘
|
|
310
308
|
│
|
|
311
309
|
┌──────▼───────┐
|
|
312
|
-
│ harness-
|
|
310
|
+
│ harness-execute │ "测试验证" — 单元+接口+数据兼容
|
|
313
311
|
└──────┬───────┘
|
|
314
312
|
│
|
|
315
313
|
┌──────▼───────┐
|
|
@@ -335,22 +333,22 @@ harness-skills/
|
|
|
335
333
|
└─────────────────────────────────────────────────┘
|
|
336
334
|
```
|
|
337
335
|
|
|
338
|
-
> **harness-review 是参考性审查阶段**:默认只生成参考性审查报告和按需 fixback,不影响后续 submit、archive。如果用户选择处理 fixback,回到 `/harness-
|
|
336
|
+
> **harness-review 是参考性审查阶段**:默认只生成参考性审查报告和按需 fixback,不影响后续 submit、archive。如果用户选择处理 fixback,回到 `/harness-execute --fixback`,再执行 `/harness-execute` 和 `/harness-review`;如果团队希望 review RED 阻塞提交,可在 `.harness/config/harness-test-config.md` 中设置 `review.strict-review-gate: true`。
|
|
339
337
|
|
|
340
|
-
> **阶段顺序以计划为准**:Plan 会把本次 `plannedPhases` 写入上下文,后续阶段只消费该计划,不再假定 test、review、submit 或 merge 必经。快速流程默认可用 `plan →
|
|
338
|
+
> **阶段顺序以计划为准**:Plan 会把本次 `plannedPhases` 写入上下文,后续阶段只消费该计划,不再假定 test、review、submit 或 merge 必经。快速流程默认可用 `plan → execute → archive`;需要完整验证、评审或提交时再把对应阶段加入计划。无 Git、无 upstream、仅本地提交或主动跳过 submit 都不妨碍事实封存;只有“发布候选”需要额外满足发布策略。
|
|
341
339
|
|
|
342
340
|
> **verification-ledger 驱动跨阶段复用**:先通过共享状态目录解析器定位变更,再读写其 `evidence/verification-ledger.json`,其中记录 compile/unitTest/apiTest 的结果、证据、diffHash 和作用范围。run/test/submit 执行验证前先读 ledger,满足复用条件(diffHash 一致、module/profile 一致、范围更严格、有证据、无行为性 post-test 修改)则跳过重跑并标记 🔁REUSED;post-test 小改动按 7 类分类,非行为性清理可复用 API 测试。详见 `protocols/ledger-protocol.md`。
|
|
343
341
|
|
|
344
342
|
## 外部方法论吸收(已内化)
|
|
345
343
|
|
|
346
|
-
`harness-plan`、`harness-
|
|
344
|
+
`harness-plan`、`harness-execute`、`harness-review` 已将外部 skill 的有效方法内化为原生协议,不再运行时调用 Superpowers、grill-me 或 `receiving-code-review`,也不检查、降级或同步 `docs/superpowers/` 草稿。
|
|
347
345
|
|
|
348
346
|
| 方法论来源 | harness 落点 | 当前关系 |
|
|
349
347
|
|------------|--------------|----------|
|
|
350
348
|
| brainstorming | `harness-plan/protocols.md` 的 clarification-protocol | 已内化:风险、复用机会、替代方案、推荐方案 |
|
|
351
349
|
| grill-me | `harness-plan/protocols.md` 的 decision-grilling-protocol | 已内化:有限问题预算、一次一问、每问推荐答案 |
|
|
352
350
|
| writing-plans | `harness-plan/protocols.md` 的 implementation-planning-protocol | 已内化:任务简表、自适应执行参考、无占位符自检 |
|
|
353
|
-
| Superpowers TDD / subagent-driven-dev | `harness-
|
|
351
|
+
| Superpowers TDD / subagent-driven-dev | `harness-execute/protocols.md` 的 run-tdd-protocol / change-cluster-review-protocol | 已内化:RED 类型、GREEN 最小实现、风险触发审查 |
|
|
354
352
|
| receiving-code-review | `harness-review/protocols.md` 的 review-fixback-protocol | 已内化:RED/YELLOW 转结构化 fixback |
|
|
355
353
|
|
|
356
354
|
> **状态说明**:Superpowers / grill-me 可作为人工参考或后续方法论对标来源,但不是 harness 正式流程的运行时依赖;缺失时不触发降级记录。
|
|
@@ -397,7 +395,7 @@ powershell.exe -Command "Copy-Item -Path 'harness-skills/harness-*' -Destination
|
|
|
397
395
|
或者只复制需要的 skill:
|
|
398
396
|
|
|
399
397
|
```powershell
|
|
400
|
-
powershell.exe -Command "Copy-Item -Path 'harness-skills/harness-
|
|
398
|
+
powershell.exe -Command "Copy-Item -Path 'harness-skills/harness-execute' -Destination '<目标项目>/.claude/skills/' -Recurse -Force"
|
|
401
399
|
```
|
|
402
400
|
|
|
403
401
|
Claude Code/CodeBuddy 可选复制 3 个隔离角色:`harness-explorer` 仅高复杂度探索、`harness-evaluator` 仅 `--adversarial`/高风险规划、`harness-reviewer` 仅发布候选/高风险审查。Codex/Cursor 默认使用主会话或宿主临时隔离任务,不安装固定角色,也不执行固定 agent 预检:
|
|
@@ -420,8 +418,8 @@ npx hunter-harness # 初始化阶段检查环境/CodeGraph/基础状态(非
|
|
|
420
418
|
/harness-sync # 10 项元数据检查(7 核心 + 3 辅助)
|
|
421
419
|
/harness-codebase-map # 生成代码库地图(7 类文档)
|
|
422
420
|
/harness-plan # 需求规划(生成测试场景表 + 自动命名变更名)
|
|
423
|
-
/harness-
|
|
424
|
-
/harness-
|
|
421
|
+
/harness-execute # TDD 编码
|
|
422
|
+
/harness-execute # 运行测试(30条避坑规则)
|
|
425
423
|
/harness-review # 代码审查
|
|
426
424
|
/harness-submit # 提交代码(worktree 模式含合并;/harness-merge 为别名)
|
|
427
425
|
/harness-archive # 归档产出(harness_archive.py execute),释放工作区
|
|
@@ -429,7 +427,7 @@ npx hunter-harness # 初始化阶段检查环境/CodeGraph/基础状态(非
|
|
|
429
427
|
|
|
430
428
|
## 避坑知识来源
|
|
431
429
|
|
|
432
|
-
`harness-
|
|
430
|
+
`harness-execute/testing-pitfalls.md` 中的 30 条避坑规则来自真实对话日志(2026-06-12 ~ 06-24)。
|
|
433
431
|
|
|
434
432
|
---
|
|
435
433
|
← 返回 [[AI开发工作流|工作流主页]]
|
|
@@ -439,9 +437,9 @@ npx hunter-harness # 初始化阶段检查环境/CodeGraph/基础状态(非
|
|
|
439
437
|
|
|
440
438
|
### Worktree 决策状态
|
|
441
439
|
|
|
442
|
-
`harness-plan` 阶段 2 用户选择后,必须写入 `.harness/changes/<change-name>/meta/worktree.json`。`harness-
|
|
440
|
+
`harness-plan` 阶段 2 用户选择后,必须写入 `.harness/changes/<change-name>/meta/worktree.json`。`harness-execute` 负责读取该文件并创建/切换 worktree。
|
|
443
441
|
|
|
444
|
-
硬规则:如果 `worktree.json` 中 `requested=true`,而 worktree 不存在,`harness-
|
|
442
|
+
硬规则:如果 `worktree.json` 中 `requested=true`,而 worktree 不存在,`harness-execute` 必须创建 worktree 或停止,不得静默回到主目录执行。
|
|
445
443
|
|
|
446
444
|
|
|
447
445
|
## Cross-skill Protocols
|
|
@@ -132,56 +132,6 @@
|
|
|
132
132
|
"risk-classify-plan"
|
|
133
133
|
]
|
|
134
134
|
},
|
|
135
|
-
"harness-run": {
|
|
136
|
-
"phase": "execute",
|
|
137
|
-
"inputs": [
|
|
138
|
-
"implementation-detail",
|
|
139
|
-
"state-snapshot"
|
|
140
|
-
],
|
|
141
|
-
"artifacts": [
|
|
142
|
-
"code",
|
|
143
|
-
"verification-ledger"
|
|
144
|
-
],
|
|
145
|
-
"events": [
|
|
146
|
-
"phase.start",
|
|
147
|
-
"phase.end",
|
|
148
|
-
"command",
|
|
149
|
-
"verification"
|
|
150
|
-
],
|
|
151
|
-
"allowedInteractions": [],
|
|
152
|
-
"capabilities": [
|
|
153
|
-
"gate-begin",
|
|
154
|
-
"gate-close",
|
|
155
|
-
"ledger-record"
|
|
156
|
-
]
|
|
157
|
-
},
|
|
158
|
-
"harness-test": {
|
|
159
|
-
"phase": "execute",
|
|
160
|
-
"inputs": [
|
|
161
|
-
"test-scenarios",
|
|
162
|
-
"verification-ledger"
|
|
163
|
-
],
|
|
164
|
-
"artifacts": [
|
|
165
|
-
"test-reports",
|
|
166
|
-
"verification-ledger"
|
|
167
|
-
],
|
|
168
|
-
"events": [
|
|
169
|
-
"phase.start",
|
|
170
|
-
"phase.end",
|
|
171
|
-
"command",
|
|
172
|
-
"verification"
|
|
173
|
-
],
|
|
174
|
-
"allowedInteractions": [
|
|
175
|
-
"resource-intensive-test-confirmation"
|
|
176
|
-
],
|
|
177
|
-
"capabilities": [
|
|
178
|
-
"gate-begin",
|
|
179
|
-
"gate-close",
|
|
180
|
-
"test-guard",
|
|
181
|
-
"ledger-record",
|
|
182
|
-
"resource-safe-test-runner"
|
|
183
|
-
]
|
|
184
|
-
},
|
|
185
135
|
"harness-review": {
|
|
186
136
|
"phase": "review",
|
|
187
137
|
"inputs": [
|
|
@@ -3,7 +3,7 @@ name: harness-apidoc
|
|
|
3
3
|
description: 从 Java 后端代码生成结构化前端 API 文档(Controller/VO/ErrorCode)。仅当用户显式调用
|
|
4
4
|
/harness-apidoc 时使用,不得自动触发。
|
|
5
5
|
---
|
|
6
|
-
<!-- generated by harness_deploy.py; core=
|
|
6
|
+
<!-- generated by harness_deploy.py; core=8334c3150a633202; overlay=java; agent=codebuddy; do not edit -->
|
|
7
7
|
# harness-apidoc — 前端接口文档(Java overlay)
|
|
8
8
|
|
|
9
9
|
## Purpose
|
|
@@ -3,7 +3,7 @@ name: harness-archive
|
|
|
3
3
|
description: 归档所有变更产出(计划/测试报告/审查/SQL/API文档)到 .harness/archive/,含归档元数据。仅当用户显式调用
|
|
4
4
|
/harness-archive 时使用;不得被其他阶段 skill 自动接续触发。
|
|
5
5
|
---
|
|
6
|
-
<!-- generated by harness_deploy.py; core=
|
|
6
|
+
<!-- generated by harness_deploy.py; core=8334c3150a633202; overlay=java; agent=codebuddy; do not edit -->
|
|
7
7
|
# harness-archive — 变更归档
|
|
8
8
|
|
|
9
9
|
## Purpose
|
|
@@ -3,7 +3,7 @@ name: harness-codebase-map
|
|
|
3
3
|
description: 分析现有代码库并生成 .harness/codebase/map/
|
|
4
4
|
下的结构化代码库地图。用于陌生项目理解、重大改造前梳理、harness-sync 提示 map 过期后的人工刷新。
|
|
5
5
|
---
|
|
6
|
-
<!-- generated by harness_deploy.py; core=
|
|
6
|
+
<!-- generated by harness_deploy.py; core=8334c3150a633202; overlay=java; agent=codebuddy; do not edit -->
|
|
7
7
|
# harness-codebase-map — 代码库地图
|
|
8
8
|
|
|
9
9
|
## Purpose
|