@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,341 @@
|
|
|
1
|
+
# Harness ML Ops
|
|
2
|
+
|
|
3
|
+
> Advise on ML pipeline management, experiment tracking hygiene, model serving patterns, and prompt evaluation frameworks. Audits reproducibility, model versioning, and deployment readiness across MLflow, Weights and Biases, SageMaker, and Vertex AI.
|
|
4
|
+
|
|
5
|
+
## When to Use
|
|
6
|
+
|
|
7
|
+
- When setting up or auditing ML infrastructure (experiment tracking, model registry, serving)
|
|
8
|
+
- When adding a new model or prompt pipeline and need deployment pattern guidance
|
|
9
|
+
- When experiment tracking is inconsistent and reproducibility is at risk
|
|
10
|
+
- NOT for data pipeline ETL patterns (use harness-data-pipeline)
|
|
11
|
+
- NOT for SQL query optimization in feature engineering (use harness-sql-review)
|
|
12
|
+
- NOT for infrastructure provisioning of GPU instances (use harness-infrastructure-as-code)
|
|
13
|
+
|
|
14
|
+
## Process
|
|
15
|
+
|
|
16
|
+
### Phase 1: DETECT -- Identify ML Stack and Artifacts
|
|
17
|
+
|
|
18
|
+
1. **Resolve project root.** Use provided path or cwd.
|
|
19
|
+
|
|
20
|
+
2. **Detect ML frameworks and tools.** Scan for:
|
|
21
|
+
- **Experiment tracking:** `mlflow/`, `mlruns/`, `wandb/`, `mlflow.log_param`, `wandb.init`, `wandb.log`
|
|
22
|
+
- **Model frameworks:** `torch`, `tensorflow`, `sklearn`, `xgboost`, `transformers`, `langchain`, `openai`
|
|
23
|
+
- **Serving:** `Dockerfile` with model references, `serve.py`, `predict.py`, `app.py` with `/predict` routes, BentoML, TorchServe, TensorFlow Serving configs
|
|
24
|
+
- **Evaluation:** `evals/`, `prompts/`, `eval_config.yaml`, files with `evaluate`, `benchmark`, `metrics`
|
|
25
|
+
- **Notebooks:** `*.ipynb` files, `notebooks/` directory
|
|
26
|
+
- **Feature stores:** Feast config, Tecton, Hopsworks references
|
|
27
|
+
|
|
28
|
+
3. **Inventory model artifacts.** Locate and catalog:
|
|
29
|
+
- Trained model files: `*.pt`, `*.pth`, `*.h5`, `*.pkl`, `*.onnx`, `*.safetensors`
|
|
30
|
+
- Model configuration: `config.json`, `model_config.yaml`, hyperparameter files
|
|
31
|
+
- Prompt templates: `prompts/`, `*.prompt`, template strings with `{variable}` interpolation
|
|
32
|
+
- Evaluation datasets: `evals/`, `test_data/`, golden sets, benchmark datasets
|
|
33
|
+
|
|
34
|
+
4. **Detect model registry usage.** Check for:
|
|
35
|
+
- MLflow Model Registry: `mlflow.register_model`, model stages (Staging, Production, Archived)
|
|
36
|
+
- Weights and Biases Artifacts: `wandb.Artifact`, model versioning
|
|
37
|
+
- SageMaker Model Registry: `sagemaker.register_model_step`
|
|
38
|
+
- Hugging Face Hub: `push_to_hub`, `from_pretrained` with custom models
|
|
39
|
+
- Custom registry: version-tagged model directories, model metadata files
|
|
40
|
+
|
|
41
|
+
5. **Map the ML lifecycle.** Identify which stages are present:
|
|
42
|
+
- Data preparation and feature engineering
|
|
43
|
+
- Training / fine-tuning
|
|
44
|
+
- Experiment tracking and comparison
|
|
45
|
+
- Model evaluation and validation
|
|
46
|
+
- Model registration and versioning
|
|
47
|
+
- Deployment and serving
|
|
48
|
+
- Monitoring and retraining triggers
|
|
49
|
+
|
|
50
|
+
6. **Report detection summary:**
|
|
51
|
+
```
|
|
52
|
+
ML Stack Detection:
|
|
53
|
+
Frameworks: PyTorch 2.1, Hugging Face Transformers 4.36
|
|
54
|
+
Tracking: MLflow 2.10 (local tracking server)
|
|
55
|
+
Serving: FastAPI + TorchServe
|
|
56
|
+
Models: 3 fine-tuned transformers, 1 XGBoost classifier
|
|
57
|
+
Prompts: 12 templates in prompts/ (LangChain format)
|
|
58
|
+
Evaluation: 2 eval configs, 1 golden dataset
|
|
59
|
+
Registry: MLflow (2 models registered, 1 in Production stage)
|
|
60
|
+
Missing stages: monitoring, automated retraining
|
|
61
|
+
```
|
|
62
|
+
|
|
63
|
+
---
|
|
64
|
+
|
|
65
|
+
### Phase 2: ANALYZE -- Evaluate ML Practices
|
|
66
|
+
|
|
67
|
+
1. **Check experiment tracking hygiene.** Evaluate:
|
|
68
|
+
- Are all training runs logged? (check for `mlflow.autolog()` or manual `log_param`/`log_metric`)
|
|
69
|
+
- Are hyperparameters fully captured? (learning rate, batch size, epochs, model architecture)
|
|
70
|
+
- Are data versions tracked? (dataset hash, split ratios, preprocessing version)
|
|
71
|
+
- Are environment details logged? (Python version, package versions, GPU type)
|
|
72
|
+
- Are artifacts (model weights, configs) stored with experiments?
|
|
73
|
+
- Flag: training scripts that produce models without experiment logging
|
|
74
|
+
|
|
75
|
+
2. **Check reproducibility.** Verify:
|
|
76
|
+
- Are random seeds set and logged? (`torch.manual_seed`, `np.random.seed`, `random.seed`)
|
|
77
|
+
- Are data loading pipelines deterministic? (shuffling with seed, consistent splits)
|
|
78
|
+
- Are package versions pinned? (`requirements.txt` with versions, `poetry.lock`, `pip freeze`)
|
|
79
|
+
- Can an experiment be re-run from its logged parameters to reproduce the result?
|
|
80
|
+
- Are there notebooks with unexecuted cells or out-of-order execution?
|
|
81
|
+
|
|
82
|
+
3. **Check model serving patterns.** Evaluate:
|
|
83
|
+
- Is the model loaded once at startup or per-request? (per-request loading is an error)
|
|
84
|
+
- Are inference inputs validated? (schema, type checking, bounds checking)
|
|
85
|
+
- Is batching implemented for throughput? (batch inference for non-real-time use cases)
|
|
86
|
+
- Is there a health check endpoint? (`/health`, `/ready`)
|
|
87
|
+
- Is model versioning reflected in the serving API? (A/B testing, canary deployment)
|
|
88
|
+
- Are timeout and resource limits configured?
|
|
89
|
+
|
|
90
|
+
4. **Check prompt management (for LLM applications).** Evaluate:
|
|
91
|
+
- Are prompts version-controlled? (not hardcoded in application code)
|
|
92
|
+
- Are prompt templates parameterized? (using `{variable}` not string concatenation)
|
|
93
|
+
- Is there prompt-response logging for debugging?
|
|
94
|
+
- Are there guardrails for prompt injection? (input sanitization, output validation)
|
|
95
|
+
- Are token costs estimated and budgeted?
|
|
96
|
+
|
|
97
|
+
5. **Check evaluation coverage.** Evaluate:
|
|
98
|
+
- Are there evaluation datasets with known-good outputs (golden sets)?
|
|
99
|
+
- Are multiple metrics tracked? (not just accuracy -- precision, recall, F1, latency)
|
|
100
|
+
- For LLM applications: are there automated eval suites? (factual accuracy, hallucination detection, safety)
|
|
101
|
+
- Is there regression testing? (new model vs production model comparison)
|
|
102
|
+
- Are evaluation results versioned alongside model versions?
|
|
103
|
+
|
|
104
|
+
6. **Classify findings by severity:**
|
|
105
|
+
- **Error:** Model loaded per-request, no experiment tracking on training, no evaluation before deployment
|
|
106
|
+
- **Warning:** Missing reproducibility controls, incomplete metric logging, no golden set
|
|
107
|
+
- **Info:** Missing monitoring, suboptimal batching, notebook ordering issues
|
|
108
|
+
|
|
109
|
+
---
|
|
110
|
+
|
|
111
|
+
### Phase 3: DESIGN -- Recommend Improvements
|
|
112
|
+
|
|
113
|
+
1. **Recommend experiment tracking setup.** Based on the detected framework:
|
|
114
|
+
- **MLflow not configured:** Provide `mlflow.set_tracking_uri()` and `mlflow.autolog()` setup
|
|
115
|
+
- **W&B not configured:** Provide `wandb.init(project=...)` and `wandb.config` setup
|
|
116
|
+
- **Tracking present but incomplete:** List specific parameters and metrics to add
|
|
117
|
+
|
|
118
|
+
2. **Recommend model registry workflow.** Design a versioning and promotion flow:
|
|
119
|
+
|
|
120
|
+
```
|
|
121
|
+
Training -> Candidate (auto-registered)
|
|
122
|
+
-> Evaluation gate (metrics threshold)
|
|
123
|
+
-> Staging (shadow deployment)
|
|
124
|
+
-> Production (canary rollout)
|
|
125
|
+
-> Archived (previous version)
|
|
126
|
+
```
|
|
127
|
+
|
|
128
|
+
Adapt to the project's scale: small projects may skip staging/canary.
|
|
129
|
+
|
|
130
|
+
3. **Recommend evaluation framework.** Based on model type:
|
|
131
|
+
- **Classification:** confusion matrix, precision/recall by class, calibration curve
|
|
132
|
+
- **Regression:** MAE, RMSE, residual distribution
|
|
133
|
+
- **LLM/generative:** factual accuracy, relevance scoring, safety checks, latency per token
|
|
134
|
+
- **Recommendation:** hit rate, NDCG, coverage, diversity
|
|
135
|
+
Provide example evaluation config for the detected framework.
|
|
136
|
+
|
|
137
|
+
4. **Recommend prompt management patterns.** For LLM applications:
|
|
138
|
+
- Separate prompt templates from application code into `prompts/` directory
|
|
139
|
+
- Version prompts alongside evaluation results
|
|
140
|
+
- Implement A/B testing for prompt variants
|
|
141
|
+
- Add guardrails: input length limits, output validation, PII filtering
|
|
142
|
+
|
|
143
|
+
5. **Recommend monitoring and retraining triggers.** Design:
|
|
144
|
+
- Data drift detection (input distribution monitoring)
|
|
145
|
+
- Model performance degradation alerts (metric thresholds)
|
|
146
|
+
- Automated retraining pipeline triggers
|
|
147
|
+
- Cost monitoring for API-based models (token usage, request volume)
|
|
148
|
+
|
|
149
|
+
6. **Provide implementation templates.** Generate starter code for:
|
|
150
|
+
- Experiment tracking wrapper (standardized logging across the project)
|
|
151
|
+
- Model serving boilerplate (FastAPI with health check, input validation, batching)
|
|
152
|
+
- Evaluation harness (test runner with golden set comparison)
|
|
153
|
+
|
|
154
|
+
---
|
|
155
|
+
|
|
156
|
+
### Phase 4: VALIDATE -- Verify Deployment Readiness
|
|
157
|
+
|
|
158
|
+
1. **Check deployment checklist.** Verify each item:
|
|
159
|
+
- [ ] Model is registered in the model registry with a version tag
|
|
160
|
+
- [ ] Evaluation metrics meet the defined threshold (or threshold is documented)
|
|
161
|
+
- [ ] Serving endpoint has health check and input validation
|
|
162
|
+
- [ ] Model is not loaded per-request
|
|
163
|
+
- [ ] Resource requirements are documented (memory, GPU, latency budget)
|
|
164
|
+
- [ ] Rollback procedure exists (previous model version can be restored)
|
|
165
|
+
- [ ] Monitoring is configured (or explicitly deferred with rationale)
|
|
166
|
+
|
|
167
|
+
2. **Check for common deployment pitfalls:**
|
|
168
|
+
- Model file is committed to git (should be in artifact store)
|
|
169
|
+
- API keys or credentials in model config (should use secrets manager)
|
|
170
|
+
- Hardcoded file paths that differ between dev and production
|
|
171
|
+
- Missing CORS or authentication on inference endpoints
|
|
172
|
+
- No rate limiting on public-facing inference APIs
|
|
173
|
+
|
|
174
|
+
3. **Validate prompt safety (for LLM applications).** Check:
|
|
175
|
+
- Are system prompts protected from user override?
|
|
176
|
+
- Is there input sanitization before prompt injection?
|
|
177
|
+
- Are output filters in place for PII, toxicity, and hallucination?
|
|
178
|
+
- Are token limits enforced per request?
|
|
179
|
+
|
|
180
|
+
4. **Output ML readiness report:**
|
|
181
|
+
|
|
182
|
+
```
|
|
183
|
+
ML Ops Report: [READY/NEEDS_ATTENTION/NOT_READY]
|
|
184
|
+
Stack: PyTorch + MLflow + FastAPI
|
|
185
|
+
Models: 3 detected, 1 registered in Production
|
|
186
|
+
Experiment tracking: 85% coverage (2 training scripts missing logging)
|
|
187
|
+
Reproducibility: PARTIAL (seeds set, packages not pinned)
|
|
188
|
+
Evaluation: 1/3 models have golden set evaluation
|
|
189
|
+
Serving: health check present, input validation missing
|
|
190
|
+
|
|
191
|
+
ERRORS:
|
|
192
|
+
[ML-ERR-001] src/serve.py:12
|
|
193
|
+
Model loaded inside request handler -- move to startup event
|
|
194
|
+
[ML-ERR-002] training/train_classifier.py
|
|
195
|
+
No experiment tracking -- results are not reproducible
|
|
196
|
+
|
|
197
|
+
WARNINGS:
|
|
198
|
+
[ML-WARN-001] requirements.txt
|
|
199
|
+
Package versions not pinned (torch, transformers)
|
|
200
|
+
[ML-WARN-002] evals/
|
|
201
|
+
Only accuracy metric tracked -- add precision, recall, F1
|
|
202
|
+
|
|
203
|
+
RECOMMENDATIONS:
|
|
204
|
+
1. Add mlflow.autolog() to train_classifier.py
|
|
205
|
+
2. Pin package versions in requirements.txt
|
|
206
|
+
3. Move model loading to FastAPI lifespan event
|
|
207
|
+
4. Add input validation schema to /predict endpoint
|
|
208
|
+
```
|
|
209
|
+
|
|
210
|
+
5. **Verify report accuracy.** Cross-check:
|
|
211
|
+
- Do referenced files exist at the stated paths?
|
|
212
|
+
- Do error findings match actual code patterns?
|
|
213
|
+
- Are recommendations actionable with the detected framework?
|
|
214
|
+
|
|
215
|
+
---
|
|
216
|
+
|
|
217
|
+
## Harness Integration
|
|
218
|
+
|
|
219
|
+
- **`harness skill run harness-ml-ops`** -- Primary command for ML operations auditing.
|
|
220
|
+
- **`harness validate`** -- Run after applying recommendations to verify project health.
|
|
221
|
+
- **`Glob`** -- Used to locate model artifacts, experiment configs, notebooks, prompt templates, and evaluation datasets.
|
|
222
|
+
- **`Grep`** -- Used to find experiment logging calls, model loading patterns, and serving endpoint definitions.
|
|
223
|
+
- **`Read`** -- Used to read training scripts, serving code, evaluation configs, and model metadata.
|
|
224
|
+
- **`Write`** -- Used to generate experiment tracking wrappers, serving boilerplate, and evaluation harness templates.
|
|
225
|
+
- **`Bash`** -- Used to check MLflow tracking server status, validate model registry entries, and run lightweight eval checks.
|
|
226
|
+
- **`emit_interaction`** -- Used to present the readiness report and confirm recommendations before generating implementation templates.
|
|
227
|
+
|
|
228
|
+
## Success Criteria
|
|
229
|
+
|
|
230
|
+
- ML stack is fully detected with framework versions and artifact locations
|
|
231
|
+
- Experiment tracking coverage is measured across all training scripts
|
|
232
|
+
- Reproducibility gaps are identified with specific remediation steps
|
|
233
|
+
- Model serving patterns are evaluated for correctness and performance
|
|
234
|
+
- Evaluation coverage is assessed with metric completeness
|
|
235
|
+
- Prompt management is audited for safety and version control (for LLM applications)
|
|
236
|
+
- Deployment readiness checklist produces a clear go/no-go assessment
|
|
237
|
+
|
|
238
|
+
## Examples
|
|
239
|
+
|
|
240
|
+
### Example: PyTorch Fine-Tuning Pipeline with MLflow
|
|
241
|
+
|
|
242
|
+
```
|
|
243
|
+
Phase 1: DETECT
|
|
244
|
+
Frameworks: PyTorch 2.1, Hugging Face Transformers 4.36
|
|
245
|
+
Tracking: MLflow 2.10 (local, 47 runs logged)
|
|
246
|
+
Models: 2 fine-tuned BERT models in mlruns/
|
|
247
|
+
Notebooks: 3 in notebooks/ (exploration, training, evaluation)
|
|
248
|
+
|
|
249
|
+
Phase 2: ANALYZE
|
|
250
|
+
[ML-WARN-001] notebooks/training.ipynb
|
|
251
|
+
Cells executed out of order (cell 7 before cell 5) -- not reproducible
|
|
252
|
+
[ML-WARN-002] training/finetune.py
|
|
253
|
+
Random seed set for torch but not for numpy or python random
|
|
254
|
+
[ML-INFO-001] MLflow runs missing GPU type metadata
|
|
255
|
+
|
|
256
|
+
Phase 3: DESIGN
|
|
257
|
+
Recommended: Add np.random.seed() and random.seed() alongside torch.manual_seed()
|
|
258
|
+
Recommended: Add mlflow.log_param("gpu_type", torch.cuda.get_device_name())
|
|
259
|
+
Generated: training/experiment_wrapper.py (standardized logging)
|
|
260
|
+
|
|
261
|
+
Phase 4: VALIDATE
|
|
262
|
+
Deployment readiness: NEEDS_ATTENTION
|
|
263
|
+
Model registered: YES (bert-sentiment-v2 in Production)
|
|
264
|
+
Evaluation: golden set present with 500 examples
|
|
265
|
+
Missing: automated regression test comparing v2 vs v1
|
|
266
|
+
```
|
|
267
|
+
|
|
268
|
+
### Example: LangChain Application with OpenAI
|
|
269
|
+
|
|
270
|
+
```
|
|
271
|
+
Phase 1: DETECT
|
|
272
|
+
Frameworks: LangChain 0.1, OpenAI API (GPT-4)
|
|
273
|
+
Prompts: 8 templates in src/prompts/ (hardcoded as Python strings)
|
|
274
|
+
Evaluation: none detected
|
|
275
|
+
Serving: FastAPI with /chat and /summarize endpoints
|
|
276
|
+
|
|
277
|
+
Phase 2: ANALYZE
|
|
278
|
+
[ML-ERR-001] src/prompts/summarize.py
|
|
279
|
+
Prompt template uses string concatenation with user input -- injection risk
|
|
280
|
+
[ML-ERR-002] src/api/chat.py
|
|
281
|
+
No token limit enforcement -- single request could consume entire budget
|
|
282
|
+
[ML-WARN-001] No evaluation framework -- model changes deployed without quality check
|
|
283
|
+
[ML-WARN-002] No prompt versioning -- changes to prompts are not tracked
|
|
284
|
+
|
|
285
|
+
Phase 3: DESIGN
|
|
286
|
+
Recommended: Move prompts to YAML files with version tags
|
|
287
|
+
Recommended: Implement promptfoo or custom eval harness with golden QA pairs
|
|
288
|
+
Recommended: Add token budget middleware (max 4096 tokens per request)
|
|
289
|
+
Recommended: Use LangChain PromptTemplate with input validation
|
|
290
|
+
Generated: evals/eval_config.yaml (promptfoo configuration)
|
|
291
|
+
Generated: src/middleware/token_budget.py (request token limiter)
|
|
292
|
+
|
|
293
|
+
Phase 4: VALIDATE
|
|
294
|
+
Deployment readiness: NOT_READY (2 errors, 2 warnings)
|
|
295
|
+
Critical: prompt injection risk and unbounded token usage must be fixed
|
|
296
|
+
```
|
|
297
|
+
|
|
298
|
+
### Example: Scikit-learn Classifier with W&B Tracking
|
|
299
|
+
|
|
300
|
+
```
|
|
301
|
+
Phase 1: DETECT
|
|
302
|
+
Frameworks: scikit-learn 1.4, XGBoost 2.0
|
|
303
|
+
Tracking: Weights and Biases (23 runs, 3 sweeps)
|
|
304
|
+
Models: 1 XGBoost classifier (model.pkl in models/)
|
|
305
|
+
Serving: Flask app with /predict endpoint
|
|
306
|
+
|
|
307
|
+
Phase 2: ANALYZE
|
|
308
|
+
[ML-ERR-001] models/model.pkl committed to git (12MB)
|
|
309
|
+
Should be in W&B Artifacts or external storage
|
|
310
|
+
[ML-ERR-002] app.py:15
|
|
311
|
+
pickle.load(open("models/model.pkl")) on every request
|
|
312
|
+
[ML-WARN-001] training/train.py
|
|
313
|
+
Only accuracy logged -- imbalanced dataset needs precision/recall
|
|
314
|
+
[ML-INFO-001] W&B sweeps well-configured, good hyperparameter search
|
|
315
|
+
|
|
316
|
+
Phase 3: DESIGN
|
|
317
|
+
Recommended: Store model in W&B Artifacts, download at startup
|
|
318
|
+
Recommended: Load model once in Flask app factory, not per-request
|
|
319
|
+
Recommended: Add classification_report metrics to training
|
|
320
|
+
Generated: .gitignore addition for *.pkl
|
|
321
|
+
Generated: app.py refactor with model singleton
|
|
322
|
+
|
|
323
|
+
Phase 4: VALIDATE
|
|
324
|
+
Deployment readiness: NOT_READY (2 errors)
|
|
325
|
+
Critical: model in git and per-request loading must be fixed
|
|
326
|
+
After fixes: projected NEEDS_ATTENTION (missing precision/recall metrics)
|
|
327
|
+
```
|
|
328
|
+
|
|
329
|
+
## Gates
|
|
330
|
+
|
|
331
|
+
- **No deploying models without evaluation.** A model that has not been evaluated against a golden set or baseline cannot be promoted to production. This is always an error.
|
|
332
|
+
- **No per-request model loading.** Loading model weights on every inference request is a performance and reliability error. Models must be loaded at application startup.
|
|
333
|
+
- **No committing model files to git.** Binary model files (`.pkl`, `.pt`, `.h5`, `.onnx`) belong in artifact stores, not in version control. If detected, flag as error with migration path.
|
|
334
|
+
- **No hardcoded prompts with user input concatenation.** String concatenation for prompt construction is a prompt injection vulnerability. Must use parameterized templates.
|
|
335
|
+
|
|
336
|
+
## Escalation
|
|
337
|
+
|
|
338
|
+
- **When experiment tracking requires infrastructure changes:** If MLflow tracking server or W&B workspace needs to be provisioned, flag it: "Experiment tracking requires an MLflow server. This is an infrastructure task outside this skill's scope -- coordinate with the platform team."
|
|
339
|
+
- **When model performance is below threshold but no alternative exists:** Do not approve deployment of an underperforming model. Report: "Model accuracy is 72% against a 80% threshold. Options: (A) collect more training data, (B) try a different architecture, (C) revise the threshold with stakeholder approval."
|
|
340
|
+
- **When GPU/memory requirements exceed available infrastructure:** Flag the resource gap: "This model requires 16GB GPU memory for serving. Current infrastructure provides 8GB. Either quantize the model or provision larger instances."
|
|
341
|
+
- **When prompt evaluation reveals safety concerns:** If prompts can generate harmful, biased, or factually incorrect content in evaluation, escalate immediately: "Evaluation found the model generates fabricated citations in 12% of test cases. This must be addressed with output validation before deployment."
|
|
@@ -0,0 +1,79 @@
|
|
|
1
|
+
name: harness-ml-ops
|
|
2
|
+
version: "1.0.0"
|
|
3
|
+
description: Model serving patterns, experiment tracking, prompt evaluation, and ML pipeline management
|
|
4
|
+
cognitive_mode: advisory-guide
|
|
5
|
+
triggers:
|
|
6
|
+
- manual
|
|
7
|
+
- on_new_feature
|
|
8
|
+
platforms:
|
|
9
|
+
- claude-code
|
|
10
|
+
- gemini-cli
|
|
11
|
+
tools:
|
|
12
|
+
- Bash
|
|
13
|
+
- Read
|
|
14
|
+
- Write
|
|
15
|
+
- Edit
|
|
16
|
+
- Glob
|
|
17
|
+
- Grep
|
|
18
|
+
- emit_interaction
|
|
19
|
+
cli:
|
|
20
|
+
command: harness skill run harness-ml-ops
|
|
21
|
+
args:
|
|
22
|
+
- name: path
|
|
23
|
+
description: Project root path
|
|
24
|
+
required: false
|
|
25
|
+
- name: focus
|
|
26
|
+
description: "Audit focus: serving, tracking, evaluation, pipeline, all. Defaults to all."
|
|
27
|
+
required: false
|
|
28
|
+
- name: framework
|
|
29
|
+
description: "ML framework: mlflow, wandb, sagemaker, vertex-ai. Auto-detected when omitted."
|
|
30
|
+
required: false
|
|
31
|
+
mcp:
|
|
32
|
+
tool: run_skill
|
|
33
|
+
input:
|
|
34
|
+
skill: harness-ml-ops
|
|
35
|
+
path: string
|
|
36
|
+
type: rigid
|
|
37
|
+
tier: 3
|
|
38
|
+
internal: false
|
|
39
|
+
keywords:
|
|
40
|
+
- MLOps
|
|
41
|
+
- model serving
|
|
42
|
+
- experiment tracking
|
|
43
|
+
- MLflow
|
|
44
|
+
- Weights and Biases
|
|
45
|
+
- model registry
|
|
46
|
+
- feature store
|
|
47
|
+
- prompt evaluation
|
|
48
|
+
- LLM
|
|
49
|
+
- model deployment
|
|
50
|
+
- inference
|
|
51
|
+
- training pipeline
|
|
52
|
+
stack_signals:
|
|
53
|
+
- "models/"
|
|
54
|
+
- "experiments/"
|
|
55
|
+
- "mlflow/"
|
|
56
|
+
- "wandb/"
|
|
57
|
+
- "src/**/ml/**"
|
|
58
|
+
- "src/**/models/**"
|
|
59
|
+
- "notebooks/"
|
|
60
|
+
- "*.ipynb"
|
|
61
|
+
- "prompts/"
|
|
62
|
+
- "evals/"
|
|
63
|
+
phases:
|
|
64
|
+
- name: detect
|
|
65
|
+
description: Identify ML frameworks, model artifacts, experiment configs, and serving infrastructure
|
|
66
|
+
required: true
|
|
67
|
+
- name: analyze
|
|
68
|
+
description: Evaluate experiment tracking, model versioning, reproducibility, and serving patterns
|
|
69
|
+
required: true
|
|
70
|
+
- name: design
|
|
71
|
+
description: Recommend pipeline improvements, evaluation frameworks, and deployment strategies
|
|
72
|
+
required: true
|
|
73
|
+
- name: validate
|
|
74
|
+
description: Verify reproducibility, model registry hygiene, and evaluation coverage
|
|
75
|
+
required: true
|
|
76
|
+
state:
|
|
77
|
+
persistent: false
|
|
78
|
+
files: []
|
|
79
|
+
depends_on: []
|