@hunter-harness/workflow-harness 0.4.3 → 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 +4 -3
- 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 +19 -17
- 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 +2 -2
- package/harness/bundles/general/claude-code/harness-plan/checklist.md +1 -1
- package/harness/bundles/general/claude-code/harness-plan/reference.md +30 -3
- 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 +5 -5
- package/harness/bundles/general/claude-code/harness-review/checklist.md +1 -1
- package/harness/bundles/general/claude-code/harness-submit/SKILL.md +2 -2
- 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 +2 -2
- 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_archive.py +28 -1
- package/harness/bundles/general/claude-code/scripts/harness_change.py +74 -0
- package/harness/bundles/general/claude-code/scripts/harness_context.py +271 -10
- package/harness/bundles/general/claude-code/scripts/harness_deploy.py +2 -2
- package/harness/bundles/general/claude-code/scripts/harness_events.py +4 -1
- package/harness/bundles/general/claude-code/scripts/harness_gate.py +281 -77
- package/harness/bundles/general/claude-code/scripts/harness_profile.py +3 -3
- package/harness/bundles/general/claude-code/scripts/harness_review.py +120 -0
- package/harness/bundles/general/claude-code/scripts/harness_runtime.py +13 -0
- 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 +4 -3
- 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 +19 -17
- 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 +2 -2
- package/harness/bundles/general/codebuddy/harness-plan/checklist.md +1 -1
- package/harness/bundles/general/codebuddy/harness-plan/reference.md +30 -3
- 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 +5 -5
- package/harness/bundles/general/codebuddy/harness-review/checklist.md +1 -1
- package/harness/bundles/general/codebuddy/harness-submit/SKILL.md +2 -2
- 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 +2 -2
- 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_archive.py +28 -1
- package/harness/bundles/general/codebuddy/scripts/harness_change.py +74 -0
- package/harness/bundles/general/codebuddy/scripts/harness_context.py +271 -10
- package/harness/bundles/general/codebuddy/scripts/harness_deploy.py +2 -2
- package/harness/bundles/general/codebuddy/scripts/harness_events.py +4 -1
- package/harness/bundles/general/codebuddy/scripts/harness_gate.py +281 -77
- package/harness/bundles/general/codebuddy/scripts/harness_profile.py +3 -3
- package/harness/bundles/general/codebuddy/scripts/harness_review.py +120 -0
- package/harness/bundles/general/codebuddy/scripts/harness_runtime.py +13 -0
- 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 +4 -3
- 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 +19 -17
- 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 +2 -2
- package/harness/bundles/general/codex/harness-plan/checklist.md +1 -1
- package/harness/bundles/general/codex/harness-plan/reference.md +30 -3
- 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 +2 -2
- 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 +2 -2
- 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_archive.py +28 -1
- package/harness/bundles/general/codex/scripts/harness_change.py +74 -0
- package/harness/bundles/general/codex/scripts/harness_context.py +271 -10
- package/harness/bundles/general/codex/scripts/harness_deploy.py +2 -2
- package/harness/bundles/general/codex/scripts/harness_events.py +4 -1
- package/harness/bundles/general/codex/scripts/harness_gate.py +281 -77
- package/harness/bundles/general/codex/scripts/harness_profile.py +3 -3
- package/harness/bundles/general/codex/scripts/harness_review.py +120 -0
- package/harness/bundles/general/codex/scripts/harness_runtime.py +13 -0
- 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 +4 -3
- 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 +19 -17
- 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 +2 -2
- package/harness/bundles/general/cursor/harness-plan/checklist.md +1 -1
- package/harness/bundles/general/cursor/harness-plan/reference.md +30 -3
- 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 +2 -2
- 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 +2 -2
- 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_archive.py +28 -1
- package/harness/bundles/general/cursor/scripts/harness_change.py +74 -0
- package/harness/bundles/general/cursor/scripts/harness_context.py +271 -10
- package/harness/bundles/general/cursor/scripts/harness_deploy.py +2 -2
- package/harness/bundles/general/cursor/scripts/harness_events.py +4 -1
- package/harness/bundles/general/cursor/scripts/harness_gate.py +281 -77
- package/harness/bundles/general/cursor/scripts/harness_profile.py +3 -3
- package/harness/bundles/general/cursor/scripts/harness_review.py +120 -0
- package/harness/bundles/general/cursor/scripts/harness_runtime.py +13 -0
- 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 +4 -3
- 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 +19 -17
- 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 +2 -2
- package/harness/bundles/general/pi/harness-plan/checklist.md +1 -1
- package/harness/bundles/general/pi/harness-plan/reference.md +30 -3
- 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 +2 -2
- 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 +2 -2
- 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_archive.py +28 -1
- package/harness/bundles/general/pi/scripts/harness_change.py +74 -0
- package/harness/bundles/general/pi/scripts/harness_context.py +271 -10
- package/harness/bundles/general/pi/scripts/harness_deploy.py +2 -2
- package/harness/bundles/general/pi/scripts/harness_events.py +4 -1
- package/harness/bundles/general/pi/scripts/harness_gate.py +281 -77
- package/harness/bundles/general/pi/scripts/harness_profile.py +3 -3
- package/harness/bundles/general/pi/scripts/harness_review.py +120 -0
- package/harness/bundles/general/pi/scripts/harness_runtime.py +13 -0
- 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 +4 -3
- 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 +51 -17
- 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 +2 -2
- package/harness/bundles/java/claude-code/harness-plan/checklist.md +1 -1
- package/harness/bundles/java/claude-code/harness-plan/reference.md +30 -3
- 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 +5 -5
- package/harness/bundles/java/claude-code/harness-review/checklist.md +1 -1
- package/harness/bundles/java/claude-code/harness-submit/SKILL.md +2 -2
- 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 +2 -2
- 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_archive.py +28 -1
- package/harness/bundles/java/claude-code/scripts/harness_change.py +74 -0
- package/harness/bundles/java/claude-code/scripts/harness_context.py +271 -10
- package/harness/bundles/java/claude-code/scripts/harness_deploy.py +2 -2
- package/harness/bundles/java/claude-code/scripts/harness_events.py +4 -1
- package/harness/bundles/java/claude-code/scripts/harness_gate.py +281 -77
- package/harness/bundles/java/claude-code/scripts/harness_profile.py +3 -3
- package/harness/bundles/java/claude-code/scripts/harness_review.py +120 -0
- package/harness/bundles/java/claude-code/scripts/harness_runtime.py +13 -0
- 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 +4 -3
- 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 +51 -17
- 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 +2 -2
- package/harness/bundles/java/codebuddy/harness-plan/checklist.md +1 -1
- package/harness/bundles/java/codebuddy/harness-plan/reference.md +30 -3
- 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 +5 -5
- package/harness/bundles/java/codebuddy/harness-review/checklist.md +1 -1
- package/harness/bundles/java/codebuddy/harness-submit/SKILL.md +2 -2
- 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 +2 -2
- 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_archive.py +28 -1
- package/harness/bundles/java/codebuddy/scripts/harness_change.py +74 -0
- package/harness/bundles/java/codebuddy/scripts/harness_context.py +271 -10
- package/harness/bundles/java/codebuddy/scripts/harness_deploy.py +2 -2
- package/harness/bundles/java/codebuddy/scripts/harness_events.py +4 -1
- package/harness/bundles/java/codebuddy/scripts/harness_gate.py +281 -77
- package/harness/bundles/java/codebuddy/scripts/harness_profile.py +3 -3
- package/harness/bundles/java/codebuddy/scripts/harness_review.py +120 -0
- package/harness/bundles/java/codebuddy/scripts/harness_runtime.py +13 -0
- 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 +4 -3
- 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 +51 -17
- 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 +2 -2
- package/harness/bundles/java/codex/harness-plan/checklist.md +1 -1
- package/harness/bundles/java/codex/harness-plan/reference.md +30 -3
- 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 +2 -2
- 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 +2 -2
- 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_archive.py +28 -1
- package/harness/bundles/java/codex/scripts/harness_change.py +74 -0
- package/harness/bundles/java/codex/scripts/harness_context.py +271 -10
- package/harness/bundles/java/codex/scripts/harness_deploy.py +2 -2
- package/harness/bundles/java/codex/scripts/harness_events.py +4 -1
- package/harness/bundles/java/codex/scripts/harness_gate.py +281 -77
- package/harness/bundles/java/codex/scripts/harness_profile.py +3 -3
- package/harness/bundles/java/codex/scripts/harness_review.py +120 -0
- package/harness/bundles/java/codex/scripts/harness_runtime.py +13 -0
- 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 +4 -3
- 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 +51 -17
- 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 +2 -2
- package/harness/bundles/java/cursor/harness-plan/checklist.md +1 -1
- package/harness/bundles/java/cursor/harness-plan/reference.md +30 -3
- 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 +2 -2
- 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 +2 -2
- 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_archive.py +28 -1
- package/harness/bundles/java/cursor/scripts/harness_change.py +74 -0
- package/harness/bundles/java/cursor/scripts/harness_context.py +271 -10
- package/harness/bundles/java/cursor/scripts/harness_deploy.py +2 -2
- package/harness/bundles/java/cursor/scripts/harness_events.py +4 -1
- package/harness/bundles/java/cursor/scripts/harness_gate.py +281 -77
- package/harness/bundles/java/cursor/scripts/harness_profile.py +3 -3
- package/harness/bundles/java/cursor/scripts/harness_review.py +120 -0
- package/harness/bundles/java/cursor/scripts/harness_runtime.py +13 -0
- 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 +4 -3
- 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 +51 -17
- 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 +2 -2
- package/harness/bundles/java/pi/harness-plan/checklist.md +1 -1
- package/harness/bundles/java/pi/harness-plan/reference.md +30 -3
- 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 +2 -2
- 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 +2 -2
- 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_archive.py +28 -1
- package/harness/bundles/java/pi/scripts/harness_change.py +74 -0
- package/harness/bundles/java/pi/scripts/harness_context.py +271 -10
- package/harness/bundles/java/pi/scripts/harness_deploy.py +2 -2
- package/harness/bundles/java/pi/scripts/harness_events.py +4 -1
- package/harness/bundles/java/pi/scripts/harness_gate.py +281 -77
- package/harness/bundles/java/pi/scripts/harness_profile.py +3 -3
- package/harness/bundles/java/pi/scripts/harness_review.py +120 -0
- package/harness/bundles/java/pi/scripts/harness_runtime.py +13 -0
- package/harness/manifests/general/claude-code.json +65 -73
- package/harness/manifests/general/codebuddy.json +65 -73
- package/harness/manifests/general/codex.json +65 -73
- package/harness/manifests/general/cursor.json +65 -73
- package/harness/manifests/general/pi.json +65 -73
- package/harness/manifests/java/claude-code.json +68 -76
- package/harness/manifests/java/codebuddy.json +68 -76
- package/harness/manifests/java/codex.json +68 -76
- package/harness/manifests/java/cursor.json +68 -76
- package/harness/manifests/java/pi.json +68 -76
- package/hunter-workflow-family.json +2 -2
- package/package.json +15 -15
- 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
|
@@ -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=c008a303148bc343; overlay=java; agent=cursor; 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=c008a303148bc343; overlay=java; agent=cursor; do not edit -->
|
|
7
7
|
# harness-archive — 变更归档
|
|
8
8
|
|
|
9
9
|
## Purpose
|
|
@@ -126,11 +126,12 @@ description: 归档所有变更产出(计划/测试报告/审查/SQL/API文档
|
|
|
126
126
|
|
|
127
127
|
`execute` 内部运行自动门禁。实际计划最后阶段已终态、边界快照存在且 `status.archivable=true` 时直接执行;未满足时返回阻断且不移动原目录。用户取消后不得重跑。
|
|
128
128
|
|
|
129
|
-
### 二·A
|
|
129
|
+
### 二·A、常见阻断的正规出路(不要自己拼 python -c)
|
|
130
130
|
|
|
131
131
|
| 阻断 | 出路 |
|
|
132
132
|
|------|------|
|
|
133
|
-
| `
|
|
133
|
+
| `PROJECT_RELEASE_POLICY_BLOCKED` / `LOCAL_RELEASE_NOT_AUTHORIZED`(本地可复现证据未获发布授权) | `python <skills-root>/scripts/harness_change.py allow-local-release --change <cn> --json`(在 `meta/gate-policy.json` 写入 `candidateVerification.allowLocalRelease=true`,幂等,保留既有策略内容)。**不要**手改 `gate-policy.json` |
|
|
134
|
+
| `SENSITIVE_EVIDENCE_UNQUARANTINED`(默认只告警,`HUNTER_HARNESS_SENSITIVE_SCAN=block` 时才阻断) | 报错的 `nextAction` 自带含全部 `--file` 的完整命令;等价于 `python <skills-root>/scripts/harness_runtime.py quarantine-evidence --project . --change-dir ".harness/changes/<cn>" --file "<相对 change-dir 的路径>" --reason "<为什么是敏感证据>" --json`(`--file` 可重复)。私有根默认已与项目同盘、且在项目根之外——**不要**手工指定项目内的路径,归档的密钥扫描会以 `SECRET_SCAN_PRIVATE_PATH_IN_COPY_ROOT` 拒绝。harness 自生成发布日志里的 `recovery_token` 是系统字段,0.4.7(workflow-harness)起扫描器已豁免,无需隔离 |
|
|
134
135
|
| `DIFF_ZERO_WITH_NONEMPTY_COMMIT`(提交范围非空但 filesChanged=0) | 契约缺 `ownership.productPaths`,全部改动被判为 `foreignPaths`。用 `python <skills-root>/scripts/harness_change.py declare-ownership --change <cn> --product-path "<目录前缀或精确文件>" --json` 按计划的实际改动范围声明(可重复;只收精确路径,不支持通配)。**不要**手改 `change-context.json` |
|
|
135
136
|
|
|
136
137
|
### 二·A·1、发布内容预检与服务端 422
|
|
@@ -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=c008a303148bc343; overlay=java; agent=cursor; do not edit -->
|
|
7
7
|
# harness-codebase-map — 代码库地图
|
|
8
8
|
|
|
9
9
|
## Purpose
|
|
@@ -4,11 +4,11 @@ description: 执行阶段:按变更簇执行 TDD
|
|
|
4
4
|
编码循环(RED→GREEN→REFACTOR→编译验证),随后完成单元/接口/数据兼容验证并输出测试报告。仅当用户显式调用
|
|
5
5
|
/harness-execute 时使用;不得因用户提到编码/实现/测试就自动触发,也不得被其他阶段 skill 自动接续。
|
|
6
6
|
---
|
|
7
|
-
<!-- generated by harness_deploy.py; core=
|
|
7
|
+
<!-- generated by harness_deploy.py; core=c008a303148bc343; overlay=java; agent=cursor; do not edit -->
|
|
8
8
|
# harness-execute — 执行(编码 + 验证)
|
|
9
9
|
|
|
10
|
-
> 2026-08 阶段合并:原 `run`(编码)与 `test`(验证)合并为单一 `execute`
|
|
11
|
-
> `/harness-run
|
|
10
|
+
> 2026-08 阶段合并:原 `run`(编码)与 `test`(验证)合并为单一 `execute` 阶段;
|
|
11
|
+
> 0.4.9(workflow-harness)起 `/harness-run`、`/harness-test` 入口移除,统一由本 skill 承担。
|
|
12
12
|
|
|
13
13
|
## Purpose
|
|
14
14
|
|
|
@@ -16,7 +16,7 @@ description: 执行阶段:按变更簇执行 TDD
|
|
|
16
16
|
|
|
17
17
|
## When to Use
|
|
18
18
|
|
|
19
|
-
仅当用户显式调用 `/harness-execute
|
|
19
|
+
仅当用户显式调用 `/harness-execute` 时执行;plan 完成后**不自动**进入本阶段。参数:`--subagent` 强制 Subagent-Driven;`--inline` 等同默认;`--fixback` 读最新 review fixback。**默认 Inline,不询问执行模式**。
|
|
20
20
|
|
|
21
21
|
**单阶段原则**:execute 关门后必须停止并交还用户,仅提示 `plannedPhases` 中的真实下一阶段;禁止自动开始其他阶段。
|
|
22
22
|
|
|
@@ -41,7 +41,7 @@ description: 执行阶段:按变更簇执行 TDD
|
|
|
41
41
|
**状态与代码分离**:代码/编译/测试在 `worktreeRoot`;`stateDir`(logs/events/ledger/reports)写回 `.harness/changes/<change-name>/`。
|
|
42
42
|
|
|
43
43
|
创建命令与 JSON 模板 → 各 skill `reference.md`(plan 写决策,run 创建/更新)。
|
|
44
|
-
> 片段:worktree-gate · 创建命令 → `
|
|
44
|
+
> 片段:worktree-gate · 创建命令 → `coding-reference.md`
|
|
45
45
|
|
|
46
46
|
## 统一读取协议
|
|
47
47
|
|
|
@@ -62,12 +62,12 @@ description: 执行阶段:按变更簇执行 TDD
|
|
|
62
62
|
## Workflow 概要
|
|
63
63
|
|
|
64
64
|
0. 加载上下文:先 `harness_context.py prepare --project . --change <id> --phase execute --executor <tool> --json`(`--project` 必填),再 `harness_context.py begin --project . --change <id> --phase execute --executor <tool> --json` 校验交接,最后运行 **`harness_gate.py begin --phase execute --change <id>`**。旧名 `--phase run` / `--phase test` 仍被接受并归一为 execute。<br>**交接凭证不必手工补**:v2 计划的 `plan finalize` 不写 context 事务,`prepare` 会在检测到 committed 的 `meta/publication-journals/*.json` 时自动补录 `plan → execute` 凭证(凭证带 `bootstrapSource=plan_publication_journal` 留痕)。仍报 `HANDOFF_REQUIRED`/`LEGACY_BOOTSTRAP_REQUIRED` 说明**没有**这份发布证据——回到 plan 阶段确认发布是否真的完成,**不得**自己拼 `classify + configure-plan + close` 造凭证。<br>**Fixback** 不得拼装底层步骤,必须只调用一次 `harness_fixback.py launch-review --project . --change <id> --change-dir <change-dir> --executor <tool> --skills-root <skills-root> --product-identity <当前产品身份> --json`;返回 `FIXBACK_NOTHING_TO_APPLY` 时直接报告并停止。禁止手写 `events.ndjson` / `phase.end`。
|
|
65
|
-
0.5. **测试基础设施探测**与**命令执行模式 preflight** → `
|
|
66
|
-
1. **变更簇 TDD** — `
|
|
65
|
+
0.5. **测试基础设施探测**与**命令执行模式 preflight** → `testing-reference.md`「命令执行模式 preflight」;测试基线已由 gate begin 内部建立,不得再次执行 guard begin
|
|
66
|
+
1. **变更簇 TDD** — `protocols.md` `run-tdd-protocol`;批量 RED/GREEN;按需 `change-cluster-review-protocol`
|
|
67
67
|
2. 构建验证 + **仅**通过 `harness_ledger.py record` 写 ledger(禁止 Write/Edit `verification-ledger.json`);profile 缺失或陈旧时先 `harness_preflight.py detect --project . --json`;`record --project . --profile-input <key>` 从同一 target 推导 scope、coverage、规范命令与输入闭包
|
|
68
|
-
3. **验证执行**:单元测试可复用则跳过(`harness_ledger.py can-reuse`);接口测试**强制批量执行器**一次跑完全部场景;数据兼容验证按场景表执行 → `
|
|
68
|
+
3. **验证执行**:单元测试可复用则跳过(`harness_ledger.py can-reuse`);接口测试**强制批量执行器**一次跑完全部场景;数据兼容验证按场景表执行 → `testing-reference.md`
|
|
69
69
|
4. **场景覆盖检查**(场景表映射,禁止用用例数冒充场景数)
|
|
70
|
-
5. **关门检查**(10 项)→ 只执行一次 `harness_gate.py close`;`--to-phase`
|
|
70
|
+
5. **关门检查**(10 项)→ 只执行一次 `harness_gate.py close`;`--to-phase` 可省略——计划后继唯一(排除 fixback 自环)时自动派生并交接(输出含 `derivedToPhase`)。仅 fixback 回环时显式传 `--to-phase execute`。该命令内部关闭 test guard、写 `phase.end`、释放租约、写 handoff 并补传事件;不得再单独调用 test-guard/context close。失败时按结构化 `recoveryAction` 原样重试,已完成步骤幂等复用。
|
|
71
71
|
|
|
72
72
|
**阶段归属规则**:只用 `ownerPhase=execute` 的任务和场景判定本阶段结果。`ownerPhase=review`/`submit` 的场景按计划留给后续阶段属于正常移交,出现在关门返回值的 `deferred` 里,不阻断 execute。合并前 `ownerPhase=run`/`test` 的旧清单经别名表归一为 execute,在 execute 关门时一并到期。
|
|
73
73
|
|
|
@@ -79,11 +79,13 @@ description: 执行阶段:按变更簇执行 TDD
|
|
|
79
79
|
python <skills-root>/scripts/harness_test_runner.py exec --project . --timeout-seconds <预估上限> -- <构建命令及参数>
|
|
80
80
|
```
|
|
81
81
|
|
|
82
|
-
资源档位是硬合同(`safe` 默认;`system`/`full` 需用户明确授权或 `--confirm-resource-intensive`);Python `unittest` 必须逐模块隔离模式(`harness_test_runner.py unittest --profile safe --tests-dir
|
|
82
|
+
资源档位是硬合同(`safe` 默认;`system`/`full` 需用户明确授权或 `--confirm-resource-intensive`);Python `unittest` 必须逐模块隔离模式(`harness_test_runner.py unittest --profile safe --tests-dir <目录>`),并发上限由 runner 注入的 `HARNESS_TEST_MAX_WORKERS` 决定,不得自行提升。返回 `TEST_RUN_ALREADY_ACTIVE` 说明已有构建在跑:等待或查明持有者,不得绕开锁另起并行构建。完整约束 → `testing-checklist.md`「0.0-A 资源安全档位」。
|
|
83
83
|
|
|
84
84
|
**长阶段租约**:`gate begin` 的租约默认 TTL 3600 秒,execute 阶段常常跑得更久。租约过期不会中断执行,**也不再阻断收尾**:`gate close` 发现租约过期而 run-id 仍是本阶段的,会自动用原 run-id 重取并照常关门,只在返回体的 `leaseLapsed` 里记录。不需要定期续租;报 `LEASE_ABSENT`/`LEASE_INVALID` 时先确认 begin 真的跑过,**不要**重跑 `gate begin`。
|
|
85
85
|
|
|
86
|
-
|
|
86
|
+
**关门重试是幂等续跑**(0.4.5 workflow 起):租约释放是 close 的最后一个可失败步骤,handoff/monitor/清草稿任一失败时租约仍持有,原样重跑同一命令即可(已完成步骤由 closeTransaction journal 幂等跳过)。万一处于「phase.end 已写 + 租约已放 + 交接未完成」的历史中间态,重跑 close 会自动识别并补跑剩余步骤(`PHASE_CLOSE_RESUMED`):未带 `--to-phase` 时从 plannedPhases 派生唯一后继,后继不唯一才报 `PHASE_HANDOFF_PENDING` 并列出候选。**都不需要手工 `harness_change.py claim`**——LEASE_ABSENT 只在 begin 从未跑过时才该出现。
|
|
87
|
+
|
|
88
|
+
**接口测试执行器优先级**:接口测试执行器(默认首选)> PowerShell batch `.ps1` > Playwright MCP `browser_evaluate`(仅前两者不可用或用户明确选择)> curl + UTF-8 JSON body file(兜底)。执行器在 PowerShell 可用时**禁止**用 Playwright MCP 逐条执行。→ `testing-reference.md`「接口测试工具优先级」
|
|
87
89
|
|
|
88
90
|
**陈旧测试安全修复**:只有当前生产代码、已批准计划或可验证历史能唯一确定新契约时,才允许仅修改测试并立即重跑,然后记录:
|
|
89
91
|
|
|
@@ -95,6 +97,28 @@ python <skills-root>/scripts/harness_test_guard.py record --project . --change-d
|
|
|
95
97
|
|
|
96
98
|
**Foundation Gate**:若 `meta/implementation-checkpoints.json` 中 `foundation-gate` 为 pending,不得开始 plan 中任务 6+;由 `harness_gate.py` 硬阻断。
|
|
97
99
|
|
|
100
|
+
### Java 构建验证(Maven)
|
|
101
|
+
|
|
102
|
+
- 所有 `mvn`/`git` 经 `powershell.exe -NoProfile -Command`;命令读 `.harness/config/build-profile.json` 的 `commands`(v2,按 profile key resolve;**禁止 hardcode 模块名/端口**)
|
|
103
|
+
- 增量编译:`commands.compile`(典型 `mvn compile -pl <module> -o -q`)
|
|
104
|
+
- 变更簇 TDD:多测试类合并一次按 `commands.unitTest` resolve(典型 `mvn test -pl <module> -Dtest=A,B,C -o`);每簇最多一次 RED + 一次 GREEN Maven
|
|
105
|
+
- **轻量 run**:默认只 compile;全量 `mvn test` 仅当改了 mapper/sql/权限/controller/公共模块或用户要求 full-run-validation
|
|
106
|
+
- **install -am**:仅 worktree 首建或上游模块文件变化时(见 ledger-protocol);非每次 run 强制
|
|
107
|
+
- worktree 中确认 `.mvn/maven.config` 等构建配置存在;缺失时从主目录复制
|
|
108
|
+
### Java 测试环境补充
|
|
109
|
+
|
|
110
|
+
- **preflight 0.1**:写入 `runtime/preflight.json` 的 `executorPath`/`mvnVersion` 等;Maven 可用性 `mvn -version` exit 0
|
|
111
|
+
- **编译门禁**:测试前按 `build-profile.json` 的 `commands.compile`(v2,profile key resolve);输出须含 `BUILD SUCCESS` 或 exit 0 证据
|
|
112
|
+
- **条件 install**:worktree 首建或上游模块变更时按 profile 执行 `commands.install`(非每次强制 `-am`)
|
|
113
|
+
- **单元测试**:可复用 ledger unitTest 则跳过;否则 `commands.unitTest`(典型 `mvn test -pl <module>`);执行模块全量 `commands.unitTestFull` 成功 → 记 `unitTestFull`(scope=module,供 submit 复用)
|
|
114
|
+
- **陈旧测试安全修复**:测试编译明确命中已移除/改名 API 且当前代码与批准计划唯一确定新契约时,只修测试并定向重跑,记录 `stale-test-repair`;有歧义则 `BLOCKED_PREEXISTING`,禁止 `.bak`/删除/禁用/exclude
|
|
115
|
+
- **服务启动**:`build-profile.json` 的 `serviceStartTemplate`(典型 `spring-boot:run` + profile);**禁止 hardcode 端口/模块路径**
|
|
116
|
+
- **Maven 生命周期去重**:单元测试已独立通过后,服务启动命令可配置 `-Dmaven.test.skip=true` 避免重复测试编译;它仅优化启动,不是测试通过证据
|
|
117
|
+
- **服务指纹输入**(Task 3 §5.1):`serviceStart.inputFiles` 必须列出 module 源 glob(如 `["<module>/pom.xml", "<module>/src/main/**/*.java", "<module>/src/main/resources/**"]`);`harness_service.py ensure` 取 CLI `--files` ∪ `inputFiles` 计算 `moduleInputsHash`。**空输入被拒绝**,不得生成可复用空指纹。源码/command/profile/overlayPath 任一变化即 restart
|
|
118
|
+
- **runtime overlay**:`-Dspring.config.additional-location=file:<ascii-abs-path>/application-harness-execute.yml`;禁止默认 Edit tracked `application*.yml`
|
|
119
|
+
- **known-good-test-profile**:profile 名、baseURL、healthUrl 写在 build-profile,非 skill 硬编码
|
|
120
|
+
- **多租户请求头**:header 名/值来自 build-profile 的 `httpHeaders` 配置
|
|
121
|
+
- **Service Gate**:`harness_service.py ensure` 返回 `needs-user-decision`(用户进程占端口)时**才** blocking user confirmation
|
|
98
122
|
## P0 执行可信度规则
|
|
99
123
|
|
|
100
124
|
- 命令结果不得靠猜测;普通 Bash 被拒 → 立即改用等价 PowerShell 重试一次
|
|
@@ -109,7 +133,7 @@ python <skills-root>/scripts/harness_test_guard.py record --project . --change-d
|
|
|
109
133
|
|
|
110
134
|
## 关键规则(硬门禁速查)
|
|
111
135
|
|
|
112
|
-
> 编码侧细则 → `
|
|
136
|
+
> 编码侧细则 → `coding-reference.md`、`protocols.md`;验证侧细则 → `testing-reference.md`、`testing-checklist.md`、`testing-pitfalls.md`
|
|
113
137
|
|
|
114
138
|
| 域 | 要点 |
|
|
115
139
|
|----|------|
|
|
@@ -124,17 +148,27 @@ python <skills-root>/scripts/harness_test_guard.py record --project . --change-d
|
|
|
124
148
|
| **租约** | 阶段超 TTL 由 close 自动用原 run-id 重取,无需续租;`LEASE_ABSENT`/`LEASE_INVALID` 才需人工 `harness_change.py claim`,一律不重跑 begin |
|
|
125
149
|
| **报告** | 区分"产品测试"与"工具维护";API 维度 `OK`/`PARTIAL`/`BLOCKED`/`NOT_RUN`/`FAIL` 五态 |
|
|
126
150
|
|
|
151
|
+
### Java TDD / 数据访问补充
|
|
152
|
+
|
|
153
|
+
| 项 | 规则 |
|
|
154
|
+
|----|------|
|
|
155
|
+
| **低价值豁免** | ErrorCode 常量、VO/DTO 字段、注释、import 清理、格式化、SQL 脚本、配置模板、文档 — 不单独建测试类;禁止为单个错误码单独跑 Maven |
|
|
156
|
+
| **Mapper / LambdaQueryWrapper / SQL** | 纯 Mock 返回值**不得**宣称 DB 验证通过 → 🟡 静态验证,交 harness-execute 真实 DB |
|
|
157
|
+
| **行为性新分支** | 正则/条件/分支逻辑变更新增分支须 RED→GREEN;不属于低价值豁免 |
|
|
158
|
+
| **ledger** | compile 必写;执行了 test 写 unitTest,否则 `NOT_RUN_BY_RUN`;diffHash 用 `harness_ledger.py diff-hash --change-dir`(见 reference) |
|
|
159
|
+
| **陈旧 Java 测试** | `cannot find symbol`/mapper 方法改名/DTO 字段迁移只有在当前接口和批准计划唯一确定替代契约时才允许只改测试;修复后定向 `mvn test -Dtest=<class>`,再跑目标测试并记录 `stale-test-repair` |
|
|
160
|
+
| **禁止规避** | 禁止把 `*Test.java` 改成 `.bak`、删除、`@Disabled`/`@Ignore`、Surefire exclude 或以 `-DskipTests` 充当 GREEN |
|
|
127
161
|
## Output Format
|
|
128
162
|
|
|
129
163
|
变更文件表 + 构建/测试证据 + 场景覆盖摘要 + 最终状态(✅OK / 🟡WARN / ❌FAIL)。测试报告保存到 `.harness/changes/<change-name>/reports/test/test-report-YYYYMMDD-HHmm.md`。
|
|
130
164
|
|
|
131
165
|
## 渐进披露
|
|
132
166
|
|
|
133
|
-
- **Read `
|
|
134
|
-
- **Read `
|
|
135
|
-
- **Read `
|
|
136
|
-
- **Read `
|
|
137
|
-
- **Read `
|
|
167
|
+
- **Read `protocols.md`** — run-tdd + change-cluster-review
|
|
168
|
+
- **Read `coding-reference.md`** — Step 0–5 细节、TDD/RED/ledger/迁移/安全矩阵
|
|
169
|
+
- **Read `testing-checklist.md`** — 验证前各项强制检查、preflight、服务生命周期清单
|
|
170
|
+
- **Read `testing-reference.md`** — API 测试执行方法、执行器模板、运行时配置叠加
|
|
171
|
+
- **Read `testing-pitfalls.md`** — 测试踩坑规则
|
|
138
172
|
|
|
139
173
|
## 交互白名单
|
|
140
174
|
|
package/harness/bundles/java/cursor/{harness-run/checklist.md → harness-execute/coding-checklist.md}
RENAMED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
# harness-
|
|
1
|
+
# harness-execute 执行检查清单
|
|
2
2
|
|
|
3
3
|
> 编码执行时逐项勾选,确保不遗漏关键步骤。
|
|
4
4
|
|
|
@@ -105,7 +105,7 @@
|
|
|
105
105
|
### Mapper 查询条件验证检查
|
|
106
106
|
|
|
107
107
|
- [ ] 如果变更涉及 Mapper 查询条件 / LambdaQueryWrapper / SQL/XML → 不得用纯 Mock 宣称"自动化测试通过"
|
|
108
|
-
- [ ] 纯 Mock Mapper 测试 → 标记为 🟡静态验证,交给 harness-
|
|
108
|
+
- [ ] 纯 Mock Mapper 测试 → 标记为 🟡静态验证,交给 harness-execute 真实 DB 验证
|
|
109
109
|
- [ ] 如果必须自动化 → 使用真实 mapper 或可检查 wrapper 条件的测试方式
|
|
110
110
|
|
|
111
111
|
### GREEN(最简实现 — 按变更簇批量实现)
|
|
@@ -133,7 +133,7 @@
|
|
|
133
133
|
- [ ] 如果使用 `-q` quiet 模式 → 报告中写 `exitCode=0`,**不得写 BUILD SUCCESS**
|
|
134
134
|
- [ ] 最终 compile 只执行一次,如果前面已有 compile 成功证据,可复用 verification-ledger
|
|
135
135
|
- [ ] 判断是否需要全量 `mvn test`:改了公共模块/mapper/sql/权限认证/controller/VO,或用户要求 full-run-validation → 执行 `mvn test -pl <module> -o`;否则跳过全量 test
|
|
136
|
-
- [ ] 编译失败 → 先分析错误类型(见 reference.md 编译失败策略表)
|
|
136
|
+
- [ ] 编译失败 → 先分析错误类型(见 coding-reference.md 编译失败策略表)
|
|
137
137
|
- [ ] **写入 verification-ledger.json**:`compile` 项必写(status/command/scope/evidence/时间戳/durationMs);若执行了 mvn test 则 `unitTest` 项必写(testsRun/failures/errors/skipped/evidence);未执行时标记 `NOT_RUN_BY_RUN`
|
|
138
138
|
- [ ] 顶层写入 `diffHash` / `currentHead` / `baseCommit` / `module` / `profile`;`diffHash` **必须用三部分合并命令**(inline 见 reference 步骤 2c,与 ledger-protocol 五一致),**禁止仅用 `git diff` 未提交**;`currentHead`=`git rev-parse HEAD`
|
|
139
139
|
- [ ] test/submit/package 阶段如果 diffHash 一致,可复用 run 的 compile/unitTest 结果
|
|
@@ -153,7 +153,7 @@
|
|
|
153
153
|
|
|
154
154
|
> 凡是修改了管理员/非管理员、orgCode、数据权限、越权异常等逻辑,必须强制生成。
|
|
155
155
|
|
|
156
|
-
- [ ] 生成安全矩阵(模板见 reference.md)
|
|
156
|
+
- [ ] 生成安全矩阵(模板见 coding-reference.md)
|
|
157
157
|
- [ ] 覆盖:超级管理员 token 空/非空 × 请求 orgCode 空/指定 × projectType 有/无
|
|
158
158
|
- [ ] 覆盖:非管理员 token 本组织/空 × 请求 orgCode 本组织/其他组织/空 × projectType 有/无
|
|
159
159
|
- [ ] 如果任一权限边界预期不明确 → 不允许标记 ✅OK
|
|
@@ -208,13 +208,13 @@
|
|
|
208
208
|
|
|
209
209
|
- [ ] 每个任务状态更新到 plan 文件或新增 `run-task-status.md`
|
|
210
210
|
- [ ] 状态区分:✅ DONE_AUTOMATED_TESTED / 🟡 DONE_STATIC_ONLY / 🟡 DONE_NEEDS_INTERFACE_TEST / 🟡 NEEDS_DB_VALIDATION / ❌ FAILED
|
|
211
|
-
- [ ] 确保后续 harness-
|
|
211
|
+
- [ ] 确保后续 harness-execute / harness-review 可读取待验证场景
|
|
212
212
|
|
|
213
213
|
## 执行日志完成记录
|
|
214
214
|
|
|
215
215
|
- [ ] 追加结束时间、耗时、结果、摘要、checkpoint commit 状态
|
|
216
216
|
- [ ] **执行日志去重检查**:同一阶段不重复追加小节,如需补充应 Edit 原小节
|
|
217
|
-
- [ ] 如果存在 🟡静态验证 P0 场景 → 下一步必须写 `必须先运行 /harness-
|
|
217
|
+
- [ ] 如果存在 🟡静态验证 P0 场景 → 下一步必须写 `必须先运行 /harness-execute`,不得并列"提交代码"
|
|
218
218
|
- [ ] 如果存在 SQL 迁移/DB 验证未完成 → 最终不得输出纯 ✅OK
|
|
219
219
|
|
|
220
220
|
### 最终状态分级
|