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
|
@@ -0,0 +1,401 @@
|
|
|
1
|
+
---
|
|
2
|
+
id: hatch3r-release
|
|
3
|
+
type: command
|
|
4
|
+
orchestrator: true
|
|
5
|
+
agentPipeline: [hatch3r-implementer, hatch3r-docs-writer, hatch3r-reviewer, hatch3r-fixer, hatch3r-testability, hatch3r-security, hatch3r-ci-watcher]
|
|
6
|
+
description: Release-workflow orchestrator — preflight, SemVer bump, changelog sync, build + CycloneDX SBOM, adapter-output verification, quality gates, release-notes reconciliation, then stop before publish/merge for human approval.
|
|
7
|
+
tags: [devops, board, review]
|
|
8
|
+
quality_charter: agents/shared/quality-charter.md
|
|
9
|
+
efficiency_patterns: agents/shared/efficiency-patterns.md
|
|
10
|
+
cache_friendly: true
|
|
11
|
+
parallel_tool_default: true
|
|
12
|
+
efficiency_tier: standard
|
|
13
|
+
triage_tiers: [1, 2, 3]
|
|
14
|
+
supports_resume: true
|
|
15
|
+
sub_agents_spawned:
|
|
16
|
+
count: 7
|
|
17
|
+
rationale: Per-release fanout — implementer applies the version-bump + changelog + SBOM mutations and docs-writer reconciles repo/website docs (parallel, disjoint files); reviewer ↔ fixer review loop verifies the release diff (max 3 iterations); testability (CQ5) and security (CQ3) run the mandatory final-quality pass in parallel; ci-watcher diagnoses any red gate. Cost-dominance per CONSTITUTION §2 P8 — token cost never serializes independent work.
|
|
18
|
+
---
|
|
19
|
+
|
|
20
|
+
## §0 Detect Ambiguity (P8 B1)
|
|
21
|
+
|
|
22
|
+
Before any version bump or write, scan the user's request and provided context for unresolved questions in scope, acceptance criteria, irreversibility, or constraint conflicts. If any are found, ask 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. Release-specific triggers (per `.claude/rules/clarification-default.md`):
|
|
23
|
+
|
|
24
|
+
- **Ambiguous scope** — release line unclear (patch vs minor vs major per SemVer §below); breaking-adapter-contract scope undeclared; whether `.claude-plugin/plugin.json` + `docs/marketplace-submission.md` manifests bump in lock-step.
|
|
25
|
+
- **Multiple valid interpretations** — changelog grouping (Added / Changed / Deprecated / Removed / Fixed / Security) when a PR could land in two groups; whether to roll up multiple unreleased patch PRs into one minor.
|
|
26
|
+
- **Irreversible action** — `npm publish`, tag force-push, force-push to `main`, marketplace re-submission with a public manifest change. These are NEVER taken by this command (Step 9 stops before them).
|
|
27
|
+
- **Missing acceptance criteria** — CHANGELOG section header absent or version-mismatched; orphan PRs missing from the new section; lockfile or `npm audit` gate failing without an owner.
|
|
28
|
+
|
|
29
|
+
Acceptable to proceed without asking ONLY when the release line is unambiguous, the changelog target section is named, and the brief alone is testable. Any residual ambiguity discovered mid-run re-invokes the same protocol.
|
|
30
|
+
|
|
31
|
+
---
|
|
32
|
+
|
|
33
|
+
# Release -- Cut-and-Verify Orchestrator (Stops Before Publish)
|
|
34
|
+
|
|
35
|
+
Orchestrates a hatch3r framework release end-to-end on a release branch: preflight, SemVer bump, changelog completeness + sync, build + CycloneDX SBOM emission, adapter-output verification, quality gates, release-notes reconciliation, then **stops before publish/merge** for human approval. Mutating sub-steps are delegated to pipeline sub-agents via the Task tool — the orchestrator never edits release files inline.
|
|
36
|
+
|
|
37
|
+
This command is the delegating orchestrator around the single-pass `/h4tcher-release-prep` skill (`.claude/skills/h4tcher-release-prep/SKILL.md`): the skill documents the local 10-step gate procedure; this command spawns sub-agents to execute the mutating steps, runs the reviewer ↔ fixer loop on the release diff, and emits the delegation attestation. Use the skill for a fast solo dev-run; use this command when you want delegated execution with the review-loop + final-quality gate and the bypass-protection attestation.
|
|
38
|
+
|
|
39
|
+
---
|
|
40
|
+
|
|
41
|
+
## Agent Pipeline
|
|
42
|
+
|
|
43
|
+
| Stage | Agent(s) | Parallel | Required |
|
|
44
|
+
|-------|----------|----------|----------|
|
|
45
|
+
| 1. Preflight | Orchestrator (inline, read-only `git status` / branch check) | No | Yes |
|
|
46
|
+
| 2. Version bump (SemVer) | `hatch3r-implementer` | No | Yes |
|
|
47
|
+
| 3. Changelog completeness + sync | `hatch3r-implementer` | No | Yes |
|
|
48
|
+
| 4. Build + SBOM (CycloneDX) | `hatch3r-implementer` (build script + SBOM emission), `hatch3r-ci-watcher` (diagnose red build) | No | Yes |
|
|
49
|
+
| 5. Adapter-output verification | Orchestrator (inline, read-only `hatch3r verify`) | No | Yes |
|
|
50
|
+
| 6. Quality gates | Orchestrator (inline gate runs); `hatch3r-ci-watcher` diagnoses failures | No | Yes |
|
|
51
|
+
| 7a. Review loop | `hatch3r-reviewer` -> `hatch3r-fixer` (max 3 iterations) | No (sequential loop) | When release diff is non-trivial (Tier 2/3) |
|
|
52
|
+
| 7b. Final quality — mandatory | `hatch3r-testability`, `hatch3r-security` | Yes | When code changed |
|
|
53
|
+
| 7c. Final quality — docs | `hatch3r-docs-writer` | Yes (parallel with 7b) | When APIs / adapters / CLI surface changed |
|
|
54
|
+
| 8. Release-notes reconciliation | Orchestrator (inline, compares CHANGELOG section ↔ CI extraction contract) | No | Yes |
|
|
55
|
+
| 9. Marketplace-lane handoff (STOP before publish/merge) | Orchestrator (inline, presents the human-approval gate) | No | Yes |
|
|
56
|
+
| 10. Iteration Summary | Orchestrator (inline) | No | Yes |
|
|
57
|
+
|
|
58
|
+
**Parallel-safety conditions** (per `rules/hatch3r-agent-orchestration.md` §Parallel Safety): every parallel fan-out above (Step 7b testability + security; Step 7c docs-writer alongside 7b) holds all three — read-only or disjoint writes, deterministic aggregation, no shared mutable state. Step 2 (version bump) and Step 3 (changelog) serialize on a dependency edge: the changelog header must match the bumped `package.json` version, so version-bump precedes changelog.
|
|
59
|
+
|
|
60
|
+
---
|
|
61
|
+
|
|
62
|
+
## Shared Context
|
|
63
|
+
|
|
64
|
+
If board context exists (`.hatch3r/hatch.json` present), read the `hatch3r-board-shared` skill at run start and cache `board.platform`, `board.owner`, `board.repo`, and `board.defaultBranch`. If absent, fall back to GitHub and proceed — the release flow runs on any repo where `gh auth login` is complete.
|
|
65
|
+
|
|
66
|
+
Read the `/h4tcher-release-prep` skill (`.claude/skills/h4tcher-release-prep/SKILL.md`) once at run start; cache its 10-step procedure and pass the relevant step text into the Step 2/3/4 implementer prompts so the sub-agent executes the exact documented commands without re-reading the skill.
|
|
67
|
+
|
|
68
|
+
## Global Rule Overrides
|
|
69
|
+
|
|
70
|
+
- **Git commands are permitted** for read-only inspection (Step 1: `git status`, `git branch --show-current`, `git describe --tags`, `git log`) and for staging the release commit on the **release branch** in Step 9 (`git add`, `git commit -s`). This override applies to delegated sub-agents.
|
|
71
|
+
- **`npm publish`, `git push --force`, `git push` to `board.defaultBranch`, tag force-push, and any marketplace write are forbidden in every step.** Step 9 stops before them and hands off to the human. See Guardrails.
|
|
72
|
+
|
|
73
|
+
## Confidence Propagation Contract
|
|
74
|
+
|
|
75
|
+
Every sub-agent delegation prompt in this command MUST include the confidence expression requirement below (verbatim). Sub-agents carry the `quality_charter: agents/shared/quality-charter.md` reference, but the orchestrator repeats the directive to override runtime prompt defaults per charter §1.
|
|
76
|
+
|
|
77
|
+
> Confidence expression requirement: rate every recommendation and finding as high/medium/low confidence per the quality charter (`agents/shared/quality-charter.md`). High = verified against current code. Medium = pattern-based, not fully verified. Low = best judgment, recommend human review.
|
|
78
|
+
|
|
79
|
+
Downstream propagation: every gate verdict, the review-loop verdict, and the Step 9 release-readiness assessment MUST carry a high/medium/low confidence rating sourced from the upstream sub-agent. Dropping the signal between stages is a gate failure.
|
|
80
|
+
|
|
81
|
+
---
|
|
82
|
+
|
|
83
|
+
## SemVer Decision Table (SemVer 2.0.0)
|
|
84
|
+
|
|
85
|
+
Pick the release line per the SemVer 2.0.0 increment rules (`https://semver.org/`, accessed 2026-06-02):
|
|
86
|
+
|
|
87
|
+
| Increment | Trigger in hatch3r terms |
|
|
88
|
+
|-----------|--------------------------|
|
|
89
|
+
| **MAJOR** (`X+1.0.0`) | Incompatible API change — breaking adapter contract change, breaking canonical content-format change, removed CLI command or public artifact id. |
|
|
90
|
+
| **MINOR** (`X.Y+1.0`) | Backward-compatible functionality — new adapter, new content type, new CLI command, new artifact, or a deprecation (the feature still works). |
|
|
91
|
+
| **PATCH** (`X.Y.Z+1`) | Backward-compatible bug fix, documentation update, dependency bump that changes no public surface. |
|
|
92
|
+
|
|
93
|
+
A MAJOR bump is an irreversible-scope decision — route it through the §0 B1 gate before Step 2 even when the user named a version.
|
|
94
|
+
|
|
95
|
+
---
|
|
96
|
+
|
|
97
|
+
## Workflow
|
|
98
|
+
|
|
99
|
+
Execute these steps in order. **Do not skip any step.** The only ASK gates are §0 (ambiguity), the SemVer-line confirmation in Step 2a, and the human-approval handoff in Step 9. For every ASK, use the platform-native question tool per `agents/shared/user-question-protocol.md`.
|
|
100
|
+
|
|
101
|
+
---
|
|
102
|
+
|
|
103
|
+
## Step 0: Triage
|
|
104
|
+
|
|
105
|
+
Classify the release before delegating:
|
|
106
|
+
|
|
107
|
+
- **Tier 1** (patch — docs/dependency/single bug fix, no public-surface change): reduced pipeline — Steps 1-6, skip the Step 7a review loop, still run Step 7b mandatory specialists, Steps 8-10.
|
|
108
|
+
- **Tier 2** (minor — new content/CLI/adapter, no breaking change): standard pipeline — Steps 1-6, 7a (review loop, max 3 iterations), 7b mandatory + 7c when triggered, Steps 8-10.
|
|
109
|
+
- **Tier 3** (major OR any breaking adapter/canonical-format change OR cross-cutting release): full pipeline + an explicit breaking-change migration-note check in Step 3 and a release-readiness assessment in Step 9.
|
|
110
|
+
|
|
111
|
+
### Step 0.5: Emit Pre-Execution Cost Preview
|
|
112
|
+
|
|
113
|
+
Before the first sub-agent dispatch (Step 2), emit the cost preview per `rules/hatch3r-iteration-summary.md` Pre-Execution Cost Preview and `rules/hatch3r-cost-visibility.md`, calibrated to the Step 0 tier:
|
|
114
|
+
|
|
115
|
+
```yaml
|
|
116
|
+
cost_preview:
|
|
117
|
+
expected_sa_count: <tier → Tier 1 ~3, Tier 2 ~6, Tier 3 up to 7>
|
|
118
|
+
estimated_input_tokens_static_frame: <int>
|
|
119
|
+
triage_tier: 1 | 2 | 3
|
|
120
|
+
web_research_budget: <int queries, 0 if none>
|
|
121
|
+
estimated_duration_min: <int>
|
|
122
|
+
```
|
|
123
|
+
|
|
124
|
+
Post-execution actuals + `delta_percent` land in the Step 10 iteration summary's Fan-out + Cost section. Token telemetry sources from `src/pipeline/observability.ts`; estimation primitives from `src/pipeline/costEstimator.ts`.
|
|
125
|
+
|
|
126
|
+
### Effort Override (Decision 17)
|
|
127
|
+
|
|
128
|
+
`--effort=light|standard|deep` forces the named tier (light → Tier 1, standard → Tier 2, deep → Tier 3), bypassing Step 0 auto-classification. The override wins over the auto-detected tier; record both so the cost block reports the budget delta. The override never suppresses a Safety Guardrail — a `--effort=light` run that turns out to carry a breaking change still runs the Tier-3 migration-note check and release-readiness assessment. Safety dominates the cost override.
|
|
129
|
+
|
|
130
|
+
---
|
|
131
|
+
|
|
132
|
+
## Step 1: Preflight (read-only)
|
|
133
|
+
|
|
134
|
+
Establish a clean, branch-correct starting state. All commands here are read-only.
|
|
135
|
+
|
|
136
|
+
1. **Clean tree:** `git status --porcelain`. A non-empty result halts with the actionable error below (P1, `.claude/rules/cli-ux-standards.md`):
|
|
137
|
+
|
|
138
|
+
```
|
|
139
|
+
Working tree is not clean — release requires a clean tree.
|
|
140
|
+
|
|
141
|
+
Commit or stash your changes first:
|
|
142
|
+
git stash # set aside, restore after release
|
|
143
|
+
git status # review what is uncommitted
|
|
144
|
+
```
|
|
145
|
+
|
|
146
|
+
Exit code 2 (usage error).
|
|
147
|
+
|
|
148
|
+
2. **Branch policy:** `git branch --show-current`. Per `.claude/rules/commit-conventions.md` (no force-push to `main`; feature branches only) and the repo's release norm, the release commit lands on a `release/X.Y.Z` branch — never on `board.defaultBranch`. If the current branch equals `board.defaultBranch` (fallback `main`), halt with:
|
|
149
|
+
|
|
150
|
+
```
|
|
151
|
+
On the default branch '{defaultBranch}'. Releases run on a release branch.
|
|
152
|
+
|
|
153
|
+
Cut one first:
|
|
154
|
+
git switch -c release/{intended-version}
|
|
155
|
+
```
|
|
156
|
+
|
|
157
|
+
Exit code 2. If already on a `release/*` branch, proceed.
|
|
158
|
+
|
|
159
|
+
3. **Last tag + change set:** `git describe --tags --abbrev=0` for the prior tag; `git log {lastTag}..HEAD --oneline` for the change set feeding the SemVer decision and the changelog completeness probe. Cache both.
|
|
160
|
+
|
|
161
|
+
---
|
|
162
|
+
|
|
163
|
+
## Step 2: Version Bump (SemVer) — delegated
|
|
164
|
+
|
|
165
|
+
#### 2a. Resolve the release line
|
|
166
|
+
|
|
167
|
+
Apply the SemVer Decision Table above to the cached change set. **ASK** to confirm: "Change set since `{lastTag}` indicates a **{MAJOR|MINOR|PATCH}** release → `{X.Y.Z}`. Proceed with this version? (yes / choose a different line / let me set it explicitly)". A MAJOR line always asks (irreversible-scope, §0 B1). Default-if-no-response: the auto-derived line.
|
|
168
|
+
|
|
169
|
+
#### 2b. Delegate the bump
|
|
170
|
+
|
|
171
|
+
Spawn one `hatch3r-implementer` sub-agent via the Task tool (`subagent_type: "generalPurpose"`). Do NOT edit version files inline. The prompt MUST include the `/h4tcher-release-prep` Step 2 procedure (cached at run start) plus:
|
|
172
|
+
|
|
173
|
+
- Target version `{X.Y.Z}`.
|
|
174
|
+
- Files to update in lock-step: `package.json` `version` (single source of truth), `.claude-plugin/plugin.json` `version`, and the embedded manifest copy in `docs/marketplace-submission.md`. `.cursor-plugin/plugin.json` bumps only if the Cursor plugin changed this cycle (independent cadence per the skill).
|
|
175
|
+
- Run `npm install` to refresh the lockfile version, then `npm run inventory:check-docs` to confirm 0 version drift.
|
|
176
|
+
- All `scope: always` rule directives from `rules/`.
|
|
177
|
+
- Explicit: do NOT create branches, tags, commits, or PRs; do NOT run `npm publish`.
|
|
178
|
+
- The Confidence expression requirement (verbatim).
|
|
179
|
+
|
|
180
|
+
Await the implementer. Record its `delegation_proof_id` for the Step 9 attestation.
|
|
181
|
+
|
|
182
|
+
---
|
|
183
|
+
|
|
184
|
+
## Step 3: Changelog Completeness + Sync — delegated
|
|
185
|
+
|
|
186
|
+
Author the new changelog section in Keep-a-Changelog 1.1.0 format (`https://keepachangelog.com/en/1.1.0/`, accessed 2026-06-02) and gate on PR completeness.
|
|
187
|
+
|
|
188
|
+
#### 3a. PR-completeness probe (gate)
|
|
189
|
+
|
|
190
|
+
Every merged PR since `{lastTag}` MUST appear in the new CHANGELOG section by its `#NNN` reference or be explicitly classified as `Chore`-omitted with rationale. Run the orphan-detection probe from `/h4tcher-release-prep` Step 6 (the `git log {lastTag}..HEAD --merges` ∖ CHANGELOG-section diff). Any orphan halts Step 3 until the entry is added or the omission is documented inline.
|
|
191
|
+
|
|
192
|
+
#### 3b. Delegate the changelog write
|
|
193
|
+
|
|
194
|
+
Spawn one `hatch3r-implementer` sub-agent (serialized after Step 2 — the section header depends on the bumped version). The prompt MUST include the cached `/h4tcher-release-prep` Step 6 procedure plus:
|
|
195
|
+
|
|
196
|
+
- The cached change set, grouped into the six Keep-a-Changelog change types (**Added / Changed / Deprecated / Removed / Fixed / Security**); the repo's domain grouping (Adapters / Content / CLI / Governance / Dependencies / Chore) maps onto these — preserve whichever the existing CHANGELOG uses.
|
|
197
|
+
- The new section header `## [{X.Y.Z}] - {YYYY-MM-DD}` MUST equal `package.json` version exactly (the CI release step extracts this section by version match for the GitHub release body — a mismatch fails the release).
|
|
198
|
+
- Latest version first; one entry per PR `#NNN`; the orphan list from 3a resolved.
|
|
199
|
+
- **Tier 3 only:** every breaking change carries a migration note under a `### Breaking Changes` subsection.
|
|
200
|
+
- All `scope: always` rule directives; the Confidence expression requirement (verbatim); do NOT commit/tag/publish.
|
|
201
|
+
|
|
202
|
+
Await the implementer. Record its `delegation_proof_id`.
|
|
203
|
+
|
|
204
|
+
---
|
|
205
|
+
|
|
206
|
+
## Step 4: Build + SBOM (CycloneDX) — delegated
|
|
207
|
+
|
|
208
|
+
#### 4a. Build
|
|
209
|
+
|
|
210
|
+
Spawn (or reuse) a `hatch3r-implementer` sub-agent to run `npm run build` and confirm `dist/` output. If the build fails, spawn `hatch3r-ci-watcher` with the failure log to diagnose root cause and propose a focused fix, then re-run. Max 2 build-fix loops; persistent failure surfaces as `Status: PARTIAL` in Step 10.
|
|
211
|
+
|
|
212
|
+
#### 4b. SBOM emission (CycloneDX)
|
|
213
|
+
|
|
214
|
+
A CycloneDX SBOM (`bomFormat: "CycloneDX"`, `specVersion`, `components`, `metadata`) inventories the published dependency tree for supply-chain transparency (`https://cyclonedx.org/docs/1.6/json/`, accessed 2026-06-02). Per hatch3r's supply-chain release criteria, the release emits a CycloneDX (or SPDX) SBOM and attaches it to the GitHub release assets. Delegate to the same implementer:
|
|
215
|
+
|
|
216
|
+
- Generate the SBOM via the project's configured tool — npm's `--sbom` flag or `syft` (CycloneDX JSON output). Write it to a release asset path (e.g., `dist/sbom.cdx.json`).
|
|
217
|
+
- Verify the emitted file is valid CycloneDX JSON (`bomFormat` == `CycloneDX`, non-empty `components`).
|
|
218
|
+
- The SBOM is attached to the GitHub release in the CI publish step (Step 9 human-approved); this command produces and verifies the artifact, it does not upload it.
|
|
219
|
+
- Confidence expression requirement (verbatim); do NOT publish or upload.
|
|
220
|
+
|
|
221
|
+
Record the implementer `delegation_proof_id`. If no SBOM tooling is configured, surface a single actionable note in Step 9 (do not fabricate a file).
|
|
222
|
+
|
|
223
|
+
---
|
|
224
|
+
|
|
225
|
+
## Step 5: Adapter-Output Verification (read-only)
|
|
226
|
+
|
|
227
|
+
Verify the bundled canonical content regenerates the on-disk adapter outputs with no drift. This is inline and read-only (no `.integrity.json` checksum file exists — drift detection regenerates and diffs per `.claude/rules/security-patterns.md`).
|
|
228
|
+
|
|
229
|
+
1. Run `npx hatch3r verify` — adapter outputs regenerated from bundled content match on-disk copies (0 drift required).
|
|
230
|
+
2. Confirm all 3 supported adapters (claude, cursor, copilot) are registered in `src/adapters/index.ts` and `ADAPTER_CAPABILITIES` has no undefined entries (count auto-derived at `governance/inventory.json::counts.adapters` per CONSTITUTION §6 Decision 12).
|
|
231
|
+
3. Confirm `package.json` `files` includes every content directory shipped in the npm package (`agents/`, `checks/`, `commands/`, `rules/`, `skills/`, `prompts/`, `github-agents/`, `mcp/`, `hooks/`).
|
|
232
|
+
|
|
233
|
+
Any drift or missing registration halts and routes the specific failure into Step 6 (or back to Step 2/3 implementer when caused by a stale generated file).
|
|
234
|
+
|
|
235
|
+
---
|
|
236
|
+
|
|
237
|
+
## Step 6: Quality Gates (inline; ci-watcher diagnoses failures)
|
|
238
|
+
|
|
239
|
+
Run the publish-critical gate set (the local stricter-than-CI subset from `/h4tcher-release-prep` Steps 3 + 5). The first line is the language-aware lint+typecheck+test gate (resolved at sync time; fallback when detection is unknown: `npm run lint && npm run typecheck && npm run test`); the lines below it are npm-ecosystem publish tooling — substitute the equivalent supply-chain audit + lockfile lint for the project's package manager when it is not npm:
|
|
240
|
+
|
|
241
|
+
```bash
|
|
242
|
+
${HATCH3R:VERIFY_GATE_ALL} # lint + typecheck + test, 0 failures
|
|
243
|
+
npm run validate # 0 validation errors
|
|
244
|
+
npx lockfile-lint --type npm --allowed-schemes https: --path package-lock.json
|
|
245
|
+
npm audit --audit-level=moderate --omit=dev
|
|
246
|
+
```
|
|
247
|
+
|
|
248
|
+
> Severity note: `npm audit`'s `--audit-level=moderate` is npm's native severity scale; its `moderate` level maps to the canonical Medium tier per `agents/shared/severity-mapping.md`. The gate fails the release on any advisory at Medium (npm `moderate`) or above.
|
|
249
|
+
|
|
250
|
+
If any gate fails: spawn `hatch3r-ci-watcher` with the failure output to diagnose root cause and propose a focused fix; route a code-level fix to `hatch3r-fixer` (record its `delegation_proof_id`) or loop back to the Step 2/3 implementer for a release-file fix. Max 2 retry loops; after 2, record in the run errors and continue — the unresolved failure surfaces as `Status: PARTIAL` in Step 10 and blocks the Step 9 approval recommendation.
|
|
251
|
+
|
|
252
|
+
---
|
|
253
|
+
|
|
254
|
+
## Step 7: Quality Verification (sub-agent pipeline)
|
|
255
|
+
|
|
256
|
+
#### 7a. Review Loop (Tier 2/3; Tier 1 skips)
|
|
257
|
+
|
|
258
|
+
Spawn `hatch3r-reviewer` with the full release diff (`git diff {lastTag}..HEAD`) and the release acceptance criteria (version bump correct, changelog complete + header-matched, SBOM emitted, gates green, adapter drift zero). Extract Critical/Warning findings AND the reviewer's top-level `confidence` field.
|
|
259
|
+
|
|
260
|
+
1. **0 Critical + 0 Warning AND confidence != low:** loop clean → proceed to 7b.
|
|
261
|
+
2. **0 Critical + 0 Warning AND confidence == low:** trigger a second reviewer pass before exiting.
|
|
262
|
+
3. **Critical/Warning findings exist:** spawn `hatch3r-fixer` with the reviewer output (record its `delegation_proof_id`), re-review.
|
|
263
|
+
4. **Repeat** for a maximum of **3 iterations** (code-class cap per `commands/hatch3r-workflow.md` Phase 4a rationale). If still not clean, **ASK** the user (force continue / manual fix / abort the release).
|
|
264
|
+
|
|
265
|
+
Each reviewer/fixer prompt MUST include: the agent protocol, all `scope: always` rules, the release diff, the acceptance criteria, the `correlation_id` (UUID v4 per `rules/hatch3r-agent-orchestration.md` → Correlation ID), and the Confidence expression requirement (verbatim).
|
|
266
|
+
|
|
267
|
+
#### 7b. Final Quality — mandatory (parallel, code changed)
|
|
268
|
+
|
|
269
|
+
After 7a is clean, spawn in parallel:
|
|
270
|
+
|
|
271
|
+
- **`hatch3r-testability`** (CQ5) — confirm tests for changed code paths meet the mandate map / coverage floor; release-blocking if coverage regressed below the `vitest.config.ts` thresholds.
|
|
272
|
+
- **`hatch3r-security`** (CQ3) — security review of the release diff; audit dependency changes flagged by `npm audit`, secret handling, and any new tool surface.
|
|
273
|
+
|
|
274
|
+
#### 7c. Final Quality — docs (parallel with 7b, when triggered)
|
|
275
|
+
|
|
276
|
+
- **`hatch3r-docs-writer`** — spawn when the release changed public APIs, adapter behavior, the CLI surface, or canonical content. Reconcile `README.md`, `docs/adapter-capability-matrix.md` (must reflect current `ADAPTER_CAPABILITIES`), `docs/marketplace-submission.md`, and the `website/` Docusaurus pages (`onBrokenLinks: 'throw'` — a broken link fails the deploy build). Run the feature-surface grep from `/h4tcher-release-prep` Step 7: any command/adapter/skill renamed or removed this release must NOT appear by its old name in the docs (0 hits). Skip silently if no doc surface changed.
|
|
277
|
+
|
|
278
|
+
Each specialist prompt mirrors 7a's required fields. Apply specialist outputs; if any specialist produced fixes (not just findings), run a focused re-review on the changed files (max 1 extra iteration) so Step 7 fixes do not bypass the gate, then re-run the Step 6 gates.
|
|
279
|
+
|
|
280
|
+
---
|
|
281
|
+
|
|
282
|
+
## Step 8: Release-Notes Reconciliation
|
|
283
|
+
|
|
284
|
+
Confirm the GitHub release body the CI publish step will produce matches the authored changelog:
|
|
285
|
+
|
|
286
|
+
1. The `## [{X.Y.Z}] - {YYYY-MM-DD}` section exists and the version equals `package.json` version (the CI release workflow extracts this section by version match via `body_path`; a missing or malformed header fails the CI release step).
|
|
287
|
+
2. The section's PR `#NNN` set equals the Step 3a completeness set (no orphan re-introduced by a Step 7 fix).
|
|
288
|
+
3. For a Tier 3 release, the `### Breaking Changes` migration notes are present.
|
|
289
|
+
|
|
290
|
+
Any mismatch routes back to the Step 3 implementer (record the `delegation_proof_id`) before Step 9. Do not hand off to the human with an unreconciled changelog.
|
|
291
|
+
|
|
292
|
+
---
|
|
293
|
+
|
|
294
|
+
## Step 9: Marketplace-Lane Handoff — STOP before publish/merge
|
|
295
|
+
|
|
296
|
+
This command **never publishes, merges, tags-and-pushes, or submits to a marketplace.** It assembles the release on the `release/X.Y.Z` branch, stages and commits with DCO sign-off, then stops and hands the publish decision to the human.
|
|
297
|
+
|
|
298
|
+
Terminus alignment (D10-14): this command and its id-sharing inline sibling `skills/hatch3r-release/SKILL.md` enforce the same stop-before-irreversible boundary, so `/release` is safe regardless of which artifact it resolves to. This command stops here at Step 9; the skill gates every irreversible step (tag push, publish, production deploy) default-OFF behind `--publish` or a typed confirmation (skill → Irreversibility Gate). Neither auto-publishes or auto-deploys on a bare invocation.
|
|
299
|
+
|
|
300
|
+
#### 9a. Stage + commit on the release branch (DCO)
|
|
301
|
+
|
|
302
|
+
When release files changed, stage and commit on the current `release/*` branch with a Conventional-Commit, DCO-signed message (`-s`) per `.claude/rules/commit-conventions.md`:
|
|
303
|
+
|
|
304
|
+
```bash
|
|
305
|
+
git add -A
|
|
306
|
+
git commit -s -m "$(cat <<'EOF'
|
|
307
|
+
chore(release): v{X.Y.Z}
|
|
308
|
+
|
|
309
|
+
- version bump {prev} -> {X.Y.Z} (package.json, .claude-plugin/plugin.json, marketplace manifest)
|
|
310
|
+
- CHANGELOG section [{X.Y.Z}] ({n} PRs)
|
|
311
|
+
- CycloneDX SBOM emitted to dist/sbom.cdx.json
|
|
312
|
+
|
|
313
|
+
Refs #{linked_issue_n}
|
|
314
|
+
EOF
|
|
315
|
+
)"
|
|
316
|
+
```
|
|
317
|
+
|
|
318
|
+
Do NOT `git push` to `board.defaultBranch`, do NOT force-push, do NOT create or push a tag. Pushing the release branch and opening the PR is the human's call (the repo's release norm: cut/operate on a release branch; do not auto-publish/merge).
|
|
319
|
+
|
|
320
|
+
#### 9b. Present the distribution-lane handoff + approval gate
|
|
321
|
+
|
|
322
|
+
Present the release-readiness summary and the marketplace-lane map, then ASK for explicit human approval. Per hatch3r's distribution roadmap, the 3 supported adapters map to these distribution lanes:
|
|
323
|
+
|
|
324
|
+
| Lane | Channel | Status (roadmap) | Release action (human-owned) |
|
|
325
|
+
|------|---------|---------------------|------------------------------|
|
|
326
|
+
| i | npm / CLI | Shipped | CI `release.yml` publishes with OIDC provenance (Sigstore / SLSA) on the pushed tag — `npm publish --provenance`. |
|
|
327
|
+
| iii | Cursor plugin marketplace | Q3 2026 target | Resubmit `docs/marketplace-submission.md` package only on a public-manifest change. |
|
|
328
|
+
| ii | Claude Code plugin marketplace | Q3 2026 target | Update the PR in `anthropics/claude-plugins-official/external_plugins`. |
|
|
329
|
+
| 2d | GitHub Copilot | Q4 2026 target | npm/CLI lane only — `.github/copilot-instructions.md` consumed natively; no separate marketplace. |
|
|
330
|
+
|
|
331
|
+
**ASK (final gate):** "Release v{X.Y.Z} assembled on `{branch}` and committed (DCO-signed). Gates: {pass summary with confidence}. SBOM: {emitted/not-configured}. Review-loop: {clean after N iterations}. Next step is human-owned — none taken by this command. Choose: (1) I'll push the branch + open the PR myself / (2) print the exact tag + push + `npm publish --provenance` commands for me to run / (3) hold — something needs fixing first)." Default-if-no-response: (3) hold (fail-closed — never auto-publish).
|
|
332
|
+
|
|
333
|
+
The npm publish itself runs in CI (`.github/workflows/release.yml`) on the human-pushed tag with OIDC provenance — provenance attestation links the published package to its source + build via Sigstore and requires a cloud runner with `id-token: write`, so a local `npm publish` would not carry provenance and is out of scope here (`https://docs.npmjs.com/generating-provenance-statements`, accessed 2026-06-02).
|
|
334
|
+
|
|
335
|
+
---
|
|
336
|
+
|
|
337
|
+
## Step 10: Iteration Summary (mandatory output)
|
|
338
|
+
|
|
339
|
+
Emit the canonical 9-section iteration summary per `rules/hatch3r-iteration-summary.md` as the final user-facing output. The validation gate at `.claude/rules/capability-lifecycle.md` blocks SUCCESS declarations without this block (CONSTITUTION §6 Decision 23).
|
|
340
|
+
|
|
341
|
+
The 9 sections:
|
|
342
|
+
|
|
343
|
+
1. **Request** — verbatim restatement of the user's ask in one sentence.
|
|
344
|
+
2. **Fan-out + Cost** — `sub_agents_spawned: { count, rationale }` plus the `cost_preview` / actuals / `delta_percent` blocks. Per-tier `expected_sa_count` (from frontmatter `sub_agents_spawned.count: 7` × tier heuristic in `rules/hatch3r-cost-visibility.md`): Tier 1 ≈ 3 (bump + changelog implementer, testability, security); Tier 2 ≈ 6 (+ review loop reviewer/fixer + ci-watcher when a gate trips); Tier 3 up to 7 (full pipeline incl. docs-writer). Token telemetry sources from `src/pipeline/observability.ts`.
|
|
345
|
+
3. **Web Research** — every URL fetched with access date + trust tier per `agents/shared/rigor-contract.md` (0 acceptable when no research was needed).
|
|
346
|
+
4. **Files Mutated** — list with diff summary (version files, CHANGELOG, SBOM, docs).
|
|
347
|
+
5. **Gates Passed / Failed** — explicit list (test, tsc, lint, validate, lockfile-lint, npm audit, hatch3r verify, review loop, testability, security).
|
|
348
|
+
6. **Pillar Impact Attribution** — `progress_toward_pillar: <axis>.<pillar_id>+<delta>` per CONSTITUTION §6 Decision 17.
|
|
349
|
+
7. **Verification Commands** — exact commands run with exit codes plus key output lines (≤200 chars).
|
|
350
|
+
8. **Open Questions / Blockers** — explicit `None` if fully closed; record the Step 9 human-owned next step here.
|
|
351
|
+
9. **Learnings Captured** — IDs of any learnings written to `.hatch3r/learnings/` this run per `rules/hatch3r-learning-system.md`.
|
|
352
|
+
|
|
353
|
+
**Status enum:** SUCCESS (release assembled + committed on the branch, all gates green, awaiting human publish) | PARTIAL (a gate ended on a retry-limit miss or SBOM tooling absent) | FAILED (build broken, no release commit produced) | BLOCKED (review loop unresolved after 3 iterations, or a breaking-change decision needs the user). SUCCESS here means "ready for human publish" — never "published".
|
|
354
|
+
|
|
355
|
+
---
|
|
356
|
+
|
|
357
|
+
## Resumability (Decision 27/30)
|
|
358
|
+
|
|
359
|
+
release is long-running — a Tier 3 release runs preflight, version bump, changelog sync, build + SBOM, adapter verification, the gate set, the reviewer ↔ fixer loop, the final-quality specialist batch, and release-notes reconciliation. Per hatch3r's workspace-checkpointed resumability contract, checkpoint progress so an interrupted run re-enters at the last completed step rather than re-bumping the version or re-emitting the SBOM.
|
|
360
|
+
|
|
361
|
+
> Orchestration boilerplate: see `commands/shared/orchestration-frame.md` → Checkpoint Contract. Per-command slots: workspace `.release-workspace/`; step range the Step 0 → Step 10 progression; `wave` = review-loop iteration index in Step 7a; snapshot/rollback paths every release file touched by Step 2/3/4 implementers and Step 7a fixers. Write points: after Step 1 preflight passes, after the Step 2 version-bump implementer returns, after the Step 3 changelog implementer returns, after the Step 4 build + SBOM step, after Step 5 adapter verification, after the Step 6 gate run, after each Step 7a review-loop iteration, after the Step 7b/7c specialist batch, and after Step 8 reconciliation. The Step 9 commit is recorded so a resume does not double-commit.
|
|
362
|
+
|
|
363
|
+
---
|
|
364
|
+
|
|
365
|
+
## Per-Turn Pipeline-State Header (Bypass Protection)
|
|
366
|
+
|
|
367
|
+
> Orchestration boilerplate: see `commands/shared/orchestration-frame.md` → Per-Turn Pipeline-State Header. Phase mapping for release: `1` = preflight + SemVer decision, `2` = version-bump / changelog / build-SBOM implementer dispatch, `3` = adapter verification + gates + review loop + final-quality batch, `4` = reconciliation + Step 9 human-approval handoff + iteration summary. Tier 1 runs are exempt per the Tier 1 exemption.
|
|
368
|
+
|
|
369
|
+
## End-of-Turn Delegation Attestation (Bypass Protection)
|
|
370
|
+
|
|
371
|
+
> Orchestration boilerplate: see `commands/shared/orchestration-frame.md` → End-of-Turn Delegation Attestation. Per-command mutated-file slot: version files, CHANGELOG, SBOM, docs, fixes. The only inline writes this command performs are the read-only inspections (Steps 1, 5, 6 gate runs) and the Step 9a release commit on the branch; every file mutation (version bump, changelog, SBOM, docs, code fixes) is delegated.
|
|
372
|
+
|
|
373
|
+
## Cost estimate (Decision 24)
|
|
374
|
+
|
|
375
|
+
This command emits cost transparency per `rules/hatch3r-cost-visibility.md` and CONSTITUTION §6 Decision 24/29:
|
|
376
|
+
|
|
377
|
+
- **Pre-execution `cost_preview`** — emitted in Step 0.5 before the Step 2 implementer dispatch.
|
|
378
|
+
- **Post-execution actuals + `delta_percent`** — appended to the Step 10 iteration summary's Fan-out + Cost section. Deltas >25% absolute value carry `flagged_for_review: true`.
|
|
379
|
+
|
|
380
|
+
---
|
|
381
|
+
|
|
382
|
+
## Guardrails
|
|
383
|
+
|
|
384
|
+
1. **Never publish.** `npm publish` is run by CI on a human-pushed tag, never by this command.
|
|
385
|
+
2. **Never merge or push to the default branch.** Step 9 commits to the `release/*` branch only; pushing the branch + opening the PR is the human's action.
|
|
386
|
+
3. **Never force-push, never push a tag.** Tag creation + push is the human-approved publish trigger.
|
|
387
|
+
4. **DCO sign-off required** on the Step 9a release commit (`git commit -s`) per `.claude/rules/commit-conventions.md`.
|
|
388
|
+
5. **Clean tree + release branch are preconditions** (Step 1) — halt with an actionable error otherwise.
|
|
389
|
+
6. **Changelog header must match `package.json` version exactly** — the CI release body extraction depends on it (Step 8).
|
|
390
|
+
7. **No inline implementation.** Every file mutation is delegated to a pipeline sub-agent (Mandatory Delegation Directive, `rules/hatch3r-agent-orchestration.md`); the orchestrator performs only read-only inspections and the Step 9a branch commit.
|
|
391
|
+
8. **Confidence propagation.** Every gate verdict, review-loop verdict, and Step 9 readiness assessment carries a confidence rating from the upstream sub-agent. Dropping the signal is a gate failure.
|
|
392
|
+
9. **Fail-closed approval.** The Step 9 default-if-no-response is hold — a release is never auto-advanced past the human gate.
|
|
393
|
+
10. **This command composes existing hatch3r agents and the `/h4tcher-release-prep` skill** — it does not replace them.
|
|
394
|
+
|
|
395
|
+
## References
|
|
396
|
+
|
|
397
|
+
- Semantic Versioning 2.0.0 — version increment rules (MAJOR/MINOR/PATCH). `https://semver.org/` — accessed 2026-06-02. Trust tier: official specification.
|
|
398
|
+
- Keep a Changelog 1.1.0 — changelog guiding principles, six change-type groupings, ISO-8601 dated headers, Unreleased section. `https://keepachangelog.com/en/1.1.0/` — accessed 2026-06-02. Trust tier: established community standard with named maintainer.
|
|
399
|
+
- CycloneDX JSON spec 1.6 — SBOM `bomFormat`/`specVersion`/`components`/`metadata` and supply-chain transparency use (ECMA-424). `https://cyclonedx.org/docs/1.6/json/` — accessed 2026-06-02. Trust tier: OWASP / ECMA international standard.
|
|
400
|
+
- npm provenance statements — `--provenance`, Sigstore keyless signing, GitHub Actions OIDC, SLSA build-provenance attestation. `https://docs.npmjs.com/generating-provenance-statements` — accessed 2026-06-02. Trust tier: official vendor documentation.
|
|
401
|
+
- hatch3r distribution roadmap — the 3-lane distribution model (npm shipped; Cursor + Claude Q3 2026; Copilot Q4 2026) and the SBOM release criterion the Step 4b/9b lanes implement. Internal product requirements; not a public citation.
|
|
@@ -2,22 +2,24 @@
|
|
|
2
2
|
id: hatch3r-revision
|
|
3
3
|
type: command
|
|
4
4
|
orchestrator: true
|
|
5
|
-
agentPipeline: [hatch3r-implementer, hatch3r-lint-fixer, hatch3r-
|
|
5
|
+
agentPipeline: [hatch3r-researcher, hatch3r-implementer, hatch3r-lint-fixer, hatch3r-testability, hatch3r-reviewer, hatch3r-fixer, hatch3r-security, hatch3r-docs-writer, hatch3r-ui, hatch3r-performance]
|
|
6
6
|
description: User-guided revision of agent-implemented code in a fresh context window. Reconstructs what was done, interviews the user for feedback, fixes issues, cleans up leftovers, and drives toward merge readiness. Delegation, quality pipeline, modes, and board integration details are in commands/revision/.
|
|
7
|
-
tags: [implementation, team]
|
|
7
|
+
tags: [implementation, ctx:team-only]
|
|
8
8
|
quality_charter: agents/shared/quality-charter.md
|
|
9
9
|
efficiency_patterns: agents/shared/efficiency-patterns.md
|
|
10
10
|
cache_friendly: true
|
|
11
11
|
parallel_tool_default: true
|
|
12
|
+
efficiency_tier: deep
|
|
12
13
|
triage_tiers: [1, 2, 3]
|
|
14
|
+
supports_resume: true
|
|
13
15
|
sub_agents_spawned:
|
|
14
|
-
count:
|
|
15
|
-
rationale: Per-revision fanout — implementer, lint-fixer,
|
|
16
|
+
count: 10
|
|
17
|
+
rationale: Per-revision fanout — researcher (conditional, Tier 2/3 pre-implementation context per commands/revision/revision-delegation.md Step 6.pre), implementer, lint-fixer, testability (Stage 1 fix group), reviewer ↔ fixer review loop, then parallel Stage 2 final-quality CQ specialists (security, docs-writer, ui, performance) bounded by max_phase4_parallel. Tier 1 cleanup-only revisions spawn a subset. Cost-dominance per CONSTITUTION §2 P8 — token cost never serializes independent work.
|
|
16
18
|
---
|
|
17
19
|
|
|
18
20
|
## §0 Detect Ambiguity (P8 B1)
|
|
19
21
|
|
|
20
|
-
|
|
22
|
+
> Orchestration boilerplate: see `commands/shared/orchestration-frame.md` → §0 Detect Ambiguity (P8 B1). Triggers: contradictory inputs, missing target, unknown convention.
|
|
21
23
|
|
|
22
24
|
## Agent Pipeline
|
|
23
25
|
|
|
@@ -26,12 +28,14 @@ Before any action, scan the user's request and provided context for unresolved q
|
|
|
26
28
|
| 1. Context Reconstruction | Orchestrator (inline) | No | Yes |
|
|
27
29
|
| 2. User Feedback | User interview (ASK checkpoints) | No | Yes |
|
|
28
30
|
| 3. Leftover Scan + Triage Routing | Orchestrator (inline) | No | Yes |
|
|
29
|
-
| 4. Fix Implementation | `hatch3r-implementer`, `hatch3r-lint-fixer`, `hatch3r-
|
|
31
|
+
| 4. Fix Implementation | `hatch3r-implementer`, `hatch3r-lint-fixer`, `hatch3r-testability` | Per finding type | [FIX NOW] items only |
|
|
30
32
|
| 5a. Review Loop | `hatch3r-reviewer` -> `hatch3r-fixer` (max 3 iterations) | No (sequential) | Yes |
|
|
31
|
-
| 5b. Final Quality — Testing | `hatch3r-
|
|
32
|
-
| 5c. Final Quality — Security | `hatch3r-security
|
|
33
|
+
| 5b. Final Quality — Testing | `hatch3r-testability` | Yes | Yes (code changes) |
|
|
34
|
+
| 5c. Final Quality — Security | `hatch3r-security` | Yes | Yes (code changes) |
|
|
33
35
|
| 5d. Final Quality — Docs | `hatch3r-docs-writer` | Yes | When APIs/architecture/UX affected |
|
|
34
|
-
| 5e. Final Quality — Conditional | `hatch3r-lint-fixer`, `hatch3r-
|
|
36
|
+
| 5e. Final Quality — Conditional | `hatch3r-lint-fixer`, `hatch3r-ui`, `hatch3r-performance` | Yes | When triggered |
|
|
37
|
+
|
|
38
|
+
**Parallel-safety conditions** (per `rules/hatch3r-agent-orchestration.md` §Parallel Safety): every parallel fan-out above holds all three — read-only or disjoint writes, deterministic aggregation, no shared mutable state.
|
|
35
39
|
|
|
36
40
|
## Browser Automation
|
|
37
41
|
|
|
@@ -53,7 +57,7 @@ The user is the reviewer. The agent is the interviewer and fixer.
|
|
|
53
57
|
|
|
54
58
|
## Shared Context
|
|
55
59
|
|
|
56
|
-
**If board context exists** (current branch has an associated PR linked to issues), **read the `hatch3r-board-shared`
|
|
60
|
+
**If board context exists** (current branch has an associated PR linked to issues), **read the `hatch3r-board-shared` skill at the start of the run.** It contains Board Configuration, Platform Detection, Platform Context, Board Sync Procedure, and tooling directives. Cache all values for the duration of this run.
|
|
57
61
|
|
|
58
62
|
If no board context exists (plain instruction, no PR, no linked issues), skip shared context loading and work from the git diff alone.
|
|
59
63
|
|
|
@@ -96,6 +100,39 @@ Classify the revision request before delegating:
|
|
|
96
100
|
|
|
97
101
|
If Tier 1, run the reduced pipeline. If Tier 2, run the standard pipeline below. If Tier 3, run the full pipeline including all quality specialists and confirm merge readiness with the user before commit.
|
|
98
102
|
|
|
103
|
+
### Step 0.5: Emit Pre-Execution Cost Preview
|
|
104
|
+
|
|
105
|
+
Before the first sub-agent dispatch (Step 6 fix delegation), surface the cost preview so a multi-finding revision is never started blind. Emit the `cost_estimate` block per `rules/hatch3r-cost-visibility.md` Pre-Execution Estimate, calibrated to the Step 0 triage tier. A cleanup-only revision with no [FIX NOW] items spawns no sub-agents, so `expected_sa_count: 0` is correct for it.
|
|
106
|
+
|
|
107
|
+
```yaml
|
|
108
|
+
cost_estimate:
|
|
109
|
+
expected_sa_count: <triage tier → Tier 1 cleanup-only ~0, Tier 2 ~5, Tier 3 up to 10>
|
|
110
|
+
estimated_input_tokens_static_frame: <int>
|
|
111
|
+
estimated_web_research_queries: <int>
|
|
112
|
+
triage_tier: light | standard | deep
|
|
113
|
+
estimated_duration_min: <int>
|
|
114
|
+
```
|
|
115
|
+
|
|
116
|
+
The Step 3 user-feedback interview is user-driven and excluded from the duration estimate. Post-execution actuals + delta land in the Step 9 merge-readiness assessment's Fan-out + Cost section per `rules/hatch3r-cost-visibility.md` Post-Execution Actuals. Token telemetry sources from `src/pipeline/observability.ts`.
|
|
117
|
+
|
|
118
|
+
### Effort Override (Decision 17)
|
|
119
|
+
|
|
120
|
+
> Orchestration boilerplate: see `commands/shared/orchestration-frame.md` → Effort Override (Decision 17). Misclassification example: a cleanup-only revision scored as Deep, or a revision with critical findings scored as Light.
|
|
121
|
+
|
|
122
|
+
### Confidence Floor (Decision 16 / D13-SA13.3-F13.3.3)
|
|
123
|
+
|
|
124
|
+
`--effort` calibrates work-effort depth; `--confidence-floor` calibrates the confidence threshold at which the Step 7 review gate (the canonical **Confidence-Aware Review Gate** in `agents/shared/confidence-gate.md`, run by `commands/revision/revision-quality.md` Stage 1) blocks. They are orthogonal. This is the user's pre-flight assertiveness knob — the forced-second-pass on low confidence is post-hoc; the floor sets the bar before the run:
|
|
125
|
+
|
|
126
|
+
- `--confidence-floor=any|medium|high` (default `any`). Resolution order: explicit flag wins over the persisted `hatch3r config confidence_floor=...` default, which wins over the built-in `any`.
|
|
127
|
+
- **`any`** (current behavior): force a second reviewer pass only when reviewer confidence `== low` with 0 Critical + 0 Warning.
|
|
128
|
+
- **`medium`**: force a second pass on ANY finding rated `confidence == low`, even with 0 Critical + 0 Warning.
|
|
129
|
+
- **`high`**: force a second pass on any finding rated `confidence != high`, AND ASK the user on every low-confidence finding regardless of severity.
|
|
130
|
+
- Per P1 maturity tier (Decision 16): solo defaults `any`, enterprise defaults `high`. Pass the resolved floor verbatim into the Step 7 Stage 1 review-gate evaluation (`agents/shared/confidence-gate.md`, which `revision-quality.md` runs) alongside the confidence value sourced from the upstream reviewer (Confidence Propagation Contract). Tier 1 cleanup-only revisions that skip the review loop are unaffected; the floor never relaxes the merge-readiness gate.
|
|
131
|
+
|
|
132
|
+
### Review-Only Mode (D13-SA13.1-F2)
|
|
133
|
+
|
|
134
|
+
`--review-only` turns this command into a **read-only code-review surface** — the standalone "review this code, no changes" entry for development-workflow activity (3) Code review (`governance/audit/domains/D13-human-ai-collaboration.md` §13.1). It runs Steps 1–5 + a single `hatch3r-reviewer` pass and emits a review report, then stops: Step 6 fix delegation, Step 7 fixer/re-review loop and Stage 2 specialists, Step 8 commit/push, and Step 10 learnings write are all skipped, so the run mutates nothing. Full behavior table, report format, and `--auto` interaction: `commands/revision/revision-modes.md` -> Review-Only Mode.
|
|
135
|
+
|
|
99
136
|
---
|
|
100
137
|
|
|
101
138
|
### Step 1: Context Reconstruction
|
|
@@ -105,7 +142,7 @@ Rebuild full context in the fresh window. No prior implementation context is ass
|
|
|
105
142
|
#### 1a. Detect Scope of Changes
|
|
106
143
|
|
|
107
144
|
1. Identify the current branch: `git branch --show-current`.
|
|
108
|
-
2. Determine the default branch from `.
|
|
145
|
+
2. Determine the default branch from `.hatch3r/hatch.json` (`board.defaultBranch`). Fall back to `main` if unavailable.
|
|
109
146
|
3. Compute the diff: `git diff {defaultBranch}...HEAD --stat` for a summary, then `git diff {defaultBranch}...HEAD` for the full diff.
|
|
110
147
|
4. Parse the diff summary: files changed, lines added/removed, file types affected.
|
|
111
148
|
5. Identify affected areas from the file paths (e.g., `src/routes/` -> API, `src/components/` -> UI, `tests/` -> testing).
|
|
@@ -114,7 +151,7 @@ Rebuild full context in the fresh window. No prior implementation context is ass
|
|
|
114
151
|
|
|
115
152
|
> Platform-specific CLI commands: see `commands/board/shared-{platform}.md` for PR/issue lookup
|
|
116
153
|
|
|
117
|
-
1. Detect the platform from `.
|
|
154
|
+
1. Detect the platform from `.hatch3r/hatch.json` (`board.platform`). Fall back to GitHub if unavailable.
|
|
118
155
|
2. Search for an open PR on this branch using the platform CLI:
|
|
119
156
|
- **GitHub:** `gh pr list --head {branch} --state open --json number,title,body,url --limit 1`
|
|
120
157
|
- **Azure DevOps:** `az repos pr list --source-branch {branch} --status active --top 1`
|
|
@@ -127,11 +164,11 @@ Rebuild full context in the fresh window. No prior implementation context is ass
|
|
|
127
164
|
|
|
128
165
|
#### 1c. Load Project Rules
|
|
129
166
|
|
|
130
|
-
Read all `scope: always` rules from
|
|
167
|
+
Read all `scope: always` rules from `rules/`. These must be included in every sub-agent prompt in Step 6.
|
|
131
168
|
|
|
132
169
|
#### 1d. Consult Learnings
|
|
133
170
|
|
|
134
|
-
If `.
|
|
171
|
+
If `.hatch3r/learnings/` exists, scan for learnings with matching areas or tags that overlap with the affected areas from Step 1a.5. Cache relevant learnings for Step 6.
|
|
135
172
|
|
|
136
173
|
---
|
|
137
174
|
|
|
@@ -298,7 +335,7 @@ If the user attempts to defer a Critical finding, execute the Critical Deferral
|
|
|
298
335
|
Critical Deferral Warning:
|
|
299
336
|
Finding: {description}
|
|
300
337
|
Risk: {specific consequence of deferral — e.g., "unvalidated auth tokens may allow unauthorized access"}
|
|
301
|
-
Policy: Critical findings should resolve before merge (
|
|
338
|
+
Policy: Critical findings should resolve before merge (hatch3r quality philosophy).
|
|
302
339
|
```
|
|
303
340
|
|
|
304
341
|
2. **Require rationale.** Do not accept a bare "yes" or "defer" — the user must provide a written reason explaining why deferral is acceptable in this context.
|
|
@@ -366,7 +403,7 @@ If all findings were deferred (no [FIX NOW] items), skip Step 6 entirely and pro
|
|
|
366
403
|
|
|
367
404
|
> Full details: see `commands/revision/revision-quality.md`
|
|
368
405
|
|
|
369
|
-
Two-stage quality pipeline: Stage 1 runs a sequential review loop (`hatch3r-reviewer` -> `hatch3r-fixer`, max 3 iterations). Stage 2 spawns final quality specialists in parallel — mandatory (`hatch3r-
|
|
406
|
+
Two-stage quality pipeline: Stage 1 runs a sequential review loop (`hatch3r-reviewer` -> `hatch3r-fixer`, max 3 iterations). Stage 2 spawns final quality CQ specialists in parallel — mandatory (`hatch3r-testability`, `hatch3r-security`), evaluated (`hatch3r-docs-writer`), and conditional (`hatch3r-ui`, `hatch3r-performance`, `hatch3r-lint-fixer`).
|
|
370
407
|
|
|
371
408
|
---
|
|
372
409
|
|
|
@@ -460,7 +497,7 @@ Capture revision-specific learnings. Focus on patterns that inform future implem
|
|
|
460
497
|
- Were there any integration issues between sub-agent outputs?
|
|
461
498
|
|
|
462
499
|
2. If significant learnings are identified:
|
|
463
|
-
- Create learning files in `.
|
|
500
|
+
- Create learning files in `.hatch3r/learnings/` following the `hatch3r-learn` skill format (`skills/hatch3r-learn/SKILL.md`).
|
|
464
501
|
- Use category `pitfall` for issues agents commonly miss.
|
|
465
502
|
- Use category `pattern` for revision approaches that worked well.
|
|
466
503
|
- Tag with relevant area labels.
|
|
@@ -469,8 +506,57 @@ Capture revision-specific learnings. Focus on patterns that inform future implem
|
|
|
469
506
|
|
|
470
507
|
---
|
|
471
508
|
|
|
509
|
+
## Resumability (Decision 27/30)
|
|
510
|
+
|
|
511
|
+
revision is long-running — a Tier 2/3 run walks 10 sequential steps (context reconstruction → user feedback → proactive scan → consolidated triage → multi-agent fix loops → quality verification → commit & push → merge-readiness → learnings) and delegates to multiple sub-agents per finding. Per hatch3r's workspace-checkpointed resumability contract, checkpoint progress so an interrupted run re-enters at the last completed step rather than re-interviewing the user or re-running the proactive scan.
|
|
512
|
+
|
|
513
|
+
> Orchestration boilerplate: see `commands/shared/orchestration-frame.md` → Checkpoint Contract. Per-command slots: workspace `.revision-workspace/`; step range the Step 0 → Step 10 progression; `wave` = fix-loop iteration index for Step 6; snapshot/rollback paths every file touched by Step 6 fixers. Write points: after Step 1 context reconstruction completes, after Step 2 user validation is confirmed, after Step 3 user feedback closes, after Step 4 proactive scan finishes, after Step 5 triage routing locks, and after every Step 6 fixer sub-agent returns so per-finding fix results survive a crash and are not re-applied on resume. Also after Step 7 quality gate result, after Step 8 commit, and after Step 9 merge-readiness assessment.
|
|
514
|
+
|
|
515
|
+
---
|
|
516
|
+
|
|
517
|
+
## Per-Turn Pipeline-State Header (Bypass Protection)
|
|
518
|
+
|
|
519
|
+
> Orchestration boilerplate: see `commands/shared/orchestration-frame.md` → Per-Turn Pipeline-State Header. Phase mapping for revision: `1` = revision target detection + scope, `2` = sub-agent dispatch (review modes, mode-specific revision tasks), `3` = revision synthesis + acceptance check, `4` = revised artifact write + iteration-summary. Tier 1 runs are exempt per the Tier 1 exemption.
|
|
520
|
+
|
|
521
|
+
## End-of-Turn Delegation Attestation (Bypass Protection)
|
|
522
|
+
|
|
523
|
+
> Orchestration boilerplate: see `commands/shared/orchestration-frame.md` → End-of-Turn Delegation Attestation. Per-command mutated-file slot: revised artifact, revision log, retained-version copy.
|
|
524
|
+
|
|
525
|
+
## Iteration Summary (mandatory output)
|
|
526
|
+
|
|
527
|
+
Emit the canonical 9-section iteration summary per `rules/hatch3r-iteration-summary.md` as the final user-facing output. The validation gate at `.claude/rules/capability-lifecycle.md` blocks SUCCESS declarations without this block (CONSTITUTION §6 Decision 23).
|
|
528
|
+
|
|
529
|
+
The 9 sections:
|
|
530
|
+
|
|
531
|
+
1. **Request** — verbatim restatement of the user's ask in one sentence.
|
|
532
|
+
2. **Fan-out + Cost** — `sub_agents_spawned: { count, rationale }` plus the `cost_estimate` / `cost_actuals` / `delta` blocks (see Cost Visibility below).
|
|
533
|
+
3. **Web Research** — every URL fetched with access date + trust tier per `agents/shared/rigor-contract.md` (0 acceptable when no research was needed).
|
|
534
|
+
4. **Files Mutated** — list with diff summary (lines added / removed / files created).
|
|
535
|
+
5. **Gates Passed / Failed** — explicit list per `.claude/rules/capability-lifecycle.md` Gate Checklist.
|
|
536
|
+
6. **Pillar Impact Attribution** — `progress_toward_pillar: <axis>.<pillar_id>+<delta>` per CONSTITUTION §6 Decision 17.
|
|
537
|
+
7. **Verification Commands** — exact commands run with exit codes plus key output lines (≤200 chars).
|
|
538
|
+
8. **Open Questions / Blockers** — explicit `None` if fully closed.
|
|
539
|
+
9. **Learnings Captured** — IDs of any learnings written to `.hatch3r/learnings/` this run per `rules/hatch3r-learning-system.md`.
|
|
540
|
+
|
|
541
|
+
### Cost Visibility (Decision 24)
|
|
542
|
+
|
|
543
|
+
> Orchestration boilerplate: see `commands/shared/orchestration-frame.md` → Cost Estimate for the 5-field `cost_estimate` schema and the post-execution `cost_actuals` + `delta` contract; both land in Section 2 above.
|
|
544
|
+
|
|
545
|
+
## Cost estimate (Decision 24)
|
|
546
|
+
|
|
547
|
+
This command emits cost transparency per `rules/hatch3r-cost-visibility.md` and CONSTITUTION §6 Decision 24/29:
|
|
548
|
+
|
|
549
|
+
- **Pre-execution `cost_estimate`** — emitted in Step 0.5 before the first sub-agent dispatch (Step 6 fix delegation).
|
|
550
|
+
- **Post-execution `cost_actuals` + `delta`** — appended to the Step 9 merge-readiness assessment's Fan-out + Cost section per `rules/hatch3r-iteration-summary.md` §2.
|
|
551
|
+
|
|
552
|
+
Per-tier `expected_sa_count` calibration (from frontmatter `sub_agents_spawned.count: 10` × tier heuristic in `rules/hatch3r-cost-visibility.md` Pre-Execution Estimate): Tier 1 cleanup-only ≈ 0 (inline fixes, no sub-agent); Tier 2 ≈ 5 (conditional researcher + implementer/lint-fixer/hatch3r-testability fix group + reviewer); Tier 3 up to 10 (conditional researcher + full pipeline including the parallel Stage 2 final-quality specialists bounded by `max_phase4_parallel`). Deltas beyond 25% absolute value carry `flagged_for_review: true`. Token telemetry sources from `src/pipeline/observability.ts`; estimation primitives from `src/pipeline/costEstimator.ts`.
|
|
553
|
+
|
|
554
|
+
---
|
|
555
|
+
|
|
472
556
|
## Auto-Advance Mode, Error Handling, and Guardrails
|
|
473
557
|
|
|
474
558
|
> Full details: see `commands/revision/revision-modes.md`
|
|
475
559
|
|
|
476
|
-
The modes file contains: auto-advance mode (`--auto`), safety guardrails, error handling, and session report format for revision.
|
|
560
|
+
The modes file contains: auto-advance mode (`--auto`), review-only mode (`--review-only`), safety guardrails, error handling, and session report format for revision.
|
|
561
|
+
|
|
562
|
+
**Concurrent invocation guardrail:** before Step 6 fix delegation, acquire `.hatch3r/.lock` and detect-then-warn on a conflicting active pipeline (same branch / open `.hatch3r/hatch.json` board transaction) per `rules/hatch3r-agent-orchestration.md` → Parallel Safety → Concurrent Invocation Handling. Cross-task learnings consolidate at completion, never mid-pipeline.
|