@harness-engineering/cli 1.23.0 → 1.23.2
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/harness/add-harness-component/SKILL.md +21 -12
- package/dist/agents/commands/codex/harness/cleanup-dead-code/SKILL.md +9 -0
- package/dist/agents/commands/codex/harness/detect-doc-drift/SKILL.md +9 -0
- package/dist/agents/commands/codex/harness/enforce-architecture/SKILL.md +5 -15
- package/dist/agents/commands/codex/harness/harness-architecture-advisor/SKILL.md +5 -15
- package/dist/agents/commands/codex/harness/harness-autopilot/SKILL.md +10 -0
- package/dist/agents/commands/codex/harness/harness-brainstorming/SKILL.md +9 -0
- package/dist/agents/commands/codex/harness/harness-code-review/SKILL.md +5 -15
- package/dist/agents/commands/codex/harness/harness-codebase-cleanup/SKILL.md +9 -0
- package/dist/agents/commands/codex/harness/harness-debugging/SKILL.md +9 -0
- package/dist/agents/commands/codex/harness/harness-dependency-health/SKILL.md +8 -0
- package/dist/agents/commands/codex/harness/harness-docs-pipeline/SKILL.md +9 -0
- package/dist/agents/commands/codex/harness/harness-execution/SKILL.md +9 -0
- package/dist/agents/commands/codex/harness/harness-hotspot-detector/SKILL.md +8 -0
- package/dist/agents/commands/codex/harness/harness-impact-analysis/SKILL.md +8 -0
- package/dist/agents/commands/codex/harness/harness-integrity/SKILL.md +8 -0
- package/dist/agents/commands/codex/harness/harness-onboarding/SKILL.md +18 -10
- package/dist/agents/commands/codex/harness/harness-perf/SKILL.md +9 -0
- package/dist/agents/commands/codex/harness/harness-planning/SKILL.md +10 -0
- package/dist/agents/commands/codex/harness/harness-refactoring/SKILL.md +9 -0
- package/dist/agents/commands/codex/harness/harness-release-readiness/SKILL.md +9 -0
- package/dist/agents/commands/codex/harness/harness-roadmap/SKILL.md +10 -1
- package/dist/agents/commands/codex/harness/harness-security-scan/SKILL.md +5 -15
- package/dist/agents/commands/codex/harness/harness-skill-authoring/SKILL.md +20 -1
- package/dist/agents/commands/codex/harness/harness-soundness-review/SKILL.md +10 -0
- package/dist/agents/commands/codex/harness/harness-supply-chain-audit/SKILL.md +8 -0
- package/dist/agents/commands/codex/harness/harness-tdd/SKILL.md +9 -0
- package/dist/agents/commands/codex/harness/harness-test-advisor/SKILL.md +8 -0
- package/dist/agents/commands/codex/harness/harness-verification/SKILL.md +9 -0
- package/dist/agents/commands/codex/harness/harness-verify/SKILL.md +8 -0
- package/dist/agents/commands/codex/harness/initialize-harness-project/SKILL.md +22 -13
- package/dist/agents/commands/cursor/harness/add-harness-component.mdc +12 -12
- package/dist/agents/commands/cursor/harness/harness-onboarding.mdc +10 -10
- package/dist/agents/commands/cursor/harness/harness-roadmap.mdc +1 -1
- package/dist/agents/commands/cursor/harness/initialize-harness-project.mdc +13 -13
- package/dist/agents/skills/claude-code/add-harness-component/SKILL.md +21 -12
- package/dist/agents/skills/claude-code/align-documentation/SKILL.md +9 -0
- package/dist/agents/skills/claude-code/check-mechanical-constraints/SKILL.md +9 -0
- package/dist/agents/skills/claude-code/cleanup-dead-code/SKILL.md +11 -0
- package/dist/agents/skills/claude-code/detect-doc-drift/SKILL.md +9 -0
- package/dist/agents/skills/claude-code/enforce-architecture/SKILL.md +5 -15
- package/dist/agents/skills/claude-code/harness-accessibility/SKILL.md +10 -0
- package/dist/agents/skills/claude-code/harness-api-design/SKILL.md +5 -15
- package/dist/agents/skills/claude-code/harness-architecture-advisor/SKILL.md +5 -15
- package/dist/agents/skills/claude-code/harness-auth/SKILL.md +5 -15
- package/dist/agents/skills/claude-code/harness-autopilot/SKILL.md +10 -0
- package/dist/agents/skills/claude-code/harness-brainstorming/SKILL.md +9 -0
- package/dist/agents/skills/claude-code/harness-caching/SKILL.md +10 -0
- package/dist/agents/skills/claude-code/harness-chaos/SKILL.md +10 -0
- package/dist/agents/skills/claude-code/harness-code-review/SKILL.md +5 -15
- package/dist/agents/skills/claude-code/harness-codebase-cleanup/SKILL.md +11 -0
- package/dist/agents/skills/claude-code/harness-compliance/SKILL.md +10 -0
- package/dist/agents/skills/claude-code/harness-containerization/SKILL.md +10 -0
- package/dist/agents/skills/claude-code/harness-data-pipeline/SKILL.md +10 -0
- package/dist/agents/skills/claude-code/harness-data-validation/SKILL.md +10 -0
- package/dist/agents/skills/claude-code/harness-database/SKILL.md +5 -15
- package/dist/agents/skills/claude-code/harness-debugging/SKILL.md +9 -0
- package/dist/agents/skills/claude-code/harness-dependency-health/SKILL.md +10 -0
- package/dist/agents/skills/claude-code/harness-deployment/SKILL.md +5 -15
- package/dist/agents/skills/claude-code/harness-design/SKILL.md +10 -0
- package/dist/agents/skills/claude-code/harness-design-mobile/SKILL.md +10 -0
- package/dist/agents/skills/claude-code/harness-design-system/SKILL.md +10 -0
- package/dist/agents/skills/claude-code/harness-design-web/SKILL.md +10 -0
- package/dist/agents/skills/claude-code/harness-diagnostics/SKILL.md +9 -0
- package/dist/agents/skills/claude-code/harness-docs-pipeline/SKILL.md +11 -0
- package/dist/agents/skills/claude-code/harness-dx/SKILL.md +10 -0
- package/dist/agents/skills/claude-code/harness-e2e/SKILL.md +9 -0
- package/dist/agents/skills/claude-code/harness-event-driven/SKILL.md +10 -0
- package/dist/agents/skills/claude-code/harness-execution/SKILL.md +9 -0
- package/dist/agents/skills/claude-code/harness-feature-flags/SKILL.md +10 -0
- package/dist/agents/skills/claude-code/harness-git-workflow/SKILL.md +10 -0
- package/dist/agents/skills/claude-code/harness-hotspot-detector/SKILL.md +10 -0
- package/dist/agents/skills/claude-code/harness-i18n/SKILL.md +10 -0
- package/dist/agents/skills/claude-code/harness-i18n-process/SKILL.md +10 -0
- package/dist/agents/skills/claude-code/harness-i18n-workflow/SKILL.md +10 -0
- package/dist/agents/skills/claude-code/harness-impact-analysis/SKILL.md +10 -0
- package/dist/agents/skills/claude-code/harness-incident-response/SKILL.md +10 -0
- package/dist/agents/skills/claude-code/harness-infrastructure-as-code/SKILL.md +10 -0
- package/dist/agents/skills/claude-code/harness-integration-test/SKILL.md +9 -0
- package/dist/agents/skills/claude-code/harness-integrity/SKILL.md +10 -0
- package/dist/agents/skills/claude-code/harness-knowledge-mapper/SKILL.md +9 -0
- package/dist/agents/skills/claude-code/harness-load-testing/SKILL.md +10 -0
- package/dist/agents/skills/claude-code/harness-ml-ops/SKILL.md +10 -0
- package/dist/agents/skills/claude-code/harness-mobile-patterns/SKILL.md +10 -0
- package/dist/agents/skills/claude-code/harness-mutation-test/SKILL.md +9 -0
- package/dist/agents/skills/claude-code/harness-observability/SKILL.md +10 -0
- package/dist/agents/skills/claude-code/harness-onboarding/SKILL.md +18 -10
- package/dist/agents/skills/claude-code/harness-parallel-agents/SKILL.md +9 -0
- package/dist/agents/skills/claude-code/harness-perf/SKILL.md +11 -0
- package/dist/agents/skills/claude-code/harness-perf-tdd/SKILL.md +10 -0
- package/dist/agents/skills/claude-code/harness-planning/SKILL.md +10 -0
- package/dist/agents/skills/claude-code/harness-pre-commit-review/SKILL.md +9 -0
- package/dist/agents/skills/claude-code/harness-product-spec/SKILL.md +10 -0
- package/dist/agents/skills/claude-code/harness-property-test/SKILL.md +10 -0
- package/dist/agents/skills/claude-code/harness-refactoring/SKILL.md +9 -0
- package/dist/agents/skills/claude-code/harness-release-readiness/SKILL.md +11 -0
- package/dist/agents/skills/claude-code/harness-resilience/SKILL.md +10 -0
- package/dist/agents/skills/claude-code/harness-roadmap/SKILL.md +10 -1
- package/dist/agents/skills/claude-code/harness-roadmap-pilot/SKILL.md +8 -0
- package/dist/agents/skills/claude-code/harness-secrets/SKILL.md +10 -0
- package/dist/agents/skills/claude-code/harness-security-review/SKILL.md +10 -0
- package/dist/agents/skills/claude-code/harness-security-scan/SKILL.md +5 -15
- package/dist/agents/skills/claude-code/harness-skill-authoring/SKILL.md +29 -1
- package/dist/agents/skills/claude-code/harness-soundness-review/SKILL.md +10 -0
- package/dist/agents/skills/claude-code/harness-sql-review/SKILL.md +10 -0
- package/dist/agents/skills/claude-code/harness-state-management/SKILL.md +10 -0
- package/dist/agents/skills/claude-code/harness-supply-chain-audit/SKILL.md +10 -0
- package/dist/agents/skills/claude-code/harness-tdd/SKILL.md +9 -0
- package/dist/agents/skills/claude-code/harness-test-advisor/SKILL.md +10 -0
- package/dist/agents/skills/claude-code/harness-test-data/SKILL.md +10 -0
- package/dist/agents/skills/claude-code/harness-ux-copy/SKILL.md +10 -0
- package/dist/agents/skills/claude-code/harness-verification/SKILL.md +9 -0
- package/dist/agents/skills/claude-code/harness-verify/SKILL.md +10 -0
- package/dist/agents/skills/claude-code/harness-visual-regression/SKILL.md +10 -0
- package/dist/agents/skills/claude-code/initialize-harness-project/SKILL.md +22 -13
- package/dist/agents/skills/claude-code/validate-context-engineering/SKILL.md +9 -0
- package/dist/agents/skills/codex/add-harness-component/SKILL.md +21 -12
- package/dist/agents/skills/codex/align-documentation/SKILL.md +9 -0
- package/dist/agents/skills/codex/check-mechanical-constraints/SKILL.md +9 -0
- package/dist/agents/skills/codex/cleanup-dead-code/SKILL.md +11 -0
- package/dist/agents/skills/codex/detect-doc-drift/SKILL.md +9 -0
- package/dist/agents/skills/codex/enforce-architecture/SKILL.md +5 -15
- package/dist/agents/skills/codex/harness-accessibility/SKILL.md +10 -0
- package/dist/agents/skills/codex/harness-api-design/SKILL.md +5 -15
- package/dist/agents/skills/codex/harness-architecture-advisor/SKILL.md +5 -15
- package/dist/agents/skills/codex/harness-auth/SKILL.md +5 -15
- package/dist/agents/skills/codex/harness-autopilot/SKILL.md +10 -0
- package/dist/agents/skills/codex/harness-brainstorming/SKILL.md +9 -0
- package/dist/agents/skills/codex/harness-caching/SKILL.md +10 -0
- package/dist/agents/skills/codex/harness-chaos/SKILL.md +10 -0
- package/dist/agents/skills/codex/harness-code-review/SKILL.md +5 -15
- package/dist/agents/skills/codex/harness-codebase-cleanup/SKILL.md +11 -0
- package/dist/agents/skills/codex/harness-compliance/SKILL.md +10 -0
- package/dist/agents/skills/codex/harness-containerization/SKILL.md +10 -0
- package/dist/agents/skills/codex/harness-data-pipeline/SKILL.md +10 -0
- package/dist/agents/skills/codex/harness-data-validation/SKILL.md +10 -0
- package/dist/agents/skills/codex/harness-database/SKILL.md +5 -15
- package/dist/agents/skills/codex/harness-debugging/SKILL.md +9 -0
- package/dist/agents/skills/codex/harness-dependency-health/SKILL.md +10 -0
- package/dist/agents/skills/codex/harness-deployment/SKILL.md +5 -15
- package/dist/agents/skills/codex/harness-design/SKILL.md +10 -0
- package/dist/agents/skills/codex/harness-design-mobile/SKILL.md +10 -0
- package/dist/agents/skills/codex/harness-design-system/SKILL.md +10 -0
- package/dist/agents/skills/codex/harness-design-web/SKILL.md +10 -0
- package/dist/agents/skills/codex/harness-diagnostics/SKILL.md +9 -0
- package/dist/agents/skills/codex/harness-docs-pipeline/SKILL.md +11 -0
- package/dist/agents/skills/codex/harness-dx/SKILL.md +10 -0
- package/dist/agents/skills/codex/harness-e2e/SKILL.md +9 -0
- package/dist/agents/skills/codex/harness-event-driven/SKILL.md +10 -0
- package/dist/agents/skills/codex/harness-execution/SKILL.md +9 -0
- package/dist/agents/skills/codex/harness-feature-flags/SKILL.md +10 -0
- package/dist/agents/skills/codex/harness-git-workflow/SKILL.md +10 -0
- package/dist/agents/skills/codex/harness-hotspot-detector/SKILL.md +10 -0
- package/dist/agents/skills/codex/harness-i18n/SKILL.md +10 -0
- package/dist/agents/skills/codex/harness-i18n-process/SKILL.md +10 -0
- package/dist/agents/skills/codex/harness-i18n-workflow/SKILL.md +10 -0
- package/dist/agents/skills/codex/harness-impact-analysis/SKILL.md +10 -0
- package/dist/agents/skills/codex/harness-incident-response/SKILL.md +10 -0
- package/dist/agents/skills/codex/harness-infrastructure-as-code/SKILL.md +10 -0
- package/dist/agents/skills/codex/harness-integration-test/SKILL.md +9 -0
- package/dist/agents/skills/codex/harness-integrity/SKILL.md +10 -0
- package/dist/agents/skills/codex/harness-knowledge-mapper/SKILL.md +9 -0
- package/dist/agents/skills/codex/harness-load-testing/SKILL.md +10 -0
- package/dist/agents/skills/codex/harness-ml-ops/SKILL.md +10 -0
- package/dist/agents/skills/codex/harness-mobile-patterns/SKILL.md +10 -0
- package/dist/agents/skills/codex/harness-mutation-test/SKILL.md +9 -0
- package/dist/agents/skills/codex/harness-observability/SKILL.md +10 -0
- package/dist/agents/skills/codex/harness-onboarding/SKILL.md +18 -10
- package/dist/agents/skills/codex/harness-parallel-agents/SKILL.md +9 -0
- package/dist/agents/skills/codex/harness-perf/SKILL.md +11 -0
- package/dist/agents/skills/codex/harness-perf-tdd/SKILL.md +10 -0
- package/dist/agents/skills/codex/harness-planning/SKILL.md +10 -0
- package/dist/agents/skills/codex/harness-pre-commit-review/SKILL.md +9 -0
- package/dist/agents/skills/codex/harness-product-spec/SKILL.md +10 -0
- package/dist/agents/skills/codex/harness-property-test/SKILL.md +10 -0
- package/dist/agents/skills/codex/harness-refactoring/SKILL.md +9 -0
- package/dist/agents/skills/codex/harness-release-readiness/SKILL.md +11 -0
- package/dist/agents/skills/codex/harness-resilience/SKILL.md +10 -0
- package/dist/agents/skills/codex/harness-roadmap/SKILL.md +10 -1
- package/dist/agents/skills/codex/harness-roadmap-pilot/SKILL.md +8 -0
- package/dist/agents/skills/codex/harness-secrets/SKILL.md +10 -0
- package/dist/agents/skills/codex/harness-security-review/SKILL.md +10 -0
- package/dist/agents/skills/codex/harness-security-scan/SKILL.md +5 -15
- package/dist/agents/skills/codex/harness-skill-authoring/SKILL.md +29 -1
- package/dist/agents/skills/codex/harness-soundness-review/SKILL.md +10 -0
- package/dist/agents/skills/codex/harness-sql-review/SKILL.md +10 -0
- package/dist/agents/skills/codex/harness-state-management/SKILL.md +10 -0
- package/dist/agents/skills/codex/harness-supply-chain-audit/SKILL.md +10 -0
- package/dist/agents/skills/codex/harness-tdd/SKILL.md +9 -0
- package/dist/agents/skills/codex/harness-test-advisor/SKILL.md +10 -0
- package/dist/agents/skills/codex/harness-test-data/SKILL.md +10 -0
- package/dist/agents/skills/codex/harness-ux-copy/SKILL.md +10 -0
- package/dist/agents/skills/codex/harness-verification/SKILL.md +9 -0
- package/dist/agents/skills/codex/harness-verify/SKILL.md +10 -0
- package/dist/agents/skills/codex/harness-visual-regression/SKILL.md +10 -0
- package/dist/agents/skills/codex/initialize-harness-project/SKILL.md +22 -13
- package/dist/agents/skills/codex/validate-context-engineering/SKILL.md +9 -0
- package/dist/agents/skills/cursor/add-harness-component/SKILL.md +21 -12
- package/dist/agents/skills/cursor/align-documentation/SKILL.md +9 -0
- package/dist/agents/skills/cursor/check-mechanical-constraints/SKILL.md +9 -0
- package/dist/agents/skills/cursor/cleanup-dead-code/SKILL.md +11 -0
- package/dist/agents/skills/cursor/detect-doc-drift/SKILL.md +9 -0
- package/dist/agents/skills/cursor/enforce-architecture/SKILL.md +5 -15
- package/dist/agents/skills/cursor/harness-accessibility/SKILL.md +10 -0
- package/dist/agents/skills/cursor/harness-api-design/SKILL.md +5 -15
- package/dist/agents/skills/cursor/harness-architecture-advisor/SKILL.md +5 -15
- package/dist/agents/skills/cursor/harness-auth/SKILL.md +5 -15
- package/dist/agents/skills/cursor/harness-autopilot/SKILL.md +10 -0
- package/dist/agents/skills/cursor/harness-brainstorming/SKILL.md +9 -0
- package/dist/agents/skills/cursor/harness-caching/SKILL.md +10 -0
- package/dist/agents/skills/cursor/harness-chaos/SKILL.md +10 -0
- package/dist/agents/skills/cursor/harness-code-review/SKILL.md +5 -15
- package/dist/agents/skills/cursor/harness-codebase-cleanup/SKILL.md +11 -0
- package/dist/agents/skills/cursor/harness-compliance/SKILL.md +10 -0
- package/dist/agents/skills/cursor/harness-containerization/SKILL.md +10 -0
- package/dist/agents/skills/cursor/harness-data-pipeline/SKILL.md +10 -0
- package/dist/agents/skills/cursor/harness-data-validation/SKILL.md +10 -0
- package/dist/agents/skills/cursor/harness-database/SKILL.md +5 -15
- package/dist/agents/skills/cursor/harness-debugging/SKILL.md +9 -0
- package/dist/agents/skills/cursor/harness-dependency-health/SKILL.md +10 -0
- package/dist/agents/skills/cursor/harness-deployment/SKILL.md +5 -15
- package/dist/agents/skills/cursor/harness-design/SKILL.md +10 -0
- package/dist/agents/skills/cursor/harness-design-mobile/SKILL.md +10 -0
- package/dist/agents/skills/cursor/harness-design-system/SKILL.md +10 -0
- package/dist/agents/skills/cursor/harness-design-web/SKILL.md +10 -0
- package/dist/agents/skills/cursor/harness-diagnostics/SKILL.md +9 -0
- package/dist/agents/skills/cursor/harness-docs-pipeline/SKILL.md +11 -0
- package/dist/agents/skills/cursor/harness-dx/SKILL.md +10 -0
- package/dist/agents/skills/cursor/harness-e2e/SKILL.md +9 -0
- package/dist/agents/skills/cursor/harness-event-driven/SKILL.md +10 -0
- package/dist/agents/skills/cursor/harness-execution/SKILL.md +9 -0
- package/dist/agents/skills/cursor/harness-feature-flags/SKILL.md +10 -0
- package/dist/agents/skills/cursor/harness-git-workflow/SKILL.md +10 -0
- package/dist/agents/skills/cursor/harness-hotspot-detector/SKILL.md +10 -0
- package/dist/agents/skills/cursor/harness-i18n/SKILL.md +10 -0
- package/dist/agents/skills/cursor/harness-i18n-process/SKILL.md +10 -0
- package/dist/agents/skills/cursor/harness-i18n-workflow/SKILL.md +10 -0
- package/dist/agents/skills/cursor/harness-impact-analysis/SKILL.md +10 -0
- package/dist/agents/skills/cursor/harness-incident-response/SKILL.md +10 -0
- package/dist/agents/skills/cursor/harness-infrastructure-as-code/SKILL.md +10 -0
- package/dist/agents/skills/cursor/harness-integration-test/SKILL.md +9 -0
- package/dist/agents/skills/cursor/harness-integrity/SKILL.md +10 -0
- package/dist/agents/skills/cursor/harness-knowledge-mapper/SKILL.md +9 -0
- package/dist/agents/skills/cursor/harness-load-testing/SKILL.md +10 -0
- package/dist/agents/skills/cursor/harness-ml-ops/SKILL.md +10 -0
- package/dist/agents/skills/cursor/harness-mobile-patterns/SKILL.md +10 -0
- package/dist/agents/skills/cursor/harness-mutation-test/SKILL.md +9 -0
- package/dist/agents/skills/cursor/harness-observability/SKILL.md +10 -0
- package/dist/agents/skills/cursor/harness-onboarding/SKILL.md +18 -10
- package/dist/agents/skills/cursor/harness-parallel-agents/SKILL.md +9 -0
- package/dist/agents/skills/cursor/harness-perf/SKILL.md +11 -0
- package/dist/agents/skills/cursor/harness-perf-tdd/SKILL.md +10 -0
- package/dist/agents/skills/cursor/harness-planning/SKILL.md +10 -0
- package/dist/agents/skills/cursor/harness-pre-commit-review/SKILL.md +9 -0
- package/dist/agents/skills/cursor/harness-product-spec/SKILL.md +10 -0
- package/dist/agents/skills/cursor/harness-property-test/SKILL.md +10 -0
- package/dist/agents/skills/cursor/harness-refactoring/SKILL.md +9 -0
- package/dist/agents/skills/cursor/harness-release-readiness/SKILL.md +11 -0
- package/dist/agents/skills/cursor/harness-resilience/SKILL.md +10 -0
- package/dist/agents/skills/cursor/harness-roadmap/SKILL.md +10 -1
- package/dist/agents/skills/cursor/harness-roadmap-pilot/SKILL.md +8 -0
- package/dist/agents/skills/cursor/harness-secrets/SKILL.md +10 -0
- package/dist/agents/skills/cursor/harness-security-review/SKILL.md +10 -0
- package/dist/agents/skills/cursor/harness-security-scan/SKILL.md +5 -15
- package/dist/agents/skills/cursor/harness-skill-authoring/SKILL.md +29 -1
- package/dist/agents/skills/cursor/harness-soundness-review/SKILL.md +10 -0
- package/dist/agents/skills/cursor/harness-sql-review/SKILL.md +10 -0
- package/dist/agents/skills/cursor/harness-state-management/SKILL.md +10 -0
- package/dist/agents/skills/cursor/harness-supply-chain-audit/SKILL.md +10 -0
- package/dist/agents/skills/cursor/harness-tdd/SKILL.md +9 -0
- package/dist/agents/skills/cursor/harness-test-advisor/SKILL.md +10 -0
- package/dist/agents/skills/cursor/harness-test-data/SKILL.md +10 -0
- package/dist/agents/skills/cursor/harness-ux-copy/SKILL.md +10 -0
- package/dist/agents/skills/cursor/harness-verification/SKILL.md +9 -0
- package/dist/agents/skills/cursor/harness-verify/SKILL.md +10 -0
- package/dist/agents/skills/cursor/harness-visual-regression/SKILL.md +10 -0
- package/dist/agents/skills/cursor/initialize-harness-project/SKILL.md +22 -13
- package/dist/agents/skills/cursor/validate-context-engineering/SKILL.md +9 -0
- package/dist/agents/skills/gemini-cli/add-harness-component/SKILL.md +21 -12
- package/dist/agents/skills/gemini-cli/align-documentation/SKILL.md +9 -0
- package/dist/agents/skills/gemini-cli/check-mechanical-constraints/SKILL.md +9 -0
- package/dist/agents/skills/gemini-cli/cleanup-dead-code/SKILL.md +11 -0
- package/dist/agents/skills/gemini-cli/detect-doc-drift/SKILL.md +9 -0
- package/dist/agents/skills/gemini-cli/enforce-architecture/SKILL.md +5 -15
- package/dist/agents/skills/gemini-cli/harness-accessibility/SKILL.md +10 -0
- package/dist/agents/skills/gemini-cli/harness-api-design/SKILL.md +5 -15
- package/dist/agents/skills/gemini-cli/harness-architecture-advisor/SKILL.md +5 -15
- package/dist/agents/skills/gemini-cli/harness-auth/SKILL.md +5 -15
- package/dist/agents/skills/gemini-cli/harness-autopilot/SKILL.md +10 -0
- package/dist/agents/skills/gemini-cli/harness-brainstorming/SKILL.md +9 -0
- package/dist/agents/skills/gemini-cli/harness-caching/SKILL.md +10 -0
- package/dist/agents/skills/gemini-cli/harness-chaos/SKILL.md +10 -0
- package/dist/agents/skills/gemini-cli/harness-code-review/SKILL.md +5 -15
- package/dist/agents/skills/gemini-cli/harness-codebase-cleanup/SKILL.md +11 -0
- package/dist/agents/skills/gemini-cli/harness-compliance/SKILL.md +10 -0
- package/dist/agents/skills/gemini-cli/harness-containerization/SKILL.md +10 -0
- package/dist/agents/skills/gemini-cli/harness-data-pipeline/SKILL.md +10 -0
- package/dist/agents/skills/gemini-cli/harness-data-validation/SKILL.md +10 -0
- package/dist/agents/skills/gemini-cli/harness-database/SKILL.md +5 -15
- package/dist/agents/skills/gemini-cli/harness-debugging/SKILL.md +9 -0
- package/dist/agents/skills/gemini-cli/harness-dependency-health/SKILL.md +10 -0
- package/dist/agents/skills/gemini-cli/harness-deployment/SKILL.md +5 -15
- package/dist/agents/skills/gemini-cli/harness-design/SKILL.md +10 -0
- package/dist/agents/skills/gemini-cli/harness-design-mobile/SKILL.md +10 -0
- package/dist/agents/skills/gemini-cli/harness-design-system/SKILL.md +10 -0
- package/dist/agents/skills/gemini-cli/harness-design-web/SKILL.md +10 -0
- package/dist/agents/skills/gemini-cli/harness-diagnostics/SKILL.md +9 -0
- package/dist/agents/skills/gemini-cli/harness-docs-pipeline/SKILL.md +11 -0
- package/dist/agents/skills/gemini-cli/harness-dx/SKILL.md +10 -0
- package/dist/agents/skills/gemini-cli/harness-e2e/SKILL.md +9 -0
- package/dist/agents/skills/gemini-cli/harness-event-driven/SKILL.md +10 -0
- package/dist/agents/skills/gemini-cli/harness-execution/SKILL.md +9 -0
- package/dist/agents/skills/gemini-cli/harness-feature-flags/SKILL.md +10 -0
- package/dist/agents/skills/gemini-cli/harness-git-workflow/SKILL.md +10 -0
- package/dist/agents/skills/gemini-cli/harness-hotspot-detector/SKILL.md +10 -0
- package/dist/agents/skills/gemini-cli/harness-i18n/SKILL.md +10 -0
- package/dist/agents/skills/gemini-cli/harness-i18n-process/SKILL.md +10 -0
- package/dist/agents/skills/gemini-cli/harness-i18n-workflow/SKILL.md +10 -0
- package/dist/agents/skills/gemini-cli/harness-impact-analysis/SKILL.md +10 -0
- package/dist/agents/skills/gemini-cli/harness-incident-response/SKILL.md +10 -0
- package/dist/agents/skills/gemini-cli/harness-infrastructure-as-code/SKILL.md +10 -0
- package/dist/agents/skills/gemini-cli/harness-integration-test/SKILL.md +9 -0
- package/dist/agents/skills/gemini-cli/harness-integrity/SKILL.md +10 -0
- package/dist/agents/skills/gemini-cli/harness-knowledge-mapper/SKILL.md +9 -0
- package/dist/agents/skills/gemini-cli/harness-load-testing/SKILL.md +10 -0
- package/dist/agents/skills/gemini-cli/harness-ml-ops/SKILL.md +10 -0
- package/dist/agents/skills/gemini-cli/harness-mobile-patterns/SKILL.md +10 -0
- package/dist/agents/skills/gemini-cli/harness-mutation-test/SKILL.md +9 -0
- package/dist/agents/skills/gemini-cli/harness-observability/SKILL.md +10 -0
- package/dist/agents/skills/gemini-cli/harness-onboarding/SKILL.md +18 -10
- package/dist/agents/skills/gemini-cli/harness-parallel-agents/SKILL.md +9 -0
- package/dist/agents/skills/gemini-cli/harness-perf/SKILL.md +11 -0
- package/dist/agents/skills/gemini-cli/harness-perf-tdd/SKILL.md +10 -0
- package/dist/agents/skills/gemini-cli/harness-planning/SKILL.md +10 -0
- package/dist/agents/skills/gemini-cli/harness-pre-commit-review/SKILL.md +9 -0
- package/dist/agents/skills/gemini-cli/harness-product-spec/SKILL.md +10 -0
- package/dist/agents/skills/gemini-cli/harness-property-test/SKILL.md +10 -0
- package/dist/agents/skills/gemini-cli/harness-refactoring/SKILL.md +9 -0
- package/dist/agents/skills/gemini-cli/harness-release-readiness/SKILL.md +11 -0
- package/dist/agents/skills/gemini-cli/harness-resilience/SKILL.md +10 -0
- package/dist/agents/skills/gemini-cli/harness-roadmap/SKILL.md +10 -1
- package/dist/agents/skills/gemini-cli/harness-roadmap-pilot/SKILL.md +8 -0
- package/dist/agents/skills/gemini-cli/harness-secrets/SKILL.md +10 -0
- package/dist/agents/skills/gemini-cli/harness-security-review/SKILL.md +10 -0
- package/dist/agents/skills/gemini-cli/harness-security-scan/SKILL.md +5 -15
- package/dist/agents/skills/gemini-cli/harness-skill-authoring/SKILL.md +29 -1
- package/dist/agents/skills/gemini-cli/harness-soundness-review/SKILL.md +10 -0
- package/dist/agents/skills/gemini-cli/harness-sql-review/SKILL.md +10 -0
- package/dist/agents/skills/gemini-cli/harness-state-management/SKILL.md +10 -0
- package/dist/agents/skills/gemini-cli/harness-supply-chain-audit/SKILL.md +10 -0
- package/dist/agents/skills/gemini-cli/harness-tdd/SKILL.md +9 -0
- package/dist/agents/skills/gemini-cli/harness-test-advisor/SKILL.md +10 -0
- package/dist/agents/skills/gemini-cli/harness-test-data/SKILL.md +10 -0
- package/dist/agents/skills/gemini-cli/harness-ux-copy/SKILL.md +10 -0
- package/dist/agents/skills/gemini-cli/harness-verification/SKILL.md +9 -0
- package/dist/agents/skills/gemini-cli/harness-verify/SKILL.md +10 -0
- package/dist/agents/skills/gemini-cli/harness-visual-regression/SKILL.md +10 -0
- package/dist/agents/skills/gemini-cli/initialize-harness-project/SKILL.md +22 -13
- package/dist/agents/skills/gemini-cli/validate-context-engineering/SKILL.md +9 -0
- package/dist/agents-md-HCCCO5PK.js +9 -0
- package/dist/{architecture-EDSBAGR4.js → architecture-S2H624W7.js} +5 -5
- package/dist/{assess-project-CEDY4JU3.js → assess-project-XSGK44S5.js} +1 -1
- package/dist/bin/harness-mcp.js +18 -18
- package/dist/bin/harness.js +124 -35
- package/dist/{check-phase-gate-N3DTKFCZ.js → check-phase-gate-UGBJ237T.js} +5 -5
- package/dist/{chunk-AIBAYANF.js → chunk-2DHX6TAP.js} +4 -4
- package/dist/{chunk-ENA4O4WD.js → chunk-2GT3HO2T.js} +3 -3
- package/dist/{chunk-TJ6NLLAY.js → chunk-2YA4XRI3.js} +5 -5
- package/dist/{chunk-GZKSBLQL.js → chunk-35EQ5UEI.js} +1 -1
- package/dist/{chunk-T5QWCVGK.js → chunk-4FHBPA3E.js} +11 -3
- package/dist/{chunk-ERS5EVUZ.js → chunk-5LMZA5LZ.js} +10 -10
- package/dist/{chunk-SM22U22L.js → chunk-BK52Z6DR.js} +869 -419
- package/dist/{chunk-5SWE24IG.js → chunk-CLD4KL7O.js} +342 -72
- package/dist/{chunk-OD3S2NHN.js → chunk-E2GTL3YS.js} +1 -1
- package/dist/{chunk-YLN34N65.js → chunk-FP53DDB5.js} +1 -1
- package/dist/{chunk-TLDCCPUZ.js → chunk-I47JLISV.js} +1 -1
- package/dist/{chunk-AKVG4MMZ.js → chunk-KC5CTCEL.js} +9 -9
- package/dist/{chunk-26AUZBV4.js → chunk-KTL3PHNQ.js} +6445 -6222
- package/dist/{chunk-DBSOCI3G.js → chunk-KV4M6Y5J.js} +1 -1
- package/dist/{chunk-FIAPHX37.js → chunk-LM5Z2WCA.js} +1 -1
- package/dist/{chunk-SD3SQOZ2.js → chunk-LOUH2LIC.js} +1 -1
- package/dist/{chunk-QUKH6QCJ.js → chunk-MHOO7NLG.js} +11 -11
- package/dist/{chunk-HT4VPPB4.js → chunk-MZAHE4DK.js} +12 -12
- package/dist/{chunk-A4AI3H3R.js → chunk-NKL53UBL.js} +6 -6
- package/dist/{chunk-GJRUIXUK.js → chunk-PGF44T2D.js} +6 -6
- package/dist/{chunk-H7Y5CKTM.js → chunk-Q3XYV5UC.js} +1 -1
- package/dist/{chunk-TD6MQUV2.js → chunk-S5ZXT3TZ.js} +1 -1
- package/dist/{chunk-6KWBH4EO.js → chunk-UGD37ECK.js} +5 -5
- package/dist/{chunk-XDAIFVGC.js → chunk-V27WDRYV.js} +603 -525
- package/dist/{chunk-YQ6KC6TE.js → chunk-YDRB55Q4.js} +1 -1
- package/dist/{chunk-2LAEDVOC.js → chunk-ZRYDYDB2.js} +6 -6
- package/dist/{chunk-LIWGCYON.js → chunk-ZYJJUPNE.js} +1 -1
- package/dist/ci-workflow-I3V7FZNV.js +9 -0
- package/dist/{create-skill-U3XCFRZN.js → create-skill-AO25CJFM.js} +2 -2
- package/dist/{dist-USY2C5JL.js → dist-666AAZQ6.js} +1 -1
- package/dist/{dist-DZ63LLUD.js → dist-KQSTRP36.js} +1 -1
- package/dist/{dist-YIKUBJLQ.js → dist-MKWF5CXR.js} +7 -3
- package/dist/{dist-OEXTQQZC.js → dist-WU3TVNNG.js} +7 -1
- package/dist/{docs-F5G7NAFF.js → docs-R7UVQBMQ.js} +5 -5
- package/dist/engine-JGI3MWAC.js +9 -0
- package/dist/{entropy-A5Q2USYX.js → entropy-IDHIG7HS.js} +4 -4
- package/dist/{feedback-2EU25RIW.js → feedback-JZETY4UR.js} +1 -1
- package/dist/{generate-agent-definitions-HNJHO5YQ.js → generate-agent-definitions-D7B25YTM.js} +6 -6
- package/dist/{graph-loader-XULF5QF7.js → graph-loader-BJULJYGG.js} +1 -1
- package/dist/index.d.ts +20 -16
- package/dist/index.js +54 -54
- package/dist/loader-E4KNTOP2.js +11 -0
- package/dist/mcp-67I2DBNM.js +37 -0
- package/dist/{performance-YAY2A6A6.js → performance-744OSR6P.js} +5 -5
- package/dist/{review-pipeline-YD4WI3JM.js → review-pipeline-HIO7HBW4.js} +1 -1
- package/dist/runtime-JXQ26U4Z.js +10 -0
- package/dist/{security-IBSUKMVD.js → security-GDKHVFUC.js} +1 -1
- package/dist/{validate-NHXWKMCR.js → validate-2IUR3OWX.js} +5 -5
- package/dist/validate-cross-check-AM4T6P2K.js +9 -0
- package/package.json +5 -5
- package/dist/agents-md-GLKJSGKT.js +0 -9
- package/dist/ci-workflow-LE3QF4FP.js +0 -9
- package/dist/engine-LX5RVGXN.js +0 -9
- package/dist/loader-GWIEW4HM.js +0 -11
- package/dist/mcp-ID3LR6JB.js +0 -37
- package/dist/runtime-UJ4YO4CA.js +0 -10
- package/dist/validate-cross-check-R3GV2MLM.js +0 -9
- package/dist/{chunk-CJDVBBPB.js → chunk-3ISINLYT.js} +1 -1
|
@@ -31,11 +31,11 @@
|
|
|
31
31
|
- **Component:** Name, which layer it belongs to, what it depends on, what will depend on it
|
|
32
32
|
- **Skill:** Name, purpose, type (rigid or flexible), triggers
|
|
33
33
|
|
|
34
|
-
3. **Check prerequisites.** The project must already be initialized with harness. If `harness.
|
|
34
|
+
3. **Check prerequisites.** The project must already be initialized with harness. If `harness.config.json` does not exist, stop and run initialize-harness-project first.
|
|
35
35
|
|
|
36
36
|
### Phase 2: VALIDATE — Check Against Existing Constraints
|
|
37
37
|
|
|
38
|
-
1. **Read the current configuration.** Load `harness.
|
|
38
|
+
1. **Read the current configuration.** Load `harness.config.json` and `AGENTS.md` to understand existing layers, constraints, and architecture.
|
|
39
39
|
|
|
40
40
|
2. **Verify the new component does not conflict:**
|
|
41
41
|
- Does the layer name already exist?
|
|
@@ -55,7 +55,7 @@
|
|
|
55
55
|
- Component: `harness add component <name> --layer <layer-name>`
|
|
56
56
|
- Skill: `harness add skill <name> --type <rigid|flexible>`
|
|
57
57
|
|
|
58
|
-
2. **Review generated files and configuration changes.** `harness add` modifies `harness.
|
|
58
|
+
2. **Review generated files and configuration changes.** `harness add` modifies `harness.config.json` and may generate template files. Check that the changes look correct.
|
|
59
59
|
|
|
60
60
|
3. **Create the actual code or content.** `harness add` creates the configuration entry but not necessarily the implementation. Create the directories, files, and initial code as needed.
|
|
61
61
|
|
|
@@ -65,7 +65,7 @@
|
|
|
65
65
|
|
|
66
66
|
2. **Update `AGENTS.md`.** Add the new component to the architecture section. Document its purpose, boundaries, and relationships to other components. This keeps agent instructions accurate.
|
|
67
67
|
|
|
68
|
-
3. **Update layer configuration** if the new component changes dependency relationships. Ensure `harness.
|
|
68
|
+
3. **Update layer configuration** if the new component changes dependency relationships. Ensure `harness.config.json` reflects the actual import graph.
|
|
69
69
|
|
|
70
70
|
4. **For new skills:** Write the `skill.yaml` and `SKILL.md` files following the harness skill format. Use harness-skill-authoring for guidance on writing good skill content.
|
|
71
71
|
|
|
@@ -86,7 +86,7 @@ harness scan [path]
|
|
|
86
86
|
Skipping this step means subsequent graph queries (impact analysis, dependency health, test advisor) may return stale results.
|
|
87
87
|
|
|
88
88
|
3. **If validation fails,** fix the issues before committing. Common causes:
|
|
89
|
-
- New layer not properly registered in `harness.
|
|
89
|
+
- New layer not properly registered in `harness.config.json`
|
|
90
90
|
- Component placed in wrong directory for its declared layer
|
|
91
91
|
- Imports from forbidden layers
|
|
92
92
|
- `AGENTS.md` references outdated architecture
|
|
@@ -104,7 +104,7 @@ Skipping this step means subsequent graph queries (impact analysis, dependency h
|
|
|
104
104
|
|
|
105
105
|
## Success Criteria
|
|
106
106
|
|
|
107
|
-
- The new component is properly registered in `harness.
|
|
107
|
+
- The new component is properly registered in `harness.config.json`
|
|
108
108
|
- The component's files exist in the correct directories for its declared layer
|
|
109
109
|
- `AGENTS.md` is updated to reflect the new component
|
|
110
110
|
- `harness validate` passes after the addition
|
|
@@ -112,6 +112,15 @@ Skipping this step means subsequent graph queries (impact analysis, dependency h
|
|
|
112
112
|
- No circular dependencies were introduced
|
|
113
113
|
- The addition is committed as a single atomic commit
|
|
114
114
|
|
|
115
|
+
## Rationalizations to Reject
|
|
116
|
+
|
|
117
|
+
| Rationalization | Reality |
|
|
118
|
+
| --- | --- |
|
|
119
|
+
| "I will add the component and fix any constraint violations later" | Phase 2 requires running harness check-deps for a clean baseline BEFORE adding. Phase 5 requires it to pass AFTER adding. |
|
|
120
|
+
| "AGENTS.md does not need updating for a small internal component" | Phase 4 explicitly requires updating AGENTS.md for every new component. Without it, AI agents have no context. |
|
|
121
|
+
| "The new layer imports are obvious, so I do not need to check for circularity" | Phase 2 checks whether new dependency relationships create circular imports. Circular dependencies are invisible until they cause runtime failures. |
|
|
122
|
+
| "I will commit the config change and the code separately for cleaner history" | The success criteria require a single atomic commit. Splitting creates a window where config references a nonexistent component. |
|
|
123
|
+
|
|
115
124
|
## Examples
|
|
116
125
|
|
|
117
126
|
### Example: Adding a New Layer
|
|
@@ -124,7 +133,7 @@ DETERMINE: Adding a layer. Name: infrastructure. Dirs: src/infrastructure/.
|
|
|
124
133
|
Imported by: business layer (services call external APIs through infrastructure).
|
|
125
134
|
|
|
126
135
|
VALIDATE:
|
|
127
|
-
Read harness.
|
|
136
|
+
Read harness.config.json — existing layers: presentation, business, data.
|
|
128
137
|
No conflict with "infrastructure" name.
|
|
129
138
|
Run: harness check-deps — passes (clean baseline).
|
|
130
139
|
|
|
@@ -133,13 +142,13 @@ ADD:
|
|
|
133
142
|
mkdir -p src/infrastructure
|
|
134
143
|
|
|
135
144
|
WIRE:
|
|
136
|
-
Update harness.
|
|
145
|
+
Update harness.config.json: allow business → infrastructure imports.
|
|
137
146
|
Update AGENTS.md: document infrastructure layer purpose and boundaries.
|
|
138
147
|
|
|
139
148
|
VERIFY:
|
|
140
149
|
harness validate # Pass
|
|
141
150
|
harness check-deps # Pass
|
|
142
|
-
git add harness.
|
|
151
|
+
git add harness.config.json AGENTS.md src/infrastructure/
|
|
143
152
|
git commit -m "feat: add infrastructure layer for external API clients"
|
|
144
153
|
```
|
|
145
154
|
|
|
@@ -159,7 +168,7 @@ WIRE:
|
|
|
159
168
|
|
|
160
169
|
VERIFY:
|
|
161
170
|
harness validate # Pass
|
|
162
|
-
git add harness.
|
|
171
|
+
git add harness.config.json AGENTS.md
|
|
163
172
|
git commit -m "feat: track API spec for documentation drift detection"
|
|
164
173
|
```
|
|
165
174
|
|
|
@@ -172,7 +181,7 @@ DETERMINE: Adding a component. Name: notification-service. Layer: business.
|
|
|
172
181
|
Depends on: data layer (notification repository). Depended on by: presentation layer (routes).
|
|
173
182
|
|
|
174
183
|
VALIDATE:
|
|
175
|
-
Read harness.
|
|
184
|
+
Read harness.config.json — business layer exists, maps to src/services/.
|
|
176
185
|
No existing notification-service directory.
|
|
177
186
|
business → data is an allowed import. Presentation → business is allowed.
|
|
178
187
|
Run: harness check-deps — passes.
|
|
@@ -189,7 +198,7 @@ WIRE:
|
|
|
189
198
|
VERIFY:
|
|
190
199
|
harness validate # Pass
|
|
191
200
|
harness check-deps # Pass
|
|
192
|
-
git add harness.
|
|
201
|
+
git add harness.config.json AGENTS.md src/services/notification-service.*
|
|
193
202
|
git commit -m "feat: add notification service to business layer"
|
|
194
203
|
```
|
|
195
204
|
|
|
@@ -239,6 +239,15 @@ ORPHANED DEPENDENCY: moment (package.json)
|
|
|
239
239
|
|
|
240
240
|
**Action:** Remove `moment` from package.json dependencies. Run `npm install` to update lockfile. Run tests — all pass. Commit: "remove unused moment dependency"
|
|
241
241
|
|
|
242
|
+
## Rationalizations to Reject
|
|
243
|
+
|
|
244
|
+
| Rationalization | Reality |
|
|
245
|
+
| --- | --- |
|
|
246
|
+
| "This export has zero static imports, so it is definitely dead and safe to remove" | Zero static imports does not mean zero consumers. Dynamic imports, type-only imports, side-effect imports, and package entry points all create false positives. |
|
|
247
|
+
| "I removed the dead code and the tests pass, so I do not need to run harness validate and check-deps" | Both harness validate and harness check-deps must pass after every cleanup. Dead code removal can introduce dependency violations. |
|
|
248
|
+
| "The convergence loop found new dead code after my fixes, but it is probably just noise from the tool" | Removing dead code creates more dead code. The convergence loop exists to catch these cascades. If the issue count decreased, loop back. |
|
|
249
|
+
| "The entropy report has 60 items but I can clean them all up in one pass to be thorough" | When the report is very large (>50 items), pick the highest-confidence dead code first. Attempting everything at once risks compound errors. |
|
|
250
|
+
|
|
242
251
|
## Escalation
|
|
243
252
|
|
|
244
253
|
- **When removing code causes unexpected test failures:** The code has a hidden dependency. Undo the deletion, investigate the dependency chain, and document the finding. The code is not dead — it is just hard to trace.
|
|
@@ -173,6 +173,15 @@ GAP: Undocumented module
|
|
|
173
173
|
Suggested fix: Add AGENTS.md section describing purpose, constraints, and public API
|
|
174
174
|
```
|
|
175
175
|
|
|
176
|
+
## Rationalizations to Reject
|
|
177
|
+
|
|
178
|
+
| Rationalization | Reality |
|
|
179
|
+
| --- | --- |
|
|
180
|
+
| "The docs are close enough -- a renamed function is obvious from context" | Renamed references in AGENTS.md cause AI agents to hallucinate about non-existent code. Precision matters. |
|
|
181
|
+
| "We only changed internal code, so the docs do not need checking" | Internal API docs with wrong signatures waste developer debugging time. Changed-behavior-not-reflected drift is High priority. |
|
|
182
|
+
| "There are too many findings to deal with right now, so skip the scan" | The escalation protocol exists for this case: focus on Critical and High items, create a tracking issue for the rest. |
|
|
183
|
+
| "We can rely on code review to catch stale docs" | Code reviewers focus on code correctness, not documentation cross-references. harness check-docs catches what humans routinely miss. |
|
|
184
|
+
|
|
176
185
|
## Escalation
|
|
177
186
|
|
|
178
187
|
- **When drift is extensive (>30 findings):** Do not try to fix everything. Focus on Critical and High priority items. Create a tracking issue for the remaining items and schedule them across sprints.
|
|
@@ -274,21 +274,11 @@ These apply to ALL skills. If you catch yourself doing any of these, STOP.
|
|
|
274
274
|
|
|
275
275
|
## Rationalizations to Reject
|
|
276
276
|
|
|
277
|
-
|
|
278
|
-
|
|
279
|
-
|
|
280
|
-
|
|
281
|
-
|
|
282
|
-
- **"This is best practice"** — Best practice in what context? Cite the source and
|
|
283
|
-
confirm it applies to this codebase.
|
|
284
|
-
- **"We can fix it later"** — If it is worth flagging, it is worth documenting now
|
|
285
|
-
with a concrete follow-up plan.
|
|
286
|
-
|
|
287
|
-
### Domain-Specific
|
|
288
|
-
|
|
289
|
-
- **"The violation is minor — just one import"** — One violation sets a precedent. Enforce the constraint or document an explicit exception with rationale.
|
|
290
|
-
- **"It works, so the architecture must be fine"** — Working code with bad architecture is technical debt with compound interest. Correct function does not excuse structural violations.
|
|
291
|
-
- **"This is a legacy module, different rules apply"** — Legacy does not mean exempt. Either the constraint applies or it needs an explicit documented exception.
|
|
277
|
+
| Rationalization | Reality |
|
|
278
|
+
| --- | --- |
|
|
279
|
+
| "The violation is minor — just one import" | One violation sets a precedent. Enforce the constraint or document an explicit exception with rationale. |
|
|
280
|
+
| "It works, so the architecture must be fine" | Working code with bad architecture is technical debt with compound interest. Correct function does not excuse structural violations. |
|
|
281
|
+
| "This is a legacy module, different rules apply" | Legacy does not mean exempt. Either the constraint applies or it needs an explicit documented exception. |
|
|
292
282
|
|
|
293
283
|
## Escalation
|
|
294
284
|
|
|
@@ -311,21 +311,11 @@ These apply to ALL skills. If you catch yourself doing any of these, STOP.
|
|
|
311
311
|
|
|
312
312
|
## Rationalizations to Reject
|
|
313
313
|
|
|
314
|
-
|
|
315
|
-
|
|
316
|
-
|
|
317
|
-
|
|
318
|
-
|
|
319
|
-
- **"This is best practice"** — Best practice in what context? Cite the source and
|
|
320
|
-
confirm it applies to this codebase.
|
|
321
|
-
- **"We can fix it later"** — If it is worth flagging, it is worth documenting now
|
|
322
|
-
with a concrete follow-up plan.
|
|
323
|
-
|
|
324
|
-
### Domain-Specific
|
|
325
|
-
|
|
326
|
-
- **"This will be easier to maintain"** — Easier for whom, and compared to what? Cite the maintenance burden with evidence from the codebase.
|
|
327
|
-
- **"It's the modern approach"** — Modernity is not a design criterion. Fitness for purpose is. State the specific benefit.
|
|
328
|
-
- **"Other teams do it this way"** — Other teams have different constraints. Evaluate the option on this codebase's specific merits.
|
|
314
|
+
| Rationalization | Reality |
|
|
315
|
+
| --- | --- |
|
|
316
|
+
| "This will be easier to maintain" | Easier for whom, and compared to what? Cite the maintenance burden with evidence from the codebase. |
|
|
317
|
+
| "It's the modern approach" | Modernity is not a design criterion. Fitness for purpose is. State the specific benefit. |
|
|
318
|
+
| "Other teams do it this way" | Other teams have different constraints. Evaluate the option on this codebase's specific merits. |
|
|
329
319
|
|
|
330
320
|
## Escalation
|
|
331
321
|
|
|
@@ -901,6 +901,16 @@ Recorded in .harness/failures.md.
|
|
|
901
901
|
How should we proceed? (fix manually and continue / revise plan / stop)
|
|
902
902
|
```
|
|
903
903
|
|
|
904
|
+
## Rationalizations to Reject
|
|
905
|
+
|
|
906
|
+
| Rationalization | Reality |
|
|
907
|
+
| --- | --- |
|
|
908
|
+
| "This phase is low complexity, so I can skip the APPROVE_PLAN gate entirely" | Low complexity only means auto-approval when no concern signals fire. If the planner flagged concerns, produced a complexity override, or the task count exceeds 15, the gate pauses regardless of the spec annotation. |
|
|
909
|
+
| "I can write the planning logic inline instead of dispatching to the harness-planner persona agent" | The Iron Law is explicit: autopilot delegates, never reimplements. Using a general-purpose agent or inlining planning logic bypasses the harness methodology. |
|
|
910
|
+
| "The retry budget is exhausted but I can try one more approach before stopping" | The 3-attempt retry budget exists because each failed attempt degrades context and compounds risk. Exceeding the budget without human input turns a recoverable failure into an unrecoverable one. |
|
|
911
|
+
| "I will skip the scratchpad since keeping research in conversation is faster" | Scratchpad is gated by rigor level. At standard or thorough, bulky research (>500 words) must go to scratchpad to keep agent conversation focused on decisions. |
|
|
912
|
+
| "The plan auto-approved, so I can skip recording the decision in the decisions array" | Every plan approval -- auto or manual -- must be recorded with its signal evaluation. The decisions array is the audit trail that explains why a plan was approved. |
|
|
913
|
+
|
|
904
914
|
## Gates
|
|
905
915
|
|
|
906
916
|
- **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`.
|
|
@@ -389,6 +389,15 @@ harness validate — passes
|
|
|
389
389
|
Human: "Approved."
|
|
390
390
|
```
|
|
391
391
|
|
|
392
|
+
## Rationalizations to Reject
|
|
393
|
+
|
|
394
|
+
| Rationalization | Reality |
|
|
395
|
+
| --- | --- |
|
|
396
|
+
| "I already understand the problem well enough to skip the question phase" | The Gates section is explicit: you must ask at least one clarifying question before proposing approaches. Skipping questions means making untested assumptions. |
|
|
397
|
+
| "There is only one viable approach, so presenting alternatives would be contrived" | The gate requires at least 2 approaches with tradeoffs. A single approach is a recommendation disguised as a decision -- the human has no real choice. |
|
|
398
|
+
| "I will draft the full spec and present it for review all at once to save time" | Section-dump specs are explicitly forbidden. Presenting section by section with feedback between each catches misunderstandings early. |
|
|
399
|
+
| "This future capability is low-cost to include now, so we should build it in" | YAGNI is a gate, not a suggestion. Every capability must trace to a stated requirement. "We might need this later" is the exact rationalization that turns focused specs into bloated ones. |
|
|
400
|
+
|
|
392
401
|
## Gates
|
|
393
402
|
|
|
394
403
|
These are hard stops. Violating any gate means the process has broken down.
|
|
@@ -833,21 +833,11 @@ These apply to ALL skills. If you catch yourself doing any of these, STOP.
|
|
|
833
833
|
|
|
834
834
|
## Rationalizations to Reject
|
|
835
835
|
|
|
836
|
-
|
|
837
|
-
|
|
838
|
-
|
|
839
|
-
|
|
840
|
-
|
|
841
|
-
- **"This is best practice"** — Best practice in what context? Cite the source and
|
|
842
|
-
confirm it applies to this codebase.
|
|
843
|
-
- **"We can fix it later"** — If it is worth flagging, it is worth documenting now
|
|
844
|
-
with a concrete follow-up plan.
|
|
845
|
-
|
|
846
|
-
### Domain-Specific
|
|
847
|
-
|
|
848
|
-
- **"The tests pass, so the logic must be correct"** — Tests can be incomplete. Review the logic independently of test results.
|
|
849
|
-
- **"This is how it was done elsewhere in the codebase"** — Existing patterns can be wrong. Evaluate the pattern on its merits, not just its precedent.
|
|
850
|
-
- **"It's just a refactor, low risk"** — Refactors change behavior surfaces. Review them with the same rigor as feature changes.
|
|
836
|
+
| Rationalization | Reality |
|
|
837
|
+
| --- | --- |
|
|
838
|
+
| "The tests pass, so the logic must be correct" | Tests can be incomplete. Review the logic independently of test results. |
|
|
839
|
+
| "This is how it was done elsewhere in the codebase" | Existing patterns can be wrong. Evaluate the pattern on its merits, not just its precedent. |
|
|
840
|
+
| "It's just a refactor, low risk" | Refactors change behavior surfaces. Review them with the same rigor as feature changes. |
|
|
851
841
|
|
|
852
842
|
## Escalation
|
|
853
843
|
|
|
@@ -218,6 +218,15 @@ After removing the `legacy-auth` module:
|
|
|
218
218
|
- Report includes actionable guidance for every remaining finding
|
|
219
219
|
- `harness validate` passes after cleanup
|
|
220
220
|
|
|
221
|
+
## Rationalizations to Reject
|
|
222
|
+
|
|
223
|
+
| Rationalization | Reality |
|
|
224
|
+
| --- | --- |
|
|
225
|
+
| "This dead export is in a high-churn file but the removal is clearly safe" | High-churn files have more hidden consumers. Safe findings in the top 10% by churn are downgraded to probably-safe, requiring explicit approval. |
|
|
226
|
+
| "The convergence loop is not reducing findings quickly enough, so I will apply unsafe fixes to make progress" | Unsafe findings are never auto-fixed, regardless of convergence pressure. Each requires human judgment. |
|
|
227
|
+
| "The verification gate failed on a probably-safe fix, but I am confident the fix is correct" | When verification fails after a fix batch, the entire batch must be reverted and all findings reclassified as unsafe. |
|
|
228
|
+
| "I will skip the hotspot context phase since it adds time and the churn data is just supplementary" | The hotspot map drives safety classification accuracy. Without it, safe fixes in high-churn areas are not downgraded. |
|
|
229
|
+
|
|
221
230
|
## Escalation
|
|
222
231
|
|
|
223
232
|
- **When convergence loop does not converge after 5 iterations:** The codebase has deeply tangled issues. Stop and report all remaining findings. Consider breaking the cleanup into focused sessions.
|
|
@@ -350,6 +350,15 @@ if (req.validationErrors?.length) {
|
|
|
350
350
|
|
|
351
351
|
Revert test: Commenting out the validation check causes the test to fail with 500. Confirmed.
|
|
352
352
|
|
|
353
|
+
## Rationalizations to Reject
|
|
354
|
+
|
|
355
|
+
| Rationalization | Reality |
|
|
356
|
+
| --- | --- |
|
|
357
|
+
| "I have a strong hunch about what is wrong, so I will jump straight to fixing it" | Phase 1 INVESTIGATE must be completed before ANY fix code is written. You are guessing, not debugging. |
|
|
358
|
+
| "I changed two things and the bug is gone, so the fix must be correct" | One variable at a time is a gate. Changing multiple things simultaneously means you do not know which change fixed it. |
|
|
359
|
+
| "This is my third attempt but I feel close, so one more try before escalating" | After 3 failed fix attempts, the gate requires you to question the architecture. The problem is likely not where you think it is. |
|
|
360
|
+
| "A try-catch that swallows the error prevents the crash, so the bug is fixed" | Symptom suppression is explicitly listed as a bad fix. Wrapping the failure in a try-catch addresses what the bug did, not why it happened. |
|
|
361
|
+
|
|
353
362
|
## Gates
|
|
354
363
|
|
|
355
364
|
- **Phase 1 before ANY fix.** You must complete investigation before writing fix code. Skipping investigation leads to symptom-chasing, which leads to more bugs.
|
|
@@ -170,6 +170,14 @@ Output:
|
|
|
170
170
|
3 actionable recommendations generated
|
|
171
171
|
```
|
|
172
172
|
|
|
173
|
+
## Rationalizations to Reject
|
|
174
|
+
|
|
175
|
+
| Rationalization | Reality |
|
|
176
|
+
| --- | --- |
|
|
177
|
+
| "There are a few orphan files but they are probably test fixtures or configs, so I will skip investigating them" | Orphan detection explicitly excludes entry points. Files with zero inbound imports that are not entry points must be investigated. |
|
|
178
|
+
| "The cycle is between two closely related files, so it is not really a problem" | Cycles create fragile coupling where any change in the cycle affects all members. Even "related" files should not have circular dependencies. |
|
|
179
|
+
| "The health score is a B, which is good enough -- no need to act on the recommendations" | A hub with 14 importers is a single point of failure. "Good enough" scores mask specific structural risks that compound over time. |
|
|
180
|
+
|
|
173
181
|
## Gates
|
|
174
182
|
|
|
175
183
|
- **Graph preferred, fallback available.** If no graph exists, use fallback strategies (import parsing, DFS cycle detection, hub/orphan identification). Do not stop — produce the best analysis possible.
|
|
@@ -445,6 +445,15 @@ Input: --bootstrap flag set, no graph, no AGENTS.md
|
|
|
445
445
|
4. REPORT — Verdict: WARN (>30% modules undocumented, no graph)
|
|
446
446
|
```
|
|
447
447
|
|
|
448
|
+
## Rationalizations to Reject
|
|
449
|
+
|
|
450
|
+
| Rationalization | Reality |
|
|
451
|
+
| --- | --- |
|
|
452
|
+
| "The drift finding is marked unsafe but the fix is obvious, so I will apply it silently" | Never apply a fix classified as unsafe without explicit user approval. The Iron Law: safe fixes are silent, unsafe fixes surface. |
|
|
453
|
+
| "The convergence loop reduced findings from 8 to 6, but the remaining ones are hard -- I will keep iterating" | If a convergence iteration does not reduce the finding count, stop immediately. Continuing without progress wastes iterations. |
|
|
454
|
+
| "I can write the drift detection logic directly instead of delegating to detect-doc-drift" | The pipeline delegates, never reimplements. Each sub-skill retains full standalone functionality. |
|
|
455
|
+
| "The graph is not available so the pipeline results will be unreliable" | The entire pipeline runs without a graph using static analysis fallbacks. Reduced accuracy is noted in the report, not used as an excuse to skip. |
|
|
456
|
+
|
|
448
457
|
## Gates
|
|
449
458
|
|
|
450
459
|
- **No fix without verification.** Every fix batch must be followed by `harness check-docs`. If check fails, revert the batch.
|
|
@@ -474,6 +474,15 @@ Read learnings: .harness/learnings.md — "Date comparison needed UTC normalizat
|
|
|
474
474
|
Run: harness validate — passes. Resume from Task 4.
|
|
475
475
|
```
|
|
476
476
|
|
|
477
|
+
## Rationalizations to Reject
|
|
478
|
+
|
|
479
|
+
| Rationalization | Reality |
|
|
480
|
+
| --- | --- |
|
|
481
|
+
| "The plan says to do X, but doing Y would be cleaner -- I will improvise" | The Iron Law states: execute the plan as written. If the plan is wrong, stop and fix the plan. Improvising mid-execution introduces untested assumptions. |
|
|
482
|
+
| "This task depends on Task 3 which I know is done, so I can skip verifying prerequisites" | Prerequisites must be verified mechanically, not from memory. Check that dependency tasks are marked complete in state and that referenced files exist. |
|
|
483
|
+
| "The checkpoint is just a confirmation step and the output looks correct, so I will auto-continue" | Checkpoints are non-negotiable pause points. If a task has a checkpoint marker, execution must pause. |
|
|
484
|
+
| "Harness validate passed on the previous task and nothing changed structurally, so I can skip it for this one" | Validation runs after every task with no exceptions. Each task may introduce subtle architectural drift that only harness validate catches. |
|
|
485
|
+
|
|
477
486
|
## Gates
|
|
478
487
|
|
|
479
488
|
These are hard stops. Violating any gate means the process has broken down.
|
|
@@ -152,6 +152,14 @@ Output:
|
|
|
152
152
|
Top recommendation: Extract shared billing types
|
|
153
153
|
```
|
|
154
154
|
|
|
155
|
+
## Rationalizations to Reject
|
|
156
|
+
|
|
157
|
+
| Rationalization | Reality |
|
|
158
|
+
| --- | --- |
|
|
159
|
+
| "High churn just means the file is actively developed, not that it is risky" | High churn in shared utilities specifically equals high risk. A file with 45 commits that co-changes with 12 different files indicates hidden coupling. |
|
|
160
|
+
| "The co-change pair is between two files in different modules, but they probably just happen to change at the same time" | Distant co-change pairs are flagged as suspicious precisely because they indicate hidden coupling. |
|
|
161
|
+
| "No graph exists so the analysis will be too incomplete to be useful" | Git log provides ~90% of the data needed for hotspot detection. The fallback is the highest-completeness fallback across all graph-enhanced skills. |
|
|
162
|
+
|
|
155
163
|
## Gates
|
|
156
164
|
|
|
157
165
|
- **Graph preferred, fallback available.** If no graph exists, use git log for churn and co-change analysis. Do not stop — git log provides ~90% of the data needed.
|
|
@@ -175,6 +175,14 @@ Output:
|
|
|
175
175
|
Downstream consumers: 8 files across 3 modules
|
|
176
176
|
```
|
|
177
177
|
|
|
178
|
+
## Rationalizations to Reject
|
|
179
|
+
|
|
180
|
+
| Rationalization | Reality |
|
|
181
|
+
| --- | --- |
|
|
182
|
+
| "The change is small so the blast radius must be low -- I can skip the transitive dependent check" | Small changes to shared utilities can have outsized blast radius. A one-line change to auth.ts can affect 23 transitive dependents. |
|
|
183
|
+
| "The graph is a few commits behind but it is close enough for this analysis" | If the graph is more than 2 commits behind, the skill requires a refresh before proceeding. Recent commits may have added new consumers. |
|
|
184
|
+
| "No graph exists so I cannot produce a useful impact analysis" | The fallback strategy using import parsing and naming conventions achieves ~70% completeness. Missing the graph does not mean stopping. |
|
|
185
|
+
|
|
178
186
|
## Gates
|
|
179
187
|
|
|
180
188
|
- **Graph preferred, fallback available.** If no graph exists, use fallback strategies (import parsing, naming conventions, path matching). Do not stop — produce the best analysis possible with available tools.
|
|
@@ -155,6 +155,14 @@ Integrity Check: FAIL
|
|
|
155
155
|
Blocking: [SEC-INJ-002] SQL injection — user input passed directly to query without parameterization.
|
|
156
156
|
```
|
|
157
157
|
|
|
158
|
+
## Rationalizations to Reject
|
|
159
|
+
|
|
160
|
+
| Rationalization | Reality |
|
|
161
|
+
| --- | --- |
|
|
162
|
+
| "All three mechanical checks failed, but I should still run the AI review to get useful feedback" | When ALL three checks fail, stop immediately. Do not proceed to Phase 2. AI review on code that does not compile is wasted effort. |
|
|
163
|
+
| "The security scanner found a warning but it is not high severity, so it should not affect the overall result" | Error-severity security findings are blocking. The distinction is severity, not the agent's opinion of importance. |
|
|
164
|
+
| "The AI review flagged an architectural concern as blocking, so the integrity check should fail" | Only runtime errors, data loss, and security vulnerabilities count as blocking review findings. Architectural concerns are noted but do not block. |
|
|
165
|
+
|
|
158
166
|
## Gates
|
|
159
167
|
|
|
160
168
|
- **Mechanical first.** Always run Phase 1 before Phase 2. If the code does not compile or pass basic checks, AI review is wasted effort (unless partial results exist).
|
|
@@ -25,7 +25,7 @@
|
|
|
25
25
|
- Constraints and forbidden patterns
|
|
26
26
|
- Any special instructions or warnings
|
|
27
27
|
|
|
28
|
-
2. **Read `harness.
|
|
28
|
+
2. **Read `harness.config.json`.** Extract:
|
|
29
29
|
- Project name and stack
|
|
30
30
|
- Adoption level (basic, intermediate, advanced)
|
|
31
31
|
- Layer definitions and their directory mappings
|
|
@@ -50,7 +50,7 @@
|
|
|
50
50
|
2. **Map the architecture.** Walk the directory structure and identify:
|
|
51
51
|
- Top-level organization pattern (monorepo, single package, workspace)
|
|
52
52
|
- Source code location and entry points
|
|
53
|
-
- Layer boundaries (from `harness.
|
|
53
|
+
- Layer boundaries (from `harness.config.json` and actual directory structure)
|
|
54
54
|
- Shared utilities or common modules
|
|
55
55
|
- Configuration files and their purposes
|
|
56
56
|
|
|
@@ -63,7 +63,7 @@
|
|
|
63
63
|
- Code formatting (detect from config files: `.prettierrc`, `.eslintrc`, `biome.json`)
|
|
64
64
|
|
|
65
65
|
4. **Map the constraints.** Identify what is restricted:
|
|
66
|
-
- Forbidden imports (from `harness.
|
|
66
|
+
- Forbidden imports (from `harness.config.json` dependency constraints)
|
|
67
67
|
- Layer boundary rules (which layers can import from which)
|
|
68
68
|
- Linting rules that encode architectural decisions
|
|
69
69
|
- Any constraints documented in `AGENTS.md` that are not yet automated
|
|
@@ -97,8 +97,8 @@ Graph queries produce a complete architecture map in seconds, including transiti
|
|
|
97
97
|
|
|
98
98
|
### Phase 3: ORIENT — Identify Adoption Level and Maturity
|
|
99
99
|
|
|
100
|
-
1. **Confirm the adoption level** matches what `harness.
|
|
101
|
-
- Basic: `AGENTS.md` and `harness.
|
|
100
|
+
1. **Confirm the adoption level** matches what `harness.config.json` declares:
|
|
101
|
+
- Basic: `AGENTS.md` and `harness.config.json` exist but no layers or constraints
|
|
102
102
|
- Intermediate: Layers defined, dependency constraints enforced, at least one custom skill
|
|
103
103
|
- Advanced: Personas, state management, learnings, CI integration
|
|
104
104
|
|
|
@@ -186,16 +186,16 @@ Graph queries produce a complete architecture map in seconds, including transiti
|
|
|
186
186
|
- **`harness check-deps`** — Run to verify dependency constraints are passing, which confirms layer boundaries are respected.
|
|
187
187
|
- **`harness state show`** — View current state to understand where the last session left off.
|
|
188
188
|
- **`AGENTS.md`** — Primary source of project context and agent instructions.
|
|
189
|
-
- **`harness.
|
|
189
|
+
- **`harness.config.json`** — Source of structural configuration (layers, constraints, skills).
|
|
190
190
|
- **`.harness/learnings.md`** — Historical context and institutional knowledge.
|
|
191
191
|
|
|
192
192
|
## Success Criteria
|
|
193
193
|
|
|
194
|
-
- All four configuration sources were read (`AGENTS.md`, `harness.
|
|
194
|
+
- All four configuration sources were read (`AGENTS.md`, `harness.config.json`, `.harness/learnings.md`, `.harness/state.json`)
|
|
195
195
|
- Technology stack is accurately identified (language, framework, test runner, build tool)
|
|
196
196
|
- Architecture is mapped with correct layer boundaries and dependency directions
|
|
197
197
|
- Conventions are identified from actual code patterns, not assumed
|
|
198
|
-
- Constraints are enumerated from both `harness.
|
|
198
|
+
- Constraints are enumerated from both `harness.config.json` and `AGENTS.md`
|
|
199
199
|
- Adoption level is confirmed (not just declared — validated)
|
|
200
200
|
- A structured orientation summary is produced with all sections filled
|
|
201
201
|
- The "Getting Started" section is actionable and tailored to the audience
|
|
@@ -213,7 +213,7 @@ Read AGENTS.md:
|
|
|
213
213
|
- Stack: TypeScript, Express, Vitest, PostgreSQL
|
|
214
214
|
- Conventions: zod validation, repository pattern, kebab-case files
|
|
215
215
|
|
|
216
|
-
Read harness.
|
|
216
|
+
Read harness.config.json:
|
|
217
217
|
- Level: intermediate
|
|
218
218
|
- Layers: presentation (src/routes/), business (src/services/), data (src/repositories/)
|
|
219
219
|
- Constraints: presentation → business OK, business → data OK, data → presentation FORBIDDEN
|
|
@@ -260,7 +260,7 @@ Produce orientation with all sections. Getting Started for this context:
|
|
|
260
260
|
|
|
261
261
|
```
|
|
262
262
|
Read AGENTS.md — exists, minimal content
|
|
263
|
-
Read harness.
|
|
263
|
+
Read harness.config.json — level: basic, no layers defined
|
|
264
264
|
No .harness/learnings.md
|
|
265
265
|
No .harness/state.json
|
|
266
266
|
```
|
|
@@ -276,6 +276,14 @@ Getting Started:
|
|
|
276
276
|
(use initialize-harness-project to upgrade)
|
|
277
277
|
```
|
|
278
278
|
|
|
279
|
+
## Rationalizations to Reject
|
|
280
|
+
|
|
281
|
+
| Rationalization | Reality |
|
|
282
|
+
| --- | --- |
|
|
283
|
+
| "I can skip reading .harness/learnings.md since it is just historical notes" | Learnings contain hard-won insights from previous sessions -- decisions made, gotchas discovered, patterns that worked or failed. Skipping them means repeating mistakes already diagnosed. |
|
|
284
|
+
| "The harness.config.json says intermediate, so I can report that without validation" | Declared adoption level must be confirmed, not assumed. A project that declares intermediate but fails harness validate is not truly intermediate. |
|
|
285
|
+
| "I will map the architecture by reading the directory names since that is faster than checking conventions in actual code" | Conventions must be identified from actual code patterns, not assumed from directory structure. File naming, import style, and error handling can only be verified by reading real source files. |
|
|
286
|
+
|
|
279
287
|
## Adoption Maturity
|
|
280
288
|
|
|
281
289
|
A mental model for where a team sits on the harness adoption curve. Not prescriptive — just orientation.
|
|
@@ -247,6 +247,15 @@ Phase 4: ENFORCE
|
|
|
247
247
|
Result: PASS — no blocking violations.
|
|
248
248
|
```
|
|
249
249
|
|
|
250
|
+
## Rationalizations to Reject
|
|
251
|
+
|
|
252
|
+
| Rationalization | Reality |
|
|
253
|
+
| --- | --- |
|
|
254
|
+
| "The cyclomatic complexity is 16 but the function is straightforward, so I can override the Tier 1 threshold" | Tier 1 violations are non-negotiable blockers. No merge with Tier 1 performance violations. If a threshold needs adjustment, reconfigure with documented justification. |
|
|
255
|
+
| "The benchmark regression is only 6% and it is probably just noise" | The noise margin (default 3%) is applied before flagging. A 6% regression on a perf-critical path exceeds the Tier 1 threshold even after noise consideration. |
|
|
256
|
+
| "The working tree has a small uncommitted change but it should not affect benchmark results" | No running benchmarks with a dirty working tree. Uncommitted changes invalidate benchmark results. |
|
|
257
|
+
| "I will update the baselines to match the new performance numbers rather than fixing the regression" | Baselines must come from fresh runs against committed code. Silently moving the goalposts defeats the purpose of performance gates. |
|
|
258
|
+
|
|
250
259
|
## Gates
|
|
251
260
|
|
|
252
261
|
- **No ignoring Tier 1 violations.** They must be fixed or the threshold must be reconfigured (with documented justification).
|
|
@@ -561,6 +561,16 @@ Files: src/services/notification-service.ts, src/services/notification-service.t
|
|
|
561
561
|
|
|
562
562
|
_Presented for approval. User approved. Expanded to full tasks._
|
|
563
563
|
|
|
564
|
+
## Rationalizations to Reject
|
|
565
|
+
|
|
566
|
+
| Rationalization | Reality |
|
|
567
|
+
| --- | --- |
|
|
568
|
+
| "The task is conceptually clear so I do not need to include exact code in the plan" | Every task must have exact file paths, exact code, and exact commands. If you cannot write the code in the plan, you do not understand the task well enough to plan it. |
|
|
569
|
+
| "This task touches 5 files but it is logically one unit of work, so splitting it would add overhead" | Tasks touching more than 3 files must be split. The overhead of splitting is far less than the cost of a failed oversized task. |
|
|
570
|
+
| "Tests for this task can be added in a follow-up task since the implementation is straightforward" | No skipping TDD in tasks. Every code-producing task must start with writing a test. "Add tests later" is explicitly forbidden. |
|
|
571
|
+
| "The spec does not cover this edge case, but I can fill in the gap during planning" | When the spec is missing information, do not fill in the gaps yourself. Escalate. Filling gaps silently creates undocumented design decisions that no one reviewed. |
|
|
572
|
+
| "I discovered we need an additional file during decomposition, but updating the file map is just bookkeeping" | The file map must be complete. Every file that will be created or modified must appear in the file map before task decomposition. |
|
|
573
|
+
|
|
564
574
|
## Gates
|
|
565
575
|
|
|
566
576
|
These are hard stops. Violating any gate means the process has broken down.
|
|
@@ -136,6 +136,15 @@ Skipping this step means subsequent graph queries (impact analysis, dependency h
|
|
|
136
136
|
- No behavioral changes were introduced (the test suite is the proof)
|
|
137
137
|
- No dead code was left behind (run `harness cleanup` to verify)
|
|
138
138
|
|
|
139
|
+
## Rationalizations to Reject
|
|
140
|
+
|
|
141
|
+
| Rationalization | Reality |
|
|
142
|
+
| --- | --- |
|
|
143
|
+
| "The tests are mostly passing, so I can start refactoring and fix the remaining failures as I go" | All tests must pass BEFORE refactoring starts. If tests are not green before you start, you are not refactoring -- you are debugging. |
|
|
144
|
+
| "This refactoring changes a small amount of behavior, but it is a clear improvement" | Refactoring must not change behavior. The test suite is the proof. If the refactoring requires changing tests, you may be changing behavior. |
|
|
145
|
+
| "I will make several changes at once and run tests at the end since each change is small" | Tests must run after EVERY single change. If a test breaks, you must undo the LAST change immediately. |
|
|
146
|
+
| "The refactoring did not produce a measurable improvement, but the code is different so it must be somewhat better" | If the refactoring introduced no measurable improvement, revert the entire sequence. Refactoring for its own sake is churn. |
|
|
147
|
+
|
|
139
148
|
## Examples
|
|
140
149
|
|
|
141
150
|
### Example: Moving business logic out of a UI component
|
|
@@ -672,6 +672,15 @@ Current: 27/28 passed (PASS — 1 warning remaining)
|
|
|
672
672
|
The project is release-ready. The remaining warning (README usage section) is not blocking.
|
|
673
673
|
```
|
|
674
674
|
|
|
675
|
+
## Rationalizations to Reject
|
|
676
|
+
|
|
677
|
+
| Rationalization | Reality |
|
|
678
|
+
| --- | --- |
|
|
679
|
+
| "The MAINTAIN phase takes too long, so I will skip dispatching the 4 maintenance agents" | No skipping the MAINTAIN phase. Maintenance checks catch issues that release-specific checks miss. |
|
|
680
|
+
| "This auto-fix is obviously correct, so I can apply it without prompting the user" | No auto-fix without prompting. Every fix must be presented to the human before being applied. |
|
|
681
|
+
| "Most checks pass and only a few warnings remain, so the release is ready" | A "mostly passing" report is not a passing report. The result is PASS only when zero failures exist across all categories. |
|
|
682
|
+
| "The previous run found these issues and I fixed them, so I can trust the cached results" | Session resumption requires re-running all checks. Code may have changed since the last run. |
|
|
683
|
+
|
|
675
684
|
## Gates
|
|
676
685
|
|
|
677
686
|
These are hard stops. Violating any gate means the process has broken down.
|
|
@@ -44,7 +44,7 @@ If the human has not seen and approved the milestone groupings and feature list,
|
|
|
44
44
|
- Has spec + plan but no implementation -> `planned`
|
|
45
45
|
- Has spec but no plan -> `backlog`
|
|
46
46
|
- Has plan but no spec -> `planned` (unusual, flag for human review)
|
|
47
|
-
6. Detect project name from `harness.
|
|
47
|
+
6. Detect project name from `harness.config.json` `project` field, or `package.json` `name` field, or directory name as fallback.
|
|
48
48
|
|
|
49
49
|
Present scan summary:
|
|
50
50
|
|
|
@@ -579,6 +579,15 @@ Total features: 4
|
|
|
579
579
|
harness validate: passed
|
|
580
580
|
```
|
|
581
581
|
|
|
582
|
+
## Rationalizations to Reject
|
|
583
|
+
|
|
584
|
+
| Rationalization | Reality |
|
|
585
|
+
| --- | --- |
|
|
586
|
+
| "The feature list looks correct, so I can skip the PROPOSE phase and write the roadmap directly" | The Iron Law: never write docs/roadmap.md without the human confirming the proposed structure first. |
|
|
587
|
+
| "This sync detected a status change and the inference is clearly correct, so I can apply it without confirmation" | The sync PROPOSE phase requires presenting proposed changes and waiting for human confirmation. The human-always-wins rule applies. |
|
|
588
|
+
| "The existing roadmap is outdated, so I will recreate it with --create to get a fresh start" | No overwriting an existing roadmap without explicit user consent. Silent overwrites destroy prior manual edits and status tracking. |
|
|
589
|
+
| "There is no roadmap yet but the user asked me to add a feature, so I will create one as a side effect of --add" | When the roadmap does not exist, --add must error with a clear message directing the user to --create. |
|
|
590
|
+
|
|
582
591
|
## Gates
|
|
583
592
|
|
|
584
593
|
These are hard stops. Violating any gate means the process has broken down.
|
|
@@ -96,21 +96,11 @@ These apply to ALL skills. If you catch yourself doing any of these, STOP.
|
|
|
96
96
|
|
|
97
97
|
## Rationalizations to Reject
|
|
98
98
|
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
- **"This is best practice"** — Best practice in what context? Cite the source and
|
|
105
|
-
confirm it applies to this codebase.
|
|
106
|
-
- **"We can fix it later"** — If it is worth flagging, it is worth documenting now
|
|
107
|
-
with a concrete follow-up plan.
|
|
108
|
-
|
|
109
|
-
### Domain-Specific
|
|
110
|
-
|
|
111
|
-
- **"No attacker would find this"** — Security by obscurity. If the code is wrong, flag it regardless of discoverability.
|
|
112
|
-
- **"We're behind a firewall"** — Network boundaries change. Code should be secure at every layer regardless of deployment topology.
|
|
113
|
-
- **"The framework handles this for us"** — Verify the framework's actual behavior. Misuse of a secure framework is still insecure.
|
|
99
|
+
| Rationalization | Reality |
|
|
100
|
+
| --- | --- |
|
|
101
|
+
| "No attacker would find this" | Security by obscurity. If the code is wrong, flag it regardless of discoverability. |
|
|
102
|
+
| "We're behind a firewall" | Network boundaries change. Code should be secure at every layer regardless of deployment topology. |
|
|
103
|
+
| "The framework handles this for us" | Verify the framework's actual behavior. Misuse of a secure framework is still insecure. |
|
|
114
104
|
|
|
115
105
|
## Escalation
|
|
116
106
|
|