@hunter-harness/workflow-harness 0.2.42 → 0.2.44
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/harness/bundles/general/claude-code/.harness-build.json +1 -1
- package/harness/bundles/general/claude-code/contracts/build-profile-v3.schema.json +156 -1
- package/harness/bundles/general/claude-code/contracts/fixtures/managed-execution.json +341 -0
- package/harness/bundles/general/claude-code/contracts/process-identity.schema.json +132 -0
- package/harness/bundles/general/claude-code/contracts/run-session.schema.json +142 -0
- package/harness/bundles/general/claude-code/contracts/service-retirement-receipt.schema.json +85 -0
- package/harness/bundles/general/claude-code/contracts/service-session.schema.json +147 -0
- package/harness/bundles/general/claude-code/harness-archive/SKILL.md +1 -1
- package/harness/bundles/general/claude-code/harness-archive/reference.md +1 -0
- package/harness/bundles/general/claude-code/harness-archive/templates/render-summary.mjs +8 -0
- package/harness/bundles/general/claude-code/harness-archive/templates/summary-data-template.json +28 -0
- package/harness/bundles/general/claude-code/harness-codebase-map/SKILL.md +1 -1
- 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-review/SKILL.md +1 -1
- package/harness/bundles/general/claude-code/harness-run/SKILL.md +1 -1
- package/harness/bundles/general/claude-code/harness-run/reference.md +6 -1
- package/harness/bundles/general/claude-code/harness-submit/SKILL.md +1 -1
- package/harness/bundles/general/claude-code/harness-submit/checklist.md +12 -0
- package/harness/bundles/general/claude-code/harness-sync/SKILL.md +1 -1
- package/harness/bundles/general/claude-code/harness-test/SKILL.md +8 -2
- package/harness/bundles/general/claude-code/protocols/execution-session-protocol.md +52 -0
- package/harness/bundles/general/claude-code/protocols/state-layout-protocol.md +24 -1
- package/harness/bundles/general/claude-code/protocols/verification-graph-protocol.md +6 -0
- package/harness/bundles/general/claude-code/scripts/harness_archive.py +271 -22
- package/harness/bundles/general/claude-code/scripts/harness_change.py +137 -2
- package/harness/bundles/general/claude-code/scripts/harness_efficiency.py +443 -0
- package/harness/bundles/general/claude-code/scripts/harness_environment.py +760 -46
- package/harness/bundles/general/claude-code/scripts/harness_execution_contracts.py +596 -0
- package/harness/bundles/general/claude-code/scripts/harness_fixback.py +742 -0
- package/harness/bundles/general/claude-code/scripts/harness_integration.py +289 -52
- package/harness/bundles/general/claude-code/scripts/harness_ledger.py +5 -0
- package/harness/bundles/general/claude-code/scripts/harness_orchestration.py +344 -0
- package/harness/bundles/general/claude-code/scripts/harness_process.py +1065 -0
- package/harness/bundles/general/claude-code/scripts/harness_profile.py +278 -4
- package/harness/bundles/general/claude-code/scripts/harness_runtime.py +1576 -3
- package/harness/bundles/general/claude-code/scripts/harness_service.py +1528 -177
- package/harness/bundles/general/claude-code/scripts/harness_test_runner.py +224 -146
- package/harness/bundles/general/claude-code/scripts/harness_verification.py +487 -8
- package/harness/bundles/general/codebuddy/.harness-build.json +1 -1
- package/harness/bundles/general/codebuddy/contracts/build-profile-v3.schema.json +156 -1
- package/harness/bundles/general/codebuddy/contracts/fixtures/managed-execution.json +341 -0
- package/harness/bundles/general/codebuddy/contracts/process-identity.schema.json +132 -0
- package/harness/bundles/general/codebuddy/contracts/run-session.schema.json +142 -0
- package/harness/bundles/general/codebuddy/contracts/service-retirement-receipt.schema.json +85 -0
- package/harness/bundles/general/codebuddy/contracts/service-session.schema.json +147 -0
- package/harness/bundles/general/codebuddy/harness-archive/SKILL.md +1 -1
- package/harness/bundles/general/codebuddy/harness-archive/reference.md +1 -0
- package/harness/bundles/general/codebuddy/harness-archive/templates/render-summary.mjs +8 -0
- package/harness/bundles/general/codebuddy/harness-archive/templates/summary-data-template.json +28 -0
- package/harness/bundles/general/codebuddy/harness-codebase-map/SKILL.md +1 -1
- 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-review/SKILL.md +1 -1
- package/harness/bundles/general/codebuddy/harness-run/SKILL.md +1 -1
- package/harness/bundles/general/codebuddy/harness-run/reference.md +6 -1
- package/harness/bundles/general/codebuddy/harness-submit/SKILL.md +1 -1
- package/harness/bundles/general/codebuddy/harness-submit/checklist.md +12 -0
- package/harness/bundles/general/codebuddy/harness-sync/SKILL.md +1 -1
- package/harness/bundles/general/codebuddy/harness-test/SKILL.md +8 -2
- package/harness/bundles/general/codebuddy/protocols/execution-session-protocol.md +52 -0
- package/harness/bundles/general/codebuddy/protocols/state-layout-protocol.md +24 -1
- package/harness/bundles/general/codebuddy/protocols/verification-graph-protocol.md +6 -0
- package/harness/bundles/general/codebuddy/scripts/harness_archive.py +271 -22
- package/harness/bundles/general/codebuddy/scripts/harness_change.py +137 -2
- package/harness/bundles/general/codebuddy/scripts/harness_efficiency.py +443 -0
- package/harness/bundles/general/codebuddy/scripts/harness_environment.py +760 -46
- package/harness/bundles/general/codebuddy/scripts/harness_execution_contracts.py +596 -0
- package/harness/bundles/general/codebuddy/scripts/harness_fixback.py +742 -0
- package/harness/bundles/general/codebuddy/scripts/harness_integration.py +289 -52
- package/harness/bundles/general/codebuddy/scripts/harness_ledger.py +5 -0
- package/harness/bundles/general/codebuddy/scripts/harness_orchestration.py +344 -0
- package/harness/bundles/general/codebuddy/scripts/harness_process.py +1065 -0
- package/harness/bundles/general/codebuddy/scripts/harness_profile.py +278 -4
- package/harness/bundles/general/codebuddy/scripts/harness_runtime.py +1576 -3
- package/harness/bundles/general/codebuddy/scripts/harness_service.py +1528 -177
- package/harness/bundles/general/codebuddy/scripts/harness_test_runner.py +224 -146
- package/harness/bundles/general/codebuddy/scripts/harness_verification.py +487 -8
- package/harness/bundles/general/codex/.harness-build.json +1 -1
- package/harness/bundles/general/codex/contracts/build-profile-v3.schema.json +156 -1
- package/harness/bundles/general/codex/contracts/fixtures/managed-execution.json +341 -0
- package/harness/bundles/general/codex/contracts/process-identity.schema.json +132 -0
- package/harness/bundles/general/codex/contracts/run-session.schema.json +142 -0
- package/harness/bundles/general/codex/contracts/service-retirement-receipt.schema.json +85 -0
- package/harness/bundles/general/codex/contracts/service-session.schema.json +147 -0
- package/harness/bundles/general/codex/harness-archive/SKILL.md +1 -1
- package/harness/bundles/general/codex/harness-archive/reference.md +1 -0
- package/harness/bundles/general/codex/harness-archive/templates/render-summary.mjs +8 -0
- package/harness/bundles/general/codex/harness-archive/templates/summary-data-template.json +28 -0
- package/harness/bundles/general/codex/harness-codebase-map/SKILL.md +1 -1
- 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-review/SKILL.md +1 -1
- package/harness/bundles/general/codex/harness-run/SKILL.md +1 -1
- package/harness/bundles/general/codex/harness-run/reference.md +6 -1
- package/harness/bundles/general/codex/harness-submit/SKILL.md +1 -1
- package/harness/bundles/general/codex/harness-submit/checklist.md +12 -0
- package/harness/bundles/general/codex/harness-sync/SKILL.md +1 -1
- package/harness/bundles/general/codex/harness-test/SKILL.md +8 -2
- package/harness/bundles/general/codex/protocols/execution-session-protocol.md +52 -0
- package/harness/bundles/general/codex/protocols/state-layout-protocol.md +24 -1
- package/harness/bundles/general/codex/protocols/verification-graph-protocol.md +6 -0
- package/harness/bundles/general/codex/scripts/harness_archive.py +271 -22
- package/harness/bundles/general/codex/scripts/harness_change.py +137 -2
- package/harness/bundles/general/codex/scripts/harness_efficiency.py +443 -0
- package/harness/bundles/general/codex/scripts/harness_environment.py +760 -46
- package/harness/bundles/general/codex/scripts/harness_execution_contracts.py +596 -0
- package/harness/bundles/general/codex/scripts/harness_fixback.py +742 -0
- package/harness/bundles/general/codex/scripts/harness_integration.py +289 -52
- package/harness/bundles/general/codex/scripts/harness_ledger.py +5 -0
- package/harness/bundles/general/codex/scripts/harness_orchestration.py +344 -0
- package/harness/bundles/general/codex/scripts/harness_process.py +1065 -0
- package/harness/bundles/general/codex/scripts/harness_profile.py +278 -4
- package/harness/bundles/general/codex/scripts/harness_runtime.py +1576 -3
- package/harness/bundles/general/codex/scripts/harness_service.py +1528 -177
- package/harness/bundles/general/codex/scripts/harness_test_runner.py +224 -146
- package/harness/bundles/general/codex/scripts/harness_verification.py +487 -8
- package/harness/bundles/general/cursor/.harness-build.json +1 -1
- package/harness/bundles/general/cursor/contracts/build-profile-v3.schema.json +156 -1
- package/harness/bundles/general/cursor/contracts/fixtures/managed-execution.json +341 -0
- package/harness/bundles/general/cursor/contracts/process-identity.schema.json +132 -0
- package/harness/bundles/general/cursor/contracts/run-session.schema.json +142 -0
- package/harness/bundles/general/cursor/contracts/service-retirement-receipt.schema.json +85 -0
- package/harness/bundles/general/cursor/contracts/service-session.schema.json +147 -0
- package/harness/bundles/general/cursor/harness-archive/SKILL.md +1 -1
- package/harness/bundles/general/cursor/harness-archive/reference.md +1 -0
- package/harness/bundles/general/cursor/harness-archive/templates/render-summary.mjs +8 -0
- package/harness/bundles/general/cursor/harness-archive/templates/summary-data-template.json +28 -0
- package/harness/bundles/general/cursor/harness-codebase-map/SKILL.md +1 -1
- 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-review/SKILL.md +1 -1
- package/harness/bundles/general/cursor/harness-run/SKILL.md +1 -1
- package/harness/bundles/general/cursor/harness-run/reference.md +6 -1
- package/harness/bundles/general/cursor/harness-submit/SKILL.md +1 -1
- package/harness/bundles/general/cursor/harness-submit/checklist.md +12 -0
- package/harness/bundles/general/cursor/harness-sync/SKILL.md +1 -1
- package/harness/bundles/general/cursor/harness-test/SKILL.md +8 -2
- package/harness/bundles/general/cursor/protocols/execution-session-protocol.md +52 -0
- package/harness/bundles/general/cursor/protocols/state-layout-protocol.md +24 -1
- package/harness/bundles/general/cursor/protocols/verification-graph-protocol.md +6 -0
- package/harness/bundles/general/cursor/scripts/harness_archive.py +271 -22
- package/harness/bundles/general/cursor/scripts/harness_change.py +137 -2
- package/harness/bundles/general/cursor/scripts/harness_efficiency.py +443 -0
- package/harness/bundles/general/cursor/scripts/harness_environment.py +760 -46
- package/harness/bundles/general/cursor/scripts/harness_execution_contracts.py +596 -0
- package/harness/bundles/general/cursor/scripts/harness_fixback.py +742 -0
- package/harness/bundles/general/cursor/scripts/harness_integration.py +289 -52
- package/harness/bundles/general/cursor/scripts/harness_ledger.py +5 -0
- package/harness/bundles/general/cursor/scripts/harness_orchestration.py +344 -0
- package/harness/bundles/general/cursor/scripts/harness_process.py +1065 -0
- package/harness/bundles/general/cursor/scripts/harness_profile.py +278 -4
- package/harness/bundles/general/cursor/scripts/harness_runtime.py +1576 -3
- package/harness/bundles/general/cursor/scripts/harness_service.py +1528 -177
- package/harness/bundles/general/cursor/scripts/harness_test_runner.py +224 -146
- package/harness/bundles/general/cursor/scripts/harness_verification.py +487 -8
- package/harness/bundles/java/claude-code/.harness-build.json +1 -1
- package/harness/bundles/java/claude-code/contracts/build-profile-v3.schema.json +156 -1
- package/harness/bundles/java/claude-code/contracts/fixtures/managed-execution.json +341 -0
- package/harness/bundles/java/claude-code/contracts/process-identity.schema.json +132 -0
- package/harness/bundles/java/claude-code/contracts/run-session.schema.json +142 -0
- package/harness/bundles/java/claude-code/contracts/service-retirement-receipt.schema.json +85 -0
- package/harness/bundles/java/claude-code/contracts/service-session.schema.json +147 -0
- 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-archive/reference.md +1 -0
- package/harness/bundles/java/claude-code/harness-archive/templates/render-summary.mjs +8 -0
- package/harness/bundles/java/claude-code/harness-archive/templates/summary-data-template.json +28 -0
- package/harness/bundles/java/claude-code/harness-codebase-map/SKILL.md +1 -1
- 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-plan/SKILL.md +1 -1
- package/harness/bundles/java/claude-code/harness-review/SKILL.md +1 -1
- package/harness/bundles/java/claude-code/harness-run/SKILL.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 +12 -0
- package/harness/bundles/java/claude-code/harness-sync/SKILL.md +1 -1
- package/harness/bundles/java/claude-code/harness-test/SKILL.md +8 -2
- package/harness/bundles/java/claude-code/protocols/execution-session-protocol.md +52 -0
- package/harness/bundles/java/claude-code/protocols/state-layout-protocol.md +24 -1
- package/harness/bundles/java/claude-code/protocols/verification-graph-protocol.md +6 -0
- package/harness/bundles/java/claude-code/scripts/harness_archive.py +271 -22
- package/harness/bundles/java/claude-code/scripts/harness_change.py +137 -2
- package/harness/bundles/java/claude-code/scripts/harness_efficiency.py +443 -0
- package/harness/bundles/java/claude-code/scripts/harness_environment.py +760 -46
- package/harness/bundles/java/claude-code/scripts/harness_execution_contracts.py +596 -0
- package/harness/bundles/java/claude-code/scripts/harness_fixback.py +742 -0
- package/harness/bundles/java/claude-code/scripts/harness_integration.py +289 -52
- package/harness/bundles/java/claude-code/scripts/harness_ledger.py +5 -0
- package/harness/bundles/java/claude-code/scripts/harness_orchestration.py +344 -0
- package/harness/bundles/java/claude-code/scripts/harness_process.py +1065 -0
- package/harness/bundles/java/claude-code/scripts/harness_profile.py +278 -4
- package/harness/bundles/java/claude-code/scripts/harness_runtime.py +1576 -3
- package/harness/bundles/java/claude-code/scripts/harness_service.py +1528 -177
- package/harness/bundles/java/claude-code/scripts/harness_test_runner.py +224 -146
- package/harness/bundles/java/claude-code/scripts/harness_verification.py +487 -8
- package/harness/bundles/java/codebuddy/.harness-build.json +1 -1
- package/harness/bundles/java/codebuddy/contracts/build-profile-v3.schema.json +156 -1
- package/harness/bundles/java/codebuddy/contracts/fixtures/managed-execution.json +341 -0
- package/harness/bundles/java/codebuddy/contracts/process-identity.schema.json +132 -0
- package/harness/bundles/java/codebuddy/contracts/run-session.schema.json +142 -0
- package/harness/bundles/java/codebuddy/contracts/service-retirement-receipt.schema.json +85 -0
- package/harness/bundles/java/codebuddy/contracts/service-session.schema.json +147 -0
- 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-archive/reference.md +1 -0
- package/harness/bundles/java/codebuddy/harness-archive/templates/render-summary.mjs +8 -0
- package/harness/bundles/java/codebuddy/harness-archive/templates/summary-data-template.json +28 -0
- package/harness/bundles/java/codebuddy/harness-codebase-map/SKILL.md +1 -1
- 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-plan/SKILL.md +1 -1
- package/harness/bundles/java/codebuddy/harness-review/SKILL.md +1 -1
- package/harness/bundles/java/codebuddy/harness-run/SKILL.md +1 -1
- package/harness/bundles/java/codebuddy/harness-submit/SKILL.md +1 -1
- package/harness/bundles/java/codebuddy/harness-submit/checklist.md +12 -0
- package/harness/bundles/java/codebuddy/harness-sync/SKILL.md +1 -1
- package/harness/bundles/java/codebuddy/harness-test/SKILL.md +8 -2
- package/harness/bundles/java/codebuddy/protocols/execution-session-protocol.md +52 -0
- package/harness/bundles/java/codebuddy/protocols/state-layout-protocol.md +24 -1
- package/harness/bundles/java/codebuddy/protocols/verification-graph-protocol.md +6 -0
- package/harness/bundles/java/codebuddy/scripts/harness_archive.py +271 -22
- package/harness/bundles/java/codebuddy/scripts/harness_change.py +137 -2
- package/harness/bundles/java/codebuddy/scripts/harness_efficiency.py +443 -0
- package/harness/bundles/java/codebuddy/scripts/harness_environment.py +760 -46
- package/harness/bundles/java/codebuddy/scripts/harness_execution_contracts.py +596 -0
- package/harness/bundles/java/codebuddy/scripts/harness_fixback.py +742 -0
- package/harness/bundles/java/codebuddy/scripts/harness_integration.py +289 -52
- package/harness/bundles/java/codebuddy/scripts/harness_ledger.py +5 -0
- package/harness/bundles/java/codebuddy/scripts/harness_orchestration.py +344 -0
- package/harness/bundles/java/codebuddy/scripts/harness_process.py +1065 -0
- package/harness/bundles/java/codebuddy/scripts/harness_profile.py +278 -4
- package/harness/bundles/java/codebuddy/scripts/harness_runtime.py +1576 -3
- package/harness/bundles/java/codebuddy/scripts/harness_service.py +1528 -177
- package/harness/bundles/java/codebuddy/scripts/harness_test_runner.py +224 -146
- package/harness/bundles/java/codebuddy/scripts/harness_verification.py +487 -8
- package/harness/bundles/java/codex/.harness-build.json +1 -1
- package/harness/bundles/java/codex/contracts/build-profile-v3.schema.json +156 -1
- package/harness/bundles/java/codex/contracts/fixtures/managed-execution.json +341 -0
- package/harness/bundles/java/codex/contracts/process-identity.schema.json +132 -0
- package/harness/bundles/java/codex/contracts/run-session.schema.json +142 -0
- package/harness/bundles/java/codex/contracts/service-retirement-receipt.schema.json +85 -0
- package/harness/bundles/java/codex/contracts/service-session.schema.json +147 -0
- 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-archive/reference.md +1 -0
- package/harness/bundles/java/codex/harness-archive/templates/render-summary.mjs +8 -0
- package/harness/bundles/java/codex/harness-archive/templates/summary-data-template.json +28 -0
- package/harness/bundles/java/codex/harness-codebase-map/SKILL.md +1 -1
- 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-plan/SKILL.md +1 -1
- package/harness/bundles/java/codex/harness-review/SKILL.md +1 -1
- package/harness/bundles/java/codex/harness-run/SKILL.md +1 -1
- package/harness/bundles/java/codex/harness-submit/SKILL.md +1 -1
- package/harness/bundles/java/codex/harness-submit/checklist.md +12 -0
- package/harness/bundles/java/codex/harness-sync/SKILL.md +1 -1
- package/harness/bundles/java/codex/harness-test/SKILL.md +8 -2
- package/harness/bundles/java/codex/protocols/execution-session-protocol.md +52 -0
- package/harness/bundles/java/codex/protocols/state-layout-protocol.md +24 -1
- package/harness/bundles/java/codex/protocols/verification-graph-protocol.md +6 -0
- package/harness/bundles/java/codex/scripts/harness_archive.py +271 -22
- package/harness/bundles/java/codex/scripts/harness_change.py +137 -2
- package/harness/bundles/java/codex/scripts/harness_efficiency.py +443 -0
- package/harness/bundles/java/codex/scripts/harness_environment.py +760 -46
- package/harness/bundles/java/codex/scripts/harness_execution_contracts.py +596 -0
- package/harness/bundles/java/codex/scripts/harness_fixback.py +742 -0
- package/harness/bundles/java/codex/scripts/harness_integration.py +289 -52
- package/harness/bundles/java/codex/scripts/harness_ledger.py +5 -0
- package/harness/bundles/java/codex/scripts/harness_orchestration.py +344 -0
- package/harness/bundles/java/codex/scripts/harness_process.py +1065 -0
- package/harness/bundles/java/codex/scripts/harness_profile.py +278 -4
- package/harness/bundles/java/codex/scripts/harness_runtime.py +1576 -3
- package/harness/bundles/java/codex/scripts/harness_service.py +1528 -177
- package/harness/bundles/java/codex/scripts/harness_test_runner.py +224 -146
- package/harness/bundles/java/codex/scripts/harness_verification.py +487 -8
- package/harness/bundles/java/cursor/.harness-build.json +1 -1
- package/harness/bundles/java/cursor/contracts/build-profile-v3.schema.json +156 -1
- package/harness/bundles/java/cursor/contracts/fixtures/managed-execution.json +341 -0
- package/harness/bundles/java/cursor/contracts/process-identity.schema.json +132 -0
- package/harness/bundles/java/cursor/contracts/run-session.schema.json +142 -0
- package/harness/bundles/java/cursor/contracts/service-retirement-receipt.schema.json +85 -0
- package/harness/bundles/java/cursor/contracts/service-session.schema.json +147 -0
- 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-archive/reference.md +1 -0
- package/harness/bundles/java/cursor/harness-archive/templates/render-summary.mjs +8 -0
- package/harness/bundles/java/cursor/harness-archive/templates/summary-data-template.json +28 -0
- package/harness/bundles/java/cursor/harness-codebase-map/SKILL.md +1 -1
- 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-plan/SKILL.md +1 -1
- package/harness/bundles/java/cursor/harness-review/SKILL.md +1 -1
- package/harness/bundles/java/cursor/harness-run/SKILL.md +1 -1
- package/harness/bundles/java/cursor/harness-submit/SKILL.md +1 -1
- package/harness/bundles/java/cursor/harness-submit/checklist.md +12 -0
- package/harness/bundles/java/cursor/harness-sync/SKILL.md +1 -1
- package/harness/bundles/java/cursor/harness-test/SKILL.md +8 -2
- package/harness/bundles/java/cursor/protocols/execution-session-protocol.md +52 -0
- package/harness/bundles/java/cursor/protocols/state-layout-protocol.md +24 -1
- package/harness/bundles/java/cursor/protocols/verification-graph-protocol.md +6 -0
- package/harness/bundles/java/cursor/scripts/harness_archive.py +271 -22
- package/harness/bundles/java/cursor/scripts/harness_change.py +137 -2
- package/harness/bundles/java/cursor/scripts/harness_efficiency.py +443 -0
- package/harness/bundles/java/cursor/scripts/harness_environment.py +760 -46
- package/harness/bundles/java/cursor/scripts/harness_execution_contracts.py +596 -0
- package/harness/bundles/java/cursor/scripts/harness_fixback.py +742 -0
- package/harness/bundles/java/cursor/scripts/harness_integration.py +289 -52
- package/harness/bundles/java/cursor/scripts/harness_ledger.py +5 -0
- package/harness/bundles/java/cursor/scripts/harness_orchestration.py +344 -0
- package/harness/bundles/java/cursor/scripts/harness_process.py +1065 -0
- package/harness/bundles/java/cursor/scripts/harness_profile.py +278 -4
- package/harness/bundles/java/cursor/scripts/harness_runtime.py +1576 -3
- package/harness/bundles/java/cursor/scripts/harness_service.py +1528 -177
- package/harness/bundles/java/cursor/scripts/harness_test_runner.py +224 -146
- package/harness/bundles/java/cursor/scripts/harness_verification.py +487 -8
- package/harness/manifests/general/claude-code.json +76 -31
- package/harness/manifests/general/codebuddy.json +76 -31
- package/harness/manifests/general/codex.json +76 -31
- package/harness/manifests/general/cursor.json +76 -31
- package/harness/manifests/java/claude-code.json +77 -32
- package/harness/manifests/java/codebuddy.json +77 -32
- package/harness/manifests/java/codex.json +77 -32
- package/harness/manifests/java/cursor.json +77 -32
- package/hunter-workflow-family.json +6 -4
- package/package.json +1 -1
|
@@ -0,0 +1,142 @@
|
|
|
1
|
+
{
|
|
2
|
+
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
|
3
|
+
"$id": "https://hunter-harness.dev/contracts/run-session.schema.json",
|
|
4
|
+
"title": "Hunter Harness managed run session",
|
|
5
|
+
"type": "object",
|
|
6
|
+
"additionalProperties": false,
|
|
7
|
+
"required": [
|
|
8
|
+
"schemaVersion",
|
|
9
|
+
"sessionId",
|
|
10
|
+
"status",
|
|
11
|
+
"reasonCode",
|
|
12
|
+
"exitCode",
|
|
13
|
+
"processIdentity",
|
|
14
|
+
"heartbeat",
|
|
15
|
+
"logs",
|
|
16
|
+
"cleanup",
|
|
17
|
+
"resultDigest"
|
|
18
|
+
],
|
|
19
|
+
"properties": {
|
|
20
|
+
"schemaVersion": { "const": 1 },
|
|
21
|
+
"sessionId": { "type": "string", "minLength": 1 },
|
|
22
|
+
"status": {
|
|
23
|
+
"enum": [
|
|
24
|
+
"PREPARING",
|
|
25
|
+
"STARTING",
|
|
26
|
+
"RUNNING",
|
|
27
|
+
"FINALIZING",
|
|
28
|
+
"OK",
|
|
29
|
+
"FAIL",
|
|
30
|
+
"CANCELLED",
|
|
31
|
+
"INCOMPLETE"
|
|
32
|
+
]
|
|
33
|
+
},
|
|
34
|
+
"reasonCode": { "$ref": "#/$defs/reasonCode" },
|
|
35
|
+
"exitCode": { "type": ["integer", "null"] },
|
|
36
|
+
"processIdentity": { "type": ["object", "null"] },
|
|
37
|
+
"heartbeat": {
|
|
38
|
+
"oneOf": [
|
|
39
|
+
{ "type": "null" },
|
|
40
|
+
{ "$ref": "#/$defs/heartbeat" }
|
|
41
|
+
]
|
|
42
|
+
},
|
|
43
|
+
"logs": {
|
|
44
|
+
"type": "object",
|
|
45
|
+
"additionalProperties": false,
|
|
46
|
+
"required": ["stdout", "stderr"],
|
|
47
|
+
"properties": {
|
|
48
|
+
"stdout": { "$ref": "#/$defs/logStream" },
|
|
49
|
+
"stderr": { "$ref": "#/$defs/logStream" }
|
|
50
|
+
}
|
|
51
|
+
},
|
|
52
|
+
"cleanup": {
|
|
53
|
+
"type": "object",
|
|
54
|
+
"additionalProperties": false,
|
|
55
|
+
"required": ["complete", "reasonCode"],
|
|
56
|
+
"properties": {
|
|
57
|
+
"complete": { "type": "boolean" },
|
|
58
|
+
"reasonCode": {
|
|
59
|
+
"oneOf": [
|
|
60
|
+
{ "$ref": "#/$defs/reasonCode" },
|
|
61
|
+
{ "type": "null" }
|
|
62
|
+
]
|
|
63
|
+
}
|
|
64
|
+
}
|
|
65
|
+
},
|
|
66
|
+
"resultDigest": {
|
|
67
|
+
"oneOf": [
|
|
68
|
+
{ "$ref": "#/$defs/digest" },
|
|
69
|
+
{ "type": "null" }
|
|
70
|
+
]
|
|
71
|
+
}
|
|
72
|
+
},
|
|
73
|
+
"allOf": [
|
|
74
|
+
{
|
|
75
|
+
"if": {
|
|
76
|
+
"properties": { "status": { "enum": ["OK", "FAIL"] } },
|
|
77
|
+
"required": ["status"]
|
|
78
|
+
},
|
|
79
|
+
"then": {
|
|
80
|
+
"properties": {
|
|
81
|
+
"exitCode": { "type": "integer" },
|
|
82
|
+
"resultDigest": { "$ref": "#/$defs/digest" }
|
|
83
|
+
}
|
|
84
|
+
}
|
|
85
|
+
},
|
|
86
|
+
{
|
|
87
|
+
"if": {
|
|
88
|
+
"properties": { "status": { "const": "INCOMPLETE" } },
|
|
89
|
+
"required": ["status"]
|
|
90
|
+
},
|
|
91
|
+
"then": {
|
|
92
|
+
"properties": {
|
|
93
|
+
"exitCode": { "type": "null" },
|
|
94
|
+
"resultDigest": { "$ref": "#/$defs/digest" }
|
|
95
|
+
}
|
|
96
|
+
}
|
|
97
|
+
}
|
|
98
|
+
],
|
|
99
|
+
"$defs": {
|
|
100
|
+
"digest": {
|
|
101
|
+
"type": "string",
|
|
102
|
+
"pattern": "^sha256:[0-9a-f]{64}$"
|
|
103
|
+
},
|
|
104
|
+
"reasonCode": {
|
|
105
|
+
"type": "string",
|
|
106
|
+
"minLength": 1
|
|
107
|
+
},
|
|
108
|
+
"heartbeat": {
|
|
109
|
+
"type": "object",
|
|
110
|
+
"additionalProperties": false,
|
|
111
|
+
"required": [
|
|
112
|
+
"kind",
|
|
113
|
+
"writerIdentity",
|
|
114
|
+
"lastSeenAt",
|
|
115
|
+
"ttlSeconds",
|
|
116
|
+
"staleReason"
|
|
117
|
+
],
|
|
118
|
+
"properties": {
|
|
119
|
+
"kind": { "enum": ["WORKER", "SUPERVISOR", "OBSERVER"] },
|
|
120
|
+
"writerIdentity": { "$ref": "#/$defs/digest" },
|
|
121
|
+
"lastSeenAt": { "type": "string", "minLength": 1 },
|
|
122
|
+
"ttlSeconds": { "type": "integer", "minimum": 1 },
|
|
123
|
+
"staleReason": {
|
|
124
|
+
"oneOf": [
|
|
125
|
+
{ "$ref": "#/$defs/reasonCode" },
|
|
126
|
+
{ "type": "null" }
|
|
127
|
+
]
|
|
128
|
+
}
|
|
129
|
+
}
|
|
130
|
+
},
|
|
131
|
+
"logStream": {
|
|
132
|
+
"type": "object",
|
|
133
|
+
"additionalProperties": false,
|
|
134
|
+
"required": ["cursor", "rawDigest", "decodeStatus"],
|
|
135
|
+
"properties": {
|
|
136
|
+
"cursor": { "type": "integer", "minimum": 0 },
|
|
137
|
+
"rawDigest": { "$ref": "#/$defs/digest" },
|
|
138
|
+
"decodeStatus": { "enum": ["OK", "LOG_DECODE_DEGRADED"] }
|
|
139
|
+
}
|
|
140
|
+
}
|
|
141
|
+
}
|
|
142
|
+
}
|
|
@@ -0,0 +1,85 @@
|
|
|
1
|
+
{
|
|
2
|
+
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
|
3
|
+
"$id": "https://hunter-harness.dev/contracts/service-retirement-receipt.schema.json",
|
|
4
|
+
"title": "Hunter Harness service retirement receipt",
|
|
5
|
+
"type": "object",
|
|
6
|
+
"additionalProperties": false,
|
|
7
|
+
"required": [
|
|
8
|
+
"schemaVersion",
|
|
9
|
+
"receiptId",
|
|
10
|
+
"operationId",
|
|
11
|
+
"serviceId",
|
|
12
|
+
"oldSessionId",
|
|
13
|
+
"oldGeneration",
|
|
14
|
+
"state",
|
|
15
|
+
"retirementStateCommit",
|
|
16
|
+
"leaseCleanup",
|
|
17
|
+
"cleanupComplete",
|
|
18
|
+
"awaitingSuperseder",
|
|
19
|
+
"supersededBySessionId",
|
|
20
|
+
"receiptDigest"
|
|
21
|
+
],
|
|
22
|
+
"properties": {
|
|
23
|
+
"schemaVersion": { "const": 1 },
|
|
24
|
+
"receiptId": { "type": "string", "minLength": 1 },
|
|
25
|
+
"operationId": { "type": "string", "minLength": 1 },
|
|
26
|
+
"serviceId": { "type": "string", "minLength": 1 },
|
|
27
|
+
"oldSessionId": { "type": "string", "minLength": 1 },
|
|
28
|
+
"oldGeneration": { "type": "integer", "minimum": 1 },
|
|
29
|
+
"state": { "enum": ["PENDING", "FINALIZED"] },
|
|
30
|
+
"retirementStateCommit": {
|
|
31
|
+
"type": "object",
|
|
32
|
+
"additionalProperties": false,
|
|
33
|
+
"required": ["status", "reasonCode"],
|
|
34
|
+
"properties": {
|
|
35
|
+
"status": { "enum": ["PENDING", "COMMITTED", "CONFLICT"] },
|
|
36
|
+
"reasonCode": { "type": "string", "minLength": 1 }
|
|
37
|
+
}
|
|
38
|
+
},
|
|
39
|
+
"leaseCleanup": {
|
|
40
|
+
"type": "object",
|
|
41
|
+
"additionalProperties": false,
|
|
42
|
+
"required": ["status", "reasonCode", "leaseId"],
|
|
43
|
+
"properties": {
|
|
44
|
+
"status": { "enum": ["PENDING", "RELEASED", "RETAINED", "UNVERIFIED"] },
|
|
45
|
+
"reasonCode": { "type": "string", "minLength": 1 },
|
|
46
|
+
"leaseId": { "type": ["string", "null"], "minLength": 1 }
|
|
47
|
+
}
|
|
48
|
+
},
|
|
49
|
+
"cleanupComplete": { "type": "boolean" },
|
|
50
|
+
"awaitingSuperseder": { "type": "boolean" },
|
|
51
|
+
"supersededBySessionId": { "type": ["string", "null"], "minLength": 1 },
|
|
52
|
+
"receiptDigest": {
|
|
53
|
+
"type": "string",
|
|
54
|
+
"pattern": "^sha256:[0-9a-f]{64}$"
|
|
55
|
+
}
|
|
56
|
+
},
|
|
57
|
+
"allOf": [
|
|
58
|
+
{
|
|
59
|
+
"if": {
|
|
60
|
+
"properties": {
|
|
61
|
+
"leaseCleanup": {
|
|
62
|
+
"properties": { "status": { "const": "RELEASED" } },
|
|
63
|
+
"required": ["status"]
|
|
64
|
+
}
|
|
65
|
+
},
|
|
66
|
+
"required": ["leaseCleanup"]
|
|
67
|
+
},
|
|
68
|
+
"then": {
|
|
69
|
+
"properties": { "cleanupComplete": { "const": true } }
|
|
70
|
+
},
|
|
71
|
+
"else": {
|
|
72
|
+
"properties": { "cleanupComplete": { "const": false } }
|
|
73
|
+
}
|
|
74
|
+
},
|
|
75
|
+
{
|
|
76
|
+
"if": {
|
|
77
|
+
"properties": { "awaitingSuperseder": { "const": true } },
|
|
78
|
+
"required": ["awaitingSuperseder"]
|
|
79
|
+
},
|
|
80
|
+
"then": {
|
|
81
|
+
"properties": { "supersededBySessionId": { "type": "null" } }
|
|
82
|
+
}
|
|
83
|
+
}
|
|
84
|
+
]
|
|
85
|
+
}
|
|
@@ -0,0 +1,147 @@
|
|
|
1
|
+
{
|
|
2
|
+
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
|
3
|
+
"$id": "https://hunter-harness.dev/contracts/service-session.schema.json",
|
|
4
|
+
"title": "Hunter Harness managed service session",
|
|
5
|
+
"type": "object",
|
|
6
|
+
"additionalProperties": false,
|
|
7
|
+
"required": [
|
|
8
|
+
"schemaVersion",
|
|
9
|
+
"serviceId",
|
|
10
|
+
"sessionId",
|
|
11
|
+
"status",
|
|
12
|
+
"reasonCode",
|
|
13
|
+
"serviceGeneration",
|
|
14
|
+
"stateRevision",
|
|
15
|
+
"operationId",
|
|
16
|
+
"fingerprint",
|
|
17
|
+
"processIdentity",
|
|
18
|
+
"heartbeat",
|
|
19
|
+
"leaseIdentity",
|
|
20
|
+
"transitionHistory",
|
|
21
|
+
"cleanupComplete",
|
|
22
|
+
"supersedesSessionId"
|
|
23
|
+
],
|
|
24
|
+
"properties": {
|
|
25
|
+
"schemaVersion": { "const": 1 },
|
|
26
|
+
"serviceId": { "type": "string", "minLength": 1 },
|
|
27
|
+
"sessionId": { "type": "string", "minLength": 1 },
|
|
28
|
+
"status": {
|
|
29
|
+
"enum": [
|
|
30
|
+
"STARTING",
|
|
31
|
+
"READY",
|
|
32
|
+
"STOPPING",
|
|
33
|
+
"STOPPED",
|
|
34
|
+
"FAILED",
|
|
35
|
+
"STALE_IDENTITY_MISMATCH",
|
|
36
|
+
"RETIRED"
|
|
37
|
+
]
|
|
38
|
+
},
|
|
39
|
+
"reasonCode": { "type": "string", "minLength": 1 },
|
|
40
|
+
"serviceGeneration": { "type": "integer", "minimum": 1 },
|
|
41
|
+
"stateRevision": { "type": "integer", "minimum": 1 },
|
|
42
|
+
"operationId": { "type": "string", "minLength": 1 },
|
|
43
|
+
"fingerprint": { "$ref": "#/$defs/digest" },
|
|
44
|
+
"processIdentity": { "type": ["object", "null"] },
|
|
45
|
+
"heartbeat": {
|
|
46
|
+
"oneOf": [
|
|
47
|
+
{ "type": "null" },
|
|
48
|
+
{
|
|
49
|
+
"type": "object",
|
|
50
|
+
"additionalProperties": false,
|
|
51
|
+
"required": [
|
|
52
|
+
"kind",
|
|
53
|
+
"writerIdentity",
|
|
54
|
+
"generation",
|
|
55
|
+
"lastSeenAt",
|
|
56
|
+
"ttlSeconds",
|
|
57
|
+
"staleReason"
|
|
58
|
+
],
|
|
59
|
+
"properties": {
|
|
60
|
+
"kind": { "enum": ["SUPERVISOR", "OBSERVER"] },
|
|
61
|
+
"writerIdentity": { "$ref": "#/$defs/digest" },
|
|
62
|
+
"generation": { "type": "integer", "minimum": 1 },
|
|
63
|
+
"lastSeenAt": { "type": "string", "minLength": 1 },
|
|
64
|
+
"ttlSeconds": { "type": "integer", "minimum": 1 },
|
|
65
|
+
"staleReason": { "type": ["string", "null"] }
|
|
66
|
+
}
|
|
67
|
+
}
|
|
68
|
+
]
|
|
69
|
+
},
|
|
70
|
+
"leaseIdentity": {
|
|
71
|
+
"oneOf": [
|
|
72
|
+
{ "type": "null" },
|
|
73
|
+
{
|
|
74
|
+
"type": "object",
|
|
75
|
+
"additionalProperties": false,
|
|
76
|
+
"required": [
|
|
77
|
+
"leaseId",
|
|
78
|
+
"changeId",
|
|
79
|
+
"runId",
|
|
80
|
+
"expiresAt",
|
|
81
|
+
"generation"
|
|
82
|
+
],
|
|
83
|
+
"properties": {
|
|
84
|
+
"leaseId": { "type": "string", "minLength": 1 },
|
|
85
|
+
"changeId": { "type": "string", "minLength": 1 },
|
|
86
|
+
"runId": { "type": "string", "minLength": 1 },
|
|
87
|
+
"expiresAt": { "type": "string", "minLength": 1 },
|
|
88
|
+
"generation": { "type": "integer", "minimum": 1 },
|
|
89
|
+
"listenerIdentity": { "type": "object" }
|
|
90
|
+
}
|
|
91
|
+
}
|
|
92
|
+
]
|
|
93
|
+
},
|
|
94
|
+
"transitionHistory": {
|
|
95
|
+
"type": "array",
|
|
96
|
+
"items": {
|
|
97
|
+
"type": "object",
|
|
98
|
+
"additionalProperties": false,
|
|
99
|
+
"required": ["from", "to", "reasonCode", "revision"],
|
|
100
|
+
"properties": {
|
|
101
|
+
"from": {
|
|
102
|
+
"type": ["string", "null"]
|
|
103
|
+
},
|
|
104
|
+
"to": { "type": "string", "minLength": 1 },
|
|
105
|
+
"reasonCode": { "type": "string", "minLength": 1 },
|
|
106
|
+
"revision": { "type": "integer", "minimum": 1 },
|
|
107
|
+
"operationId": { "type": "string", "minLength": 1 },
|
|
108
|
+
"at": { "type": "string", "minLength": 1 }
|
|
109
|
+
}
|
|
110
|
+
}
|
|
111
|
+
},
|
|
112
|
+
"cleanupComplete": { "type": "boolean" },
|
|
113
|
+
"supersedesSessionId": { "type": ["string", "null"], "minLength": 1 },
|
|
114
|
+
"pid": { "type": "integer", "minimum": 1 },
|
|
115
|
+
"startedBy": { "type": "string", "minLength": 1 },
|
|
116
|
+
"moduleInputsHash": { "$ref": "#/$defs/digest" },
|
|
117
|
+
"moduleInputsFiles": { "type": "array", "items": { "type": "string" } },
|
|
118
|
+
"profile": { "type": "string", "minLength": 1 },
|
|
119
|
+
"startCommandHash": { "$ref": "#/$defs/digest" },
|
|
120
|
+
"overlayPath": { "type": "string" },
|
|
121
|
+
"startedAt": { "type": "string", "minLength": 1 },
|
|
122
|
+
"command": { "type": "string" },
|
|
123
|
+
"argv": { "type": "array", "items": { "type": "string" } },
|
|
124
|
+
"ownedPorts": {
|
|
125
|
+
"type": "array",
|
|
126
|
+
"items": { "type": "integer", "minimum": 1, "maximum": 65535 }
|
|
127
|
+
},
|
|
128
|
+
"processAttestation": { "type": "object" },
|
|
129
|
+
"ownershipProof": { "type": "object" },
|
|
130
|
+
"servicePid": { "type": "integer", "minimum": 1 },
|
|
131
|
+
"jobId": { "type": "string", "minLength": 1 },
|
|
132
|
+
"leasedPort": { "type": "integer", "minimum": 1, "maximum": 65535 },
|
|
133
|
+
"leaseOwner": { "type": ["string", "null"] },
|
|
134
|
+
"worktreeRoot": { "type": "string", "minLength": 1 },
|
|
135
|
+
"executionRoot": { "type": "string", "minLength": 1 },
|
|
136
|
+
"changeId": { "type": "string", "minLength": 1 },
|
|
137
|
+
"attemptId": { "type": "string", "minLength": 1 },
|
|
138
|
+
"instanceTokenHash": { "$ref": "#/$defs/digest" },
|
|
139
|
+
"identityCompleteness": { "type": "string", "minLength": 1 }
|
|
140
|
+
},
|
|
141
|
+
"$defs": {
|
|
142
|
+
"digest": {
|
|
143
|
+
"type": "string",
|
|
144
|
+
"pattern": "^sha256:[0-9a-f]{64}$"
|
|
145
|
+
}
|
|
146
|
+
}
|
|
147
|
+
}
|
|
@@ -3,7 +3,7 @@ name: harness-archive
|
|
|
3
3
|
description: 归档所有变更产出(计划/测试报告/审查/SQL/API文档)到
|
|
4
4
|
.harness/archive/,含归档元数据和可视化最终总结。使用场景:归档、完成归档、收尾、打包产出物
|
|
5
5
|
---
|
|
6
|
-
<!-- generated by harness_deploy.py; core=
|
|
6
|
+
<!-- generated by harness_deploy.py; core=367eb27020f2b966; overlay=none; agent=codebuddy; do not edit -->
|
|
7
7
|
# harness-archive — 变更归档
|
|
8
8
|
|
|
9
9
|
## Purpose
|
|
@@ -47,6 +47,7 @@ powershell.exe -NoProfile -ExecutionPolicy Bypass -File "harness-skills/harness-
|
|
|
47
47
|
- `durations`:totalMinutes + stages[{stage,skill,startedAt,endedAt,minutes,result}] —— 从 `logs/execution-log.md` 各 `[N] harness-<skill>` 小节的 `开始`/`结束`/`耗时` 解析;
|
|
48
48
|
- `skillCalls`:每个 skill 的调用次数(含重入)+ 结果 —— 从 execution-log 统计;
|
|
49
49
|
- `verification`:单元/API/覆盖展示,含 passRate —— 来自 `evidence/verification-ledger.json`;
|
|
50
|
+
- `efficiency`:墙钟/活动/资源等待、验证尝试、失败分类、环境 prepare/reuse/reset/cleanup、重复命令与 wrapper 数 —— 由 `harness_efficiency.py` 从运行回执自动汇总;
|
|
50
51
|
- `changedFiles`:path/summary/insertions/deletions —— 来自 `git diff --numstat <base>..<head>`;
|
|
51
52
|
- `reviewSummary`:red/yellow + redFixed/redConfirmed/yellowFixed/yellowDeferred 修复进度;
|
|
52
53
|
- `maintenanceNotes`:给后续维护者看的结论;
|
|
@@ -201,6 +201,10 @@ const releaseHtml = recordOnly ? "" : `
|
|
|
201
201
|
const remoteCost = record(measurements.remoteCost);
|
|
202
202
|
const remoteCostTotals = record(remoteCost.totals);
|
|
203
203
|
const storage = record(measurements.artifactStorage);
|
|
204
|
+
const efficiency = record(data.efficiency);
|
|
205
|
+
const efficiencyTiming = record(efficiency.timing);
|
|
206
|
+
const environmentActions = record(efficiency.environment);
|
|
207
|
+
const failureClasses = record(efficiency.failureClasses);
|
|
204
208
|
const projection = record(data.projection);
|
|
205
209
|
const durability = record(data.archiveDurability);
|
|
206
210
|
const durabilityStatus = durability.status || "ARCHIVED_LOCAL_ONLY";
|
|
@@ -264,6 +268,10 @@ ${scenarioCoverageHtml}
|
|
|
264
268
|
<div class="fact"><span>未归因 <code title="agentOrToolUnattributedMs">agentOrToolUnattributed</code></span><strong>${esc(duration(timing.agentOrToolUnattributedMs))}</strong></div>
|
|
265
269
|
<div class="fact"><span>远端 runner 成本</span><strong>${measurement(remoteCostTotals.runnerMinutes ?? remoteCost.runnerMinutes, " 分钟")}</strong></div>
|
|
266
270
|
<div class="fact"><span>新增制品字节</span><strong>${measurement(storage.bytesAdded, " bytes")}</strong></div>
|
|
271
|
+
<div class="fact"><span>验证尝试 / 资源等待</span><strong>${esc(efficiency.verificationAttempts ?? 0)} / ${esc(duration(efficiencyTiming.resourceWaitMs))}</strong></div>
|
|
272
|
+
<div class="fact"><span>环境准备 / 复用 / 重置 / 清理</span><strong>${esc(environmentActions.prepare ?? 0)} / ${esc(environmentActions.reuse ?? 0)} / ${esc(environmentActions.reset ?? 0)} / ${esc(environmentActions.cleanup ?? 0)}</strong></div>
|
|
273
|
+
<div class="fact"><span>启动器 / 环境 / 测试 / 外部失败</span><strong>${esc(failureClasses.launcher ?? 0)} / ${esc(failureClasses.environment ?? 0)} / ${esc(failureClasses.test ?? 0)} / ${esc(failureClasses.external ?? 0)}</strong></div>
|
|
274
|
+
<div class="fact"><span>无新证据的重复命令</span><strong>${esc(efficiency.repeatedCommandsWithoutNewEvidence ?? 0)}</strong></div>
|
|
267
275
|
<div class="fact"><span>守恒差值 <code>conservationDeltaMs</code></span><strong>${esc(timing.conservationDeltaMs ?? "N/A")}</strong></div>
|
|
268
276
|
</div></details>
|
|
269
277
|
<details><summary>阶段状态</summary><div class="table-wrap"><table><thead><tr><th>阶段</th><th>结果</th></tr></thead><tbody>${stageHtml}</tbody></table></div></details>
|
package/harness/bundles/general/codebuddy/harness-archive/templates/summary-data-template.json
CHANGED
|
@@ -125,6 +125,34 @@
|
|
|
125
125
|
"duplicateRunCount": 0
|
|
126
126
|
}
|
|
127
127
|
},
|
|
128
|
+
"efficiency": {
|
|
129
|
+
"schemaVersion": 1,
|
|
130
|
+
"timing": {
|
|
131
|
+
"wallClockMs": 0,
|
|
132
|
+
"activeTimeMs": 0,
|
|
133
|
+
"resourceWaitMs": 0
|
|
134
|
+
},
|
|
135
|
+
"verificationAttempts": 0,
|
|
136
|
+
"statusCounts": {},
|
|
137
|
+
"failureClasses": {
|
|
138
|
+
"launcher": 0,
|
|
139
|
+
"environment": 0,
|
|
140
|
+
"test": 0,
|
|
141
|
+
"external": 0,
|
|
142
|
+
"unknown": 0
|
|
143
|
+
},
|
|
144
|
+
"invalidationReasons": {},
|
|
145
|
+
"environment": {
|
|
146
|
+
"prepare": 0,
|
|
147
|
+
"reuse": 0,
|
|
148
|
+
"reset": 0,
|
|
149
|
+
"cleanup": 0
|
|
150
|
+
},
|
|
151
|
+
"productIdentityCount": 0,
|
|
152
|
+
"repeatedCommandsWithoutNewEvidence": 0,
|
|
153
|
+
"manualWrapperCount": 0,
|
|
154
|
+
"notes": []
|
|
155
|
+
},
|
|
128
156
|
"reviewSummary": {
|
|
129
157
|
"status": "ADVISORY",
|
|
130
158
|
"red": 0,
|
|
@@ -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=367eb27020f2b966; overlay=none; agent=codebuddy; do not edit -->
|
|
7
7
|
# harness-codebase-map — 代码库地图
|
|
8
8
|
|
|
9
9
|
## Purpose
|
|
@@ -3,7 +3,7 @@ name: harness-knowledge-ingest
|
|
|
3
3
|
description: 从 .harness/archive 归档整理、同步和维护项目知识索引。适用场景:ingest knowledge、sync
|
|
4
4
|
knowledge、rebuild knowledge index、promote knowledge、确认知识条目、检查知识库是否过期。
|
|
5
5
|
---
|
|
6
|
-
<!-- generated by harness_deploy.py; core=
|
|
6
|
+
<!-- generated by harness_deploy.py; core=367eb27020f2b966; overlay=none; agent=codebuddy; do not edit -->
|
|
7
7
|
# harness-knowledge-ingest
|
|
8
8
|
|
|
9
9
|
从 `.harness/archive/**/reports/final/summary-data.json` 抽取项目知识,生成并维护本地 `.harness/knowledge/` 索引。
|
|
@@ -3,7 +3,7 @@ name: harness-knowledge-query
|
|
|
3
3
|
description: 根据新需求、设计任务、代码修改请求或问题排查,在规划和编码前查询 .harness/knowledge
|
|
4
4
|
历史上下文。适用场景:query knowledge、查找历史需求、根据归档理解需求、继续之前类似开发、生成需求上下文包。
|
|
5
5
|
---
|
|
6
|
-
<!-- generated by harness_deploy.py; core=
|
|
6
|
+
<!-- generated by harness_deploy.py; core=367eb27020f2b966; overlay=none; agent=codebuddy; do not edit -->
|
|
7
7
|
# harness-knowledge-query
|
|
8
8
|
|
|
9
9
|
并行 change 中查询必须传 `--change <change-id>`;成功后以该 change 的 `meta/knowledge-context.json` 为稳定指针。全局 `context-packs/latest.json` 仅向后兼容,不得用于判断多个 active change 的上下文归属。
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
name: harness-plan
|
|
3
3
|
description: 将需求转化为设计文档+实施计划+完整测试场景表,必须在编码前完成。使用场景:需求分析、feature plan、技术方案设计、实现方案规划
|
|
4
4
|
---
|
|
5
|
-
<!-- generated by harness_deploy.py; core=
|
|
5
|
+
<!-- generated by harness_deploy.py; core=367eb27020f2b966; overlay=none; agent=codebuddy; do not edit -->
|
|
6
6
|
# harness-plan — 需求规划
|
|
7
7
|
|
|
8
8
|
## Purpose
|
|
@@ -3,7 +3,7 @@ name: harness-review
|
|
|
3
3
|
description: 6维度代码审查(架构/安全/规范/兼容/测试/性能),对照项目规则(见
|
|
4
4
|
.harness/context-index.json)和测试场景表,在隔离上下文运行。使用场景:代码审查、提交前检查、合并评审
|
|
5
5
|
---
|
|
6
|
-
<!-- generated by harness_deploy.py; core=
|
|
6
|
+
<!-- generated by harness_deploy.py; core=367eb27020f2b966; overlay=none; agent=codebuddy; do not edit -->
|
|
7
7
|
# harness-review — 代码审查
|
|
8
8
|
|
|
9
9
|
## Purpose
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
name: harness-run
|
|
3
3
|
description: 按变更簇执行 TDD 编码循环(RED→GREEN→REFACTOR→编译验证),逐变更簇实现计划中的任务。使用场景:开始编码、实现功能、写代码、TDD 编码
|
|
4
4
|
---
|
|
5
|
-
<!-- generated by harness_deploy.py; core=
|
|
5
|
+
<!-- generated by harness_deploy.py; core=367eb27020f2b966; overlay=none; agent=codebuddy; do not edit -->
|
|
6
6
|
# harness-run — 需求编码
|
|
7
7
|
|
|
8
8
|
## Purpose
|
|
@@ -94,7 +94,7 @@ requested=true + path missing
|
|
|
94
94
|
6. **读取测试场景表**:`.harness/changes/<change-name>/plans/<change-name>-test-scenarios.md` → 获取测试真相源
|
|
95
95
|
7. **读取验证账本**:`.harness/changes/<change-name>/evidence/verification-ledger.json`(如存在)→ 复用已有 compile/unitTest 结果
|
|
96
96
|
8. **读取任务状态**:`.harness/changes/<change-name>/evidence/run-task-status.md`(如存在)→ 恢复上次运行状态
|
|
97
|
-
9. **读取 review fixback**:用户传入 `--fixback` 或要求修复 review 问题时,读取最新 `.harness/changes/<change-name>/reports/review/fixback-*.md
|
|
97
|
+
9. **读取 review fixback**:用户传入 `--fixback` 或要求修复 review 问题时,读取最新 `.harness/changes/<change-name>/reports/review/fixback-*.md`,并用 `harness_fixback.py` 将相关 RED/YELLOW 条目合并为一个批次;每条问题保留 RED/GREEN 证据,批次关闭后只触发一次 affected verification 与一次 review
|
|
98
98
|
10. 确认 `项目规则(见 .harness/context-index.json)/` 规则已加载
|
|
99
99
|
11. **执行测试基础设施探测**(见下方"步骤 0.5")
|
|
100
100
|
12. 确认构建环境正常(构建命令按技术栈,见项目 CLAUDE.md 或 `.harness/config/harness-build-config.md`;如 Java 的 `powershell.exe -Command "mvn compile -pl <module> -o -q"`)
|
|
@@ -102,6 +102,11 @@ requested=true + path missing
|
|
|
102
102
|
14. **依赖模块预安装**:如果在 worktree 中执行,检查上游依赖是否已安装(如 Java 的 `mvn install` 到本地仓库、前端的依赖已 install)。缺失时先执行对应安装命令(Java 示例:`powershell.exe -Command "mvn install -pl <upstream-modules> -am -DskipTests -nsu"`)
|
|
103
103
|
15. **代码探索优先用 codegraph_explore**:一次调用可获取多个相关符号的源码,替代逐个 Read 文件。违反 `项目 codegraph 规则` 规则逐个 Read 会浪费 3-5 分钟。仅在 codegraph 返回结果不完整时补充 Read
|
|
104
104
|
|
|
105
|
+
长时编译或验证不得依赖当前对话持续在线;使用 `harness_runtime.py run-start` 创建
|
|
106
|
+
受管会话,并以状态/日志游标重连。并行执行前先调用
|
|
107
|
+
`harness_verification.py` 的 `plan` 模式取得资源锁 wave;没有资源声明的重任务保持串行。详见
|
|
108
|
+
`../protocols/execution-session-protocol.md`。
|
|
109
|
+
|
|
105
110
|
### 步骤 0.0:正式产物来源确认
|
|
106
111
|
|
|
107
112
|
在读取计划文件后,确认本次执行只使用 `.harness/changes/<change-name>/` 下的正式产物:
|
|
@@ -3,7 +3,7 @@ name: harness-submit
|
|
|
3
3
|
description: 最终提交封装:验证→中文 commit→提交/推送;worktree 模式含 --no-ff
|
|
4
4
|
合并回主分支。使用场景:提交代码、commit、push、合并分支、merge to main、完成开发
|
|
5
5
|
---
|
|
6
|
-
<!-- generated by harness_deploy.py; core=
|
|
6
|
+
<!-- generated by harness_deploy.py; core=367eb27020f2b966; overlay=none; agent=codebuddy; do not edit -->
|
|
7
7
|
# harness-submit — 最终提交(含 worktree 合并)
|
|
8
8
|
|
|
9
9
|
## Purpose
|
|
@@ -389,6 +389,18 @@ python harness/scripts/harness_integration.py push --change <change-name> --run-
|
|
|
389
389
|
|
|
390
390
|
远端基线漂移 → `TARGET_MOVED` 结构化失败,不继续。成功后 journal `pushedHead` 即 `mergeFinalHash`。
|
|
391
391
|
|
|
392
|
+
若远端已确认 mergeCommit,但包装事务名与证据所属 Change 不同,导致
|
|
393
|
+
`LEDGER_SYNC_PENDING / LEDGER_MISSING`,必须显式指定真实证据归属后恢复:
|
|
394
|
+
|
|
395
|
+
```powershell
|
|
396
|
+
python harness/scripts/harness_integration.py recover --change <transaction-change> --evidence-change <evidence-change> --run-id <run-id> --feature-branch harness/<transaction-change> --target-branch <主分支> --temp-root <task-temp>
|
|
397
|
+
```
|
|
398
|
+
|
|
399
|
+
该覆盖只允许修复“默认同名台账缺失”的远端已确认事务;一旦 journal 已绑定证据
|
|
400
|
+
Change,后续传入不同值会 fail closed。目标台账的既有三项集成哈希必须精确匹配
|
|
401
|
+
本事务基线(或已匹配本次 mergeCommit),作为前序集成交接身份;禁止为包装事务
|
|
402
|
+
伪造空台账或覆盖其他历史 Change 的集成哈希。
|
|
403
|
+
|
|
392
404
|
### 步骤 M6:cleanup
|
|
393
405
|
|
|
394
406
|
```powershell
|
|
@@ -4,7 +4,7 @@ description: Use when the user asks to synchronize, refresh, or validate Harness
|
|
|
4
4
|
metadata, adapters, knowledge, rules, instruction entrypoints, config origins,
|
|
5
5
|
or CodeGraph status.
|
|
6
6
|
---
|
|
7
|
-
<!-- generated by harness_deploy.py; core=
|
|
7
|
+
<!-- generated by harness_deploy.py; core=367eb27020f2b966; overlay=none; agent=codebuddy; do not edit -->
|
|
8
8
|
# harness-sync
|
|
9
9
|
|
|
10
10
|
## Purpose
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
name: harness-test
|
|
3
3
|
description: 测试执行:读取场景表,执行单元测试+API接口测试+数据兼容验证,输出测试报告。当用户说'跑测试/验证/跑用例/接口测试/单元测试'时使用
|
|
4
4
|
---
|
|
5
|
-
<!-- generated by harness_deploy.py; core=
|
|
5
|
+
<!-- generated by harness_deploy.py; core=367eb27020f2b966; overlay=none; agent=codebuddy; do not edit -->
|
|
6
6
|
# harness-test — 测试执行
|
|
7
7
|
|
|
8
8
|
## Purpose
|
|
@@ -72,11 +72,17 @@ Runner 强制同项目单实例、低调度优先级、逐命令超时、正常
|
|
|
72
72
|
|
|
73
73
|
动态数据库/Redis/令牌字段必须先由 `harness_environment.py prepare` 生成 secret-free receipt,再用 `exec --environment-receipt <file> --required-environment-field <NAME>` 闭包注入;缺失或指纹变化在启动测试前返回 `VERIFICATION_ENVIRONMENT_INCOMPLETE`。复杂 JSON、Docker template 或含引号参数不得跨多层 `-Command` 传递,改用 `exec --argv-file <utf8-json> --runtime-receipt <file>`;参数文件记录 PowerShell edition/version,运行回执只存 argv hash。`harness_service.py ensure` 属于正式持久服务模式,禁止从 bounded runner 内启动;命中时返回 `PERSISTENT_SERVICE_MODE_REQUIRED`。
|
|
74
74
|
|
|
75
|
+
预计超过交互窗口的正式验证使用 `harness_runtime.py run-start`,随后通过
|
|
76
|
+
`run-status` / `run-log --cursor` 重连;不得把调用方存活当作验证存活条件。环境 acquire
|
|
77
|
+
必须显式选择 `change-session`(同 change + 内容指纹复用)或 `ephemeral`(每次重置)。
|
|
78
|
+
验证 DAG 的并行度由 `resourceLocks` 决定,未分类重任务默认串行。完整合同见
|
|
79
|
+
`../protocols/execution-session-protocol.md`。
|
|
80
|
+
|
|
75
81
|
### Phase 0:环境准备(主会话执行,需要交互确认)
|
|
76
82
|
|
|
77
83
|
先 `harness_context.py prepare --phase test --executor <tool> [--change <id>] --json`,再 `harness_context.py begin --phase test --change <id> --executor <tool> --json` 校验最新 run→test receipt 的 artifact/hash/HEAD;然后 **`harness_gate.py begin --phase test --change <id>`**(禁止手工 phase.start / 手写 ledger)。执行各项强制环境检查 + **命令执行模式 preflight (0.1)**;只有首选执行器不可用时,才执行 fallback 执行器探测。
|
|
78
84
|
|
|
79
|
-
验证写入**仅**允许 `harness_ledger.py record` / `can-reuse`;禁止 Write/Edit `verification-ledger.json`。测试跟踪:`harness_test_guard.py begin` → 执行 → `close`(可选 `mark` stale-test-repair)。阶段结束必须 `harness_gate.py close --phase test --status ...`,随后 `harness_context.py close --from-phase test --to-phase review --executor <tool> --json`;fixback
|
|
85
|
+
验证写入**仅**允许 `harness_ledger.py record` / `can-reuse`;禁止 Write/Edit `verification-ledger.json`。测试跟踪:`harness_test_guard.py begin` → 执行 → `close`(可选 `mark` stale-test-repair)。阶段结束必须 `harness_gate.py close --phase test --status ...`,随后 `harness_context.py close --from-phase test --to-phase review --executor <tool> --json`;fixback 时由 `harness_fixback.py` 合批记录 RED/GREEN 和 affected verification,再 `--to-phase run` 并由 context 失效受影响 target。
|
|
80
86
|
|
|
81
87
|
- **Read `checklist.md`** — 各项检查详情 + 0.1 preflight + Playwright 探测 + 避坑规则指引
|
|
82
88
|
- **失败处理**:任一项检查失败 → 终止流程并报告原因,用户确认修复后才能继续
|