@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
|
@@ -0,0 +1,232 @@
|
|
|
1
|
+
# Initialize Harness Project
|
|
2
|
+
|
|
3
|
+
> Scaffold a new harness-compliant project or migrate an existing project to the next adoption level. Assess current state, configure personas, generate AGENTS.md, and validate the result.
|
|
4
|
+
|
|
5
|
+
## When to Use
|
|
6
|
+
|
|
7
|
+
- Starting a brand new project that should be harness-managed from day one
|
|
8
|
+
- Migrating an existing project to harness for the first time
|
|
9
|
+
- Upgrading an existing harness project from one adoption level to the next (basic to intermediate, intermediate to advanced)
|
|
10
|
+
- When `on_project_init` triggers fire
|
|
11
|
+
- NOT when the project is already at the desired adoption level (use harness-onboarding to orient instead)
|
|
12
|
+
- NOT when adding a single component to an existing harness project (use add-harness-component)
|
|
13
|
+
- NOT when the project has no clear owner or maintainer — harness setup requires someone to own the constraints
|
|
14
|
+
|
|
15
|
+
## Process
|
|
16
|
+
|
|
17
|
+
### Phase 1: ASSESS — Determine Current State
|
|
18
|
+
|
|
19
|
+
1. **Check for existing harness configuration.** Look for `.harness/` directory, `AGENTS.md`, `harness.yaml`, and any skill definitions. Their presence determines whether this is a new project or a migration.
|
|
20
|
+
|
|
21
|
+
2. **For new projects:** Gather project context — language, framework, test runner, build tool. Ask the human if any of these are undecided. Do not assume defaults.
|
|
22
|
+
|
|
23
|
+
2b. **For existing projects with detectable frameworks:** Run `harness init` without flags first. The command auto-detects frameworks (FastAPI, Django, Gin, Axum, Spring Boot, Next.js, React+Vite, Vue, Express, NestJS) by scanning project files. Present the detection result to the human and ask for confirmation before proceeding. If detection fails, ask the human to specify `--framework` manually.
|
|
24
|
+
|
|
25
|
+
3. **For existing projects:** Run `harness validate` to see what is already configured and what is missing. Read `AGENTS.md` if it exists. Identify the current adoption level:
|
|
26
|
+
- **Basic:** Has `AGENTS.md` and `harness.yaml` with project metadata. No layers, no skills, no dependency constraints.
|
|
27
|
+
- **Intermediate:** Has layers defined, dependency constraints between layers, at least one custom skill. `harness check-deps` runs and passes.
|
|
28
|
+
- **Advanced:** Has full persona configuration, custom skills for the team's workflows, state management, learnings capture, and CI integration for `harness validate`.
|
|
29
|
+
|
|
30
|
+
4. **Recommend the target adoption level.** For new projects, start with basic unless the team has harness experience. For existing projects, recommend one level up from current. Present the recommendation and wait for confirmation.
|
|
31
|
+
|
|
32
|
+
### Phase 2: SCAFFOLD — Generate Project Structure
|
|
33
|
+
|
|
34
|
+
1. **Run `harness init` with the appropriate flags:**
|
|
35
|
+
- New basic JS/TS project: `harness init --level basic`
|
|
36
|
+
- With framework: `harness init --level basic --framework <framework>`
|
|
37
|
+
- Non-JS language: `harness init --language <python|go|rust|java>`
|
|
38
|
+
- Non-JS with framework: `harness init --framework <fastapi|django|gin|axum|spring-boot>`
|
|
39
|
+
- Existing project (auto-detect): `harness init` (no flags -- auto-detection runs)
|
|
40
|
+
- Migration to intermediate: `harness init --level intermediate --migrate`
|
|
41
|
+
- Migration to advanced: `harness init --level advanced --migrate`
|
|
42
|
+
|
|
43
|
+
**Supported frameworks:** nextjs, react-vite, vue, express, nestjs, fastapi, django, gin, axum, spring-boot
|
|
44
|
+
**Supported languages:** typescript, python, go, rust, java
|
|
45
|
+
|
|
46
|
+
2. **Review generated files.** `harness init` creates:
|
|
47
|
+
- `harness.yaml` — Project configuration (name, stack, adoption level)
|
|
48
|
+
- `.harness/` directory — State and learnings storage
|
|
49
|
+
- `AGENTS.md` — Agent instructions (template, needs customization)
|
|
50
|
+
- Layer definitions (intermediate and above)
|
|
51
|
+
- Dependency constraints (intermediate and above)
|
|
52
|
+
|
|
53
|
+
3. **Do not blindly accept generated content.** Read the generated `AGENTS.md` and `harness.yaml`. Flag anything that looks wrong or incomplete. The scaffolded output is a starting point, not a finished product.
|
|
54
|
+
|
|
55
|
+
### Phase 3: CONFIGURE — Customize for the Project
|
|
56
|
+
|
|
57
|
+
1. **Configure personas.** Run `harness persona generate` to create persona definitions based on the project's stack and team structure. Personas define how agents should behave in this project — coding style, communication preferences, constraint strictness.
|
|
58
|
+
|
|
59
|
+
2. **Customize AGENTS.md.** The generated template needs project-specific content:
|
|
60
|
+
- Project description and purpose
|
|
61
|
+
- Architecture overview (components, layers, data flow)
|
|
62
|
+
- Key conventions the team follows
|
|
63
|
+
- Known constraints and forbidden patterns
|
|
64
|
+
- Links to relevant documentation
|
|
65
|
+
|
|
66
|
+
3. **For intermediate and above:** Define layer boundaries. Which modules belong to which layers? What are the allowed import directions? Document these in `harness.yaml` and ensure they match the actual codebase structure.
|
|
67
|
+
|
|
68
|
+
4. **For advanced:** Configure state management (`.harness/state.json` schema), learnings capture (`.harness/learnings.md` conventions), and CI integration hooks.
|
|
69
|
+
|
|
70
|
+
5. **Configure i18n (all levels).** Ask: "Will this project support multiple languages?" Based on the answer:
|
|
71
|
+
- **Yes:** Invoke `harness-i18n-workflow` configure phase to set up i18n config in `harness.config.json` (source locale, target locales, framework, strictness). Then invoke `harness-i18n-workflow` scaffold phase to create translation file structure and extraction config. Set `i18n.enabled: true`.
|
|
72
|
+
- **No:** Set `i18n.enabled: false` in `harness.config.json`. The `harness-i18n-process` skill will still fire gentle prompts for unconfigured projects when features touch user-facing strings.
|
|
73
|
+
- **Not sure yet:** Skip i18n configuration entirely. Do not set `i18n.enabled`. The project can enable i18n later by running `harness-i18n-workflow` directly.
|
|
74
|
+
|
|
75
|
+
### Phase 4: VALIDATE — Confirm Everything Works
|
|
76
|
+
|
|
77
|
+
1. **Run `harness validate`** to verify the full configuration. This checks:
|
|
78
|
+
- `harness.yaml` schema validity
|
|
79
|
+
- `AGENTS.md` presence and required sections
|
|
80
|
+
- Layer definitions (if intermediate+)
|
|
81
|
+
- Dependency constraints (if intermediate+)
|
|
82
|
+
- Persona configuration (if configured)
|
|
83
|
+
|
|
84
|
+
2. **Fix any validation errors before finishing.** Do not leave the project in a half-configured state.
|
|
85
|
+
|
|
86
|
+
3. **Run `harness check-deps`** (intermediate and above) to verify dependency constraints match the actual codebase. If there are violations, decide with the human: update the constraints or fix the code.
|
|
87
|
+
|
|
88
|
+
### Build the Initial Knowledge Graph
|
|
89
|
+
|
|
90
|
+
If the project will use graph-based queries, build the initial knowledge graph now:
|
|
91
|
+
|
|
92
|
+
```
|
|
93
|
+
harness scan [path]
|
|
94
|
+
```
|
|
95
|
+
|
|
96
|
+
This creates the `.harness/graph/` directory and populates it with the project's dependency and relationship data. Subsequent graph queries (impact analysis, dependency health, test advisor) depend on this initial scan.
|
|
97
|
+
|
|
98
|
+
4. **Mention roadmap.** After validation passes, inform the user: "When you are ready to set up a project roadmap, run `/harness:roadmap --create`. This creates a unified `docs/roadmap.md` that tracks features, milestones, and status across your specs and plans." This is informational only — do not create the roadmap automatically.
|
|
99
|
+
|
|
100
|
+
5. **Commit the initialization.** All generated and configured files in a single commit.
|
|
101
|
+
|
|
102
|
+
## Harness Integration
|
|
103
|
+
|
|
104
|
+
- **`harness init --level <level> [--framework <framework>] [--language <language>]`** — Scaffold a new project. `--framework` infers language automatically. `--language` without `--framework` gives a bare language scaffold. Running without flags on an existing project directory triggers auto-detection.
|
|
105
|
+
- **`harness init --level <level> --migrate`** — Migrate an existing project to the next adoption level, preserving existing configuration.
|
|
106
|
+
- **`harness persona generate`** — Generate persona definitions based on project stack and team structure.
|
|
107
|
+
- **`harness validate`** — Verify the full project configuration is valid and complete.
|
|
108
|
+
- **`harness check-deps`** — Verify dependency constraints match the actual codebase (intermediate and above).
|
|
109
|
+
- **`harness-i18n-workflow configure` + `harness-i18n-workflow scaffold`** — Invoked during Phase 3 if the project will support multiple languages. Sets up i18n configuration and translation file structure.
|
|
110
|
+
- **Roadmap nudge** — After successful initialization, inform the user about `/harness:roadmap --create` for setting up project-level feature tracking. Informational only; does not create the roadmap.
|
|
111
|
+
|
|
112
|
+
## Success Criteria
|
|
113
|
+
|
|
114
|
+
- `harness.yaml` exists and passes schema validation
|
|
115
|
+
- `AGENTS.md` exists with project-specific content (not just the template)
|
|
116
|
+
- `.harness/` directory exists with appropriate state files
|
|
117
|
+
- `harness validate` passes with zero errors
|
|
118
|
+
- `harness check-deps` passes (intermediate and above)
|
|
119
|
+
- Personas are configured if the project uses them
|
|
120
|
+
- The adoption level matches what was agreed upon with the human
|
|
121
|
+
- All generated files are committed in a single atomic commit
|
|
122
|
+
- i18n configuration is set if the human chose to enable it during init
|
|
123
|
+
|
|
124
|
+
## Examples
|
|
125
|
+
|
|
126
|
+
### Example: New TypeScript Project (Basic Level)
|
|
127
|
+
|
|
128
|
+
**ASSESS:**
|
|
129
|
+
|
|
130
|
+
```
|
|
131
|
+
Human: "I'm starting a new TypeScript API project using Express and Vitest."
|
|
132
|
+
Check for .harness/ — not found. This is a new project.
|
|
133
|
+
Recommend: basic level (new project, start simple).
|
|
134
|
+
Human confirms: "Basic is fine for now."
|
|
135
|
+
```
|
|
136
|
+
|
|
137
|
+
**SCAFFOLD:**
|
|
138
|
+
|
|
139
|
+
```bash
|
|
140
|
+
harness init --level basic --framework express
|
|
141
|
+
# Creates: harness.yaml, .harness/, AGENTS.md (template)
|
|
142
|
+
```
|
|
143
|
+
|
|
144
|
+
**CONFIGURE:**
|
|
145
|
+
|
|
146
|
+
```
|
|
147
|
+
Edit AGENTS.md:
|
|
148
|
+
- Add project description: "REST API for widget management"
|
|
149
|
+
- Add stack: TypeScript, Express, Vitest, PostgreSQL
|
|
150
|
+
- Add conventions: "Use zod for validation, repository pattern for data access"
|
|
151
|
+
- Add constraints: "No direct SQL queries outside repository layer"
|
|
152
|
+
- Ask: "Will this project support multiple languages?"
|
|
153
|
+
- Human: "Yes, Spanish and French."
|
|
154
|
+
- Run harness-i18n-workflow configure (source: en, targets: es, fr)
|
|
155
|
+
- Run harness-i18n-workflow scaffold (creates locales/ directory structure)
|
|
156
|
+
```
|
|
157
|
+
|
|
158
|
+
**VALIDATE:**
|
|
159
|
+
|
|
160
|
+
```bash
|
|
161
|
+
harness validate # Pass — basic level checks satisfied
|
|
162
|
+
git add harness.yaml .harness/ AGENTS.md
|
|
163
|
+
git commit -m "feat: initialize harness project at basic level"
|
|
164
|
+
```
|
|
165
|
+
|
|
166
|
+
### Example: Migrating Existing Project from Basic to Intermediate
|
|
167
|
+
|
|
168
|
+
**ASSESS:**
|
|
169
|
+
|
|
170
|
+
```
|
|
171
|
+
Read harness.yaml — level: basic
|
|
172
|
+
Read AGENTS.md — exists, has project-specific content
|
|
173
|
+
Run: harness validate — passes at basic level
|
|
174
|
+
Recommend: intermediate (add layers and dependency constraints)
|
|
175
|
+
Human confirms: "Yes, we're ready for layers."
|
|
176
|
+
```
|
|
177
|
+
|
|
178
|
+
**SCAFFOLD:**
|
|
179
|
+
|
|
180
|
+
```bash
|
|
181
|
+
harness init --level intermediate --migrate
|
|
182
|
+
# Preserves existing harness.yaml and AGENTS.md
|
|
183
|
+
# Adds: layer definitions template, dependency constraints template
|
|
184
|
+
```
|
|
185
|
+
|
|
186
|
+
**CONFIGURE:**
|
|
187
|
+
|
|
188
|
+
```
|
|
189
|
+
Define layers in harness.yaml:
|
|
190
|
+
- presentation: src/routes/, src/middleware/
|
|
191
|
+
- business: src/services/, src/models/
|
|
192
|
+
- data: src/repositories/, src/db/
|
|
193
|
+
|
|
194
|
+
Define constraints:
|
|
195
|
+
- presentation → business (allowed)
|
|
196
|
+
- business → data (allowed)
|
|
197
|
+
- data → presentation (forbidden)
|
|
198
|
+
- presentation → data (forbidden — must go through business)
|
|
199
|
+
|
|
200
|
+
Update AGENTS.md with layer documentation.
|
|
201
|
+
```
|
|
202
|
+
|
|
203
|
+
**VALIDATE:**
|
|
204
|
+
|
|
205
|
+
```bash
|
|
206
|
+
harness validate # Pass — intermediate level checks satisfied
|
|
207
|
+
harness check-deps # Pass — no constraint violations in existing code
|
|
208
|
+
git add -A
|
|
209
|
+
git commit -m "feat: migrate harness project to intermediate level with layers"
|
|
210
|
+
```
|
|
211
|
+
|
|
212
|
+
### Example: Adoption Level Progression
|
|
213
|
+
|
|
214
|
+
**Basic (start here):**
|
|
215
|
+
|
|
216
|
+
- `AGENTS.md` with project context
|
|
217
|
+
- `harness.yaml` with metadata
|
|
218
|
+
- `harness validate` runs in development
|
|
219
|
+
|
|
220
|
+
**Intermediate (add structure):**
|
|
221
|
+
|
|
222
|
+
- Layer definitions and boundaries
|
|
223
|
+
- Dependency constraints enforced by `harness check-deps`
|
|
224
|
+
- At least one custom skill for team workflows
|
|
225
|
+
|
|
226
|
+
**Advanced (full integration):**
|
|
227
|
+
|
|
228
|
+
- Persona configuration for consistent agent behavior
|
|
229
|
+
- State management across sessions
|
|
230
|
+
- `.harness/learnings.md` capturing institutional knowledge
|
|
231
|
+
- `harness validate` runs in CI pipeline
|
|
232
|
+
- Custom skills for all common team workflows
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
name: initialize-harness-project
|
|
2
|
+
version: "1.0.0"
|
|
3
|
+
description: Scaffold a new harness-compliant project
|
|
4
|
+
cognitive_mode: constructive-architect
|
|
5
|
+
triggers:
|
|
6
|
+
- manual
|
|
7
|
+
- on_project_init
|
|
8
|
+
platforms:
|
|
9
|
+
- claude-code
|
|
10
|
+
- gemini-cli
|
|
11
|
+
tools:
|
|
12
|
+
- Bash
|
|
13
|
+
- Read
|
|
14
|
+
- Write
|
|
15
|
+
- Glob
|
|
16
|
+
cli:
|
|
17
|
+
command: harness skill run initialize-harness-project
|
|
18
|
+
args:
|
|
19
|
+
- name: path
|
|
20
|
+
description: Project root path
|
|
21
|
+
required: false
|
|
22
|
+
mcp:
|
|
23
|
+
tool: run_skill
|
|
24
|
+
input:
|
|
25
|
+
skill: initialize-harness-project
|
|
26
|
+
path: string
|
|
27
|
+
type: flexible
|
|
28
|
+
tier: 1
|
|
29
|
+
state:
|
|
30
|
+
persistent: false
|
|
31
|
+
files: []
|
|
32
|
+
depends_on: []
|
|
@@ -0,0 +1,150 @@
|
|
|
1
|
+
# Validate Context Engineering
|
|
2
|
+
|
|
3
|
+
> Validate AGENTS.md quality and evolve it as the codebase changes. Good context engineering means AI agents always have accurate, current knowledge about the project.
|
|
4
|
+
|
|
5
|
+
## When to Use
|
|
6
|
+
|
|
7
|
+
- After adding new files, modules, or packages to the project
|
|
8
|
+
- After renaming, moving, or deleting significant files
|
|
9
|
+
- After changing public APIs, architectural patterns, or conventions
|
|
10
|
+
- When onboarding a new contributor (human or AI) and want to verify context is current
|
|
11
|
+
- When `on_context_check` or `on_pre_commit` triggers fire
|
|
12
|
+
- Periodically (weekly or per-sprint) as a hygiene check
|
|
13
|
+
- NOT when making trivial changes (typo fixes, comment updates, formatting)
|
|
14
|
+
- NOT during active feature development — run this between features or at cycle boundaries
|
|
15
|
+
|
|
16
|
+
## Process
|
|
17
|
+
|
|
18
|
+
### Phase 1: Audit — Run Automated Checks
|
|
19
|
+
|
|
20
|
+
1. **Run `harness validate`** to check overall project health. Review any context-related warnings or errors in the output.
|
|
21
|
+
|
|
22
|
+
2. **Run `harness check-docs`** to detect documentation gaps, broken links, and stale references. Capture the full output for analysis.
|
|
23
|
+
|
|
24
|
+
3. **Review AGENTS.md manually.** Automated tools catch structural issues but miss semantic drift. Read each section and ask: "Is this still true?"
|
|
25
|
+
|
|
26
|
+
### Graph-Enhanced Context (when available)
|
|
27
|
+
|
|
28
|
+
When a knowledge graph exists at `.harness/graph/`, use graph queries for faster, more accurate auditing:
|
|
29
|
+
|
|
30
|
+
- `query_graph` — find all undocumented code nodes (file nodes without `documents` edges), replacing manual cross-referencing
|
|
31
|
+
- `search_similar` — detect stale references in AGENTS.md by matching section text against current code entities
|
|
32
|
+
|
|
33
|
+
When a graph is available, it IS the source of truth for documentation coverage. Drift = stale or missing edges between code and doc nodes. Fall back to file-based commands if no graph is available.
|
|
34
|
+
|
|
35
|
+
### Pipeline Context (when orchestrated)
|
|
36
|
+
|
|
37
|
+
When invoked by `harness-docs-pipeline`, check for a `pipeline` field in `.harness/handoff.json`:
|
|
38
|
+
|
|
39
|
+
- If `pipeline` field exists: read `DocPipelineContext` from it
|
|
40
|
+
- Use `pipeline.exclusions` to skip findings that were already addressed in the FIX phase
|
|
41
|
+
- Write `GapFinding[]` results back to `pipeline.gapFindings` in handoff.json
|
|
42
|
+
- This enables dedup across FIX and AUDIT phases
|
|
43
|
+
- If `pipeline` field does not exist: behave exactly as today (standalone mode)
|
|
44
|
+
|
|
45
|
+
No changes to the skill's interface or output format — the pipeline field is purely additive.
|
|
46
|
+
|
|
47
|
+
### Phase 2: Detect Gaps
|
|
48
|
+
|
|
49
|
+
Categorize findings into four types:
|
|
50
|
+
|
|
51
|
+
1. **Undocumented files.** New source files, modules, or packages that are not mentioned in AGENTS.md or any knowledge map section. These are the highest priority — an AI agent encountering these files has no context.
|
|
52
|
+
|
|
53
|
+
2. **Broken links.** References to files, functions, or URLs that no longer exist. These actively mislead agents.
|
|
54
|
+
|
|
55
|
+
3. **Stale sections.** Content that was accurate when written but no longer reflects reality. Examples: renamed functions still referenced by old name, removed features still described, changed conventions not updated.
|
|
56
|
+
|
|
57
|
+
4. **Missing context.** Sections that exist but lack critical information. A module is listed but its purpose, constraints, or relationships are not explained. An AI agent can find the file but does not understand why it exists or how to use it correctly.
|
|
58
|
+
|
|
59
|
+
### Phase 3: Suggest Updates
|
|
60
|
+
|
|
61
|
+
For each gap, generate a specific suggestion:
|
|
62
|
+
|
|
63
|
+
- **Undocumented files:** Draft a new section or entry with the file path, purpose, key exports, and relationship to existing modules. Use the existing AGENTS.md style and structure.
|
|
64
|
+
- **Broken links:** Identify the correct target (renamed file, moved function) or recommend removal if the target was deleted.
|
|
65
|
+
- **Stale sections:** Draft replacement text that reflects current reality. Show the diff between old and new.
|
|
66
|
+
- **Missing context:** Draft additional content that fills the gap. Focus on what an AI agent needs to know: purpose, constraints, relationships, and gotchas.
|
|
67
|
+
|
|
68
|
+
### Phase 4: Apply with Approval
|
|
69
|
+
|
|
70
|
+
1. **Present all suggestions as a grouped list.** Organize by section of AGENTS.md for easy review.
|
|
71
|
+
|
|
72
|
+
2. **Apply approved changes.** Update AGENTS.md with the approved suggestions. Preserve existing formatting and style.
|
|
73
|
+
|
|
74
|
+
3. **Re-run `harness check-docs`** to verify all fixes are clean. No new issues should be introduced.
|
|
75
|
+
|
|
76
|
+
4. **Commit the update.** Use a descriptive commit message that summarizes what was updated and why.
|
|
77
|
+
|
|
78
|
+
## What Makes Good AGENTS.md Content
|
|
79
|
+
|
|
80
|
+
Good context engineering treats AGENTS.md as a **dynamic knowledge base**, not a static document.
|
|
81
|
+
|
|
82
|
+
- **Accuracy over completeness.** A small, accurate AGENTS.md is better than a comprehensive but stale one. Every statement must be verifiable against the current codebase.
|
|
83
|
+
- **Purpose-first descriptions.** Do not just list files. Explain WHY each module exists, what problem it solves, and what constraints apply to it.
|
|
84
|
+
- **Relationship mapping.** Show how modules connect. Which modules depend on which? What are the boundaries? An agent reading one section should understand how it fits into the whole.
|
|
85
|
+
- **Gotchas and constraints.** Document the non-obvious. What will break if someone does X? What patterns must be followed? What is forbidden and why?
|
|
86
|
+
- **Change-friendly structure.** Organize so that adding a new module means adding one section, not updating ten places. Use consistent formatting so automated tools can parse it.
|
|
87
|
+
- **Actionable guidance.** Every section should help an agent make correct decisions. "This module handles authentication" is less useful than "This module handles authentication. All auth changes must go through the AuthService class. Direct database access for auth data is forbidden — use the repository layer."
|
|
88
|
+
|
|
89
|
+
## Harness Integration
|
|
90
|
+
|
|
91
|
+
- **`harness validate`** — Full project health check. Reports context gaps as part of overall validation.
|
|
92
|
+
- **`harness check-docs`** — Focused documentation audit. Detects broken links, missing references, stale sections, and undocumented files.
|
|
93
|
+
- **`harness fix-drift`** — Auto-fix simple drift issues (broken links, renamed references). Use after manual review confirms the fixes are correct.
|
|
94
|
+
|
|
95
|
+
## Success Criteria
|
|
96
|
+
|
|
97
|
+
- `harness check-docs` passes with zero errors and zero warnings
|
|
98
|
+
- Every source file that contains public API or architectural significance is referenced in AGENTS.md
|
|
99
|
+
- All file paths and function names in AGENTS.md match the current codebase
|
|
100
|
+
- All links (internal and external) resolve correctly
|
|
101
|
+
- AGENTS.md sections accurately describe current module purposes, constraints, and relationships
|
|
102
|
+
- A new AI agent reading AGENTS.md can navigate the codebase and make correct decisions without additional guidance
|
|
103
|
+
|
|
104
|
+
## Examples
|
|
105
|
+
|
|
106
|
+
### Example: New module added but not documented
|
|
107
|
+
|
|
108
|
+
**Audit output from `harness check-docs`:**
|
|
109
|
+
|
|
110
|
+
```
|
|
111
|
+
WARNING: Undocumented file detected: src/services/notification-service.ts
|
|
112
|
+
- File contains 3 public exports: NotificationService, NotificationType, sendNotification
|
|
113
|
+
- File is imported by 4 other modules
|
|
114
|
+
- No AGENTS.md section references this file
|
|
115
|
+
```
|
|
116
|
+
|
|
117
|
+
**Suggested update:**
|
|
118
|
+
|
|
119
|
+
```markdown
|
|
120
|
+
### Notification Service (`src/services/notification-service.ts`)
|
|
121
|
+
|
|
122
|
+
Handles all outbound notifications (email, Slack, webhook). All notification delivery
|
|
123
|
+
must go through `NotificationService` — direct use of transport libraries (nodemailer,
|
|
124
|
+
Slack SDK) outside this module is forbidden.
|
|
125
|
+
|
|
126
|
+
- `NotificationType` — enum of supported notification channels
|
|
127
|
+
- `sendNotification()` — primary entry point; routes to the correct transport
|
|
128
|
+
- Requires `NOTIFICATION_CONFIG` environment variables to be set
|
|
129
|
+
- Respects rate limits defined in `harness.config.json` under `notifications`
|
|
130
|
+
```
|
|
131
|
+
|
|
132
|
+
**Apply:** Add the section under the Services heading in AGENTS.md. Re-run `harness check-docs` to confirm the warning is resolved.
|
|
133
|
+
|
|
134
|
+
### Example: Renamed function still referenced by old name
|
|
135
|
+
|
|
136
|
+
**Audit output:**
|
|
137
|
+
|
|
138
|
+
```
|
|
139
|
+
ERROR: Broken reference in AGENTS.md line 47: `calculateShipping()`
|
|
140
|
+
- Function was renamed to `computeShippingCost()` in commit abc123
|
|
141
|
+
- Located in src/services/shipping.ts
|
|
142
|
+
```
|
|
143
|
+
|
|
144
|
+
**Fix:** Replace `calculateShipping()` with `computeShippingCost()` in AGENTS.md. Verify no other references to the old name exist.
|
|
145
|
+
|
|
146
|
+
## Escalation
|
|
147
|
+
|
|
148
|
+
- **When AGENTS.md is severely outdated (>20 issues):** Do not attempt to fix everything at once. Prioritize: broken links first, then undocumented public APIs, then stale descriptions. Batch the work across multiple commits.
|
|
149
|
+
- **When you are unsure whether a section is stale:** Check git blame for the section and compare against recent changes to the referenced files. If the section has not been updated since the referenced files changed, it is likely stale.
|
|
150
|
+
- **When the project has no AGENTS.md:** Escalate to the human. Creating an AGENTS.md from scratch is a significant decision about project structure and should be done intentionally, not automatically.
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
name: validate-context-engineering
|
|
2
|
+
version: "1.0.0"
|
|
3
|
+
description: Validate repository context engineering practices (AGENTS.md, doc coverage, knowledge map)
|
|
4
|
+
cognitive_mode: meticulous-verifier
|
|
5
|
+
triggers:
|
|
6
|
+
- manual
|
|
7
|
+
- on_pr
|
|
8
|
+
- on_commit
|
|
9
|
+
platforms:
|
|
10
|
+
- claude-code
|
|
11
|
+
- gemini-cli
|
|
12
|
+
tools:
|
|
13
|
+
- Bash
|
|
14
|
+
- Read
|
|
15
|
+
- Glob
|
|
16
|
+
cli:
|
|
17
|
+
command: harness skill run validate-context-engineering
|
|
18
|
+
args:
|
|
19
|
+
- name: path
|
|
20
|
+
description: Project root path
|
|
21
|
+
required: false
|
|
22
|
+
mcp:
|
|
23
|
+
tool: run_skill
|
|
24
|
+
input:
|
|
25
|
+
skill: validate-context-engineering
|
|
26
|
+
path: string
|
|
27
|
+
type: flexible
|
|
28
|
+
internal: true
|
|
29
|
+
state:
|
|
30
|
+
persistent: false
|
|
31
|
+
files: []
|
|
32
|
+
depends_on: []
|
|
@@ -0,0 +1,192 @@
|
|
|
1
|
+
# Add Harness Component
|
|
2
|
+
|
|
3
|
+
> Add layers, documentation, components, or skills to an existing harness project with proper integration. Validate against existing constraints, wire into architecture, and verify the result.
|
|
4
|
+
|
|
5
|
+
## When to Use
|
|
6
|
+
|
|
7
|
+
- Adding a new layer to the project's architecture
|
|
8
|
+
- Adding a new documentation file that harness should track
|
|
9
|
+
- Adding a new component (module, service, package) that must be wired into existing layer boundaries
|
|
10
|
+
- Adding a new skill to the project's skill library
|
|
11
|
+
- When a plan calls for introducing a new architectural boundary or module
|
|
12
|
+
- NOT when initializing a project from scratch (use initialize-harness-project)
|
|
13
|
+
- NOT when modifying an existing component (use standard editing workflows)
|
|
14
|
+
- NOT when removing components (manual process — removing requires careful dependency analysis)
|
|
15
|
+
|
|
16
|
+
## Process
|
|
17
|
+
|
|
18
|
+
### Phase 1: DETERMINE — Identify What to Add
|
|
19
|
+
|
|
20
|
+
1. **Clarify the component type.** Ask if not obvious from context:
|
|
21
|
+
- **Layer:** A new architectural boundary (e.g., adding an "infrastructure" layer to a project that only has "business" and "data")
|
|
22
|
+
- **Document:** A documentation file that harness should track for drift detection (e.g., API docs, architecture decision records)
|
|
23
|
+
- **Component:** A code module, service, or package that lives within an existing layer
|
|
24
|
+
- **Skill:** A new harness skill definition for the project's workflow
|
|
25
|
+
|
|
26
|
+
2. **Gather requirements.** For each type:
|
|
27
|
+
- **Layer:** Name, which directories belong to it, which layers it can import from, which layers can import from it
|
|
28
|
+
- **Document:** Path, what it documents, which code files it relates to
|
|
29
|
+
- **Component:** Name, which layer it belongs to, what it depends on, what will depend on it
|
|
30
|
+
- **Skill:** Name, purpose, type (rigid or flexible), triggers
|
|
31
|
+
|
|
32
|
+
3. **Check prerequisites.** The project must already be initialized with harness. If `harness.yaml` does not exist, stop and run initialize-harness-project first.
|
|
33
|
+
|
|
34
|
+
### Phase 2: VALIDATE — Check Against Existing Constraints
|
|
35
|
+
|
|
36
|
+
1. **Read the current configuration.** Load `harness.yaml` and `AGENTS.md` to understand existing layers, constraints, and architecture.
|
|
37
|
+
|
|
38
|
+
2. **Verify the new component does not conflict:**
|
|
39
|
+
- Does the layer name already exist?
|
|
40
|
+
- Does the component directory already exist?
|
|
41
|
+
- Would the new dependency relationships create circular imports?
|
|
42
|
+
- Does the component violate any existing forbidden-import rules?
|
|
43
|
+
|
|
44
|
+
3. **If conflicts are found,** report them clearly: "Adding layer X would conflict with existing layer Y because [reason]. Options: [A] rename, [B] merge into existing layer, [C] restructure. Which do you prefer?"
|
|
45
|
+
|
|
46
|
+
4. **Run `harness check-deps`** on the current state to establish a clean baseline. If it already fails, fix existing violations before adding new components.
|
|
47
|
+
|
|
48
|
+
### Phase 3: ADD — Create the Component
|
|
49
|
+
|
|
50
|
+
1. **Run `harness add` with appropriate arguments:**
|
|
51
|
+
- Layer: `harness add layer <name> --dirs <dir1,dir2> --imports <allowed-layers>`
|
|
52
|
+
- Document: `harness add doc <path> --tracks <related-code-paths>`
|
|
53
|
+
- Component: `harness add component <name> --layer <layer-name>`
|
|
54
|
+
- Skill: `harness add skill <name> --type <rigid|flexible>`
|
|
55
|
+
|
|
56
|
+
2. **Review generated files and configuration changes.** `harness add` modifies `harness.yaml` and may generate template files. Check that the changes look correct.
|
|
57
|
+
|
|
58
|
+
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.
|
|
59
|
+
|
|
60
|
+
### Phase 4: WIRE — Integrate into Architecture
|
|
61
|
+
|
|
62
|
+
1. **Update imports and exports.** If the new component needs to be imported by existing code, add the imports. If existing code needs to be aware of the new layer, update barrel files or index modules.
|
|
63
|
+
|
|
64
|
+
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.
|
|
65
|
+
|
|
66
|
+
3. **Update layer configuration** if the new component changes dependency relationships. Ensure `harness.yaml` reflects the actual import graph.
|
|
67
|
+
|
|
68
|
+
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.
|
|
69
|
+
|
|
70
|
+
### Phase 5: VERIFY — Confirm Integration
|
|
71
|
+
|
|
72
|
+
1. **Run `harness validate`** to verify the full project configuration is still valid after the addition.
|
|
73
|
+
|
|
74
|
+
2. **Run `harness check-deps`** to verify no dependency violations were introduced. The new component's imports must respect layer boundaries.
|
|
75
|
+
|
|
76
|
+
### Graph Refresh
|
|
77
|
+
|
|
78
|
+
If a knowledge graph exists at `.harness/graph/`, refresh it after code changes to keep graph queries accurate:
|
|
79
|
+
|
|
80
|
+
```
|
|
81
|
+
harness scan [path]
|
|
82
|
+
```
|
|
83
|
+
|
|
84
|
+
Skipping this step means subsequent graph queries (impact analysis, dependency health, test advisor) may return stale results.
|
|
85
|
+
|
|
86
|
+
3. **If validation fails,** fix the issues before committing. Common causes:
|
|
87
|
+
- New layer not properly registered in `harness.yaml`
|
|
88
|
+
- Component placed in wrong directory for its declared layer
|
|
89
|
+
- Imports from forbidden layers
|
|
90
|
+
- `AGENTS.md` references outdated architecture
|
|
91
|
+
|
|
92
|
+
4. **Commit the addition.** All new and modified files in a single atomic commit.
|
|
93
|
+
|
|
94
|
+
## Harness Integration
|
|
95
|
+
|
|
96
|
+
- **`harness add layer <name>`** — Register a new architectural layer with directory mappings and import rules.
|
|
97
|
+
- **`harness add doc <path>`** — Register a documentation file for drift tracking.
|
|
98
|
+
- **`harness add component <name> --layer <layer>`** — Register a new code component within an existing layer.
|
|
99
|
+
- **`harness add skill <name> --type <type>`** — Scaffold a new skill definition.
|
|
100
|
+
- **`harness validate`** — Verify project configuration after the addition.
|
|
101
|
+
- **`harness check-deps`** — Verify dependency constraints are respected after the addition.
|
|
102
|
+
|
|
103
|
+
## Success Criteria
|
|
104
|
+
|
|
105
|
+
- The new component is properly registered in `harness.yaml`
|
|
106
|
+
- The component's files exist in the correct directories for its declared layer
|
|
107
|
+
- `AGENTS.md` is updated to reflect the new component
|
|
108
|
+
- `harness validate` passes after the addition
|
|
109
|
+
- `harness check-deps` passes after the addition (no new violations)
|
|
110
|
+
- No circular dependencies were introduced
|
|
111
|
+
- The addition is committed as a single atomic commit
|
|
112
|
+
|
|
113
|
+
## Examples
|
|
114
|
+
|
|
115
|
+
### Example: Adding a New Layer
|
|
116
|
+
|
|
117
|
+
```
|
|
118
|
+
Human: "We need an infrastructure layer for external API clients."
|
|
119
|
+
|
|
120
|
+
DETERMINE: Adding a layer. Name: infrastructure. Dirs: src/infrastructure/.
|
|
121
|
+
Imports from: (none — infrastructure is a leaf layer, no internal dependencies).
|
|
122
|
+
Imported by: business layer (services call external APIs through infrastructure).
|
|
123
|
+
|
|
124
|
+
VALIDATE:
|
|
125
|
+
Read harness.yaml — existing layers: presentation, business, data.
|
|
126
|
+
No conflict with "infrastructure" name.
|
|
127
|
+
Run: harness check-deps — passes (clean baseline).
|
|
128
|
+
|
|
129
|
+
ADD:
|
|
130
|
+
harness add layer infrastructure --dirs src/infrastructure --imports none
|
|
131
|
+
mkdir -p src/infrastructure
|
|
132
|
+
|
|
133
|
+
WIRE:
|
|
134
|
+
Update harness.yaml: allow business → infrastructure imports.
|
|
135
|
+
Update AGENTS.md: document infrastructure layer purpose and boundaries.
|
|
136
|
+
|
|
137
|
+
VERIFY:
|
|
138
|
+
harness validate # Pass
|
|
139
|
+
harness check-deps # Pass
|
|
140
|
+
git add harness.yaml AGENTS.md src/infrastructure/
|
|
141
|
+
git commit -m "feat: add infrastructure layer for external API clients"
|
|
142
|
+
```
|
|
143
|
+
|
|
144
|
+
### Example: Adding a Document for Drift Tracking
|
|
145
|
+
|
|
146
|
+
```
|
|
147
|
+
Human: "Track our API specification for documentation drift."
|
|
148
|
+
|
|
149
|
+
DETERMINE: Adding a document. Path: docs/api-spec.md.
|
|
150
|
+
Tracks: src/routes/, src/models/response.ts.
|
|
151
|
+
|
|
152
|
+
ADD:
|
|
153
|
+
harness add doc docs/api-spec.md --tracks src/routes,src/models/response.ts
|
|
154
|
+
|
|
155
|
+
WIRE:
|
|
156
|
+
Update AGENTS.md: note that docs/api-spec.md is tracked for drift.
|
|
157
|
+
|
|
158
|
+
VERIFY:
|
|
159
|
+
harness validate # Pass
|
|
160
|
+
git add harness.yaml AGENTS.md
|
|
161
|
+
git commit -m "feat: track API spec for documentation drift detection"
|
|
162
|
+
```
|
|
163
|
+
|
|
164
|
+
### Example: Adding a Component to an Existing Layer
|
|
165
|
+
|
|
166
|
+
```
|
|
167
|
+
Human: "Add a notification service to the business layer."
|
|
168
|
+
|
|
169
|
+
DETERMINE: Adding a component. Name: notification-service. Layer: business.
|
|
170
|
+
Depends on: data layer (notification repository). Depended on by: presentation layer (routes).
|
|
171
|
+
|
|
172
|
+
VALIDATE:
|
|
173
|
+
Read harness.yaml — business layer exists, maps to src/services/.
|
|
174
|
+
No existing notification-service directory.
|
|
175
|
+
business → data is an allowed import. Presentation → business is allowed.
|
|
176
|
+
Run: harness check-deps — passes.
|
|
177
|
+
|
|
178
|
+
ADD:
|
|
179
|
+
harness add component notification-service --layer business
|
|
180
|
+
Create src/services/notification-service.ts
|
|
181
|
+
Create src/services/notification-service.test.ts
|
|
182
|
+
|
|
183
|
+
WIRE:
|
|
184
|
+
Add export to src/services/index.ts (if barrel file exists).
|
|
185
|
+
Update AGENTS.md: add notification service to business layer component list.
|
|
186
|
+
|
|
187
|
+
VERIFY:
|
|
188
|
+
harness validate # Pass
|
|
189
|
+
harness check-deps # Pass
|
|
190
|
+
git add harness.yaml AGENTS.md src/services/notification-service.*
|
|
191
|
+
git commit -m "feat: add notification service to business layer"
|
|
192
|
+
```
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
name: add-harness-component
|
|
2
|
+
version: "1.0.0"
|
|
3
|
+
description: Add a component to an existing harness project
|
|
4
|
+
cognitive_mode: constructive-architect
|
|
5
|
+
triggers:
|
|
6
|
+
- manual
|
|
7
|
+
platforms:
|
|
8
|
+
- claude-code
|
|
9
|
+
- gemini-cli
|
|
10
|
+
tools:
|
|
11
|
+
- Bash
|
|
12
|
+
- Read
|
|
13
|
+
- Write
|
|
14
|
+
- Edit
|
|
15
|
+
- Glob
|
|
16
|
+
cli:
|
|
17
|
+
command: harness skill run add-harness-component
|
|
18
|
+
args:
|
|
19
|
+
- name: path
|
|
20
|
+
description: Project root path
|
|
21
|
+
required: false
|
|
22
|
+
mcp:
|
|
23
|
+
tool: run_skill
|
|
24
|
+
input:
|
|
25
|
+
skill: add-harness-component
|
|
26
|
+
path: string
|
|
27
|
+
type: flexible
|
|
28
|
+
tier: 1
|
|
29
|
+
state:
|
|
30
|
+
persistent: false
|
|
31
|
+
files: []
|
|
32
|
+
depends_on:
|
|
33
|
+
- initialize-harness-project
|