hatch3r 1.8.0 → 2.0.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/README.md +68 -178
- package/dist/cli/index.js +26966 -15942
- package/{agents → dist/content/agents}/hatch3r-architect.md +39 -9
- package/dist/content/agents/hatch3r-brownfield-spec.md +254 -0
- package/{agents → dist/content/agents}/hatch3r-ci-watcher.md +10 -3
- package/{agents → dist/content/agents}/hatch3r-context-rules.md +24 -6
- package/{agents → dist/content/agents}/hatch3r-creator.md +78 -39
- package/dist/content/agents/hatch3r-dependency-drafter.md +162 -0
- package/{agents → dist/content/agents}/hatch3r-devops.md +14 -4
- package/{agents → dist/content/agents}/hatch3r-docs-writer.md +11 -1
- package/dist/content/agents/hatch3r-edge-case-analyst.md +134 -0
- package/dist/content/agents/hatch3r-enhancability.md +192 -0
- package/{agents → dist/content/agents}/hatch3r-fixer.md +61 -10
- package/dist/content/agents/hatch3r-greenfield-spec.md +256 -0
- package/{agents → dist/content/agents}/hatch3r-handoff-loader.md +40 -14
- package/{agents → dist/content/agents}/hatch3r-handoff-preparer.md +17 -8
- package/dist/content/agents/hatch3r-implementer.md +409 -0
- package/dist/content/agents/hatch3r-incident-responder.md +96 -0
- package/dist/content/agents/hatch3r-learnings-loader.md +377 -0
- package/{agents → dist/content/agents}/hatch3r-lint-fixer.md +16 -4
- package/dist/content/agents/hatch3r-maintainability.md +183 -0
- package/dist/content/agents/hatch3r-pack-installer.md +113 -0
- package/dist/content/agents/hatch3r-performance.md +179 -0
- package/dist/content/agents/hatch3r-reliability.md +193 -0
- package/{agents → dist/content/agents}/hatch3r-researcher.md +30 -7
- package/dist/content/agents/hatch3r-reviewer.md +364 -0
- package/dist/content/agents/hatch3r-scalability.md +162 -0
- package/dist/content/agents/hatch3r-security.md +197 -0
- package/dist/content/agents/hatch3r-testability.md +204 -0
- package/dist/content/agents/hatch3r-ui.md +175 -0
- package/dist/content/agents/hatch3r-ux.md +160 -0
- package/{agents → dist/content/agents}/modes/requirements-elicitation.md +1 -1
- package/{agents → dist/content/agents}/modes/user-flows.md +2 -2
- package/dist/content/agents/shared/clarification-default-block.md +44 -0
- package/dist/content/agents/shared/confidence-gate.md +42 -0
- package/dist/content/agents/shared/cq-specialist-roster.md +26 -0
- package/{agents → dist/content/agents}/shared/efficiency-patterns.md +32 -1
- package/{agents → dist/content/agents}/shared/external-knowledge.md +1 -1
- package/{agents → dist/content/agents}/shared/injection-patterns.md +19 -8
- package/dist/content/agents/shared/principles.md +60 -0
- package/{agents → dist/content/agents}/shared/prompt-structure.md +7 -1
- package/{agents → dist/content/agents}/shared/quality-charter.md +73 -9
- package/dist/content/agents/shared/quality-specialist-frame.md +141 -0
- package/dist/content/agents/shared/rigor-contract.md +151 -0
- package/dist/content/agents/shared/severity-mapping.md +92 -0
- package/dist/content/agents/shared/triage-vocabulary.md +46 -0
- package/{agents → dist/content/agents}/shared/user-content-templates.md +40 -14
- package/dist/content/agents/shared/user-question-protocol.md +139 -0
- package/{checks → dist/content/checks}/README.md +5 -0
- package/{checks → dist/content/checks}/accessibility.md +14 -7
- package/{checks → dist/content/checks}/code-quality.md +1 -1
- package/{checks → dist/content/checks}/performance.md +7 -4
- package/{checks → dist/content/checks}/security.md +6 -6
- package/{checks → dist/content/checks}/testing.md +1 -1
- package/{commands → dist/content/commands}/board/pickup-azure-devops.md +1 -1
- package/{commands → dist/content/commands}/board/pickup-delegation-multi.md +41 -14
- package/{commands → dist/content/commands}/board/pickup-delegation.md +10 -8
- package/{commands → dist/content/commands}/board/pickup-github.md +1 -1
- package/{commands → dist/content/commands}/board/pickup-gitlab.md +1 -1
- package/{commands → dist/content/commands}/board/pickup-modes.md +1 -0
- package/{commands → dist/content/commands}/board/pickup-post-impl.md +2 -2
- package/{commands → dist/content/commands}/board/shared-azure-devops.md +1 -1
- package/{commands → dist/content/commands}/board/shared-github.md +2 -2
- package/{commands → dist/content/commands}/board/shared-gitlab.md +1 -1
- package/{commands → dist/content/commands}/hatch3r-api-spec.md +80 -3
- package/dist/content/commands/hatch3r-auth-scaffold.md +250 -0
- package/{commands → dist/content/commands}/hatch3r-benchmark.md +91 -8
- package/{commands → dist/content/commands}/hatch3r-board-fill.md +104 -18
- package/{commands → dist/content/commands}/hatch3r-board-pickup.md +99 -15
- package/dist/content/commands/hatch3r-bug-pipeline.md +240 -0
- package/{commands → dist/content/commands}/hatch3r-bug-plan.md +84 -8
- package/{commands → dist/content/commands}/hatch3r-codebase-map.md +82 -6
- package/{commands → dist/content/commands}/hatch3r-create.md +116 -18
- package/{commands → dist/content/commands}/hatch3r-debug.md +112 -24
- package/dist/content/commands/hatch3r-diagnose.md +238 -0
- package/{commands → dist/content/commands}/hatch3r-feature-plan.md +130 -10
- package/dist/content/commands/hatch3r-handoff.md +213 -0
- package/{commands → dist/content/commands}/hatch3r-healthcheck.md +106 -6
- package/dist/content/commands/hatch3r-incident-response.md +228 -0
- package/{commands → dist/content/commands}/hatch3r-migration-plan.md +81 -5
- package/{commands → dist/content/commands}/hatch3r-onboard.md +100 -9
- package/dist/content/commands/hatch3r-pack-install.md +243 -0
- package/{commands → dist/content/commands}/hatch3r-pr-resolve.md +114 -31
- package/{commands → dist/content/commands}/hatch3r-project-spec.md +85 -9
- package/{commands → dist/content/commands}/hatch3r-quick-change.md +115 -20
- package/{commands → dist/content/commands}/hatch3r-refactor-plan.md +82 -6
- package/dist/content/commands/hatch3r-release.md +401 -0
- package/{commands → dist/content/commands}/hatch3r-revision.md +104 -18
- package/{commands → dist/content/commands}/hatch3r-roadmap.md +94 -12
- package/{commands → dist/content/commands}/hatch3r-security-audit.md +107 -7
- package/dist/content/commands/hatch3r-slo-scaffold.md +246 -0
- package/dist/content/commands/hatch3r-spec.md +216 -0
- package/{commands → dist/content/commands}/hatch3r-test-plan.md +90 -14
- package/dist/content/commands/hatch3r-workflow.md +628 -0
- package/{commands → dist/content/commands}/revision/revision-delegation.md +8 -7
- package/{commands → dist/content/commands}/revision/revision-modes.md +49 -4
- package/{commands → dist/content/commands}/revision/revision-quality.md +12 -9
- package/dist/content/commands/shared/orchestration-frame.md +119 -0
- package/{github-agents → dist/content/github-agents}/hatch3r-docs-agent.md +22 -2
- package/dist/content/github-agents/hatch3r-lint-agent.md +66 -0
- package/{github-agents → dist/content/github-agents}/hatch3r-security-agent.md +22 -2
- package/{github-agents → dist/content/github-agents}/hatch3r-test-agent.md +22 -2
- package/{hooks → dist/content/hooks}/hatch3r-ci-failure.md +3 -3
- package/{hooks → dist/content/hooks}/hatch3r-file-save.md +4 -4
- package/{hooks → dist/content/hooks}/hatch3r-post-merge.md +1 -1
- package/{hooks → dist/content/hooks}/hatch3r-pre-commit.md +1 -1
- package/{hooks → dist/content/hooks}/hatch3r-pre-push.md +7 -7
- package/dist/content/hooks/hatch3r-review-loop-cap.md +52 -0
- package/{hooks → dist/content/hooks}/hatch3r-session-start.md +3 -3
- package/{mcp → dist/content/mcp}/mcp.json +7 -5
- package/{rules → dist/content/rules}/hatch3r-accessibility-standards.md +16 -3
- package/{rules → dist/content/rules}/hatch3r-accessibility-standards.mdc +13 -1
- package/dist/content/rules/hatch3r-agent-orchestration-detail.md +250 -0
- package/dist/content/rules/hatch3r-agent-orchestration-detail.mdc +245 -0
- package/dist/content/rules/hatch3r-agent-orchestration.md +250 -0
- package/dist/content/rules/hatch3r-agent-orchestration.mdc +245 -0
- package/{rules → dist/content/rules}/hatch3r-ai-evals.md +7 -5
- package/{rules → dist/content/rules}/hatch3r-ai-evals.mdc +5 -4
- package/{rules → dist/content/rules}/hatch3r-ai-ux-patterns.md +7 -3
- package/{rules → dist/content/rules}/hatch3r-ai-ux-patterns.mdc +4 -1
- package/dist/content/rules/hatch3r-android-patterns.md +107 -0
- package/dist/content/rules/hatch3r-android-patterns.mdc +102 -0
- package/dist/content/rules/hatch3r-anti-duplication.md +115 -0
- package/dist/content/rules/hatch3r-anti-duplication.mdc +115 -0
- package/{rules → dist/content/rules}/hatch3r-api-design.md +5 -1
- package/{rules → dist/content/rules}/hatch3r-api-design.mdc +3 -0
- package/{rules → dist/content/rules}/hatch3r-api-versioning.md +3 -1
- package/{rules → dist/content/rules}/hatch3r-api-versioning.mdc +1 -0
- package/{rules → dist/content/rules}/hatch3r-auth-patterns.md +5 -2
- package/{rules → dist/content/rules}/hatch3r-auth-patterns.mdc +2 -0
- package/{rules → dist/content/rules}/hatch3r-browser-verification.md +8 -10
- package/{rules → dist/content/rules}/hatch3r-browser-verification.mdc +8 -10
- package/dist/content/rules/hatch3r-capability-matrix.md +108 -0
- package/dist/content/rules/hatch3r-capability-matrix.mdc +108 -0
- package/{rules → dist/content/rules}/hatch3r-ci-cd.md +9 -1
- package/{rules → dist/content/rules}/hatch3r-ci-cd.mdc +7 -0
- package/dist/content/rules/hatch3r-clarification-default.md +73 -0
- package/dist/content/rules/hatch3r-clarification-default.mdc +73 -0
- package/{rules → dist/content/rules}/hatch3r-code-standards.md +23 -47
- package/{rules → dist/content/rules}/hatch3r-code-standards.mdc +22 -46
- package/{rules → dist/content/rules}/hatch3r-component-conventions.md +4 -1
- package/{rules → dist/content/rules}/hatch3r-component-conventions.mdc +3 -0
- package/{rules → dist/content/rules}/hatch3r-container-hardening.md +13 -3
- package/{rules → dist/content/rules}/hatch3r-container-hardening.mdc +10 -1
- package/{rules → dist/content/rules}/hatch3r-contract-testing.md +3 -1
- package/{rules → dist/content/rules}/hatch3r-contract-testing.mdc +1 -0
- package/dist/content/rules/hatch3r-cost-visibility.md +135 -0
- package/dist/content/rules/hatch3r-cost-visibility.mdc +135 -0
- package/dist/content/rules/hatch3r-cq-rule-frame.md +54 -0
- package/dist/content/rules/hatch3r-cq-rule-frame.mdc +49 -0
- package/{rules → dist/content/rules}/hatch3r-data-classification.md +5 -2
- package/{rules → dist/content/rules}/hatch3r-data-classification.mdc +3 -1
- package/{rules → dist/content/rules}/hatch3r-deep-context.md +14 -14
- package/{rules → dist/content/rules}/hatch3r-deep-context.mdc +13 -13
- package/{rules → dist/content/rules}/hatch3r-dependency-management.md +18 -4
- package/{rules → dist/content/rules}/hatch3r-dependency-management.mdc +16 -3
- package/{rules → dist/content/rules}/hatch3r-design-system-detection.md +4 -2
- package/{rules → dist/content/rules}/hatch3r-design-system-detection.mdc +1 -0
- package/dist/content/rules/hatch3r-dotnet-patterns.md +104 -0
- package/dist/content/rules/hatch3r-dotnet-patterns.mdc +99 -0
- package/dist/content/rules/hatch3r-edge-case-discipline.md +65 -0
- package/dist/content/rules/hatch3r-edge-case-discipline.mdc +65 -0
- package/dist/content/rules/hatch3r-enhancability.md +147 -0
- package/dist/content/rules/hatch3r-enhancability.mdc +142 -0
- package/{rules → dist/content/rules}/hatch3r-event-schema-evolution.md +3 -1
- package/{rules → dist/content/rules}/hatch3r-event-schema-evolution.mdc +1 -0
- package/dist/content/rules/hatch3r-fan-out-discipline.md +91 -0
- package/dist/content/rules/hatch3r-fan-out-discipline.mdc +91 -0
- package/{rules → dist/content/rules}/hatch3r-feature-flags.md +2 -0
- package/{rules → dist/content/rules}/hatch3r-feature-flags.mdc +2 -0
- package/dist/content/rules/hatch3r-flutter-patterns.md +88 -0
- package/dist/content/rules/hatch3r-flutter-patterns.mdc +83 -0
- package/{rules → dist/content/rules}/hatch3r-git-conventions.md +5 -2
- package/{rules → dist/content/rules}/hatch3r-git-conventions.mdc +2 -0
- package/dist/content/rules/hatch3r-go-patterns.md +98 -0
- package/dist/content/rules/hatch3r-go-patterns.mdc +93 -0
- package/{rules → dist/content/rules}/hatch3r-handoff-readiness.md +14 -4
- package/{rules → dist/content/rules}/hatch3r-handoff-readiness.mdc +13 -3
- package/{rules → dist/content/rules}/hatch3r-i18n.md +3 -1
- package/{rules → dist/content/rules}/hatch3r-i18n.mdc +2 -0
- package/dist/content/rules/hatch3r-iteration-summary.md +108 -0
- package/dist/content/rules/hatch3r-iteration-summary.mdc +108 -0
- package/dist/content/rules/hatch3r-learning-system.md +202 -0
- package/dist/content/rules/hatch3r-learning-system.mdc +202 -0
- package/dist/content/rules/hatch3r-maintainability.md +157 -0
- package/dist/content/rules/hatch3r-maintainability.mdc +152 -0
- package/{rules → dist/content/rules}/hatch3r-migrations.md +4 -2
- package/{rules → dist/content/rules}/hatch3r-migrations.mdc +1 -0
- package/{rules → dist/content/rules}/hatch3r-observability-logging.md +2 -1
- package/{rules → dist/content/rules}/hatch3r-observability-logging.mdc +1 -0
- package/{rules → dist/content/rules}/hatch3r-observability-metrics.md +2 -1
- package/{rules → dist/content/rules}/hatch3r-observability-metrics.mdc +1 -0
- package/{rules → dist/content/rules}/hatch3r-observability-tracing.md +46 -36
- package/{rules → dist/content/rules}/hatch3r-observability-tracing.mdc +45 -35
- package/{rules → dist/content/rules}/hatch3r-operability.md +3 -1
- package/{rules → dist/content/rules}/hatch3r-operability.mdc +1 -0
- package/{rules → dist/content/rules}/hatch3r-passkey-server.md +4 -2
- package/{rules → dist/content/rules}/hatch3r-passkey-server.mdc +1 -0
- package/{rules → dist/content/rules}/hatch3r-performance-budgets.md +3 -1
- package/{rules → dist/content/rules}/hatch3r-performance-budgets.mdc +3 -1
- package/dist/content/rules/hatch3r-php-laravel-patterns.md +109 -0
- package/dist/content/rules/hatch3r-php-laravel-patterns.mdc +104 -0
- package/{rules → dist/content/rules}/hatch3r-progressive-delivery.md +5 -1
- package/{rules → dist/content/rules}/hatch3r-progressive-delivery.mdc +3 -0
- package/dist/content/rules/hatch3r-proof-model.md +131 -0
- package/dist/content/rules/hatch3r-proof-model.mdc +131 -0
- package/dist/content/rules/hatch3r-python-patterns.md +70 -0
- package/dist/content/rules/hatch3r-python-patterns.mdc +65 -0
- package/dist/content/rules/hatch3r-react-native-patterns.md +83 -0
- package/dist/content/rules/hatch3r-react-native-patterns.mdc +78 -0
- package/{rules → dist/content/rules}/hatch3r-resilience-patterns.md +3 -1
- package/{rules → dist/content/rules}/hatch3r-resilience-patterns.mdc +1 -0
- package/dist/content/rules/hatch3r-reviewer-calibration.md +84 -0
- package/dist/content/rules/hatch3r-reviewer-calibration.mdc +84 -0
- package/dist/content/rules/hatch3r-right-sizing.md +68 -0
- package/dist/content/rules/hatch3r-right-sizing.mdc +66 -0
- package/dist/content/rules/hatch3r-ruby-rails-patterns.md +111 -0
- package/dist/content/rules/hatch3r-ruby-rails-patterns.mdc +106 -0
- package/dist/content/rules/hatch3r-rust-patterns.md +107 -0
- package/dist/content/rules/hatch3r-rust-patterns.mdc +102 -0
- package/dist/content/rules/hatch3r-scalability.md +137 -0
- package/dist/content/rules/hatch3r-scalability.mdc +132 -0
- package/{rules → dist/content/rules}/hatch3r-secrets-management.md +12 -2
- package/{rules → dist/content/rules}/hatch3r-secrets-management.mdc +9 -0
- package/{rules → dist/content/rules}/hatch3r-security-patterns.md +38 -35
- package/{rules → dist/content/rules}/hatch3r-security-patterns.mdc +36 -34
- package/dist/content/rules/hatch3r-security.md +97 -0
- package/dist/content/rules/hatch3r-security.mdc +92 -0
- package/dist/content/rules/hatch3r-swiftui-patterns.md +98 -0
- package/dist/content/rules/hatch3r-swiftui-patterns.mdc +93 -0
- package/dist/content/rules/hatch3r-testability.md +115 -0
- package/dist/content/rules/hatch3r-testability.mdc +110 -0
- package/{rules → dist/content/rules}/hatch3r-testing.md +6 -2
- package/{rules → dist/content/rules}/hatch3r-testing.mdc +3 -0
- package/{rules → dist/content/rules}/hatch3r-theming.md +3 -1
- package/{rules → dist/content/rules}/hatch3r-theming.mdc +2 -0
- package/dist/content/rules/hatch3r-tool-currency.md +91 -0
- package/dist/content/rules/hatch3r-tool-currency.mdc +86 -0
- package/{rules → dist/content/rules}/hatch3r-tooling-hierarchy.md +30 -32
- package/{rules → dist/content/rules}/hatch3r-tooling-hierarchy.mdc +28 -31
- package/dist/content/rules/hatch3r-typescript-patterns.md +58 -0
- package/dist/content/rules/hatch3r-typescript-patterns.mdc +53 -0
- package/{rules → dist/content/rules}/hatch3r-ux-states-and-flows.md +13 -5
- package/{rules → dist/content/rules}/hatch3r-ux-states-and-flows.mdc +10 -3
- package/{skills → dist/content/skills}/hatch3r-a11y-audit/SKILL.md +11 -9
- package/{skills → dist/content/skills}/hatch3r-a11y-audit/references/manual-audit-checklist.md +7 -5
- package/dist/content/skills/hatch3r-adhoc-orchestrate/SKILL.md +131 -0
- package/{skills → dist/content/skills}/hatch3r-ai-feature/SKILL.md +4 -6
- package/{skills → dist/content/skills}/hatch3r-api-spec/SKILL.md +27 -2
- package/{skills → dist/content/skills}/hatch3r-architecture-review/SKILL.md +5 -8
- package/{commands/hatch3r-board-groom.md → dist/content/skills/hatch3r-board-groom/SKILL.md} +16 -18
- package/{commands/hatch3r-board-init.md → dist/content/skills/hatch3r-board-init/SKILL.md} +34 -31
- package/{commands/hatch3r-board-refresh.md → dist/content/skills/hatch3r-board-refresh/SKILL.md} +17 -19
- package/{commands/hatch3r-board-shared.md → dist/content/skills/hatch3r-board-shared/SKILL.md} +45 -15
- package/dist/content/skills/hatch3r-browser-verify/SKILL.md +307 -0
- package/{skills → dist/content/skills}/hatch3r-bug-fix/SKILL.md +16 -3
- package/{skills → dist/content/skills}/hatch3r-ci-pipeline/SKILL.md +17 -7
- package/{skills → dist/content/skills}/hatch3r-cli-fd/SKILL.md +34 -2
- package/{skills → dist/content/skills}/hatch3r-cli-fzf/SKILL.md +34 -2
- package/dist/content/skills/hatch3r-cli-gh/SKILL.md +139 -0
- package/{skills → dist/content/skills}/hatch3r-cli-jq/SKILL.md +43 -9
- package/{skills → dist/content/skills}/hatch3r-cli-ripgrep/SKILL.md +36 -4
- package/dist/content/skills/hatch3r-cli-toolbox/SKILL.md +376 -0
- package/dist/content/skills/hatch3r-containerize/SKILL.md +157 -0
- package/{skills → dist/content/skills}/hatch3r-context-health/SKILL.md +27 -9
- package/dist/content/skills/hatch3r-cost-tracking/SKILL.md +164 -0
- package/{skills → dist/content/skills}/hatch3r-customize/SKILL.md +9 -13
- package/{skills → dist/content/skills}/hatch3r-dep-audit/SKILL.md +29 -9
- package/{skills → dist/content/skills}/hatch3r-design-system-detect/SKILL.md +4 -8
- package/dist/content/skills/hatch3r-docs-writing/SKILL.md +159 -0
- package/dist/content/skills/hatch3r-enhancability-verify/SKILL.md +152 -0
- package/{skills → dist/content/skills}/hatch3r-feature/SKILL.md +54 -4
- package/dist/content/skills/hatch3r-feedback/SKILL.md +103 -0
- package/{skills → dist/content/skills}/hatch3r-gh-agentic-workflows/SKILL.md +14 -12
- package/{skills → dist/content/skills}/hatch3r-gh-agentic-workflows/references/azure-devops.md +2 -2
- package/{skills → dist/content/skills}/hatch3r-gh-agentic-workflows/references/gitlab-ci.md +1 -1
- package/{skills → dist/content/skills}/hatch3r-handoff-prepare/SKILL.md +12 -15
- package/{skills → dist/content/skills}/hatch3r-handoff-resume/SKILL.md +5 -8
- package/{commands/hatch3r-hooks.md → dist/content/skills/hatch3r-hooks/SKILL.md} +59 -148
- package/dist/content/skills/hatch3r-incident-response/SKILL.md +174 -0
- package/{skills → dist/content/skills}/hatch3r-issue-workflow/SKILL.md +15 -4
- package/dist/content/skills/hatch3r-learn/SKILL.md +317 -0
- package/{skills → dist/content/skills}/hatch3r-logical-refactor/SKILL.md +6 -7
- package/dist/content/skills/hatch3r-maintainability-verify/SKILL.md +146 -0
- package/{skills → dist/content/skills}/hatch3r-migration/SKILL.md +9 -8
- package/{skills → dist/content/skills}/hatch3r-observability-verify/SKILL.md +17 -13
- package/{skills → dist/content/skills}/hatch3r-perf-audit/SKILL.md +14 -10
- package/{skills → dist/content/skills}/hatch3r-pr-creation/SKILL.md +8 -11
- package/{skills → dist/content/skills}/hatch3r-qa-validation/SKILL.md +8 -7
- package/dist/content/skills/hatch3r-recipe/SKILL.md +174 -0
- package/{skills → dist/content/skills}/hatch3r-refactor/SKILL.md +7 -8
- package/dist/content/skills/hatch3r-release/SKILL.md +265 -0
- package/{skills → dist/content/skills}/hatch3r-reliability-verify/SKILL.md +9 -5
- package/{commands/hatch3r-report.md → dist/content/skills/hatch3r-report/SKILL.md} +21 -18
- package/dist/content/skills/hatch3r-scalability-verify/SKILL.md +145 -0
- package/dist/content/skills/hatch3r-security-verify/SKILL.md +144 -0
- package/dist/content/skills/hatch3r-team-convention-author/SKILL.md +126 -0
- package/dist/content/skills/hatch3r-testability-verify/SKILL.md +147 -0
- package/{skills → dist/content/skills}/hatch3r-ui-ux-verify/SKILL.md +20 -12
- package/{skills → dist/content/skills}/hatch3r-visual-refactor/SKILL.md +12 -8
- package/package.json +53 -46
- package/agents/hatch3r-a11y-auditor.md +0 -159
- package/agents/hatch3r-dependency-auditor.md +0 -219
- package/agents/hatch3r-implementer.md +0 -278
- package/agents/hatch3r-learnings-loader.md +0 -343
- package/agents/hatch3r-perf-profiler.md +0 -166
- package/agents/hatch3r-reviewer.md +0 -314
- package/agents/hatch3r-security-auditor.md +0 -180
- package/agents/hatch3r-test-writer.md +0 -171
- package/agents/shared/user-question-protocol.md +0 -95
- package/commands/hatch3r-agent-customize.md +0 -201
- package/commands/hatch3r-command-customize.md +0 -113
- package/commands/hatch3r-context-health.md +0 -147
- package/commands/hatch3r-cost-tracking.md +0 -163
- package/commands/hatch3r-dep-audit.md +0 -188
- package/commands/hatch3r-handoff.md +0 -133
- package/commands/hatch3r-learn.md +0 -312
- package/commands/hatch3r-recipe.md +0 -194
- package/commands/hatch3r-release.md +0 -350
- package/commands/hatch3r-rule-customize.md +0 -133
- package/commands/hatch3r-skill-customize.md +0 -112
- package/commands/hatch3r-workflow.md +0 -504
- package/dist/cli/index.d.ts +0 -2
- package/dist/cli/index.js.map +0 -1
- package/github-agents/hatch3r-lint-agent.md +0 -46
- package/prompts/hatch3r-bug-triage.md +0 -158
- package/prompts/hatch3r-code-review.md +0 -134
- package/prompts/hatch3r-pr-description.md +0 -176
- package/rules/hatch3r-agent-orchestration-detail.md +0 -211
- package/rules/hatch3r-agent-orchestration-detail.mdc +0 -206
- package/rules/hatch3r-agent-orchestration.md +0 -376
- package/rules/hatch3r-agent-orchestration.mdc +0 -371
- package/rules/hatch3r-iteration-summary.md +0 -90
- package/rules/hatch3r-iteration-summary.mdc +0 -85
- package/rules/hatch3r-learning-consult.md +0 -42
- package/rules/hatch3r-learning-consult.mdc +0 -38
- package/rules/hatch3r-observability-tracing-detail.md +0 -20
- package/rules/hatch3r-observability-tracing-detail.mdc +0 -14
- package/rules/hatch3r-observability.md +0 -20
- package/rules/hatch3r-observability.mdc +0 -14
- package/skills/hatch3r-agent-customize/SKILL.md +0 -23
- package/skills/hatch3r-cli-aichat/SKILL.md +0 -84
- package/skills/hatch3r-cli-ast-grep/SKILL.md +0 -85
- package/skills/hatch3r-cli-az-devops/SKILL.md +0 -89
- package/skills/hatch3r-cli-bat/SKILL.md +0 -85
- package/skills/hatch3r-cli-comby/SKILL.md +0 -85
- package/skills/hatch3r-cli-csvkit/SKILL.md +0 -84
- package/skills/hatch3r-cli-delta/SKILL.md +0 -86
- package/skills/hatch3r-cli-difftastic/SKILL.md +0 -84
- package/skills/hatch3r-cli-docker/SKILL.md +0 -89
- package/skills/hatch3r-cli-duckdb/SKILL.md +0 -84
- package/skills/hatch3r-cli-gh/SKILL.md +0 -90
- package/skills/hatch3r-cli-glab/SKILL.md +0 -89
- package/skills/hatch3r-cli-lazygit/SKILL.md +0 -78
- package/skills/hatch3r-cli-llm/SKILL.md +0 -84
- package/skills/hatch3r-cli-miller/SKILL.md +0 -84
- package/skills/hatch3r-cli-mods/SKILL.md +0 -84
- package/skills/hatch3r-cli-overview/SKILL.md +0 -60
- package/skills/hatch3r-cli-playwright/SKILL.md +0 -89
- package/skills/hatch3r-cli-podman/SKILL.md +0 -84
- package/skills/hatch3r-cli-qsv/SKILL.md +0 -91
- package/skills/hatch3r-cli-rtk/SKILL.md +0 -91
- package/skills/hatch3r-cli-sd/SKILL.md +0 -85
- package/skills/hatch3r-cli-stagehand/SKILL.md +0 -111
- package/skills/hatch3r-cli-taplo/SKILL.md +0 -84
- package/skills/hatch3r-cli-yq/SKILL.md +0 -85
- package/skills/hatch3r-cli-zstd/SKILL.md +0 -85
- package/skills/hatch3r-command-customize/SKILL.md +0 -23
- package/skills/hatch3r-cost-tracking/SKILL.md +0 -92
- package/skills/hatch3r-incident-response/SKILL.md +0 -115
- package/skills/hatch3r-recipe/SKILL.md +0 -91
- package/skills/hatch3r-release/SKILL.md +0 -120
- package/skills/hatch3r-rule-customize/SKILL.md +0 -23
- package/skills/hatch3r-skill-customize/SKILL.md +0 -23
- /package/{agents → dist/content/agents}/modes/architecture.md +0 -0
- /package/{agents → dist/content/agents}/modes/boundary-analysis.md +0 -0
- /package/{agents → dist/content/agents}/modes/codebase-impact.md +0 -0
- /package/{agents → dist/content/agents}/modes/complexity-risk.md +0 -0
- /package/{agents → dist/content/agents}/modes/coverage-analysis.md +0 -0
- /package/{agents → dist/content/agents}/modes/current-state.md +0 -0
- /package/{agents → dist/content/agents}/modes/feature-design.md +0 -0
- /package/{agents → dist/content/agents}/modes/impact-analysis.md +0 -0
- /package/{agents → dist/content/agents}/modes/library-docs.md +0 -0
- /package/{agents → dist/content/agents}/modes/migration-path.md +0 -0
- /package/{agents → dist/content/agents}/modes/prior-art.md +0 -0
- /package/{agents → dist/content/agents}/modes/refactoring-strategy.md +0 -0
- /package/{agents → dist/content/agents}/modes/regression.md +0 -0
- /package/{agents → dist/content/agents}/modes/risk-assessment.md +0 -0
- /package/{agents → dist/content/agents}/modes/risk-prioritization.md +0 -0
- /package/{agents → dist/content/agents}/modes/root-cause.md +0 -0
- /package/{agents → dist/content/agents}/modes/similar-implementation.md +0 -0
- /package/{agents → dist/content/agents}/modes/symptom-trace.md +0 -0
- /package/{agents → dist/content/agents}/modes/test-pattern.md +0 -0
- /package/{commands → dist/content/commands}/board/shared-board-overview.md +0 -0
- /package/{commands → dist/content/commands}/revision/revision-board-integration.md +0 -0
- /package/{skills → dist/content/skills}/hatch3r-issue-workflow/references/delegation-patterns.md +0 -0
|
@@ -1,171 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
id: hatch3r-test-writer
|
|
3
|
-
type: agent
|
|
4
|
-
description: QA engineer who writes deterministic, isolated tests. Covers unit, integration, E2E, security rules, and contract tests.
|
|
5
|
-
model: standard
|
|
6
|
-
protected: true
|
|
7
|
-
tags: [core, review]
|
|
8
|
-
quality_charter: agents/shared/quality-charter.md
|
|
9
|
-
efficiency_patterns: agents/shared/efficiency-patterns.md
|
|
10
|
-
efficiency_tier: standard
|
|
11
|
-
cache_friendly: true
|
|
12
|
-
parallel_tool_default: true
|
|
13
|
-
---
|
|
14
|
-
You are an expert QA engineer for the project.
|
|
15
|
-
|
|
16
|
-
## §0 Detect Ambiguity (P8 B1)
|
|
17
|
-
|
|
18
|
-
Before any action, scan the brief for unresolved questions in scope, acceptance criteria, irreversibility, or constraint conflicts (test layer, target coverage delta, mock policy). If any are found, ask the user via the platform-native question tool per `agents/shared/user-question-protocol.md` — do not proceed under silent assumption. This is the default path, not an exception. Acceptable to proceed without asking ONLY when scope is single-file, single-concern, and the brief alone is testable.
|
|
19
|
-
|
|
20
|
-
## Your Role
|
|
21
|
-
|
|
22
|
-
- You write unit tests, integration tests, contract tests, and E2E tests.
|
|
23
|
-
- You understand the domain model, event model, data model, and security rules.
|
|
24
|
-
- You focus on correctness, edge cases, and regression coverage.
|
|
25
|
-
- Your output: deterministic, isolated, clearly named tests that catch real bugs.
|
|
26
|
-
|
|
27
|
-
## Project Knowledge
|
|
28
|
-
|
|
29
|
-
- **Tech Stack:** Vitest (unit + integration), Playwright (E2E), database emulator (rules tests) — adapt to project stack
|
|
30
|
-
- **File Structure:**
|
|
31
|
-
- `tests/unit/` -- Unit tests
|
|
32
|
-
- `tests/integration/` -- Integration tests
|
|
33
|
-
- `tests/e2e/` -- E2E tests (Playwright)
|
|
34
|
-
- `tests/rules/` -- Security rules tests (if applicable)
|
|
35
|
-
- `tests/fixtures/` -- Test fixtures and factories
|
|
36
|
-
- **Specs:** Project documentation — Read for expected behavior, invariants, and edge cases
|
|
37
|
-
|
|
38
|
-
## Test Standards
|
|
39
|
-
|
|
40
|
-
Follow the full testing standards defined in `.agents/rules/hatch3r-testing.md` (coverage thresholds, mocking strategy, property-based testing, flaky test handling, test data management). Key principles enforced by this agent: deterministic (fake timers), isolated (own state), fast (unit < 50ms, integration < 2s), clearly named, regression tests for every bug fix, no network calls in unit tests, no `any` or `.skip` without a linked issue.
|
|
41
|
-
|
|
42
|
-
## Commands
|
|
43
|
-
|
|
44
|
-
- Run all tests (e.g., `npm run test`)
|
|
45
|
-
- Run unit only (e.g., `npm run test:unit`)
|
|
46
|
-
- Run integration only (e.g., `npm run test:integration`)
|
|
47
|
-
- Run E2E (e.g., `npm run test:e2e`)
|
|
48
|
-
- Run security rules tests (emulator required if applicable)
|
|
49
|
-
|
|
50
|
-
## Browser-Based E2E Verification
|
|
51
|
-
|
|
52
|
-
When writing or validating E2E tests for user-facing features, use browser automation MCP to interactively verify test scenarios:
|
|
53
|
-
|
|
54
|
-
- Start the dev server if not already running.
|
|
55
|
-
- Navigate to the pages under test using the browser MCP.
|
|
56
|
-
- Walk through test scenarios manually in the browser to confirm expected behavior before or after writing automated E2E tests.
|
|
57
|
-
- Capture screenshots as evidence of test scenario outcomes.
|
|
58
|
-
- Use browser interactions (click, type, navigate) to simulate real user flows.
|
|
59
|
-
- Check the browser console for errors or warnings during verification.
|
|
60
|
-
|
|
61
|
-
This interactive verification complements automated E2E test suites — use it to validate test assumptions and catch issues that automated assertions might miss.
|
|
62
|
-
|
|
63
|
-
## External Knowledge
|
|
64
|
-
|
|
65
|
-
Follow the shared protocol in `agents/shared/external-knowledge.md` (tooling hierarchy, platform CLI, Context7 MCP, web research).
|
|
66
|
-
|
|
67
|
-
**Context7 focus for this agent:**
|
|
68
|
-
- Testing framework APIs (Vitest, Jest, Playwright, Cypress, Testing Library), assertion libraries, and mocking utilities
|
|
69
|
-
- Library-recommended testing patterns (React Testing Library queries, Playwright locators, Supertest assertion chains)
|
|
70
|
-
|
|
71
|
-
**Web research focus for this agent:**
|
|
72
|
-
- Testing best practices for specific scenarios (race conditions, WebSocket handlers, file uploads, streaming responses)
|
|
73
|
-
- Security testing techniques (injection test patterns, auth bypass test cases) and known flaky test patterns
|
|
74
|
-
|
|
75
|
-
## Confidence Expression
|
|
76
|
-
|
|
77
|
-
Rate every recommendation, coverage assessment, and test design decision as **high**, **medium**, or **low** confidence per the quality charter (`agents/shared/quality-charter.md`):
|
|
78
|
-
|
|
79
|
-
- **High:** Verified against current code — you read the source, traced the logic, and confirmed the test covers the actual behavior.
|
|
80
|
-
- **Medium:** Based on established patterns and conventions but not fully verified against the specific code path. Likely correct but could have edge cases.
|
|
81
|
-
- **Low:** Best professional judgment based on general principles. Recommend human review before relying on this coverage assessment.
|
|
82
|
-
|
|
83
|
-
Include confidence in the output: the **Status** line and any coverage gap assessments should state their confidence level. When proposing test strategies for complex or unfamiliar code, explicitly note lower confidence.
|
|
84
|
-
|
|
85
|
-
## Output Format
|
|
86
|
-
|
|
87
|
-
```
|
|
88
|
-
## Test Writing Result: {scope}
|
|
89
|
-
|
|
90
|
-
**Status:** COMPLETE | PARTIAL | BLOCKED
|
|
91
|
-
|
|
92
|
-
**Tests Written:**
|
|
93
|
-
|
|
94
|
-
| File | Type | Tests | Covers |
|
|
95
|
-
|------|------|-------|--------|
|
|
96
|
-
| tests/unit/auth.test.ts | Unit | 12 | Auth service login/logout/refresh |
|
|
97
|
-
|
|
98
|
-
**Coverage Delta:**
|
|
99
|
-
- Statements: {before}% → {after}% ({+n}%)
|
|
100
|
-
- Branches: {before}% → {after}% ({+n}%)
|
|
101
|
-
- Functions: {before}% → {after}% ({+n}%)
|
|
102
|
-
|
|
103
|
-
**Test Performance:**
|
|
104
|
-
- Unit tests: {avg}ms (target: <50ms)
|
|
105
|
-
- Integration tests: {avg}ms (target: <2s)
|
|
106
|
-
|
|
107
|
-
**Edge Cases Covered:**
|
|
108
|
-
- {list of edge cases tested}
|
|
109
|
-
|
|
110
|
-
**Verification:**
|
|
111
|
-
- All tests passing: YES | NO
|
|
112
|
-
- No flaky tests: YES | NO
|
|
113
|
-
|
|
114
|
-
**Issues encountered:**
|
|
115
|
-
- (missing test infrastructure, untestable patterns, etc.)
|
|
116
|
-
|
|
117
|
-
**Notes:**
|
|
118
|
-
- (suggested refactors to improve testability, coverage gaps remaining)
|
|
119
|
-
```
|
|
120
|
-
|
|
121
|
-
## Review Loop Awareness
|
|
122
|
-
|
|
123
|
-
This agent runs in Phase 4, after the Phase 3 review loop has reached a clean verdict or terminated at max iterations. If the review loop exited with unresolved findings, the orchestrator may still invoke this agent for test coverage. Be aware that code may contain known issues flagged during review -- focus on writing tests for the implemented behavior, not on fixing code (that is the fixer agent's responsibility). If new test failures reveal issues not caught in review, report them in the Issues Encountered section.
|
|
124
|
-
|
|
125
|
-
## Error Path Testing Requirements
|
|
126
|
-
|
|
127
|
-
When writing tests for new or modified code, cover error paths proportionally to happy paths:
|
|
128
|
-
|
|
129
|
-
- **Every function that can fail** (returns Result, throws, calls async operations) must have at least one test for the failure case.
|
|
130
|
-
- **Error messages must be tested.** Verify that error messages contain actionable information (not just "something went wrong"). Test that error codes, status codes, and structured error fields are correct.
|
|
131
|
-
- **Boundary conditions.** Test null/undefined inputs, empty collections, maximum-length inputs, and type boundary values (0, -1, MAX_SAFE_INTEGER) for functions that accept numeric or string parameters.
|
|
132
|
-
- **Async error handling.** For async functions, test both rejected promises and thrown errors within async flows. Verify that errors propagate to callers with the expected error type and message.
|
|
133
|
-
|
|
134
|
-
## Boundaries
|
|
135
|
-
|
|
136
|
-
- **Always:** Write tests to `tests/`, run tests before submitting, verify edge cases, check invariants from specs, use the platform CLI for issue reads
|
|
137
|
-
- **Ask first:** Before modifying existing test infrastructure or adding test dependencies
|
|
138
|
-
- **Never:** Modify source code in `src/`, remove failing tests to make the suite pass, skip tests without a linked issue
|
|
139
|
-
|
|
140
|
-
## Example
|
|
141
|
-
|
|
142
|
-
**Invocation:** Write tests for the new `parseManifest` function in `src/manifest/parser.ts`.
|
|
143
|
-
|
|
144
|
-
**Output:**
|
|
145
|
-
|
|
146
|
-
```
|
|
147
|
-
## Test Writing Result: parseManifest
|
|
148
|
-
|
|
149
|
-
**Status:** COMPLETE
|
|
150
|
-
|
|
151
|
-
**Tests Written:**
|
|
152
|
-
|
|
153
|
-
| File | Type | Tests | Covers |
|
|
154
|
-
|------|------|-------|--------|
|
|
155
|
-
| tests/unit/manifest/parser.test.ts | Unit | 11 | Valid manifest, missing fields, invalid types, empty input, extra fields |
|
|
156
|
-
|
|
157
|
-
**Coverage Delta:**
|
|
158
|
-
- Statements: 72% → 81% (+9%)
|
|
159
|
-
- Branches: 65% → 78% (+13%)
|
|
160
|
-
|
|
161
|
-
**Edge Cases Covered:**
|
|
162
|
-
- Empty string input returns error result
|
|
163
|
-
- Missing required `id` field returns validation error with path
|
|
164
|
-
- Extra unknown fields are stripped (strict mode)
|
|
165
|
-
- Unicode characters in description field preserved
|
|
166
|
-
- Deeply nested objects rejected with max-depth error
|
|
167
|
-
|
|
168
|
-
**Verification:**
|
|
169
|
-
- All tests passing: YES
|
|
170
|
-
- No flaky tests: YES
|
|
171
|
-
```
|
|
@@ -1,95 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
id: shared-user-question-protocol
|
|
3
|
-
type: reference
|
|
4
|
-
description: Protocol for how hatch3r agents and commands ask the user clarifying questions — when to ask, native-tool preference, and a plain-text fallback shape.
|
|
5
|
-
tags: [shared, ux, p1, p4]
|
|
6
|
-
cache_friendly: true
|
|
7
|
-
---
|
|
8
|
-
|
|
9
|
-
## Purpose
|
|
10
|
-
|
|
11
|
-
This protocol defines how hatch3r agents and commands surface clarifying or triage questions to the user across the 15 supported AI coding platforms. It is the single source of truth for the *how* of asking; the *whether* is governed by [quality-charter §3 "Question Unclear Requirements"](./quality-charter.md) and §8 "Escalate Ambiguity Early". Files that reference this protocol: the requirements-elicitation mode (`agents/modes/requirements-elicitation.md`), the five ASK-checkpoint commands, and the four ask-prone agents — researcher, fixer, architect, implementer.
|
|
12
|
-
|
|
13
|
-
## When To Ask
|
|
14
|
-
|
|
15
|
-
- **Ambiguous requirement** — the request maps to two or more reasonable interpretations that produce different code.
|
|
16
|
-
- **Irreversible decision** — deleting data, renaming a public API, dropping a column, force-pushing a branch.
|
|
17
|
-
- **Branching path** — two or more viable approaches with materially different cost, scope, or risk.
|
|
18
|
-
- **Conflicting constraints** — requirements that cannot all hold (e.g., "no new dependencies" and "use library X").
|
|
19
|
-
- **Missing acceptance criteria** — no testable definition of done for the requested change.
|
|
20
|
-
|
|
21
|
-
## When NOT To Ask
|
|
22
|
-
|
|
23
|
-
- The user already decided scope in this turn or an earlier turn of the same session.
|
|
24
|
-
- You are in free-text discussion, planning, or a status update — questions belong inside actionable workflows.
|
|
25
|
-
- The answer is verifiable by reading code, running a test, or grepping the repo — verify first, ask only if verification fails.
|
|
26
|
-
- The choice is reversible, low-stakes, and the safer default is obvious — pick the default and note it.
|
|
27
|
-
|
|
28
|
-
## How To Ask
|
|
29
|
-
|
|
30
|
-
1. Check whether your target platform exposes a native question or triage tool (see Platform-Native Tool below).
|
|
31
|
-
2. If yes, use the native tool — it produces better UX than free-text replies and is structured for the host runtime.
|
|
32
|
-
3. If no native tool exists on this platform, use the Plain-Text Fallback Template.
|
|
33
|
-
4. Ask at most one question per turn. Bundle related sub-questions into a single multiple-choice prompt rather than firing multiple turns.
|
|
34
|
-
|
|
35
|
-
## Platform-Native Tool
|
|
36
|
-
|
|
37
|
-
The marker below is replaced at canonical-write time with the enumeration table generated from `src/pipeline/adapterToolTranslator.ts::ASK_USER_TOOLS`. Look up your runtime platform and follow its row. If your platform's row reads "No documented native tool", use the Plain-Text Fallback Template defined in the next section.
|
|
38
|
-
|
|
39
|
-
<!-- HATCH3R:PLATFORM-TOOL -->
|
|
40
|
-
|
|
41
|
-
When viewing this file in the source repo (pre-generation), the marker is unsubstituted — refer to the adapter map in `src/pipeline/adapterToolTranslator.ts` for the same mappings.
|
|
42
|
-
|
|
43
|
-
## Plain-Text Fallback Template
|
|
44
|
-
|
|
45
|
-
Use this exact shape when no native tool is available:
|
|
46
|
-
|
|
47
|
-
```
|
|
48
|
-
**Question:** <one-sentence question stating the choice>
|
|
49
|
-
|
|
50
|
-
1. <Option A> — <one-line rationale or trade-off>
|
|
51
|
-
2. <Option B> — <one-line rationale or trade-off>
|
|
52
|
-
3. <Option C> — <one-line rationale or trade-off>
|
|
53
|
-
|
|
54
|
-
Default if no response: <option number, e.g., 2>
|
|
55
|
-
```
|
|
56
|
-
|
|
57
|
-
Rules for the template:
|
|
58
|
-
|
|
59
|
-
- Two to four numbered options. One option is too few; five or more signals you have not narrowed the design.
|
|
60
|
-
- Each option carries a one-line trade-off so the user can pick without re-deriving the problem.
|
|
61
|
-
- The default-if-no-response line is mandatory — it removes the deadlock when the user is away or replies "you decide".
|
|
62
|
-
- The default option is the safest reversible choice, not the most ambitious one.
|
|
63
|
-
|
|
64
|
-
## Examples
|
|
65
|
-
|
|
66
|
-
**Example 1 — Ambiguous requirement.** Request: "Add caching to the user profile endpoint."
|
|
67
|
-
|
|
68
|
-
```
|
|
69
|
-
**Question:** Which cache scope matches your needs for the profile endpoint?
|
|
70
|
-
|
|
71
|
-
1. Per-user, 60s TTL — fastest response, stale data tolerated up to 60s.
|
|
72
|
-
2. Per-user, write-through invalidation — fresh data, +1 cache write per profile update.
|
|
73
|
-
3. Edge cache only — no app changes, but TTL is fixed by the CDN config.
|
|
74
|
-
|
|
75
|
-
Default if no response: 2
|
|
76
|
-
```
|
|
77
|
-
|
|
78
|
-
**Example 2 — Branching path.** Request: "Migrate the build to Vite."
|
|
79
|
-
|
|
80
|
-
```
|
|
81
|
-
**Question:** Should the Vite migration land in one PR or staged behind a feature flag?
|
|
82
|
-
|
|
83
|
-
1. Single PR — shorter total time, larger blast radius if a regression ships.
|
|
84
|
-
2. Staged with VITE_BUILD flag — two PRs, lets you A/B locally before flipping.
|
|
85
|
-
|
|
86
|
-
Default if no response: 2
|
|
87
|
-
```
|
|
88
|
-
|
|
89
|
-
## Anti-Patterns
|
|
90
|
-
|
|
91
|
-
- **Multi-question barrage** — asking five questions in one turn. Ask the highest-leverage one first; the answer often collapses the rest.
|
|
92
|
-
- **Options-free questions** — "What should I do?" forces the user to design the prompt. Always supply 2–4 candidate options with trade-offs.
|
|
93
|
-
- **Silent assumption** — proceeding when ambiguity is real. Apply quality-charter §8: log the ambiguity in structured output even if you decide to proceed under a default.
|
|
94
|
-
- **Echo-as-question** — restating the user's request back as a question ("So you want me to add caching?"). Confirm only when you have a specific decision point with options to offer.
|
|
95
|
-
- **Inflated default** — choosing the most disruptive option as the no-response default. Defaults must be the reversible, lowest-blast-radius choice.
|
|
@@ -1,201 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
id: hatch3r-agent-customize
|
|
3
|
-
type: command
|
|
4
|
-
orchestrator: false
|
|
5
|
-
description: Override agent persona, model selection, preset enablement, and repo-file apply-scope via YAML plus markdown injection under .hatch3r/agents/
|
|
6
|
-
tags: [customize]
|
|
7
|
-
quality_charter: agents/shared/quality-charter.md
|
|
8
|
-
efficiency_patterns: agents/shared/efficiency-patterns.md
|
|
9
|
-
cache_friendly: true
|
|
10
|
-
parallel_tool_default: true
|
|
11
|
-
---
|
|
12
|
-
|
|
13
|
-
## §0 Detect Ambiguity (P8 B1)
|
|
14
|
-
|
|
15
|
-
Before any action, scan the user's request and provided context for unresolved questions in scope, acceptance criteria, irreversibility, or constraint conflicts (contradictory inputs, missing target, unknown convention). If any are found, ask the user via the platform-native question tool per `agents/shared/user-question-protocol.md` — do not proceed under silent assumption. This is the default path, not an exception. Acceptable to proceed without asking ONLY when scope is single-target, single-concern, and the brief alone is testable. Any residual ambiguity discovered mid-workflow invokes the same protocol.
|
|
16
|
-
|
|
17
|
-
## Agent Pipeline
|
|
18
|
-
|
|
19
|
-
This command runs as a single orchestrator without sub-agent delegation. Customization file management is performed inline.
|
|
20
|
-
|
|
21
|
-
# Agent Customization — Per-Agent Configuration
|
|
22
|
-
|
|
23
|
-
Customize individual agent behavior for project-specific needs via `.hatch3r/agents/` configuration files. Supports structured YAML overrides and free-form markdown instruction injection, all propagated to every adapter output on sync.
|
|
24
|
-
|
|
25
|
-
---
|
|
26
|
-
|
|
27
|
-
## Customization File Locations
|
|
28
|
-
|
|
29
|
-
Each agent supports two optional customization files:
|
|
30
|
-
|
|
31
|
-
```
|
|
32
|
-
.hatch3r/agents/{agent-id}.customize.yaml # structured overrides
|
|
33
|
-
.hatch3r/agents/{agent-id}.customize.md # free-form markdown instructions
|
|
34
|
-
```
|
|
35
|
-
|
|
36
|
-
Both files are optional and can be used independently or together.
|
|
37
|
-
|
|
38
|
-
## YAML Customization Schema
|
|
39
|
-
|
|
40
|
-
```yaml
|
|
41
|
-
agent: hatch3r-reviewer
|
|
42
|
-
model: claude-opus-4-6
|
|
43
|
-
description: "Security-focused code reviewer for healthcare platform"
|
|
44
|
-
enabled: true
|
|
45
|
-
```
|
|
46
|
-
|
|
47
|
-
### Fields
|
|
48
|
-
|
|
49
|
-
| Field | Type | Default | Description |
|
|
50
|
-
|-------|------|---------|-------------|
|
|
51
|
-
| `model` | string | (from canonical/manifest) | Override the agent's model preference |
|
|
52
|
-
| `description` | string | (from canonical) | Override the agent's description in adapter frontmatter |
|
|
53
|
-
| `enabled` | boolean | `true` | Set to `false` to exclude this agent from adapter output generation |
|
|
54
|
-
|
|
55
|
-
### Model Resolution Order
|
|
56
|
-
|
|
57
|
-
Model is resolved with the following priority (highest wins):
|
|
58
|
-
|
|
59
|
-
1. `.hatch3r/agents/{id}.customize.yaml` → `model`
|
|
60
|
-
2. `hatch.json` → `models.agents.{id}`
|
|
61
|
-
3. Canonical agent frontmatter → `model`
|
|
62
|
-
4. `hatch.json` → `models.default`
|
|
63
|
-
|
|
64
|
-
Model aliases are supported: `opus`, `sonnet`, `haiku`, `codex`, `gemini-pro`, etc.
|
|
65
|
-
|
|
66
|
-
## Markdown Customization
|
|
67
|
-
|
|
68
|
-
Create `.hatch3r/agents/{agent-id}.customize.md` with free-form markdown to inject project-specific instructions into the agent's managed block. This content is appended after the canonical agent definition under a `## Project Customizations` header.
|
|
69
|
-
|
|
70
|
-
### Example
|
|
71
|
-
|
|
72
|
-
**File:** `.hatch3r/agents/hatch3r-reviewer.customize.md`
|
|
73
|
-
|
|
74
|
-
```markdown
|
|
75
|
-
## Domain-Specific Review Rules
|
|
76
|
-
|
|
77
|
-
This is a healthcare SaaS platform handling PHI data.
|
|
78
|
-
All data must be encrypted at rest and in transit. HIPAA compliance is mandatory.
|
|
79
|
-
|
|
80
|
-
### Additional Review Checklist
|
|
81
|
-
|
|
82
|
-
- Verify no PHI in logs, error messages, or client responses
|
|
83
|
-
- All data stores use AES-256 encryption
|
|
84
|
-
- All data access is logged with user ID and timestamp
|
|
85
|
-
|
|
86
|
-
### Architecture Context
|
|
87
|
-
|
|
88
|
-
Microservices architecture with event sourcing.
|
|
89
|
-
Services communicate via RabbitMQ.
|
|
90
|
-
PostgreSQL for persistence, Redis for caching.
|
|
91
|
-
```
|
|
92
|
-
|
|
93
|
-
### How It Works
|
|
94
|
-
|
|
95
|
-
1. During `hatch3r sync` or `hatch3r init`, adapters read the `.customize.md` file
|
|
96
|
-
2. The markdown content is appended **inside** the managed block, after the canonical agent content
|
|
97
|
-
3. All adapter outputs (Cursor, Claude, Copilot, etc.) receive the customization automatically
|
|
98
|
-
4. Changes to `.customize.md` propagate on every sync — edit once, apply everywhere
|
|
99
|
-
|
|
100
|
-
### Resulting Adapter Output
|
|
101
|
-
|
|
102
|
-
The adapter wraps the result in hatch3r-managed block comments (literal markers omitted here so this file itself stays valid):
|
|
103
|
-
|
|
104
|
-
```markdown
|
|
105
|
-
[managed-block-start]
|
|
106
|
-
{canonical agent content}
|
|
107
|
-
|
|
108
|
-
---
|
|
109
|
-
|
|
110
|
-
## Project Customizations
|
|
111
|
-
|
|
112
|
-
{content from .customize.md}
|
|
113
|
-
[managed-block-end]
|
|
114
|
-
```
|
|
115
|
-
|
|
116
|
-
Replace `[managed-block-start]` / `[managed-block-end]` with the actual `<!-- HATCH3R\:BEGIN -->` / `<!-- HATCH3R\:END -->` markers in real adapter output.
|
|
117
|
-
|
|
118
|
-
Content placed **outside** the managed block markers by directly editing adapter output files is always preserved.
|
|
119
|
-
|
|
120
|
-
## Per-Agent Customization Examples
|
|
121
|
-
|
|
122
|
-
| Agent | Common Customizations |
|
|
123
|
-
|-------|----------------------|
|
|
124
|
-
| reviewer | Domain review checklists, severity focus, architecture context |
|
|
125
|
-
| security-auditor | Compliance requirements (HIPAA, SOC2, PCI), custom invariants |
|
|
126
|
-
| test-writer | Coverage targets, required test types, framework preferences |
|
|
127
|
-
| implementer | Architecture constraints, coding patterns, dependency restrictions |
|
|
128
|
-
| a11y-auditor | Additional WCAG criteria, custom accessibility requirements |
|
|
129
|
-
| perf-profiler | Custom performance budgets, monitoring tool guidance |
|
|
130
|
-
| dependency-auditor | Approved/denied dependency lists, update policies |
|
|
131
|
-
| docs-writer | Documentation templates, terminology glossary |
|
|
132
|
-
| lint-fixer | Custom lint rules, auto-fix preferences |
|
|
133
|
-
| ci-watcher | Custom CI job knowledge, failure pattern library |
|
|
134
|
-
|
|
135
|
-
## Disabling an Agent
|
|
136
|
-
|
|
137
|
-
To exclude an agent from adapter output without deleting its canonical file:
|
|
138
|
-
|
|
139
|
-
```yaml
|
|
140
|
-
# .hatch3r/agents/hatch3r-a11y-auditor.customize.yaml
|
|
141
|
-
enabled: false
|
|
142
|
-
```
|
|
143
|
-
|
|
144
|
-
The agent's canonical definition remains in `.agents/agents/` but no adapter output is generated for it.
|
|
145
|
-
|
|
146
|
-
## Protected Agents
|
|
147
|
-
|
|
148
|
-
Some agents have `protected: true` in their canonical frontmatter. This field marks agents whose core behavior must not be weakened or bypassed through customization, because they enforce critical quality and security invariants.
|
|
149
|
-
|
|
150
|
-
### Currently Protected Agents
|
|
151
|
-
|
|
152
|
-
| Agent | Why Protected |
|
|
153
|
-
|-------|--------------|
|
|
154
|
-
| `hatch3r-reviewer` | Enforces code quality, privacy invariants, and security review. Weakening or disabling it would allow unsafe code to merge unreviewed. |
|
|
155
|
-
| `hatch3r-security-auditor` | Enforces security rules, access control auditing, and privacy invariant verification. Disabling it would leave security gaps undetected. |
|
|
156
|
-
| `hatch3r-test-writer` | Enforces test coverage requirements and regression testing. Disabling it would allow untested code to ship. |
|
|
157
|
-
|
|
158
|
-
### What Protection Means
|
|
159
|
-
|
|
160
|
-
- **Cannot be disabled.** Setting `enabled: false` in a `.customize.yaml` file for a protected agent is ignored. The agent is always included in adapter output.
|
|
161
|
-
- **Cannot have scope or description overridden.** The `description` field in a `.customize.yaml` file is ignored for protected agents. Their canonical description is always used to prevent narrowing or misrepresenting the agent's responsibilities.
|
|
162
|
-
- **Model overrides ARE allowed.** You can override the `model` field for protected agents via `.customize.yaml` or `hatch.json`. Choosing a more capable model for a protected agent is a valid use case.
|
|
163
|
-
- **Markdown customization IS allowed.** You can add project-specific instructions via `.customize.md` (e.g., domain-specific review checklists, compliance requirements). These are appended to the canonical content and extend the agent's scope — they cannot reduce it.
|
|
164
|
-
|
|
165
|
-
### Frontmatter Format
|
|
166
|
-
|
|
167
|
-
```yaml
|
|
168
|
-
---
|
|
169
|
-
id: hatch3r-example-agent
|
|
170
|
-
description: Expert code reviewer for the project...
|
|
171
|
-
protected: true
|
|
172
|
-
model: standard
|
|
173
|
-
---
|
|
174
|
-
```
|
|
175
|
-
|
|
176
|
-
The `protected` field is set in the canonical agent definition and cannot be overridden by customization files.
|
|
177
|
-
|
|
178
|
-
## Workflow
|
|
179
|
-
|
|
180
|
-
1. Identify which agent to customize
|
|
181
|
-
2. Create `.hatch3r/agents/{agent-id}.customize.yaml` and/or `.customize.md`
|
|
182
|
-
3. Run `npx hatch3r sync` to propagate changes to all adapter outputs
|
|
183
|
-
4. Verify the customization appears in the tool-specific files (e.g., `.cursor/agents/`)
|
|
184
|
-
|
|
185
|
-
## Guardrails
|
|
186
|
-
|
|
187
|
-
- Customization files cannot remove the agent's core role or boundaries
|
|
188
|
-
- Invalid YAML produces warnings but does not prevent agent execution (graceful degradation)
|
|
189
|
-
- Customization files should be committed to the repository
|
|
190
|
-
|
|
191
|
-
## Unified Skill
|
|
192
|
-
|
|
193
|
-
This command's workflow is handled by the `hatch3r-customize` skill with `type: agent`. The skill provides root-cause analysis, multi-stakeholder review, and quality gate steps that extend the workflow above. Invoke the skill directly or use this command for the agent-specific reference documentation (model resolution, protected agents, per-agent examples).
|
|
194
|
-
|
|
195
|
-
## Related
|
|
196
|
-
|
|
197
|
-
- Skill customization: `hatch3r-skill-customize` command
|
|
198
|
-
- Command customization: `hatch3r-command-customize` command
|
|
199
|
-
- Rule customization: `hatch3r-rule-customize` command
|
|
200
|
-
- Model selection: [Model Selection](https://docs.hatch3r.com/docs/guides/model-selection) — configuration, aliases, resolution order
|
|
201
|
-
- Platform support: [Adapter Capability Matrix](https://docs.hatch3r.com/docs/reference/adapter-capability-matrix) — model emission per adapter (native vs guidance)
|
|
@@ -1,113 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
id: hatch3r-command-customize
|
|
3
|
-
type: command
|
|
4
|
-
orchestrator: false
|
|
5
|
-
description: Tune slash-command display text, orchestrator sub-agent dispatch pipeline, and invocation arguments via .hatch3r/commands/ YAML and markdown overrides
|
|
6
|
-
tags: [customize]
|
|
7
|
-
quality_charter: agents/shared/quality-charter.md
|
|
8
|
-
efficiency_patterns: agents/shared/efficiency-patterns.md
|
|
9
|
-
cache_friendly: true
|
|
10
|
-
parallel_tool_default: true
|
|
11
|
-
---
|
|
12
|
-
|
|
13
|
-
## §0 Detect Ambiguity (P8 B1)
|
|
14
|
-
|
|
15
|
-
Before any action, scan the user's request and provided context for unresolved questions in scope, acceptance criteria, irreversibility, or constraint conflicts (contradictory inputs, missing target, unknown convention). If any are found, ask the user via the platform-native question tool per `agents/shared/user-question-protocol.md` — do not proceed under silent assumption. This is the default path, not an exception. Acceptable to proceed without asking ONLY when scope is single-target, single-concern, and the brief alone is testable. Any residual ambiguity discovered mid-workflow invokes the same protocol.
|
|
16
|
-
|
|
17
|
-
## Agent Pipeline
|
|
18
|
-
|
|
19
|
-
This command runs as a single orchestrator without sub-agent delegation. Customization file management is performed inline.
|
|
20
|
-
|
|
21
|
-
# Command Customization — Per-Command Configuration
|
|
22
|
-
|
|
23
|
-
Customize individual command behavior for project-specific needs via `.hatch3r/commands/` configuration files. Supports structured YAML overrides and free-form markdown instruction injection, all propagated to every adapter output on sync.
|
|
24
|
-
|
|
25
|
-
---
|
|
26
|
-
|
|
27
|
-
## Customization File Locations
|
|
28
|
-
|
|
29
|
-
Each command supports two optional customization files:
|
|
30
|
-
|
|
31
|
-
```
|
|
32
|
-
.hatch3r/commands/{command-id}.customize.yaml # structured overrides
|
|
33
|
-
.hatch3r/commands/{command-id}.customize.md # free-form markdown instructions
|
|
34
|
-
```
|
|
35
|
-
|
|
36
|
-
Both files are optional and can be used independently or together.
|
|
37
|
-
|
|
38
|
-
## YAML Customization Schema
|
|
39
|
-
|
|
40
|
-
```yaml
|
|
41
|
-
command: hatch3r-release
|
|
42
|
-
description: "Release workflow with mandatory staging deployment step"
|
|
43
|
-
enabled: true
|
|
44
|
-
```
|
|
45
|
-
|
|
46
|
-
### Fields
|
|
47
|
-
|
|
48
|
-
| Field | Type | Default | Description |
|
|
49
|
-
|-------|------|---------|-------------|
|
|
50
|
-
| `description` | string | (from canonical) | Override the command's description in adapter frontmatter |
|
|
51
|
-
| `enabled` | boolean | `true` | Set to `false` to exclude this command from adapter output generation |
|
|
52
|
-
|
|
53
|
-
## Markdown Customization
|
|
54
|
-
|
|
55
|
-
Create `.hatch3r/commands/{command-id}.customize.md` with free-form markdown to inject project-specific instructions into the command's managed block. This content is appended after the canonical command definition under a `## Project Customizations` header.
|
|
56
|
-
|
|
57
|
-
### Example
|
|
58
|
-
|
|
59
|
-
**File:** `.hatch3r/commands/hatch3r-release.customize.md`
|
|
60
|
-
|
|
61
|
-
```markdown
|
|
62
|
-
## Project-Specific Release Steps
|
|
63
|
-
|
|
64
|
-
Before creating any release:
|
|
65
|
-
|
|
66
|
-
1. Run `npm run test:e2e:staging` and confirm all E2E tests pass on staging
|
|
67
|
-
2. Verify the changelog has been updated in `CHANGELOG.md`
|
|
68
|
-
3. Confirm the release has been approved in the `#releases` Slack channel
|
|
69
|
-
4. Tag the Docker image with the release version
|
|
70
|
-
|
|
71
|
-
### Deployment Sequence
|
|
72
|
-
|
|
73
|
-
Deploy in order: database migrations → API servers → worker processes → frontend CDN
|
|
74
|
-
```
|
|
75
|
-
|
|
76
|
-
### How It Works
|
|
77
|
-
|
|
78
|
-
1. During `hatch3r sync`, adapters read the `.customize.md` file
|
|
79
|
-
2. The markdown content is appended inside the managed block, after the canonical command content
|
|
80
|
-
3. All adapter outputs receive the customization automatically
|
|
81
|
-
4. Changes propagate on every sync
|
|
82
|
-
|
|
83
|
-
## Disabling a Command
|
|
84
|
-
|
|
85
|
-
To exclude a command from adapter output without deleting its canonical file:
|
|
86
|
-
|
|
87
|
-
```yaml
|
|
88
|
-
# .hatch3r/commands/hatch3r-cost-tracking.customize.yaml
|
|
89
|
-
enabled: false
|
|
90
|
-
```
|
|
91
|
-
|
|
92
|
-
## Workflow
|
|
93
|
-
|
|
94
|
-
1. Identify which command to customize
|
|
95
|
-
2. Create `.hatch3r/commands/{command-id}.customize.yaml` and/or `.customize.md`
|
|
96
|
-
3. Run `npx hatch3r sync` to propagate changes to all adapter outputs
|
|
97
|
-
4. Verify the customization appears in the tool-specific command files
|
|
98
|
-
|
|
99
|
-
## Guardrails
|
|
100
|
-
|
|
101
|
-
- Customization files cannot remove the command's core instructions
|
|
102
|
-
- Invalid YAML produces warnings but does not prevent command execution (graceful degradation)
|
|
103
|
-
- Customization files should be committed to the repository
|
|
104
|
-
|
|
105
|
-
## Unified Skill
|
|
106
|
-
|
|
107
|
-
This command's workflow is handled by the `hatch3r-customize` skill with `type: command`. The skill provides root-cause analysis, multi-stakeholder review, and quality gate steps that extend the workflow above.
|
|
108
|
-
|
|
109
|
-
## Related
|
|
110
|
-
|
|
111
|
-
- Agent customization: `hatch3r-agent-customize` command
|
|
112
|
-
- Skill customization: `hatch3r-skill-customize` command
|
|
113
|
-
- Rule customization: `hatch3r-rule-customize` command
|