@hunter-harness/workflow-harness 0.2.59 → 0.2.61
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/README.md +14 -16
- package/harness/bundles/general/claude-code/harness-archive/SKILL.md +43 -46
- package/harness/bundles/general/claude-code/harness-archive/checklist.md +10 -10
- package/harness/bundles/general/claude-code/harness-archive/reference.md +29 -22
- package/harness/bundles/general/claude-code/harness-archive/templates/summary-data-template.json +1 -7
- 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 +4 -4
- package/harness/bundles/general/claude-code/harness-review/SKILL.md +2 -2
- package/harness/bundles/general/claude-code/harness-run/SKILL.md +5 -3
- package/harness/bundles/general/claude-code/harness-run/checklist.md +10 -9
- package/harness/bundles/general/claude-code/harness-run/protocols.md +2 -0
- package/harness/bundles/general/claude-code/harness-run/reference.md +19 -16
- package/harness/bundles/general/claude-code/harness-submit/SKILL.md +2 -2
- package/harness/bundles/general/claude-code/harness-sync/SKILL.md +1 -1
- package/harness/bundles/general/claude-code/harness-test/SKILL.md +2 -2
- package/harness/bundles/general/claude-code/harness-test/checklist.md +2 -2
- package/harness/bundles/general/claude-code/harness-test/pitfalls.md +3 -3
- package/harness/bundles/general/claude-code/harness-test/reference.md +2 -2
- package/harness/bundles/general/claude-code/protocols/archive-report-protocol.md +18 -25
- package/harness/bundles/general/claude-code/protocols/evidence-based-reporting-protocol.md +5 -5
- package/harness/bundles/general/claude-code/protocols/ledger-protocol.md +7 -7
- package/harness/bundles/general/claude-code/protocols/report-pipeline-protocol.md +10 -9
- package/harness/bundles/general/claude-code/protocols/sensitive-info-protocol.md +3 -3
- package/harness/bundles/general/claude-code/protocols/state-layout-protocol.md +5 -6
- package/harness/bundles/general/claude-code/scripts/harness_archive.py +1043 -1108
- package/harness/bundles/general/claude-code/scripts/harness_context.py +8 -2
- package/harness/bundles/general/claude-code/scripts/harness_events.py +5 -0
- package/harness/bundles/general/claude-code/scripts/harness_ledger.py +79 -2
- package/harness/bundles/general/claude-code/scripts/harness_profile.py +7 -0
- package/harness/bundles/general/claude-code/scripts/harness_state.py +22 -3
- package/harness/bundles/general/codebuddy/.harness-build.json +1 -1
- package/harness/bundles/general/codebuddy/README.md +14 -16
- package/harness/bundles/general/codebuddy/harness-archive/SKILL.md +43 -46
- package/harness/bundles/general/codebuddy/harness-archive/checklist.md +10 -10
- package/harness/bundles/general/codebuddy/harness-archive/reference.md +29 -22
- package/harness/bundles/general/codebuddy/harness-archive/templates/summary-data-template.json +1 -7
- 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 +4 -4
- package/harness/bundles/general/codebuddy/harness-review/SKILL.md +2 -2
- package/harness/bundles/general/codebuddy/harness-run/SKILL.md +5 -3
- package/harness/bundles/general/codebuddy/harness-run/checklist.md +10 -9
- package/harness/bundles/general/codebuddy/harness-run/protocols.md +2 -0
- package/harness/bundles/general/codebuddy/harness-run/reference.md +19 -16
- package/harness/bundles/general/codebuddy/harness-submit/SKILL.md +2 -2
- package/harness/bundles/general/codebuddy/harness-sync/SKILL.md +1 -1
- package/harness/bundles/general/codebuddy/harness-test/SKILL.md +2 -2
- package/harness/bundles/general/codebuddy/harness-test/checklist.md +2 -2
- package/harness/bundles/general/codebuddy/harness-test/pitfalls.md +3 -3
- package/harness/bundles/general/codebuddy/harness-test/reference.md +2 -2
- package/harness/bundles/general/codebuddy/protocols/archive-report-protocol.md +18 -25
- package/harness/bundles/general/codebuddy/protocols/evidence-based-reporting-protocol.md +5 -5
- package/harness/bundles/general/codebuddy/protocols/ledger-protocol.md +7 -7
- package/harness/bundles/general/codebuddy/protocols/report-pipeline-protocol.md +10 -9
- package/harness/bundles/general/codebuddy/protocols/sensitive-info-protocol.md +3 -3
- package/harness/bundles/general/codebuddy/protocols/state-layout-protocol.md +5 -6
- package/harness/bundles/general/codebuddy/scripts/harness_archive.py +1043 -1108
- package/harness/bundles/general/codebuddy/scripts/harness_context.py +8 -2
- package/harness/bundles/general/codebuddy/scripts/harness_events.py +5 -0
- package/harness/bundles/general/codebuddy/scripts/harness_ledger.py +79 -2
- package/harness/bundles/general/codebuddy/scripts/harness_profile.py +7 -0
- package/harness/bundles/general/codebuddy/scripts/harness_state.py +22 -3
- package/harness/bundles/general/codex/.harness-build.json +1 -1
- package/harness/bundles/general/codex/README.md +14 -16
- package/harness/bundles/general/codex/harness-archive/SKILL.md +43 -46
- package/harness/bundles/general/codex/harness-archive/checklist.md +10 -10
- package/harness/bundles/general/codex/harness-archive/reference.md +29 -22
- package/harness/bundles/general/codex/harness-archive/templates/summary-data-template.json +1 -7
- 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 +4 -4
- package/harness/bundles/general/codex/harness-review/SKILL.md +2 -2
- package/harness/bundles/general/codex/harness-run/SKILL.md +5 -3
- package/harness/bundles/general/codex/harness-run/checklist.md +10 -9
- package/harness/bundles/general/codex/harness-run/protocols.md +2 -0
- package/harness/bundles/general/codex/harness-run/reference.md +19 -16
- package/harness/bundles/general/codex/harness-submit/SKILL.md +2 -2
- package/harness/bundles/general/codex/harness-sync/SKILL.md +1 -1
- package/harness/bundles/general/codex/harness-test/SKILL.md +2 -2
- package/harness/bundles/general/codex/harness-test/checklist.md +2 -2
- package/harness/bundles/general/codex/harness-test/pitfalls.md +3 -3
- package/harness/bundles/general/codex/harness-test/reference.md +2 -2
- package/harness/bundles/general/codex/protocols/archive-report-protocol.md +18 -25
- package/harness/bundles/general/codex/protocols/evidence-based-reporting-protocol.md +5 -5
- package/harness/bundles/general/codex/protocols/ledger-protocol.md +7 -7
- package/harness/bundles/general/codex/protocols/report-pipeline-protocol.md +10 -9
- package/harness/bundles/general/codex/protocols/sensitive-info-protocol.md +3 -3
- package/harness/bundles/general/codex/protocols/state-layout-protocol.md +5 -6
- package/harness/bundles/general/codex/scripts/harness_archive.py +1043 -1108
- package/harness/bundles/general/codex/scripts/harness_context.py +8 -2
- package/harness/bundles/general/codex/scripts/harness_events.py +5 -0
- package/harness/bundles/general/codex/scripts/harness_ledger.py +79 -2
- package/harness/bundles/general/codex/scripts/harness_profile.py +7 -0
- package/harness/bundles/general/codex/scripts/harness_state.py +22 -3
- package/harness/bundles/general/cursor/.harness-build.json +1 -1
- package/harness/bundles/general/cursor/README.md +14 -16
- package/harness/bundles/general/cursor/harness-archive/SKILL.md +43 -46
- package/harness/bundles/general/cursor/harness-archive/checklist.md +10 -10
- package/harness/bundles/general/cursor/harness-archive/reference.md +29 -22
- package/harness/bundles/general/cursor/harness-archive/templates/summary-data-template.json +1 -7
- 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 +4 -4
- package/harness/bundles/general/cursor/harness-review/SKILL.md +2 -2
- package/harness/bundles/general/cursor/harness-run/SKILL.md +5 -3
- package/harness/bundles/general/cursor/harness-run/checklist.md +10 -9
- package/harness/bundles/general/cursor/harness-run/protocols.md +2 -0
- package/harness/bundles/general/cursor/harness-run/reference.md +19 -16
- package/harness/bundles/general/cursor/harness-submit/SKILL.md +2 -2
- package/harness/bundles/general/cursor/harness-sync/SKILL.md +1 -1
- package/harness/bundles/general/cursor/harness-test/SKILL.md +2 -2
- package/harness/bundles/general/cursor/harness-test/checklist.md +2 -2
- package/harness/bundles/general/cursor/harness-test/pitfalls.md +3 -3
- package/harness/bundles/general/cursor/harness-test/reference.md +2 -2
- package/harness/bundles/general/cursor/protocols/archive-report-protocol.md +18 -25
- package/harness/bundles/general/cursor/protocols/evidence-based-reporting-protocol.md +5 -5
- package/harness/bundles/general/cursor/protocols/ledger-protocol.md +7 -7
- package/harness/bundles/general/cursor/protocols/report-pipeline-protocol.md +10 -9
- package/harness/bundles/general/cursor/protocols/sensitive-info-protocol.md +3 -3
- package/harness/bundles/general/cursor/protocols/state-layout-protocol.md +5 -6
- package/harness/bundles/general/cursor/scripts/harness_archive.py +1043 -1108
- package/harness/bundles/general/cursor/scripts/harness_context.py +8 -2
- package/harness/bundles/general/cursor/scripts/harness_events.py +5 -0
- package/harness/bundles/general/cursor/scripts/harness_ledger.py +79 -2
- package/harness/bundles/general/cursor/scripts/harness_profile.py +7 -0
- package/harness/bundles/general/cursor/scripts/harness_state.py +22 -3
- package/harness/bundles/java/claude-code/.harness-build.json +1 -1
- package/harness/bundles/java/claude-code/README.md +14 -16
- package/harness/bundles/java/claude-code/harness-apidoc/SKILL.md +2 -2
- package/harness/bundles/java/claude-code/harness-archive/SKILL.md +43 -46
- package/harness/bundles/java/claude-code/harness-archive/checklist.md +10 -10
- package/harness/bundles/java/claude-code/harness-archive/reference.md +29 -22
- package/harness/bundles/java/claude-code/harness-archive/templates/summary-data-template.json +1 -7
- 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 +2 -2
- package/harness/bundles/java/claude-code/harness-plan/SKILL.md +4 -4
- package/harness/bundles/java/claude-code/harness-review/SKILL.md +2 -2
- package/harness/bundles/java/claude-code/harness-run/SKILL.md +5 -3
- package/harness/bundles/java/claude-code/harness-run/protocols.md +2 -0
- package/harness/bundles/java/claude-code/harness-submit/SKILL.md +2 -2
- package/harness/bundles/java/claude-code/harness-sync/SKILL.md +1 -1
- package/harness/bundles/java/claude-code/harness-test/SKILL.md +2 -2
- package/harness/bundles/java/claude-code/harness-test/checklist.md +2 -2
- package/harness/bundles/java/claude-code/harness-test/pitfalls.md +3 -3
- package/harness/bundles/java/claude-code/harness-test/reference.md +2 -2
- package/harness/bundles/java/claude-code/protocols/archive-report-protocol.md +18 -25
- package/harness/bundles/java/claude-code/protocols/evidence-based-reporting-protocol.md +5 -5
- package/harness/bundles/java/claude-code/protocols/ledger-protocol.md +7 -7
- package/harness/bundles/java/claude-code/protocols/report-pipeline-protocol.md +10 -9
- package/harness/bundles/java/claude-code/protocols/sensitive-info-protocol.md +3 -3
- package/harness/bundles/java/claude-code/protocols/state-layout-protocol.md +5 -6
- package/harness/bundles/java/claude-code/scripts/harness_archive.py +1043 -1108
- package/harness/bundles/java/claude-code/scripts/harness_context.py +8 -2
- package/harness/bundles/java/claude-code/scripts/harness_events.py +5 -0
- package/harness/bundles/java/claude-code/scripts/harness_ledger.py +79 -2
- package/harness/bundles/java/claude-code/scripts/harness_profile.py +7 -0
- package/harness/bundles/java/claude-code/scripts/harness_state.py +22 -3
- package/harness/bundles/java/codebuddy/.harness-build.json +1 -1
- package/harness/bundles/java/codebuddy/README.md +14 -16
- package/harness/bundles/java/codebuddy/harness-apidoc/SKILL.md +2 -2
- package/harness/bundles/java/codebuddy/harness-archive/SKILL.md +43 -46
- package/harness/bundles/java/codebuddy/harness-archive/checklist.md +10 -10
- package/harness/bundles/java/codebuddy/harness-archive/reference.md +29 -22
- package/harness/bundles/java/codebuddy/harness-archive/templates/summary-data-template.json +1 -7
- 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 +2 -2
- package/harness/bundles/java/codebuddy/harness-plan/SKILL.md +4 -4
- package/harness/bundles/java/codebuddy/harness-review/SKILL.md +2 -2
- package/harness/bundles/java/codebuddy/harness-run/SKILL.md +5 -3
- package/harness/bundles/java/codebuddy/harness-run/protocols.md +2 -0
- package/harness/bundles/java/codebuddy/harness-submit/SKILL.md +2 -2
- package/harness/bundles/java/codebuddy/harness-sync/SKILL.md +1 -1
- package/harness/bundles/java/codebuddy/harness-test/SKILL.md +2 -2
- package/harness/bundles/java/codebuddy/harness-test/checklist.md +2 -2
- package/harness/bundles/java/codebuddy/harness-test/pitfalls.md +3 -3
- package/harness/bundles/java/codebuddy/harness-test/reference.md +2 -2
- package/harness/bundles/java/codebuddy/protocols/archive-report-protocol.md +18 -25
- package/harness/bundles/java/codebuddy/protocols/evidence-based-reporting-protocol.md +5 -5
- package/harness/bundles/java/codebuddy/protocols/ledger-protocol.md +7 -7
- package/harness/bundles/java/codebuddy/protocols/report-pipeline-protocol.md +10 -9
- package/harness/bundles/java/codebuddy/protocols/sensitive-info-protocol.md +3 -3
- package/harness/bundles/java/codebuddy/protocols/state-layout-protocol.md +5 -6
- package/harness/bundles/java/codebuddy/scripts/harness_archive.py +1043 -1108
- package/harness/bundles/java/codebuddy/scripts/harness_context.py +8 -2
- package/harness/bundles/java/codebuddy/scripts/harness_events.py +5 -0
- package/harness/bundles/java/codebuddy/scripts/harness_ledger.py +79 -2
- package/harness/bundles/java/codebuddy/scripts/harness_profile.py +7 -0
- package/harness/bundles/java/codebuddy/scripts/harness_state.py +22 -3
- package/harness/bundles/java/codex/.harness-build.json +1 -1
- package/harness/bundles/java/codex/README.md +14 -16
- package/harness/bundles/java/codex/harness-apidoc/SKILL.md +2 -2
- package/harness/bundles/java/codex/harness-archive/SKILL.md +43 -46
- package/harness/bundles/java/codex/harness-archive/checklist.md +10 -10
- package/harness/bundles/java/codex/harness-archive/reference.md +29 -22
- package/harness/bundles/java/codex/harness-archive/templates/summary-data-template.json +1 -7
- 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 +2 -2
- package/harness/bundles/java/codex/harness-plan/SKILL.md +4 -4
- package/harness/bundles/java/codex/harness-review/SKILL.md +2 -2
- package/harness/bundles/java/codex/harness-run/SKILL.md +5 -3
- package/harness/bundles/java/codex/harness-run/protocols.md +2 -0
- package/harness/bundles/java/codex/harness-submit/SKILL.md +2 -2
- package/harness/bundles/java/codex/harness-sync/SKILL.md +1 -1
- package/harness/bundles/java/codex/harness-test/SKILL.md +2 -2
- package/harness/bundles/java/codex/harness-test/checklist.md +2 -2
- package/harness/bundles/java/codex/harness-test/pitfalls.md +3 -3
- package/harness/bundles/java/codex/harness-test/reference.md +2 -2
- package/harness/bundles/java/codex/protocols/archive-report-protocol.md +18 -25
- package/harness/bundles/java/codex/protocols/evidence-based-reporting-protocol.md +5 -5
- package/harness/bundles/java/codex/protocols/ledger-protocol.md +7 -7
- package/harness/bundles/java/codex/protocols/report-pipeline-protocol.md +10 -9
- package/harness/bundles/java/codex/protocols/sensitive-info-protocol.md +3 -3
- package/harness/bundles/java/codex/protocols/state-layout-protocol.md +5 -6
- package/harness/bundles/java/codex/scripts/harness_archive.py +1043 -1108
- package/harness/bundles/java/codex/scripts/harness_context.py +8 -2
- package/harness/bundles/java/codex/scripts/harness_events.py +5 -0
- package/harness/bundles/java/codex/scripts/harness_ledger.py +79 -2
- package/harness/bundles/java/codex/scripts/harness_profile.py +7 -0
- package/harness/bundles/java/codex/scripts/harness_state.py +22 -3
- package/harness/bundles/java/cursor/.harness-build.json +1 -1
- package/harness/bundles/java/cursor/README.md +14 -16
- package/harness/bundles/java/cursor/harness-apidoc/SKILL.md +2 -2
- package/harness/bundles/java/cursor/harness-archive/SKILL.md +43 -46
- package/harness/bundles/java/cursor/harness-archive/checklist.md +10 -10
- package/harness/bundles/java/cursor/harness-archive/reference.md +29 -22
- package/harness/bundles/java/cursor/harness-archive/templates/summary-data-template.json +1 -7
- 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 +2 -2
- package/harness/bundles/java/cursor/harness-plan/SKILL.md +4 -4
- package/harness/bundles/java/cursor/harness-review/SKILL.md +2 -2
- package/harness/bundles/java/cursor/harness-run/SKILL.md +5 -3
- package/harness/bundles/java/cursor/harness-run/protocols.md +2 -0
- package/harness/bundles/java/cursor/harness-submit/SKILL.md +2 -2
- package/harness/bundles/java/cursor/harness-sync/SKILL.md +1 -1
- package/harness/bundles/java/cursor/harness-test/SKILL.md +2 -2
- package/harness/bundles/java/cursor/harness-test/checklist.md +2 -2
- package/harness/bundles/java/cursor/harness-test/pitfalls.md +3 -3
- package/harness/bundles/java/cursor/harness-test/reference.md +2 -2
- package/harness/bundles/java/cursor/protocols/archive-report-protocol.md +18 -25
- package/harness/bundles/java/cursor/protocols/evidence-based-reporting-protocol.md +5 -5
- package/harness/bundles/java/cursor/protocols/ledger-protocol.md +7 -7
- package/harness/bundles/java/cursor/protocols/report-pipeline-protocol.md +10 -9
- package/harness/bundles/java/cursor/protocols/sensitive-info-protocol.md +3 -3
- package/harness/bundles/java/cursor/protocols/state-layout-protocol.md +5 -6
- package/harness/bundles/java/cursor/scripts/harness_archive.py +1043 -1108
- package/harness/bundles/java/cursor/scripts/harness_context.py +8 -2
- package/harness/bundles/java/cursor/scripts/harness_events.py +5 -0
- package/harness/bundles/java/cursor/scripts/harness_ledger.py +79 -2
- package/harness/bundles/java/cursor/scripts/harness_profile.py +7 -0
- package/harness/bundles/java/cursor/scripts/harness_state.py +22 -3
- package/harness/manifests/general/claude-code.json +35 -39
- package/harness/manifests/general/codebuddy.json +35 -39
- package/harness/manifests/general/codex.json +35 -39
- package/harness/manifests/general/cursor.json +35 -39
- package/harness/manifests/java/claude-code.json +35 -39
- package/harness/manifests/java/codebuddy.json +35 -39
- package/harness/manifests/java/codex.json +35 -39
- package/harness/manifests/java/cursor.json +35 -39
- package/hunter-workflow-family.json +5 -5
- package/package.json +1 -1
- package/harness/bundles/general/claude-code/harness-archive/templates/render-summary.mjs +0 -299
- package/harness/bundles/general/codebuddy/harness-archive/templates/render-summary.mjs +0 -299
- package/harness/bundles/general/codex/harness-archive/templates/render-summary.mjs +0 -299
- package/harness/bundles/general/cursor/harness-archive/templates/render-summary.mjs +0 -299
- package/harness/bundles/java/claude-code/harness-archive/templates/render-summary.mjs +0 -299
- package/harness/bundles/java/codebuddy/harness-archive/templates/render-summary.mjs +0 -299
- package/harness/bundles/java/codex/harness-archive/templates/render-summary.mjs +0 -299
- package/harness/bundles/java/cursor/harness-archive/templates/render-summary.mjs +0 -299
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
---
|
|
2
|
-
description: harness-archive
|
|
2
|
+
description: harness-archive 的结构化归档与 summary-data 校验协议。用于减少重复产物、提升数据准确性和平台展示一致性。
|
|
3
3
|
---
|
|
4
4
|
|
|
5
5
|
# Archive Report Protocol
|
|
6
6
|
|
|
7
7
|
## 原则
|
|
8
8
|
|
|
9
|
-
|
|
9
|
+
归档不应维护与平台重复的展示文件。常规入口是 `harness_archive.py execute`:它一次性完成状态采集与自动门禁,再复用预检结果调用 finalize。finalize 执行 cleanup → **freeze(事件 cutoff)** → collect → source consistency → summary 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
|
|
|
@@ -21,7 +21,6 @@ archive-meta.md
|
|
|
21
21
|
archive-manifest-before.json
|
|
22
22
|
archive-manifest-after.json
|
|
23
23
|
summary-data.json
|
|
24
|
-
final-summary.html
|
|
25
24
|
events.ndjson(新流程推荐;历史 archive 可缺失)
|
|
26
25
|
```
|
|
27
26
|
|
|
@@ -81,7 +80,7 @@ events.ndjson(新流程推荐;历史 archive 可缺失)
|
|
|
81
80
|
}
|
|
82
81
|
```
|
|
83
82
|
|
|
84
|
-
`
|
|
83
|
+
`summary-data.json` 的数字必须全部来自 events、ledger 或 manifest,不得手写另一套统计。
|
|
85
84
|
|
|
86
85
|
### 数据采集来源(禁止手写统计)
|
|
87
86
|
|
|
@@ -90,7 +89,7 @@ events.ndjson(新流程推荐;历史 archive 可缺失)
|
|
|
90
89
|
- `skillCalls`:从 execution-log 统计每个 `harness-<skill>` 小节出现次数(含重入)及结果。
|
|
91
90
|
- `verification` 各项及 `passRate`:来自 `evidence/verification-ledger.json`,不得手写通过率。
|
|
92
91
|
- `reviewSummary.redFixed`/`redConfirmed`/`yellowFixed`/`yellowDeferred`:从 review 报告清单 + 后续修复提交 diff 比对得出,不得手写。
|
|
93
|
-
- `artifacts[]`:本次变更构建出的可分发 package 产物(如 `.jar`/`.war`/`.zip`/`.tar`/`.gz`/`.dll`/`.exe`/`.whl`/`.nupkg` 等)。来自项目构建输出目录扫描(按构建工具识别产物路径,如 Maven `target/*.jar`、Gradle `build/libs/*`、npm `dist/*`、.NET `bin/Release/*`),每项记录 `name`(basename)、`path`(相对仓库根)、`size`、`sha256`(`Get-FileHash -Algorithm SHA256`
|
|
92
|
+
- `artifacts[]`:本次变更构建出的可分发 package 产物(如 `.jar`/`.war`/`.zip`/`.tar`/`.gz`/`.dll`/`.exe`/`.whl`/`.nupkg` 等)。来自项目构建输出目录扫描(按构建工具识别产物路径,如 Maven `target/*.jar`、Gradle `build/libs/*`、npm `dist/*`、.NET `bin/Release/*`),每项记录 `name`(basename)、`path`(相对仓库根)、`size`、`sha256`(`Get-FileHash -Algorithm SHA256` 计算),不得手写。无构建产物时留空数组,平台不展示空卡片。注意:归档 manifest(`archive-manifest-after.json`)记录的是 `.harness/archive/` 目录文件,不包含项目构建产物,两者不可混用。
|
|
94
93
|
- `reportPipeline.commands[]` / `verificationChecks[]` / `validationIssues[]`:来自 `events.ndjson`、ledger、validate 结果。旧 archive 无 events 时可从 ledger/log/manifest 回放,不得编造。
|
|
95
94
|
|
|
96
95
|
## manifest/checksum
|
|
@@ -121,7 +120,7 @@ powershell.exe -NoProfile -ExecutionPolicy Bypass -File "harness-skills/harness-
|
|
|
121
120
|
|
|
122
121
|
## 页面内容
|
|
123
122
|
|
|
124
|
-
|
|
123
|
+
平台归档摘要必须突出:
|
|
125
124
|
|
|
126
125
|
1. 本次变更业务目标;
|
|
127
126
|
2. 代码变更统计(diffStat:文件数 / insertions / deletions);
|
|
@@ -134,34 +133,28 @@ final-summary 必须突出:
|
|
|
134
133
|
禁止出现顶部 `N/A`、正文 `100%` 这类互相矛盾的数据。
|
|
135
134
|
|
|
136
135
|
|
|
137
|
-
##
|
|
136
|
+
## summary-data 信息密度要求
|
|
138
137
|
|
|
139
|
-
`summary-data.json` 至少包含 `verification`、`artifacts`、`reviewSummary`、`archiveManifest`、`maintenanceNotes`、`knownRisks`、`manualActions
|
|
138
|
+
`summary-data.json` 至少包含 `verification`、`artifacts`、`reviewSummary`、`archiveManifest`、`maintenanceNotes`、`knownRisks`、`manualActions`。平台只读取该 JSON,不重新推理或维护第二套统计。
|
|
140
139
|
|
|
141
|
-
`artifacts` 与 `uncommittedTestEvidence`
|
|
140
|
+
`artifacts` 与 `uncommittedTestEvidence` 为空数组时,平台不展示对应卡片,避免空态噪音;非空时才展示。字段在 JSON 中始终保留,仅控制界面展示。
|
|
142
141
|
|
|
143
|
-
##
|
|
142
|
+
## 数据校验
|
|
144
143
|
|
|
145
|
-
|
|
144
|
+
`validate` 是 finalize 的内嵌同进程步骤(不存在独立 `report validate` CLI)。validate error 存在时,finalize 恢复原 changes 目录并 exit 非 0,绝不删除原 changes 目录。warning 保留在报告中,但不会被误判为 validate error。Hunter Platform 直接读取已校验的 `summary-data.json`。
|
|
146
145
|
|
|
147
|
-
|
|
148
|
-
powershell.exe -NoProfile -Command "& '<node-path>' 'harness-skills/harness-archive/templates/render-summary.mjs' --summary '.harness/changes/<change>/reports/final/summary-data.json' --out '.harness/changes/<change>/reports/final/final-summary.html'"
|
|
149
|
-
```
|
|
150
|
-
|
|
151
|
-
PowerShell HTML renderer 仅作 legacy fallback。该脚本以 UTF-8 with BOM 保存,确保 Windows PowerShell 5.1 正确识别编码(无 BOM 会被 5.1 按 ANSI/GBK 误读导致中文 label 乱码);默认渲染器仍为 Node.js `render-summary.mjs`。
|
|
152
|
-
|
|
153
|
-
**Python fallback(`harness_archive.py` 内置)**:Node 不可用/超时/exit 非 0/未产出文件时,`harness_archive.py render_final_summary` 自动降级为内置 Python fallback(`render_fallback_html`),渲染含 changeName、finalStatus、`reportPipeline.commands`(command/exitCode)、`verification`(unitTests/apiTests/dbCompatibility)、changedFiles、archiveManifest、knownRisks、manualActions、maintenanceNotes 的确定性 HTML;USER_SKIPPED/BLOCKED_BY_DBA/失败状态可见,所有动态值 HTML 转义。返回结构统一为 `{ok, renderer: node|python-fallback|none, fallbackReason, out_path}`。Node 与 Python fallback **都失败**(`renderer=none, ok=false`)时,finalize 立即恢复原 change 目录并 exit 非 0,**绝不归档无 final-summary.html 的变更**。
|
|
146
|
+
正常完成时,`baseCommit` 与产品 tip 相同属于 `ARCHIVE_BASE_EQUALS_FEATURE_TIP`,必须在暂存前阻断。不得手工改 ledger 或 state snapshot。已有提交确属本变更时,使用 `adopt-existing-range` 生成绑定仓库、ownership 和 diffHash 的不可变收据;主动废弃或被替代时允许零产品增量,但必须记录中文原因,且固定 `releaseEligible=false`。
|
|
154
147
|
|
|
155
|
-
`
|
|
148
|
+
候选收据缺失时,`execute` 可以复用身份一致、范围完整的 `unitTestFull` ledger 自动生成本地候选认证。提交只改变 commit 身份而产品树和验证输入未变化时,允许安全重绑定到当前 HEAD;该过程不得执行测试。门禁策略未声明数据库能力且未要求 `dbCompatibility` 时,数据库投影为带原因的 `NOT_APPLICABLE`,不得把缺少无关数据库证据升级为归档错误。
|
|
156
149
|
|
|
157
150
|
## 冻结优先 finalize 与两层一致性(schemaVersion 2.3 起)
|
|
158
151
|
|
|
159
|
-
finalize 在 collect 之前**冻结事件事实**:所有 archive-fact 事件落盘并 fsync 后,写入唯一的 `phase.end` 与 `evidence/evidence-cutoff.json`(`eventCount` + `sha256` + `frozenAt`)。cutoff 之后**禁止再向归档 events.ndjson
|
|
152
|
+
finalize 在 collect 之前**冻结事件事实**:所有 archive-fact 事件落盘并 fsync 后,写入唯一的 `phase.end` 与 `evidence/evidence-cutoff.json`(`eventCount` + `sha256` + `frozenAt`)。cutoff 之后**禁止再向归档 events.ndjson 追加任何事件**;后续校验结果与 manifest 比对只写入 finalize JSON payload 与 maintenance outbox,不回写事件流。collect 是纯函数:stage/timeline/durations 全部由冻结事件推导,**不存在选择性 patch 步骤**。
|
|
160
153
|
|
|
161
154
|
两层 validator 顺序执行,任何一层失败都恢复原 change 目录并非零退出:
|
|
162
155
|
|
|
163
|
-
1. **source consistency**(`validate_source_consistency
|
|
164
|
-
2. **
|
|
156
|
+
1. **source consistency**(`validate_source_consistency`):summary 事实对照冻结来源——`event_count` 对 cutoff、verification 对 ledger typed metrics projection、review 计数对 sidecars。结果写入 `reportPipeline.sourceConsistency = {ok, issues}`;`ok=false` 时 issue code 含 `event-count-mismatch` / `verification-mismatch`。
|
|
157
|
+
2. **summary consistency**(`validate_summary_data`):检查最终状态与验证结果是否矛盾,以及结构化字段是否满足归档要求。
|
|
165
158
|
|
|
166
159
|
## versioned repair(不改写原归档)
|
|
167
160
|
|
|
@@ -171,14 +164,14 @@ finalize 在 collect 之前**冻结事件事实**:所有 archive-fact 事件
|
|
|
171
164
|
python harness/scripts/harness_archive.py repair --archive-dir ".harness/archive/<archive-id>" --json
|
|
172
165
|
```
|
|
173
166
|
|
|
174
|
-
repair 先在 archive 外生成候选 derived version
|
|
167
|
+
repair 先在 archive 外生成候选 derived version。来源校验与数据校验均通过后,才以不可变新版本写入 `derived/v<N>/{summary-data.json, repair-record.json}`,并把 `derived/authoritative.json` pointer 指向该版本;**原 summary-data.json 与 manifest 永不覆盖**。知识层只从 authoritative pointer 指向且 hash 校验通过的版本提取条目。
|
|
175
168
|
|
|
176
169
|
## 归档包与服务端知识 ingest(§8)
|
|
177
170
|
|
|
178
171
|
archive close 的破坏性事务只执行确定性 close:
|
|
179
172
|
|
|
180
173
|
```text
|
|
181
|
-
status -> manifest -> move -> collect ->
|
|
174
|
+
execute(one-shot status + gate) -> manifest -> move -> collect -> validate -> compare
|
|
182
175
|
-> 生成确定性核心 ZIP -> 上传并等待服务端持久化/ingest 收据 -> stop AI service -> return
|
|
183
176
|
```
|
|
184
177
|
|
|
@@ -200,4 +193,4 @@ CONDITIONAL_OK
|
|
|
200
193
|
|
|
201
194
|
run/test 本轮新增、更新或安全修复且被 `.gitignore` 忽略的测试,必须先由 `test-tracking.json` + `harness_test_guard.py stage` 精确提交;这类测试不得继续作为“未提交证据”收尾,也不得计入可复用 P0 验证后随 worktree 删除。
|
|
202
195
|
|
|
203
|
-
`uncommittedTestEvidence` 只兼容历史归档或明确只读的外部证据:归档到 `backups/uncommitted-tests/`,记录文件名、验证范围与未提交原因,并在
|
|
196
|
+
`uncommittedTestEvidence` 只兼容历史归档或明确只读的外部证据:归档到 `backups/uncommitted-tests/`,记录文件名、验证范围与未提交原因,并在 `summary-data.json` 中记录风险。若它是本轮可修改的回归测试,则 archive 必须阻断并要求先走精确跟踪流程。
|
|
@@ -66,11 +66,11 @@ description: harness 全流程的证据化报告协议。所有 skill 输出必
|
|
|
66
66
|
| `To <remote>` + 推送范围 | ✅ 推送成功 |
|
|
67
67
|
| 无输出 | ❌ 状态未知 |
|
|
68
68
|
|
|
69
|
-
##
|
|
69
|
+
## summary-data.json 状态映射
|
|
70
70
|
|
|
71
|
-
|
|
71
|
+
平台监控直接读取 `summary-data.json`。本地归档不再生成重复的 HTML 报告。
|
|
72
72
|
|
|
73
|
-
归档前必须执行 `harness_archive.py finalize` 内嵌 validate
|
|
73
|
+
归档前必须执行 `harness_archive.py finalize` 内嵌 validate,或使用 `harness_archive.py replay` 做等价校验。只有 validate 无 error 时,才能宣称报告数据有效;validate error 不得被写成 WARN 或「已完成」。
|
|
74
74
|
|
|
75
75
|
| 数据来源 | 无报告时 |
|
|
76
76
|
|----------|----------|
|
|
@@ -122,7 +122,7 @@ harness-review 对代码/变更的审查发现按风险分级,反映的是**
|
|
|
122
122
|
| 标记 | 含义 | 适用场景 |
|
|
123
123
|
|:----:|------|----------|
|
|
124
124
|
| CONDITIONAL_OK | 条件性通过 | API 测试 `USER_SKIPPED` 或 DB 兼容性 `BLOCKED_BY_DBA` 时的归档最终状态,不得写纯 OK,必须在 knownRisks/manualActions 说明风险接受与后续人工动作 |
|
|
125
|
-
| 🔁REUSED | 复用前阶段结果 | 复用了前一阶段验证结果,
|
|
125
|
+
| 🔁REUSED | 复用前阶段结果 | 复用了前一阶段验证结果,summary-data 必须显式标记,不得伪装成重新执行 |
|
|
126
126
|
| 📝ADVISORY | 参考性未运行 | review 参考性意见,未作为门禁执行 |
|
|
127
127
|
| ⏭️ | 用户选择跳过 | 用户主动选择跳过某步骤(如仅本地 commit 不 push、跳过 test/review) |
|
|
128
128
|
|
|
@@ -131,4 +131,4 @@ harness-review 对代码/变更的审查发现按风险分级,反映的是**
|
|
|
131
131
|
- skill 执行状态回答"这个步骤跑没跑、成没成";
|
|
132
132
|
- review 发现严重级回答"被审查的东西有没有问题、问题多大";
|
|
133
133
|
- 条件态/跳过态回答"这个步骤的最终结论是什么特殊情况"。
|
|
134
|
-
- 三者独立:例如 test skill 可 ✅OK 执行成功,但 review 发现其覆盖的代码存在 RED 问题;又如 archive 可因 `USER_SKIPPED` 给出 CONDITIONAL_OK,同时 review 发现为 YELLOW。
|
|
134
|
+
- 三者独立:例如 test skill 可 ✅OK 执行成功,但 review 发现其覆盖的代码存在 RED 问题;又如 archive 可因 `USER_SKIPPED` 给出 CONDITIONAL_OK,同时 review 发现为 YELLOW。summary-data 必须分别记录,不得用一个维度覆盖另一个。
|
|
@@ -14,7 +14,7 @@ description: verification-ledger、diffHash、service-fingerprint 的统一协
|
|
|
14
14
|
- run 跑过测试命令(如 `mvn test`/`pytest`),test 阶段又原样跑一遍——浪费 3~8 分钟
|
|
15
15
|
- submit/package 各自再 compile+test 一次——同一 diff 被验证三四轮
|
|
16
16
|
- test 通过后用户改了一行注释/删了一个未用 import,package 不知道该不该重测,干脆全量重跑
|
|
17
|
-
-
|
|
17
|
+
- 阶段汇总只展示全绿时,看不出哪些是「重新执行」、哪些是「复用」、哪些是「小改动后复用」
|
|
18
18
|
|
|
19
19
|
verification-ledger 把每次验证(compile / unit test / api test / package)的**结果 + 证据 + 作用范围 + diffHash** 记下来,后续阶段先读 ledger 再决定是否重跑。
|
|
20
20
|
|
|
@@ -255,13 +255,13 @@ API 测试: 🔁 复用上一轮结果(diffHash 未变 / 仅清理性变更)
|
|
|
255
255
|
| harness-run | 步骤 2 前读(确认是否已有 compile/unitTest 可复用) | 步骤 2 后写 compile + unitTest(若跑了全量测试) |
|
|
256
256
|
| harness-test | Phase 1 前读(复用 run 的 unitTest) | Phase 1/2 后写 unitTest + apiTest |
|
|
257
257
|
| harness-submit | 验证前读(复用 test 的 compile/unitTest) | 若重跑则写回 |
|
|
258
|
-
| harness-archive |
|
|
258
|
+
| harness-archive | 归档前读(汇总各阶段状态,写入 `summary-data.json` 并上传平台) | 不写(归档时一并移入 archive) |
|
|
259
259
|
|
|
260
|
-
##
|
|
260
|
+
## 八、状态与归档投影的对应
|
|
261
261
|
|
|
262
|
-
ledger 的 `status` 与
|
|
262
|
+
ledger 的 `status` 与 `summary-data.json`、平台监控中的展示状态对应:
|
|
263
263
|
|
|
264
|
-
| ledger status | 含义 |
|
|
264
|
+
| ledger status | 含义 | 归档与平台标记 |
|
|
265
265
|
|:---:|------|------|
|
|
266
266
|
| `OK`(本阶段真实执行并通过) | 真实验证 | ✅OK |
|
|
267
267
|
| `OK` 但本阶段复用了前一阶段 | 复用 | 🔁REUSED |
|
|
@@ -270,7 +270,7 @@ ledger 的 `status` 与 final-summary 展示状态对应:
|
|
|
270
270
|
| `ADVISORY` | review 参考性 | 📝ADVISORY |
|
|
271
271
|
| postTestClassification=NON_BEHAVIORAL_CLEANUP | 小清理 | 🧹NON_BEHAVIORAL_CLEANUP |
|
|
272
272
|
|
|
273
|
-
|
|
273
|
+
**强制规则**:任何阶段若复用了前一阶段结果,`summary-data.json` 与平台监控必须显示 `🔁REUSED`,**不得伪装成重新执行**。
|
|
274
274
|
|
|
275
275
|
## 九、Ledger v2(cluster 2)
|
|
276
276
|
|
|
@@ -329,7 +329,7 @@ v2 契约下 `record` 写入前强制解析并校验顶层身份字段,缺失
|
|
|
329
329
|
| `schemaVersion` | 固定 `3` |
|
|
330
330
|
| `repositoryId` | `harness_paths.repository_identity(repo_root)`(远端规范化 + root commit;无远端回退 git common-dir,跨 worktree 稳定,RET-09) |
|
|
331
331
|
| `changeName` | change 目录名 |
|
|
332
|
-
| `baseCommit` | `--base-commit` → 既有 ledger 值 → `
|
|
332
|
+
| `baseCommit` | `--base-commit` → 既有 ledger 值 → `state-snapshot.json.changeBase`。只有全新 change 的首次 ledger 写入可以用当时 HEAD 建立基线;旧 ledger 迁移缺少以上三种证据时必须报错,禁止用迁移时的当前 HEAD 猜测基线 |
|
|
333
333
|
| `currentHead` | `git rev-parse --verify HEAD`(验证执行时) |
|
|
334
334
|
| `diffHash` | `--diff-hash` → 既有 ledger 值 → 按 ownership 范围重算(§10.3) |
|
|
335
335
|
| `ownershipHash` | 契约 `ownership` 段规范化 JSON 的 sha256 |
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
---
|
|
2
|
-
description: 结构化事件、summary-data
|
|
2
|
+
description: 结构化事件、summary-data 生成与校验,以及外部可观测性边界协议(finalize/replay)。
|
|
3
3
|
---
|
|
4
4
|
|
|
5
5
|
# Report Pipeline Protocol
|
|
@@ -10,7 +10,7 @@ description: 结构化事件、summary-data 生成、final-summary 校验和外
|
|
|
10
10
|
|
|
11
11
|
1. **Event Layer**:`events.ndjson` 记录结构化执行事实。
|
|
12
12
|
2. **Report Data Layer**:`summary-data.json` 由程序或确定性规则生成。
|
|
13
|
-
3. **
|
|
13
|
+
3. **Platform View Layer**:Hunter Platform 读取 `summary-data.json` 并展示结果,不在本地保存重复报告。
|
|
14
14
|
|
|
15
15
|
模型可以写维护者结论、风险解释和人工判断,但不得凭印象手写统计数字、通过率、耗时、命令结果或 artifact hash。
|
|
16
16
|
|
|
@@ -19,12 +19,12 @@ description: 结构化事件、summary-data 生成、final-summary 校验和外
|
|
|
19
19
|
Skill-bundled 脚本(推荐):
|
|
20
20
|
|
|
21
21
|
```powershell
|
|
22
|
-
python <skills-root>/scripts/harness_archive.py
|
|
22
|
+
python <skills-root>/scripts/harness_archive.py execute --change-dir ".harness/changes/<change-name>" --archive-root ".harness/archive" --intent record-only --closure completed --json
|
|
23
23
|
python <skills-root>/scripts/harness_archive.py replay --archive-dir ".harness/archive/YYYY-MM-DD-<change-name>" --json
|
|
24
24
|
python <skills-root>/scripts/harness_events.py append --change-dir ".harness/changes/<change-name>" --phase "<phase>" --type <type> [--note "..."]
|
|
25
25
|
```
|
|
26
26
|
|
|
27
|
-
|
|
27
|
+
归档报告流水线的常规入口是 `execute`。它只采集一次状态并复用给内部 finalize;`collect` 与 `validate` 是 finalize 的内嵌同进程步骤,**不作为独立 CLI 暴露**(不存在 `report collect` / `report validate` 子命令)。`summary-data.json` 只能由 finalize(归档时)或 `replay`(回放时)生成;**禁止 agent 临场手写或拼装等价的 `summary-data.json`**。`harness_archive.py` 不可用时归档失败退出,不得退回手写汇总。
|
|
28
28
|
|
|
29
29
|
## events.ndjson
|
|
30
30
|
|
|
@@ -141,15 +141,16 @@ summary-data 必须保留原 archive final report 维度,并增加事件层摘
|
|
|
141
141
|
|
|
142
142
|
新增 `reportPipeline` 不替代这些字段;它负责为这些字段提供可追溯的数据来源和一致性校验结果。
|
|
143
143
|
|
|
144
|
-
##
|
|
144
|
+
## execute 与 finalize 责任边界
|
|
145
|
+
|
|
146
|
+
`execute` 负责一次性状态采集、自动门禁、准备耗时事件和对 finalize 的单次调用。常规调用者不得串行执行 `auto-gate`、`status`、`finalize`。finalize 负责正式归档尝试,并复用 execute 传入的预检结果。
|
|
145
147
|
|
|
146
148
|
| 阶段 | 责任 | 写入 |
|
|
147
149
|
|---|---|---|
|
|
148
150
|
| `collect` | 从 events/ledger/log/manifest/report/git evidence 收集事实 | `summary-data.json` |
|
|
149
|
-
| `
|
|
150
|
-
| `validate` | 检查 final-summary 是否覆盖 summary-data 关键事实 | issues;不得静默忽略 error |
|
|
151
|
+
| `validate` | 检查 summary-data 的身份、验证状态与事实是否一致 | issues;不得静默忽略 error |
|
|
151
152
|
|
|
152
|
-
> **已废弃**:独立 `enrich` 步骤与 `harness-report` skill
|
|
153
|
+
> **已废弃**:独立 `enrich` 步骤与 `harness-report` skill;报告生成并入 finalize,常规归档由 `execute` 调用。回放见 `harness_archive.py replay`。
|
|
153
154
|
|
|
154
155
|
`validate` error 存在时,`harness-archive` 不得删除原 changes 目录。
|
|
155
156
|
|
|
@@ -168,4 +169,4 @@ summary-data 必须保留原 archive final report 维度,并增加事件层摘
|
|
|
168
169
|
|
|
169
170
|
- 可保留 `reportPipeline.externalTraceRefs[]` 等扩展字段。
|
|
170
171
|
- 不得要求外部服务可用才允许 archive 成功。
|
|
171
|
-
- 未来接入也必须以 `events.ndjson` 和 `summary-data.json`
|
|
172
|
+
- 未来接入也必须以 `events.ndjson` 和 `summary-data.json` 为稳定合同,不改变结构化报告的质量维度。
|
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
---
|
|
2
|
-
description: harness 全流程的敏感信息脱敏协议。所有 skill 的输出(控制台、execution-log、报告、commit message、
|
|
2
|
+
description: harness 全流程的敏感信息脱敏协议。所有 skill 的输出(控制台、execution-log、报告、commit message、summary-data)按本协议脱敏,禁止明文 token/密码/密钥。由原 harness-plan/sensitive-info.md 迁移。
|
|
3
3
|
---
|
|
4
4
|
|
|
5
5
|
# Sensitive Info Protocol
|
|
6
6
|
|
|
7
|
-
> 本协议适用于所有 harness-skills 的输出(控制台、execution-log.md、package-report、review-report、
|
|
7
|
+
> 本协议适用于所有 harness-skills 的输出(控制台、execution-log.md、package-report、review-report、summary-data.json、commit message)。
|
|
8
8
|
|
|
9
9
|
## 1. 禁止明文输出的信息类型
|
|
10
10
|
|
|
@@ -49,7 +49,7 @@ description: harness 全流程的敏感信息脱敏协议。所有 skill 的输
|
|
|
49
49
|
| 执行日志 | `.harness/changes/<change-name>/logs/execution-log.md` |
|
|
50
50
|
| 审查报告 | `.harness/changes/<change-name>/reports/review/review-report-*.md` |
|
|
51
51
|
| 测试报告 | `.harness/changes/<change-name>/reports/test/test-report-*.md` |
|
|
52
|
-
|
|
|
52
|
+
| 最终总结数据 | `.harness/archive/YYYY-MM-DD-<change-name>/reports/final/summary-data.json` |
|
|
53
53
|
| 归档元数据 | `.harness/archive/YYYY-MM-DD-<change-name>/meta/archive-meta.md` |
|
|
54
54
|
| Commit message | git log 中的提交信息 |
|
|
55
55
|
|
|
@@ -55,8 +55,7 @@ description: harness .harness 状态目录分层协议。用于减少根目录
|
|
|
55
55
|
│ ├── review/
|
|
56
56
|
│ ├── package/
|
|
57
57
|
│ └── final/
|
|
58
|
-
│
|
|
59
|
-
│ └── final-summary.html
|
|
58
|
+
│ └── summary-data.json
|
|
60
59
|
├── sqls/
|
|
61
60
|
├── scripts/
|
|
62
61
|
├── runtime/
|
|
@@ -117,7 +116,6 @@ package SHA-256,且服务端同时确认 `archive_status=durable` 与
|
|
|
117
116
|
| worktree | `meta/worktree.json` | `worktree.json` |
|
|
118
117
|
| run status | `evidence/run-task-status.md` | `run-task-status.md` |
|
|
119
118
|
| final summary data | `reports/final/summary-data.json` | `summary-data.json` |
|
|
120
|
-
| final report | `reports/final/final-summary.html` | `final-summary.html` |
|
|
121
119
|
|
|
122
120
|
## 写入规则
|
|
123
121
|
|
|
@@ -143,7 +141,7 @@ package SHA-256,且服务端同时确认 `archive_status=durable` 与
|
|
|
143
141
|
|
|
144
142
|
## state-snapshot.json(cluster 3 §3.6)
|
|
145
143
|
|
|
146
|
-
`meta/state-snapshot.json`(由 `harness_state.py` 写入)集中记录 project/worktree root
|
|
144
|
+
`meta/state-snapshot.json`(由 `harness_state.py` 写入)集中记录 project/worktree root、不可变 `changeBase`、当前 HEAD,以及 profile/rules/map/knowledge/diff 各段指纹与相关文件。Plan 首次捕获把当时 HEAD 写入 `changeBase`;run/test/review/submit/archive 刷新时只能更新当前 HEAD 和各段指纹。失效时由脚本刷新,**不得仅凭缓存跳过代码或验证门禁,也不得把后续 HEAD 覆盖为变更基线**。
|
|
147
145
|
|
|
148
146
|
schema:
|
|
149
147
|
|
|
@@ -152,6 +150,7 @@ schema:
|
|
|
152
150
|
"schemaVersion": 1,
|
|
153
151
|
"generatedAt": "<iso>",
|
|
154
152
|
"changeName": "<change-name>",
|
|
153
|
+
"changeBase": "<首次 Plan 捕获的 sha>",
|
|
155
154
|
"project": {"root": "<abs>"},
|
|
156
155
|
"worktree": {"root": "<abs>"},
|
|
157
156
|
"git": {"base": "<sha>", "head": "<sha>"},
|
|
@@ -161,13 +160,13 @@ schema:
|
|
|
161
160
|
}
|
|
162
161
|
```
|
|
163
162
|
|
|
164
|
-
各段独立失效:`is_segment_stale(snapshot, segment, current_fingerprint)` 比较单段指纹;段不存在 → stale(需采集)。`refresh_segments(..., segments=["profile"])` 只重采受影响段,其他段保留原 capturedAt/fingerprint
|
|
163
|
+
各段独立失效:`is_segment_stale(snapshot, segment, current_fingerprint)` 比较单段指纹;段不存在 → stale(需采集)。`refresh_segments(..., segments=["profile"])` 只重采受影响段,其他段保留原 capturedAt/fingerprint(缓存失效只重采受影响段)。`git.base` 是 `changeBase` 的兼容镜像,不是每次 capture 的 HEAD。
|
|
165
164
|
|
|
166
165
|
segment 的文件集由调用方(各 skill)决定:`capture_snapshot(..., segment_files={"profile": [...], "rules": [...]})`。snapshot 只负责采集 + 比对 + 失效,不负责发现文件。git 段记录 base/head;diff 段指纹由调用方按需用 `harness_ledger.compute_diff_hash` 采集后填入 segment_files。
|
|
167
166
|
|
|
168
167
|
## archive 结构
|
|
169
168
|
|
|
170
|
-
archive 后保持同样分层结构,不把 `.bak`、脚本、manifest
|
|
169
|
+
archive 后保持同样分层结构,不把 `.bak`、脚本、manifest 或其他生成文件堆在 archive 根目录。
|
|
171
170
|
|
|
172
171
|
未提交但用于验证的测试文件放入:
|
|
173
172
|
|