@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
|
@@ -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-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=b2f31f3090f759b0; overlay=none; agent=cursor; 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=b2f31f3090f759b0; overlay=none; 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=b2f31f3090f759b0; overlay=none; 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,10 +62,10 @@ 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
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
|
|
|
@@ -79,13 +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
87
|
|
|
88
|
-
**接口测试执行器优先级**:接口测试执行器(默认首选)> PowerShell batch `.ps1` > Playwright MCP `browser_evaluate`(仅前两者不可用或用户明确选择)> curl + UTF-8 JSON body file(兜底)。执行器在 PowerShell 可用时**禁止**用 Playwright MCP 逐条执行。→ `
|
|
88
|
+
**接口测试执行器优先级**:接口测试执行器(默认首选)> PowerShell batch `.ps1` > Playwright MCP `browser_evaluate`(仅前两者不可用或用户明确选择)> curl + UTF-8 JSON body file(兜底)。执行器在 PowerShell 可用时**禁止**用 Playwright MCP 逐条执行。→ `testing-reference.md`「接口测试工具优先级」
|
|
89
89
|
|
|
90
90
|
**陈旧测试安全修复**:只有当前生产代码、已批准计划或可验证历史能唯一确定新契约时,才允许仅修改测试并立即重跑,然后记录:
|
|
91
91
|
|
|
@@ -111,7 +111,7 @@ python <skills-root>/scripts/harness_test_guard.py record --project . --change-d
|
|
|
111
111
|
|
|
112
112
|
## 关键规则(硬门禁速查)
|
|
113
113
|
|
|
114
|
-
> 编码侧细则 → `
|
|
114
|
+
> 编码侧细则 → `coding-reference.md`、`protocols.md`;验证侧细则 → `testing-reference.md`、`testing-checklist.md`、`testing-pitfalls.md`
|
|
115
115
|
|
|
116
116
|
| 域 | 要点 |
|
|
117
117
|
|----|------|
|
|
@@ -132,11 +132,11 @@ python <skills-root>/scripts/harness_test_guard.py record --project . --change-d
|
|
|
132
132
|
|
|
133
133
|
## 渐进披露
|
|
134
134
|
|
|
135
|
-
- **Read `
|
|
136
|
-
- **Read `
|
|
137
|
-
- **Read `
|
|
138
|
-
- **Read `
|
|
139
|
-
- **Read `
|
|
135
|
+
- **Read `protocols.md`** — run-tdd + change-cluster-review
|
|
136
|
+
- **Read `coding-reference.md`** — Step 0–5 细节、TDD/RED/ledger/迁移/安全矩阵
|
|
137
|
+
- **Read `testing-checklist.md`** — 验证前各项强制检查、preflight、服务生命周期清单
|
|
138
|
+
- **Read `testing-reference.md`** — API 测试执行方法、执行器模板、运行时配置叠加
|
|
139
|
+
- **Read `testing-pitfalls.md`** — 测试踩坑规则
|
|
140
140
|
|
|
141
141
|
## 交互白名单
|
|
142
142
|
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
---
|
|
2
|
-
description: harness-
|
|
2
|
+
description: harness-execute 的执行检查清单。仅在编码执行时读取。
|
|
3
3
|
---
|
|
4
4
|
|
|
5
|
-
# harness-
|
|
5
|
+
# harness-execute 执行检查清单
|
|
6
6
|
|
|
7
7
|
> 编码执行时逐项勾选,确保不遗漏关键步骤。
|
|
8
8
|
|
|
@@ -88,10 +88,10 @@ description: harness-run 的执行检查清单。仅在编码执行时读取。
|
|
|
88
88
|
|
|
89
89
|
### 进入变更簇 RED 前:执行 run-tdd-protocol
|
|
90
90
|
|
|
91
|
-
- [ ] 已读取 `
|
|
91
|
+
- [ ] 已读取 `protocols.md`
|
|
92
92
|
- [ ] 为当前变更簇选择 RED 类型:真实 RED / 静态 RED / 复用 RED
|
|
93
93
|
- [ ] 真实 RED → 测试编译通过且失败断言指向目标行为
|
|
94
|
-
- [ ] 静态 RED → 记录降级原因、静态验证场景、待 harness-
|
|
94
|
+
- [ ] 静态 RED → 记录降级原因、静态验证场景、待 harness-execute 验证场景
|
|
95
95
|
- [ ] 复用 RED → 引用 test-scenarios 编号与前序证据,并在执行日志登记
|
|
96
96
|
- [ ] 任何 RED 类型都已写入 events.ndjson(`decision` / `verification` / `issue`)
|
|
97
97
|
|
|
@@ -121,7 +121,7 @@ description: harness-run 的执行检查清单。仅在编码执行时读取。
|
|
|
121
121
|
### 数据访问层查询条件验证检查
|
|
122
122
|
|
|
123
123
|
- [ ] 如果变更涉及数据访问层查询逻辑(Java 的 Mapper/LambdaQueryWrapper/SQL/XML)→ 不得用纯 Mock 宣称"自动化测试通过"
|
|
124
|
-
- [ ] 纯 Mock 数据访问层测试 → 标记为 🟡静态验证,交给 harness-
|
|
124
|
+
- [ ] 纯 Mock 数据访问层测试 → 标记为 🟡静态验证,交给 harness-execute 真实 DB 验证
|
|
125
125
|
- [ ] 如果必须自动化 → 使用真实数据访问层(非 mock)或可检查查询条件的测试方式
|
|
126
126
|
|
|
127
127
|
### 编码前检查(远程客户端 / stub 同源错误)
|
|
@@ -157,7 +157,7 @@ description: harness-run 的执行检查清单。仅在编码执行时读取。
|
|
|
157
157
|
- [ ] 如果使用静默模式(如 Maven `-q`)→ 报告中写 `exitCode=0`,**不得写"构建成功"字样(如 Java 的 BUILD SUCCESS)**
|
|
158
158
|
- [ ] 最终构建只执行一次,如果前面已有构建成功证据,可复用 verification-ledger
|
|
159
159
|
- [ ] 判断是否需要全量测试:改了公共模块/数据访问层/数据库迁移/权限认证/接口层/数据契约,或用户要求 full-run-validation → 执行测试命令(按技术栈,如 Java 的 `mvn test -pl <module> -o`);否则跳过全量测试
|
|
160
|
-
- [ ] 构建失败 → 先分析错误类型(见 reference.md 构建失败策略表)
|
|
160
|
+
- [ ] 构建失败 → 先分析错误类型(见 coding-reference.md 构建失败策略表)
|
|
161
161
|
- [ ] **经 `harness_ledger.py record` 写入 ledger**(禁止 Write/Edit `verification-ledger.json`):`compile` 项必写;若执行了测试则 `unitTest` 项必写;未执行时标记 `NOT_RUN_BY_RUN`
|
|
162
162
|
- [ ] 顶层写入 `diffHash` / `currentHead` / `module` / `profile`;`diffHash` 必须执行 `harness_ledger.py diff-hash --repo . --base <baseCommit> --change-dir ".harness/changes/<change-name>" --json`,纳入 test-tracking manifest 中的 ignored tests;`currentHead`=`git rev-parse HEAD`
|
|
163
163
|
- [ ] test/submit/package 阶段如果 diffHash 一致,可复用 run 的 compile/unitTest 结果
|
|
@@ -181,7 +181,7 @@ description: harness-run 的执行检查清单。仅在编码执行时读取。
|
|
|
181
181
|
|
|
182
182
|
> 凡是修改了管理员/非管理员、orgCode、数据权限、越权异常等逻辑,必须强制生成。
|
|
183
183
|
|
|
184
|
-
- [ ] 生成安全矩阵(模板见 reference.md)
|
|
184
|
+
- [ ] 生成安全矩阵(模板见 coding-reference.md)
|
|
185
185
|
- [ ] 覆盖:超级管理员 token 空/非空 × 请求 orgCode 空/指定 × projectType 有/无
|
|
186
186
|
- [ ] 覆盖:非管理员 token 本组织/空 × 请求 orgCode 本组织/其他组织/空 × projectType 有/无
|
|
187
187
|
- [ ] 如果任一权限边界预期不明确 → 不允许标记 ✅OK
|
|
@@ -237,12 +237,12 @@ description: harness-run 的执行检查清单。仅在编码执行时读取。
|
|
|
237
237
|
|
|
238
238
|
- [ ] 每个任务状态只更新到 `evidence/run-task-status.md`;不得修改 finalized plan 文件
|
|
239
239
|
- [ ] 状态区分:✅ DONE_AUTOMATED_TESTED / 🟡 DONE_STATIC_ONLY / 🟡 DONE_NEEDS_INTERFACE_TEST / 🟡 NEEDS_DB_VALIDATION / ❌ FAILED
|
|
240
|
-
- [ ] 确保后续 harness-
|
|
240
|
+
- [ ] 确保后续 harness-execute / harness-review 可读取待验证场景
|
|
241
241
|
|
|
242
242
|
## 事件收尾记录
|
|
243
243
|
|
|
244
244
|
- [ ] append `phase.end` **仅**通过 `harness_gate.py close`(禁止手工 Edit `events.ndjson` / 直接 append phase.end 绕过 close 校验)
|
|
245
|
-
- [ ]
|
|
245
|
+
- [ ] 如果存在编码侧 🟡静态验证 P0 场景 → 下一步必须写 `必须先完成本阶段的验证执行(见 testing-checklist.md)`,不得并列"提交代码"
|
|
246
246
|
- [ ] 如果 run 阶段负责的数据库迁移/DB 验证未完成 → 最终不得输出纯 ✅OK
|
|
247
247
|
|
|
248
248
|
### 最终状态分级
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
---
|
|
2
|
-
description: harness-
|
|
2
|
+
description: harness-execute 的编译失败策略表、TDD循环详细步骤和编码约束。仅在编码执行遇到编译问题或需要参考详细规则时读取。
|
|
3
3
|
---
|
|
4
4
|
|
|
5
|
-
# harness-
|
|
5
|
+
# harness-execute 参考 — 详细规则
|
|
6
6
|
|
|
7
7
|
## 为什么走变更簇 TDD 而不是逐任务 TDD
|
|
8
8
|
|
|
@@ -30,7 +30,7 @@ description: harness-run 的编译失败策略表、TDD循环详细步骤和编
|
|
|
30
30
|
|
|
31
31
|
## Worktree 创建与切换详细规则
|
|
32
32
|
|
|
33
|
-
`harness-
|
|
33
|
+
`harness-execute` 必须把 `worktree.json` 当作唯一决策源。
|
|
34
34
|
|
|
35
35
|
### 状态机
|
|
36
36
|
|
|
@@ -119,7 +119,7 @@ requested=true + path missing
|
|
|
119
119
|
4. 读取 .harness/changes/<change-name>/plans/<change-name>-test-scenarios.md
|
|
120
120
|
```
|
|
121
121
|
|
|
122
|
-
**禁止 /harness-
|
|
122
|
+
**禁止 /harness-execute 默认读取 `docs/superpowers/plans/*.md`** 作为任务来源。旧 `docs/superpowers/` 草稿最多作为人工线索,不作为执行输入。
|
|
123
123
|
|
|
124
124
|
### 步骤 0.1:执行模式(无询问)
|
|
125
125
|
|
|
@@ -182,7 +182,7 @@ powershell.exe -Command "<测试命令> <模块定位参数>"
|
|
|
182
182
|
从场景表选取对应当前变更簇的测试用例:
|
|
183
183
|
|
|
184
184
|
- **单元测试**(优先):按技术栈测试框架(如 Java 的 JUnit 5 + Mockito + AssertJ),命名 `{方法名}_{场景}_{预期结果}()`,用断言库(如 Java 的 AssertJ `assertThat`)
|
|
185
|
-
- **接口测试**(必要时代码逻辑已覆盖即可,实际 HTTP 调用留给 `harness-
|
|
185
|
+
- **接口测试**(必要时代码逻辑已覆盖即可,实际 HTTP 调用留给 `harness-execute`)
|
|
186
186
|
- **多个测试类合并到一次构建/测试命令执行**(按技术栈模块/用例定位参数,如 Java 的 `mvn test -pl <module> -Dtest=TestA,TestB,TestC -o`)
|
|
187
187
|
|
|
188
188
|
### RED 有效性判定(⚠️ 必须逐项确认)
|
|
@@ -245,7 +245,7 @@ RED 不是"测试失败"即可通过,必须确认失败原因与目标 bug/需
|
|
|
245
245
|
| 注释 | 构建验证 | 不影响运行时行为 |
|
|
246
246
|
| 代码整理(import 清理)| 构建验证 | 不影响运行时行为 |
|
|
247
247
|
| 格式化 | 构建验证 | 不影响运行时行为 |
|
|
248
|
-
| 数据库迁移脚本 | 静态审查 + harness-
|
|
248
|
+
| 数据库迁移脚本 | 静态审查 + harness-execute DB 验证 | 不做 TDD,生成审查清单 |
|
|
249
249
|
| 配置模板 | 静态审查 | 部署时生效 |
|
|
250
250
|
| 文档文件 | 静态审查 | 不涉及代码 |
|
|
251
251
|
|
|
@@ -283,7 +283,7 @@ RED 不是"测试失败"即可通过,必须确认失败原因与目标 bug/需
|
|
|
283
283
|
| 是否可通过静态 mock(如 Java 的 mockStatic)构造? | 是/否 |
|
|
284
284
|
| 是否可写轻量集成测试? | 是/否 |
|
|
285
285
|
| 跳过自动化测试的具体阻塞点 | ... |
|
|
286
|
-
| 后续必须由哪个阶段验证 | harness-
|
|
286
|
+
| 后续必须由哪个阶段验证 | harness-execute / 手工接口 / 部署验证 |
|
|
287
287
|
|
|
288
288
|
如果只是"配置麻烦"或"mock 复杂",不得直接跳过。对数据契约字段(DTO)、分页返回、权限过滤、组织过滤等用户可见行为,必须优先写公共行为测试。
|
|
289
289
|
|
|
@@ -304,9 +304,9 @@ RED 不是"测试失败"即可通过,必须确认失败原因与目标 bug/需
|
|
|
304
304
|
5. 输出必须明确写成:
|
|
305
305
|
- "🟡 静态逻辑验证通过"
|
|
306
306
|
- "未执行真实单元测试"
|
|
307
|
-
- "待测试基础设施补齐后运行 harness-
|
|
307
|
+
- "待测试基础设施补齐后运行 harness-execute"
|
|
308
308
|
6. **禁止写成**:"测试全部通过"、"测试通过 N/N"、"覆盖率 100%"等含暗示真实测试已运行的表述
|
|
309
|
-
7. 提示用户在测试基础设施就绪后补充运行 `harness-
|
|
309
|
+
7. 提示用户在测试基础设施就绪后补充运行 `harness-execute`
|
|
310
310
|
|
|
311
311
|
## GREEN:最简实现
|
|
312
312
|
|
|
@@ -327,7 +327,7 @@ RED 不是"测试失败"即可通过,必须确认失败原因与目标 bug/需
|
|
|
327
327
|
|
|
328
328
|
## GREEN 后反模式自检(内置清单)
|
|
329
329
|
|
|
330
|
-
> 此步骤是 `/harness-
|
|
330
|
+
> 此步骤是 `/harness-execute` 的内置自检,不依赖 Superpowers `test-driven-development`,也不存在外部 skill 调用成功后的跳过分支。
|
|
331
331
|
|
|
332
332
|
GREEN 阶段完成后,对照以下反模式清单自检:
|
|
333
333
|
|
|
@@ -358,7 +358,7 @@ GREEN 阶段完成后,对照以下反模式清单自检:
|
|
|
358
358
|
|
|
359
359
|
## 批量构建验证策略
|
|
360
360
|
|
|
361
|
-
harness-
|
|
361
|
+
harness-execute 必须减少构建/测试启动次数。
|
|
362
362
|
|
|
363
363
|
**默认策略**:
|
|
364
364
|
1. 每个变更簇最多执行一次 RED 构建/测试、一次 GREEN 构建/测试
|
|
@@ -391,7 +391,7 @@ TestA+TestB+TestC RED → 实现相关代码 → TestA+TestB+TestC GREEN → 最
|
|
|
391
391
|
|
|
392
392
|
## 预存变更隔离
|
|
393
393
|
|
|
394
|
-
如果 harness-
|
|
394
|
+
如果 harness-execute 开始时检测到已有未提交变更,并且用户选择保留,必须创建 baseline。
|
|
395
395
|
|
|
396
396
|
### baseline 文件
|
|
397
397
|
|
|
@@ -485,7 +485,7 @@ TestA+TestB+TestC RED → 实现相关代码 → TestA+TestB+TestC GREEN → 最
|
|
|
485
485
|
|
|
486
486
|
## 步骤 2:构建验证(默认轻量,按需全量 test)
|
|
487
487
|
|
|
488
|
-
> **轻量验证职责**:`/harness-
|
|
488
|
+
> **轻量验证职责**:`/harness-execute` 默认只做开发反馈,不默认跑全量测试命令。是否跑全量 test 按下方条件判断。
|
|
489
489
|
|
|
490
490
|
### 2a. 构建验证(始终执行)
|
|
491
491
|
|
|
@@ -496,14 +496,14 @@ powershell.exe -Command "<构建命令> <模块定位参数>"
|
|
|
496
496
|
|
|
497
497
|
### 2b. 全量测试(仅当满足触发条件时执行)
|
|
498
498
|
|
|
499
|
-
默认**跳过**全量测试命令,把完整单元测试留给 `/harness-
|
|
499
|
+
默认**跳过**全量测试命令,把完整单元测试留给 `/harness-execute`。仅当满足以下任一条件时才在本阶段执行测试命令(按技术栈,如 Java 的 `mvn test -pl <module> -o`):
|
|
500
500
|
|
|
501
501
|
- 修改了公共模块(被多模块依赖的 common/utils 等)
|
|
502
502
|
- 修改了数据访问层 / 数据库迁移 / 查询配置
|
|
503
503
|
- 修改了权限 / 认证 / 组织过滤逻辑
|
|
504
504
|
- 修改了接口层 / 数据契约(VO/DTO)
|
|
505
505
|
- 用户要求 `full-run-validation`
|
|
506
|
-
- 用户不打算继续运行 `/harness-
|
|
506
|
+
- 用户不打算继续运行 `/harness-execute`(run 需自证 P0 场景)
|
|
507
507
|
|
|
508
508
|
```powershell
|
|
509
509
|
powershell.exe -Command "<测试命令> <模块定位参数>"
|
|
@@ -523,7 +523,7 @@ powershell.exe -Command "<测试命令> <模块定位参数>"
|
|
|
523
523
|
步骤 2 完成后**必须**通过 `harness_ledger.py record` 写入/更新 ledger(**禁止** Write/Edit `verification-ledger.json`):
|
|
524
524
|
|
|
525
525
|
- `compile` 项:始终写入(status / command / scope / evidence / 时间戳 / durationMs)
|
|
526
|
-
- `unitTest` 项:仅当 2b 执行了全量测试命令时写入(testsRun / failures / errors / skipped / evidence);未执行时标记 `{"status": "NOT_RUN_BY_RUN", "note": "轻量验证,全量单元测试由 harness-
|
|
526
|
+
- `unitTest` 项:仅当 2b 执行了全量测试命令时写入(testsRun / failures / errors / skipped / evidence);未执行时标记 `{"status": "NOT_RUN_BY_RUN", "note": "轻量验证,全量单元测试由 harness-execute 执行"}`
|
|
527
527
|
- 顶层写入 `diffHash` / `currentHead` / `baseCommit` / `module` / `profile`
|
|
528
528
|
- `baseCommit`:merge-base 或计划起点(worktree 分支从主分支分出点,由 harness-plan 写入、run 读取复用;缺失时用 `git merge-base HEAD <默认分支>` 兜底)
|
|
529
529
|
- `currentHead`:`git rev-parse HEAD`(步骤 2c 在 Step 5 checkpoint commit 之前执行,此时 HEAD==baseCommit;commit 后 HEAD 前移到 checkpoint commit,由 ledger-protocol reuse 规则 #2「currentHead 可前移」容忍,**不需为它改时序**)
|
|
@@ -536,7 +536,7 @@ python <skills-root>/scripts/harness_ledger.py record --change-dir ".harness/cha
|
|
|
536
536
|
|
|
537
537
|
> `content-changeset-2` 同时读取 tracked diff、标准 untracked 文件和 manifest 的精确测试路径。manifest 缺失时保持普通行为;manifest 存在但路径越界、内容 hash 漂移或结构非法时命令失败,ledger 不可复用。checkpoint commit 不改变各路径的工作树内容,因此提交前后 hash 保持一致。
|
|
538
538
|
|
|
539
|
-
> 这样 harness-
|
|
539
|
+
> 这样 harness-execute 的 Phase 1 可读取 ledger 判断是否复用 run 的 unitTest(diffHash commit-invariant + reuse 规则 #2 允许 HEAD 前移 → run 的 checkpoint commit 不破坏复用),submit 也可复用 compile 结果。详见 `../protocols/ledger-protocol.md`。
|
|
540
540
|
>
|
|
541
541
|
> **Ledger v3**:`record` 自动解析并强制顶层身份(`schemaVersion=3/repositoryId/changeName/baseCommit/currentHead/diffHash/ownershipHash`),缺字段非零退出、不写账本;已有 v1/v2 ledger 在写前透明迁移,`migrationHistory` 回执记录原/目标 schema 与迁移前后 evidence identity。无法迁移时返回 `LEDGER_MIGRATION_REQUIRED` 和确定性 `rerecordCommand`,不得半升级。v2 契约下 `--metrics-json` 必须通过 typed schema(unit=`total/passed/failed`,apiContract=`scenariosTotal/passed/failed`,browserE2E=`total/passed/failed`,dbCompatibility=`applicability(+reason)`)。详见 `../protocols/ledger-protocol.md` 第十节。
|
|
542
542
|
|
|
@@ -554,7 +554,7 @@ python <skills-root>/scripts/harness_ledger.py record --change-dir ".harness/cha
|
|
|
554
554
|
### 静态验证不等于测试覆盖(⚠️ 关键规则)
|
|
555
555
|
|
|
556
556
|
1. 🟡 静态检查 **不得计入"已测试通过"**
|
|
557
|
-
2. 如果任一 `ownerPhase=run` 的 P0 场景仅静态验证,则 harness-
|
|
557
|
+
2. 如果任一 `ownerPhase=run` 的 P0 场景仅静态验证,则 harness-execute 最终结果必须是:
|
|
558
558
|
`🟡WARN:编码和编译完成,但存在 P0 场景未真实验证`
|
|
559
559
|
3. 只有所有 run-owned P0 场景都有自动化测试或真实接口验证时,最终结果才能是:
|
|
560
560
|
`✅OK成功`
|
|
@@ -564,7 +564,7 @@ python <skills-root>/scripts/harness_ledger.py record --change-dir ".harness/cha
|
|
|
564
564
|
自动化测试通过: 5
|
|
565
565
|
静态检查未真实验证: 17
|
|
566
566
|
未验证: 0
|
|
567
|
-
harness-
|
|
567
|
+
harness-execute 结果: 🟡WARN,必须进入 harness-execute 后才能 submit
|
|
568
568
|
```
|
|
569
569
|
6. **禁止用测试用例数冒充场景数**:计数对象是 `test-scenarios.md` 的场景编号(UT-001/N、API-001/N、COM-001/N、INT-001/N),不是测试框架的测试方法数(如 vitest "178 tests"、junit "Tests run: 178")。场景总数 = test-scenarios.md 的场景数。
|
|
570
570
|
7. **四类计数须自洽**:run-owned 的 🟡/❌ 计入未验证;`ownerPhase=test` 单列为 ⏳“按计划移交”,不得冒充 ✅,也不得反向污染 run 的结果。
|
|
@@ -574,9 +574,9 @@ python <skills-root>/scripts/harness_ledger.py record --change-dir ".harness/cha
|
|
|
574
574
|
> ```
|
|
575
575
|
> ### 场景覆盖检查
|
|
576
576
|
> - ✅ UT-001~005: getEnabledIndicators 正常/异常/边界场景已测试通过
|
|
577
|
-
> - 🟡 UT-006~010: getIndicatorPage 分页场景静态验证通过,待测试基础设施补齐后运行 harness-
|
|
577
|
+
> - 🟡 UT-006~010: getIndicatorPage 分页场景静态验证通过,待测试基础设施补齐后运行 harness-execute
|
|
578
578
|
> - ❌ UT-011~015: getIndicatorByCode 场景未覆盖,需补充测试用例
|
|
579
|
-
> - ⏳ API-001~005: `ownerPhase=test`,接口测试按计划移交 harness-
|
|
579
|
+
> - ⏳ API-001~005: `ownerPhase=test`,接口测试按计划移交 harness-execute
|
|
580
580
|
> - ✅ COM-001~005: 数据库迁移脚本覆盖
|
|
581
581
|
> - ⏳ INT-001~004: `ownerPhase=test`,按计划移交测试阶段验证
|
|
582
582
|
> ```
|
|
@@ -587,12 +587,12 @@ python <skills-root>/scripts/harness_ledger.py record --change-dir ".harness/cha
|
|
|
587
587
|
> 静态检查未真实验证: 17
|
|
588
588
|
> 未验证: 0
|
|
589
589
|
> 按计划移交测试阶段: 4
|
|
590
|
-
> harness-
|
|
590
|
+
> harness-execute 结果: 🟡WARN,必须进入 harness-execute 后才能 submit
|
|
591
591
|
> ```
|
|
592
592
|
|
|
593
593
|
## 步骤 3.5:权限/组织过滤类变更 — 安全矩阵
|
|
594
594
|
|
|
595
|
-
> 凡是修改了以下逻辑,必须强制生成安全矩阵。如果任一权限边界的预期不明确,不允许标记 harness-
|
|
595
|
+
> 凡是修改了以下逻辑,必须强制生成安全矩阵。如果任一权限边界的预期不明确,不允许标记 harness-execute 为 ✅OK。
|
|
596
596
|
|
|
597
597
|
### 触发条件
|
|
598
598
|
|
|
@@ -624,7 +624,7 @@ python <skills-root>/scripts/harness_ledger.py record --change-dir ".harness/cha
|
|
|
624
624
|
|
|
625
625
|
### 判定规则
|
|
626
626
|
|
|
627
|
-
- 如果任一权限边界的预期不明确(如"非管理员+token空+指定组织"场景未明确是拒绝还是允许),则必须标记为 ❌未验证,且不允许标记 harness-
|
|
627
|
+
- 如果任一权限边界的预期不明确(如"非管理员+token空+指定组织"场景未明确是拒绝还是允许),则必须标记为 ❌未验证,且不允许标记 harness-execute 为 ✅OK
|
|
628
628
|
- 每个场景的覆盖状态必须真实标注:✅ 自动化测试通过 / 🟡 静态检查未真实测试 / ❌ 未验证
|
|
629
629
|
- 安全矩阵必须写入执行日志
|
|
630
630
|
|
|
@@ -714,7 +714,7 @@ powershell.exe -Command "git -C '<project-path>' diff --check"
|
|
|
714
714
|
|
|
715
715
|
## 步骤 5:计划状态持久化
|
|
716
716
|
|
|
717
|
-
如果 `.harness/changes/<change>/plans/*.md` 是任务来源,则 harness-
|
|
717
|
+
如果 `.harness/changes/<change>/plans/*.md` 是任务来源,则 harness-execute 完成任务后必须持久化任务状态。
|
|
718
718
|
|
|
719
719
|
### 持久化方式
|
|
720
720
|
|
|
@@ -729,12 +729,12 @@ powershell.exe -Command "git -C '<project-path>' diff --check"
|
|
|
729
729
|
| 任务 | 状态 | 测试场景 | 待验证 |
|
|
730
730
|
|------|------|----------|--------|
|
|
731
731
|
| Task 1 | ✅ DONE_AUTOMATED_TESTED | UT-001~005 | - |
|
|
732
|
-
| Task 2 | 🟡 DONE_STATIC_ONLY | UT-006~010 | harness-
|
|
733
|
-
| Task 3 | 🟡 DONE_NEEDS_INTERFACE_TEST | API-001~003 | harness-
|
|
732
|
+
| Task 2 | 🟡 DONE_STATIC_ONLY | UT-006~010 | harness-execute |
|
|
733
|
+
| Task 3 | 🟡 DONE_NEEDS_INTERFACE_TEST | API-001~003 | harness-execute |
|
|
734
734
|
|
|
735
735
|
## 待验证场景汇总
|
|
736
|
-
- UT-006~010: 静态验证通过,需 harness-
|
|
737
|
-
- API-001~003: 接口逻辑已覆盖,需 harness-
|
|
736
|
+
- UT-006~010: 静态验证通过,需 harness-execute 接口验证
|
|
737
|
+
- API-001~003: 接口逻辑已覆盖,需 harness-execute 真实 HTTP 验证
|
|
738
738
|
```
|
|
739
739
|
|
|
740
740
|
### 状态定义
|
|
@@ -748,7 +748,7 @@ powershell.exe -Command "git -C '<project-path>' diff --check"
|
|
|
748
748
|
|
|
749
749
|
- 不允许只在对话里说"任务完成"但不写入任何持久化文件
|
|
750
750
|
- 不允许修改 finalized plan Markdown 来记录状态;恢复信息只写 `evidence/run-task-status.md`
|
|
751
|
-
- 后续 harness-
|
|
751
|
+
- 后续 harness-execute 和 harness-review 必须能从持久化状态识别哪些场景仍待验证
|
|
752
752
|
|
|
753
753
|
## 输出示例
|
|
754
754
|
|
|
@@ -770,7 +770,7 @@ powershell.exe -Command "git -C '<project-path>' diff --check"
|
|
|
770
770
|
- 静态检查未真实验证: M
|
|
771
771
|
- 未验证: P
|
|
772
772
|
- 按计划移交测试阶段: Q
|
|
773
|
-
- harness-
|
|
773
|
+
- harness-execute 结果: ✅OK成功 / 🟡WARN(只由 run-owned 工作决定)
|
|
774
774
|
|
|
775
775
|
### 关门检查结果
|
|
776
776
|
- git status --porcelain: ✅/❌
|
|
@@ -788,10 +788,10 @@ powershell.exe -Command "git -C '<project-path>' diff --check"
|
|
|
788
788
|
- 状态已写入: `.harness/changes/<change-name>/evidence/run-task-status.md`
|
|
789
789
|
|
|
790
790
|
### 下一步
|
|
791
|
-
> ⚠️ 如果存在 run-owned P0 场景为 🟡静态验证,下一步必须且只能是 harness-
|
|
791
|
+
> ⚠️ 如果存在 run-owned P0 场景为 🟡静态验证,下一步必须且只能是 harness-execute。
|
|
792
792
|
|
|
793
|
-
运行 `/harness-
|
|
794
|
-
在 harness-
|
|
793
|
+
运行 `/harness-execute` 验证剩余 P0 场景。
|
|
794
|
+
在 harness-execute 通过前,不建议也不应进入 `/harness-submit`。
|
|
795
795
|
```
|
|
796
796
|
|
|
797
797
|
## CLI 速查(gate / ledger)
|
|
@@ -857,7 +857,7 @@ C9 场景覆盖按 `ownerPhase` **分阶段判定**:run 关门只要求 `owner
|
|
|
857
857
|
|
|
858
858
|
## 执行日志记录
|
|
859
859
|
|
|
860
|
-
`/harness-
|
|
860
|
+
`/harness-execute` 只向 `events.ndjson` 追加事件(schema_version 3,兼容读取 v1/v2);`logs/execution-log.md` 由 `harness_events.py append` 自动渲染。步骤 0 之前 append `phase.start`;各阶段写入 `command` / `verification` / `decision` / `issue`,人类可读摘要放 `note`。事件类型与脚本用法见 [[../protocols/report-pipeline-protocol.md|report-pipeline-protocol]] 与 SKILL.md `## 执行日志`。
|
|
861
861
|
|
|
862
862
|
关键 `note` / `decision` 须覆盖:测试基础设施探测(CHECKING→结论)、预存变更、run-tdd-protocol RED 类型、变更簇 RED/GREEN、批量构建 exit code、关门检查 10 项、计划状态持久化路径。
|
|
863
863
|
|
|
@@ -876,7 +876,7 @@ C9 场景覆盖按 `ownerPhase` **分阶段判定**:run 关门只要求 `owner
|
|
|
876
876
|
|
|
877
877
|
## 数据访问层复杂查询真实验证要求
|
|
878
878
|
|
|
879
|
-
数据访问层复杂查询(Java 的 `@Select`/JOIN/DISTINCT/IPage 分页/SQL/XML)变更在 run 阶段只能标记 🟡DONE_STATIC_ONLY,必须交给 harness-
|
|
879
|
+
数据访问层复杂查询(Java 的 `@Select`/JOIN/DISTINCT/IPage 分页/SQL/XML)变更在 run 阶段只能标记 🟡DONE_STATIC_ONLY,必须交给 harness-execute 真实 DB/API 验证:
|
|
880
880
|
|
|
881
881
|
- SQL 可执行;
|
|
882
882
|
- total 正确;
|
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
---
|
|
2
|
-
description: harness-
|
|
2
|
+
description: harness-execute 的原生执行协议。内化 TDD 与变更簇审查能力,但不运行时依赖 Superpowers。
|
|
3
3
|
---
|
|
4
4
|
|
|
5
|
-
# harness-
|
|
5
|
+
# harness-execute 原生执行协议
|
|
6
6
|
|
|
7
|
-
本文件定义 `/harness-
|
|
7
|
+
本文件定义 `/harness-execute` 的内置执行协议。它吸收 test-driven-development 与 subagent-driven-development 的有效做法,但正式流程不调用 Superpowers,也不把外部 skill 是否存在作为执行条件。
|
|
8
8
|
|
|
9
9
|
## 协议一:run-tdd-protocol
|
|
10
10
|
|
|
@@ -15,7 +15,7 @@ description: harness-run 的原生执行协议。内化 TDD 与变更簇审查
|
|
|
15
15
|
| RED 类型 | 何时使用 | 证据要求 |
|
|
16
16
|
|----------|----------|----------|
|
|
17
17
|
| 真实 RED | 测试基础设施可用,能写测试并运行失败 | 测试编译通过,失败断言指向目标行为 |
|
|
18
|
-
| 静态 RED | 测试基础设施不可用或目标层无法真实验证 | 记录降级原因、静态验证场景、待 harness-
|
|
18
|
+
| 静态 RED | 测试基础设施不可用或目标层无法真实验证 | 记录降级原因、静态验证场景、待 harness-execute 验证场景 |
|
|
19
19
|
| 复用 RED | 计划和测试场景已明确失败场景,且本轮只执行同一场景的实现 | 引用 test-scenarios 编号与前序证据,仍需在 run 日志登记 |
|
|
20
20
|
|
|
21
21
|
RED 失败原因必须与目标 bug 或需求直接相关。无效 RED(测试搭建错误、private 访问限制、mock/stubbing 错误、依赖注入失败、NPE 来自测试夹具)不得进入 GREEN。
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
---
|
|
2
|
-
description: harness-
|
|
2
|
+
description: harness-execute 的 Phase 0 环境准备 + Playwright 探测 + 关门检查清单。仅在执行测试前的环境准备阶段读取。
|
|
3
3
|
---
|
|
4
4
|
|
|
5
|
-
# harness-
|
|
5
|
+
# harness-execute 检查清单 — Phase 0 环境准备 + 关门检查
|
|
6
6
|
|
|
7
7
|
以下检查项确认完了再开始测试。每一项背后都有踩坑经历。
|
|
8
8
|
|
|
@@ -16,8 +16,7 @@ description: harness-test 的 Phase 0 环境准备 + Playwright 探测 + 关门
|
|
|
16
16
|
|
|
17
17
|
先检查当前项目的测试配置文件(按优先级查找):
|
|
18
18
|
|
|
19
|
-
1.
|
|
20
|
-
2. **兼容**:`harness-test/harness-test-config.md(兼容旧路径)`(旧路径,过渡期仍支持)
|
|
19
|
+
1. `.harness/config/harness-test-config.md`(集中配置目录;旧 skill 目录下的兼容路径已随 harness-test 入口移除而废弃)
|
|
21
20
|
|
|
22
21
|
如果任一文件存在,**必须先读取并应用其中的配置**。配置文件通常包含:
|
|
23
22
|
|
|
@@ -70,7 +69,7 @@ description: harness-test 的 Phase 0 环境准备 + Playwright 探测 + 关门
|
|
|
70
69
|
- [ ] 检查 `claude mcp list` 中是否有 playwright(如果可以执行命令)
|
|
71
70
|
- [ ] 检查 `@playwright/mcp` 是否可启动
|
|
72
71
|
- [ ] 检查当前 skill 的 `allowed-tools` 是否允许 Playwright 相关工具
|
|
73
|
-
- [ ] 输出 fallback 执行器可用性表格(见 reference.md)
|
|
72
|
+
- [ ] 输出 fallback 执行器可用性表格(见 testing-reference.md)
|
|
74
73
|
- [ ] 记录决策:接口测试执行器 / PowerShell batch / Playwright MCP browser_evaluate / curl fallback
|
|
75
74
|
- [ ] 如果 fallback 不可用,必须写明原因,不得静默改用 curl
|
|
76
75
|
|
|
@@ -194,21 +193,21 @@ powershell.exe -NoProfile -Command "try { (Invoke-WebRequest -Uri 'http://127.0.
|
|
|
194
193
|
|
|
195
194
|
**如果用户选择 AI 启动或 AI 重启**:
|
|
196
195
|
1. 从已知良好测试配置读取 module/profile/port/healthUrl/sdkUrl(按项目配置)。
|
|
197
|
-
2. 生成 ASCII 运行时配置叠加:`C:/temp/harness-
|
|
196
|
+
2. 生成 ASCII 运行时配置叠加:`C:/temp/harness-execute-overlay/<change-name>/application-harness-execute.yml`(按技术栈;Java Spring Boot 的 application.yml 为例)。
|
|
198
197
|
3. 禁止默认直接 Edit tracked 应用配置文件(如 `application-local-dev.yml`)。
|
|
199
198
|
4. 默认启动命令(按技术栈,Java Spring Boot 为例):
|
|
200
199
|
```powershell
|
|
201
|
-
powershell.exe -NoProfile -Command "mvn spring-boot:run -pl <module> -Dspring-boot.run.profiles=<profile> -Dspring-boot.run.jvmArguments='-Dspring.config.additional-location=file:C:/temp/harness-
|
|
200
|
+
powershell.exe -NoProfile -Command "mvn spring-boot:run -pl <module> -Dspring-boot.run.profiles=<profile> -Dspring-boot.run.jvmArguments='-Dspring.config.additional-location=file:C:/temp/harness-execute-overlay/<change-name>/application-harness-execute.yml'"
|
|
202
201
|
```
|
|
203
202
|
5. 写入 `service.pid`、`service-start-command.txt`、`service-start.log`、`runtime/service-session.json`(含 `moduleInputsHash`/`moduleInputsFiles`/`startCommandHash`/`profile`/`overlayPath`/`pid`/`startedBy=AI`/`startedAt`)。`moduleInputsHash` 来自 CLI `--files` ∪ `serviceStart.inputFiles`,空输入拒绝。
|
|
204
203
|
6. 服务启动等待:0–30s 每 2s 探测;30–120s 每 5s 探测;>10s 必须输出状态行;>120s 读取最近 200 行日志。
|
|
205
204
|
7. 发现启动失败特征(按技术栈识别,如 Java Spring Boot 的 `BindException` / `Could not resolve placeholder` / `Connection refused during bean init` / `BeanCreationException` / `Failed to start bean` / `BUILD FAILURE`)立即失败。
|
|
206
205
|
|
|
207
|
-
#### 0.10.x 重入沿用(同一变更 harness-
|
|
206
|
+
#### 0.10.x 重入沿用(同一变更 harness-execute 再次执行时)
|
|
208
207
|
|
|
209
208
|
满足以下**全部**条件时,可沿用上次服务决策,不重复询问:
|
|
210
209
|
|
|
211
|
-
1. 重入:同一 change-name 的 harness-
|
|
210
|
+
1. 重入:同一 change-name 的 harness-execute 再次执行(非首次)
|
|
212
211
|
2. 环境未变:PG 可用性、目标端口、执行器可用性与上次一致
|
|
213
212
|
3. 上次已确认执行器方案(如"内存 HTTP 执行器,PG 不可用")
|
|
214
213
|
4. 当前源码未改服务启动逻辑(如未改 main.ts 启动路径、未改服务端口/profile 配置)
|
|
@@ -270,7 +269,7 @@ powershell.exe -NoProfile -Command "try { (Invoke-WebRequest -Uri 'http://127.0.
|
|
|
270
269
|
|
|
271
270
|
- [ ] Phase 1 前通过 state layout resolver 定位并检查 `evidence/verification-ledger.json`
|
|
272
271
|
- [ ] 判断是否复用 run 的 unitTest:diffHash 一致 + module/profile 一致 + scope 一致或更严格 + run 后无行为性修改 + run 实际跑了全量测试
|
|
273
|
-
- [ ] 复用 → 跳过重跑,标记"✅ 复用 harness-
|
|
272
|
+
- [ ] 复用 → 跳过重跑,标记"✅ 复用 harness-execute 单元测试结果"
|
|
274
273
|
- [ ] 不复用 → 按 profile key resolve 重跑测试命令(`harness_profile.py resolve --key unitTest`,不复制示例 `-pl` 命令),结果写回 ledger 的 `unitTest` 项
|
|
275
274
|
- [ ] HTTP/API 契约结果写入 `apiTest`;真实浏览器/真实栈 Playwright 结果写入 `browserTest`,两者不得互相覆盖
|
|
276
275
|
- [ ] **本变更没有该维度场景时**(如全部为单元场景 → 无 API 场景):用 `harness_ledger.py record --verification apiTest --status NOT_RUN --applicability NOT_APPLICABLE --applicability-reason "<为什么不适用>"` 登记,**不传 `--files`**。门禁 close 要求 requiredValidations 每项都有 entry,但**绝不能拿无关文件(比如单元测试文件)凑 `--files`**——那会让 ledger 声称该维度的输入是那些文件,是假证据
|
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
---
|
|
2
|
-
description: Java/Feign 相关测试踩坑(harness-
|
|
2
|
+
description: Java/Feign 相关测试踩坑(harness-execute)。API 实测前通读;发现客户端路径缺陷时回写 plan 外修复记录。
|
|
3
3
|
---
|
|
4
4
|
|
|
5
5
|
# Java 测试踩坑补充(Feign / 远程客户端)
|
|
6
6
|
|
|
7
|
-
> 与 `pitfalls.md`(通用)及 `overlays/java/pitfalls-java.md`(overlay 速查表)互补;本文件收录路径拼接类缺陷的症状与流程要求。
|
|
7
|
+
> 与 `testing-pitfalls.md`(通用)及 `overlays/java/pitfalls-java.md`(overlay 速查表)互补;本文件收录路径拼接类缺陷的症状与流程要求。
|
|
8
8
|
|
|
9
9
|
## Feign/客户端路径前缀缺失
|
|
10
10
|
|