hunter-harness 0.1.2 → 0.2.0
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/LICENSE +21 -21
- package/README.md +11 -0
- package/dist/bin.js +955 -318
- package/package.json +1 -1
- package/resources/harness/bundles/general/claude-code/.harness-build.json +6 -0
- package/resources/harness/{general → bundles/general/claude-code}/agents/harness-reviewer.md +2 -2
- package/resources/harness/{general → bundles/general/claude-code}/harness-archive/SKILL.md +1 -1
- package/resources/harness/{java → bundles/general/claude-code}/harness-codebase-map/SKILL.md +1 -1
- package/resources/harness/{java → bundles/general/claude-code}/harness-knowledge-ingest/SKILL.md +1 -1
- package/resources/harness/{general → bundles/general/claude-code}/harness-knowledge-ingest/reference.md +1 -1
- package/resources/harness/{general → bundles/general/claude-code}/harness-knowledge-query/SKILL.md +1 -1
- package/resources/harness/{general → bundles/general/claude-code}/harness-plan/SKILL.md +1 -1
- package/resources/harness/{java → bundles/general/claude-code}/harness-review/SKILL.md +8 -4
- package/resources/harness/{general → bundles/general/claude-code}/harness-review/checklist.md +3 -3
- package/resources/harness/{general → bundles/general/claude-code}/harness-run/SKILL.md +1 -1
- package/resources/harness/{general → bundles/general/claude-code}/harness-run/checklist.md +1 -1
- package/resources/harness/{general → bundles/general/claude-code}/harness-run/reference.md +2 -2
- package/resources/harness/{general → bundles/general/claude-code}/harness-submit/SKILL.md +1 -1
- package/resources/harness/{java → bundles/general/claude-code}/harness-sync/SKILL.md +2 -2
- package/resources/harness/{general → bundles/general/claude-code}/harness-sync/reference.md +7 -7
- package/resources/harness/{general → bundles/general/claude-code}/harness-test/SKILL.md +1 -1
- package/resources/harness/{general → bundles/general/claude-code}/harness-test/checklist.md +1 -1
- package/resources/harness/{java → bundles/general/claude-code}/scripts/harness_archive.py +2300 -2300
- package/resources/harness/{general → bundles/general/claude-code}/scripts/harness_deploy.py +74 -13
- package/resources/harness/{general → bundles/general/claude-code}/scripts/harness_events.py +680 -680
- package/resources/harness/{general → bundles/general/claude-code}/scripts/harness_ledger.py +660 -660
- package/resources/harness/{java → bundles/general/claude-code}/scripts/harness_preflight.py +765 -765
- package/resources/harness/{general → bundles/general/claude-code}/scripts/harness_service.py +1331 -1331
- package/resources/harness/bundles/general/codebuddy/.harness-build.json +6 -0
- package/resources/harness/bundles/general/codebuddy/agents/harness-evaluator.md +94 -0
- package/resources/harness/bundles/general/codebuddy/agents/harness-explorer.md +53 -0
- package/resources/harness/bundles/general/codebuddy/agents/harness-reviewer.md +52 -0
- package/resources/harness/bundles/general/codebuddy/harness-archive/SKILL.md +198 -0
- package/resources/harness/bundles/general/codebuddy/harness-codebase-map/SKILL.md +95 -0
- package/resources/harness/bundles/general/codebuddy/harness-knowledge-ingest/SKILL.md +229 -0
- package/resources/harness/{java → bundles/general/codebuddy}/harness-knowledge-ingest/reference.md +1 -1
- package/resources/harness/bundles/general/codebuddy/harness-knowledge-query/SKILL.md +147 -0
- package/resources/harness/bundles/general/codebuddy/harness-plan/SKILL.md +109 -0
- package/resources/harness/bundles/general/codebuddy/harness-review/SKILL.md +142 -0
- package/resources/harness/{java → bundles/general/codebuddy}/harness-review/checklist.md +3 -3
- package/resources/harness/bundles/general/codebuddy/harness-run/SKILL.md +113 -0
- package/resources/harness/bundles/general/codebuddy/harness-run/checklist.md +259 -0
- package/resources/harness/bundles/general/codebuddy/harness-run/reference.md +834 -0
- package/resources/harness/bundles/general/codebuddy/harness-submit/SKILL.md +142 -0
- package/resources/harness/bundles/general/codebuddy/harness-sync/SKILL.md +65 -0
- package/resources/harness/{java → bundles/general/codebuddy}/harness-sync/reference.md +7 -7
- package/resources/harness/bundles/general/codebuddy/harness-test/SKILL.md +160 -0
- package/resources/harness/bundles/general/codebuddy/harness-test/checklist.md +319 -0
- package/resources/harness/bundles/general/codebuddy/harness-test/reference.md +791 -0
- package/resources/harness/{general → bundles/general/codebuddy}/scripts/harness_archive.py +2300 -2300
- package/resources/harness/{java → bundles/general/codebuddy}/scripts/harness_deploy.py +74 -13
- package/resources/harness/{java → bundles/general/codebuddy}/scripts/harness_events.py +680 -680
- package/resources/harness/{java → bundles/general/codebuddy}/scripts/harness_ledger.py +660 -660
- package/resources/harness/{general → bundles/general/codebuddy}/scripts/harness_preflight.py +765 -765
- package/resources/harness/{java → bundles/general/codebuddy}/scripts/harness_service.py +1331 -1331
- package/resources/harness/bundles/general/codex/.harness-build.json +6 -0
- package/resources/harness/bundles/general/codex/CONTEXT.md +65 -0
- package/resources/harness/bundles/general/codex/README.md +478 -0
- package/resources/harness/bundles/general/codex/harness-archive/SKILL.md +198 -0
- package/resources/harness/bundles/general/codex/harness-archive/checklist.md +52 -0
- package/resources/harness/bundles/general/codex/harness-archive/reference.md +103 -0
- package/resources/harness/bundles/general/codex/harness-archive/scripts/gen-manifest.ps1 +31 -0
- package/resources/harness/bundles/general/codex/harness-archive/templates/render-summary.mjs +171 -0
- package/resources/harness/bundles/general/codex/harness-archive/templates/summary-data-template.json +128 -0
- package/resources/harness/bundles/general/codex/harness-codebase-map/SKILL.md +95 -0
- package/resources/harness/bundles/general/codex/harness-codebase-map/checklist.md +126 -0
- package/resources/harness/bundles/general/codex/harness-codebase-map/reference.md +364 -0
- package/resources/harness/bundles/general/codex/harness-codebase-map/templates/ARCHITECTURE.md +57 -0
- package/resources/harness/bundles/general/codex/harness-codebase-map/templates/CONCERNS.md +49 -0
- package/resources/harness/bundles/general/codex/harness-codebase-map/templates/CONVENTIONS.md +57 -0
- package/resources/harness/bundles/general/codex/harness-codebase-map/templates/INTEGRATIONS.md +52 -0
- package/resources/harness/bundles/general/codex/harness-codebase-map/templates/STACK.md +55 -0
- package/resources/harness/bundles/general/codex/harness-codebase-map/templates/STRUCTURE.md +69 -0
- package/resources/harness/bundles/general/codex/harness-codebase-map/templates/TESTING.md +64 -0
- package/resources/harness/bundles/general/codex/harness-codebase-map/templates/map-manifest.schema.json +73 -0
- package/resources/harness/bundles/general/codex/harness-codebase-map/templates/map-summary.md +64 -0
- package/resources/harness/bundles/general/codex/harness-knowledge-ingest/SKILL.md +229 -0
- package/resources/harness/bundles/general/codex/harness-knowledge-ingest/design.md +842 -0
- package/resources/harness/bundles/general/codex/harness-knowledge-ingest/evaluations/harness_knowledge_evaluation.xml +42 -0
- package/resources/harness/bundles/general/codex/harness-knowledge-ingest/mcp-config.example.json +10 -0
- package/resources/harness/bundles/general/codex/harness-knowledge-ingest/reference.md +309 -0
- package/resources/harness/bundles/general/codex/harness-knowledge-ingest/scripts/harness_knowledge.py +4082 -0
- package/resources/harness/bundles/general/codex/harness-knowledge-ingest/scripts/harness_knowledge_mcp.py +273 -0
- package/resources/harness/bundles/general/codex/harness-knowledge-query/SKILL.md +147 -0
- package/resources/harness/bundles/general/codex/harness-plan/SKILL.md +109 -0
- package/resources/harness/bundles/general/codex/harness-plan/checklist.md +243 -0
- package/resources/harness/bundles/general/codex/harness-plan/protocols.md +124 -0
- package/resources/harness/bundles/general/codex/harness-plan/reference.md +376 -0
- package/resources/harness/bundles/general/codex/harness-review/SKILL.md +137 -0
- package/resources/harness/bundles/general/codex/harness-review/checklist.md +124 -0
- package/resources/harness/bundles/general/codex/harness-review/protocols.md +68 -0
- package/resources/harness/bundles/general/codex/harness-review/reference.md +86 -0
- package/resources/harness/bundles/general/codex/harness-run/SKILL.md +113 -0
- package/resources/harness/bundles/general/codex/harness-run/checklist.md +259 -0
- package/resources/harness/bundles/general/codex/harness-run/protocols.md +78 -0
- package/resources/harness/bundles/general/codex/harness-run/reference.md +834 -0
- package/resources/harness/bundles/general/codex/harness-submit/SKILL.md +142 -0
- package/resources/harness/bundles/general/codex/harness-submit/checklist.md +407 -0
- package/resources/harness/bundles/general/codex/harness-submit/reference.md +152 -0
- package/resources/harness/bundles/general/codex/harness-sync/SKILL.md +65 -0
- package/resources/harness/bundles/general/codex/harness-sync/reference.md +153 -0
- package/resources/harness/bundles/general/codex/harness-test/SKILL.md +160 -0
- package/resources/harness/bundles/general/codex/harness-test/checklist.md +319 -0
- package/resources/harness/bundles/general/codex/harness-test/pitfalls.md +260 -0
- package/resources/harness/bundles/general/codex/harness-test/reference.md +791 -0
- package/resources/harness/bundles/general/codex/protocols/archive-report-protocol.md +175 -0
- package/resources/harness/bundles/general/codex/protocols/evidence-based-reporting-protocol.md +134 -0
- package/resources/harness/bundles/general/codex/protocols/ledger-protocol.md +270 -0
- package/resources/harness/bundles/general/codex/protocols/powershell-protocol.md +181 -0
- package/resources/harness/bundles/general/codex/protocols/report-pipeline-protocol.md +150 -0
- package/resources/harness/bundles/general/codex/protocols/sensitive-info-protocol.md +92 -0
- package/resources/harness/bundles/general/codex/protocols/state-layout-protocol.md +131 -0
- package/resources/harness/bundles/general/codex/protocols/submit-protocol.md +78 -0
- package/resources/harness/bundles/general/codex/scripts/harness_archive.py +2319 -0
- package/resources/harness/bundles/general/codex/scripts/harness_deploy.py +674 -0
- package/resources/harness/bundles/general/codex/scripts/harness_events.py +680 -0
- package/resources/harness/bundles/general/codex/scripts/harness_ledger.py +671 -0
- package/resources/harness/bundles/general/codex/scripts/harness_preflight.py +780 -0
- package/resources/harness/bundles/general/codex/scripts/harness_service.py +1331 -0
- package/resources/harness/bundles/general/cursor/.harness-build.json +6 -0
- package/resources/harness/bundles/general/cursor/CONTEXT.md +65 -0
- package/resources/harness/bundles/general/cursor/README.md +478 -0
- package/resources/harness/bundles/general/cursor/harness-archive/SKILL.md +198 -0
- package/resources/harness/bundles/general/cursor/harness-archive/checklist.md +52 -0
- package/resources/harness/bundles/general/cursor/harness-archive/reference.md +103 -0
- package/resources/harness/bundles/general/cursor/harness-archive/scripts/gen-manifest.ps1 +31 -0
- package/resources/harness/bundles/general/cursor/harness-archive/templates/render-summary.mjs +171 -0
- package/resources/harness/bundles/general/cursor/harness-archive/templates/summary-data-template.json +128 -0
- package/resources/harness/bundles/general/cursor/harness-codebase-map/SKILL.md +95 -0
- package/resources/harness/bundles/general/cursor/harness-codebase-map/checklist.md +126 -0
- package/resources/harness/bundles/general/cursor/harness-codebase-map/reference.md +364 -0
- package/resources/harness/bundles/general/cursor/harness-codebase-map/templates/ARCHITECTURE.md +57 -0
- package/resources/harness/bundles/general/cursor/harness-codebase-map/templates/CONCERNS.md +49 -0
- package/resources/harness/bundles/general/cursor/harness-codebase-map/templates/CONVENTIONS.md +57 -0
- package/resources/harness/bundles/general/cursor/harness-codebase-map/templates/INTEGRATIONS.md +52 -0
- package/resources/harness/bundles/general/cursor/harness-codebase-map/templates/STACK.md +55 -0
- package/resources/harness/bundles/general/cursor/harness-codebase-map/templates/STRUCTURE.md +69 -0
- package/resources/harness/bundles/general/cursor/harness-codebase-map/templates/TESTING.md +64 -0
- package/resources/harness/bundles/general/cursor/harness-codebase-map/templates/map-manifest.schema.json +73 -0
- package/resources/harness/bundles/general/cursor/harness-codebase-map/templates/map-summary.md +64 -0
- package/resources/harness/bundles/general/cursor/harness-knowledge-ingest/SKILL.md +229 -0
- package/resources/harness/bundles/general/cursor/harness-knowledge-ingest/design.md +842 -0
- package/resources/harness/bundles/general/cursor/harness-knowledge-ingest/evaluations/harness_knowledge_evaluation.xml +42 -0
- package/resources/harness/bundles/general/cursor/harness-knowledge-ingest/mcp-config.example.json +10 -0
- package/resources/harness/bundles/general/cursor/harness-knowledge-ingest/reference.md +309 -0
- package/resources/harness/bundles/general/cursor/harness-knowledge-ingest/scripts/harness_knowledge.py +4082 -0
- package/resources/harness/bundles/general/cursor/harness-knowledge-ingest/scripts/harness_knowledge_mcp.py +273 -0
- package/resources/harness/bundles/general/cursor/harness-knowledge-query/SKILL.md +147 -0
- package/resources/harness/bundles/general/cursor/harness-plan/SKILL.md +109 -0
- package/resources/harness/bundles/general/cursor/harness-plan/checklist.md +243 -0
- package/resources/harness/bundles/general/cursor/harness-plan/protocols.md +124 -0
- package/resources/harness/bundles/general/cursor/harness-plan/reference.md +376 -0
- package/resources/harness/bundles/general/cursor/harness-review/SKILL.md +137 -0
- package/resources/harness/bundles/general/cursor/harness-review/checklist.md +124 -0
- package/resources/harness/bundles/general/cursor/harness-review/protocols.md +68 -0
- package/resources/harness/bundles/general/cursor/harness-review/reference.md +86 -0
- package/resources/harness/bundles/general/cursor/harness-run/SKILL.md +113 -0
- package/resources/harness/bundles/general/cursor/harness-run/checklist.md +259 -0
- package/resources/harness/bundles/general/cursor/harness-run/protocols.md +78 -0
- package/resources/harness/bundles/general/cursor/harness-run/reference.md +834 -0
- package/resources/harness/bundles/general/cursor/harness-submit/SKILL.md +142 -0
- package/resources/harness/bundles/general/cursor/harness-submit/checklist.md +407 -0
- package/resources/harness/bundles/general/cursor/harness-submit/reference.md +152 -0
- package/resources/harness/bundles/general/cursor/harness-sync/SKILL.md +65 -0
- package/resources/harness/bundles/general/cursor/harness-sync/reference.md +153 -0
- package/resources/harness/bundles/general/cursor/harness-test/SKILL.md +160 -0
- package/resources/harness/bundles/general/cursor/harness-test/checklist.md +319 -0
- package/resources/harness/bundles/general/cursor/harness-test/pitfalls.md +260 -0
- package/resources/harness/bundles/general/cursor/harness-test/reference.md +791 -0
- package/resources/harness/bundles/general/cursor/protocols/archive-report-protocol.md +175 -0
- package/resources/harness/bundles/general/cursor/protocols/evidence-based-reporting-protocol.md +134 -0
- package/resources/harness/bundles/general/cursor/protocols/ledger-protocol.md +270 -0
- package/resources/harness/bundles/general/cursor/protocols/powershell-protocol.md +181 -0
- package/resources/harness/bundles/general/cursor/protocols/report-pipeline-protocol.md +150 -0
- package/resources/harness/bundles/general/cursor/protocols/sensitive-info-protocol.md +92 -0
- package/resources/harness/bundles/general/cursor/protocols/state-layout-protocol.md +131 -0
- package/resources/harness/bundles/general/cursor/protocols/submit-protocol.md +78 -0
- package/resources/harness/bundles/general/cursor/scripts/harness_archive.py +2319 -0
- package/resources/harness/bundles/general/cursor/scripts/harness_deploy.py +674 -0
- package/resources/harness/bundles/general/cursor/scripts/harness_events.py +680 -0
- package/resources/harness/bundles/general/cursor/scripts/harness_ledger.py +671 -0
- package/resources/harness/bundles/general/cursor/scripts/harness_preflight.py +780 -0
- package/resources/harness/bundles/general/cursor/scripts/harness_service.py +1331 -0
- package/resources/harness/bundles/java/claude-code/.harness-build.json +6 -0
- package/resources/harness/bundles/java/claude-code/CONTEXT.md +65 -0
- package/resources/harness/bundles/java/claude-code/README.md +478 -0
- package/resources/harness/{java → bundles/java/claude-code}/agents/harness-reviewer.md +2 -2
- package/resources/harness/{java → bundles/java/claude-code}/harness-apidoc/SKILL.md +1 -1
- package/resources/harness/{java → bundles/java/claude-code}/harness-archive/SKILL.md +1 -1
- package/resources/harness/bundles/java/claude-code/harness-archive/checklist.md +52 -0
- package/resources/harness/bundles/java/claude-code/harness-archive/reference.md +103 -0
- package/resources/harness/bundles/java/claude-code/harness-archive/scripts/gen-manifest.ps1 +31 -0
- package/resources/harness/bundles/java/claude-code/harness-archive/templates/render-summary.mjs +171 -0
- package/resources/harness/bundles/java/claude-code/harness-archive/templates/summary-data-template.json +128 -0
- package/resources/harness/{general → bundles/java/claude-code}/harness-codebase-map/SKILL.md +1 -1
- package/resources/harness/bundles/java/claude-code/harness-codebase-map/checklist.md +126 -0
- package/resources/harness/bundles/java/claude-code/harness-codebase-map/reference.md +364 -0
- package/resources/harness/bundles/java/claude-code/harness-codebase-map/templates/ARCHITECTURE.md +57 -0
- package/resources/harness/bundles/java/claude-code/harness-codebase-map/templates/CONCERNS.md +49 -0
- package/resources/harness/bundles/java/claude-code/harness-codebase-map/templates/CONVENTIONS.md +57 -0
- package/resources/harness/bundles/java/claude-code/harness-codebase-map/templates/INTEGRATIONS.md +52 -0
- package/resources/harness/bundles/java/claude-code/harness-codebase-map/templates/STACK.md +55 -0
- package/resources/harness/bundles/java/claude-code/harness-codebase-map/templates/STRUCTURE.md +69 -0
- package/resources/harness/bundles/java/claude-code/harness-codebase-map/templates/TESTING.md +64 -0
- package/resources/harness/bundles/java/claude-code/harness-codebase-map/templates/map-manifest.schema.json +73 -0
- package/resources/harness/bundles/java/claude-code/harness-codebase-map/templates/map-summary.md +64 -0
- package/resources/harness/{general → bundles/java/claude-code}/harness-knowledge-ingest/SKILL.md +1 -1
- package/resources/harness/bundles/java/claude-code/harness-knowledge-ingest/design.md +842 -0
- package/resources/harness/bundles/java/claude-code/harness-knowledge-ingest/evaluations/harness_knowledge_evaluation.xml +42 -0
- package/resources/harness/bundles/java/claude-code/harness-knowledge-ingest/mcp-config.example.json +10 -0
- package/resources/harness/bundles/java/claude-code/harness-knowledge-ingest/reference.md +309 -0
- package/resources/harness/bundles/java/claude-code/harness-knowledge-ingest/scripts/harness_knowledge.py +4082 -0
- package/resources/harness/bundles/java/claude-code/harness-knowledge-ingest/scripts/harness_knowledge_mcp.py +273 -0
- package/resources/harness/{java → bundles/java/claude-code}/harness-knowledge-query/SKILL.md +1 -1
- package/resources/harness/{java → bundles/java/claude-code}/harness-package/SKILL.md +1 -1
- package/resources/harness/{java → bundles/java/claude-code}/harness-package/reference.md +1 -1
- package/resources/harness/{java → bundles/java/claude-code}/harness-plan/SKILL.md +1 -1
- package/resources/harness/bundles/java/claude-code/harness-plan/checklist.md +243 -0
- package/resources/harness/bundles/java/claude-code/harness-plan/protocols.md +124 -0
- package/resources/harness/bundles/java/claude-code/harness-plan/reference.md +376 -0
- package/resources/harness/{general → bundles/java/claude-code}/harness-review/SKILL.md +8 -4
- package/resources/harness/bundles/java/claude-code/harness-review/checklist.md +124 -0
- package/resources/harness/bundles/java/claude-code/harness-review/protocols.md +68 -0
- package/resources/harness/bundles/java/claude-code/harness-review/reference.md +86 -0
- package/resources/harness/{java → bundles/java/claude-code}/harness-run/SKILL.md +1 -1
- package/resources/harness/{java → bundles/java/claude-code}/harness-run/checklist.md +1 -1
- package/resources/harness/bundles/java/claude-code/harness-run/protocols.md +78 -0
- package/resources/harness/{java → bundles/java/claude-code}/harness-run/reference.md +2 -2
- package/resources/harness/{java → bundles/java/claude-code}/harness-submit/SKILL.md +1 -1
- package/resources/harness/bundles/java/claude-code/harness-submit/checklist.md +407 -0
- package/resources/harness/bundles/java/claude-code/harness-submit/reference.md +152 -0
- package/resources/harness/{general → bundles/java/claude-code}/harness-sync/SKILL.md +2 -2
- package/resources/harness/bundles/java/claude-code/harness-sync/reference.md +153 -0
- package/resources/harness/{java → bundles/java/claude-code}/harness-test/SKILL.md +1 -1
- package/resources/harness/{java → bundles/java/claude-code}/harness-test/checklist.md +316 -316
- package/resources/harness/bundles/java/claude-code/harness-test/pitfalls.md +260 -0
- package/resources/harness/{java → bundles/java/claude-code}/harness-test/reference.md +788 -788
- package/resources/harness/bundles/java/claude-code/protocols/archive-report-protocol.md +175 -0
- package/resources/harness/bundles/java/claude-code/protocols/evidence-based-reporting-protocol.md +134 -0
- package/resources/harness/bundles/java/claude-code/protocols/ledger-protocol.md +270 -0
- package/resources/harness/bundles/java/claude-code/protocols/powershell-protocol.md +181 -0
- package/resources/harness/bundles/java/claude-code/protocols/report-pipeline-protocol.md +150 -0
- package/resources/harness/bundles/java/claude-code/protocols/sensitive-info-protocol.md +92 -0
- package/resources/harness/bundles/java/claude-code/protocols/state-layout-protocol.md +131 -0
- package/resources/harness/bundles/java/claude-code/protocols/submit-protocol.md +78 -0
- package/resources/harness/bundles/java/claude-code/scripts/harness_archive.py +2319 -0
- package/resources/harness/bundles/java/claude-code/scripts/harness_deploy.py +674 -0
- package/resources/harness/bundles/java/claude-code/scripts/harness_events.py +680 -0
- package/resources/harness/bundles/java/claude-code/scripts/harness_ledger.py +671 -0
- package/resources/harness/bundles/java/claude-code/scripts/harness_preflight.py +780 -0
- package/resources/harness/bundles/java/claude-code/scripts/harness_service.py +1331 -0
- package/resources/harness/bundles/java/codebuddy/.harness-build.json +6 -0
- package/resources/harness/bundles/java/codebuddy/CONTEXT.md +65 -0
- package/resources/harness/bundles/java/codebuddy/README.md +478 -0
- package/resources/harness/bundles/java/codebuddy/agents/harness-evaluator.md +94 -0
- package/resources/harness/bundles/java/codebuddy/agents/harness-explorer.md +53 -0
- package/resources/harness/bundles/java/codebuddy/agents/harness-reviewer.md +52 -0
- package/resources/harness/bundles/java/codebuddy/harness-apidoc/SKILL.md +68 -0
- package/resources/harness/bundles/java/codebuddy/harness-apidoc/checklist.md +142 -0
- package/resources/harness/bundles/java/codebuddy/harness-apidoc/reference.md +233 -0
- package/resources/harness/bundles/java/codebuddy/harness-archive/SKILL.md +198 -0
- package/resources/harness/bundles/java/codebuddy/harness-archive/checklist.md +52 -0
- package/resources/harness/bundles/java/codebuddy/harness-archive/reference.md +103 -0
- package/resources/harness/bundles/java/codebuddy/harness-archive/scripts/gen-manifest.ps1 +31 -0
- package/resources/harness/bundles/java/codebuddy/harness-archive/templates/render-summary.mjs +171 -0
- package/resources/harness/bundles/java/codebuddy/harness-archive/templates/summary-data-template.json +128 -0
- package/resources/harness/bundles/java/codebuddy/harness-codebase-map/SKILL.md +95 -0
- package/resources/harness/bundles/java/codebuddy/harness-codebase-map/checklist.md +126 -0
- package/resources/harness/bundles/java/codebuddy/harness-codebase-map/reference.md +364 -0
- package/resources/harness/bundles/java/codebuddy/harness-codebase-map/templates/ARCHITECTURE.md +57 -0
- package/resources/harness/bundles/java/codebuddy/harness-codebase-map/templates/CONCERNS.md +49 -0
- package/resources/harness/bundles/java/codebuddy/harness-codebase-map/templates/CONVENTIONS.md +57 -0
- package/resources/harness/bundles/java/codebuddy/harness-codebase-map/templates/INTEGRATIONS.md +52 -0
- package/resources/harness/bundles/java/codebuddy/harness-codebase-map/templates/STACK.md +55 -0
- package/resources/harness/bundles/java/codebuddy/harness-codebase-map/templates/STRUCTURE.md +69 -0
- package/resources/harness/bundles/java/codebuddy/harness-codebase-map/templates/TESTING.md +64 -0
- package/resources/harness/bundles/java/codebuddy/harness-codebase-map/templates/map-manifest.schema.json +73 -0
- package/resources/harness/bundles/java/codebuddy/harness-codebase-map/templates/map-summary.md +64 -0
- package/resources/harness/bundles/java/codebuddy/harness-knowledge-ingest/SKILL.md +229 -0
- package/resources/harness/bundles/java/codebuddy/harness-knowledge-ingest/design.md +842 -0
- package/resources/harness/bundles/java/codebuddy/harness-knowledge-ingest/evaluations/harness_knowledge_evaluation.xml +42 -0
- package/resources/harness/bundles/java/codebuddy/harness-knowledge-ingest/mcp-config.example.json +10 -0
- package/resources/harness/bundles/java/codebuddy/harness-knowledge-ingest/reference.md +309 -0
- package/resources/harness/bundles/java/codebuddy/harness-knowledge-ingest/scripts/harness_knowledge.py +4082 -0
- package/resources/harness/bundles/java/codebuddy/harness-knowledge-ingest/scripts/harness_knowledge_mcp.py +273 -0
- package/resources/harness/bundles/java/codebuddy/harness-knowledge-query/SKILL.md +147 -0
- package/resources/harness/bundles/java/codebuddy/harness-package/SKILL.md +69 -0
- package/resources/harness/bundles/java/codebuddy/harness-package/checklist.md +322 -0
- package/resources/harness/bundles/java/codebuddy/harness-package/reference.md +210 -0
- package/resources/harness/bundles/java/codebuddy/harness-plan/SKILL.md +109 -0
- package/resources/harness/bundles/java/codebuddy/harness-plan/checklist.md +243 -0
- package/resources/harness/bundles/java/codebuddy/harness-plan/protocols.md +124 -0
- package/resources/harness/bundles/java/codebuddy/harness-plan/reference.md +376 -0
- package/resources/harness/bundles/java/codebuddy/harness-review/SKILL.md +142 -0
- package/resources/harness/bundles/java/codebuddy/harness-review/checklist.md +124 -0
- package/resources/harness/bundles/java/codebuddy/harness-review/protocols.md +68 -0
- package/resources/harness/bundles/java/codebuddy/harness-review/reference.md +86 -0
- package/resources/harness/bundles/java/codebuddy/harness-run/SKILL.md +129 -0
- package/resources/harness/bundles/java/codebuddy/harness-run/checklist.md +250 -0
- package/resources/harness/bundles/java/codebuddy/harness-run/protocols.md +78 -0
- package/resources/harness/bundles/java/codebuddy/harness-run/reference.md +814 -0
- package/resources/harness/bundles/java/codebuddy/harness-submit/SKILL.md +149 -0
- package/resources/harness/bundles/java/codebuddy/harness-submit/checklist.md +407 -0
- package/resources/harness/bundles/java/codebuddy/harness-submit/reference.md +152 -0
- package/resources/harness/bundles/java/codebuddy/harness-sync/SKILL.md +65 -0
- package/resources/harness/bundles/java/codebuddy/harness-sync/reference.md +153 -0
- package/resources/harness/bundles/java/codebuddy/harness-test/SKILL.md +172 -0
- package/resources/harness/bundles/java/codebuddy/harness-test/checklist.md +317 -0
- package/resources/harness/bundles/java/codebuddy/harness-test/pitfalls-java.md +16 -0
- package/resources/harness/bundles/java/codebuddy/harness-test/pitfalls.md +260 -0
- package/resources/harness/bundles/java/codebuddy/harness-test/reference.md +788 -0
- package/resources/harness/bundles/java/codebuddy/protocols/archive-report-protocol.md +175 -0
- package/resources/harness/bundles/java/codebuddy/protocols/evidence-based-reporting-protocol.md +134 -0
- package/resources/harness/bundles/java/codebuddy/protocols/ledger-protocol.md +270 -0
- package/resources/harness/bundles/java/codebuddy/protocols/powershell-protocol.md +181 -0
- package/resources/harness/bundles/java/codebuddy/protocols/report-pipeline-protocol.md +150 -0
- package/resources/harness/bundles/java/codebuddy/protocols/sensitive-info-protocol.md +92 -0
- package/resources/harness/bundles/java/codebuddy/protocols/state-layout-protocol.md +131 -0
- package/resources/harness/bundles/java/codebuddy/protocols/submit-protocol.md +78 -0
- package/resources/harness/bundles/java/codebuddy/scripts/harness_archive.py +2319 -0
- package/resources/harness/bundles/java/codebuddy/scripts/harness_deploy.py +674 -0
- package/resources/harness/bundles/java/codebuddy/scripts/harness_events.py +680 -0
- package/resources/harness/bundles/java/codebuddy/scripts/harness_ledger.py +671 -0
- package/resources/harness/bundles/java/codebuddy/scripts/harness_preflight.py +780 -0
- package/resources/harness/bundles/java/codebuddy/scripts/harness_service.py +1331 -0
- package/resources/harness/bundles/java/codex/.harness-build.json +6 -0
- package/resources/harness/bundles/java/codex/CONTEXT.md +65 -0
- package/resources/harness/bundles/java/codex/README.md +478 -0
- package/resources/harness/bundles/java/codex/harness-apidoc/SKILL.md +68 -0
- package/resources/harness/bundles/java/codex/harness-apidoc/checklist.md +142 -0
- package/resources/harness/bundles/java/codex/harness-apidoc/reference.md +233 -0
- package/resources/harness/bundles/java/codex/harness-archive/SKILL.md +198 -0
- package/resources/harness/bundles/java/codex/harness-archive/checklist.md +52 -0
- package/resources/harness/bundles/java/codex/harness-archive/reference.md +103 -0
- package/resources/harness/bundles/java/codex/harness-archive/scripts/gen-manifest.ps1 +31 -0
- package/resources/harness/bundles/java/codex/harness-archive/templates/render-summary.mjs +171 -0
- package/resources/harness/bundles/java/codex/harness-archive/templates/summary-data-template.json +128 -0
- package/resources/harness/bundles/java/codex/harness-codebase-map/SKILL.md +95 -0
- package/resources/harness/bundles/java/codex/harness-codebase-map/checklist.md +126 -0
- package/resources/harness/bundles/java/codex/harness-codebase-map/reference.md +364 -0
- package/resources/harness/bundles/java/codex/harness-codebase-map/templates/ARCHITECTURE.md +57 -0
- package/resources/harness/bundles/java/codex/harness-codebase-map/templates/CONCERNS.md +49 -0
- package/resources/harness/bundles/java/codex/harness-codebase-map/templates/CONVENTIONS.md +57 -0
- package/resources/harness/bundles/java/codex/harness-codebase-map/templates/INTEGRATIONS.md +52 -0
- package/resources/harness/bundles/java/codex/harness-codebase-map/templates/STACK.md +55 -0
- package/resources/harness/bundles/java/codex/harness-codebase-map/templates/STRUCTURE.md +69 -0
- package/resources/harness/bundles/java/codex/harness-codebase-map/templates/TESTING.md +64 -0
- package/resources/harness/bundles/java/codex/harness-codebase-map/templates/map-manifest.schema.json +73 -0
- package/resources/harness/bundles/java/codex/harness-codebase-map/templates/map-summary.md +64 -0
- package/resources/harness/bundles/java/codex/harness-knowledge-ingest/SKILL.md +229 -0
- package/resources/harness/bundles/java/codex/harness-knowledge-ingest/design.md +842 -0
- package/resources/harness/bundles/java/codex/harness-knowledge-ingest/evaluations/harness_knowledge_evaluation.xml +42 -0
- package/resources/harness/bundles/java/codex/harness-knowledge-ingest/mcp-config.example.json +10 -0
- package/resources/harness/bundles/java/codex/harness-knowledge-ingest/reference.md +309 -0
- package/resources/harness/bundles/java/codex/harness-knowledge-ingest/scripts/harness_knowledge.py +4082 -0
- package/resources/harness/bundles/java/codex/harness-knowledge-ingest/scripts/harness_knowledge_mcp.py +273 -0
- package/resources/harness/bundles/java/codex/harness-knowledge-query/SKILL.md +147 -0
- package/resources/harness/bundles/java/codex/harness-package/SKILL.md +69 -0
- package/resources/harness/bundles/java/codex/harness-package/checklist.md +322 -0
- package/resources/harness/bundles/java/codex/harness-package/reference.md +210 -0
- package/resources/harness/bundles/java/codex/harness-plan/SKILL.md +109 -0
- package/resources/harness/bundles/java/codex/harness-plan/checklist.md +243 -0
- package/resources/harness/bundles/java/codex/harness-plan/protocols.md +124 -0
- package/resources/harness/bundles/java/codex/harness-plan/reference.md +376 -0
- package/resources/harness/bundles/java/codex/harness-review/SKILL.md +137 -0
- package/resources/harness/bundles/java/codex/harness-review/checklist.md +124 -0
- package/resources/harness/bundles/java/codex/harness-review/protocols.md +68 -0
- package/resources/harness/bundles/java/codex/harness-review/reference.md +86 -0
- package/resources/harness/bundles/java/codex/harness-run/SKILL.md +129 -0
- package/resources/harness/bundles/java/codex/harness-run/checklist.md +250 -0
- package/resources/harness/bundles/java/codex/harness-run/protocols.md +78 -0
- package/resources/harness/bundles/java/codex/harness-run/reference.md +814 -0
- package/resources/harness/bundles/java/codex/harness-submit/SKILL.md +149 -0
- package/resources/harness/bundles/java/codex/harness-submit/checklist.md +407 -0
- package/resources/harness/bundles/java/codex/harness-submit/reference.md +152 -0
- package/resources/harness/bundles/java/codex/harness-sync/SKILL.md +65 -0
- package/resources/harness/bundles/java/codex/harness-sync/reference.md +153 -0
- package/resources/harness/bundles/java/codex/harness-test/SKILL.md +172 -0
- package/resources/harness/bundles/java/codex/harness-test/checklist.md +317 -0
- package/resources/harness/bundles/java/codex/harness-test/pitfalls-java.md +16 -0
- package/resources/harness/bundles/java/codex/harness-test/pitfalls.md +260 -0
- package/resources/harness/bundles/java/codex/harness-test/reference.md +788 -0
- package/resources/harness/bundles/java/codex/protocols/archive-report-protocol.md +175 -0
- package/resources/harness/bundles/java/codex/protocols/evidence-based-reporting-protocol.md +134 -0
- package/resources/harness/bundles/java/codex/protocols/ledger-protocol.md +270 -0
- package/resources/harness/bundles/java/codex/protocols/powershell-protocol.md +181 -0
- package/resources/harness/bundles/java/codex/protocols/report-pipeline-protocol.md +150 -0
- package/resources/harness/bundles/java/codex/protocols/sensitive-info-protocol.md +92 -0
- package/resources/harness/bundles/java/codex/protocols/state-layout-protocol.md +131 -0
- package/resources/harness/bundles/java/codex/protocols/submit-protocol.md +78 -0
- package/resources/harness/bundles/java/codex/scripts/harness_archive.py +2319 -0
- package/resources/harness/bundles/java/codex/scripts/harness_deploy.py +674 -0
- package/resources/harness/bundles/java/codex/scripts/harness_events.py +680 -0
- package/resources/harness/bundles/java/codex/scripts/harness_ledger.py +671 -0
- package/resources/harness/bundles/java/codex/scripts/harness_preflight.py +780 -0
- package/resources/harness/bundles/java/codex/scripts/harness_service.py +1331 -0
- package/resources/harness/bundles/java/cursor/.harness-build.json +6 -0
- package/resources/harness/bundles/java/cursor/CONTEXT.md +65 -0
- package/resources/harness/bundles/java/cursor/README.md +478 -0
- package/resources/harness/bundles/java/cursor/harness-apidoc/SKILL.md +68 -0
- package/resources/harness/bundles/java/cursor/harness-apidoc/checklist.md +142 -0
- package/resources/harness/bundles/java/cursor/harness-apidoc/reference.md +233 -0
- package/resources/harness/bundles/java/cursor/harness-archive/SKILL.md +198 -0
- package/resources/harness/bundles/java/cursor/harness-archive/checklist.md +52 -0
- package/resources/harness/bundles/java/cursor/harness-archive/reference.md +103 -0
- package/resources/harness/bundles/java/cursor/harness-archive/scripts/gen-manifest.ps1 +31 -0
- package/resources/harness/bundles/java/cursor/harness-archive/templates/render-summary.mjs +171 -0
- package/resources/harness/bundles/java/cursor/harness-archive/templates/summary-data-template.json +128 -0
- package/resources/harness/bundles/java/cursor/harness-codebase-map/SKILL.md +95 -0
- package/resources/harness/bundles/java/cursor/harness-codebase-map/checklist.md +126 -0
- package/resources/harness/bundles/java/cursor/harness-codebase-map/reference.md +364 -0
- package/resources/harness/bundles/java/cursor/harness-codebase-map/templates/ARCHITECTURE.md +57 -0
- package/resources/harness/bundles/java/cursor/harness-codebase-map/templates/CONCERNS.md +49 -0
- package/resources/harness/bundles/java/cursor/harness-codebase-map/templates/CONVENTIONS.md +57 -0
- package/resources/harness/bundles/java/cursor/harness-codebase-map/templates/INTEGRATIONS.md +52 -0
- package/resources/harness/bundles/java/cursor/harness-codebase-map/templates/STACK.md +55 -0
- package/resources/harness/bundles/java/cursor/harness-codebase-map/templates/STRUCTURE.md +69 -0
- package/resources/harness/bundles/java/cursor/harness-codebase-map/templates/TESTING.md +64 -0
- package/resources/harness/bundles/java/cursor/harness-codebase-map/templates/map-manifest.schema.json +73 -0
- package/resources/harness/bundles/java/cursor/harness-codebase-map/templates/map-summary.md +64 -0
- package/resources/harness/bundles/java/cursor/harness-knowledge-ingest/SKILL.md +229 -0
- package/resources/harness/bundles/java/cursor/harness-knowledge-ingest/design.md +842 -0
- package/resources/harness/bundles/java/cursor/harness-knowledge-ingest/evaluations/harness_knowledge_evaluation.xml +42 -0
- package/resources/harness/bundles/java/cursor/harness-knowledge-ingest/mcp-config.example.json +10 -0
- package/resources/harness/bundles/java/cursor/harness-knowledge-ingest/reference.md +309 -0
- package/resources/harness/bundles/java/cursor/harness-knowledge-ingest/scripts/harness_knowledge.py +4082 -0
- package/resources/harness/bundles/java/cursor/harness-knowledge-ingest/scripts/harness_knowledge_mcp.py +273 -0
- package/resources/harness/bundles/java/cursor/harness-knowledge-query/SKILL.md +147 -0
- package/resources/harness/bundles/java/cursor/harness-package/SKILL.md +69 -0
- package/resources/harness/bundles/java/cursor/harness-package/checklist.md +322 -0
- package/resources/harness/bundles/java/cursor/harness-package/reference.md +210 -0
- package/resources/harness/bundles/java/cursor/harness-plan/SKILL.md +109 -0
- package/resources/harness/bundles/java/cursor/harness-plan/checklist.md +243 -0
- package/resources/harness/bundles/java/cursor/harness-plan/protocols.md +124 -0
- package/resources/harness/bundles/java/cursor/harness-plan/reference.md +376 -0
- package/resources/harness/bundles/java/cursor/harness-review/SKILL.md +137 -0
- package/resources/harness/bundles/java/cursor/harness-review/checklist.md +124 -0
- package/resources/harness/bundles/java/cursor/harness-review/protocols.md +68 -0
- package/resources/harness/bundles/java/cursor/harness-review/reference.md +86 -0
- package/resources/harness/bundles/java/cursor/harness-run/SKILL.md +129 -0
- package/resources/harness/bundles/java/cursor/harness-run/checklist.md +250 -0
- package/resources/harness/bundles/java/cursor/harness-run/protocols.md +78 -0
- package/resources/harness/bundles/java/cursor/harness-run/reference.md +814 -0
- package/resources/harness/bundles/java/cursor/harness-submit/SKILL.md +149 -0
- package/resources/harness/bundles/java/cursor/harness-submit/checklist.md +407 -0
- package/resources/harness/bundles/java/cursor/harness-submit/reference.md +152 -0
- package/resources/harness/bundles/java/cursor/harness-sync/SKILL.md +65 -0
- package/resources/harness/bundles/java/cursor/harness-sync/reference.md +153 -0
- package/resources/harness/bundles/java/cursor/harness-test/SKILL.md +172 -0
- package/resources/harness/bundles/java/cursor/harness-test/checklist.md +317 -0
- package/resources/harness/bundles/java/cursor/harness-test/pitfalls-java.md +16 -0
- package/resources/harness/bundles/java/cursor/harness-test/pitfalls.md +260 -0
- package/resources/harness/bundles/java/cursor/harness-test/reference.md +788 -0
- package/resources/harness/bundles/java/cursor/protocols/archive-report-protocol.md +175 -0
- package/resources/harness/bundles/java/cursor/protocols/evidence-based-reporting-protocol.md +134 -0
- package/resources/harness/bundles/java/cursor/protocols/ledger-protocol.md +270 -0
- package/resources/harness/bundles/java/cursor/protocols/powershell-protocol.md +181 -0
- package/resources/harness/bundles/java/cursor/protocols/report-pipeline-protocol.md +150 -0
- package/resources/harness/bundles/java/cursor/protocols/sensitive-info-protocol.md +92 -0
- package/resources/harness/bundles/java/cursor/protocols/state-layout-protocol.md +131 -0
- package/resources/harness/bundles/java/cursor/protocols/submit-protocol.md +78 -0
- package/resources/harness/bundles/java/cursor/scripts/harness_archive.py +2319 -0
- package/resources/harness/bundles/java/cursor/scripts/harness_deploy.py +674 -0
- package/resources/harness/bundles/java/cursor/scripts/harness_events.py +680 -0
- package/resources/harness/bundles/java/cursor/scripts/harness_ledger.py +671 -0
- package/resources/harness/bundles/java/cursor/scripts/harness_preflight.py +780 -0
- package/resources/harness/bundles/java/cursor/scripts/harness_service.py +1331 -0
- package/resources/harness/manifests/{general.json → general/claude-code.json} +27 -26
- package/resources/harness/manifests/general/codebuddy.json +277 -0
- package/resources/harness/manifests/general/codex.json +265 -0
- package/resources/harness/manifests/general/cursor.json +265 -0
- package/resources/harness/manifests/{java.json → java/claude-code.json} +31 -30
- package/resources/harness/manifests/java/codebuddy.json +305 -0
- package/resources/harness/manifests/java/codex.json +293 -0
- package/resources/harness/manifests/java/cursor.json +293 -0
- package/resources/harness/general/.harness-build.json +0 -5
- package/resources/harness/java/.harness-build.json +0 -5
- /package/resources/harness/{general → bundles/general/claude-code}/CONTEXT.md +0 -0
- /package/resources/harness/{general → bundles/general/claude-code}/README.md +0 -0
- /package/resources/harness/{general → bundles/general/claude-code}/agents/harness-evaluator.md +0 -0
- /package/resources/harness/{general → bundles/general/claude-code}/agents/harness-explorer.md +0 -0
- /package/resources/harness/{general → bundles/general/claude-code}/harness-archive/checklist.md +0 -0
- /package/resources/harness/{general → bundles/general/claude-code}/harness-archive/reference.md +0 -0
- /package/resources/harness/{general → bundles/general/claude-code}/harness-archive/scripts/gen-manifest.ps1 +0 -0
- /package/resources/harness/{general → bundles/general/claude-code}/harness-archive/templates/render-summary.mjs +0 -0
- /package/resources/harness/{general → bundles/general/claude-code}/harness-archive/templates/summary-data-template.json +0 -0
- /package/resources/harness/{general → bundles/general/claude-code}/harness-codebase-map/checklist.md +0 -0
- /package/resources/harness/{general → bundles/general/claude-code}/harness-codebase-map/reference.md +0 -0
- /package/resources/harness/{general → bundles/general/claude-code}/harness-codebase-map/templates/ARCHITECTURE.md +0 -0
- /package/resources/harness/{general → bundles/general/claude-code}/harness-codebase-map/templates/CONCERNS.md +0 -0
- /package/resources/harness/{general → bundles/general/claude-code}/harness-codebase-map/templates/CONVENTIONS.md +0 -0
- /package/resources/harness/{general → bundles/general/claude-code}/harness-codebase-map/templates/INTEGRATIONS.md +0 -0
- /package/resources/harness/{general → bundles/general/claude-code}/harness-codebase-map/templates/STACK.md +0 -0
- /package/resources/harness/{general → bundles/general/claude-code}/harness-codebase-map/templates/STRUCTURE.md +0 -0
- /package/resources/harness/{general → bundles/general/claude-code}/harness-codebase-map/templates/TESTING.md +0 -0
- /package/resources/harness/{general → bundles/general/claude-code}/harness-codebase-map/templates/map-manifest.schema.json +0 -0
- /package/resources/harness/{general → bundles/general/claude-code}/harness-codebase-map/templates/map-summary.md +0 -0
- /package/resources/harness/{general → bundles/general/claude-code}/harness-knowledge-ingest/design.md +0 -0
- /package/resources/harness/{general → bundles/general/claude-code}/harness-knowledge-ingest/evaluations/harness_knowledge_evaluation.xml +0 -0
- /package/resources/harness/{general → bundles/general/claude-code}/harness-knowledge-ingest/mcp-config.example.json +0 -0
- /package/resources/harness/{general → bundles/general/claude-code}/harness-knowledge-ingest/scripts/harness_knowledge.py +0 -0
- /package/resources/harness/{general → bundles/general/claude-code}/harness-knowledge-ingest/scripts/harness_knowledge_mcp.py +0 -0
- /package/resources/harness/{general → bundles/general/claude-code}/harness-plan/checklist.md +0 -0
- /package/resources/harness/{general → bundles/general/claude-code}/harness-plan/protocols.md +0 -0
- /package/resources/harness/{general → bundles/general/claude-code}/harness-plan/reference.md +0 -0
- /package/resources/harness/{general → bundles/general/claude-code}/harness-review/protocols.md +0 -0
- /package/resources/harness/{general → bundles/general/claude-code}/harness-review/reference.md +0 -0
- /package/resources/harness/{general → bundles/general/claude-code}/harness-run/protocols.md +0 -0
- /package/resources/harness/{general → bundles/general/claude-code}/harness-submit/checklist.md +0 -0
- /package/resources/harness/{general → bundles/general/claude-code}/harness-submit/reference.md +0 -0
- /package/resources/harness/{general → bundles/general/claude-code}/harness-test/pitfalls.md +0 -0
- /package/resources/harness/{general → bundles/general/claude-code}/harness-test/reference.md +0 -0
- /package/resources/harness/{general → bundles/general/claude-code}/protocols/archive-report-protocol.md +0 -0
- /package/resources/harness/{general → bundles/general/claude-code}/protocols/evidence-based-reporting-protocol.md +0 -0
- /package/resources/harness/{general → bundles/general/claude-code}/protocols/ledger-protocol.md +0 -0
- /package/resources/harness/{general → bundles/general/claude-code}/protocols/powershell-protocol.md +0 -0
- /package/resources/harness/{general → bundles/general/claude-code}/protocols/report-pipeline-protocol.md +0 -0
- /package/resources/harness/{general → bundles/general/claude-code}/protocols/sensitive-info-protocol.md +0 -0
- /package/resources/harness/{general → bundles/general/claude-code}/protocols/state-layout-protocol.md +0 -0
- /package/resources/harness/{general → bundles/general/claude-code}/protocols/submit-protocol.md +0 -0
- /package/resources/harness/{java → bundles/general/codebuddy}/CONTEXT.md +0 -0
- /package/resources/harness/{java → bundles/general/codebuddy}/README.md +0 -0
- /package/resources/harness/{java → bundles/general/codebuddy}/harness-archive/checklist.md +0 -0
- /package/resources/harness/{java → bundles/general/codebuddy}/harness-archive/reference.md +0 -0
- /package/resources/harness/{java → bundles/general/codebuddy}/harness-archive/scripts/gen-manifest.ps1 +0 -0
- /package/resources/harness/{java → bundles/general/codebuddy}/harness-archive/templates/render-summary.mjs +0 -0
- /package/resources/harness/{java → bundles/general/codebuddy}/harness-archive/templates/summary-data-template.json +0 -0
- /package/resources/harness/{java → bundles/general/codebuddy}/harness-codebase-map/checklist.md +0 -0
- /package/resources/harness/{java → bundles/general/codebuddy}/harness-codebase-map/reference.md +0 -0
- /package/resources/harness/{java → bundles/general/codebuddy}/harness-codebase-map/templates/ARCHITECTURE.md +0 -0
- /package/resources/harness/{java → bundles/general/codebuddy}/harness-codebase-map/templates/CONCERNS.md +0 -0
- /package/resources/harness/{java → bundles/general/codebuddy}/harness-codebase-map/templates/CONVENTIONS.md +0 -0
- /package/resources/harness/{java → bundles/general/codebuddy}/harness-codebase-map/templates/INTEGRATIONS.md +0 -0
- /package/resources/harness/{java → bundles/general/codebuddy}/harness-codebase-map/templates/STACK.md +0 -0
- /package/resources/harness/{java → bundles/general/codebuddy}/harness-codebase-map/templates/STRUCTURE.md +0 -0
- /package/resources/harness/{java → bundles/general/codebuddy}/harness-codebase-map/templates/TESTING.md +0 -0
- /package/resources/harness/{java → bundles/general/codebuddy}/harness-codebase-map/templates/map-manifest.schema.json +0 -0
- /package/resources/harness/{java → bundles/general/codebuddy}/harness-codebase-map/templates/map-summary.md +0 -0
- /package/resources/harness/{java → bundles/general/codebuddy}/harness-knowledge-ingest/design.md +0 -0
- /package/resources/harness/{java → bundles/general/codebuddy}/harness-knowledge-ingest/evaluations/harness_knowledge_evaluation.xml +0 -0
- /package/resources/harness/{java → bundles/general/codebuddy}/harness-knowledge-ingest/mcp-config.example.json +0 -0
- /package/resources/harness/{java → bundles/general/codebuddy}/harness-knowledge-ingest/scripts/harness_knowledge.py +0 -0
- /package/resources/harness/{java → bundles/general/codebuddy}/harness-knowledge-ingest/scripts/harness_knowledge_mcp.py +0 -0
- /package/resources/harness/{java → bundles/general/codebuddy}/harness-plan/checklist.md +0 -0
- /package/resources/harness/{java → bundles/general/codebuddy}/harness-plan/protocols.md +0 -0
- /package/resources/harness/{java → bundles/general/codebuddy}/harness-plan/reference.md +0 -0
- /package/resources/harness/{java → bundles/general/codebuddy}/harness-review/protocols.md +0 -0
- /package/resources/harness/{java → bundles/general/codebuddy}/harness-review/reference.md +0 -0
- /package/resources/harness/{java → bundles/general/codebuddy}/harness-run/protocols.md +0 -0
- /package/resources/harness/{java → bundles/general/codebuddy}/harness-submit/checklist.md +0 -0
- /package/resources/harness/{java → bundles/general/codebuddy}/harness-submit/reference.md +0 -0
- /package/resources/harness/{java → bundles/general/codebuddy}/harness-test/pitfalls.md +0 -0
- /package/resources/harness/{java → bundles/general/codebuddy}/protocols/archive-report-protocol.md +0 -0
- /package/resources/harness/{java → bundles/general/codebuddy}/protocols/evidence-based-reporting-protocol.md +0 -0
- /package/resources/harness/{java → bundles/general/codebuddy}/protocols/ledger-protocol.md +0 -0
- /package/resources/harness/{java → bundles/general/codebuddy}/protocols/powershell-protocol.md +0 -0
- /package/resources/harness/{java → bundles/general/codebuddy}/protocols/report-pipeline-protocol.md +0 -0
- /package/resources/harness/{java → bundles/general/codebuddy}/protocols/sensitive-info-protocol.md +0 -0
- /package/resources/harness/{java → bundles/general/codebuddy}/protocols/state-layout-protocol.md +0 -0
- /package/resources/harness/{java → bundles/general/codebuddy}/protocols/submit-protocol.md +0 -0
- /package/resources/harness/{java → bundles/java/claude-code}/agents/harness-evaluator.md +0 -0
- /package/resources/harness/{java → bundles/java/claude-code}/agents/harness-explorer.md +0 -0
- /package/resources/harness/{java → bundles/java/claude-code}/harness-apidoc/checklist.md +0 -0
- /package/resources/harness/{java → bundles/java/claude-code}/harness-apidoc/reference.md +0 -0
- /package/resources/harness/{java → bundles/java/claude-code}/harness-package/checklist.md +0 -0
- /package/resources/harness/{java → bundles/java/claude-code}/harness-test/pitfalls-java.md +0 -0
|
@@ -0,0 +1,142 @@
|
|
|
1
|
+
---
|
|
2
|
+
description: harness-apidoc 的7步工作流详细步骤、接口提取规则和执行日志记录格式。仅在执行文档生成流程时读取。
|
|
3
|
+
---
|
|
4
|
+
|
|
5
|
+
# harness-apidoc 检查清单
|
|
6
|
+
|
|
7
|
+
## 步骤 0:启动准备
|
|
8
|
+
|
|
9
|
+
确定变更名:用 Glob 搜索 `.harness/changes/*/plans/*-plan.md`(**排除 `.harness/archive/*/`**),读取 frontmatter 提取 `change-name`。默认最多一个未归档变更;如有多个,优先取最近修改的,或询问用户。
|
|
10
|
+
|
|
11
|
+
**检查 worktree**:读取 `.harness/changes/<change-name>/meta/worktree.json`(旧路径兼容根目录 `worktree.json`):
|
|
12
|
+
|
|
13
|
+
- `requested=true` 且 `worktreeRoot` 存在 → cd 到 `worktreeRoot`,确保读取 worktree 中最新代码
|
|
14
|
+
- `requested=true` 但 worktree 不存在 → **停止并提示用户修复 worktree 状态,不得静默回到主目录**
|
|
15
|
+
- `requested=false` 或文件不存在 → 在主目录执行
|
|
16
|
+
|
|
17
|
+
不要用 `**` 通配符扫描 worktree(返回 100+ 无关文件)。
|
|
18
|
+
|
|
19
|
+
**append `phase.start`**(`harness_events.py`;禁止手工 Edit `execution-log.md`):
|
|
20
|
+
|
|
21
|
+
```powershell
|
|
22
|
+
python <skills-root>/scripts/harness_events.py append --change-dir ".harness/changes/<change-name>" --phase apidoc --type phase.start --note "<触发指令>"
|
|
23
|
+
```
|
|
24
|
+
|
|
25
|
+
## 步骤 1:识别变更范围
|
|
26
|
+
|
|
27
|
+
读取变更计划文件,结合 `git diff --stat` 确定涉及的 Controller、VO、ErrorCode 文件。
|
|
28
|
+
|
|
29
|
+
**⚠️ 必读:审查 logs/execution-log.md 中的后续修复记录**
|
|
30
|
+
|
|
31
|
+
plan 文件是初始设计,代码可能在 review/test 阶段被修改。必须读取 `logs/execution-log.md` 中 plan 之后的条目(旧路径兼容根目录 `execution-log.md`;特别是 harness-review 和审查修复补充),关注:
|
|
32
|
+
|
|
33
|
+
- 哪些方法被修改了实现逻辑(如硬编码改为枚举)
|
|
34
|
+
- 哪些字段被新增/删除/重命名
|
|
35
|
+
- 哪些行为发生了变更(如权限策略调整)
|
|
36
|
+
|
|
37
|
+
在生成文档时,以**实际代码**为准,不以 plan 文件的伪代码为准。
|
|
38
|
+
|
|
39
|
+
## 步骤 2:提取接口信息
|
|
40
|
+
|
|
41
|
+
逐个读取变更涉及的 Controller 文件,提取:
|
|
42
|
+
|
|
43
|
+
- **接口路径和方法**:从 `@RequestMapping`、`@GetMapping`、`@PostMapping` 等注解
|
|
44
|
+
- **请求参数**:从方法签名和 `@RequestBody`、`@RequestParam`、`@PathVariable` 注解
|
|
45
|
+
- **请求体结构**:从 SaveReqVO、PageReqVO 等请求 VO 的字段定义
|
|
46
|
+
- **响应体结构**:从 RespVO、SimpleRespVO 等响应 VO 的字段定义
|
|
47
|
+
- **校验规则**:从 VO 上的 `@NotNull`、`@NotBlank`、`@Size` 等校验注解
|
|
48
|
+
- **错误码**:从 ErrorCodeConstants 或相关常量类
|
|
49
|
+
|
|
50
|
+
用 CodeGraph 辅助探索调用链(Controller → Service → Mapper),理解接口的业务逻辑。
|
|
51
|
+
|
|
52
|
+
**⚠️ 行为变更接口必须读 Service 实际实现**
|
|
53
|
+
|
|
54
|
+
对于有行为变更的接口(如权限调整、返回值结构变更、查询逻辑修改),必须读取 Service 实现类的实际代码,不能仅依赖 plan 文件中的伪代码。
|
|
55
|
+
|
|
56
|
+
重点验证:
|
|
57
|
+
|
|
58
|
+
- `getMeta()` 等返回动态数据的接口 → 读实际返回值构造逻辑
|
|
59
|
+
- 枚举/常量值 → 读实际枚举类源码,不从 plan 推断
|
|
60
|
+
- 权限校验逻辑 → 读实际 Service 方法体
|
|
61
|
+
|
|
62
|
+
**枚举值交叉验证**:数据字典中的枚举值必须从实际枚举类源码提取,不从 plan 文件的伪代码推断。如果 plan 中写 `new SceneMetaVO("1", ...)` 但实际代码用 `ProjectTypeEnum.DELIVERY.getCode()`,以实际代码为准。
|
|
63
|
+
|
|
64
|
+
**codegraph 降级策略**:
|
|
65
|
+
|
|
66
|
+
- `codegraph_search` 返回 0 结果时(新文件索引未同步),立即用 Grep 搜索
|
|
67
|
+
- `codegraph_node` 遇到重名符号时(如多个 ErrorCodeConstants),用 `file` 参数指定文件名
|
|
68
|
+
- 不要对同一符号重复调用 codegraph_node 超过 2 次,第 2 次仍不对则用 Read 直接读文件
|
|
69
|
+
|
|
70
|
+
## 步骤 3:确定文档类型
|
|
71
|
+
|
|
72
|
+
| 变更规模 | 文档类型 | 说明 |
|
|
73
|
+
|----------|----------|------|
|
|
74
|
+
| 新功能/新模块(5+ 新接口) | **完整接口文档** | 包含所有章节 |
|
|
75
|
+
| 扩展已有接口(新增字段、修改逻辑) | **增量接口文档** | 只描述变更部分,注明与旧版本的差异 |
|
|
76
|
+
| 小改动(1-2 个字段变更) | **增量接口文档** | 简要描述变更 |
|
|
77
|
+
|
|
78
|
+
## 步骤 4:生成文档
|
|
79
|
+
|
|
80
|
+
按照 `reference.md` 的7章节模板生成文档。关键要求:
|
|
81
|
+
- 每个接口必须有:路径参数表、Query/请求体字段表、响应字段表
|
|
82
|
+
- 响应示例必须包含完整 JSON
|
|
83
|
+
- 字段表必须包含:字段名、类型、必填(请求)、说明
|
|
84
|
+
- 校验规则写入字段表的「校验」列(如 `≤50字符`、`枚举`)
|
|
85
|
+
- 枚举值必须列入「数据字典」章节,标注前端展示方式
|
|
86
|
+
- 前端用法要写具体(不是"展示数据",而是控件+联动)
|
|
87
|
+
- 扩展接口必须描述行为变更(不只是字段变更)
|
|
88
|
+
- 前端交互建议用表格:操作 → 接口 → 触发时机 → 交互效果
|
|
89
|
+
- 兼容性说明用表格:场景 → 旧行为 → 新行为 → 前端处理
|
|
90
|
+
- 错误码必须包含触发场景列
|
|
91
|
+
- 从代码提取信息,不从需求文档猜测
|
|
92
|
+
|
|
93
|
+
**⚠️ 前端影响分级标注(强制)**
|
|
94
|
+
|
|
95
|
+
每个变更接口必须标注前端影响级别,让前端开发者一眼看出哪些需要改代码、哪些无需处理:
|
|
96
|
+
|
|
97
|
+
| 标记 | 含义 | 前端动作 |
|
|
98
|
+
|:----:|------|----------|
|
|
99
|
+
| 🔴 **BREAKING** | 破坏性变更,前端不修改会报错或功能异常 | **必须修改**,优先处理 |
|
|
100
|
+
| 🟡 **NEEDS-UPDATE** | 非破坏性变更,但前端需要适配才能使用新功能 | **建议修改**,否则无法使用新能力 |
|
|
101
|
+
| 🟢 **TRANSPARENT** | 后端内部变更,前端无感,无需修改 | 无需处理,仅供了解 |
|
|
102
|
+
|
|
103
|
+
**判定规则**:
|
|
104
|
+
|
|
105
|
+
- 🔴 **BREAKING**:删除字段、字段类型变更、枚举值删除/变更、请求必填字段新增、响应结构变更、接口路径变更
|
|
106
|
+
- 🟡 **NEEDS-UPDATE**:新增可选字段、新增可选参数、新增响应字段(前端可选渲染)、行为变更(如权限放开,前端可删除旧的 403 处理)
|
|
107
|
+
- 🟢 **TRANSPARENT**:后端内部重构(如死代码删除、Mapper 优化)、性能优化、日志变更、注释变更
|
|
108
|
+
|
|
109
|
+
**标注位置**:
|
|
110
|
+
|
|
111
|
+
1. **接口变更概览表**:在「变更」列后增加「前端影响」列
|
|
112
|
+
2. **扩展接口详情**:每个接口标题下方用 callout 标注
|
|
113
|
+
3. **文档开头**:增加「前端改动清单」摘要章节
|
|
114
|
+
|
|
115
|
+
**前端改动清单模板**(放在文档开头,接口变更概览之前):
|
|
116
|
+
|
|
117
|
+
```markdown
|
|
118
|
+
## ⚡ 前端改动清单
|
|
119
|
+
|
|
120
|
+
> 前端开发者请优先处理以下 🔴 BREAKING 项,其次处理 🟡 NEEDS-UPDATE 项。
|
|
121
|
+
|
|
122
|
+
| 优先级 | 接口 | 改动点 | 前端动作 |
|
|
123
|
+
|:------:|------|--------|----------|
|
|
124
|
+
| 🔴 | `GET /indicator/meta` | `applicableScenes[].code` 值从数字改为枚举编码 | Select 组件 value 改用 `projectType` 字段 |
|
|
125
|
+
| 🔴 | `POST /indicator/applicable` | 请求体 `sceneCode` 删除 | 改为传 `projectType` |
|
|
126
|
+
| 🟡 | `GET /indicator/enabled` | 新增 `projectType` 过滤参数 | 可选适配,传入可筛选适用指标 |
|
|
127
|
+
| 🟢 | `POST /indicator/list` | 后端自动 orgCode 过滤 | 无需处理,前端可删除传 orgCode 逻辑 |
|
|
128
|
+
```
|
|
129
|
+
|
|
130
|
+
## 步骤 5:保存文档
|
|
131
|
+
|
|
132
|
+
用 Write 工具保存到 `.harness/changes/<change-name>/apidoc/<模块名>-前端接口文档-YYYY-MM-DD.md`。
|
|
133
|
+
|
|
134
|
+
## 步骤 6:展示并确认
|
|
135
|
+
|
|
136
|
+
展示文档摘要,询问用户是否满意。不满意 → 修改后重新保存。
|
|
137
|
+
|
|
138
|
+
**append `phase.complete`**(`note` 含结果/摘要/文档路径):
|
|
139
|
+
|
|
140
|
+
```powershell
|
|
141
|
+
python <skills-root>/scripts/harness_events.py append --change-dir ".harness/changes/<change-name>" --phase apidoc --type phase.complete --note "OK|WARN|FAIL — <摘要>"
|
|
142
|
+
```
|
|
@@ -0,0 +1,233 @@
|
|
|
1
|
+
---
|
|
2
|
+
description: harness-apidoc 的文档7章节完整模板和增量接口文档差异说明。仅在生成文档需要参考模板结构时读取。
|
|
3
|
+
---
|
|
4
|
+
|
|
5
|
+
# harness-apidoc 参考 — 文档模板
|
|
6
|
+
|
|
7
|
+
## 文档7章节完整模板
|
|
8
|
+
|
|
9
|
+
```markdown
|
|
10
|
+
# <模块名> — 前端接口文档
|
|
11
|
+
|
|
12
|
+
> **版本**:V<N> | **日期**:YYYY-MM-DD | **变更**:<change-name>
|
|
13
|
+
> **基础路径**:`/<模块路径>` | **认证**:Bearer Token | **Content-Type**:`application/json`
|
|
14
|
+
|
|
15
|
+
---
|
|
16
|
+
|
|
17
|
+
## ⚡ 前端改动清单
|
|
18
|
+
|
|
19
|
+
> 前端开发者请优先处理以下 🔴 BREAKING 项,其次处理 🟡 NEEDS-UPDATE 项。
|
|
20
|
+
|
|
21
|
+
| 优先级 | 接口 | 改动点 | 前端动作 |
|
|
22
|
+
|:------:|------|--------|----------|
|
|
23
|
+
| 🔴 | `GET /xxx/meta` | `code` 值从数字改为枚举编码 | Select 组件 value 改用 `projectType` 字段 |
|
|
24
|
+
| 🔴 | `POST /xxx/applicable` | 请求体 `sceneCode` 删除 | 改为传 `projectType` |
|
|
25
|
+
| 🟡 | `GET /xxx/enabled` | 新增 `projectType` 过滤参数 | 可选适配,传入可筛选适用数据 |
|
|
26
|
+
| 🟢 | `POST /xxx/list` | 后端自动 orgCode 过滤 | 无需处理,前端可删除传 orgCode 逻辑 |
|
|
27
|
+
|
|
28
|
+
> 影响级别:🔴 BREAKING(必须修改)| 🟡 NEEDS-UPDATE(建议修改)| 🟢 TRANSPARENT(无需处理)
|
|
29
|
+
|
|
30
|
+
---
|
|
31
|
+
|
|
32
|
+
## 一、接口变更概览
|
|
33
|
+
|
|
34
|
+
| # | 方法 | 路径 | 说明 | 变更 | 前端影响 |
|
|
35
|
+
|:--:|------|------|------|:----:|:--------:|
|
|
36
|
+
| 1 | GET | `/xxx/meta` | 获取下拉选项 | 🆕 新增 | — |
|
|
37
|
+
| 2 | POST | `/xxx/applicable` | 查询可用数据 | 🆕 新增 | — |
|
|
38
|
+
| 3 | POST | `/xxx/list/{pageNum}/{pageSize}` | 分页查询(新增字段) | 📝 扩展 | 🟡 |
|
|
39
|
+
| 4 | GET | `/xxx/{id}` | 详情(新增子表) | 📝 扩展 | 🟡 |
|
|
40
|
+
| 5 | DELETE | `/xxx/{ids}` | 批量删除 | — 不变 | 🟢 |
|
|
41
|
+
|
|
42
|
+
> 变更标记:🆕 新增 | 📝 扩展 | ❌ 删除 | — 不变 | ⚠️ 废弃
|
|
43
|
+
> 前端影响:🔴 BREAKING | 🟡 NEEDS-UPDATE | 🟢 TRANSPARENT
|
|
44
|
+
|
|
45
|
+
---
|
|
46
|
+
|
|
47
|
+
## 二、新增接口
|
|
48
|
+
|
|
49
|
+
### 2.1 <接口名称>
|
|
50
|
+
|
|
51
|
+
> `GET /xxx/meta` | 用途:获取下拉选项
|
|
52
|
+
|
|
53
|
+
**路径参数**:无
|
|
54
|
+
|
|
55
|
+
**Query 参数**:
|
|
56
|
+
|
|
57
|
+
| 字段 | 类型 | 必填 | 说明 |
|
|
58
|
+
|------|------|:----:|------|
|
|
59
|
+
| `type` | String | 是 | 选项类型(见数据字典) |
|
|
60
|
+
|
|
61
|
+
**响应示例**:
|
|
62
|
+
|
|
63
|
+
```json
|
|
64
|
+
{
|
|
65
|
+
"code": 0,
|
|
66
|
+
"msg": "成功",
|
|
67
|
+
"data": [
|
|
68
|
+
{ "label": "选项A", "value": "A" }
|
|
69
|
+
]
|
|
70
|
+
}
|
|
71
|
+
```
|
|
72
|
+
|
|
73
|
+
**响应字段**:
|
|
74
|
+
|
|
75
|
+
| 字段 | 类型 | 说明 |
|
|
76
|
+
|------|------|------|
|
|
77
|
+
| `data[].label` | String | 选项显示文本 |
|
|
78
|
+
| `data[].value` | String | 选项值 |
|
|
79
|
+
|
|
80
|
+
**前端用法**:`type` → 下拉选择控件数据源
|
|
81
|
+
|
|
82
|
+
---
|
|
83
|
+
|
|
84
|
+
### 2.2 <接口名称>
|
|
85
|
+
|
|
86
|
+
> `POST /xxx/applicable` | 用途:查询可用数据
|
|
87
|
+
|
|
88
|
+
**请求体示例**:
|
|
89
|
+
|
|
90
|
+
```json
|
|
91
|
+
{
|
|
92
|
+
"keyword": "张三",
|
|
93
|
+
"status": "ENABLED"
|
|
94
|
+
}
|
|
95
|
+
```
|
|
96
|
+
|
|
97
|
+
**请求字段**:
|
|
98
|
+
|
|
99
|
+
| 字段 | 类型 | 必填 | 校验 | 说明 |
|
|
100
|
+
|------|------|:----:|------|------|
|
|
101
|
+
| `keyword` | String | 否 | ≤50字符 | 模糊搜索关键词 |
|
|
102
|
+
| `status` | String | 否 | 枚举 | 状态过滤(见数据字典) |
|
|
103
|
+
|
|
104
|
+
**响应字段**:
|
|
105
|
+
|
|
106
|
+
| 字段 | 类型 | 说明 |
|
|
107
|
+
|------|------|------|
|
|
108
|
+
| `data[].id` | Long | 数据ID |
|
|
109
|
+
| `data[].name` | String | 数据名称 |
|
|
110
|
+
| `data[].status` | String | 状态(见数据字典) |
|
|
111
|
+
|
|
112
|
+
**前端用法**:
|
|
113
|
+
- `keyword` → 搜索输入框,输入后实时查询
|
|
114
|
+
- `status` → 筛选下拉框,选中后过滤结果
|
|
115
|
+
|
|
116
|
+
---
|
|
117
|
+
|
|
118
|
+
## 三、扩展接口详情
|
|
119
|
+
|
|
120
|
+
### 3.1 <接口名称>(新增字段)
|
|
121
|
+
|
|
122
|
+
> `POST /xxx/list/{pageNum}/{pageSize}` | 变更:新增 `status` 查询条件 + 响应新增 `status` 字段
|
|
123
|
+
|
|
124
|
+
> 🟡 **NEEDS-UPDATE**:前端可选适配新字段,不修改不影响现有功能
|
|
125
|
+
|
|
126
|
+
**新增请求字段**:
|
|
127
|
+
|
|
128
|
+
| 字段 | 类型 | 必填 | 说明 |
|
|
129
|
+
|------|------|:----:|------|
|
|
130
|
+
| `status` | String | 否 | 状态过滤(见数据字典) |
|
|
131
|
+
|
|
132
|
+
**新增响应字段**:
|
|
133
|
+
|
|
134
|
+
| 字段 | 类型 | 说明 |
|
|
135
|
+
|------|------|------|
|
|
136
|
+
| `data.list[].status` | String | 状态值(见数据字典) |
|
|
137
|
+
|
|
138
|
+
**行为变更**:分页结果默认按创建时间倒序(原为正序)
|
|
139
|
+
|
|
140
|
+
---
|
|
141
|
+
|
|
142
|
+
## 四、数据结构
|
|
143
|
+
|
|
144
|
+
### VO 定义
|
|
145
|
+
|
|
146
|
+
#### <VOName>(<用途>)
|
|
147
|
+
|
|
148
|
+
```typescript
|
|
149
|
+
interface <VOName> {
|
|
150
|
+
id: number; // 数据ID
|
|
151
|
+
name: string; // 数据名称
|
|
152
|
+
status: string; // 状态(见数据字典)
|
|
153
|
+
createTime: string | null; // 创建时间,ISO 8601
|
|
154
|
+
}
|
|
155
|
+
```
|
|
156
|
+
|
|
157
|
+
### 数据字典
|
|
158
|
+
|
|
159
|
+
#### status — 状态
|
|
160
|
+
|
|
161
|
+
| 值 | 说明 | 前端展示 |
|
|
162
|
+
|------|------|------|
|
|
163
|
+
| `ENABLED` | 启用 | 🟢 绿色标签 |
|
|
164
|
+
| `DISABLED` | 禁用 | 🔴 红色标签 |
|
|
165
|
+
|
|
166
|
+
#### type — 选项类型
|
|
167
|
+
|
|
168
|
+
| 值 | 说明 |
|
|
169
|
+
|------|------|
|
|
170
|
+
| `A` | 类型A |
|
|
171
|
+
| `B` | 类型B |
|
|
172
|
+
|
|
173
|
+
---
|
|
174
|
+
|
|
175
|
+
## 五、前端交互建议
|
|
176
|
+
|
|
177
|
+
### <页面名称>
|
|
178
|
+
|
|
179
|
+
| 操作 | 调用接口 | 触发时机 | 交互效果 |
|
|
180
|
+
|------|----------|----------|----------|
|
|
181
|
+
| 页面加载 | `GET /xxx/meta` | `onMounted` | 填充筛选下拉框 |
|
|
182
|
+
| 搜索 | `POST /xxx/list` | 输入后防抖 300ms | 刷新表格数据 |
|
|
183
|
+
| 查看详情 | `GET /xxx/{id}` | 点击行 | 弹出详情抽屉 |
|
|
184
|
+
|
|
185
|
+
---
|
|
186
|
+
|
|
187
|
+
## 六、兼容性说明
|
|
188
|
+
|
|
189
|
+
| 场景 | 旧行为 | 新行为 | 前端处理 |
|
|
190
|
+
|------|--------|--------|----------|
|
|
191
|
+
| `status=null` 的历史数据 | 字段不存在 | 返回 `null` | 前端判空显示「未设置」 |
|
|
192
|
+
| 旧版分页响应 | 无 `status` 字段 | 新增 `status` 字段 | 前端可选渲染,不阻塞 |
|
|
193
|
+
|
|
194
|
+
---
|
|
195
|
+
|
|
196
|
+
## 七、错误码速查表
|
|
197
|
+
|
|
198
|
+
| 编码 | 常量 | 信息 | 触发场景 |
|
|
199
|
+
|------|------|------|----------|
|
|
200
|
+
| 1002001 | `XXX_NOT_FOUND` | 数据不存在 | 查询ID不存在 |
|
|
201
|
+
| 1002002 | `XXX_STATUS_INVALID` | 状态不允许操作 | 状态流转违规 |
|
|
202
|
+
```
|
|
203
|
+
|
|
204
|
+
## 增量接口文档差异
|
|
205
|
+
|
|
206
|
+
增量文档与完整文档结构相同,但:
|
|
207
|
+
|
|
208
|
+
- **前端改动清单**:必须包含,放在文档开头,列出所有 🔴 和 🟡 项
|
|
209
|
+
- **接口变更概览**:只列出有变更的接口,必须包含「前端影响」列
|
|
210
|
+
- **新增接口**章节:只写新增的
|
|
211
|
+
- **扩展接口详情**:每个接口只展示新增/变更字段,用注释标注 `// ========== 新增字段 ==========`
|
|
212
|
+
- **前端影响标注**:每个扩展接口标题下方必须用 callout 标注影响级别:
|
|
213
|
+
|
|
214
|
+
```markdown
|
|
215
|
+
> 🔴 **BREAKING**:请求体 `sceneCode` 字段已删除,前端必须改为传 `projectType`,否则接口无法正常工作
|
|
216
|
+
|
|
217
|
+
> 🟡 **NEEDS-UPDATE**:新增 `projectType` 可选参数,前端可选适配以使用筛选功能
|
|
218
|
+
|
|
219
|
+
> 🟢 **TRANSPARENT**:后端自动 orgCode 过滤,前端无需修改(可选删除旧的传 orgCode 逻辑)
|
|
220
|
+
```
|
|
221
|
+
|
|
222
|
+
- **审查修复标注**:如果接口在 review 阶段被修改,在扩展接口详情中添加标注:
|
|
223
|
+
|
|
224
|
+
```markdown
|
|
225
|
+
> ℹ️ **审查修复**:此接口在 harness-review 阶段有以下修改:
|
|
226
|
+
> - `code` 值从硬编码数字改为 `ProjectTypeEnum` 枚举编码
|
|
227
|
+
> - 前端依赖 `code` 字段需同步更新
|
|
228
|
+
```
|
|
229
|
+
|
|
230
|
+
- **数据结构**:只写新增或变更的 VO 字段和数据字典
|
|
231
|
+
- **兼容性说明**:重点描述旧数据如何兼容新字段 + 审查修复引入的 breaking change,每行标注影响级别
|
|
232
|
+
- **错误码**:只列新增的错误码
|
|
233
|
+
- **前端交互建议**:只描述受变更影响的页面和操作
|
|
@@ -0,0 +1,198 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: harness-archive
|
|
3
|
+
description: 归档所有变更产出(计划/测试报告/审查/SQL/API文档)到
|
|
4
|
+
.harness/archive/,含归档元数据和可视化最终总结。使用场景:归档、完成归档、收尾、打包产出物
|
|
5
|
+
---
|
|
6
|
+
<!-- generated by harness_deploy.py; core=9a7af3c66acaad35; overlay=java; agent=codex; do not edit -->
|
|
7
|
+
# harness-archive — 变更归档
|
|
8
|
+
|
|
9
|
+
## Purpose
|
|
10
|
+
|
|
11
|
+
将 `.harness/changes/<change-name>/` 的所有产出移入 `.harness/archive/YYYY-MM-DD-<change-name>/`,生成归档元数据和可视化最终报告,释放工作区。
|
|
12
|
+
|
|
13
|
+
## When to Use
|
|
14
|
+
|
|
15
|
+
使用场景:
|
|
16
|
+
|
|
17
|
+
- 用户说"归档 / 完成归档 / 收尾 / 打包产出物"。
|
|
18
|
+
- submit 已推送、test/review 报告已就绪(或已明确标记跳过/未运行),需要封存变更产出。
|
|
19
|
+
- 变更闭环最后一站,归档后从工作区移除 `.harness/changes/<change-name>/`。
|
|
20
|
+
|
|
21
|
+
跳过场景:
|
|
22
|
+
|
|
23
|
+
- 变更尚未 submit 推送(归档前 commit 必须已 push)。
|
|
24
|
+
- 仍存在未结清的 test/review 验证(除非已明确标记 CONDITIONAL_OK)。
|
|
25
|
+
|
|
26
|
+
自动调用边界:
|
|
27
|
+
|
|
28
|
+
- 归档涉及移动/删除原变更目录,支持被其他 skill 调用,但调用前必须确保前置条件已满足;也支持用户显式 `/harness-archive` 调用。
|
|
29
|
+
- 归档前确认是强制阻断检查点,用户拒绝 → 终止流程,不执行任何操作。
|
|
30
|
+
|
|
31
|
+
## 前置条件
|
|
32
|
+
|
|
33
|
+
- commit 已 push(`git log @{u}..HEAD` 输出为空)
|
|
34
|
+
- **最终 hash 来源**:worktree 模式(`meta/worktree.json` requested=true)下读 ledger 的 `mergeFinalHash`(由 `/harness-submit` 合并段写入);主目录模式读 submit 的 `final pushed hash`。当前 `git rev-parse HEAD` 须一致
|
|
35
|
+
- test 报告存在或标记"跳过";review 报告存在或标记"未运行 review"(review 不阻塞归档)
|
|
36
|
+
|
|
37
|
+
## Inputs
|
|
38
|
+
|
|
39
|
+
- `$ARGUMENTS`:变更名(可选,留空时 Glob `.harness/changes/*/plans/*-plan.md` 自动检测,排除 `.harness/archive/`)
|
|
40
|
+
- 相关文件:`.harness/changes/<change-name>/logs/execution-log.md`、`.harness/changes/<change-name>/events.ndjson`、`evidence/verification-ledger.json`、各阶段 reports/
|
|
41
|
+
|
|
42
|
+
## 统一读取协议
|
|
43
|
+
|
|
44
|
+
1. **`.harness/changes/<change-name>/` 是唯一真相源** — 所有输入从该目录读取,产物写入对应子目录
|
|
45
|
+
2. **change-name 优先从 frontmatter 读取** — `spec/*-design.md`、`plans/*-plan.md` 的 YAML `change-name`
|
|
46
|
+
3. **frontmatter 缺失时兼容旧格式** — 从路径推断,标记 `🟡 legacy-plan`,不失败
|
|
47
|
+
4. **spec** — 设计真相源:`spec/<change>-design.md`
|
|
48
|
+
5. **plan** — 任务真相源:`plans/<change>-plan.md`
|
|
49
|
+
6. **implementation-detail** — 自适应执行参考;legacy 缺失 🟡WARN,不阻断
|
|
50
|
+
7. **test-scenarios** — 测试真相源:`plans/<change>-test-scenarios.md`
|
|
51
|
+
8. **禁止读取 `docs/superpowers/` 作为正式输入** — 旧草稿仅人工线索
|
|
52
|
+
|
|
53
|
+
状态目录分层:新路径优先,旧路径兼容 → [[../protocols/state-layout-protocol.md|state-layout-protocol]]
|
|
54
|
+
|
|
55
|
+
## Workflow
|
|
56
|
+
|
|
57
|
+
### Phase 0:读取规则和上下文
|
|
58
|
+
|
|
59
|
+
1. 读取本文件。
|
|
60
|
+
2. 按需读取 `reference.md`(归档流程、manifest、summary-data、final-summary 渲染、目录结构与最终状态规则)。
|
|
61
|
+
3. 读取共用约束:
|
|
62
|
+
- `../protocols/archive-report-protocol.md`
|
|
63
|
+
- `../protocols/state-layout-protocol.md`
|
|
64
|
+
- `../protocols/powershell-protocol.md`
|
|
65
|
+
- `../protocols/sensitive-info-protocol.md`
|
|
66
|
+
- `../protocols/evidence-based-reporting-protocol.md`
|
|
67
|
+
- `../protocols/report-pipeline-protocol.md`
|
|
68
|
+
4. 解析 `$ARGUMENTS`:留空时 Glob 自动检测未归档变更,排除 `.harness/archive/`。
|
|
69
|
+
|
|
70
|
+
### Phase 1:确认归档对象(扫描未归档变更)
|
|
71
|
+
|
|
72
|
+
用 Glob 搜索 `.harness/changes/*/plans/*-plan.md`(排除 `.harness/archive/`),展示变更概要。
|
|
73
|
+
|
|
74
|
+
- **Read `checklist.md`** — 归档前检查项
|
|
75
|
+
- 发现多个未归档变更 → 让用户选择或终止
|
|
76
|
+
|
|
77
|
+
### Phase 2:确认归档 ⚠️ 强制阻断
|
|
78
|
+
|
|
79
|
+
AskUserQuestion 让用户确认归档操作。**用户拒绝 → 终止流程,不执行任何操作。**
|
|
80
|
+
|
|
81
|
+
- **Read `reference.md`** — 确认对话框的内容格式
|
|
82
|
+
|
|
83
|
+
### Phase 3:执行归档
|
|
84
|
+
|
|
85
|
+
1. append `phase.start` 事件。
|
|
86
|
+
2. 运行 `python <skills-root>/scripts/harness_archive.py status --change-dir ".harness/changes/<change-name>" --json` 前置检查。
|
|
87
|
+
3. 运行 `python <skills-root>/scripts/harness_archive.py finalize --change-dir ".harness/changes/<change-name>" --archive-root ".harness/archive" --json`;读 JSON(移动、collect、render、validate、manifest 比对)。**finalize 不再同步执行知识维护**(§8.2):它写一个 `pending` maintenance-outbox 项即返回,`knowledgeMaintenance=QUEUED`;写 outbox 失败时 `NOT_QUEUED`(warning,不回滚 archive,总状态 CONDITIONAL)。后续由 `harness-sync` / `harness_knowledge.py maintain` 异步推进 outbox。
|
|
88
|
+
4. 模型补写 `meta/archive-meta.md` 的维护者结论 / knownRisks / manualActions(脚本占位字段)。
|
|
89
|
+
5. append `phase.end` 事件。**finalize 失败或 validate 报错时不删除原目录**。
|
|
90
|
+
|
|
91
|
+
- **Read `reference.md`** — finalize 输出字段、archive-meta 格式、CONDITIONAL_OK 规则
|
|
92
|
+
- **Read `templates/summary-data-template.json`** — summary-data 数据结构
|
|
93
|
+
- **Read `templates/render-summary.mjs`** — final-summary 渲染脚本(finalize 内嵌调用)
|
|
94
|
+
|
|
95
|
+
### Phase 4:验证与提示
|
|
96
|
+
|
|
97
|
+
验证归档目录完整 → 提示用户归档完成。
|
|
98
|
+
|
|
99
|
+
- **Read `checklist.md`** — 归档后验证项
|
|
100
|
+
|
|
101
|
+
## P0 执行可信度规则
|
|
102
|
+
|
|
103
|
+
- 命令结果不得靠猜测;普通 Bash 被拒 → 立即改用等价 PowerShell 重试一次
|
|
104
|
+
- 仅 PowerShell 成功且有明确证据(构建/git/测试输出、文件存在、exit 0)时可标 ✅OK;否则 ❌FAIL 或 🟡WARN
|
|
105
|
+
- 禁止把 hook 拒绝、静态验证、无输出、用户跳过说成成功 → 详见 [[../protocols/powershell-protocol.md|powershell-protocol]]、[[../protocols/evidence-based-reporting-protocol.md|evidence-based-reporting-protocol]]
|
|
106
|
+
|
|
107
|
+
## 关键规则(硬门禁速查)
|
|
108
|
+
|
|
109
|
+
> 每条规则的详细判定、模板见 `reference.md` 对应章节;归档报告协议见 `../protocols/archive-report-protocol.md`,Shell 执行安全见 `../protocols/powershell-protocol.md`,敏感信息见 `../protocols/sensitive-info-protocol.md`,证据化报告见 `../protocols/evidence-based-reporting-protocol.md`,状态目录见 `../protocols/state-layout-protocol.md`。
|
|
110
|
+
|
|
111
|
+
### 一、同一时间最多 1 个未归档变更
|
|
112
|
+
|
|
113
|
+
扫描排除 `.harness/archive/`;多个未归档变更 → 让用户选择或终止,不批量归档。
|
|
114
|
+
|
|
115
|
+
### 二、归档前确认是强制阻断检查点
|
|
116
|
+
|
|
117
|
+
AskUserQuestion 确认;用户拒绝 → 终止,不执行任何操作。
|
|
118
|
+
|
|
119
|
+
### 三、文件移动只用内置工具或 PowerShell
|
|
120
|
+
|
|
121
|
+
移动用 Read+Write+验证 或 PowerShell;**禁止 Bash mv/cp/rm**。移动失败时不删除原目录,报错退出让用户手动处理。
|
|
122
|
+
|
|
123
|
+
### 四、数据化归档门禁(先数据后渲染)
|
|
124
|
+
|
|
125
|
+
必须通过 `harness_archive.py finalize` 生成 `reports/final/summary-data.json` 与 `final-summary.html` 并完成 validate;**禁止模型临场写 500+ 行 HTML**。统计数字只能来自 summary-data、events、ledger 或 manifest。详见 `../protocols/report-pipeline-protocol.md`、`../protocols/archive-report-protocol.md`、`reference.md`。
|
|
126
|
+
|
|
127
|
+
### 五、manifest/checksum 必须存在
|
|
128
|
+
|
|
129
|
+
归档前后生成 `evidence/archive-manifest-before.json` / `archive-manifest-after.json`(path/size/sha256),before/after 不一致时**不得删除原目录**。复杂 PowerShell 写入 `scripts/*.ps1` 后 `-File` 执行,禁止内联 `$` / `$_` / `@{}`。详见 `reference.md`。
|
|
130
|
+
|
|
131
|
+
### 六、归档前确认四项(缺一不可)
|
|
132
|
+
|
|
133
|
+
- commit 已 push(`git log @{u}..HEAD` 输出为空)
|
|
134
|
+
- **final hash 来源**:worktree 模式(requested=true)下读 ledger `mergeFinalHash`(submit 合并段);否则读 submit 日志 `final pushed hash`。当前 HEAD 须一致
|
|
135
|
+
- test 报告存在,或标记"跳过"/"未运行测试"
|
|
136
|
+
- review 报告:存在则作 📝ADVISORY 归档材料;不存在标记"📝ADVISORY:未运行 review"(review 不阻塞归档)
|
|
137
|
+
|
|
138
|
+
### 七、verification-ledger 汇总状态
|
|
139
|
+
|
|
140
|
+
归档前读 `evidence/verification-ledger.json`,提取各阶段 status、postTestClassification、复用关系,供 final-summary 真实展示状态演进。若 ledger 有 `postTestClassification`,final-summary 必须展示该分类及对应的复用/重测决策。
|
|
141
|
+
|
|
142
|
+
### 八、final-summary 不得伪造且必须展示状态演进
|
|
143
|
+
|
|
144
|
+
无测试报告 → 显示"未运行测试 / 静态验证",不得 100% 通过率;无 review → "📝ADVISORY:未运行 review"。状态用 ✅OK / 🟡WARN / 🔁REUSED / 🔁RETESTED / 📝ADVISORY / 🧹NON_BEHAVIORAL_CLEANUP,复用前一阶段结果显示 🔁REUSED,**不得伪装成重新执行,不得无脑全绿**。
|
|
145
|
+
|
|
146
|
+
**final-summary 必须产出**:Node 渲染器不可用/超时/exit 非 0/未产出文件时,`harness_archive.py` 自动用内置 Python fallback 渲染(含 changeName/finalStatus/commands/verification/changedFiles/archiveManifest/knownRisks/manualActions/maintenanceNotes,USER_SKIPPED/BLOCKED_BY_DBA/失败状态可见,全部 HTML 转义)。Node 与 Python fallback **都失败**时,finalize 立即恢复原 change 目录并 exit 非 0,**绝不归档一个没有 final-summary.html 的变更**。
|
|
147
|
+
|
|
148
|
+
### 九、CONDITIONAL_OK 最终状态
|
|
149
|
+
|
|
150
|
+
API 测试 `USER_SKIPPED` 或 DB 兼容 `BLOCKED_BY_DBA` 时,最终状态必须是 `CONDITIONAL_OK`,不能显示纯 `OK`。
|
|
151
|
+
|
|
152
|
+
### 十、未提交测试文件归档
|
|
153
|
+
|
|
154
|
+
未提交但用于验证的测试文件必须归档到 `backups/uncommitted-tests/` 并在 final-summary 中展示。
|
|
155
|
+
|
|
156
|
+
### 十一、phase.start 事件前置
|
|
157
|
+
|
|
158
|
+
阶段 0 之前必须先 append `phase.start` 事件(`harness_events.py append`);不得等归档完成才补。归档后 events.ndjson 与自动渲染的 execution-log.md 一起移入 archive。
|
|
159
|
+
|
|
160
|
+
### 十二、Shell 安全 / 敏感信息 / 证据化报告
|
|
161
|
+
|
|
162
|
+
git 命令通过 `powershell.exe -Command "..."` 执行;archive-meta.md 和 final-summary.html 不得含明文 token/密码/密钥;归档报告必须区分 ✅真实成功 / 🟡跳过·静态验证 / ❌失败。
|
|
163
|
+
|
|
164
|
+
## Output Format
|
|
165
|
+
|
|
166
|
+
> 归档元数据格式见 `reference.md` 的 archive-meta 模板;最终报告由 `templates/summary-data-template.json` 数据结构 + `templates/render-summary.mjs` 固定脚本渲染。
|
|
167
|
+
|
|
168
|
+
产出文件:
|
|
169
|
+
|
|
170
|
+
- `.harness/archive/YYYY-MM-DD-<change-name>/meta/archive-meta.md` — 归档元数据
|
|
171
|
+
- `.harness/archive/YYYY-MM-DD-<change-name>/events.ndjson` — 结构化事件层(新流程推荐;旧 archive 可缺失)
|
|
172
|
+
- `.harness/archive/YYYY-MM-DD-<change-name>/reports/final/summary-data.json` — 最终报告数据源
|
|
173
|
+
- `.harness/archive/YYYY-MM-DD-<change-name>/reports/final/final-summary.html` — 由 `render-summary.mjs` 渲染(Node 不可用或失败时由 `harness_archive.py` 内置 Python fallback 渲染);**始终必须存在**,否则 finalize 恢复原 change 目录并 exit 非 0
|
|
174
|
+
- `.harness/archive/YYYY-MM-DD-<change-name>/evidence/archive-manifest-before.json` / `archive-manifest-after.json` — 归档前后 manifest/checksum
|
|
175
|
+
|
|
176
|
+
## 渐进披露
|
|
177
|
+
|
|
178
|
+
- **Read `checklist.md`** 仅在 Phase 1 归档前检查和 Phase 4 验证时 — 含归档前检查项和归档后验证项
|
|
179
|
+
- **Read `reference.md`** 仅在 Phase 0/2/3 时 — 含归档流程、archive-meta 格式、summary-data 字段说明、final-summary 渲染规则、目录结构与最终状态规则
|
|
180
|
+
- **Read `reference.md`** 仅在 Phase 3 finalize 时 — summary-data、final-summary 校验与 archive-meta 补写
|
|
181
|
+
- **Read `templates/summary-data-template.json`** 仅在 Phase 3 生成 `summary-data.json` 时 — 含最终报告数据结构
|
|
182
|
+
- **Read `templates/render-summary.mjs`** 仅在 Phase 3 渲染 `final-summary.html` 时 — 固定 HTML 渲染脚本
|
|
183
|
+
|
|
184
|
+
## 交互白名单
|
|
185
|
+
|
|
186
|
+
**仅允许**归档确认(Phase 2 AskUserQuestion);拒绝 → 终止,不执行任何移动。
|
|
187
|
+
|
|
188
|
+
## 执行日志
|
|
189
|
+
|
|
190
|
+
`events.ndjson` 为唯一事实源(schema_version 2,`note` 承载人类可读摘要);`logs/execution-log.md` 由 `harness_events.py` 渲染,**禁止手工 Edit**。结构 → [[../protocols/report-pipeline-protocol.md|report-pipeline-protocol]]
|
|
191
|
+
|
|
192
|
+
```powershell
|
|
193
|
+
python <skills-root>/scripts/harness_events.py append --change-dir ".harness/changes/<change-name>" --phase <phase> --type phase.start --note "<触发指令>"
|
|
194
|
+
```
|
|
195
|
+
|
|
196
|
+
> **脚本接线**:`harness_events.py append`;`harness_archive.py finalize`;`harness_preflight.py check`;`harness_ledger.py can-reuse`;`harness_service.py ensure/stop`(须 `--files`/`serviceStart.inputFiles`)。JSON 输出按 D13 护栏解读。
|
|
197
|
+
|
|
198
|
+
> **Task 4 §6.1 写入契约**:普通 `append` = 加锁 -> 追加一行 -> fsync -> 解锁,**不 load 历史、不渲染**(O(1),跨进程锁 `events.ndjson.lock`,UUID 用完整 `uuid4().hex` 无需去重扫描)。仅 `--type phase.end` append 在追加成功后渲染一次 `execution-log.md`;显式 `harness_events.py render` 随时从完整 events 重建;`harness_archive.py finalize` 在 collect 前强制 render 一次。高频 command append 期间 log 可能滞后,phase 边界保持最新。
|
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
---
|
|
2
|
+
description: harness-archive 的归档前检查项和归档后验证项。仅在 Phase 1 检查和 Phase 4 验证时读取。
|
|
3
|
+
---
|
|
4
|
+
|
|
5
|
+
# harness-archive 检查清单
|
|
6
|
+
|
|
7
|
+
## P0 数据化归档门禁
|
|
8
|
+
|
|
9
|
+
归档遵循 `../protocols/archive-report-protocol.md`,门禁要点见 SKILL.md `## 关键规则` 四/五/九:
|
|
10
|
+
|
|
11
|
+
- 先写 `reports/final/summary-data.json`,再渲染 `reports/final/final-summary.html`。
|
|
12
|
+
- 归档前生成 `evidence/archive-manifest-before.json`,移动后生成 `archive-manifest-after.json`。
|
|
13
|
+
- final-summary 的统计只能来自 summary-data 或 manifest。
|
|
14
|
+
- before/after checksum 不一致时,不得删除原目录。
|
|
15
|
+
- 默认渲染器 `templates/render-summary.mjs`(finalize 内嵌调用)。
|
|
16
|
+
|
|
17
|
+
## 归档前检查(Phase 1)
|
|
18
|
+
|
|
19
|
+
> ⚠️ **phase.start 前置**:在归档前检查的第一项前,必须先 append `phase.start` 事件(见 SKILL.md `## 执行日志`)。不得等归档完成才补。
|
|
20
|
+
|
|
21
|
+
- [ ] 已 append `phase.start` 事件(`harness_events.py append --change-dir ".harness/changes/<change-name>"`)
|
|
22
|
+
- [ ] 只有一个未归档变更目录(多个时终止或让用户选择)
|
|
23
|
+
- [ ] 变更目录下有 plans/ 子目录(至少有计划文件)
|
|
24
|
+
- [ ] `logs/execution-log.md` 存在(需要追加归档记录;新路径缺失时兼容根目录 `execution-log.md`)
|
|
25
|
+
- [ ] 准备生成 `archive-manifest-before.json`(path/size/sha256)
|
|
26
|
+
- [ ] 准备生成 `summary-data.json`(业务目标、阶段状态、验证、产物、维护者结论)
|
|
27
|
+
- [ ] git status 无未提交的重要变更(归档应对应已提交的代码)
|
|
28
|
+
- [ ] **commit 已 push**:`powershell.exe -Command "git -C '<项目路径>' log @{u}..HEAD --oneline"` 输出为空(无未推送提交)
|
|
29
|
+
- [ ] **最终 hash 一致**:worktree 模式(requested=true)下读 `evidence/verification-ledger.json` 的 `mergeFinalHash`(submit 合并段写入),否则从 events/ledger 读取 `final pushed hash`,与当前 `git rev-parse HEAD` 比对
|
|
30
|
+
- [ ] **test/review 报告状态确认**:
|
|
31
|
+
- ✅ `.harness/changes/<change-name>/tests/test-report-*.md` 存在 → 归档正常
|
|
32
|
+
- 🟡 不存在 → 必须在 archive-meta.md 和 final-summary.html 中标记"跳过测试"或"未运行测试",不得伪造通过率
|
|
33
|
+
- ✅ `.harness/changes/<change-name>/reports/review/review-report-*.md` 存在(旧路径 `reviews/review-report-*.md` 兼容回退)→ 作为 📝ADVISORY 归档材料
|
|
34
|
+
- 📝 `.harness/changes/<change-name>/reports/review/fixback-*.md` 存在 → 随 review 报告一并归档;默认 advisory,除非 `strict-review-gate=true`
|
|
35
|
+
- 🟡 不存在但 `logs/execution-log.md` 有 harness-review 小节 → **review 已运行但未落盘**(harness-review `context:fork` 交接缝常见,见 `agent/case-candidates/2026-06-30-harness-review-forked-not-persisting-report.md`):从 execution-log/会话补落盘到 `reports/review/review-report-YYYYMMDD-HHmm.md` 再归档,**不得误标"未运行 review"**(实际跑过)
|
|
36
|
+
- 🟡 不存在且 execution-log 无 review 小节 → 在 archive-meta.md 和 final-summary.html 中标记"📝ADVISORY:未运行 review"
|
|
37
|
+
|
|
38
|
+
## 归档后验证(Phase 4)
|
|
39
|
+
|
|
40
|
+
- [ ] `.harness/archive/YYYY-MM-DD-<change-name>/` 目录存在(通过 Glob 实际扫描确认)
|
|
41
|
+
- [ ] 所有子目录(plans/, tests/, reviews/, sqls/)已完整移入(通过 Glob 实际扫描确认,不仅看预期路径)
|
|
42
|
+
- [ ] before/after manifest 校验通过(排除 `logs/execution-log.md`——归档追加结束记录预期 sha256 变化;其他 moved 文件 sha256 必须一致,missing/mismatch=0)
|
|
43
|
+
- [ ] archive-meta.md 已创建,frontmatter 字段完整
|
|
44
|
+
- [ ] summary-data.json 已生成,且为合法 JSON
|
|
45
|
+
- [ ] final-summary.html 已由 `templates/render-summary.mjs` 渲染生成
|
|
46
|
+
- [ ] **final-summary.html 真实性检查**:
|
|
47
|
+
- 无测试报告时,`summary-data.json.verification.unitTests.status` / `summary-data.json.verification.apiTests.status` 必须标记为 `NOT_RUN`、`USER_SKIPPED`、`BLOCKED` 或 `STATIC_ONLY`,不得显示 100%
|
|
48
|
+
- 无 review 报告时,`summary-data.json.reviewSummary.status` 必须标记为 `ADVISORY_NOT_RUN`,不得显示 100%
|
|
49
|
+
- 跳过、复用、人工确认的部分必须明确标记,不伪装成 ✅
|
|
50
|
+
- final-summary.html 中不得残留 `{{...}}` 占位符
|
|
51
|
+
- [ ] 原目录 `.harness/changes/<change-name>/` 已删除(仅在前面所有验证通过后)
|
|
52
|
+
- [ ] .harness/ 下无残留未归档变更目录
|