@hunter-harness/workflow-harness 0.2.9 → 0.2.10
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/harness-archive/SKILL.md +1 -1
- package/harness/bundles/general/claude-code/harness-archive/reference.md +12 -2
- package/harness/bundles/general/claude-code/harness-archive/templates/summary-data-template.json +6 -2
- package/harness/bundles/general/claude-code/harness-codebase-map/SKILL.md +1 -1
- package/harness/bundles/general/claude-code/harness-knowledge-ingest/SKILL.md +3 -1
- package/harness/bundles/general/claude-code/harness-knowledge-ingest/reference.md +7 -0
- package/harness/bundles/general/claude-code/harness-knowledge-ingest/scripts/harness_knowledge.py +117 -0
- 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 +3 -3
- package/harness/bundles/general/claude-code/harness-run/SKILL.md +1 -1
- package/harness/bundles/general/claude-code/harness-run/reference.md +2 -0
- package/harness/bundles/general/claude-code/harness-submit/SKILL.md +15 -10
- package/harness/bundles/general/claude-code/harness-submit/checklist.md +40 -76
- package/harness/bundles/general/claude-code/harness-sync/SKILL.md +17 -2
- package/harness/bundles/general/claude-code/harness-sync/reference.md +2 -2
- package/harness/bundles/general/claude-code/harness-test/SKILL.md +1 -1
- package/harness/bundles/general/claude-code/harness-test/reference.md +2 -0
- package/harness/bundles/general/claude-code/protocols/archive-report-protocol.md +24 -4
- package/harness/bundles/general/claude-code/protocols/ledger-protocol.md +36 -0
- package/harness/bundles/general/claude-code/protocols/state-layout-protocol.md +15 -0
- package/harness/bundles/general/claude-code/scripts/harness_archive.py +803 -274
- package/harness/bundles/general/claude-code/scripts/harness_change.py +18 -0
- package/harness/bundles/general/claude-code/scripts/harness_deploy.py +1 -44
- package/harness/bundles/general/claude-code/scripts/harness_events.py +104 -6
- package/harness/bundles/general/claude-code/scripts/harness_gate.py +25 -4
- package/harness/bundles/general/claude-code/scripts/harness_integration.py +878 -0
- package/harness/bundles/general/claude-code/scripts/harness_ledger.py +440 -10
- package/harness/bundles/general/claude-code/scripts/harness_paths.py +315 -0
- package/harness/bundles/general/claude-code/scripts/harness_profile.py +45 -0
- package/harness/bundles/general/claude-code/scripts/harness_review.py +326 -0
- package/harness/bundles/general/claude-code/scripts/harness_sync.py +407 -0
- package/harness/bundles/general/claude-code/scripts/harness_test_guard.py +244 -49
- package/harness/bundles/general/codebuddy/.harness-build.json +1 -1
- package/harness/bundles/general/codebuddy/harness-archive/SKILL.md +1 -1
- package/harness/bundles/general/codebuddy/harness-archive/reference.md +12 -2
- package/harness/bundles/general/codebuddy/harness-archive/templates/summary-data-template.json +6 -2
- package/harness/bundles/general/codebuddy/harness-codebase-map/SKILL.md +1 -1
- package/harness/bundles/general/codebuddy/harness-knowledge-ingest/SKILL.md +3 -1
- package/harness/bundles/general/codebuddy/harness-knowledge-ingest/reference.md +7 -0
- package/harness/bundles/general/codebuddy/harness-knowledge-ingest/scripts/harness_knowledge.py +117 -0
- 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 +3 -3
- package/harness/bundles/general/codebuddy/harness-run/SKILL.md +1 -1
- package/harness/bundles/general/codebuddy/harness-run/reference.md +2 -0
- package/harness/bundles/general/codebuddy/harness-submit/SKILL.md +15 -10
- package/harness/bundles/general/codebuddy/harness-submit/checklist.md +40 -76
- package/harness/bundles/general/codebuddy/harness-sync/SKILL.md +17 -2
- package/harness/bundles/general/codebuddy/harness-sync/reference.md +2 -2
- package/harness/bundles/general/codebuddy/harness-test/SKILL.md +1 -1
- package/harness/bundles/general/codebuddy/harness-test/reference.md +2 -0
- package/harness/bundles/general/codebuddy/protocols/archive-report-protocol.md +24 -4
- package/harness/bundles/general/codebuddy/protocols/ledger-protocol.md +36 -0
- package/harness/bundles/general/codebuddy/protocols/state-layout-protocol.md +15 -0
- package/harness/bundles/general/codebuddy/scripts/harness_archive.py +803 -274
- package/harness/bundles/general/codebuddy/scripts/harness_change.py +18 -0
- package/harness/bundles/general/codebuddy/scripts/harness_deploy.py +1 -44
- package/harness/bundles/general/codebuddy/scripts/harness_events.py +104 -6
- package/harness/bundles/general/codebuddy/scripts/harness_gate.py +25 -4
- package/harness/bundles/general/codebuddy/scripts/harness_integration.py +878 -0
- package/harness/bundles/general/codebuddy/scripts/harness_ledger.py +440 -10
- package/harness/bundles/general/codebuddy/scripts/harness_paths.py +315 -0
- package/harness/bundles/general/codebuddy/scripts/harness_profile.py +45 -0
- package/harness/bundles/general/codebuddy/scripts/harness_review.py +326 -0
- package/harness/bundles/general/codebuddy/scripts/harness_sync.py +407 -0
- package/harness/bundles/general/codebuddy/scripts/harness_test_guard.py +244 -49
- package/harness/bundles/general/codex/.harness-build.json +1 -1
- package/harness/bundles/general/codex/harness-archive/SKILL.md +1 -1
- package/harness/bundles/general/codex/harness-archive/reference.md +12 -2
- package/harness/bundles/general/codex/harness-archive/templates/summary-data-template.json +6 -2
- package/harness/bundles/general/codex/harness-codebase-map/SKILL.md +1 -1
- package/harness/bundles/general/codex/harness-knowledge-ingest/SKILL.md +3 -1
- package/harness/bundles/general/codex/harness-knowledge-ingest/reference.md +7 -0
- package/harness/bundles/general/codex/harness-knowledge-ingest/scripts/harness_knowledge.py +117 -0
- 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 +2 -0
- package/harness/bundles/general/codex/harness-submit/SKILL.md +15 -10
- package/harness/bundles/general/codex/harness-submit/checklist.md +40 -76
- package/harness/bundles/general/codex/harness-sync/SKILL.md +17 -2
- package/harness/bundles/general/codex/harness-sync/reference.md +2 -2
- package/harness/bundles/general/codex/harness-test/SKILL.md +1 -1
- package/harness/bundles/general/codex/harness-test/reference.md +2 -0
- package/harness/bundles/general/codex/protocols/archive-report-protocol.md +24 -4
- package/harness/bundles/general/codex/protocols/ledger-protocol.md +36 -0
- package/harness/bundles/general/codex/protocols/state-layout-protocol.md +15 -0
- package/harness/bundles/general/codex/scripts/harness_archive.py +803 -274
- package/harness/bundles/general/codex/scripts/harness_change.py +18 -0
- package/harness/bundles/general/codex/scripts/harness_deploy.py +1 -44
- package/harness/bundles/general/codex/scripts/harness_events.py +104 -6
- package/harness/bundles/general/codex/scripts/harness_gate.py +25 -4
- package/harness/bundles/general/codex/scripts/harness_integration.py +878 -0
- package/harness/bundles/general/codex/scripts/harness_ledger.py +440 -10
- package/harness/bundles/general/codex/scripts/harness_paths.py +315 -0
- package/harness/bundles/general/codex/scripts/harness_profile.py +45 -0
- package/harness/bundles/general/codex/scripts/harness_review.py +326 -0
- package/harness/bundles/general/codex/scripts/harness_sync.py +407 -0
- package/harness/bundles/general/codex/scripts/harness_test_guard.py +244 -49
- package/harness/bundles/general/cursor/.harness-build.json +1 -1
- package/harness/bundles/general/cursor/harness-archive/SKILL.md +1 -1
- package/harness/bundles/general/cursor/harness-archive/reference.md +12 -2
- package/harness/bundles/general/cursor/harness-archive/templates/summary-data-template.json +6 -2
- package/harness/bundles/general/cursor/harness-codebase-map/SKILL.md +1 -1
- package/harness/bundles/general/cursor/harness-knowledge-ingest/SKILL.md +3 -1
- package/harness/bundles/general/cursor/harness-knowledge-ingest/reference.md +7 -0
- package/harness/bundles/general/cursor/harness-knowledge-ingest/scripts/harness_knowledge.py +117 -0
- 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 +2 -0
- package/harness/bundles/general/cursor/harness-submit/SKILL.md +15 -10
- package/harness/bundles/general/cursor/harness-submit/checklist.md +40 -76
- package/harness/bundles/general/cursor/harness-sync/SKILL.md +17 -2
- package/harness/bundles/general/cursor/harness-sync/reference.md +2 -2
- package/harness/bundles/general/cursor/harness-test/SKILL.md +1 -1
- package/harness/bundles/general/cursor/harness-test/reference.md +2 -0
- package/harness/bundles/general/cursor/protocols/archive-report-protocol.md +24 -4
- package/harness/bundles/general/cursor/protocols/ledger-protocol.md +36 -0
- package/harness/bundles/general/cursor/protocols/state-layout-protocol.md +15 -0
- package/harness/bundles/general/cursor/scripts/harness_archive.py +803 -274
- package/harness/bundles/general/cursor/scripts/harness_change.py +18 -0
- package/harness/bundles/general/cursor/scripts/harness_deploy.py +1 -44
- package/harness/bundles/general/cursor/scripts/harness_events.py +104 -6
- package/harness/bundles/general/cursor/scripts/harness_gate.py +25 -4
- package/harness/bundles/general/cursor/scripts/harness_integration.py +878 -0
- package/harness/bundles/general/cursor/scripts/harness_ledger.py +440 -10
- package/harness/bundles/general/cursor/scripts/harness_paths.py +315 -0
- package/harness/bundles/general/cursor/scripts/harness_profile.py +45 -0
- package/harness/bundles/general/cursor/scripts/harness_review.py +326 -0
- package/harness/bundles/general/cursor/scripts/harness_sync.py +407 -0
- package/harness/bundles/general/cursor/scripts/harness_test_guard.py +244 -49
- package/harness/bundles/java/claude-code/.harness-build.json +1 -1
- 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 +12 -2
- package/harness/bundles/java/claude-code/harness-archive/templates/summary-data-template.json +6 -2
- package/harness/bundles/java/claude-code/harness-codebase-map/SKILL.md +1 -1
- package/harness/bundles/java/claude-code/harness-knowledge-ingest/SKILL.md +3 -1
- package/harness/bundles/java/claude-code/harness-knowledge-ingest/reference.md +7 -0
- package/harness/bundles/java/claude-code/harness-knowledge-ingest/scripts/harness_knowledge.py +117 -0
- 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 +3 -3
- package/harness/bundles/java/claude-code/harness-run/SKILL.md +1 -1
- package/harness/bundles/java/claude-code/harness-submit/SKILL.md +15 -10
- package/harness/bundles/java/claude-code/harness-submit/checklist.md +40 -76
- package/harness/bundles/java/claude-code/harness-sync/SKILL.md +17 -2
- package/harness/bundles/java/claude-code/harness-sync/reference.md +2 -2
- package/harness/bundles/java/claude-code/harness-test/SKILL.md +1 -1
- package/harness/bundles/java/claude-code/protocols/archive-report-protocol.md +24 -4
- package/harness/bundles/java/claude-code/protocols/ledger-protocol.md +36 -0
- package/harness/bundles/java/claude-code/protocols/state-layout-protocol.md +15 -0
- package/harness/bundles/java/claude-code/scripts/harness_archive.py +803 -274
- package/harness/bundles/java/claude-code/scripts/harness_change.py +18 -0
- package/harness/bundles/java/claude-code/scripts/harness_deploy.py +1 -44
- package/harness/bundles/java/claude-code/scripts/harness_events.py +104 -6
- package/harness/bundles/java/claude-code/scripts/harness_gate.py +25 -4
- package/harness/bundles/java/claude-code/scripts/harness_integration.py +878 -0
- package/harness/bundles/java/claude-code/scripts/harness_ledger.py +440 -10
- package/harness/bundles/java/claude-code/scripts/harness_paths.py +315 -0
- package/harness/bundles/java/claude-code/scripts/harness_profile.py +45 -0
- package/harness/bundles/java/claude-code/scripts/harness_review.py +326 -0
- package/harness/bundles/java/claude-code/scripts/harness_sync.py +407 -0
- package/harness/bundles/java/claude-code/scripts/harness_test_guard.py +244 -49
- package/harness/bundles/java/codebuddy/.harness-build.json +1 -1
- 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 +12 -2
- package/harness/bundles/java/codebuddy/harness-archive/templates/summary-data-template.json +6 -2
- package/harness/bundles/java/codebuddy/harness-codebase-map/SKILL.md +1 -1
- package/harness/bundles/java/codebuddy/harness-knowledge-ingest/SKILL.md +3 -1
- package/harness/bundles/java/codebuddy/harness-knowledge-ingest/reference.md +7 -0
- package/harness/bundles/java/codebuddy/harness-knowledge-ingest/scripts/harness_knowledge.py +117 -0
- 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 +3 -3
- package/harness/bundles/java/codebuddy/harness-run/SKILL.md +1 -1
- package/harness/bundles/java/codebuddy/harness-submit/SKILL.md +15 -10
- package/harness/bundles/java/codebuddy/harness-submit/checklist.md +40 -76
- package/harness/bundles/java/codebuddy/harness-sync/SKILL.md +17 -2
- package/harness/bundles/java/codebuddy/harness-sync/reference.md +2 -2
- package/harness/bundles/java/codebuddy/harness-test/SKILL.md +1 -1
- package/harness/bundles/java/codebuddy/protocols/archive-report-protocol.md +24 -4
- package/harness/bundles/java/codebuddy/protocols/ledger-protocol.md +36 -0
- package/harness/bundles/java/codebuddy/protocols/state-layout-protocol.md +15 -0
- package/harness/bundles/java/codebuddy/scripts/harness_archive.py +803 -274
- package/harness/bundles/java/codebuddy/scripts/harness_change.py +18 -0
- package/harness/bundles/java/codebuddy/scripts/harness_deploy.py +1 -44
- package/harness/bundles/java/codebuddy/scripts/harness_events.py +104 -6
- package/harness/bundles/java/codebuddy/scripts/harness_gate.py +25 -4
- package/harness/bundles/java/codebuddy/scripts/harness_integration.py +878 -0
- package/harness/bundles/java/codebuddy/scripts/harness_ledger.py +440 -10
- package/harness/bundles/java/codebuddy/scripts/harness_paths.py +315 -0
- package/harness/bundles/java/codebuddy/scripts/harness_profile.py +45 -0
- package/harness/bundles/java/codebuddy/scripts/harness_review.py +326 -0
- package/harness/bundles/java/codebuddy/scripts/harness_sync.py +407 -0
- package/harness/bundles/java/codebuddy/scripts/harness_test_guard.py +244 -49
- package/harness/bundles/java/codex/.harness-build.json +1 -1
- 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 +12 -2
- package/harness/bundles/java/codex/harness-archive/templates/summary-data-template.json +6 -2
- package/harness/bundles/java/codex/harness-codebase-map/SKILL.md +1 -1
- package/harness/bundles/java/codex/harness-knowledge-ingest/SKILL.md +3 -1
- package/harness/bundles/java/codex/harness-knowledge-ingest/reference.md +7 -0
- package/harness/bundles/java/codex/harness-knowledge-ingest/scripts/harness_knowledge.py +117 -0
- 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 +15 -10
- package/harness/bundles/java/codex/harness-submit/checklist.md +40 -76
- package/harness/bundles/java/codex/harness-sync/SKILL.md +17 -2
- package/harness/bundles/java/codex/harness-sync/reference.md +2 -2
- package/harness/bundles/java/codex/harness-test/SKILL.md +1 -1
- package/harness/bundles/java/codex/protocols/archive-report-protocol.md +24 -4
- package/harness/bundles/java/codex/protocols/ledger-protocol.md +36 -0
- package/harness/bundles/java/codex/protocols/state-layout-protocol.md +15 -0
- package/harness/bundles/java/codex/scripts/harness_archive.py +803 -274
- package/harness/bundles/java/codex/scripts/harness_change.py +18 -0
- package/harness/bundles/java/codex/scripts/harness_deploy.py +1 -44
- package/harness/bundles/java/codex/scripts/harness_events.py +104 -6
- package/harness/bundles/java/codex/scripts/harness_gate.py +25 -4
- package/harness/bundles/java/codex/scripts/harness_integration.py +878 -0
- package/harness/bundles/java/codex/scripts/harness_ledger.py +440 -10
- package/harness/bundles/java/codex/scripts/harness_paths.py +315 -0
- package/harness/bundles/java/codex/scripts/harness_profile.py +45 -0
- package/harness/bundles/java/codex/scripts/harness_review.py +326 -0
- package/harness/bundles/java/codex/scripts/harness_sync.py +407 -0
- package/harness/bundles/java/codex/scripts/harness_test_guard.py +244 -49
- package/harness/bundles/java/cursor/.harness-build.json +1 -1
- 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 +12 -2
- package/harness/bundles/java/cursor/harness-archive/templates/summary-data-template.json +6 -2
- package/harness/bundles/java/cursor/harness-codebase-map/SKILL.md +1 -1
- package/harness/bundles/java/cursor/harness-knowledge-ingest/SKILL.md +3 -1
- package/harness/bundles/java/cursor/harness-knowledge-ingest/reference.md +7 -0
- package/harness/bundles/java/cursor/harness-knowledge-ingest/scripts/harness_knowledge.py +117 -0
- 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 +15 -10
- package/harness/bundles/java/cursor/harness-submit/checklist.md +40 -76
- package/harness/bundles/java/cursor/harness-sync/SKILL.md +17 -2
- package/harness/bundles/java/cursor/harness-sync/reference.md +2 -2
- package/harness/bundles/java/cursor/harness-test/SKILL.md +1 -1
- package/harness/bundles/java/cursor/protocols/archive-report-protocol.md +24 -4
- package/harness/bundles/java/cursor/protocols/ledger-protocol.md +36 -0
- package/harness/bundles/java/cursor/protocols/state-layout-protocol.md +15 -0
- package/harness/bundles/java/cursor/scripts/harness_archive.py +803 -274
- package/harness/bundles/java/cursor/scripts/harness_change.py +18 -0
- package/harness/bundles/java/cursor/scripts/harness_deploy.py +1 -44
- package/harness/bundles/java/cursor/scripts/harness_events.py +104 -6
- package/harness/bundles/java/cursor/scripts/harness_gate.py +25 -4
- package/harness/bundles/java/cursor/scripts/harness_integration.py +878 -0
- package/harness/bundles/java/cursor/scripts/harness_ledger.py +440 -10
- package/harness/bundles/java/cursor/scripts/harness_paths.py +315 -0
- package/harness/bundles/java/cursor/scripts/harness_profile.py +45 -0
- package/harness/bundles/java/cursor/scripts/harness_review.py +326 -0
- package/harness/bundles/java/cursor/scripts/harness_sync.py +407 -0
- package/harness/bundles/java/cursor/scripts/harness_test_guard.py +244 -49
- package/harness/manifests/general/claude-code.json +47 -31
- package/harness/manifests/general/codebuddy.json +47 -31
- package/harness/manifests/general/codex.json +47 -31
- package/harness/manifests/general/cursor.json +47 -31
- package/harness/manifests/java/claude-code.json +47 -31
- package/harness/manifests/java/codebuddy.json +47 -31
- package/harness/manifests/java/codex.json +47 -31
- package/harness/manifests/java/cursor.json +47 -31
- package/hunter-workflow-family.json +2 -2
- package/package.json +1 -1
|
@@ -75,8 +75,8 @@ powershell.exe -Command "git -C '<项目路径>' diff --stat HEAD~5 2>$null"
|
|
|
75
75
|
| state 目录 | `.harness/state/baseline/` 存在(internal_state) | ✅OK | 无需操作 |
|
|
76
76
|
| codebase map | `.harness/codebase/map/` 状态 | — | 见第 3 步 |
|
|
77
77
|
| 整体缺失 | `project.yaml` 与 `context-index.json` 均不存在 | ❌FAIL(未初始化) | 执行 `hunter-harness init`(见下方风险规程) |
|
|
78
|
-
|
|
79
|
-
|
|
78
|
+
|
|
79
|
+
> sync 不读取、不修改也不建议修改项目 `.gitignore` 策略(RET-34/35):三种跟踪策略(整体忽略 / 选择性跟踪 / 完全跟踪)下完整性结论相同,新鲜度由 post-adaptation projection 判定,与 Git 策略无关。
|
|
80
80
|
|
|
81
81
|
> ⚠️ **`hunter-harness init` 风险规程**(`.harness/` 未初始化时触发):
|
|
82
82
|
> 1. **预览**:`node packages/cli/dist/bin.js --non-interactive --dry-run --adapter claude-code --profile general --json`,确认将写入的路径清单与 `project_id`(`null` = 未绑服务器,本地自治理)。
|
|
@@ -22,7 +22,7 @@ disallowed-tools:
|
|
|
22
22
|
- Bash(node *)
|
|
23
23
|
- Bash(codegraph *)
|
|
24
24
|
---
|
|
25
|
-
<!-- generated by harness_deploy.py; core=
|
|
25
|
+
<!-- generated by harness_deploy.py; core=43088896a4556b69; overlay=none; agent=claude-code; do not edit -->
|
|
26
26
|
# harness-test — 测试执行
|
|
27
27
|
|
|
28
28
|
## Purpose
|
|
@@ -708,6 +708,8 @@ python <skills-root>/scripts/harness_ledger.py record --change-dir <dir> --verif
|
|
|
708
708
|
python <skills-root>/scripts/harness_ledger.py can-reuse --change-dir <dir> --verification unitTestFull --profile-input unitTestFull --project <project>
|
|
709
709
|
```
|
|
710
710
|
|
|
711
|
+
> **Ledger v3(v2 契约 / split-v1 布局起)**:`record` 强制顶层身份(缺失非零退出、不写账本);`--metrics-json` 必须过 typed schema(unit/apiContract/browserE2E/dbCompatibility 各有不同必填键);dbCompatibility 等不适用验证用 `--applicability NOT_APPLICABLE --applicability-reason "<scope 原因>"`(不计通过也不计失败)。legacy 契约行为不变。详见 `../protocols/ledger-protocol.md` 第十节。
|
|
712
|
+
|
|
711
713
|
### 常见报错对照
|
|
712
714
|
|
|
713
715
|
| 报错 | 原因 | 处理 |
|
|
@@ -6,7 +6,7 @@ description: harness-archive 的数据化归档和 final-summary 渲染协议。
|
|
|
6
6
|
|
|
7
7
|
## 原则
|
|
8
8
|
|
|
9
|
-
archive 不应让模型临场生成 500+ 行 HTML。事实收集与校验由 `harness_archive.py finalize` 单命令完成(cleanup → collect → render → validate → archive-meta 内嵌);模型仅通过 events 写入维护结论。`meta/archive-meta.md` 由 finalize 生成,禁止手写。历史 archive 回放用 `harness_archive.py replay`(只读,不写 archive-meta / 不跑 cleanup)。
|
|
9
|
+
archive 不应让模型临场生成 500+ 行 HTML。事实收集与校验由 `harness_archive.py finalize` 单命令完成(cleanup → **freeze(事件 cutoff)** → collect → source consistency → render → renderer consistency → validate → archive-meta 内嵌);模型仅通过 events 写入维护结论。`meta/archive-meta.md` 由 finalize 生成,禁止手写。历史 archive 回放用 `harness_archive.py replay`(只读,不写 archive-meta / 不跑 cleanup)。
|
|
10
10
|
|
|
11
11
|
`knownRisks` 仅收录 severity∈{warning,error,critical} 的 issue 事件;无 severity 的 issue 进入 `maintenanceNotes`。`finalStatusReasons` 解释 CONDITIONAL_OK/WARN/FAIL 原因。finalize 在 before-manifest 前 cleanup:删除 lock/pid/launcher/credential,截断超大日志。
|
|
12
12
|
|
|
@@ -27,11 +27,11 @@ events.ndjson(新流程推荐;历史 archive 可缺失)
|
|
|
27
27
|
|
|
28
28
|
## summary-data.json
|
|
29
29
|
|
|
30
|
-
结构来源为 `harness-archive/templates/summary-data-template.json`(schemaVersion 2.
|
|
30
|
+
结构来源为 `harness-archive/templates/summary-data-template.json`(schemaVersion 2.3)。默认由 `harness_archive.py finalize` 生成;历史回放用 `harness_archive.py replay`。
|
|
31
31
|
|
|
32
32
|
```json
|
|
33
33
|
{
|
|
34
|
-
"schemaVersion": "2.
|
|
34
|
+
"schemaVersion": "2.3",
|
|
35
35
|
"changeName": "...",
|
|
36
36
|
"businessGoal": "本次变更为了做什么",
|
|
37
37
|
"finalCommit": "...",
|
|
@@ -75,7 +75,8 @@ events.ndjson(新流程推荐;历史 archive 可缺失)
|
|
|
75
75
|
"commands": [],
|
|
76
76
|
"verificationChecks": [],
|
|
77
77
|
"artifacts": [],
|
|
78
|
-
"validationIssues": []
|
|
78
|
+
"validationIssues": [],
|
|
79
|
+
"sourceConsistency": {"ok": true, "issues": []}
|
|
79
80
|
}
|
|
80
81
|
}
|
|
81
82
|
```
|
|
@@ -143,6 +144,25 @@ PowerShell HTML renderer 仅作 legacy fallback。该脚本以 UTF-8 with BOM
|
|
|
143
144
|
|
|
144
145
|
`validate` 是 `harness_archive.py finalize` 的内嵌同进程步骤(不存在独立 `report validate` CLI);validate error 存在时,finalize 恢复原 changes 目录并 exit 非 0,绝不删除原 changes 目录。**缺 final-summary.html 恒为 validate error**(不再有"没有 HTML 但只 warning"的分支)。
|
|
145
146
|
|
|
147
|
+
## 冻结优先 finalize 与两层一致性(schemaVersion 2.3 起)
|
|
148
|
+
|
|
149
|
+
finalize 在 collect 之前**冻结事件事实**:所有 archive-fact 事件落盘并 fsync 后,写入唯一的 `phase.end` 与 `evidence/evidence-cutoff.json`(`eventCount` + `sha256` + `frozenAt`)。cutoff 之后**禁止再向归档 events.ndjson 追加任何事件**;后续报告生成事实(render/validate 结果、manifest 比对)只写入 finalize JSON payload 与 maintenance outbox,不回写事件流。collect 是纯函数:stage/timeline/durations 全部由冻结事件推导,**不存在选择性 patch 步骤**。
|
|
150
|
+
|
|
151
|
+
两层 validator 顺序执行,任何一层失败都恢复原 change 目录并非零退出:
|
|
152
|
+
|
|
153
|
+
1. **source consistency**(`validate_source_consistency`,render 前):summary 事实对照冻结来源——`event_count` 对 cutoff、verification 对 ledger typed metrics projection、review 计数对 sidecars。结果写入 `reportPipeline.sourceConsistency = {ok, issues}`;`ok=false` 时 issue code 含 `event-count-mismatch` / `verification-mismatch`。
|
|
154
|
+
2. **renderer consistency**(`validate_summary`,render 后):HTML 对照 summary-data,数字不得漂移。
|
|
155
|
+
|
|
156
|
+
## versioned repair(不改写原归档)
|
|
157
|
+
|
|
158
|
+
`replay` 保持只读。归档后发现不一致时,用显式修复:
|
|
159
|
+
|
|
160
|
+
```powershell
|
|
161
|
+
python harness/scripts/harness_archive.py repair --archive-dir ".harness/archive/<archive-id>" --json
|
|
162
|
+
```
|
|
163
|
+
|
|
164
|
+
repair 先在 archive 外生成候选 derived version,两层 validator 均通过后,才以不可变新版本写入 `derived/v<N>/{summary-data.json, final-summary.html, repair-record.json}`,并把 `derived/authoritative.json` pointer 指向该版本;**原 summary-data.json、final-summary.html 与 manifest 永不覆盖**。知识层只从 authoritative pointer 指向且 hash 校验通过的版本提取条目。
|
|
165
|
+
|
|
146
166
|
## 归档与知识维护解耦(§8)
|
|
147
167
|
|
|
148
168
|
archive close 的破坏性事务只执行确定性 close:
|
|
@@ -315,3 +315,39 @@ ledger 的 `status` 与 final-summary 展示状态对应:
|
|
|
315
315
|
### 9.5 v1→v2 兼容
|
|
316
316
|
|
|
317
317
|
v1 ledger 可读;entry 缺 v2 字段时 `can-reuse` 返回 `MISSING_V2_FIELDS`(insufficient-evidence),**不静默升级证据**。重新 `record`(自动补 v2 字段)后恢复复用。diffHash 算法升级后旧 ledger 一次性失效,不危险复用。
|
|
318
|
+
|
|
319
|
+
## 十、Ledger v3(contract-gated,2026-07 起)
|
|
320
|
+
|
|
321
|
+
v3 仅在 change contract 为 schemaVersion ≥ 2(或声明 `stateOwnership.runtimeRoot`,即 split-v1 布局)时启用;legacy v1 契约与无契约目录**行为完全不变**(零回归,旧 362 测试套件证明)。
|
|
322
|
+
|
|
323
|
+
### 10.1 强制顶层身份
|
|
324
|
+
|
|
325
|
+
v2 契约下 `record` 写入前强制解析并校验顶层身份字段,缺失且不可解析时**非零退出、不写账本**:
|
|
326
|
+
|
|
327
|
+
| 字段 | 解析顺序 |
|
|
328
|
+
|------|------|
|
|
329
|
+
| `schemaVersion` | 固定 `3` |
|
|
330
|
+
| `repositoryId` | `harness_paths.repository_identity(repo_root)`(远端规范化 + root commit;无远端回退 git common-dir,跨 worktree 稳定,RET-09) |
|
|
331
|
+
| `changeName` | change 目录名 |
|
|
332
|
+
| `baseCommit` | `--base-commit` → 既有 ledger 值 → `git rev-parse --verify HEAD` |
|
|
333
|
+
| `currentHead` | `git rev-parse --verify HEAD`(验证执行时) |
|
|
334
|
+
| `diffHash` | `--diff-hash` → 既有 ledger 值 → 按 ownership 范围重算(§10.3) |
|
|
335
|
+
| `ownershipHash` | 契约 `ownership` 段规范化 JSON 的 sha256 |
|
|
336
|
+
|
|
337
|
+
### 10.2 类型化 metrics 与 applicability
|
|
338
|
+
|
|
339
|
+
- v2 契约下 `--metrics-json` 必须通过 `validate_metrics` 类型校验:`unitTest`/`unitTestFull` 要求 `total/passed/failed`;`apiContract` 要求 `scenariosTotal/passed/failed`;`browserE2E` 要求 `total/passed/failed`;`dbCompatibility` 要求 `applicability ∈ APPLICABLE|NOT_APPLICABLE`,`NOT_APPLICABLE` 必须带 `reason`(UT-005/RET-15、UT-006/RET-16)。未知 verification 类型放行。
|
|
340
|
+
- `--applicability APPLICABLE|NOT_APPLICABLE` + `--applicability-reason` 写入 entry 级 applicability;`NOT_APPLICABLE` 无 reason 直接报错。applicability **既不计入通过也不计入失败**(UT-012/RET-24)。
|
|
341
|
+
- legacy 契约不校验 metrics 形状(旧的 `{"run","failures"}` 松散格式继续可用)。
|
|
342
|
+
|
|
343
|
+
### 10.3 ownership 范围 diffHash(RET-18)
|
|
344
|
+
|
|
345
|
+
`compute_ownership_diff(repo_root, base, change_dir)` 只对本变更 ownership 范围内的路径计算 diffHash:
|
|
346
|
+
|
|
347
|
+
- 排除 `.harness/state/**` 动态运行时证据(计入 `excludedRuntimeCount`)
|
|
348
|
+
- 他变更路径(`.harness/changes/<other>/`、`.harness/state/changes/<other>/`)单列 `foreignPaths`,不混入哈希
|
|
349
|
+
- 输出 `diffHash/files/foreignPaths/excludedRuntimeCount/ownedFileCount/ownershipHash`
|
|
350
|
+
|
|
351
|
+
### 10.4 原子写入
|
|
352
|
+
|
|
353
|
+
`write_ledger` 采用 tmp → fsync → `os.replace`;replace 失败时旧账本字节不变、不留 `.tmp` 残骸。所有写路径(record / 其他命令)统一走原子写。
|
|
@@ -8,6 +8,21 @@ description: harness .harness 状态目录分层协议。用于减少根目录
|
|
|
8
8
|
|
|
9
9
|
`.harness/changes/<change-name>/` 是变更状态真相源,但根目录不得继续堆放所有文件。新产物按子目录分层;旧路径保留读取兼容。
|
|
10
10
|
|
|
11
|
+
## 双根布局(split-v1,2026-07 起)
|
|
12
|
+
|
|
13
|
+
新 Change 将**静态合同**与**动态运行状态**分离到两个唯一所有者:
|
|
14
|
+
|
|
15
|
+
```text
|
|
16
|
+
.harness/changes/<change-name>/ # contractRoot:静态合同(spec/plans/meta)
|
|
17
|
+
.harness/state/changes/<change-name>/ # stateRoot:动态状态(events/logs/ledger/tracking/reports/runtime)
|
|
18
|
+
```
|
|
19
|
+
|
|
20
|
+
- 合同由 `meta/change-context.json` 的 `stateOwnership.contractRoot` / `stateOwnership.runtimeRoot` 声明(schemaVersion 2)。
|
|
21
|
+
- 动态产物(`events.ndjson`、`logs/execution-log.md`、`evidence/verification-ledger.json`、`evidence/test-tracking.json`、reports、runtime)只写 stateRoot。
|
|
22
|
+
- 统一解析入口:`harness_paths.py` —— `resolve_change_layout()` 返回完整双根;`resolve_state_dir_for_contract()` 供 events/ledger/test_guard/gate 内部路由。
|
|
23
|
+
- **legacy-colocated**:未声明 `stateOwnership` 的旧 Change 继续读写共址布局;resolve 只读,**绝不静默搬迁**;显式迁移须 copy → hash verify → atomic pointer switch。
|
|
24
|
+
- 功能分支不得携带共享动态状态副本;checkpoint/archive 的 evidence snapshot 从 stateRoot 生成。
|
|
25
|
+
|
|
11
26
|
## 推荐结构
|
|
12
27
|
|
|
13
28
|
```text
|