@harness-engineering/cli 1.14.0 → 1.16.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/dist/agents/commands/codex/AGENTS.md +39 -0
- package/dist/agents/commands/codex/harness/add-harness-component/SKILL.md +195 -0
- package/dist/agents/commands/codex/harness/add-harness-component/agents/openai.yaml +3 -0
- package/dist/agents/commands/codex/harness/cleanup-dead-code/SKILL.md +248 -0
- package/dist/agents/commands/codex/harness/cleanup-dead-code/agents/openai.yaml +3 -0
- package/dist/agents/commands/codex/harness/detect-doc-drift/SKILL.md +182 -0
- package/dist/agents/commands/codex/harness/detect-doc-drift/agents/openai.yaml +3 -0
- package/dist/agents/commands/codex/harness/enforce-architecture/SKILL.md +299 -0
- package/dist/agents/commands/codex/harness/enforce-architecture/agents/openai.yaml +3 -0
- package/dist/agents/commands/codex/harness/harness-architecture-advisor/SKILL.md +452 -0
- package/dist/agents/commands/codex/harness/harness-architecture-advisor/agents/openai.yaml +3 -0
- package/dist/agents/commands/codex/harness/harness-autopilot/SKILL.md +919 -0
- package/dist/agents/commands/codex/harness/harness-autopilot/agents/openai.yaml +3 -0
- package/dist/agents/commands/codex/harness/harness-brainstorming/SKILL.md +409 -0
- package/dist/agents/commands/codex/harness/harness-brainstorming/agents/openai.yaml +3 -0
- package/dist/agents/commands/codex/harness/harness-code-review/SKILL.md +860 -0
- package/dist/agents/commands/codex/harness/harness-code-review/agents/openai.yaml +3 -0
- package/dist/agents/commands/codex/harness/harness-codebase-cleanup/SKILL.md +227 -0
- package/dist/agents/commands/codex/harness/harness-codebase-cleanup/agents/openai.yaml +3 -0
- package/dist/agents/commands/codex/harness/harness-debugging/SKILL.md +369 -0
- package/dist/agents/commands/codex/harness/harness-debugging/agents/openai.yaml +3 -0
- package/dist/agents/commands/codex/harness/harness-dependency-health/SKILL.md +182 -0
- package/dist/agents/commands/codex/harness/harness-dependency-health/agents/openai.yaml +3 -0
- package/dist/agents/commands/codex/harness/harness-docs-pipeline/SKILL.md +463 -0
- package/dist/agents/commands/codex/harness/harness-docs-pipeline/agents/openai.yaml +3 -0
- package/dist/agents/commands/codex/harness/harness-execution/SKILL.md +513 -0
- package/dist/agents/commands/codex/harness/harness-execution/agents/openai.yaml +3 -0
- package/dist/agents/commands/codex/harness/harness-hotspot-detector/SKILL.md +164 -0
- package/dist/agents/commands/codex/harness/harness-hotspot-detector/agents/openai.yaml +3 -0
- package/dist/agents/commands/codex/harness/harness-impact-analysis/SKILL.md +187 -0
- package/dist/agents/commands/codex/harness/harness-impact-analysis/agents/openai.yaml +3 -0
- package/dist/agents/commands/codex/harness/harness-integrity/SKILL.md +170 -0
- package/dist/agents/commands/codex/harness/harness-integrity/agents/openai.yaml +3 -0
- package/dist/agents/commands/codex/harness/harness-onboarding/SKILL.md +291 -0
- package/dist/agents/commands/codex/harness/harness-onboarding/agents/openai.yaml +3 -0
- package/dist/agents/commands/codex/harness/harness-perf/SKILL.md +263 -0
- package/dist/agents/commands/codex/harness/harness-perf/agents/openai.yaml +3 -0
- package/dist/agents/commands/codex/harness/harness-planning/SKILL.md +582 -0
- package/dist/agents/commands/codex/harness/harness-planning/agents/openai.yaml +3 -0
- package/dist/agents/commands/codex/harness/harness-refactoring/SKILL.md +172 -0
- package/dist/agents/commands/codex/harness/harness-refactoring/agents/openai.yaml +3 -0
- package/dist/agents/commands/codex/harness/harness-release-readiness/SKILL.md +692 -0
- package/dist/agents/commands/codex/harness/harness-release-readiness/agents/openai.yaml +3 -0
- package/dist/agents/commands/codex/harness/harness-roadmap/SKILL.md +598 -0
- package/dist/agents/commands/codex/harness/harness-roadmap/agents/openai.yaml +3 -0
- package/dist/agents/commands/codex/harness/harness-security-scan/SKILL.md +157 -0
- package/dist/agents/commands/codex/harness/harness-security-scan/agents/openai.yaml +3 -0
- package/dist/agents/commands/codex/harness/harness-skill-authoring/SKILL.md +295 -0
- package/dist/agents/commands/codex/harness/harness-skill-authoring/agents/openai.yaml +3 -0
- package/dist/agents/commands/codex/harness/harness-soundness-review/SKILL.md +1270 -0
- package/dist/agents/commands/codex/harness/harness-soundness-review/agents/openai.yaml +3 -0
- package/dist/agents/commands/codex/harness/harness-supply-chain-audit/SKILL.md +247 -0
- package/dist/agents/commands/codex/harness/harness-supply-chain-audit/agents/openai.yaml +3 -0
- package/dist/agents/commands/codex/harness/harness-tdd/SKILL.md +180 -0
- package/dist/agents/commands/codex/harness/harness-tdd/agents/openai.yaml +3 -0
- package/dist/agents/commands/codex/harness/harness-test-advisor/SKILL.md +163 -0
- package/dist/agents/commands/codex/harness/harness-test-advisor/agents/openai.yaml +3 -0
- package/dist/agents/commands/codex/harness/harness-verification/SKILL.md +424 -0
- package/dist/agents/commands/codex/harness/harness-verification/agents/openai.yaml +3 -0
- package/dist/agents/commands/codex/harness/harness-verify/SKILL.md +162 -0
- package/dist/agents/commands/codex/harness/harness-verify/agents/openai.yaml +3 -0
- package/dist/agents/commands/codex/harness/initialize-harness-project/SKILL.md +235 -0
- package/dist/agents/commands/codex/harness/initialize-harness-project/agents/openai.yaml +3 -0
- package/dist/agents/commands/cursor/harness/add-harness-component.mdc +200 -0
- package/dist/agents/commands/cursor/harness/cleanup-dead-code.mdc +253 -0
- package/dist/agents/commands/cursor/harness/detect-doc-drift.mdc +187 -0
- package/dist/agents/commands/cursor/harness/enforce-architecture.mdc +304 -0
- package/dist/agents/commands/cursor/harness/harness-architecture-advisor.mdc +457 -0
- package/dist/agents/commands/cursor/harness/harness-autopilot.mdc +924 -0
- package/dist/agents/commands/cursor/harness/harness-brainstorming.mdc +414 -0
- package/dist/agents/commands/cursor/harness/harness-code-review.mdc +865 -0
- package/dist/agents/commands/cursor/harness/harness-codebase-cleanup.mdc +232 -0
- package/dist/agents/commands/cursor/harness/harness-debugging.mdc +374 -0
- package/dist/agents/commands/cursor/harness/harness-dependency-health.mdc +187 -0
- package/dist/agents/commands/cursor/harness/harness-docs-pipeline.mdc +468 -0
- package/dist/agents/commands/cursor/harness/harness-execution.mdc +518 -0
- package/dist/agents/commands/cursor/harness/harness-hotspot-detector.mdc +169 -0
- package/dist/agents/commands/cursor/harness/harness-impact-analysis.mdc +192 -0
- package/dist/agents/commands/cursor/harness/harness-integrity.mdc +175 -0
- package/dist/agents/commands/cursor/harness/harness-onboarding.mdc +296 -0
- package/dist/agents/commands/cursor/harness/harness-perf.mdc +268 -0
- package/dist/agents/commands/cursor/harness/harness-planning.mdc +587 -0
- package/dist/agents/commands/cursor/harness/harness-refactoring.mdc +177 -0
- package/dist/agents/commands/cursor/harness/harness-release-readiness.mdc +697 -0
- package/dist/agents/commands/cursor/harness/harness-roadmap.mdc +603 -0
- package/dist/agents/commands/cursor/harness/harness-security-scan.mdc +162 -0
- package/dist/agents/commands/cursor/harness/harness-skill-authoring.mdc +300 -0
- package/dist/agents/commands/cursor/harness/harness-soundness-review.mdc +1275 -0
- package/dist/agents/commands/cursor/harness/harness-supply-chain-audit.mdc +252 -0
- package/dist/agents/commands/cursor/harness/harness-tdd.mdc +185 -0
- package/dist/agents/commands/cursor/harness/harness-test-advisor.mdc +168 -0
- package/dist/agents/commands/cursor/harness/harness-verification.mdc +429 -0
- package/dist/agents/commands/cursor/harness/harness-verify.mdc +167 -0
- package/dist/agents/commands/cursor/harness/initialize-harness-project.mdc +240 -0
- package/dist/agents/skills/claude-code/enforce-architecture/SKILL.md +52 -0
- package/dist/agents/skills/claude-code/harness-api-design/SKILL.md +52 -0
- package/dist/agents/skills/claude-code/harness-architecture-advisor/SKILL.md +52 -0
- package/dist/agents/skills/claude-code/harness-auth/SKILL.md +52 -0
- package/dist/agents/skills/claude-code/harness-autopilot/SKILL.md +355 -45
- package/dist/agents/skills/claude-code/harness-autopilot/skill.yaml +12 -0
- package/dist/agents/skills/claude-code/harness-code-review/SKILL.md +97 -3
- package/dist/agents/skills/claude-code/harness-code-review/skill.yaml +6 -0
- package/dist/agents/skills/claude-code/harness-codebase-cleanup/SKILL.md +2 -4
- package/dist/agents/skills/claude-code/harness-database/SKILL.md +52 -0
- package/dist/agents/skills/claude-code/harness-deployment/SKILL.md +52 -0
- package/dist/agents/skills/claude-code/harness-planning/SKILL.md +99 -3
- package/dist/agents/skills/claude-code/harness-planning/skill.yaml +6 -0
- package/dist/agents/skills/claude-code/harness-pre-commit-review/SKILL.md +1 -1
- package/dist/agents/skills/claude-code/harness-product-spec/SKILL.md +5 -5
- package/dist/agents/skills/claude-code/harness-security-review/SKILL.md +27 -7
- package/dist/agents/skills/claude-code/harness-security-scan/SKILL.md +52 -0
- package/dist/agents/skills/claude-code/harness-supply-chain-audit/SKILL.md +281 -0
- package/dist/agents/skills/claude-code/harness-supply-chain-audit/skill.yaml +51 -0
- package/dist/agents/skills/codex/add-harness-component/SKILL.md +192 -0
- package/dist/agents/skills/codex/add-harness-component/skill.yaml +33 -0
- package/dist/agents/skills/codex/align-documentation/SKILL.md +213 -0
- package/dist/agents/skills/codex/align-documentation/skill.yaml +32 -0
- package/dist/agents/skills/codex/check-mechanical-constraints/SKILL.md +191 -0
- package/dist/agents/skills/codex/check-mechanical-constraints/skill.yaml +33 -0
- package/dist/agents/skills/codex/cleanup-dead-code/SKILL.md +245 -0
- package/dist/agents/skills/codex/cleanup-dead-code/skill.yaml +34 -0
- package/dist/agents/skills/codex/detect-doc-drift/SKILL.md +179 -0
- package/dist/agents/skills/codex/detect-doc-drift/skill.yaml +31 -0
- package/dist/agents/skills/codex/enforce-architecture/SKILL.md +296 -0
- package/dist/agents/skills/codex/enforce-architecture/skill.yaml +35 -0
- package/dist/agents/skills/codex/harness-accessibility/SKILL.md +281 -0
- package/dist/agents/skills/codex/harness-accessibility/skill.yaml +52 -0
- package/dist/agents/skills/codex/harness-api-design/SKILL.md +356 -0
- package/dist/agents/skills/codex/harness-api-design/skill.yaml +74 -0
- package/dist/agents/skills/codex/harness-architecture-advisor/SKILL.md +449 -0
- package/dist/agents/skills/codex/harness-architecture-advisor/skill.yaml +49 -0
- package/dist/agents/skills/codex/harness-auth/SKILL.md +331 -0
- package/dist/agents/skills/codex/harness-auth/skill.yaml +81 -0
- package/dist/agents/skills/codex/harness-autopilot/SKILL.md +916 -0
- package/dist/agents/skills/codex/harness-autopilot/skill.yaml +67 -0
- package/dist/agents/skills/codex/harness-brainstorming/SKILL.md +406 -0
- package/dist/agents/skills/codex/harness-brainstorming/skill.yaml +50 -0
- package/dist/agents/skills/codex/harness-caching/SKILL.md +309 -0
- package/dist/agents/skills/codex/harness-caching/skill.yaml +73 -0
- package/dist/agents/skills/codex/harness-chaos/SKILL.md +295 -0
- package/dist/agents/skills/codex/harness-chaos/skill.yaml +72 -0
- package/dist/agents/skills/codex/harness-code-review/SKILL.md +857 -0
- package/dist/agents/skills/codex/harness-code-review/skill.yaml +52 -0
- package/dist/agents/skills/codex/harness-codebase-cleanup/SKILL.md +224 -0
- package/dist/agents/skills/codex/harness-codebase-cleanup/skill.yaml +65 -0
- package/dist/agents/skills/codex/harness-compliance/SKILL.md +303 -0
- package/dist/agents/skills/codex/harness-compliance/skill.yaml +78 -0
- package/dist/agents/skills/codex/harness-containerization/SKILL.md +284 -0
- package/dist/agents/skills/codex/harness-containerization/skill.yaml +80 -0
- package/dist/agents/skills/codex/harness-data-pipeline/SKILL.md +274 -0
- package/dist/agents/skills/codex/harness-data-pipeline/skill.yaml +81 -0
- package/dist/agents/skills/codex/harness-data-validation/SKILL.md +343 -0
- package/dist/agents/skills/codex/harness-data-validation/skill.yaml +75 -0
- package/dist/agents/skills/codex/harness-database/SKILL.md +310 -0
- package/dist/agents/skills/codex/harness-database/skill.yaml +80 -0
- package/dist/agents/skills/codex/harness-debugging/SKILL.md +366 -0
- package/dist/agents/skills/codex/harness-debugging/skill.yaml +48 -0
- package/dist/agents/skills/codex/harness-dependency-health/SKILL.md +179 -0
- package/dist/agents/skills/codex/harness-dependency-health/skill.yaml +42 -0
- package/dist/agents/skills/codex/harness-deployment/SKILL.md +307 -0
- package/dist/agents/skills/codex/harness-deployment/skill.yaml +77 -0
- package/dist/agents/skills/codex/harness-design/SKILL.md +265 -0
- package/dist/agents/skills/codex/harness-design/skill.yaml +54 -0
- package/dist/agents/skills/codex/harness-design-mobile/SKILL.md +336 -0
- package/dist/agents/skills/codex/harness-design-mobile/skill.yaml +50 -0
- package/dist/agents/skills/codex/harness-design-system/SKILL.md +282 -0
- package/dist/agents/skills/codex/harness-design-system/skill.yaml +51 -0
- package/dist/agents/skills/codex/harness-design-web/SKILL.md +360 -0
- package/dist/agents/skills/codex/harness-design-web/skill.yaml +53 -0
- package/dist/agents/skills/codex/harness-diagnostics/SKILL.md +318 -0
- package/dist/agents/skills/codex/harness-diagnostics/skill.yaml +51 -0
- package/dist/agents/skills/codex/harness-docs-pipeline/SKILL.md +460 -0
- package/dist/agents/skills/codex/harness-docs-pipeline/skill.yaml +70 -0
- package/dist/agents/skills/codex/harness-dx/SKILL.md +276 -0
- package/dist/agents/skills/codex/harness-dx/skill.yaml +76 -0
- package/dist/agents/skills/codex/harness-e2e/SKILL.md +245 -0
- package/dist/agents/skills/codex/harness-e2e/skill.yaml +78 -0
- package/dist/agents/skills/codex/harness-event-driven/SKILL.md +280 -0
- package/dist/agents/skills/codex/harness-event-driven/skill.yaml +77 -0
- package/dist/agents/skills/codex/harness-execution/SKILL.md +510 -0
- package/dist/agents/skills/codex/harness-execution/skill.yaml +52 -0
- package/dist/agents/skills/codex/harness-feature-flags/SKILL.md +287 -0
- package/dist/agents/skills/codex/harness-feature-flags/skill.yaml +74 -0
- package/dist/agents/skills/codex/harness-git-workflow/SKILL.md +268 -0
- package/dist/agents/skills/codex/harness-git-workflow/skill.yaml +32 -0
- package/dist/agents/skills/codex/harness-hotspot-detector/SKILL.md +161 -0
- package/dist/agents/skills/codex/harness-hotspot-detector/skill.yaml +45 -0
- package/dist/agents/skills/codex/harness-i18n/SKILL.md +484 -0
- package/dist/agents/skills/codex/harness-i18n/skill.yaml +55 -0
- package/dist/agents/skills/codex/harness-i18n-process/SKILL.md +388 -0
- package/dist/agents/skills/codex/harness-i18n-process/skill.yaml +44 -0
- package/dist/agents/skills/codex/harness-i18n-workflow/SKILL.md +512 -0
- package/dist/agents/skills/codex/harness-i18n-workflow/skill.yaml +54 -0
- package/dist/agents/skills/codex/harness-impact-analysis/SKILL.md +184 -0
- package/dist/agents/skills/codex/harness-impact-analysis/skill.yaml +45 -0
- package/dist/agents/skills/codex/harness-incident-response/SKILL.md +223 -0
- package/dist/agents/skills/codex/harness-incident-response/skill.yaml +78 -0
- package/dist/agents/skills/codex/harness-infrastructure-as-code/SKILL.md +279 -0
- package/dist/agents/skills/codex/harness-infrastructure-as-code/skill.yaml +80 -0
- package/dist/agents/skills/codex/harness-integration-test/SKILL.md +271 -0
- package/dist/agents/skills/codex/harness-integration-test/skill.yaml +73 -0
- package/dist/agents/skills/codex/harness-integrity/SKILL.md +167 -0
- package/dist/agents/skills/codex/harness-integrity/skill.yaml +48 -0
- package/dist/agents/skills/codex/harness-knowledge-mapper/SKILL.md +195 -0
- package/dist/agents/skills/codex/harness-knowledge-mapper/skill.yaml +50 -0
- package/dist/agents/skills/codex/harness-load-testing/SKILL.md +274 -0
- package/dist/agents/skills/codex/harness-load-testing/skill.yaml +79 -0
- package/dist/agents/skills/codex/harness-ml-ops/SKILL.md +341 -0
- package/dist/agents/skills/codex/harness-ml-ops/skill.yaml +79 -0
- package/dist/agents/skills/codex/harness-mobile-patterns/SKILL.md +326 -0
- package/dist/agents/skills/codex/harness-mobile-patterns/skill.yaml +82 -0
- package/dist/agents/skills/codex/harness-mutation-test/SKILL.md +251 -0
- package/dist/agents/skills/codex/harness-mutation-test/skill.yaml +70 -0
- package/dist/agents/skills/codex/harness-observability/SKILL.md +283 -0
- package/dist/agents/skills/codex/harness-observability/skill.yaml +78 -0
- package/dist/agents/skills/codex/harness-onboarding/SKILL.md +288 -0
- package/dist/agents/skills/codex/harness-onboarding/skill.yaml +31 -0
- package/dist/agents/skills/codex/harness-parallel-agents/SKILL.md +256 -0
- package/dist/agents/skills/codex/harness-parallel-agents/skill.yaml +34 -0
- package/dist/agents/skills/codex/harness-perf/SKILL.md +260 -0
- package/dist/agents/skills/codex/harness-perf/skill.yaml +51 -0
- package/dist/agents/skills/codex/harness-perf-tdd/SKILL.md +249 -0
- package/dist/agents/skills/codex/harness-perf-tdd/skill.yaml +48 -0
- package/dist/agents/skills/codex/harness-planning/SKILL.md +579 -0
- package/dist/agents/skills/codex/harness-planning/skill.yaml +56 -0
- package/dist/agents/skills/codex/harness-pre-commit-review/SKILL.md +324 -0
- package/dist/agents/skills/codex/harness-pre-commit-review/skill.yaml +34 -0
- package/dist/agents/skills/codex/harness-product-spec/SKILL.md +285 -0
- package/dist/agents/skills/codex/harness-product-spec/skill.yaml +72 -0
- package/dist/agents/skills/codex/harness-property-test/SKILL.md +281 -0
- package/dist/agents/skills/codex/harness-property-test/skill.yaml +71 -0
- package/dist/agents/skills/codex/harness-refactoring/SKILL.md +169 -0
- package/dist/agents/skills/codex/harness-refactoring/skill.yaml +34 -0
- package/dist/agents/skills/codex/harness-release-readiness/SKILL.md +689 -0
- package/dist/agents/skills/codex/harness-release-readiness/skill.yaml +58 -0
- package/dist/agents/skills/codex/harness-resilience/SKILL.md +255 -0
- package/dist/agents/skills/codex/harness-resilience/skill.yaml +76 -0
- package/dist/agents/skills/codex/harness-roadmap/SKILL.md +595 -0
- package/dist/agents/skills/codex/harness-roadmap/skill.yaml +44 -0
- package/dist/agents/skills/codex/harness-secrets/SKILL.md +293 -0
- package/dist/agents/skills/codex/harness-secrets/skill.yaml +76 -0
- package/dist/agents/skills/codex/harness-security-review/SKILL.md +260 -0
- package/dist/agents/skills/codex/harness-security-review/skill.yaml +53 -0
- package/dist/agents/skills/codex/harness-security-scan/SKILL.md +154 -0
- package/dist/agents/skills/codex/harness-security-scan/skill.yaml +42 -0
- package/dist/agents/skills/codex/harness-skill-authoring/SKILL.md +292 -0
- package/dist/agents/skills/codex/harness-skill-authoring/skill.yaml +33 -0
- package/dist/agents/skills/codex/harness-soundness-review/SKILL.md +1267 -0
- package/dist/agents/skills/codex/harness-soundness-review/skill.yaml +49 -0
- package/dist/agents/skills/codex/harness-sql-review/SKILL.md +315 -0
- package/dist/agents/skills/codex/harness-sql-review/skill.yaml +74 -0
- package/dist/agents/skills/codex/harness-state-management/SKILL.md +309 -0
- package/dist/agents/skills/codex/harness-state-management/skill.yaml +33 -0
- package/dist/agents/skills/codex/harness-supply-chain-audit/SKILL.md +281 -0
- package/dist/agents/skills/codex/harness-supply-chain-audit/skill.yaml +51 -0
- package/dist/agents/skills/codex/harness-tdd/SKILL.md +177 -0
- package/dist/agents/skills/codex/harness-tdd/skill.yaml +49 -0
- package/dist/agents/skills/codex/harness-test-advisor/SKILL.md +160 -0
- package/dist/agents/skills/codex/harness-test-advisor/skill.yaml +45 -0
- package/dist/agents/skills/codex/harness-test-data/SKILL.md +268 -0
- package/dist/agents/skills/codex/harness-test-data/skill.yaml +74 -0
- package/dist/agents/skills/codex/harness-ux-copy/SKILL.md +271 -0
- package/dist/agents/skills/codex/harness-ux-copy/skill.yaml +77 -0
- package/dist/agents/skills/codex/harness-verification/SKILL.md +421 -0
- package/dist/agents/skills/codex/harness-verification/skill.yaml +43 -0
- package/dist/agents/skills/codex/harness-verify/SKILL.md +159 -0
- package/dist/agents/skills/codex/harness-verify/skill.yaml +41 -0
- package/dist/agents/skills/codex/harness-visual-regression/SKILL.md +257 -0
- package/dist/agents/skills/codex/harness-visual-regression/skill.yaml +74 -0
- package/dist/agents/skills/codex/initialize-harness-project/SKILL.md +232 -0
- package/dist/agents/skills/codex/initialize-harness-project/skill.yaml +32 -0
- package/dist/agents/skills/codex/validate-context-engineering/SKILL.md +150 -0
- package/dist/agents/skills/codex/validate-context-engineering/skill.yaml +32 -0
- package/dist/agents/skills/cursor/add-harness-component/SKILL.md +192 -0
- package/dist/agents/skills/cursor/add-harness-component/skill.yaml +33 -0
- package/dist/agents/skills/cursor/align-documentation/SKILL.md +213 -0
- package/dist/agents/skills/cursor/align-documentation/skill.yaml +32 -0
- package/dist/agents/skills/cursor/check-mechanical-constraints/SKILL.md +191 -0
- package/dist/agents/skills/cursor/check-mechanical-constraints/skill.yaml +33 -0
- package/dist/agents/skills/cursor/cleanup-dead-code/SKILL.md +245 -0
- package/dist/agents/skills/cursor/cleanup-dead-code/skill.yaml +34 -0
- package/dist/agents/skills/cursor/detect-doc-drift/SKILL.md +179 -0
- package/dist/agents/skills/cursor/detect-doc-drift/skill.yaml +31 -0
- package/dist/agents/skills/cursor/enforce-architecture/SKILL.md +296 -0
- package/dist/agents/skills/cursor/enforce-architecture/skill.yaml +35 -0
- package/dist/agents/skills/cursor/harness-accessibility/SKILL.md +281 -0
- package/dist/agents/skills/cursor/harness-accessibility/skill.yaml +52 -0
- package/dist/agents/skills/cursor/harness-api-design/SKILL.md +356 -0
- package/dist/agents/skills/cursor/harness-api-design/skill.yaml +74 -0
- package/dist/agents/skills/cursor/harness-architecture-advisor/SKILL.md +449 -0
- package/dist/agents/skills/cursor/harness-architecture-advisor/skill.yaml +49 -0
- package/dist/agents/skills/cursor/harness-auth/SKILL.md +331 -0
- package/dist/agents/skills/cursor/harness-auth/skill.yaml +81 -0
- package/dist/agents/skills/cursor/harness-autopilot/SKILL.md +916 -0
- package/dist/agents/skills/cursor/harness-autopilot/skill.yaml +67 -0
- package/dist/agents/skills/cursor/harness-brainstorming/SKILL.md +406 -0
- package/dist/agents/skills/cursor/harness-brainstorming/skill.yaml +50 -0
- package/dist/agents/skills/cursor/harness-caching/SKILL.md +309 -0
- package/dist/agents/skills/cursor/harness-caching/skill.yaml +73 -0
- package/dist/agents/skills/cursor/harness-chaos/SKILL.md +295 -0
- package/dist/agents/skills/cursor/harness-chaos/skill.yaml +72 -0
- package/dist/agents/skills/cursor/harness-code-review/SKILL.md +857 -0
- package/dist/agents/skills/cursor/harness-code-review/skill.yaml +52 -0
- package/dist/agents/skills/cursor/harness-codebase-cleanup/SKILL.md +224 -0
- package/dist/agents/skills/cursor/harness-codebase-cleanup/skill.yaml +65 -0
- package/dist/agents/skills/cursor/harness-compliance/SKILL.md +303 -0
- package/dist/agents/skills/cursor/harness-compliance/skill.yaml +78 -0
- package/dist/agents/skills/cursor/harness-containerization/SKILL.md +284 -0
- package/dist/agents/skills/cursor/harness-containerization/skill.yaml +80 -0
- package/dist/agents/skills/cursor/harness-data-pipeline/SKILL.md +274 -0
- package/dist/agents/skills/cursor/harness-data-pipeline/skill.yaml +81 -0
- package/dist/agents/skills/cursor/harness-data-validation/SKILL.md +343 -0
- package/dist/agents/skills/cursor/harness-data-validation/skill.yaml +75 -0
- package/dist/agents/skills/cursor/harness-database/SKILL.md +310 -0
- package/dist/agents/skills/cursor/harness-database/skill.yaml +80 -0
- package/dist/agents/skills/cursor/harness-debugging/SKILL.md +366 -0
- package/dist/agents/skills/cursor/harness-debugging/skill.yaml +48 -0
- package/dist/agents/skills/cursor/harness-dependency-health/SKILL.md +179 -0
- package/dist/agents/skills/cursor/harness-dependency-health/skill.yaml +42 -0
- package/dist/agents/skills/cursor/harness-deployment/SKILL.md +307 -0
- package/dist/agents/skills/cursor/harness-deployment/skill.yaml +77 -0
- package/dist/agents/skills/cursor/harness-design/SKILL.md +265 -0
- package/dist/agents/skills/cursor/harness-design/skill.yaml +54 -0
- package/dist/agents/skills/cursor/harness-design-mobile/SKILL.md +336 -0
- package/dist/agents/skills/cursor/harness-design-mobile/skill.yaml +50 -0
- package/dist/agents/skills/cursor/harness-design-system/SKILL.md +282 -0
- package/dist/agents/skills/cursor/harness-design-system/skill.yaml +51 -0
- package/dist/agents/skills/cursor/harness-design-web/SKILL.md +360 -0
- package/dist/agents/skills/cursor/harness-design-web/skill.yaml +53 -0
- package/dist/agents/skills/cursor/harness-diagnostics/SKILL.md +318 -0
- package/dist/agents/skills/cursor/harness-diagnostics/skill.yaml +51 -0
- package/dist/agents/skills/cursor/harness-docs-pipeline/SKILL.md +460 -0
- package/dist/agents/skills/cursor/harness-docs-pipeline/skill.yaml +70 -0
- package/dist/agents/skills/cursor/harness-dx/SKILL.md +276 -0
- package/dist/agents/skills/cursor/harness-dx/skill.yaml +76 -0
- package/dist/agents/skills/cursor/harness-e2e/SKILL.md +245 -0
- package/dist/agents/skills/cursor/harness-e2e/skill.yaml +78 -0
- package/dist/agents/skills/cursor/harness-event-driven/SKILL.md +280 -0
- package/dist/agents/skills/cursor/harness-event-driven/skill.yaml +77 -0
- package/dist/agents/skills/cursor/harness-execution/SKILL.md +510 -0
- package/dist/agents/skills/cursor/harness-execution/skill.yaml +52 -0
- package/dist/agents/skills/cursor/harness-feature-flags/SKILL.md +287 -0
- package/dist/agents/skills/cursor/harness-feature-flags/skill.yaml +74 -0
- package/dist/agents/skills/cursor/harness-git-workflow/SKILL.md +268 -0
- package/dist/agents/skills/cursor/harness-git-workflow/skill.yaml +32 -0
- package/dist/agents/skills/cursor/harness-hotspot-detector/SKILL.md +161 -0
- package/dist/agents/skills/cursor/harness-hotspot-detector/skill.yaml +45 -0
- package/dist/agents/skills/cursor/harness-i18n/SKILL.md +484 -0
- package/dist/agents/skills/cursor/harness-i18n/skill.yaml +55 -0
- package/dist/agents/skills/cursor/harness-i18n-process/SKILL.md +388 -0
- package/dist/agents/skills/cursor/harness-i18n-process/skill.yaml +44 -0
- package/dist/agents/skills/cursor/harness-i18n-workflow/SKILL.md +512 -0
- package/dist/agents/skills/cursor/harness-i18n-workflow/skill.yaml +54 -0
- package/dist/agents/skills/cursor/harness-impact-analysis/SKILL.md +184 -0
- package/dist/agents/skills/cursor/harness-impact-analysis/skill.yaml +45 -0
- package/dist/agents/skills/cursor/harness-incident-response/SKILL.md +223 -0
- package/dist/agents/skills/cursor/harness-incident-response/skill.yaml +78 -0
- package/dist/agents/skills/cursor/harness-infrastructure-as-code/SKILL.md +279 -0
- package/dist/agents/skills/cursor/harness-infrastructure-as-code/skill.yaml +80 -0
- package/dist/agents/skills/cursor/harness-integration-test/SKILL.md +271 -0
- package/dist/agents/skills/cursor/harness-integration-test/skill.yaml +73 -0
- package/dist/agents/skills/cursor/harness-integrity/SKILL.md +167 -0
- package/dist/agents/skills/cursor/harness-integrity/skill.yaml +48 -0
- package/dist/agents/skills/cursor/harness-knowledge-mapper/SKILL.md +195 -0
- package/dist/agents/skills/cursor/harness-knowledge-mapper/skill.yaml +50 -0
- package/dist/agents/skills/cursor/harness-load-testing/SKILL.md +274 -0
- package/dist/agents/skills/cursor/harness-load-testing/skill.yaml +79 -0
- package/dist/agents/skills/cursor/harness-ml-ops/SKILL.md +341 -0
- package/dist/agents/skills/cursor/harness-ml-ops/skill.yaml +79 -0
- package/dist/agents/skills/cursor/harness-mobile-patterns/SKILL.md +326 -0
- package/dist/agents/skills/cursor/harness-mobile-patterns/skill.yaml +82 -0
- package/dist/agents/skills/cursor/harness-mutation-test/SKILL.md +251 -0
- package/dist/agents/skills/cursor/harness-mutation-test/skill.yaml +70 -0
- package/dist/agents/skills/cursor/harness-observability/SKILL.md +283 -0
- package/dist/agents/skills/cursor/harness-observability/skill.yaml +78 -0
- package/dist/agents/skills/cursor/harness-onboarding/SKILL.md +288 -0
- package/dist/agents/skills/cursor/harness-onboarding/skill.yaml +31 -0
- package/dist/agents/skills/cursor/harness-parallel-agents/SKILL.md +256 -0
- package/dist/agents/skills/cursor/harness-parallel-agents/skill.yaml +34 -0
- package/dist/agents/skills/cursor/harness-perf/SKILL.md +260 -0
- package/dist/agents/skills/cursor/harness-perf/skill.yaml +51 -0
- package/dist/agents/skills/cursor/harness-perf-tdd/SKILL.md +249 -0
- package/dist/agents/skills/cursor/harness-perf-tdd/skill.yaml +48 -0
- package/dist/agents/skills/cursor/harness-planning/SKILL.md +579 -0
- package/dist/agents/skills/cursor/harness-planning/skill.yaml +56 -0
- package/dist/agents/skills/cursor/harness-pre-commit-review/SKILL.md +324 -0
- package/dist/agents/skills/cursor/harness-pre-commit-review/skill.yaml +34 -0
- package/dist/agents/skills/cursor/harness-product-spec/SKILL.md +285 -0
- package/dist/agents/skills/cursor/harness-product-spec/skill.yaml +72 -0
- package/dist/agents/skills/cursor/harness-property-test/SKILL.md +281 -0
- package/dist/agents/skills/cursor/harness-property-test/skill.yaml +71 -0
- package/dist/agents/skills/cursor/harness-refactoring/SKILL.md +169 -0
- package/dist/agents/skills/cursor/harness-refactoring/skill.yaml +34 -0
- package/dist/agents/skills/cursor/harness-release-readiness/SKILL.md +689 -0
- package/dist/agents/skills/cursor/harness-release-readiness/skill.yaml +58 -0
- package/dist/agents/skills/cursor/harness-resilience/SKILL.md +255 -0
- package/dist/agents/skills/cursor/harness-resilience/skill.yaml +76 -0
- package/dist/agents/skills/cursor/harness-roadmap/SKILL.md +595 -0
- package/dist/agents/skills/cursor/harness-roadmap/skill.yaml +44 -0
- package/dist/agents/skills/cursor/harness-secrets/SKILL.md +293 -0
- package/dist/agents/skills/cursor/harness-secrets/skill.yaml +76 -0
- package/dist/agents/skills/cursor/harness-security-review/SKILL.md +260 -0
- package/dist/agents/skills/cursor/harness-security-review/skill.yaml +53 -0
- package/dist/agents/skills/cursor/harness-security-scan/SKILL.md +154 -0
- package/dist/agents/skills/cursor/harness-security-scan/skill.yaml +42 -0
- package/dist/agents/skills/cursor/harness-skill-authoring/SKILL.md +292 -0
- package/dist/agents/skills/cursor/harness-skill-authoring/skill.yaml +33 -0
- package/dist/agents/skills/cursor/harness-soundness-review/SKILL.md +1267 -0
- package/dist/agents/skills/cursor/harness-soundness-review/skill.yaml +49 -0
- package/dist/agents/skills/cursor/harness-sql-review/SKILL.md +315 -0
- package/dist/agents/skills/cursor/harness-sql-review/skill.yaml +74 -0
- package/dist/agents/skills/cursor/harness-state-management/SKILL.md +309 -0
- package/dist/agents/skills/cursor/harness-state-management/skill.yaml +33 -0
- package/dist/agents/skills/cursor/harness-supply-chain-audit/SKILL.md +281 -0
- package/dist/agents/skills/cursor/harness-supply-chain-audit/skill.yaml +51 -0
- package/dist/agents/skills/cursor/harness-tdd/SKILL.md +177 -0
- package/dist/agents/skills/cursor/harness-tdd/skill.yaml +49 -0
- package/dist/agents/skills/cursor/harness-test-advisor/SKILL.md +160 -0
- package/dist/agents/skills/cursor/harness-test-advisor/skill.yaml +45 -0
- package/dist/agents/skills/cursor/harness-test-data/SKILL.md +268 -0
- package/dist/agents/skills/cursor/harness-test-data/skill.yaml +74 -0
- package/dist/agents/skills/cursor/harness-ux-copy/SKILL.md +271 -0
- package/dist/agents/skills/cursor/harness-ux-copy/skill.yaml +77 -0
- package/dist/agents/skills/cursor/harness-verification/SKILL.md +421 -0
- package/dist/agents/skills/cursor/harness-verification/skill.yaml +43 -0
- package/dist/agents/skills/cursor/harness-verify/SKILL.md +159 -0
- package/dist/agents/skills/cursor/harness-verify/skill.yaml +41 -0
- package/dist/agents/skills/cursor/harness-visual-regression/SKILL.md +257 -0
- package/dist/agents/skills/cursor/harness-visual-regression/skill.yaml +74 -0
- package/dist/agents/skills/cursor/initialize-harness-project/SKILL.md +232 -0
- package/dist/agents/skills/cursor/initialize-harness-project/skill.yaml +32 -0
- package/dist/agents/skills/cursor/validate-context-engineering/SKILL.md +150 -0
- package/dist/agents/skills/cursor/validate-context-engineering/skill.yaml +32 -0
- package/dist/agents/skills/gemini-cli/enforce-architecture/SKILL.md +52 -0
- package/dist/agents/skills/gemini-cli/harness-api-design/SKILL.md +52 -0
- package/dist/agents/skills/gemini-cli/harness-architecture-advisor/SKILL.md +52 -0
- package/dist/agents/skills/gemini-cli/harness-auth/SKILL.md +52 -0
- package/dist/agents/skills/gemini-cli/harness-autopilot/SKILL.md +355 -45
- package/dist/agents/skills/gemini-cli/harness-autopilot/skill.yaml +12 -0
- package/dist/agents/skills/gemini-cli/harness-code-review/SKILL.md +97 -3
- package/dist/agents/skills/gemini-cli/harness-code-review/skill.yaml +6 -0
- package/dist/agents/skills/gemini-cli/harness-codebase-cleanup/SKILL.md +2 -4
- package/dist/agents/skills/gemini-cli/harness-database/SKILL.md +52 -0
- package/dist/agents/skills/gemini-cli/harness-deployment/SKILL.md +52 -0
- package/dist/agents/skills/gemini-cli/harness-planning/SKILL.md +99 -3
- package/dist/agents/skills/gemini-cli/harness-planning/skill.yaml +6 -0
- package/dist/agents/skills/gemini-cli/harness-pre-commit-review/SKILL.md +1 -1
- package/dist/agents/skills/gemini-cli/harness-product-spec/SKILL.md +5 -5
- package/dist/agents/skills/gemini-cli/harness-security-review/SKILL.md +27 -7
- package/dist/agents/skills/gemini-cli/harness-security-scan/SKILL.md +52 -0
- package/dist/agents/skills/gemini-cli/harness-supply-chain-audit/SKILL.md +281 -0
- package/dist/agents/skills/gemini-cli/harness-supply-chain-audit/skill.yaml +51 -0
- package/dist/agents/skills/package.json +1 -0
- package/dist/agents/skills/templates/discipline-template.md +49 -0
- package/dist/agents/skills/tests/schema.ts +1 -1
- package/dist/agents/skills/vitest.config.mts +5 -0
- package/dist/{agents-md-YTYQDA3P.js → agents-md-VYDFPIRW.js} +1 -1
- package/dist/{architecture-JQZYM4US.js → architecture-K5HSRBGB.js} +2 -2
- package/dist/bin/harness-mcp.js +13 -13
- package/dist/bin/harness.js +21 -19
- package/dist/{check-phase-gate-L3RADYWO.js → check-phase-gate-5AS6SXL6.js} +3 -3
- package/dist/{chunk-6KTUUFRN.js → chunk-5ZXHMCPL.js} +1 -1
- package/dist/{chunk-RCWZBSK5.js → chunk-6KWBH4EO.js} +1 -1
- package/dist/{chunk-ABQHQ6I5.js → chunk-ALFKNAZW.js} +2436 -233
- package/dist/{chunk-OXLLOSSR.js → chunk-AV6KMDO5.js} +2 -2
- package/dist/{chunk-7IP4JIFL.js → chunk-C7DTKLPW.js} +4 -4
- package/dist/{chunk-ZOAWBDWU.js → chunk-CJDVBBPB.js} +5 -1
- package/dist/{chunk-YPYGXRDR.js → chunk-DNDBFIZN.js} +18 -4
- package/dist/{chunk-XYLGHKG6.js → chunk-HKUX2X7O.js} +11 -2
- package/dist/{chunk-YZD2MRNQ.js → chunk-JOP2NDNB.js} +684 -142
- package/dist/{chunk-YBJ262QL.js → chunk-LRG3B43J.js} +1 -1
- package/dist/{chunk-AOZRDOIP.js → chunk-M6TIO6NF.js} +1 -1
- package/dist/{chunk-O5OJVPL6.js → chunk-OCDDCGDE.js} +9 -1
- package/dist/{chunk-OSXBPAMK.js → chunk-QDF7COPQ.js} +1 -1
- package/dist/{chunk-TPOTOBR7.js → chunk-RWZPHW4H.js} +3 -3
- package/dist/{chunk-3C2MLBPJ.js → chunk-SFRGPAK6.js} +1 -1
- package/dist/{chunk-XKECDXJS.js → chunk-SHYWICGA.js} +2184 -456
- package/dist/{chunk-S2FXOWOR.js → chunk-TF6ZLHJV.js} +2 -2
- package/dist/{chunk-NLVUVUGD.js → chunk-ZJMU7MEV.js} +1 -1
- package/dist/{ci-workflow-EQZFVX3P.js → ci-workflow-CRWU723U.js} +1 -1
- package/dist/{create-skill-XSWHMSM5.js → create-skill-NDXQSTIK.js} +2 -2
- package/dist/{dist-HWXF2C3R.js → dist-4LPXJYVZ.js} +105 -1
- package/dist/{docs-7ECGYMAV.js → docs-4JRHTLUZ.js} +3 -3
- package/dist/{engine-EG4EH4IX.js → engine-3G3VIM6L.js} +1 -1
- package/dist/{entropy-5USWKLVS.js → entropy-G6CZ2A6P.js} +2 -2
- package/dist/{feedback-UTBXZZHF.js → feedback-QYKQ65HB.js} +1 -1
- package/dist/{generate-agent-definitions-3PM5EU7V.js → generate-agent-definitions-SAAOAPT4.js} +3 -3
- package/dist/index.d.ts +25 -4
- package/dist/index.js +18 -18
- package/dist/{loader-ZPALXIVR.js → loader-VCOK3PF7.js} +1 -1
- package/dist/{mcp-362EZHF4.js → mcp-YENEPHBW.js} +13 -13
- package/dist/{performance-OQAFMJUD.js → performance-UBCFI2UP.js} +4 -2
- package/dist/{review-pipeline-C4GCFVGP.js → review-pipeline-IQAVCWAX.js} +1 -1
- package/dist/{runtime-7YLVK453.js → runtime-PYFFIESU.js} +1 -1
- package/dist/{security-PZOX7AQS.js → security-ZDADTPYW.js} +1 -1
- package/dist/{skill-executor-XZLYZYAK.js → skill-executor-XEVDGXUM.js} +2 -2
- package/dist/{validate-FD3Z6VJD.js → validate-VRTUHALQ.js} +2 -2
- package/dist/{validate-cross-check-WNJM6H2D.js → validate-cross-check-4Y6NHNK3.js} +1 -1
- package/package.json +8 -5
|
@@ -31,7 +31,21 @@ Autopilot orchestrates these persona agents — it never reimplements their logi
|
|
|
31
31
|
- **Claude Code:** Use the Agent tool with `subagent_type` set to the persona name.
|
|
32
32
|
- **Gemini CLI:** Use the `run_agent` tool targeting the persona by name, or dispatch via `harness persona run <name>`.
|
|
33
33
|
|
|
34
|
-
**
|
|
34
|
+
**Plans are gated by concern signals.** When no concern signals fire (low complexity, no planner concerns, task count within threshold), plans are auto-approved with a structured report and execution proceeds immediately. When any signal fires, the plan pauses for human review with the standard yes/revise/skip/stop flow. The `--review-plans` session flag forces all plans to pause regardless of signals.
|
|
35
|
+
|
|
36
|
+
## Rigor Levels
|
|
37
|
+
|
|
38
|
+
The `rigorLevel` is set during INIT via `--fast` or `--thorough` flags and persists for the entire session. Default is `standard`.
|
|
39
|
+
|
|
40
|
+
| State | `fast` | `standard` (default) | `thorough` |
|
|
41
|
+
| -------------- | -------------------------------------------------------------------------------------- | ----------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------- |
|
|
42
|
+
| PLAN | Pass `rigorLevel: fast` to planner. Planner skips skeleton pass. | Default planner behavior. | Pass `rigorLevel: thorough` to planner. Planner always produces skeleton for approval. |
|
|
43
|
+
| APPROVE_PLAN | Auto-approve all plans regardless of concern signals. Skip human review. | Default signal-based approval logic. | Force human review of all plans (equivalent to `--review-plans`). |
|
|
44
|
+
| EXECUTE | Skip scratchpad — agents keep research in conversation. Checkpoint commits still fire. | Agents use scratchpad for research >500 words. Checkpoint commits fire. | Verbose scratchpad — agents write all research, reasoning, and intermediate output to scratchpad. Checkpoint commits fire. |
|
|
45
|
+
| VERIFY | Minimal verification — run `harness validate` only. Skip detailed verification agent. | Default verification pipeline. | Full verification — run verification agent with expanded checks. |
|
|
46
|
+
| PHASE_COMPLETE | Scratchpad clear is a no-op (nothing written). | Clear scratchpad for completed phase. | Clear scratchpad for completed phase. |
|
|
47
|
+
|
|
48
|
+
When `rigorLevel` is `fast`, the APPROVE_PLAN concern signal evaluation is bypassed entirely — plans always auto-approve. When `rigorLevel` is `thorough`, it implicitly sets `reviewPlans: true` for the APPROVE_PLAN gate.
|
|
35
49
|
|
|
36
50
|
## Process
|
|
37
51
|
|
|
@@ -42,7 +56,7 @@ INIT → ASSESS → PLAN → APPROVE_PLAN → EXECUTE → VERIFY → REVIEW →
|
|
|
42
56
|
↓
|
|
43
57
|
[next phase?]
|
|
44
58
|
↓ ↓
|
|
45
|
-
ASSESS
|
|
59
|
+
ASSESS FINAL_REVIEW → DONE
|
|
46
60
|
```
|
|
47
61
|
|
|
48
62
|
---
|
|
@@ -61,7 +75,9 @@ INIT → ASSESS → PLAN → APPROVE_PLAN → EXECUTE → VERIFY → REVIEW →
|
|
|
61
75
|
- Create the session directory if it does not exist
|
|
62
76
|
|
|
63
77
|
3. **Check for existing state.** Read `{sessionDir}/autopilot-state.json`. If it exists and `currentState` is not `DONE`:
|
|
78
|
+
- **Schema migration:** If `schemaVersion < 3`, backfill missing fields: set `startingCommit` to the earliest commit in `history` (or current HEAD if no history), set `decisions` to `[]`, set `finalReview` to `{ "status": "pending", "findings": [], "retryCount": 0 }`. If `schemaVersion < 4`, set `reviewPlans` to `false`. Update `schemaVersion` to `4` and save. If `schemaVersion < 5`, set `rigorLevel` to `"standard"`. Update `schemaVersion` to `5` and save.
|
|
64
79
|
- Report: "Resuming autopilot from state `{currentState}`, phase {currentPhase}: {phaseName}."
|
|
80
|
+
- Skip steps 4 and 5 (initial state creation and flag parsing) — these only apply to fresh starts.
|
|
65
81
|
- Skip to the recorded `currentState` and continue from there.
|
|
66
82
|
|
|
67
83
|
4. **If no existing state (fresh start):**
|
|
@@ -70,12 +86,16 @@ INIT → ASSESS → PLAN → APPROVE_PLAN → EXECUTE → VERIFY → REVIEW →
|
|
|
70
86
|
- For each phase heading (`### Phase N: Name`), extract:
|
|
71
87
|
- Phase name
|
|
72
88
|
- Complexity annotation (`<!-- complexity: low|medium|high -->`, default: `medium`)
|
|
89
|
+
- Capture the starting commit: run `git rev-parse HEAD` and store the result as `startingCommit`.
|
|
73
90
|
- Create `{sessionDir}/autopilot-state.json`:
|
|
74
91
|
```json
|
|
75
92
|
{
|
|
76
|
-
"schemaVersion":
|
|
93
|
+
"schemaVersion": 5,
|
|
77
94
|
"sessionDir": ".harness/sessions/<slug>",
|
|
78
95
|
"specPath": "<path to spec>",
|
|
96
|
+
"startingCommit": "<git rev-parse HEAD output>",
|
|
97
|
+
"reviewPlans": false,
|
|
98
|
+
"rigorLevel": "standard",
|
|
79
99
|
"currentState": "ASSESS",
|
|
80
100
|
"currentPhase": 0,
|
|
81
101
|
"phases": [
|
|
@@ -91,11 +111,24 @@ INIT → ASSESS → PLAN → APPROVE_PLAN → EXECUTE → VERIFY → REVIEW →
|
|
|
91
111
|
"maxAttempts": 3,
|
|
92
112
|
"currentTask": null
|
|
93
113
|
},
|
|
94
|
-
"history": []
|
|
114
|
+
"history": [],
|
|
115
|
+
"decisions": [],
|
|
116
|
+
"finalReview": {
|
|
117
|
+
"status": "pending",
|
|
118
|
+
"findings": [],
|
|
119
|
+
"retryCount": 0
|
|
120
|
+
}
|
|
95
121
|
}
|
|
96
122
|
```
|
|
97
123
|
|
|
98
|
-
5. **
|
|
124
|
+
5. **Parse session flags.** Check CLI arguments for session-level flags. These persist for the entire session -- resuming a session preserves the settings from when it was started (flags are only read on fresh start, not on resume).
|
|
125
|
+
- `--review-plans`: Set `state.reviewPlans: true`.
|
|
126
|
+
- `--fast`: Set `state.rigorLevel: "fast"`. Reduces rigor across all phases: skip skeleton approval, skip scratchpad, minimal verification.
|
|
127
|
+
- `--thorough`: Set `state.rigorLevel: "thorough"`. Increases rigor across all phases: require skeleton approval, verbose scratchpad, full verification.
|
|
128
|
+
- If neither `--fast` nor `--thorough` is passed, `rigorLevel` defaults to `"standard"`.
|
|
129
|
+
- If both `--fast` and `--thorough` are passed, reject with error: "Cannot use --fast and --thorough together. Choose one."
|
|
130
|
+
|
|
131
|
+
6. **Load context via gather_context.** Use the `gather_context` MCP tool to load all working context efficiently:
|
|
99
132
|
|
|
100
133
|
```json
|
|
101
134
|
gather_context({
|
|
@@ -109,19 +142,19 @@ INIT → ASSESS → PLAN → APPROVE_PLAN → EXECUTE → VERIFY → REVIEW →
|
|
|
109
142
|
|
|
110
143
|
This loads session-scoped learnings, handoff, state, and validation results in a single call. The `session` parameter ensures all reads come from the session directory (`.harness/sessions/<slug>/`), isolating this workstream from others. Note any relevant learnings or known dead ends for the current phase from the returned `learnings` array.
|
|
111
144
|
|
|
112
|
-
|
|
145
|
+
7. **Load session summary for cold start.** If resuming (existing `autopilot-state.json` found):
|
|
113
146
|
- Call `loadSessionSummary()` for the session slug to get quick orientation context (~200 tokens).
|
|
114
147
|
- The summary provides the last skill, phase, status, and next step — enough to understand where the autopilot left off without re-reading the full state machine.
|
|
115
148
|
- If no summary exists (first run), skip — the full INIT handles context loading.
|
|
116
149
|
|
|
117
|
-
|
|
150
|
+
8. **Load roadmap context.** If `docs/roadmap.md` exists, read it to understand:
|
|
118
151
|
- Current project priorities (which features are `in-progress`)
|
|
119
152
|
- Blockers that may affect the upcoming phases
|
|
120
153
|
- Overall project status and milestone progress
|
|
121
154
|
|
|
122
155
|
This provides the autopilot with project-level context beyond the individual spec being executed. If the roadmap does not exist, skip this step — the autopilot operates normally without it.
|
|
123
156
|
|
|
124
|
-
|
|
157
|
+
9. **Transition to ASSESS.**
|
|
125
158
|
|
|
126
159
|
---
|
|
127
160
|
|
|
@@ -163,10 +196,23 @@ INIT → ASSESS → PLAN → APPROVE_PLAN → EXECUTE → VERIFY → REVIEW →
|
|
|
163
196
|
Session directory: {sessionDir}
|
|
164
197
|
Session slug: {sessionSlug}
|
|
165
198
|
Phase description: {phase description from spec}
|
|
199
|
+
Rigor level: {rigorLevel}
|
|
166
200
|
|
|
167
201
|
On startup, call gather_context({ session: "{sessionSlug}" }) to load
|
|
168
202
|
session-scoped learnings, state, and validation context.
|
|
169
203
|
|
|
204
|
+
## Scratchpad (if rigorLevel is not "fast")
|
|
205
|
+
|
|
206
|
+
For bulky research output (spec analysis, codebase exploration notes,
|
|
207
|
+
dependency analysis — anything >500 words), write to scratchpad instead
|
|
208
|
+
of keeping in conversation:
|
|
209
|
+
|
|
210
|
+
writeScratchpad({ session: "{sessionSlug}", phase: "{phaseName}", projectPath: "{projectPath}" }, "research-{topic}.md", content)
|
|
211
|
+
|
|
212
|
+
Reference the scratchpad file path in your conversation instead of
|
|
213
|
+
inlining the content. This keeps the planning context focused on
|
|
214
|
+
decisions and task structure.
|
|
215
|
+
|
|
170
216
|
Follow the harness-planning skill process exactly. Write the plan to
|
|
171
217
|
docs/plans/{date}-{phase-name}-plan.md. Write {sessionDir}/handoff.json when done.
|
|
172
218
|
```
|
|
@@ -192,27 +238,119 @@ INIT → ASSESS → PLAN → APPROVE_PLAN → EXECUTE → VERIFY → REVIEW →
|
|
|
192
238
|
|
|
193
239
|
---
|
|
194
240
|
|
|
195
|
-
### APPROVE_PLAN —
|
|
196
|
-
|
|
197
|
-
**This state always pauses for human input.**
|
|
241
|
+
### APPROVE_PLAN — Conditional Review Gate
|
|
198
242
|
|
|
199
|
-
1. **
|
|
243
|
+
1. **Gather plan metadata:**
|
|
200
244
|
- Phase name and number
|
|
201
|
-
- Task count
|
|
245
|
+
- Task count (from the plan file)
|
|
202
246
|
- Checkpoint count
|
|
203
|
-
- Estimated time (task count
|
|
247
|
+
- Estimated time (task count x 3 minutes)
|
|
204
248
|
- Effective complexity (original + any override)
|
|
205
|
-
-
|
|
249
|
+
- Concerns array from the planning handoff (`{sessionDir}/handoff.json` field `concerns`, default: `[]` if field is absent)
|
|
250
|
+
|
|
251
|
+
2. **Rigor-level override:**
|
|
252
|
+
- If `rigorLevel` is `"fast"`: Skip the signal evaluation entirely. Auto-approve the plan. Record decision as `"auto_approved_plan_fast"`. Transition directly to EXECUTE.
|
|
253
|
+
- If `rigorLevel` is `"thorough"`: Force `shouldPauseForReview = true` regardless of other signals (equivalent to `--review-plans`).
|
|
254
|
+
- If `rigorLevel` is `"standard"`: Proceed with normal signal evaluation below.
|
|
255
|
+
|
|
256
|
+
3. **Evaluate `shouldPauseForReview`.** Check the following signals in order. If **any** signal is true, pause for human review. If **all** are false, auto-approve.
|
|
257
|
+
|
|
258
|
+
| # | Signal | Condition | Description |
|
|
259
|
+
| --- | -------------------- | ------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
|
|
260
|
+
| 1 | `reviewPlans` | `state.reviewPlans === true` | Session-level flag set by `--review-plans` CLI arg |
|
|
261
|
+
| 2 | `highComplexity` | `phase.complexity === "high"` | Phase is marked as high complexity in the spec (reachable when resuming after interactive planning; confirms the plan is ready for automated execution even though the human drove planning) |
|
|
262
|
+
| 3 | `complexityOverride` | `phase.complexityOverride !== null` | Planner produced more tasks than expected for the spec complexity |
|
|
263
|
+
| 4 | `plannerConcerns` | Handoff `concerns` array is non-empty | Planner flagged specific risks or uncertainties |
|
|
264
|
+
| 5 | `taskCount` | Plan contains > 15 tasks (i.e., 16+) | Plan is large enough to warrant human review |
|
|
265
|
+
|
|
266
|
+
4. **Build the signal evaluation result** for reporting and recording:
|
|
267
|
+
|
|
268
|
+
```json
|
|
269
|
+
{
|
|
270
|
+
"reviewPlans": false,
|
|
271
|
+
"highComplexity": "low",
|
|
272
|
+
"complexityOverride": null,
|
|
273
|
+
"plannerConcerns": [],
|
|
274
|
+
"taskCount": 8,
|
|
275
|
+
"taskThreshold": 15
|
|
276
|
+
}
|
|
277
|
+
```
|
|
278
|
+
|
|
279
|
+
5. **If auto-approving (no signals fired):**
|
|
280
|
+
|
|
281
|
+
a. **Emit structured auto-approve report:**
|
|
282
|
+
|
|
283
|
+
```
|
|
284
|
+
Auto-approved Phase 1: Setup Infrastructure
|
|
285
|
+
Review mode: auto
|
|
286
|
+
Complexity: low (no override)
|
|
287
|
+
Planner concerns: none
|
|
288
|
+
Tasks: 8 (threshold: 15)
|
|
289
|
+
```
|
|
290
|
+
|
|
291
|
+
b. **Record the decision** in state `decisions` array:
|
|
292
|
+
|
|
293
|
+
```json
|
|
294
|
+
{
|
|
295
|
+
"phase": 0,
|
|
296
|
+
"decision": "auto_approved_plan",
|
|
297
|
+
"timestamp": "ISO-8601",
|
|
298
|
+
"signals": {
|
|
299
|
+
"reviewPlans": false,
|
|
300
|
+
"highComplexity": "low",
|
|
301
|
+
"complexityOverride": null,
|
|
302
|
+
"plannerConcerns": [],
|
|
303
|
+
"taskCount": 8,
|
|
304
|
+
"taskThreshold": 15
|
|
305
|
+
}
|
|
306
|
+
}
|
|
307
|
+
```
|
|
308
|
+
|
|
309
|
+
c. **Transition to EXECUTE** — no human interaction needed.
|
|
310
|
+
|
|
311
|
+
6. **If pausing for review (one or more signals fired):**
|
|
312
|
+
|
|
313
|
+
a. **Emit structured pause report** showing which signal(s) triggered:
|
|
314
|
+
|
|
315
|
+
```
|
|
316
|
+
Pausing for review -- Phase 2: Auth Middleware
|
|
317
|
+
Review mode: manual (--review-plans flag set)
|
|
318
|
+
Complexity override: low -> medium (triggered)
|
|
319
|
+
Planner concerns: 2 concern(s)
|
|
320
|
+
Tasks: 12 (threshold: 15)
|
|
321
|
+
```
|
|
322
|
+
|
|
323
|
+
Mark triggered signals explicitly. Non-triggered signals display their normal value without "(triggered)".
|
|
206
324
|
|
|
207
|
-
|
|
325
|
+
b. **Present the plan summary:** task count, checkpoint count, estimated time, effective complexity, and any concerns from the planning handoff.
|
|
326
|
+
|
|
327
|
+
c. **Ask:** "Approve this plan and begin execution? (yes / revise / skip phase / stop)"
|
|
208
328
|
- **yes** — Transition to EXECUTE.
|
|
209
|
-
- **revise** — Tell user to edit the plan file directly, then re-present.
|
|
329
|
+
- **revise** — Tell user to edit the plan file directly, then re-present from step 1.
|
|
210
330
|
- **skip phase** — Mark phase as `skipped` in state, transition to PHASE_COMPLETE.
|
|
211
331
|
- **stop** — Save state and exit. User can resume later.
|
|
212
332
|
|
|
213
|
-
|
|
333
|
+
d. **Record the decision** in state `decisions` array:
|
|
334
|
+
|
|
335
|
+
```json
|
|
336
|
+
{
|
|
337
|
+
"phase": 0,
|
|
338
|
+
"decision": "approved_plan",
|
|
339
|
+
"timestamp": "ISO-8601",
|
|
340
|
+
"signals": {
|
|
341
|
+
"reviewPlans": true,
|
|
342
|
+
"highComplexity": "low",
|
|
343
|
+
"complexityOverride": "medium",
|
|
344
|
+
"plannerConcerns": ["concern text"],
|
|
345
|
+
"taskCount": 12,
|
|
346
|
+
"taskThreshold": 15
|
|
347
|
+
}
|
|
348
|
+
}
|
|
349
|
+
```
|
|
214
350
|
|
|
215
|
-
|
|
351
|
+
Use the actual decision value: `approved_plan`, `revised_plan`, `skipped_phase`, or `stopped`.
|
|
352
|
+
|
|
353
|
+
7. **Update state** with `currentState: "EXECUTE"` (or appropriate state for skip/stop) and save.
|
|
216
354
|
|
|
217
355
|
---
|
|
218
356
|
|
|
@@ -231,16 +369,35 @@ INIT → ASSESS → PLAN → APPROVE_PLAN → EXECUTE → VERIFY → REVIEW →
|
|
|
231
369
|
Session directory: {sessionDir}
|
|
232
370
|
Session slug: {sessionSlug}
|
|
233
371
|
State: {sessionDir}/state.json
|
|
372
|
+
Rigor level: {rigorLevel}
|
|
234
373
|
|
|
235
374
|
On startup, call gather_context({ session: "{sessionSlug}" }) to load
|
|
236
375
|
session-scoped learnings, state, and validation context.
|
|
237
376
|
|
|
377
|
+
## Scratchpad (if rigorLevel is not "fast")
|
|
378
|
+
|
|
379
|
+
For bulky intermediate output (test output analysis, error investigation
|
|
380
|
+
notes, dependency trees — anything >500 words), write to scratchpad:
|
|
381
|
+
|
|
382
|
+
writeScratchpad({ session: "{sessionSlug}", phase: "{phaseName}", projectPath: "{projectPath}" }, "task-{N}-{topic}.md", content)
|
|
383
|
+
|
|
384
|
+
Reference the scratchpad file path instead of inlining the content.
|
|
385
|
+
|
|
238
386
|
Follow the harness-execution skill process exactly.
|
|
239
387
|
Update {sessionDir}/state.json after each task.
|
|
240
388
|
Write {sessionDir}/handoff.json when done or when blocked.
|
|
241
389
|
```
|
|
242
390
|
|
|
243
391
|
2. **When the agent returns, check the outcome:**
|
|
392
|
+
- **After each checkpoint verification passes**, commit the work:
|
|
393
|
+
```
|
|
394
|
+
commitAtCheckpoint({
|
|
395
|
+
projectPath: "{projectPath}",
|
|
396
|
+
session: "{sessionSlug}",
|
|
397
|
+
checkpointLabel: "Checkpoint {N}: {checkpoint description}"
|
|
398
|
+
})
|
|
399
|
+
```
|
|
400
|
+
If the commit result shows `committed: false`, no changes existed — continue silently.
|
|
244
401
|
- **All tasks complete:** Transition to VERIFY.
|
|
245
402
|
- **Checkpoint reached:** Surface the checkpoint to the user in the main conversation. Handle the checkpoint type:
|
|
246
403
|
- `[checkpoint:human-verify]` — Show output, ask for confirmation, then resume execution agent.
|
|
@@ -257,6 +414,16 @@ INIT → ASSESS → PLAN → APPROVE_PLAN → EXECUTE → VERIFY → REVIEW →
|
|
|
257
414
|
- **Attempt 2:** Expand context — read related files, check `learnings.md` for similar failures, re-dispatch with additional context.
|
|
258
415
|
- **Attempt 3:** Full context gather — read test output, imports, plan instructions for ambiguity. Re-dispatch with maximum context.
|
|
259
416
|
- If budget exhausted:
|
|
417
|
+
- **Recovery commit:** Before stopping, commit any passing work:
|
|
418
|
+
```
|
|
419
|
+
commitAtCheckpoint({
|
|
420
|
+
projectPath: "{projectPath}",
|
|
421
|
+
session: "{sessionSlug}",
|
|
422
|
+
checkpointLabel: "Phase {N}: {name} — recovery at task {taskNumber}",
|
|
423
|
+
isRecovery: true
|
|
424
|
+
})
|
|
425
|
+
```
|
|
426
|
+
This preserves all work completed before the failure. The `[autopilot][recovery]` prefix in the commit message distinguishes recovery commits from normal checkpoint commits.
|
|
260
427
|
- **Stop.** Present all 3 attempts with full context to the user.
|
|
261
428
|
- Record failure in `.harness/failures.md`.
|
|
262
429
|
- Ask: "How should we proceed? (fix manually and continue / revise plan / stop)"
|
|
@@ -268,7 +435,11 @@ INIT → ASSESS → PLAN → APPROVE_PLAN → EXECUTE → VERIFY → REVIEW →
|
|
|
268
435
|
|
|
269
436
|
### VERIFY — Post-Execution Validation
|
|
270
437
|
|
|
271
|
-
1. **
|
|
438
|
+
1. **Rigor-level branching:**
|
|
439
|
+
- If `rigorLevel` is `"fast"`: Skip the verification agent entirely. Run only `harness validate`. If it passes, transition to REVIEW. If it fails, surface to user.
|
|
440
|
+
- If `rigorLevel` is `"thorough"` or `"standard"`: Dispatch the verification agent as below.
|
|
441
|
+
|
|
442
|
+
2. **Dispatch verification agent using the Agent tool:**
|
|
272
443
|
|
|
273
444
|
```
|
|
274
445
|
Agent tool parameters:
|
|
@@ -287,14 +458,14 @@ INIT → ASSESS → PLAN → APPROVE_PLAN → EXECUTE → VERIFY → REVIEW →
|
|
|
287
458
|
Report pass/fail with findings.
|
|
288
459
|
```
|
|
289
460
|
|
|
290
|
-
|
|
461
|
+
3. **When the agent returns:**
|
|
291
462
|
- **All checks pass:** Transition to REVIEW.
|
|
292
|
-
- **Failures found:** Surface findings to the user. Ask: "Fix these issues before review? (
|
|
293
|
-
- **
|
|
294
|
-
- **skip** — Proceed to REVIEW with verification warnings noted.
|
|
463
|
+
- **Failures found:** Surface findings to the user. Ask: "Fix these issues before review? (fix / skip verification / stop)"
|
|
464
|
+
- **fix** — Re-enter EXECUTE with targeted fixes (retry budget resets for verification fixes).
|
|
465
|
+
- **skip** — Record skip decision in `decisions` array. Proceed to REVIEW with verification warnings noted.
|
|
295
466
|
- **stop** — Save state and exit.
|
|
296
467
|
|
|
297
|
-
|
|
468
|
+
4. **Update state** with `currentState: "REVIEW"` and save.
|
|
298
469
|
|
|
299
470
|
---
|
|
300
471
|
|
|
@@ -320,9 +491,10 @@ INIT → ASSESS → PLAN → APPROVE_PLAN → EXECUTE → VERIFY → REVIEW →
|
|
|
320
491
|
```
|
|
321
492
|
|
|
322
493
|
2. **When the agent returns:**
|
|
494
|
+
- **Persist review findings:** Write the review findings to `{sessionDir}/phase-{N}-review.json` (array of findings with severity, file, line, title). This file is consumed by FINAL_REVIEW step 3.
|
|
323
495
|
- **No blocking findings:** Report summary, transition to PHASE_COMPLETE.
|
|
324
|
-
- **Blocking findings:** Surface to user. Ask: "Address blocking findings before completing this phase? (
|
|
325
|
-
- **
|
|
496
|
+
- **Blocking findings:** Surface to user. Ask: "Address blocking findings before completing this phase? (fix / override / stop)"
|
|
497
|
+
- **fix** — Re-enter EXECUTE with review fixes.
|
|
326
498
|
- **override** — Record override decision, transition to PHASE_COMPLETE.
|
|
327
499
|
- **stop** — Save state and exit.
|
|
328
500
|
|
|
@@ -357,9 +529,11 @@ INIT → ASSESS → PLAN → APPROVE_PLAN → EXECUTE → VERIFY → REVIEW →
|
|
|
357
529
|
|
|
358
530
|
3. **Mark phase as `complete`** in state.
|
|
359
531
|
|
|
360
|
-
4. **
|
|
532
|
+
4. **Clear scratchpad for this phase.** Call `clearScratchpad({ session: sessionSlug, phase: phaseName, projectPath: projectPath })` to delete ephemeral research files for the completed phase. This frees disk space and prevents stale scratchpad data from leaking into future phases.
|
|
533
|
+
|
|
534
|
+
5. **Sync roadmap.** If `docs/roadmap.md` exists, call `manage_roadmap` with action `sync` and `apply: true`. This reflects the just-completed phase in the roadmap (e.g., updating the feature from `planned` to `in-progress`). If `manage_roadmap` is unavailable, fall back to direct file manipulation using `syncRoadmap()` from core. Skip silently if no roadmap exists. Do not use `force_sync: true` — the human-always-wins rule applies.
|
|
361
535
|
|
|
362
|
-
|
|
536
|
+
6. **Write session summary.** Update the session summary to reflect the completed phase:
|
|
363
537
|
|
|
364
538
|
```json
|
|
365
539
|
writeSessionSummary(projectPath, sessionSlug, {
|
|
@@ -375,11 +549,80 @@ INIT → ASSESS → PLAN → APPROVE_PLAN → EXECUTE → VERIFY → REVIEW →
|
|
|
375
549
|
})
|
|
376
550
|
```
|
|
377
551
|
|
|
378
|
-
|
|
552
|
+
7. **Check for next phase:**
|
|
379
553
|
- If more phases remain: "Phase {N} complete. Next: Phase {N+1}: {name} (complexity: {level}). Continue? (yes / stop)"
|
|
380
554
|
- **yes** — Increment `currentPhase`, reset `retryBudget`, transition to ASSESS.
|
|
381
555
|
- **stop** — Save state and exit.
|
|
382
|
-
- If no more phases: Transition to
|
|
556
|
+
- If no more phases: Transition to FINAL_REVIEW.
|
|
557
|
+
|
|
558
|
+
---
|
|
559
|
+
|
|
560
|
+
### FINAL_REVIEW — Project-Wide Code Review
|
|
561
|
+
|
|
562
|
+
> Runs automatically after the last phase completes. Reviews the cumulative diff (`startingCommit..HEAD`) across all phases to catch cross-phase issues before the PR offer.
|
|
563
|
+
|
|
564
|
+
1. **Update state** with `currentState: "FINAL_REVIEW"` and save.
|
|
565
|
+
|
|
566
|
+
2. **Update `finalReview` tracking** in `autopilot-state.json`: set `finalReview.status` to `"in_progress"`.
|
|
567
|
+
|
|
568
|
+
3. **Gather per-phase review findings.** Read from `{sessionDir}/` — each phase's review output is stored alongside the phase handoff. Collect all review findings across phases into a single context block.
|
|
569
|
+
|
|
570
|
+
4. **Dispatch review agent using the Agent tool:**
|
|
571
|
+
|
|
572
|
+
```
|
|
573
|
+
Agent tool parameters:
|
|
574
|
+
subagent_type: "harness-code-reviewer"
|
|
575
|
+
description: "Final review: cross-phase coherence check"
|
|
576
|
+
prompt: |
|
|
577
|
+
You are running harness-code-review as a final project-wide review.
|
|
578
|
+
|
|
579
|
+
Diff scope: startingCommit..HEAD (use `git diff {startingCommit}..HEAD`)
|
|
580
|
+
Starting commit: {startingCommit}
|
|
581
|
+
Session directory: {sessionDir}
|
|
582
|
+
Session slug: {sessionSlug}
|
|
583
|
+
|
|
584
|
+
On startup, call gather_context({ session: "{sessionSlug}" }) to load
|
|
585
|
+
session-scoped learnings, state, and validation context.
|
|
586
|
+
|
|
587
|
+
## Per-Phase Review Findings
|
|
588
|
+
|
|
589
|
+
{collected per-phase findings}
|
|
590
|
+
|
|
591
|
+
These were found and addressed during per-phase reviews. Don't assume
|
|
592
|
+
they're resolved — verify. Focus extra attention on cross-phase coherence:
|
|
593
|
+
naming consistency, duplicated utilities, architectural drift across phases.
|
|
594
|
+
|
|
595
|
+
Review the FULL diff (startingCommit..HEAD), not just the last phase.
|
|
596
|
+
Report findings with severity (blocking / warning / note).
|
|
597
|
+
```
|
|
598
|
+
|
|
599
|
+
5. **When the agent returns:**
|
|
600
|
+
- **No blocking findings:** Store all findings (blocking, warning, note) in `finalReview.findings`. Update `finalReview.status` to `"passed"`, report summary, transition to DONE.
|
|
601
|
+
- **Blocking findings:** Store all findings (blocking, warning, note) in `finalReview.findings`. Surface blocking findings to user. Ask: "Address blocking findings before completing? (fix / override / stop)"
|
|
602
|
+
- **fix** — Increment `finalReview.retryCount`. If `retryCount <= 3`: dispatch fixes using the Agent tool, then run `harness validate` to verify the fix, then re-run FINAL_REVIEW from step 2 (re-sets status to `in_progress`, re-gathers per-phase findings for fresh context). If `retryCount > 3`: stop — present all attempts to user, record in `.harness/failures.md`, ask: "How should we proceed? (fix manually and continue / stop)"
|
|
603
|
+
|
|
604
|
+
Fix dispatch:
|
|
605
|
+
|
|
606
|
+
```
|
|
607
|
+
Agent tool parameters:
|
|
608
|
+
subagent_type: "harness-task-executor"
|
|
609
|
+
description: "Fix final review findings"
|
|
610
|
+
prompt: |
|
|
611
|
+
Fix the following blocking review findings. One task per finding.
|
|
612
|
+
|
|
613
|
+
{blocking findings with file, line, title, and rationale}
|
|
614
|
+
|
|
615
|
+
Session directory: {sessionDir}
|
|
616
|
+
Session slug: {sessionSlug}
|
|
617
|
+
|
|
618
|
+
Follow the harness-execution skill process. Commit each fix atomically.
|
|
619
|
+
Write {sessionDir}/handoff.json when done.
|
|
620
|
+
```
|
|
621
|
+
|
|
622
|
+
- **override** — Record override decision (rationale from user) in state `decisions` array. Update `finalReview.status` to `"overridden"`. Transition to DONE.
|
|
623
|
+
- **stop** — Save state and exit. Resumable from FINAL_REVIEW.
|
|
624
|
+
|
|
625
|
+
6. **Update state** and save after each step.
|
|
383
626
|
|
|
384
627
|
---
|
|
385
628
|
|
|
@@ -390,7 +633,8 @@ INIT → ASSESS → PLAN → APPROVE_PLAN → EXECUTE → VERIFY → REVIEW →
|
|
|
390
633
|
- Total tasks across all phases
|
|
391
634
|
- Total retries used
|
|
392
635
|
- Total time (first phase start to last phase completion)
|
|
393
|
-
-
|
|
636
|
+
- Final review result: `finalReview.status` (passed / overridden) and total findings count from `finalReview.findings`
|
|
637
|
+
- Any overridden review findings (per-phase and final)
|
|
394
638
|
|
|
395
639
|
2. **Offer next steps:**
|
|
396
640
|
- "Create a PR? (yes / no)"
|
|
@@ -407,7 +651,11 @@ INIT → ASSESS → PLAN → APPROVE_PLAN → EXECUTE → VERIFY → REVIEW →
|
|
|
407
651
|
"pending": [],
|
|
408
652
|
"concerns": [],
|
|
409
653
|
"decisions": ["<all decisions from all phases>"],
|
|
410
|
-
"contextKeywords": ["<merged from spec>"]
|
|
654
|
+
"contextKeywords": ["<merged from spec>"],
|
|
655
|
+
"finalReview": {
|
|
656
|
+
"status": "<passed | overridden>",
|
|
657
|
+
"findingsCount": "<number of findings from final review>"
|
|
658
|
+
}
|
|
411
659
|
}
|
|
412
660
|
```
|
|
413
661
|
|
|
@@ -419,9 +667,13 @@ INIT → ASSESS → PLAN → APPROVE_PLAN → EXECUTE → VERIFY → REVIEW →
|
|
|
419
667
|
- [skill:harness-autopilot] [outcome:observation] {any notable patterns from the run}
|
|
420
668
|
```
|
|
421
669
|
|
|
422
|
-
5. **
|
|
670
|
+
5. **Promote session learnings to global.** Call `promoteSessionLearnings(projectPath, sessionSlug)` to move generalizable session learnings (tagged `[outcome:gotcha]`, `[outcome:decision]`, `[outcome:observation]`) to the global `learnings.md`. Report: "Promoted {N} learnings to global, {M} session-specific entries kept in session."
|
|
671
|
+
|
|
672
|
+
6. **Check if pruning is needed.** Call `countLearningEntries(projectPath)`. If the count exceeds 30, suggest: "Global learnings.md has {count} entries (threshold: 30). Run `harness learnings prune` to analyze patterns and archive old entries."
|
|
673
|
+
|
|
674
|
+
7. **Update roadmap to done.** If `docs/roadmap.md` exists and the current spec maps to a roadmap feature, call `manage_roadmap` with action `update` to set the feature status to `done`. Derive the feature name from the spec title (H1 heading) or the session's `handoff.json` `summary` field. If `manage_roadmap` is unavailable, fall back to direct file manipulation using `updateFeature()` from core. Skip silently if no roadmap exists or if the feature is not found. Do not use `force_sync: true`.
|
|
423
675
|
|
|
424
|
-
|
|
676
|
+
8. **Write final session summary.** Update the session summary to reflect completion:
|
|
425
677
|
|
|
426
678
|
```json
|
|
427
679
|
writeSessionSummary(projectPath, sessionSlug, {
|
|
@@ -435,7 +687,7 @@ INIT → ASSESS → PLAN → APPROVE_PLAN → EXECUTE → VERIFY → REVIEW →
|
|
|
435
687
|
})
|
|
436
688
|
```
|
|
437
689
|
|
|
438
|
-
|
|
690
|
+
9. **Clean up state:** Set `currentState: "DONE"` in `{sessionDir}/autopilot-state.json`. Do not delete the file — it serves as a record.
|
|
439
691
|
|
|
440
692
|
## Harness Integration
|
|
441
693
|
|
|
@@ -444,9 +696,12 @@ INIT → ASSESS → PLAN → APPROVE_PLAN → EXECUTE → VERIFY → REVIEW →
|
|
|
444
696
|
- **`harness check-deps`** — Delegated to harness-execution (included in task steps).
|
|
445
697
|
- **State file** — `.harness/sessions/<slug>/autopilot-state.json` tracks the orchestration state machine. `.harness/sessions/<slug>/state.json` tracks task-level execution state (managed by harness-execution). The slug is derived from the spec path during INIT.
|
|
446
698
|
- **Handoff** — `.harness/sessions/<slug>/handoff.json` is written by each delegated skill and read by the next. Autopilot writes a final handoff on DONE.
|
|
447
|
-
- **Learnings** — `.harness/learnings.md` (global) is appended by both delegated skills and autopilot itself.
|
|
699
|
+
- **Learnings** — `.harness/learnings.md` (global) is appended by both delegated skills and autopilot itself. On DONE, session learnings with generalizable outcomes are promoted to global via `promoteSessionLearnings`. If global count exceeds 30, autopilot suggests running `harness learnings prune`.
|
|
448
700
|
- **Roadmap context** — During INIT, reads `docs/roadmap.md` (if present) for project-level priorities, blockers, and milestone status. Provides broader context for phase execution decisions.
|
|
449
701
|
- **Roadmap sync** — During PHASE_COMPLETE, calls `manage_roadmap` with `sync` and `apply: true` to reflect phase progress. During DONE, calls `manage_roadmap` with `update` to set feature status to `done`. Both skip silently when no roadmap exists. Neither uses `force_sync: true`.
|
|
702
|
+
- **Scratchpad** — Agents write bulky research output (>500 words) to `.harness/sessions/<slug>/scratchpad/<phase>/` via `writeScratchpad()` instead of keeping it in conversation context. Cleared automatically at phase transitions via `clearScratchpad()` in PHASE_COMPLETE. Skipped entirely when `rigorLevel` is `"fast"`.
|
|
703
|
+
- **Checkpoint commits** — After each checkpoint verification passes in EXECUTE, `commitAtCheckpoint()` creates a commit with message `[autopilot] <label>`. On failure with retry budget exhausted, a recovery commit is created with `[autopilot][recovery] <label>`. Skipped silently when no changes exist.
|
|
704
|
+
- **Rigor levels** — `--fast` / `--thorough` flags set `rigorLevel` in state during INIT. Persists for the entire session. Affects PLAN (skeleton skip/require), APPROVE_PLAN (auto-approve/force-review), EXECUTE (scratchpad usage), and VERIFY (minimal/full). See the Rigor Behavior Table for details.
|
|
450
705
|
|
|
451
706
|
## Success Criteria
|
|
452
707
|
|
|
@@ -456,8 +711,14 @@ INIT → ASSESS → PLAN → APPROVE_PLAN → EXECUTE → VERIFY → REVIEW →
|
|
|
456
711
|
- Planning override bumps complexity upward when task signals disagree
|
|
457
712
|
- Retry budget (3 attempts) with escalating context before surfacing failures
|
|
458
713
|
- Existing skills (planning, execution, verification, review) are unchanged
|
|
459
|
-
-
|
|
714
|
+
- Plans auto-approve when no concern signals fire; plans pause for human review when any signal fires
|
|
715
|
+
- `--review-plans` flag forces human review for all plans in a session
|
|
460
716
|
- Phase completion summary shown between every phase
|
|
717
|
+
- `--fast` skips skeleton approval, skips scratchpad, auto-approves plans, and runs minimal verification
|
|
718
|
+
- `--thorough` requires skeleton approval, uses verbose scratchpad, forces plan review, and runs full verification
|
|
719
|
+
- Scratchpad is cleared automatically at every phase transition (PHASE_COMPLETE)
|
|
720
|
+
- Checkpoint commits fire after every passing checkpoint; recovery commits fire on retry budget exhaustion
|
|
721
|
+
- Rigor level persists across session resume — set once during INIT, never changed mid-session
|
|
461
722
|
|
|
462
723
|
## Examples
|
|
463
724
|
|
|
@@ -465,6 +726,34 @@ INIT → ASSESS → PLAN → APPROVE_PLAN → EXECUTE → VERIFY → REVIEW →
|
|
|
465
726
|
|
|
466
727
|
**User invokes:** `/harness:autopilot docs/changes/security-scanner/proposal.md`
|
|
467
728
|
|
|
729
|
+
**Or with rigor flag:** `/harness:autopilot docs/changes/security-scanner/proposal.md --fast`
|
|
730
|
+
|
|
731
|
+
**INIT (with --fast):**
|
|
732
|
+
|
|
733
|
+
```
|
|
734
|
+
Read spec — found 3 phases:
|
|
735
|
+
Phase 1: Core Scanner (complexity: low)
|
|
736
|
+
Phase 2: Rule Engine (complexity: high)
|
|
737
|
+
Phase 3: CLI Integration (complexity: low)
|
|
738
|
+
Rigor level: fast
|
|
739
|
+
Created .harness/sessions/changes--security-scanner--proposal/autopilot-state.json. Starting Phase 1.
|
|
740
|
+
```
|
|
741
|
+
|
|
742
|
+
**Phase 1 — APPROVE_PLAN (fast mode):**
|
|
743
|
+
|
|
744
|
+
```
|
|
745
|
+
Auto-approved Phase 1: Core Scanner (fast mode — signal evaluation skipped)
|
|
746
|
+
```
|
|
747
|
+
|
|
748
|
+
**Phase 1 — EXECUTE (checkpoint commit):**
|
|
749
|
+
|
|
750
|
+
```
|
|
751
|
+
[harness-task-executor executes 8 tasks]
|
|
752
|
+
Checkpoint 1: types and interfaces — committed (abc1234)
|
|
753
|
+
Checkpoint 2: core implementation — committed (def5678)
|
|
754
|
+
Checkpoint 3: tests and validation — nothing to commit (skipped)
|
|
755
|
+
```
|
|
756
|
+
|
|
468
757
|
**INIT:**
|
|
469
758
|
|
|
470
759
|
```
|
|
@@ -491,10 +780,11 @@ Plan generated: docs/plans/2026-03-19-core-scanner-plan.md (8 tasks, ~24 min)
|
|
|
491
780
|
**Phase 1 — APPROVE_PLAN:**
|
|
492
781
|
|
|
493
782
|
```
|
|
494
|
-
Phase 1: Core Scanner
|
|
495
|
-
|
|
496
|
-
|
|
497
|
-
|
|
783
|
+
Auto-approved Phase 1: Core Scanner
|
|
784
|
+
Review mode: auto
|
|
785
|
+
Complexity: low (no override)
|
|
786
|
+
Planner concerns: none
|
|
787
|
+
Tasks: 8 (threshold: 15)
|
|
498
788
|
```
|
|
499
789
|
|
|
500
790
|
**Phase 1 — EXECUTE → VERIFY → REVIEW:**
|
|
@@ -533,10 +823,22 @@ Resuming autopilot from state PLAN, phase 2: Rule Engine.
|
|
|
533
823
|
Found plan: docs/plans/2026-03-19-rule-engine-plan.md
|
|
534
824
|
```
|
|
535
825
|
|
|
536
|
-
**Phase 2 — APPROVE_PLAN
|
|
826
|
+
**Phase 2 — APPROVE_PLAN:**
|
|
537
827
|
|
|
538
828
|
```
|
|
539
|
-
|
|
829
|
+
Pausing for review -- Phase 2: Rule Engine
|
|
830
|
+
Review mode: auto
|
|
831
|
+
Complexity: high (triggered)
|
|
832
|
+
Planner concerns: none
|
|
833
|
+
Tasks: 14 (threshold: 15)
|
|
834
|
+
Approve this plan and begin execution? (yes / revise / skip / stop)
|
|
835
|
+
→ User: "yes"
|
|
836
|
+
```
|
|
837
|
+
|
|
838
|
+
**Phase 2 — EXECUTE → VERIFY → REVIEW → PHASE_COMPLETE**
|
|
839
|
+
|
|
840
|
+
```
|
|
841
|
+
[Execution with checkpoint pauses as needed]
|
|
540
842
|
Phase 2: Rule Engine — COMPLETE
|
|
541
843
|
Tasks: 14/14 | Retries: 1 | Verification: pass | Review: 0 blocking
|
|
542
844
|
Next: Phase 3: CLI Integration (complexity: low). Continue? (yes / stop)
|
|
@@ -545,11 +847,19 @@ Next: Phase 3: CLI Integration (complexity: low). Continue? (yes / stop)
|
|
|
545
847
|
|
|
546
848
|
**Phase 3 — [auto-plans, executes, completes]**
|
|
547
849
|
|
|
850
|
+
**FINAL_REVIEW:**
|
|
851
|
+
|
|
852
|
+
```
|
|
853
|
+
[harness-code-reviewer runs cross-phase review on startingCommit..HEAD]
|
|
854
|
+
Final review: 0 blocking, 1 warning. Passed.
|
|
855
|
+
```
|
|
856
|
+
|
|
548
857
|
**DONE:**
|
|
549
858
|
|
|
550
859
|
```
|
|
551
860
|
All phases complete.
|
|
552
861
|
Total: 3 phases, 30 tasks, 1 retry
|
|
862
|
+
Final review: passed (0 blocking, 1 warning)
|
|
553
863
|
Create a PR? (yes / no)
|
|
554
864
|
→ User: "yes"
|
|
555
865
|
```
|
|
@@ -592,7 +902,7 @@ How should we proceed? (fix manually and continue / revise plan / stop)
|
|
|
592
902
|
## Gates
|
|
593
903
|
|
|
594
904
|
- **No reimplementing delegated skills.** Autopilot orchestrates. If you are writing planning logic, execution logic, verification logic, or review logic, STOP. Delegate to the appropriate persona agent via `subagent_type`.
|
|
595
|
-
- **No executing without plan approval.** Every plan
|
|
905
|
+
- **No executing without plan approval.** Every plan passes through the APPROVE_PLAN gate. When no concern signals fire, the plan is auto-approved with a structured report. When any signal fires, the plan pauses for human review. The `--review-plans` flag forces all plans to pause. No plan reaches EXECUTE without passing this gate.
|
|
596
906
|
- **No skipping VERIFY or REVIEW.** Every phase goes through verification and review. The human can override findings, but the steps cannot be skipped.
|
|
597
907
|
- **No infinite retries.** The retry budget is 3 attempts. If exhausted, STOP and surface to the human. Do not extend the budget without explicit human instruction.
|
|
598
908
|
- **No modifying session state files manually.** The session state files are managed by the skill. If the state appears corrupted, start fresh rather than patching it.
|