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,319 @@
|
|
|
1
|
+
---
|
|
2
|
+
description: harness-test 的 Phase 0 环境准备 + Playwright 探测 + 关门检查清单。仅在执行测试前的环境准备阶段读取。
|
|
3
|
+
---
|
|
4
|
+
|
|
5
|
+
# harness-test 检查清单 — Phase 0 环境准备 + 关门检查
|
|
6
|
+
|
|
7
|
+
以下检查项确认完了再开始测试。每一项背后都有踩坑经历。
|
|
8
|
+
|
|
9
|
+
#### 0.0 加载项目配置(如存在)与确定变更名
|
|
10
|
+
|
|
11
|
+
先检查当前项目的测试配置文件(按优先级查找):
|
|
12
|
+
|
|
13
|
+
1. **优先**:`.harness/config/harness-test-config.md`(集中配置目录)
|
|
14
|
+
2. **兼容**:`harness-test/harness-test-config.md(兼容旧路径)`(旧路径,过渡期仍支持)
|
|
15
|
+
|
|
16
|
+
如果任一文件存在,**必须先读取并应用其中的配置**。配置文件通常包含:
|
|
17
|
+
|
|
18
|
+
- **登录端点**:本地无法直接登录时,远程认证服务(如 SSO/Gateway)的登录 URL
|
|
19
|
+
- **测试账号**:各权限级别的用户名密码(如 admin、一层组织管理员等)
|
|
20
|
+
- **真实测试数据**:有效的部门编码和名称、项目 ID、规则 ID 等
|
|
21
|
+
- **环境调整**:需要使用的 profile、需要临时放行的 URL 路径、需要跳过的模块
|
|
22
|
+
- **避坑补充**:本项目特有的已知问题和解决方案
|
|
23
|
+
|
|
24
|
+
**Profile 选择**(从配置文件读取,如无配置则询问用户;按技术栈,Java Spring Boot 为例):
|
|
25
|
+
|
|
26
|
+
| Profile | 适用场景 | 配置文件(按技术栈) |
|
|
27
|
+
|---------|---------|---------|
|
|
28
|
+
| `local` | 连接远程数据库/缓存 | 应用本地配置(如 `application-local.yml`) |
|
|
29
|
+
| `local-dev` | 完全本地隔离 | 应用本地隔离配置(如 `application-local-dev.yml`) |
|
|
30
|
+
|
|
31
|
+
> **关键**:不指定 profile 时默认使用主应用配置文件(如 `application.yml`)中的配置(可能指向生产环境),必须显式指定。启动命令必须包含对应技术栈的 profile 指定参数(如 Spring Boot 的 `--spring.profiles.active=<profile>`)。
|
|
32
|
+
|
|
33
|
+
然后确定变更名:用 Glob 搜索 `.harness/changes/*/plans/*-plan.md`(**排除 `.harness/archive/*/`**),读取 frontmatter 提取 `change-name`。
|
|
34
|
+
|
|
35
|
+
#### 0.1 命令执行模式 preflight(⚠️ 必须在编译/启动服务/生成执行器之前执行)
|
|
36
|
+
|
|
37
|
+
- [ ] 检查 PowerShell 基础命令:`powershell.exe -NoProfile -Command "$PSVersionTable.PSVersion"` 返回 exitCode=0
|
|
38
|
+
- [ ] 检查执行器运行时可用性(如 Node 绝对路径):`powershell.exe -NoProfile -Command "& 'C:\nvm4w\nodejs\node.exe' --version"` 返回 exitCode=0
|
|
39
|
+
- [ ] 检查构建工具可用性(如 Maven):`powershell.exe -NoProfile -Command "mvn -version"` 返回 exitCode=0
|
|
40
|
+
- [ ] 检查安全分类器:上述任一命令是否返回"安全分类器暂时不可用" / Auto mode 拦截 → **不应出现**
|
|
41
|
+
- [ ] 将通过的 `executorPath` / `powershellVersion` / `buildToolVersion` 写入 `.harness/changes/<change-name>/runtime/preflight.json`
|
|
42
|
+
- [ ] **任一情况触发硬停**:原文输出"❌ 命令执行模式不可用:PowerShell/接口测试执行器无法稳定执行...",**不得继续编译/启动服务/生成执行器,不得长时间等待,不得盲目降级到 Playwright MCP**
|
|
43
|
+
- [ ] 用户确认切换权限模式后,**重新执行 0.1**;重试 ≤ 1 次
|
|
44
|
+
|
|
45
|
+
#### 0.2 fallback 执行器探测(仅在首选执行器不可用时执行)
|
|
46
|
+
|
|
47
|
+
- [ ] 如果 0.1 已确认首选接口测试执行器可用:标记 `NOT_NEEDED`,**跳过本阶段**,直接使用接口测试执行器
|
|
48
|
+
- [ ] 仅当首选执行器不可用时,检查 PowerShell batch runner (`.ps1`) 是否可用
|
|
49
|
+
- [ ] 仅当 PowerShell batch 也不可用时,检查 Claude Code 是否暴露 Playwright MCP 工具(`mcp__plugin_playwright_playwright__*` 存在)
|
|
50
|
+
- [ ] 检查 `claude mcp list` 中是否有 playwright(如果可以执行命令)
|
|
51
|
+
- [ ] 检查 `@playwright/mcp` 是否可启动
|
|
52
|
+
- [ ] 检查当前 skill 的 `allowed-tools` 是否允许 Playwright 相关工具
|
|
53
|
+
- [ ] 输出 fallback 执行器可用性表格(见 reference.md)
|
|
54
|
+
- [ ] 记录决策:接口测试执行器 / PowerShell batch / Playwright MCP browser_evaluate / curl fallback
|
|
55
|
+
- [ ] 如果 fallback 不可用,必须写明原因,不得静默改用 curl
|
|
56
|
+
|
|
57
|
+
#### 0.3 依赖模块预安装检查
|
|
58
|
+
|
|
59
|
+
> **强制检查,不可跳过。** 即使服务已运行,worktree 中的编译仍可能缺少依赖(服务可能从主目录启动)。
|
|
60
|
+
|
|
61
|
+
**在编译前检查上游依赖模块是否已安装到本地仓库**(按技术栈,Java/Maven 为例):
|
|
62
|
+
|
|
63
|
+
```powershell
|
|
64
|
+
powershell.exe -Command "Test-Path '$env:USERPROFILE\.m2\repository\<group-path>\<module>\*\*.jar'"
|
|
65
|
+
```
|
|
66
|
+
|
|
67
|
+
如果缺失,先安装上游依赖:
|
|
68
|
+
```powershell
|
|
69
|
+
powershell.exe -Command "mvn install -pl <upstream-modules> -am -DskipTests -nsu"
|
|
70
|
+
```
|
|
71
|
+
|
|
72
|
+
#### 0.4 编译确认(按技术栈,Java/Maven 为例)
|
|
73
|
+
|
|
74
|
+
```powershell
|
|
75
|
+
powershell.exe -Command "Test-Path 'target/classes/<package>/<ChangedClass>.class'"
|
|
76
|
+
```
|
|
77
|
+
编译产物时间戳早于源文件 → 重新编译:
|
|
78
|
+
```powershell
|
|
79
|
+
powershell.exe -Command "mvn compile -pl <module> -o -q"
|
|
80
|
+
```
|
|
81
|
+
|
|
82
|
+
**编译成功必须有证据**:
|
|
83
|
+
- 构建工具输出包含成功标志(如 Maven 的 `BUILD SUCCESS`)才能继续测试
|
|
84
|
+
- 如果命令被 hook 拒绝(`Denied` / `PreToolUse:Bash hook error`),停止流程
|
|
85
|
+
- 不得在编译失败时继续宣称"准备进入测试阶段"
|
|
86
|
+
|
|
87
|
+
#### 0.5 认证方案确认
|
|
88
|
+
|
|
89
|
+
| 方案 | 适用场景 | 操作 |
|
|
90
|
+
|------|----------|------|
|
|
91
|
+
| A. 配置放行 | 纯本地开发 | 应用配置文件中放行测试接口(如 `permit-all-urls`) |
|
|
92
|
+
| B. 本地凭证 | 有本地认证服务 | 通过本地登录接口获取认证凭证 |
|
|
93
|
+
| C. 权限降级 | 临时测试 | 无认证上下文时降级为高权限账号 |
|
|
94
|
+
|
|
95
|
+
> ⚠️ 方案 A 或 C 时,测试完成后确认还原配置。
|
|
96
|
+
|
|
97
|
+
#### 0.6 请求头确认
|
|
98
|
+
|
|
99
|
+
所有 HTTP 请求必须带:`Content-Type: application/json; charset=UTF-8` 和租户标识(如项目适用,如 `tenant-id: <从配置读取>`)。
|
|
100
|
+
|
|
101
|
+
#### 0.7 编码确认
|
|
102
|
+
|
|
103
|
+
Windows 环境特别注意:
|
|
104
|
+
- 不要用 `curl` 发送含中文的请求体(curl 在 Windows 默认用 GBK 编码)
|
|
105
|
+
- 优先用接口测试执行器;单次临时请求可用 PowerShell `Invoke-RestMethod`
|
|
106
|
+
- curl 仅作为最后兜底,且必须用 UTF-8 JSON body file
|
|
107
|
+
|
|
108
|
+
#### 0.8 配置文件完整性检查
|
|
109
|
+
|
|
110
|
+
**如果使用 worktree**,检查配置文件是否完整(按技术栈,Java Spring Boot 为例):
|
|
111
|
+
|
|
112
|
+
```powershell
|
|
113
|
+
powershell.exe -Command "Test-Path '<worktree-path>/<module>/src/main/resources/application-<profile>.yml'"
|
|
114
|
+
```
|
|
115
|
+
|
|
116
|
+
如果缺失,从主目录复制:
|
|
117
|
+
```powershell
|
|
118
|
+
powershell.exe -Command "Copy-Item '<main-dir>/<module>/src/main/resources/application-<profile>.yml' '<worktree-path>/<module>/src/main/resources/' -Force"
|
|
119
|
+
```
|
|
120
|
+
|
|
121
|
+
**检查关键配置项**(读取配置文件内容确认,按项目):
|
|
122
|
+
- 外部服务地址(如 `workflow.baseUrl` 或类似属性)— 缺失会导致组件初始化失败
|
|
123
|
+
- 服务注册开关(如 `spring.cloud.nacos.discovery.register-enabled: false`)— 缺失会导致线上流量路由到本地
|
|
124
|
+
- 接口放行配置(如 `udp.security.permit-all-urls`)— 需包含本次测试的接口路径
|
|
125
|
+
|
|
126
|
+
#### 0.9 Playwright 远程访问确认
|
|
127
|
+
|
|
128
|
+
如果接口测试需要通过 Playwright 访问远程服务(如远程认证服务获取凭证),确认 Playwright MCP 配置允许目标地址。
|
|
129
|
+
|
|
130
|
+
检查 `.mcp.json` 或全局 MCP 配置中 Playwright 的 `allowedOrigins`:
|
|
131
|
+
```json
|
|
132
|
+
{
|
|
133
|
+
"playwright": {
|
|
134
|
+
"allowedOrigins": ["http://localhost:*", "http://<remote-ip>:*"]
|
|
135
|
+
}
|
|
136
|
+
}
|
|
137
|
+
```
|
|
138
|
+
|
|
139
|
+
> 如果 Playwright 无法访问远程地址,降级为 PowerShell Invoke-RestMethod 获取认证凭证。
|
|
140
|
+
|
|
141
|
+
#### 0.10 服务确认、服务决策门与启动等待
|
|
142
|
+
|
|
143
|
+
检查服务是否运行(优先使用已知接口,不依赖通用健康端点如 `/actuator/health`):
|
|
144
|
+
|
|
145
|
+
```powershell
|
|
146
|
+
powershell.exe -NoProfile -Command "Test-NetConnection -ComputerName localhost -Port <port>"
|
|
147
|
+
powershell.exe -NoProfile -Command "try { (Invoke-WebRequest -Uri 'http://127.0.0.1:<port>/<context-path>/meta' -UseBasicParsing -TimeoutSec 3).StatusCode } catch { $_.Exception.Message }"
|
|
148
|
+
```
|
|
149
|
+
|
|
150
|
+
**如果端口已有应用服务进程,必须先进入服务决策门(Service Decision Gate),禁止先跑业务接口。**
|
|
151
|
+
|
|
152
|
+
需要展示:pid、profile、startTime、commandLine、healthResult、serviceFingerprint(match/missing/mismatch)、当前源码是否晚于服务启动时间。
|
|
153
|
+
|
|
154
|
+
询问用户:
|
|
155
|
+
|
|
156
|
+
```text
|
|
157
|
+
1. 直接复用当前服务
|
|
158
|
+
2. 重启服务,使用已知良好测试配置
|
|
159
|
+
3. 跳过接口测试,只执行单元测试
|
|
160
|
+
4. 停止测试
|
|
161
|
+
```
|
|
162
|
+
|
|
163
|
+
只有 `runtime/service-session.json` 与当前**同时**满足 `moduleInputsHash`/`startCommandHash`/`profile`/`overlayPath` 一致且进程身份(pid 存活 + create time)可确认时,才允许自动复用(§5.3)。任一变化 -> restart;身份无法确认 -> `needs-user-decision`;非 AI 用户进程不自动 kill。否则必须询问。`moduleInputsHash` 来自 CLI `--files` ∪ `serviceStart.inputFiles`,**空输入被拒绝**(不生成空指纹)。
|
|
164
|
+
|
|
165
|
+
**如果服务未运行**,询问用户:
|
|
166
|
+
|
|
167
|
+
```text
|
|
168
|
+
服务未启动(端口 <port> 无响应)。请选择:
|
|
169
|
+
1. AI 启动 — 使用已知良好测试配置,serviceState=AI_STARTED
|
|
170
|
+
2. 用户手动启动 — 启动后告诉我继续,serviceState=USER_STARTED
|
|
171
|
+
3. 跳过接口测试 — 只运行单元测试,serviceState=NOT_STARTED
|
|
172
|
+
4. 停止测试
|
|
173
|
+
```
|
|
174
|
+
|
|
175
|
+
**如果用户选择 AI 启动或 AI 重启**:
|
|
176
|
+
1. 从已知良好测试配置读取 module/profile/port/healthUrl/sdkUrl(按项目配置)。
|
|
177
|
+
2. 生成 ASCII 运行时配置叠加:`C:/temp/harness-test-overlay/<change-name>/application-harness-test.yml`(按技术栈;Java Spring Boot 的 application.yml 为例)。
|
|
178
|
+
3. 禁止默认直接 Edit tracked 应用配置文件(如 `application-local-dev.yml`)。
|
|
179
|
+
4. 默认启动命令(按技术栈,Java Spring Boot 为例):
|
|
180
|
+
```powershell
|
|
181
|
+
powershell.exe -NoProfile -Command "mvn spring-boot:run -pl <module> -Dspring-boot.run.profiles=<profile> -Dspring-boot.run.jvmArguments='-Dspring.config.additional-location=file:C:/temp/harness-test-overlay/<change-name>/application-harness-test.yml'"
|
|
182
|
+
```
|
|
183
|
+
5. 写入 `service.pid`、`service-start-command.txt`、`service-start.log`、`runtime/service-session.json`(含 `moduleInputsHash`/`moduleInputsFiles`/`startCommandHash`/`profile`/`overlayPath`/`pid`/`startedBy=AI`/`startedAt`)。`moduleInputsHash` 来自 CLI `--files` ∪ `serviceStart.inputFiles`,空输入拒绝。
|
|
184
|
+
6. 服务启动等待:0–30s 每 2s 探测;30–120s 每 5s 探测;>10s 必须输出状态行;>120s 读取最近 200 行日志。
|
|
185
|
+
7. 发现启动失败特征(按技术栈识别,如 Java Spring Boot 的 `BindException` / `Could not resolve placeholder` / `Connection refused during bean init` / `BeanCreationException` / `Failed to start bean` / `BUILD FAILURE`)立即失败。
|
|
186
|
+
|
|
187
|
+
#### 0.10.x 重入沿用(同一变更 harness-test 再次执行时)
|
|
188
|
+
|
|
189
|
+
满足以下**全部**条件时,可沿用上次服务决策,不重复询问:
|
|
190
|
+
|
|
191
|
+
1. 重入:同一 change-name 的 harness-test 再次执行(非首次)
|
|
192
|
+
2. 环境未变:PG 可用性、目标端口、执行器可用性与上次一致
|
|
193
|
+
3. 上次已确认执行器方案(如"内存 HTTP 执行器,PG 不可用")
|
|
194
|
+
4. 当前源码未改服务启动逻辑(如未改 main.ts 启动路径、未改服务端口/profile 配置)
|
|
195
|
+
|
|
196
|
+
沿用时执行日志记录:`重入沿用上次服务决策 + 环境未变(PG=<同上次>、执行器=<同上次>)`。
|
|
197
|
+
|
|
198
|
+
**不适用重入沿用**(仍须询问/重启):
|
|
199
|
+
- 真实二进制服务需重启(service-fingerprint 不匹配)
|
|
200
|
+
- 环境已变(PG 从不可用变可用、端口被占、执行器丢失)
|
|
201
|
+
- 上次 serviceState=USER_STARTED(用户手动启动,状态未知)
|
|
202
|
+
- 源码改动影响服务启动逻辑
|
|
203
|
+
|
|
204
|
+
> in-process 内存执行器(无持久服务进程)的重入沿用最常见:PG 不可用→内存 HTTP 执行器方案在环境未变时可沿用,不重复询问服务决策门。
|
|
205
|
+
|
|
206
|
+
#### 0.11 服务生命周期收尾(即使测试失败也要进入 finally 清理)
|
|
207
|
+
|
|
208
|
+
测试结束前必须按 serviceState 分支处理:
|
|
209
|
+
|
|
210
|
+
- `AI_STARTED` → 默认 `Stop-Process -Id <pid> -Force`,删除 `service.pid`,记录 `testServiceStopped=✅`。
|
|
211
|
+
- `AI_RESTARTED_FROM_USER_SERVICE` → 默认停止新服务,报告中明确 `restoredOriginalService=❌ not supported`。
|
|
212
|
+
- `USER_STARTED` → 保留进程,报告中提示用户可手动停止。
|
|
213
|
+
- `REUSED_EXISTING` → 保留进程,除非用户明确要求关闭。
|
|
214
|
+
|
|
215
|
+
最终报告 / final-summary 必须包含:
|
|
216
|
+
|
|
217
|
+
```md
|
|
218
|
+
## 服务生命周期
|
|
219
|
+
| 项 | 值 |
|
|
220
|
+
|---|---|
|
|
221
|
+
| originalServicePid | ... / N/A |
|
|
222
|
+
| originalServiceStopped | ✅ / ❌ / N/A |
|
|
223
|
+
| testServicePid | ... / N/A |
|
|
224
|
+
| testServiceStopped | ✅ / ❌ / N/A |
|
|
225
|
+
| restoredOriginalService | ❌ not supported / N/A |
|
|
226
|
+
| finalPortState | no service / service running |
|
|
227
|
+
```
|
|
228
|
+
|
|
229
|
+
> 不要使用 Monitor 工具等待健康检查,直接用 PowerShell 检查已知接口。通用健康端点(如 Spring Boot 的 `/actuator/health`)可能返回 404。
|
|
230
|
+
|
|
231
|
+
#### 0.12 服务注册风险确认(如项目适用)
|
|
232
|
+
|
|
233
|
+
确认应用配置文件中服务注册开关关闭(如 Spring Cloud Nacos 的 `spring.cloud.nacos.discovery.register-enabled: false`),避免线上流量被路由到本地。
|
|
234
|
+
|
|
235
|
+
## 接口测试执行检查
|
|
236
|
+
|
|
237
|
+
### 认证凭证缓存与复用
|
|
238
|
+
|
|
239
|
+
- [ ] 检查 `.harness/changes/<change-name>/runtime/credential-cache.json` 是否存在
|
|
240
|
+
- [ ] 如果存在 → 读取已有认证凭证,用**本地轻量接口**(直连本地 baseURL)验证有效性
|
|
241
|
+
- [ ] 验证通过 → 复用,不重新登录、不访问远程认证服务
|
|
242
|
+
- [ ] 验证失败(401/expired) → 才访问远程认证服务(如 SSO)重新获取后写回 cache
|
|
243
|
+
- [ ] 同一上下文中,前面已获取过凭证时必须优先复用
|
|
244
|
+
- [ ] **同一次测试流程内只允许因凭证失效重新获取 1 次**;超过 1 次 → 🟡 WARN,记录原因
|
|
245
|
+
- [ ] 接口测试执行器用 request context / 原生 HTTP 客户端直连本地 baseURL,**不依赖浏览器当前页面 origin**
|
|
246
|
+
- [ ] **不得因浏览器 origin 在远程认证服务就重新获取凭证**;禁止"远程取凭证→导航 localhost→重新取凭证"
|
|
247
|
+
- [ ] **不得在报告、execution-log、对话总结中输出明文凭证**
|
|
248
|
+
|
|
249
|
+
### 单元测试复用(ledger 驱动)
|
|
250
|
+
|
|
251
|
+
- [ ] Phase 1 前读取 `.harness/changes/<change-name>/evidence/verification-ledger.json`
|
|
252
|
+
- [ ] 判断是否复用 run 的 unitTest:diffHash 一致 + module/profile 一致 + scope 一致或更严格 + run 后无行为性修改 + run 实际跑了全量测试
|
|
253
|
+
- [ ] 复用 → 跳过重跑,标记"✅ 复用 harness-run 单元测试结果"
|
|
254
|
+
- [ ] 不复用 → 重跑测试命令(按技术栈,如 `mvn test -pl <module>`),结果写回 ledger 的 `unitTest` 项
|
|
255
|
+
|
|
256
|
+
### 批量执行器(强制单次 PowerShell + 执行器绝对路径执行)
|
|
257
|
+
|
|
258
|
+
- [ ] 0.1 preflight 已通过,`preflight.json` 包含 `executorPath`
|
|
259
|
+
- [ ] 生成 `.harness/changes/<change-name>/runtime/api-test-runner.mjs`(按技术栈选择实现,Node runner 为一种实现),**按 setup / test / cleanup 三阶段结构**编写
|
|
260
|
+
- [ ] payload 来自数据契约 / 接口定义 / 真实样例,执行器注释/JSON 中标注字段来源;**禁止临场猜字段、禁止先跑失败接口再补**
|
|
261
|
+
- [ ] 唯一前缀 `TEST_<change-name>_<timestamp>_<random>`,唯一约束字段用随机或避让策略,避免冲突导致 BLOCKED
|
|
262
|
+
- [ ] 通过**一次命令**执行(PowerShell + 执行器绝对路径):
|
|
263
|
+
```powershell
|
|
264
|
+
powershell.exe -NoProfile -ExecutionPolicy Bypass -Command "& '<executorPath>' '.harness/changes/<change-name>/runtime/api-test-runner.mjs'"
|
|
265
|
+
```
|
|
266
|
+
- [ ] **禁止**裸 `node ...`、禁止用 Bash 执行 node
|
|
267
|
+
- [ ] 执行器失败 ≤ 1 次重试;仍失败 → 提示用户切换权限模式或手动执行,**不得继续盲目重试或长时间等待**
|
|
268
|
+
- [ ] 执行器输出 `.harness/changes/<change-name>/runtime/api-test-results.json`,包含
|
|
269
|
+
`passed/failed/blocked/skipped/setupErrors/cleanupResult/credentialRefreshCount`
|
|
270
|
+
- [ ] **setup 失败时依赖该数据的场景必须标 🟡 BLOCKED,不得用 null ID 继续请求**
|
|
271
|
+
- [ ] 主会话只 Read JSON 生成摘要,不再调用 MCP
|
|
272
|
+
- [ ] **只有首选执行器不可执行才降级**:PowerShell batch (.ps1) → 多次 MCP `browser_evaluate` → curl
|
|
273
|
+
- [ ] **如果执行器在 PowerShell 可用,禁止使用 Playwright MCP 逐条执行接口测试**
|
|
274
|
+
- [ ] 执行器直连本地 baseURL,复用认证凭证,不依赖浏览器 origin
|
|
275
|
+
- [ ] 记录每个请求的 durationMs、status、code、message、assertionResult
|
|
276
|
+
- [ ] 支持失败时继续执行后续非依赖场景
|
|
277
|
+
- [ ] 报告区分四种执行器:**接口测试执行器 / PowerShell batch / Playwright MCP browser_evaluate / curl**(不得与"Playwright"混写)
|
|
278
|
+
|
|
279
|
+
### 测试数据命名
|
|
280
|
+
|
|
281
|
+
- [ ] 所有测试数据使用前缀 `TEST_<change-name>_<timestamp>_<random>`
|
|
282
|
+
- [ ] 测试报告记录测试数据表(ID、Code、用途、是否需要清理)
|
|
283
|
+
- [ ] 测试结束后清理可清理的数据
|
|
284
|
+
- [ ] 不能清理的记录遗留数据和原因
|
|
285
|
+
|
|
286
|
+
### 请求耗时
|
|
287
|
+
|
|
288
|
+
- [ ] 每个请求记录 durationMs
|
|
289
|
+
- [ ] durationMs > 10000 → 🟡SLOW,说明原因
|
|
290
|
+
- [ ] durationMs > 30000 → ❌TIMEOUT_RISK,说明原因
|
|
291
|
+
|
|
292
|
+
## 关门检查(⚠️ 结束前强制执行)
|
|
293
|
+
|
|
294
|
+
- [ ] `powershell.exe -NoProfile -Command "git status --porcelain"`
|
|
295
|
+
- [ ] `powershell.exe -NoProfile -Command "git diff --stat"`
|
|
296
|
+
- [ ] `powershell.exe -NoProfile -Command "git diff --check"`(如果失败 → 最终结果 ❌FAIL)
|
|
297
|
+
- [ ] 检查报告和日志是否包含明文凭证/password/secret/access-key/client-secret
|
|
298
|
+
- [ ] 检查 `.harness/changes/<change>/runtime/` 是否不会被提交(.gitignore 确认)
|
|
299
|
+
- [ ] **服务生命周期收尾**:AI_STARTED→Stop-Process / USER_STARTED→提示 / REUSED_EXISTING→保留或确认 / NOT_STARTED→N/A
|
|
300
|
+
- [ ] 检查测试数据是否需要清理
|
|
301
|
+
- [ ] 检查请求执行器结果是否完整(4 种执行器,未与接口测试执行器混写)
|
|
302
|
+
- [ ] 检查是否存在慢请求或超时风险
|
|
303
|
+
- [ ] **API 维度状态正确**:5 PASS + 9 BLOCKED + 1 FAIL → `apiTest=PARTIAL`,不得写成 `NOT_RUN`
|
|
304
|
+
- [ ] 如果存在未清理测试数据、fallback 请求执行器、慢请求或环境变更 → 至少 🟡WARN
|
|
305
|
+
|
|
306
|
+
## 关键原则
|
|
307
|
+
|
|
308
|
+
- 如果有项目配置文件,优先从 `.harness/config/harness-test-config.md` 读取并应用(含已知良好测试配置)
|
|
309
|
+
- 环境准备(阶段 0)的 **命令执行模式 preflight + 各项环境检查 + fallback 执行器探测** 必须在测试之前全部通过
|
|
310
|
+
- 单元测试优先于接口测试(先跑测试命令,通过后再跑接口)
|
|
311
|
+
- 接口测试优先级:**接口测试执行器 > PowerShell batch > Playwright MCP browser_evaluate > curl**
|
|
312
|
+
- 单用例失败不阻塞后续用例;setup 失败时依赖场景必须标 🟡 BLOCKED,**不得用 null ID 继续请求**
|
|
313
|
+
- 失败类型必须区分:代码 Bug vs 测试脚本问题 vs 预存问题
|
|
314
|
+
- 测试数据使用唯一前缀命名 + 唯一约束字段随机或避让,测试后确认清理或记录遗留
|
|
315
|
+
- 测试报告持久化到 `.harness/changes/<change-name>/reports/test/test-report-YYYYMMDD-HHmm.md`(时间戳区分多次运行)
|
|
316
|
+
- 请求执行器必须在报告中明确记录(四种执行器,含降级原因)
|
|
317
|
+
- 请求耗时统计必须包含在报告中
|
|
318
|
+
- 服务由 AI 启动的情况,测试结束默认 Stop-Process;**即使测试失败也要进入 finally 清理**
|
|
319
|
+
- final-summary 的 apiTest 状态必须用 OK/PARTIAL/BLOCKED/NOT_RUN/FAIL(不得把 PARTIAL 写成 NOT_RUN)
|