hatch3r 1.9.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 +52 -143
- package/dist/cli/index.js +28453 -15831
- package/dist/content/agents/hatch3r-architect.md +39 -9
- package/dist/content/agents/hatch3r-brownfield-spec.md +254 -0
- package/dist/content/agents/hatch3r-ci-watcher.md +8 -1
- package/dist/content/agents/hatch3r-context-rules.md +19 -1
- package/dist/content/agents/hatch3r-creator.md +65 -26
- package/dist/content/agents/hatch3r-dependency-drafter.md +162 -0
- package/dist/content/agents/hatch3r-devops.md +11 -1
- package/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/dist/content/agents/hatch3r-fixer.md +59 -8
- package/dist/content/agents/hatch3r-greenfield-spec.md +256 -0
- package/dist/content/agents/hatch3r-handoff-loader.md +29 -3
- package/dist/content/agents/hatch3r-handoff-preparer.md +10 -1
- package/dist/content/agents/hatch3r-implementer.md +139 -8
- package/dist/content/agents/hatch3r-incident-responder.md +96 -0
- package/dist/content/agents/hatch3r-learnings-loader.md +122 -88
- package/dist/content/agents/hatch3r-lint-fixer.md +15 -3
- 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/dist/content/agents/hatch3r-researcher.md +27 -4
- package/dist/content/agents/hatch3r-reviewer.md +153 -103
- 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/dist/content/agents/modes/requirements-elicitation.md +1 -1
- package/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/dist/content/agents/shared/efficiency-patterns.md +32 -1
- package/dist/content/agents/shared/injection-patterns.md +18 -7
- package/dist/content/agents/shared/principles.md +60 -0
- package/dist/content/agents/shared/prompt-structure.md +7 -1
- package/dist/content/agents/shared/quality-charter.md +48 -12
- 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/dist/content/agents/shared/user-content-templates.md +34 -8
- package/dist/content/agents/shared/user-question-protocol.md +45 -3
- package/dist/content/checks/README.md +5 -0
- package/dist/content/checks/accessibility.md +14 -7
- package/dist/content/checks/code-quality.md +1 -1
- package/dist/content/checks/performance.md +7 -4
- package/dist/content/checks/security.md +6 -6
- package/dist/content/checks/testing.md +1 -1
- package/dist/content/commands/board/pickup-delegation-multi.md +37 -10
- package/dist/content/commands/board/pickup-delegation.md +7 -5
- package/dist/content/commands/board/pickup-modes.md +1 -0
- package/dist/content/commands/board/pickup-post-impl.md +1 -1
- package/dist/content/commands/hatch3r-api-spec.md +79 -2
- package/dist/content/commands/hatch3r-auth-scaffold.md +250 -0
- package/dist/content/commands/hatch3r-benchmark.md +90 -7
- package/dist/content/commands/hatch3r-board-fill.md +97 -11
- package/dist/content/commands/hatch3r-board-pickup.md +93 -9
- package/dist/content/commands/hatch3r-bug-pipeline.md +240 -0
- package/dist/content/commands/hatch3r-bug-plan.md +79 -3
- package/dist/content/commands/hatch3r-codebase-map.md +80 -4
- package/dist/content/commands/hatch3r-create.md +105 -7
- package/dist/content/commands/hatch3r-debug.md +102 -14
- package/dist/content/commands/hatch3r-diagnose.md +238 -0
- package/dist/content/commands/hatch3r-feature-plan.md +125 -5
- package/dist/content/commands/hatch3r-handoff.md +83 -3
- package/dist/content/commands/hatch3r-healthcheck.md +105 -5
- package/dist/content/commands/hatch3r-incident-response.md +228 -0
- package/dist/content/commands/hatch3r-migration-plan.md +79 -3
- package/dist/content/commands/hatch3r-onboard.md +94 -3
- package/dist/content/commands/hatch3r-pack-install.md +243 -0
- package/dist/content/commands/hatch3r-pr-resolve.md +106 -23
- package/dist/content/commands/hatch3r-project-spec.md +82 -6
- package/dist/content/commands/hatch3r-quick-change.md +108 -13
- package/dist/content/commands/hatch3r-refactor-plan.md +78 -2
- package/dist/content/commands/hatch3r-release.md +401 -0
- package/dist/content/commands/hatch3r-revision.md +98 -12
- package/dist/content/commands/hatch3r-roadmap.md +92 -10
- package/dist/content/commands/hatch3r-security-audit.md +105 -5
- package/dist/content/commands/hatch3r-slo-scaffold.md +246 -0
- package/dist/content/commands/hatch3r-spec.md +216 -0
- package/dist/content/commands/hatch3r-test-plan.md +85 -9
- package/dist/content/commands/hatch3r-workflow.md +165 -41
- package/dist/content/commands/revision/revision-delegation.md +6 -5
- package/dist/content/commands/revision/revision-modes.md +49 -4
- package/dist/content/commands/revision/revision-quality.md +10 -7
- package/dist/content/commands/shared/orchestration-frame.md +119 -0
- package/dist/content/github-agents/hatch3r-docs-agent.md +21 -1
- package/dist/content/github-agents/hatch3r-lint-agent.md +21 -1
- package/dist/content/github-agents/hatch3r-security-agent.md +21 -1
- package/dist/content/github-agents/hatch3r-test-agent.md +21 -1
- package/dist/content/hooks/hatch3r-file-save.md +1 -1
- package/dist/content/hooks/hatch3r-pre-push.md +4 -4
- package/dist/content/hooks/hatch3r-review-loop-cap.md +52 -0
- package/dist/content/mcp/mcp.json +7 -5
- package/dist/content/rules/hatch3r-accessibility-standards.md +14 -2
- package/dist/content/rules/hatch3r-accessibility-standards.mdc +12 -1
- package/dist/content/rules/hatch3r-agent-orchestration-detail.md +58 -19
- package/dist/content/rules/hatch3r-agent-orchestration-detail.mdc +58 -19
- package/dist/content/rules/hatch3r-agent-orchestration.md +87 -213
- package/dist/content/rules/hatch3r-agent-orchestration.mdc +87 -213
- package/dist/content/rules/hatch3r-ai-evals.md +5 -4
- package/dist/content/rules/hatch3r-ai-evals.mdc +3 -3
- package/dist/content/rules/hatch3r-ai-ux-patterns.md +6 -2
- package/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/dist/content/rules/hatch3r-api-design.md +5 -1
- package/dist/content/rules/hatch3r-api-design.mdc +3 -0
- package/dist/content/rules/hatch3r-api-versioning.md +2 -1
- package/dist/content/rules/hatch3r-auth-patterns.md +3 -1
- package/dist/content/rules/hatch3r-auth-patterns.mdc +1 -0
- package/dist/content/rules/hatch3r-browser-verification.md +2 -0
- package/dist/content/rules/hatch3r-browser-verification.mdc +2 -0
- package/dist/content/rules/hatch3r-capability-matrix.md +108 -0
- package/dist/content/rules/hatch3r-capability-matrix.mdc +108 -0
- package/dist/content/rules/hatch3r-ci-cd.md +8 -1
- package/dist/content/rules/hatch3r-ci-cd.mdc +6 -0
- package/dist/content/rules/hatch3r-clarification-default.md +73 -0
- package/dist/content/rules/hatch3r-clarification-default.mdc +73 -0
- package/dist/content/rules/hatch3r-code-standards.md +23 -47
- package/dist/content/rules/hatch3r-code-standards.mdc +22 -46
- package/dist/content/rules/hatch3r-component-conventions.md +3 -0
- package/dist/content/rules/hatch3r-component-conventions.mdc +3 -0
- package/dist/content/rules/hatch3r-container-hardening.md +11 -2
- package/dist/content/rules/hatch3r-container-hardening.mdc +9 -1
- package/dist/content/rules/hatch3r-contract-testing.md +2 -1
- 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/dist/content/rules/hatch3r-data-classification.md +3 -1
- package/dist/content/rules/hatch3r-data-classification.mdc +2 -1
- package/dist/content/rules/hatch3r-deep-context.md +13 -13
- package/dist/content/rules/hatch3r-deep-context.mdc +13 -13
- package/dist/content/rules/hatch3r-dependency-management.md +16 -3
- package/dist/content/rules/hatch3r-dependency-management.mdc +15 -3
- package/dist/content/rules/hatch3r-design-system-detection.md +2 -1
- 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/dist/content/rules/hatch3r-event-schema-evolution.md +2 -1
- package/dist/content/rules/hatch3r-fan-out-discipline.md +91 -0
- package/dist/content/rules/hatch3r-fan-out-discipline.mdc +91 -0
- package/dist/content/rules/hatch3r-feature-flags.md +2 -0
- package/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/dist/content/rules/hatch3r-git-conventions.md +4 -1
- package/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/dist/content/rules/hatch3r-handoff-readiness.md +10 -0
- package/dist/content/rules/hatch3r-handoff-readiness.mdc +10 -0
- package/dist/content/rules/hatch3r-i18n.md +2 -0
- package/dist/content/rules/hatch3r-i18n.mdc +2 -0
- package/dist/content/rules/hatch3r-iteration-summary.md +75 -57
- package/dist/content/rules/hatch3r-iteration-summary.mdc +77 -54
- 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/dist/content/rules/hatch3r-migrations.md +2 -1
- package/dist/content/rules/hatch3r-observability-logging.md +1 -1
- package/dist/content/rules/hatch3r-observability-metrics.md +1 -1
- package/dist/content/rules/hatch3r-observability-tracing.md +45 -36
- package/dist/content/rules/hatch3r-observability-tracing.mdc +44 -35
- package/dist/content/rules/hatch3r-operability.md +2 -1
- package/dist/content/rules/hatch3r-passkey-server.md +2 -1
- package/dist/content/rules/hatch3r-performance-budgets.md +2 -0
- package/dist/content/rules/hatch3r-performance-budgets.mdc +2 -0
- package/dist/content/rules/hatch3r-php-laravel-patterns.md +109 -0
- package/dist/content/rules/hatch3r-php-laravel-patterns.mdc +104 -0
- package/dist/content/rules/hatch3r-progressive-delivery.md +5 -1
- package/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/dist/content/rules/hatch3r-resilience-patterns.md +2 -1
- 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/dist/content/rules/hatch3r-secrets-management.md +10 -1
- package/dist/content/rules/hatch3r-secrets-management.mdc +8 -0
- package/dist/content/rules/hatch3r-security-patterns.md +36 -34
- package/dist/content/rules/hatch3r-security-patterns.mdc +35 -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/dist/content/rules/hatch3r-testing.md +4 -1
- package/dist/content/rules/hatch3r-testing.mdc +2 -0
- package/dist/content/rules/hatch3r-theming.md +2 -0
- package/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/dist/content/rules/hatch3r-tooling-hierarchy.md +29 -31
- package/dist/content/rules/hatch3r-tooling-hierarchy.mdc +27 -30
- package/dist/content/rules/hatch3r-typescript-patterns.md +58 -0
- package/dist/content/rules/hatch3r-typescript-patterns.mdc +53 -0
- package/dist/content/rules/hatch3r-ux-states-and-flows.md +11 -4
- package/dist/content/rules/hatch3r-ux-states-and-flows.mdc +9 -3
- package/dist/content/skills/hatch3r-a11y-audit/SKILL.md +10 -8
- package/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/dist/content/skills/hatch3r-ai-feature/SKILL.md +4 -6
- package/dist/content/skills/hatch3r-api-spec/SKILL.md +27 -2
- package/dist/content/skills/hatch3r-architecture-review/SKILL.md +4 -7
- package/dist/content/skills/hatch3r-board-groom/SKILL.md +11 -0
- package/dist/content/skills/hatch3r-board-init/SKILL.md +17 -1
- package/dist/content/skills/hatch3r-board-refresh/SKILL.md +12 -1
- package/dist/content/skills/hatch3r-board-shared/SKILL.md +38 -1
- package/dist/content/skills/hatch3r-browser-verify/SKILL.md +307 -0
- package/dist/content/skills/hatch3r-bug-fix/SKILL.md +15 -2
- package/dist/content/skills/hatch3r-ci-pipeline/SKILL.md +17 -7
- package/dist/content/skills/hatch3r-cli-fd/SKILL.md +33 -1
- package/dist/content/skills/hatch3r-cli-fzf/SKILL.md +33 -1
- package/dist/content/skills/hatch3r-cli-gh/SKILL.md +50 -1
- package/dist/content/skills/hatch3r-cli-jq/SKILL.md +40 -6
- package/dist/content/skills/hatch3r-cli-ripgrep/SKILL.md +33 -1
- package/dist/content/skills/hatch3r-cli-toolbox/SKILL.md +130 -23
- package/dist/content/skills/hatch3r-containerize/SKILL.md +157 -0
- package/dist/content/skills/hatch3r-context-health/SKILL.md +9 -7
- package/dist/content/skills/hatch3r-cost-tracking/SKILL.md +37 -17
- package/dist/content/skills/hatch3r-customize/SKILL.md +5 -8
- package/dist/content/skills/hatch3r-dep-audit/SKILL.md +23 -7
- package/dist/content/skills/hatch3r-design-system-detect/SKILL.md +3 -7
- package/dist/content/skills/hatch3r-docs-writing/SKILL.md +159 -0
- package/dist/content/skills/hatch3r-enhancability-verify/SKILL.md +152 -0
- package/dist/content/skills/hatch3r-feature/SKILL.md +53 -3
- package/dist/content/skills/hatch3r-feedback/SKILL.md +103 -0
- package/dist/content/skills/hatch3r-gh-agentic-workflows/SKILL.md +10 -8
- package/dist/content/skills/hatch3r-handoff-prepare/SKILL.md +4 -7
- package/dist/content/skills/hatch3r-handoff-resume/SKILL.md +4 -7
- package/dist/content/{commands/hatch3r-hooks.md → skills/hatch3r-hooks/SKILL.md} +48 -137
- package/dist/content/skills/hatch3r-incident-response/SKILL.md +66 -7
- package/dist/content/skills/hatch3r-issue-workflow/SKILL.md +11 -0
- package/dist/content/skills/hatch3r-learn/SKILL.md +317 -0
- package/dist/content/skills/hatch3r-logical-refactor/SKILL.md +6 -7
- package/dist/content/skills/hatch3r-maintainability-verify/SKILL.md +146 -0
- package/dist/content/skills/hatch3r-migration/SKILL.md +8 -7
- package/dist/content/skills/hatch3r-observability-verify/SKILL.md +17 -12
- package/dist/content/skills/hatch3r-perf-audit/SKILL.md +13 -9
- package/dist/content/skills/hatch3r-pr-creation/SKILL.md +4 -7
- package/dist/content/skills/hatch3r-qa-validation/SKILL.md +6 -5
- package/dist/content/skills/hatch3r-recipe/SKILL.md +63 -60
- package/dist/content/skills/hatch3r-refactor/SKILL.md +6 -7
- package/dist/content/skills/hatch3r-release/SKILL.md +123 -11
- package/dist/content/skills/hatch3r-reliability-verify/SKILL.md +9 -5
- package/dist/content/{commands/hatch3r-report.md → skills/hatch3r-report/SKILL.md} +20 -17
- 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/dist/content/skills/hatch3r-ui-ux-verify/SKILL.md +19 -11
- package/dist/content/skills/hatch3r-visual-refactor/SKILL.md +11 -7
- package/package.json +50 -31
- package/dist/cli/index.d.ts +0 -2
- package/dist/cli/index.js.map +0 -1
- package/dist/content/agents/hatch3r-a11y-auditor.md +0 -159
- package/dist/content/agents/hatch3r-dependency-auditor.md +0 -219
- package/dist/content/agents/hatch3r-perf-profiler.md +0 -166
- package/dist/content/agents/hatch3r-security-auditor.md +0 -180
- package/dist/content/agents/hatch3r-test-writer.md +0 -171
- package/dist/content/commands/hatch3r-learn.md +0 -312
- package/dist/content/rules/hatch3r-learning-consult.md +0 -42
- package/dist/content/rules/hatch3r-learning-consult.mdc +0 -38
|
@@ -1,6 +1,8 @@
|
|
|
1
1
|
---
|
|
2
2
|
id: hatch3r-perf-audit
|
|
3
|
-
|
|
3
|
+
name: hatch3r-perf-audit
|
|
4
|
+
type: skill
|
|
5
|
+
description: Profiles and optimizes application performance against defined budgets. Use when investigating performance issues, auditing performance budgets, or optimizing hot paths.
|
|
4
6
|
tags: [review, performance]
|
|
5
7
|
quality_charter: agents/shared/quality-charter.md
|
|
6
8
|
efficiency_patterns: agents/shared/efficiency-patterns.md
|
|
@@ -29,12 +31,7 @@ Before any work, scan the invocation for unresolved questions in scope, intent,
|
|
|
29
31
|
|
|
30
32
|
## Fan-out Discipline (P8 B2)
|
|
31
33
|
|
|
32
|
-
|
|
33
|
-
- Tier 1 (trivial single-file): inline execution acceptable.
|
|
34
|
-
- Tier 2 (multi-file or multi-concern): spawn parallel sub-agents per concern via the Task tool.
|
|
35
|
-
- Tier 3 (multi-module / high-risk): one fresh sub-agent per independent module or gate; orchestrator integrates only.
|
|
36
|
-
|
|
37
|
-
Never under-fan-out to save tokens. Token cost is dominated by quality and completeness gains. Emit `sub_agents_spawned: { count, rationale }` in your output.
|
|
34
|
+
Fan-out scales with task size; token cost never justifies serializing independent work (`rules/hatch3r-fan-out-discipline.md` P8 B2; `agents/shared/efficiency-patterns.md`). Emit `sub_agents_spawned: { count, rationale }` in your output.
|
|
38
35
|
|
|
39
36
|
## Step 1: Read Performance Budgets
|
|
40
37
|
|
|
@@ -104,10 +101,12 @@ Common strategies:
|
|
|
104
101
|
## Step 6: Verify
|
|
105
102
|
|
|
106
103
|
```bash
|
|
107
|
-
|
|
104
|
+
${HATCH3R:VERIFY_GATE_ALL}
|
|
108
105
|
npm run build
|
|
109
106
|
```
|
|
110
107
|
|
|
108
|
+
The gate line is resolved to the project's language-aware command set at sync time (fallback when detection is unknown: `npm run lint && npm run typecheck && npm run test`); the build line is illustrative — substitute the project's build command.
|
|
109
|
+
|
|
111
110
|
- All performance budgets met.
|
|
112
111
|
- No functional regressions.
|
|
113
112
|
- Before/after measurements documented.
|
|
@@ -117,7 +116,7 @@ npm run build
|
|
|
117
116
|
|
|
118
117
|
You MUST spawn these agents via the Task tool (`subagent_type: "generalPurpose"`) at the appropriate points:
|
|
119
118
|
|
|
120
|
-
- **`hatch3r-
|
|
119
|
+
- **`hatch3r-performance`** (CQ7) — MUST spawn to perform autonomous performance profiling and optimization (CWV, p95/p99, bundle-size, N+1, hot-path analysis). Provide the target areas, budget thresholds, and baseline measurements.
|
|
121
120
|
|
|
122
121
|
## Related Rules
|
|
123
122
|
|
|
@@ -136,3 +135,8 @@ You MUST spawn these agents via the Task tool (`subagent_type: "generalPurpose"`
|
|
|
136
135
|
- [ ] No functional regressions
|
|
137
136
|
- [ ] Bundle size within budget (if defined)
|
|
138
137
|
- [ ] Key metrics within project targets
|
|
138
|
+
|
|
139
|
+
## References
|
|
140
|
+
|
|
141
|
+
- [Core Web Vitals — web.dev](https://web.dev/articles/vitals) — accessed 2026-05-31, official-docs (Google / Chrome team). Source for the LCP, INP/FCP/TTI metric definitions and the field-vs-lab measurement guidance behind Step 2.
|
|
142
|
+
- [Lighthouse performance scoring](https://developer.chrome.com/docs/lighthouse/performance/performance-scoring) — accessed 2026-05-31, official-docs (Google / Chrome team). Source for the 60fps/16ms frame target and the metric-weighting model used when prioritising violations in Step 3.
|
|
@@ -1,6 +1,8 @@
|
|
|
1
1
|
---
|
|
2
2
|
id: hatch3r-pr-creation
|
|
3
|
-
|
|
3
|
+
name: hatch3r-pr-creation
|
|
4
|
+
type: skill
|
|
5
|
+
description: Creates a pull request or merge request following project conventions including branch naming, PR/MR template, checklist, and rollout plan. Use when opening or preparing a PR/MR, or when the user asks to create a PR or MR.
|
|
4
6
|
tags: [implementation, orchestration]
|
|
5
7
|
quality_charter: agents/shared/quality-charter.md
|
|
6
8
|
efficiency_patterns: agents/shared/efficiency-patterns.md
|
|
@@ -29,12 +31,7 @@ Before any work, scan the invocation for unresolved questions in scope, intent,
|
|
|
29
31
|
|
|
30
32
|
## Fan-out Discipline (P8 B2)
|
|
31
33
|
|
|
32
|
-
|
|
33
|
-
- Tier 1 (trivial single-file): inline execution acceptable.
|
|
34
|
-
- Tier 2 (multi-file or multi-concern): spawn parallel sub-agents per concern via the Task tool.
|
|
35
|
-
- Tier 3 (multi-module / high-risk): one fresh sub-agent per independent module or gate; orchestrator integrates only.
|
|
36
|
-
|
|
37
|
-
Never under-fan-out to save tokens. Token cost is dominated by quality and completeness gains. Emit `sub_agents_spawned: { count, rationale }` in your output.
|
|
34
|
+
Fan-out scales with task size; token cost never justifies serializing independent work (`rules/hatch3r-fan-out-discipline.md` P8 B2; `agents/shared/efficiency-patterns.md`). Emit `sub_agents_spawned: { count, rationale }` in your output.
|
|
38
35
|
|
|
39
36
|
## Step 1: Branch Naming
|
|
40
37
|
|
|
@@ -1,5 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
id: hatch3r-qa-validation
|
|
3
|
+
name: hatch3r-qa-validation
|
|
4
|
+
type: skill
|
|
3
5
|
description: E2E validation workflow producing a structured pass/fail report with evidence. Use when running QA validation, acceptance testing, verifying releases, or working on QA E2E validation issues.
|
|
4
6
|
tags: [review, orchestration]
|
|
5
7
|
quality_charter: agents/shared/quality-charter.md
|
|
@@ -26,12 +28,11 @@ Before any work, scan the invocation for unresolved questions in scope, intent,
|
|
|
26
28
|
|
|
27
29
|
## Fan-out Discipline (P8 B2)
|
|
28
30
|
|
|
29
|
-
|
|
30
|
-
- Tier 1 (trivial single-file): inline execution acceptable.
|
|
31
|
-
- Tier 2 (multi-file or multi-concern): spawn parallel sub-agents per concern via the Task tool.
|
|
32
|
-
- Tier 3 (multi-module / high-risk): one fresh sub-agent per independent module or gate; orchestrator integrates only.
|
|
31
|
+
Fan-out scales with task size; token cost never justifies serializing independent work (`rules/hatch3r-fan-out-discipline.md` P8 B2; `agents/shared/efficiency-patterns.md`). Emit `sub_agents_spawned: { count, rationale }` in your output.
|
|
33
32
|
|
|
34
|
-
|
|
33
|
+
## Invoked by
|
|
34
|
+
|
|
35
|
+
This skill is a standalone generic E2E validation harness — it has NO 1:1 CQ specialist agent dispatcher (unlike `hatch3r-ui-ux-verify`, `hatch3r-reliability-verify`, `hatch3r-observability-verify`, and `hatch3r-browser-verify`, which each map to a CQ specialist). It is invoked directly by release-prep and acceptance-testing flows, and it delegates the UI/UX sub-gate to `hatch3r-ui-ux-verify` (Step 3c). Kept standalone per the cross-artifact overlap review (F16.3-H4): its pass/fail report spans API, data-integrity, and background-job test cases that no single CQ specialist covers.
|
|
35
36
|
|
|
36
37
|
## Step 1: Read Inputs
|
|
37
38
|
|
|
@@ -1,45 +1,44 @@
|
|
|
1
1
|
---
|
|
2
2
|
id: hatch3r-recipe
|
|
3
|
-
|
|
3
|
+
name: hatch3r-recipe
|
|
4
|
+
type: skill
|
|
5
|
+
description: Authors and validates composition specs that an orchestrating agent walks via the Task tool to run hatch3r commands and skills in a dependency-ordered sequence. Use when designing a multi-step capability composition, customizing an existing one, or debugging a composition the agent walks.
|
|
4
6
|
tags: [orchestration]
|
|
5
7
|
quality_charter: agents/shared/quality-charter.md
|
|
6
8
|
efficiency_patterns: agents/shared/efficiency-patterns.md
|
|
7
9
|
cache_friendly: true
|
|
8
10
|
---
|
|
9
|
-
#
|
|
11
|
+
# Composition Recipes
|
|
12
|
+
|
|
13
|
+
A composition recipe is a YAML spec that names a repeatable multi-step sequence of hatch3r commands and skills with their dependency edges. hatch3r ships no recipe-runner binary and no `.hatch3r/recipes/` materialization; the recipe is read and walked by the orchestrating agent, which dispatches each step's `command:`/`skill:` reference via the Task tool in dependency order. This skill authors and validates that spec — it does not invoke a runtime.
|
|
10
14
|
|
|
11
15
|
## Quick Start
|
|
12
16
|
|
|
13
17
|
```
|
|
14
18
|
Task Progress:
|
|
15
19
|
- [ ] Step 0: Detect ambiguity (P8 B1)
|
|
16
|
-
- [ ] Step 1: Identify the
|
|
20
|
+
- [ ] Step 1: Identify the sequence to capture as a recipe
|
|
17
21
|
- [ ] Step 2: Design the step sequence and dependency graph
|
|
18
22
|
- [ ] Step 3: Write the recipe YAML
|
|
19
|
-
- [ ] Step 4:
|
|
20
|
-
- [ ] Step 5:
|
|
23
|
+
- [ ] Step 4: Validate the spec (resolve references, detect cycles)
|
|
24
|
+
- [ ] Step 5: Have the orchestrating agent walk the recipe via the Task tool
|
|
21
25
|
```
|
|
22
26
|
|
|
23
27
|
## Step 0 — Detect Ambiguity (P8 B1)
|
|
24
28
|
|
|
25
|
-
Before any work, scan the invocation for unresolved questions in scope, intent, acceptance criteria, target environment, or irreversibility. 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. Default path, not an exception. Triggers for THIS skill: recipe scope (
|
|
29
|
+
Before any work, scan the invocation for unresolved questions in scope, intent, acceptance criteria, target environment, or irreversibility. 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. Default path, not an exception. Triggers for THIS skill: recipe scope (one project vs shared across projects), required variables and defaults, checkpoint policy (which steps pause for user confirmation), error policy (re-walk from the failed step vs restart the whole recipe), and where the spec file lives in the repo.
|
|
26
30
|
|
|
27
31
|
## Fan-out Discipline (P8 B2)
|
|
28
32
|
|
|
29
|
-
|
|
30
|
-
- Tier 1 (trivial single-file): inline execution acceptable.
|
|
31
|
-
- Tier 2 (multi-file or multi-concern): spawn parallel sub-agents per concern via the Task tool.
|
|
32
|
-
- Tier 3 (multi-module / high-risk): one fresh sub-agent per independent module or gate; orchestrator integrates only.
|
|
33
|
-
|
|
34
|
-
Never under-fan-out to save tokens. Token cost is dominated by quality and completeness gains. Emit `sub_agents_spawned: { count, rationale }` in your output.
|
|
33
|
+
Fan-out scales with task size; token cost never justifies serializing independent work (`rules/hatch3r-fan-out-discipline.md` P8 B2; `agents/shared/efficiency-patterns.md`). Emit `sub_agents_spawned: { count, rationale }` in your output.
|
|
35
34
|
|
|
36
|
-
## Step 1: Identify
|
|
35
|
+
## Step 1: Identify the Sequence
|
|
37
36
|
|
|
38
|
-
Determine the repeatable
|
|
39
|
-
-
|
|
40
|
-
- What order
|
|
41
|
-
- Which steps can
|
|
42
|
-
- Where should the
|
|
37
|
+
Determine the repeatable sequence pattern:
|
|
38
|
+
- Which hatch3r commands/skills/agents are involved?
|
|
39
|
+
- What order does the orchestrating agent dispatch them in?
|
|
40
|
+
- Which steps can the agent dispatch in parallel (disjoint writes, no shared mutable state per `rules/hatch3r-agent-orchestration.md` → Parallel Safety)?
|
|
41
|
+
- Where should the agent pause to ask the user to confirm (checkpoints)?
|
|
43
42
|
|
|
44
43
|
## Step 2: Design Step Sequence
|
|
45
44
|
|
|
@@ -51,7 +50,7 @@ Map out the dependency graph:
|
|
|
51
50
|
|
|
52
51
|
## Recipe Schema
|
|
53
52
|
|
|
54
|
-
|
|
53
|
+
A recipe is a YAML spec the orchestrating agent reads and walks. Store it wherever the repo keeps shared agent context (for example, a `docs/recipes/` directory you commit, or pasted directly into the agent prompt) — there is no reserved hatch3r path and no loader that auto-discovers it. The agent resolves each step's `command:`/`skill:` reference against the bundled content inventory and dispatches it via the Task tool:
|
|
55
54
|
|
|
56
55
|
```yaml
|
|
57
56
|
name: greenfield-setup
|
|
@@ -105,67 +104,71 @@ completion:
|
|
|
105
104
|
- Continue with `board-pickup` to implement remaining issues
|
|
106
105
|
```
|
|
107
106
|
|
|
108
|
-
|
|
107
|
+
A recipe can reference another recipe as a step via `recipe: <name>` with `inputs:`; the orchestrating agent inlines the referenced spec and walks its steps in place.
|
|
109
108
|
|
|
110
|
-
##
|
|
109
|
+
## Example Composition Patterns
|
|
111
110
|
|
|
112
|
-
|
|
113
|
-
2. **Legacy Onboarding** — codebase analysis → codebase map → board setup → healthcheck → first improvements
|
|
114
|
-
3. **Security Hardening** — security audit → dep audit → findings triage → hardening
|
|
115
|
-
4. **Performance Sprint** — perf audit → budget review → optimization → verification
|
|
116
|
-
5. **Release Preparation** — healthcheck → test validation → security scan → changelog → release
|
|
117
|
-
6. **Quality Gate** — lint fix → test coverage review → a11y audit → perf audit → security scan
|
|
111
|
+
These are illustrative sequences you can encode as recipe specs — hatch3r does not ship them as files. Each arrow is a `depends_on` edge the orchestrating agent honors when walking the spec:
|
|
118
112
|
|
|
119
|
-
|
|
113
|
+
1. **Greenfield Setup** — `project-spec` → `board-init` → (`security-audit` ∥ a11y audit) → first issue
|
|
114
|
+
2. **Legacy Onboarding** — codebase analysis → `codebase-map` → `board-init` → `healthcheck` → first improvements
|
|
115
|
+
3. **Security Hardening** — `security-audit` → `dep-audit` → findings triage → hardening
|
|
116
|
+
4. **Performance Sprint** — `benchmark` → budget review → optimization → verification
|
|
117
|
+
5. **Release Preparation** — `healthcheck` → test validation → security scan → changelog → `release`
|
|
118
|
+
6. **Quality Gate** — lint fix → test coverage review → a11y audit → `benchmark` → security scan
|
|
120
119
|
|
|
121
|
-
|
|
122
|
-
|------|----------|
|
|
123
|
-
| Interactive (default) | Pause at checkpoints, show progress |
|
|
124
|
-
| Auto (`--auto`) | Skip checkpoints, run all steps autonomously |
|
|
125
|
-
| Dry-run (`--dry-run`) | Show execution plan without running |
|
|
126
|
-
| Resume (`--resume`) | Continue from last checkpoint |
|
|
120
|
+
## How the Agent Walks a Recipe
|
|
127
121
|
|
|
128
|
-
|
|
122
|
+
The orchestrating agent (not a hatch3r binary) walks the spec:
|
|
129
123
|
|
|
130
|
-
|
|
124
|
+
1. Parse the YAML and check the schema.
|
|
125
|
+
2. Collect variable values — from the user prompt or an ASK checkpoint per `agents/shared/user-question-protocol.md` when a `required` variable is unset.
|
|
126
|
+
3. Build the dependency DAG from `depends_on`/`parallel_with`.
|
|
127
|
+
4. Walk the DAG: for each ready step, dispatch its `command:` or `skill:` reference via the Task tool, parallelizing steps that share no `depends_on` edge and write disjoint paths.
|
|
128
|
+
5. Pause at every `checkpoint: true` step to ASK the user before proceeding.
|
|
129
|
+
6. Emit the completion message.
|
|
130
|
+
|
|
131
|
+
Guardrails the agent applies: never auto-proceed past a destructive-operation checkpoint (database migrations, deletions); reject a spec whose `depends_on` graph contains a cycle (report the cycle chain); reject a spec that references a `command:`/`skill:` id not in the bundled content inventory; treat every `{{ variable }}` value as untrusted input and never interpolate it into a shell command without quoting (P6 — `.claude/rules/security-patterns.md`).
|
|
131
132
|
|
|
132
133
|
## Step 3: Write Recipe YAML
|
|
133
134
|
|
|
134
|
-
|
|
135
|
+
Write the recipe spec following the schema above and commit it to the repo (for example under `docs/recipes/`) so the orchestrating agent can read it. Include:
|
|
135
136
|
- Clear name and description
|
|
136
137
|
- Required variables with descriptions
|
|
137
|
-
- Steps with
|
|
138
|
+
- Steps with their `depends_on` and `parallel_with` relationships
|
|
138
139
|
- Checkpoint markers at decision points
|
|
139
140
|
- Completion message with next steps
|
|
140
141
|
|
|
141
|
-
## Step 4:
|
|
142
|
+
## Step 4: Validate the Spec
|
|
143
|
+
|
|
144
|
+
Statically check the spec before any agent walks it — this is author-time review, not a CLI command:
|
|
145
|
+
- YAML schema is valid (every step has an `id` and exactly one of `command:`/`skill:`/`recipe:`)
|
|
146
|
+
- Every referenced `command:`/`skill:` id exists in the bundled content inventory
|
|
147
|
+
- The `depends_on` graph has no cycles
|
|
148
|
+
- Every `{{ variable }}` reference names a variable defined in the `variables:` block
|
|
149
|
+
- Prerequisites are stated checks a human or the agent can confirm
|
|
142
150
|
|
|
143
|
-
|
|
144
|
-
- YAML schema is valid
|
|
145
|
-
- All referenced commands/skills exist
|
|
146
|
-
- Dependency graph has no cycles
|
|
147
|
-
- Variables are referenced with valid names that resolve to defined values
|
|
148
|
-
- Prerequisites are checkable
|
|
151
|
+
Resolve every `command:` and `skill:` reference against the bundled content inventory at this step and reject any missing id, so a deprecated or renamed reference fails at author time rather than mid-walk.
|
|
149
152
|
|
|
150
|
-
## Step 5:
|
|
153
|
+
## Step 5: Have the Agent Walk the Recipe
|
|
151
154
|
|
|
152
|
-
|
|
153
|
-
-
|
|
154
|
-
- Parallel steps
|
|
155
|
-
-
|
|
156
|
-
-
|
|
157
|
-
-
|
|
155
|
+
Hand the validated spec to the orchestrating agent (paste it into the agent prompt or point the agent at the committed file) and have it walk the recipe per "How the Agent Walks a Recipe" above. Confirm on a representative run that:
|
|
156
|
+
- The agent dispatches steps in dependency order
|
|
157
|
+
- Parallel steps write disjoint paths and do not conflict
|
|
158
|
+
- The agent pauses at every `checkpoint: true` step
|
|
159
|
+
- A deliberately failed step surfaces the step id, its inputs, and the error
|
|
160
|
+
- The completion message reflects the actual outcome
|
|
158
161
|
|
|
159
162
|
## Error Handling
|
|
160
163
|
|
|
161
|
-
- **
|
|
162
|
-
- **
|
|
163
|
-
- **
|
|
164
|
+
- **A step fails while the agent walks the recipe**: the orchestrating agent reports which step failed, its inputs, and the error message, then offers to re-walk from the failed step after the cause is fixed rather than restarting the whole recipe.
|
|
165
|
+
- **The recipe YAML has schema errors**: report the specific field and line that violates the schema. The agent does not walk a spec that fails validation.
|
|
166
|
+
- **A cycle exists between steps**: catch it during Step 4 validation and report the dependency chain that forms the loop.
|
|
164
167
|
|
|
165
168
|
## Definition of Done
|
|
166
169
|
|
|
167
|
-
- [ ] Recipe YAML validates against schema
|
|
168
|
-
- [ ]
|
|
169
|
-
- [ ]
|
|
170
|
-
- [ ] Error
|
|
171
|
-
- [ ] Recipe committed to
|
|
170
|
+
- [ ] Recipe YAML validates against the schema (Step 4 checks all pass)
|
|
171
|
+
- [ ] Every `command:`/`skill:` reference resolves to a bundled-inventory id
|
|
172
|
+
- [ ] The orchestrating agent walks the recipe in dependency order on a representative run
|
|
173
|
+
- [ ] A deliberately failed step is handled as described in Error Handling
|
|
174
|
+
- [ ] Recipe spec committed to the repo for reuse
|
|
@@ -1,5 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
id: hatch3r-refactor
|
|
3
|
+
name: hatch3r-refactor
|
|
4
|
+
type: skill
|
|
3
5
|
description: Internal code quality improvement workflow without changing external behavior. Use when refactoring code structure, simplifying modules, or improving maintainability.
|
|
4
6
|
tags: [implementation, orchestration]
|
|
5
7
|
quality_charter: agents/shared/quality-charter.md
|
|
@@ -28,12 +30,7 @@ Before any work, scan the invocation for unresolved questions in scope, intent,
|
|
|
28
30
|
|
|
29
31
|
## Fan-out Discipline (P8 B2)
|
|
30
32
|
|
|
31
|
-
|
|
32
|
-
- Tier 1 (trivial single-file): inline execution acceptable.
|
|
33
|
-
- Tier 2 (multi-file or multi-concern): spawn parallel sub-agents per concern via the Task tool.
|
|
34
|
-
- Tier 3 (multi-module / high-risk): one fresh sub-agent per independent module or gate; orchestrator integrates only.
|
|
35
|
-
|
|
36
|
-
Never under-fan-out to save tokens. Token cost is dominated by quality and completeness gains. Emit `sub_agents_spawned: { count, rationale }` in your output.
|
|
33
|
+
Fan-out scales with task size; token cost never justifies serializing independent work (`rules/hatch3r-fan-out-discipline.md` P8 B2; `agents/shared/efficiency-patterns.md`). Emit `sub_agents_spawned: { count, rationale }` in your output.
|
|
37
34
|
|
|
38
35
|
## Step 1: Read Inputs
|
|
39
36
|
|
|
@@ -73,9 +70,11 @@ Before changing code, output:
|
|
|
73
70
|
- Performance verification if refactored code is on a hot path.
|
|
74
71
|
|
|
75
72
|
```bash
|
|
76
|
-
|
|
73
|
+
${HATCH3R:VERIFY_GATE_ALL}
|
|
77
74
|
```
|
|
78
75
|
|
|
76
|
+
Resolved to the project's language-aware gate at sync time (fallback when detection is unknown: `npm run lint && npm run typecheck && npm run test`).
|
|
77
|
+
|
|
79
78
|
## Step 5: Open PR
|
|
80
79
|
|
|
81
80
|
Use the project's PR template. Include:
|
|
@@ -1,6 +1,8 @@
|
|
|
1
1
|
---
|
|
2
2
|
id: hatch3r-release
|
|
3
|
-
|
|
3
|
+
name: hatch3r-release
|
|
4
|
+
type: skill
|
|
5
|
+
description: Cuts a release with version bump, changelog, tagging, and deploy verification. Use when preparing a release, cutting a version, or deploying to production.
|
|
4
6
|
tags: [devops]
|
|
5
7
|
quality_charter: agents/shared/quality-charter.md
|
|
6
8
|
efficiency_patterns: agents/shared/efficiency-patterns.md
|
|
@@ -10,6 +12,18 @@ cache_friendly: true
|
|
|
10
12
|
|
|
11
13
|
# Release Workflow
|
|
12
14
|
|
|
15
|
+
## Relationship to `commands/hatch3r-release.md` (Decision 13 handoff)
|
|
16
|
+
|
|
17
|
+
This skill shares the `id: hatch3r-release` with the orchestrator command `commands/hatch3r-release.md`. The two are NOT duplicates — they split the release workflow by execution model per CONSTITUTION §6 Decision 13:
|
|
18
|
+
|
|
19
|
+
- **`commands/hatch3r-release.md` (orchestrator entry):** the multi-agent release pipeline — implementer applies the version-bump + changelog + SBOM mutations, docs-writer reconciles repo/website docs, a reviewer↔fixer loop verifies the diff, testability + security run the final-quality pass, ci-watcher diagnoses red gates (`agentPipeline: [hatch3r-implementer, hatch3r-docs-writer, hatch3r-reviewer, hatch3r-fixer, hatch3r-testability, hatch3r-security, hatch3r-ci-watcher]`). Use the command when the release warrants sub-agent fan-out (parallel mutation + review-loop + specialist gates) and stops before publish/merge for human approval.
|
|
20
|
+
- **This skill (inline procedure):** the single-pass reference body the command's implementer and docs-writer stages follow for the bump → changelog → quality-gate → tag → supply-chain → deploy sequence. Use the skill directly for a Tier 1 single-maintainer patch release where no fan-out is needed, OR as the step-by-step procedure cited inside the command's mutation stages.
|
|
21
|
+
- **Unique to this skill:** Step 5b (CycloneDX SBOM + npm provenance + SLSA L3 + cosign wiring, with solo/team maturity gating) and the Rollback Procedure are the inline-procedure detail the command references rather than restates.
|
|
22
|
+
|
|
23
|
+
The merge-candidate review (F16.3-H3) flagged the shared id; this handoff documentation is the explicit workflow-split declaration that disambiguates the pair, enforced by the Decision-13 command↔skill gate in `src/cli/commands/validate.ts`. A future collapse into a single command appendix requires coordinated edits to the command body, the bundled content inventory (skills count), and that gate.
|
|
24
|
+
|
|
25
|
+
**Irreversibility alignment (D10-14):** the command and this skill now share the same stop-before-irreversible boundary, so `/release` resolving to either artifact is safe. The command stops at its Step 9 before publish/merge; this skill's Irreversibility Gate makes every irreversible step (tag push, publish, production deploy) default-OFF behind `--publish` or a typed confirmation. Neither artifact auto-publishes or auto-deploys on a bare invocation — the prior mismatch (a stop-before-publish command vs an auto-publish+deploy skill at one slash name) is closed.
|
|
26
|
+
|
|
13
27
|
## Quick Start
|
|
14
28
|
|
|
15
29
|
```
|
|
@@ -20,6 +34,7 @@ Task Progress:
|
|
|
20
34
|
- [ ] Step 3: Update version in package.json and any other version references
|
|
21
35
|
- [ ] Step 4: Verify quality gates (lint, typecheck, all tests)
|
|
22
36
|
- [ ] Step 5: Create git tag and platform release with changelog
|
|
37
|
+
- [ ] Step 5b: Generate supply-chain artifacts (SBOM + provenance + SLSA + cosign)
|
|
23
38
|
- [ ] Step 6: Deploy and verify (staging first if applicable, then production)
|
|
24
39
|
- [ ] Step 7: Monitor post-deploy for errors/regressions
|
|
25
40
|
```
|
|
@@ -30,12 +45,23 @@ Before any work, scan the invocation for unresolved questions in scope, intent,
|
|
|
30
45
|
|
|
31
46
|
## Fan-out Discipline (P8 B2)
|
|
32
47
|
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
- Tier 3 (multi-module / high-risk): one fresh sub-agent per independent module or gate; orchestrator integrates only.
|
|
48
|
+
Fan-out scales with task size; token cost never justifies serializing independent work (`rules/hatch3r-fan-out-discipline.md` P8 B2; `agents/shared/efficiency-patterns.md`). Emit `sub_agents_spawned: { count, rationale }` in your output.
|
|
49
|
+
|
|
50
|
+
## Irreversibility Gate (irreversible steps default-OFF)
|
|
37
51
|
|
|
38
|
-
|
|
52
|
+
This skill drives irreversible publish/deploy actions — `git push`, `gh release create` / `glab release create`, `npm publish --provenance`, and production deploy. Each is a one-way door: a published npm version cannot be re-published, a pushed tag and a created release are public immediately. Reversibility-first: every irreversible step is **default-OFF** and requires explicit operator confirmation before it runs. The default path produces and verifies the artifacts, then **stops before the irreversible action** and asks.
|
|
53
|
+
|
|
54
|
+
| Step | Action | Default | Run-trigger |
|
|
55
|
+
|------|--------|---------|-------------|
|
|
56
|
+
| 5 | `git push origin vX.Y.Z` + platform release create | OFF | `--publish` flag OR operator types the target version `vX.Y.Z` at the confirm prompt |
|
|
57
|
+
| 5b.2 | `npm publish --provenance` | OFF | same `--publish`/typed-version trigger as Step 5; runs in CI on the human-pushed tag (no local publish) |
|
|
58
|
+
| 6 | Deploy to production | OFF | operator types `DEPLOY` at the confirm prompt after staging smoke tests pass |
|
|
59
|
+
|
|
60
|
+
Rules:
|
|
61
|
+
- **No silent auto-publish.** Invoking this skill (`/release`, or as the inline procedure inside `commands/hatch3r-release.md`) without `--publish` runs Steps 0-4 + 5b.1/5b.3-5b.6 artifact emission, then prints the staged release summary and the exact publish/deploy commands, and stops. The operator runs the gated step or re-invokes with `--publish`.
|
|
62
|
+
- **Typed confirmation matches the target.** A free-text "yes" is insufficient for Steps 5/5b.2/6 — the operator types the literal token (`vX.Y.Z` for publish, `DEPLOY` for production) so a reflexive confirmation cannot trigger an irreversible action.
|
|
63
|
+
- **Fail-closed.** No response, an empty response, or a token mismatch leaves the irreversible step un-run and the release un-published. Prefer deprecation over unpublish in Rollback.
|
|
64
|
+
- For a delegated release, the orchestrator command `commands/hatch3r-release.md` enforces the same stop-before-publish boundary at its Step 9 — this skill's gate is the inline-procedure equivalent of that handoff.
|
|
39
65
|
|
|
40
66
|
## Step 1: Determine Version Bump
|
|
41
67
|
|
|
@@ -68,10 +94,12 @@ Never under-fan-out to save tokens. Token cost is dominated by quality and compl
|
|
|
68
94
|
## Step 4: Verify Quality Gates
|
|
69
95
|
|
|
70
96
|
```bash
|
|
71
|
-
|
|
97
|
+
${HATCH3R:VERIFY_GATE_ALL}
|
|
72
98
|
npm run build
|
|
73
99
|
```
|
|
74
100
|
|
|
101
|
+
The gate line is resolved to the project's language-aware command set at sync time (fallback when detection is unknown: `npm run lint && npm run typecheck && npm run test`); the build line is illustrative — substitute the project's build command.
|
|
102
|
+
|
|
75
103
|
- All tests pass (unit, integration, E2E).
|
|
76
104
|
- Bundle size within budget (if defined).
|
|
77
105
|
- Security rules tests pass if rules changed.
|
|
@@ -80,18 +108,95 @@ npm run build
|
|
|
80
108
|
|
|
81
109
|
## Step 5: Create Tag and Release
|
|
82
110
|
|
|
83
|
-
- Create annotated tag
|
|
84
|
-
|
|
111
|
+
Tag-push and release-create are irreversible (default-OFF per the Irreversibility Gate). Create the annotated tag locally, then **stop and confirm** before pushing it or creating the public release. Run the push + release-create only with `--publish` or after the operator types the target `vX.Y.Z` at the confirm prompt.
|
|
112
|
+
|
|
113
|
+
- Create annotated tag: `git tag -a vX.Y.Z -m "Release vX.Y.Z"` (local, reversible — delete with `git tag -d vX.Y.Z`).
|
|
114
|
+
- **Confirm gate (irreversible from here):** push tag: `git push origin vX.Y.Z`.
|
|
85
115
|
- Create the release using the platform CLI (check `platform` in `.hatch3r/hatch.json`):
|
|
86
116
|
- **GitHub:** `gh release create vX.Y.Z --title "vX.Y.Z" --notes "{changelog}"` (or use **GitHub MCP** if available)
|
|
87
117
|
- **Azure DevOps:** `az repos tag create vX.Y.Z` — attach release notes as a wiki page or work item, and upload build artifacts via Azure Artifacts
|
|
88
118
|
- **GitLab:** `glab release create vX.Y.Z --name "vX.Y.Z" --notes "{changelog}"`
|
|
89
119
|
- Attach build artifacts if applicable.
|
|
90
120
|
|
|
121
|
+
## Step 5b: Generate Supply-Chain Artifacts
|
|
122
|
+
|
|
123
|
+
F15.8-H4 (Cycle 10 D15-SA15.8): every release surface MUST emit an SBOM + provenance + SLSA attestation + container signature before deploy. Skipping these produces un-attested artifacts that fail consumer-side `npm audit signatures` and SLSA-Build-L3 verification.
|
|
124
|
+
|
|
125
|
+
Maturity-tier gating (per the P5 maturity-tier model — solo/team/scaleup/enterprise; see `agents/shared/principles.md`):
|
|
126
|
+
- `solo` — MAY defer SBOM emission and SLSA generator for a single-maintainer release. Provenance (`--provenance` flag below) and `cosign` for any container image remain mandatory.
|
|
127
|
+
- `team`, `scaleup`, `enterprise` — MUST execute every sub-step below; consumer verification depends on these artifacts being present.
|
|
128
|
+
|
|
129
|
+
### 5b.1 — Emit CycloneDX SBOM (npm packages)
|
|
130
|
+
|
|
131
|
+
```
|
|
132
|
+
npm sbom --sbom-format=cyclonedx --sbom-type=application > dist/sbom.cdx.json
|
|
133
|
+
```
|
|
134
|
+
|
|
135
|
+
Attach `dist/sbom.cdx.json` to the GitHub release. Reference: `npm sbom` (npm CLI >=10.5.0) emits CycloneDX 1.5 or SPDX 2.3.
|
|
136
|
+
|
|
137
|
+
### 5b.2 — npm provenance via Trusted Publishing (OIDC)
|
|
138
|
+
|
|
139
|
+
Configure Trusted Publisher once on the npm settings page, then publish via GitHub Actions only:
|
|
140
|
+
|
|
141
|
+
```yaml
|
|
142
|
+
permissions:
|
|
143
|
+
id-token: write # OIDC token for Sigstore signing
|
|
144
|
+
contents: read
|
|
145
|
+
steps:
|
|
146
|
+
- run: npm publish --provenance --access public
|
|
147
|
+
```
|
|
148
|
+
|
|
149
|
+
`--provenance` emits a Sigstore-signed attestation through Fulcio + Rekor. Reference: https://docs.npmjs.com/trusted-publishers/ (accessed 2026-05-27). Publish is irreversible (default-OFF per the Irreversibility Gate): it fires from CI only on the human-pushed Step 5 tag — there is no local `npm publish` on the default path.
|
|
150
|
+
|
|
151
|
+
### 5b.3 — SLSA Build Level 3 attestation
|
|
152
|
+
|
|
153
|
+
Pin the slsa-github-generator action by 40-character commit SHA — never a tag:
|
|
154
|
+
|
|
155
|
+
```yaml
|
|
156
|
+
uses: slsa-framework/slsa-github-generator/.github/workflows/generator_generic_slsa3.yml@<40-char-SHA>
|
|
157
|
+
with:
|
|
158
|
+
base64-subjects: ${{ needs.publish.outputs.digest }}
|
|
159
|
+
upload-assets: true
|
|
160
|
+
```
|
|
161
|
+
|
|
162
|
+
Reference: https://github.com/slsa-framework/slsa-github-generator.
|
|
163
|
+
|
|
164
|
+
### 5b.4 — Container image signing (cosign keyless)
|
|
165
|
+
|
|
166
|
+
When the release ships a container image:
|
|
167
|
+
|
|
168
|
+
```
|
|
169
|
+
cosign sign --yes \
|
|
170
|
+
--oidc-issuer https://token.actions.githubusercontent.com \
|
|
171
|
+
ghcr.io/<owner>/<image>@<digest>
|
|
172
|
+
```
|
|
173
|
+
|
|
174
|
+
Reference: https://github.com/sigstore/cosign (cosign 2.x keyless flow).
|
|
175
|
+
|
|
176
|
+
### 5b.5 — Consumer verification snippet
|
|
177
|
+
|
|
178
|
+
Document the verification commands in the release notes:
|
|
179
|
+
|
|
180
|
+
```
|
|
181
|
+
npm audit signatures
|
|
182
|
+
slsa-verifier verify-artifact --provenance-path attestation.intoto.jsonl --source-uri github.com/<owner>/<repo> --source-tag <tag> <artifact-file>
|
|
183
|
+
cosign verify --certificate-identity-regexp 'https://github\.com/<owner>/<repo>/' --certificate-oidc-issuer https://token.actions.githubusercontent.com ghcr.io/<owner>/<image>:<tag>
|
|
184
|
+
```
|
|
185
|
+
|
|
186
|
+
### 5b.6 — Mark gates satisfied
|
|
187
|
+
|
|
188
|
+
- [ ] `dist/sbom.cdx.json` attached to platform release
|
|
189
|
+
- [ ] `npm publish --provenance` exit 0; `npm view <pkg>@<version> --json | jq .dist.signatures` returns a signature
|
|
190
|
+
- [ ] SLSA attestation uploaded; `slsa-verifier verify-artifact` exit 0
|
|
191
|
+
- [ ] Container image signed (when applicable); `cosign verify` exit 0
|
|
192
|
+
- [ ] Verification snippet copied into the release notes
|
|
193
|
+
|
|
91
194
|
## Step 6: Deploy and Verify
|
|
92
195
|
|
|
196
|
+
Production deploy is irreversible (default-OFF per the Irreversibility Gate). Staging is reversible and runs on the default path; the production step **stops and confirms** (operator types `DEPLOY`) only after staging smoke tests pass.
|
|
197
|
+
|
|
93
198
|
- Deploy to staging first (if applicable). Run smoke tests.
|
|
94
|
-
-
|
|
199
|
+
- **Confirm gate (irreversible):** deploy to production (project-specific pipeline) only after the typed `DEPLOY` confirmation or `--publish`.
|
|
95
200
|
- Verify: health check, key flows.
|
|
96
201
|
- Document deploy method and environment in project docs if not already.
|
|
97
202
|
|
|
@@ -108,7 +213,7 @@ npm run build
|
|
|
108
213
|
Version formats: alpha (`x.y.z-alpha.N`), beta (`x.y.z-beta.N`), release candidate (`x.y.z-rc.N`). Workflow:
|
|
109
214
|
|
|
110
215
|
1. Tag pre-release (e.g., `v1.2.0-beta.1`).
|
|
111
|
-
2. Publish to npm with `--tag` (`npm publish --tag beta`).
|
|
216
|
+
2. Publish to npm with `--tag` (`npm publish --tag beta`) — irreversible, same default-OFF gate as Step 5b.2 (publish via CI on the pushed pre-release tag).
|
|
112
217
|
3. Smoke-test against the pre-release package.
|
|
113
218
|
4. Promote: publish stable without pre-release suffix.
|
|
114
219
|
5. Deprecate pre-release versions after stable release.
|
|
@@ -146,8 +251,15 @@ If a release introduces critical issues:
|
|
|
146
251
|
|
|
147
252
|
- [ ] Version bumped in package.json
|
|
148
253
|
- [ ] Changelog generated and included in release
|
|
254
|
+
- [ ] Each irreversible step (tag push, publish, production deploy) ran only after `--publish` or its typed confirmation (Irreversibility Gate) — never silently
|
|
149
255
|
- [ ] Git tag created and pushed
|
|
150
256
|
- [ ] Release published with changelog (GitHub Release / ADO wiki + tag / GitLab Release)
|
|
257
|
+
- [ ] Supply-chain artifacts emitted (SBOM + npm provenance + SLSA + cosign per Step 5b; solo MAY defer SBOM + SLSA, team+ MUST execute all)
|
|
151
258
|
- [ ] Deployed to production and verified
|
|
152
259
|
- [ ] Post-deploy monitoring completed (no critical regressions)
|
|
153
260
|
- [ ] All release gates satisfied
|
|
261
|
+
|
|
262
|
+
## References
|
|
263
|
+
|
|
264
|
+
- [Semantic Versioning 2.0.0](https://semver.org/) — accessed 2026-05-31, official-docs (Tom Preston-Werner / SemVer). Source for the MAJOR.MINOR.PATCH bump rules and the pre-release suffix grammar (`-alpha.N`, `-beta.N`, `-rc.N`) in Step 3 and Pre-Release Support.
|
|
265
|
+
- [npm sbom — npm CLI docs](https://docs.npmjs.com/cli/v10/commands/npm-sbom) — accessed 2026-05-31, official-docs (npm, Inc.). Source for the `npm sbom` CycloneDX 1.5 / SPDX 2.3 output and the >=10.5.0 CLI floor cited in the supply-chain step (5b).
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
---
|
|
2
2
|
id: hatch3r-reliability-verify
|
|
3
|
+
name: hatch3r-reliability-verify
|
|
3
4
|
type: skill
|
|
4
5
|
description: Reliability verification gate before declaring an agent-produced service done — SLO defined, kill switch, timeouts, retries, probes, runbook, staged rollout
|
|
5
6
|
tags: [review, devops]
|
|
@@ -27,12 +28,15 @@ Before any work, scan the invocation for unresolved questions in scope, intent,
|
|
|
27
28
|
|
|
28
29
|
## Fan-out Discipline (P8 B2)
|
|
29
30
|
|
|
30
|
-
|
|
31
|
-
- Tier 1 (trivial single-file): inline execution acceptable.
|
|
32
|
-
- Tier 2 (multi-file or multi-concern): spawn parallel sub-agents per concern via the Task tool.
|
|
33
|
-
- Tier 3 (multi-module / high-risk): one fresh sub-agent per independent module or gate; orchestrator integrates only.
|
|
31
|
+
Fan-out scales with task size; token cost never justifies serializing independent work (`rules/hatch3r-fan-out-discipline.md` P8 B2; `agents/shared/efficiency-patterns.md`). Emit `sub_agents_spawned: { count, rationale }` in your output.
|
|
34
32
|
|
|
35
|
-
|
|
33
|
+
## Invoked by
|
|
34
|
+
|
|
35
|
+
This skill is the verification HARNESS — it declares HOW each reliability gate is checked. The DISPATCHER that decides WHEN to run it is the CQ specialist agent:
|
|
36
|
+
|
|
37
|
+
- `agents/hatch3r-reliability.md` — invokes this skill as a closing reliability gate (CQ4), alongside `skills/hatch3r-observability-verify` for the telemetry sub-vector. The agent contributes the review trigger and Phase-4 dispatch; this skill contributes the 9-gate procedure (SLO, kill switch, timeouts, retries, probes, runbook, staged rollout).
|
|
38
|
+
|
|
39
|
+
No duplication: the agent decides WHEN, this skill defines HOW. The agent body cites this skill (`agents/hatch3r-reliability.md` — "cite `skills/hatch3r-reliability-verify` ... as the closing gates"); this subsection is the symmetric upstream citation per `rules/hatch3r-agent-orchestration.md` (Phase-4 dispatch).
|
|
36
40
|
|
|
37
41
|
## Gate 1: SLO defined
|
|
38
42
|
|