hatch3r 1.8.0 → 1.9.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 +36 -55
- package/dist/cli/index.js +13073 -14671
- package/dist/cli/index.js.map +1 -1
- package/{agents → dist/content/agents}/hatch3r-a11y-auditor.md +2 -2
- package/{agents → dist/content/agents}/hatch3r-ci-watcher.md +2 -2
- package/{agents → dist/content/agents}/hatch3r-context-rules.md +5 -5
- package/{agents → dist/content/agents}/hatch3r-creator.md +15 -15
- package/{agents → dist/content/agents}/hatch3r-dependency-auditor.md +1 -1
- package/{agents → dist/content/agents}/hatch3r-devops.md +3 -3
- package/{agents → dist/content/agents}/hatch3r-fixer.md +2 -2
- package/{agents → dist/content/agents}/hatch3r-handoff-loader.md +11 -11
- package/{agents → dist/content/agents}/hatch3r-handoff-preparer.md +7 -7
- package/{agents → dist/content/agents}/hatch3r-implementer.md +2 -2
- package/{agents → dist/content/agents}/hatch3r-learnings-loader.md +11 -11
- package/{agents → dist/content/agents}/hatch3r-lint-fixer.md +2 -2
- package/{agents → dist/content/agents}/hatch3r-researcher.md +3 -3
- package/{agents → dist/content/agents}/hatch3r-reviewer.md +4 -4
- package/{agents → dist/content/agents}/hatch3r-security-auditor.md +2 -2
- package/{agents → dist/content/agents}/hatch3r-test-writer.md +2 -2
- package/{agents → dist/content/agents}/shared/external-knowledge.md +1 -1
- package/{agents → dist/content/agents}/shared/injection-patterns.md +1 -1
- package/{agents → dist/content/agents}/shared/quality-charter.md +31 -3
- package/{agents → dist/content/agents}/shared/user-content-templates.md +10 -10
- package/{agents → dist/content/agents}/shared/user-question-protocol.md +2 -0
- package/{commands → dist/content/commands}/board/pickup-azure-devops.md +1 -1
- package/{commands → dist/content/commands}/board/pickup-delegation-multi.md +4 -4
- package/{commands → dist/content/commands}/board/pickup-delegation.md +3 -3
- 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-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 +1 -1
- package/{commands → dist/content/commands}/hatch3r-benchmark.md +1 -1
- package/{commands → dist/content/commands}/hatch3r-board-fill.md +7 -7
- package/{commands → dist/content/commands}/hatch3r-board-pickup.md +6 -6
- package/{commands → dist/content/commands}/hatch3r-bug-plan.md +5 -5
- package/{commands → dist/content/commands}/hatch3r-codebase-map.md +2 -2
- package/{commands → dist/content/commands}/hatch3r-create.md +11 -11
- package/{commands → dist/content/commands}/hatch3r-debug.md +11 -11
- package/{commands → dist/content/commands}/hatch3r-feature-plan.md +5 -5
- package/{commands → dist/content/commands}/hatch3r-handoff.md +9 -9
- package/{commands → dist/content/commands}/hatch3r-healthcheck.md +1 -1
- package/{commands → dist/content/commands}/hatch3r-hooks.md +12 -12
- package/{commands → dist/content/commands}/hatch3r-learn.md +11 -11
- package/{commands → dist/content/commands}/hatch3r-migration-plan.md +2 -2
- package/{commands → dist/content/commands}/hatch3r-onboard.md +7 -7
- package/{commands → dist/content/commands}/hatch3r-pr-resolve.md +8 -8
- package/{commands → dist/content/commands}/hatch3r-project-spec.md +3 -3
- package/{commands → dist/content/commands}/hatch3r-quick-change.md +7 -7
- package/{commands → dist/content/commands}/hatch3r-refactor-plan.md +4 -4
- package/{commands → dist/content/commands}/hatch3r-report.md +1 -1
- package/{commands → dist/content/commands}/hatch3r-revision.md +7 -7
- package/{commands → dist/content/commands}/hatch3r-roadmap.md +2 -2
- package/{commands → dist/content/commands}/hatch3r-security-audit.md +2 -2
- package/{commands → dist/content/commands}/hatch3r-test-plan.md +5 -5
- package/{commands → dist/content/commands}/hatch3r-workflow.md +9 -9
- package/{commands → dist/content/commands}/revision/revision-delegation.md +2 -2
- package/{commands → dist/content/commands}/revision/revision-quality.md +2 -2
- package/{github-agents → dist/content/github-agents}/hatch3r-docs-agent.md +1 -1
- package/{github-agents → dist/content/github-agents}/hatch3r-lint-agent.md +1 -1
- package/{github-agents → dist/content/github-agents}/hatch3r-security-agent.md +1 -1
- package/{github-agents → dist/content/github-agents}/hatch3r-test-agent.md +1 -1
- package/{hooks → dist/content/hooks}/hatch3r-ci-failure.md +3 -3
- package/{hooks → dist/content/hooks}/hatch3r-file-save.md +3 -3
- 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 +3 -3
- package/{hooks → dist/content/hooks}/hatch3r-session-start.md +3 -3
- package/{rules → dist/content/rules}/hatch3r-accessibility-standards.md +2 -1
- package/{rules → dist/content/rules}/hatch3r-accessibility-standards.mdc +1 -0
- package/{rules → dist/content/rules}/hatch3r-agent-orchestration-detail.md +2 -2
- package/{rules → dist/content/rules}/hatch3r-agent-orchestration-detail.mdc +1 -1
- package/{rules → dist/content/rules}/hatch3r-agent-orchestration.md +2 -2
- package/{rules → dist/content/rules}/hatch3r-agent-orchestration.mdc +1 -1
- package/{rules → dist/content/rules}/hatch3r-ai-evals.md +2 -1
- package/{rules → dist/content/rules}/hatch3r-ai-evals.mdc +2 -1
- package/{rules → dist/content/rules}/hatch3r-ai-ux-patterns.md +1 -1
- package/{rules → dist/content/rules}/hatch3r-api-versioning.md +1 -0
- package/{rules → dist/content/rules}/hatch3r-api-versioning.mdc +1 -0
- package/{rules → dist/content/rules}/hatch3r-auth-patterns.md +2 -1
- package/{rules → dist/content/rules}/hatch3r-auth-patterns.mdc +1 -0
- package/{rules → dist/content/rules}/hatch3r-browser-verification.md +6 -10
- package/{rules → dist/content/rules}/hatch3r-browser-verification.mdc +6 -10
- package/{rules → dist/content/rules}/hatch3r-ci-cd.md +1 -0
- package/{rules → dist/content/rules}/hatch3r-ci-cd.mdc +1 -0
- package/{rules → dist/content/rules}/hatch3r-code-standards.md +1 -1
- package/{rules → dist/content/rules}/hatch3r-component-conventions.md +1 -1
- package/{rules → dist/content/rules}/hatch3r-container-hardening.md +2 -1
- package/{rules → dist/content/rules}/hatch3r-container-hardening.mdc +1 -0
- package/{rules → dist/content/rules}/hatch3r-contract-testing.md +1 -0
- package/{rules → dist/content/rules}/hatch3r-contract-testing.mdc +1 -0
- package/{rules → dist/content/rules}/hatch3r-data-classification.md +2 -1
- package/{rules → dist/content/rules}/hatch3r-data-classification.mdc +1 -0
- package/{rules → dist/content/rules}/hatch3r-deep-context.md +1 -1
- package/{rules → dist/content/rules}/hatch3r-dependency-management.md +2 -1
- package/{rules → dist/content/rules}/hatch3r-dependency-management.mdc +1 -0
- package/{rules → dist/content/rules}/hatch3r-design-system-detection.md +2 -1
- package/{rules → dist/content/rules}/hatch3r-design-system-detection.mdc +1 -0
- package/{rules → dist/content/rules}/hatch3r-event-schema-evolution.md +1 -0
- package/{rules → dist/content/rules}/hatch3r-event-schema-evolution.mdc +1 -0
- package/{rules → dist/content/rules}/hatch3r-git-conventions.md +1 -1
- package/{rules → dist/content/rules}/hatch3r-handoff-readiness.md +4 -4
- package/{rules → dist/content/rules}/hatch3r-handoff-readiness.mdc +3 -3
- package/{rules → dist/content/rules}/hatch3r-i18n.md +1 -1
- package/{rules → dist/content/rules}/hatch3r-iteration-summary.md +1 -1
- package/{rules → dist/content/rules}/hatch3r-learning-consult.md +7 -7
- package/{rules → dist/content/rules}/hatch3r-learning-consult.mdc +6 -6
- package/{rules → dist/content/rules}/hatch3r-migrations.md +2 -1
- package/{rules → dist/content/rules}/hatch3r-migrations.mdc +1 -0
- package/{rules → dist/content/rules}/hatch3r-observability-logging.md +1 -0
- package/{rules → dist/content/rules}/hatch3r-observability-logging.mdc +1 -0
- package/{rules → dist/content/rules}/hatch3r-observability-metrics.md +1 -0
- package/{rules → dist/content/rules}/hatch3r-observability-metrics.mdc +1 -0
- package/{rules → dist/content/rules}/hatch3r-observability-tracing.md +1 -0
- package/{rules → dist/content/rules}/hatch3r-observability-tracing.mdc +1 -0
- package/{rules → dist/content/rules}/hatch3r-operability.md +1 -0
- package/{rules → dist/content/rules}/hatch3r-operability.mdc +1 -0
- package/{rules → dist/content/rules}/hatch3r-passkey-server.md +2 -1
- package/{rules → dist/content/rules}/hatch3r-passkey-server.mdc +1 -0
- package/{rules → dist/content/rules}/hatch3r-performance-budgets.md +1 -1
- package/{rules → dist/content/rules}/hatch3r-performance-budgets.mdc +1 -1
- package/{rules → dist/content/rules}/hatch3r-resilience-patterns.md +1 -0
- package/{rules → dist/content/rules}/hatch3r-resilience-patterns.mdc +1 -0
- package/{rules → dist/content/rules}/hatch3r-secrets-management.md +2 -1
- package/{rules → dist/content/rules}/hatch3r-secrets-management.mdc +1 -0
- package/{rules → dist/content/rules}/hatch3r-security-patterns.md +2 -1
- package/{rules → dist/content/rules}/hatch3r-security-patterns.mdc +1 -0
- package/{rules → dist/content/rules}/hatch3r-testing.md +2 -1
- package/{rules → dist/content/rules}/hatch3r-testing.mdc +1 -0
- package/{rules → dist/content/rules}/hatch3r-theming.md +1 -1
- package/{rules → dist/content/rules}/hatch3r-tooling-hierarchy.md +4 -4
- package/{rules → dist/content/rules}/hatch3r-tooling-hierarchy.mdc +3 -3
- package/{rules → dist/content/rules}/hatch3r-ux-states-and-flows.md +2 -1
- package/{rules → dist/content/rules}/hatch3r-ux-states-and-flows.mdc +1 -0
- package/{skills → dist/content/skills}/hatch3r-a11y-audit/SKILL.md +1 -1
- package/{skills → dist/content/skills}/hatch3r-architecture-review/SKILL.md +1 -1
- package/{commands/hatch3r-board-groom.md → dist/content/skills/hatch3r-board-groom/SKILL.md} +5 -18
- package/{commands/hatch3r-board-init.md → dist/content/skills/hatch3r-board-init/SKILL.md} +17 -30
- package/{commands/hatch3r-board-refresh.md → dist/content/skills/hatch3r-board-refresh/SKILL.md} +5 -18
- package/{commands/hatch3r-board-shared.md → dist/content/skills/hatch3r-board-shared/SKILL.md} +7 -14
- package/{skills → dist/content/skills}/hatch3r-bug-fix/SKILL.md +1 -1
- package/{skills → dist/content/skills}/hatch3r-cli-fd/SKILL.md +1 -1
- package/{skills → dist/content/skills}/hatch3r-cli-fzf/SKILL.md +1 -1
- package/{skills → dist/content/skills}/hatch3r-cli-gh/SKILL.md +4 -4
- package/{skills → dist/content/skills}/hatch3r-cli-jq/SKILL.md +3 -3
- package/{skills → dist/content/skills}/hatch3r-cli-ripgrep/SKILL.md +3 -3
- package/dist/content/skills/hatch3r-cli-toolbox/SKILL.md +269 -0
- package/{skills → dist/content/skills}/hatch3r-context-health/SKILL.md +18 -2
- package/{skills → dist/content/skills}/hatch3r-cost-tracking/SKILL.md +59 -7
- package/{skills → dist/content/skills}/hatch3r-customize/SKILL.md +5 -6
- package/{skills → dist/content/skills}/hatch3r-dep-audit/SKILL.md +6 -2
- package/{skills → dist/content/skills}/hatch3r-design-system-detect/SKILL.md +1 -1
- package/{skills → dist/content/skills}/hatch3r-feature/SKILL.md +1 -1
- package/{skills → dist/content/skills}/hatch3r-gh-agentic-workflows/SKILL.md +4 -4
- 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 +9 -9
- package/{skills → dist/content/skills}/hatch3r-handoff-resume/SKILL.md +2 -2
- package/{skills → dist/content/skills}/hatch3r-incident-response/SKILL.md +2 -2
- package/{skills → dist/content/skills}/hatch3r-issue-workflow/SKILL.md +4 -4
- package/{skills → dist/content/skills}/hatch3r-migration/SKILL.md +1 -1
- package/{skills → dist/content/skills}/hatch3r-observability-verify/SKILL.md +0 -1
- package/{skills → dist/content/skills}/hatch3r-perf-audit/SKILL.md +1 -1
- package/{skills → dist/content/skills}/hatch3r-pr-creation/SKILL.md +4 -4
- package/{skills → dist/content/skills}/hatch3r-qa-validation/SKILL.md +2 -2
- package/{skills → dist/content/skills}/hatch3r-recipe/SKILL.md +82 -2
- package/{skills → dist/content/skills}/hatch3r-refactor/SKILL.md +1 -1
- package/{skills → dist/content/skills}/hatch3r-release/SKILL.md +35 -2
- package/{skills → dist/content/skills}/hatch3r-ui-ux-verify/SKILL.md +1 -1
- package/{skills → dist/content/skills}/hatch3r-visual-refactor/SKILL.md +1 -1
- package/package.json +6 -18
- 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-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/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-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-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-rule-customize/SKILL.md +0 -23
- package/skills/hatch3r-skill-customize/SKILL.md +0 -23
- /package/{agents → dist/content/agents}/hatch3r-architect.md +0 -0
- /package/{agents → dist/content/agents}/hatch3r-docs-writer.md +0 -0
- /package/{agents → dist/content/agents}/hatch3r-perf-profiler.md +0 -0
- /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/requirements-elicitation.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/{agents → dist/content/agents}/modes/user-flows.md +0 -0
- /package/{agents → dist/content/agents}/shared/efficiency-patterns.md +0 -0
- /package/{agents → dist/content/agents}/shared/prompt-structure.md +0 -0
- /package/{checks → dist/content/checks}/README.md +0 -0
- /package/{checks → dist/content/checks}/accessibility.md +0 -0
- /package/{checks → dist/content/checks}/code-quality.md +0 -0
- /package/{checks → dist/content/checks}/performance.md +0 -0
- /package/{checks → dist/content/checks}/security.md +0 -0
- /package/{checks → dist/content/checks}/testing.md +0 -0
- /package/{commands → dist/content/commands}/board/pickup-modes.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/{commands → dist/content/commands}/revision/revision-modes.md +0 -0
- /package/{mcp → dist/content/mcp}/mcp.json +0 -0
- /package/{rules → dist/content/rules}/hatch3r-ai-ux-patterns.mdc +0 -0
- /package/{rules → dist/content/rules}/hatch3r-api-design.md +0 -0
- /package/{rules → dist/content/rules}/hatch3r-api-design.mdc +0 -0
- /package/{rules → dist/content/rules}/hatch3r-code-standards.mdc +0 -0
- /package/{rules → dist/content/rules}/hatch3r-component-conventions.mdc +0 -0
- /package/{rules → dist/content/rules}/hatch3r-deep-context.mdc +0 -0
- /package/{rules → dist/content/rules}/hatch3r-feature-flags.md +0 -0
- /package/{rules → dist/content/rules}/hatch3r-feature-flags.mdc +0 -0
- /package/{rules → dist/content/rules}/hatch3r-git-conventions.mdc +0 -0
- /package/{rules → dist/content/rules}/hatch3r-i18n.mdc +0 -0
- /package/{rules → dist/content/rules}/hatch3r-iteration-summary.mdc +0 -0
- /package/{rules → dist/content/rules}/hatch3r-progressive-delivery.md +0 -0
- /package/{rules → dist/content/rules}/hatch3r-progressive-delivery.mdc +0 -0
- /package/{rules → dist/content/rules}/hatch3r-theming.mdc +0 -0
- /package/{skills → dist/content/skills}/hatch3r-a11y-audit/references/manual-audit-checklist.md +0 -0
- /package/{skills → dist/content/skills}/hatch3r-ai-feature/SKILL.md +0 -0
- /package/{skills → dist/content/skills}/hatch3r-api-spec/SKILL.md +0 -0
- /package/{skills → dist/content/skills}/hatch3r-ci-pipeline/SKILL.md +0 -0
- /package/{skills → dist/content/skills}/hatch3r-issue-workflow/references/delegation-patterns.md +0 -0
- /package/{skills → dist/content/skills}/hatch3r-logical-refactor/SKILL.md +0 -0
- /package/{skills → dist/content/skills}/hatch3r-reliability-verify/SKILL.md +0 -0
|
@@ -2,8 +2,8 @@
|
|
|
2
2
|
id: hatch3r-tooling-hierarchy
|
|
3
3
|
type: rule
|
|
4
4
|
description: Platform MCP-first priority, documentation MCP for library APIs, web research for CVEs, and browser MCP for UI verification with fallback guidance
|
|
5
|
-
scope: "**/.
|
|
6
|
-
tags: [
|
|
5
|
+
scope: "**/.hatch3r/**,**/mcp/**,**/mcp.json,**/.cursor/**,**/.github/copilot*,**/hatch.json,**/.claude/**"
|
|
6
|
+
tags: [orchestration]
|
|
7
7
|
quality_charter: agents/shared/quality-charter.md
|
|
8
8
|
cache_friendly: true
|
|
9
9
|
---
|
|
@@ -13,7 +13,7 @@ cache_friendly: true
|
|
|
13
13
|
|
|
14
14
|
**Prefer platform MCP tools over the platform CLI** when the MCP server provides typed tools with structured input/output. Use them as the primary interface for issue tracker and repository operations.
|
|
15
15
|
|
|
16
|
-
Read `platform` from `.
|
|
16
|
+
Read `platform` from `.hatch3r/hatch.json` to determine which platform tools to use.
|
|
17
17
|
|
|
18
18
|
### Prerequisites
|
|
19
19
|
|
|
@@ -82,7 +82,7 @@ Use web search to retrieve current, real-world information not available in proj
|
|
|
82
82
|
- Internal project decisions (use project ADRs).
|
|
83
83
|
|
|
84
84
|
**Fallback when web search is unavailable:**
|
|
85
|
-
If no web search MCP server is configured (e.g., `brave-search` is not in `mcp.servers` in `.
|
|
85
|
+
If no web search MCP server is configured (e.g., `brave-search` is not in `mcp.servers` in `.hatch3r/hatch.json`), web research cannot be performed. In this case:
|
|
86
86
|
- Note in your output when web research would have been valuable (e.g., "Web research recommended for CVE verification but not available").
|
|
87
87
|
- Rely more heavily on Context7 documentation MCP and codebase exploration.
|
|
88
88
|
- Flag security-sensitive decisions that would benefit from current advisory data.
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
---
|
|
2
2
|
description: Platform MCP-first priority, documentation MCP for library APIs, web research for CVEs, and browser MCP for UI verification with fallback guidance
|
|
3
|
-
globs: ["**/.
|
|
3
|
+
globs: ["**/.hatch3r/**", "**/mcp/**", "**/mcp.json", "**/.cursor/**", "**/.github/copilot*", "**/hatch.json", "**/.claude/**"]
|
|
4
4
|
alwaysApply: false
|
|
5
5
|
---
|
|
6
6
|
# Tooling Hierarchy
|
|
@@ -9,7 +9,7 @@ alwaysApply: false
|
|
|
9
9
|
|
|
10
10
|
**Prefer platform MCP tools over the platform CLI** when the MCP server provides typed tools with structured input/output. Use them as the primary interface for issue tracker and repository operations.
|
|
11
11
|
|
|
12
|
-
Read `platform` from `.
|
|
12
|
+
Read `platform` from `.hatch3r/hatch.json` to determine which platform tools to use.
|
|
13
13
|
|
|
14
14
|
### Prerequisites
|
|
15
15
|
|
|
@@ -78,7 +78,7 @@ Use web search to retrieve current, real-world information not available in proj
|
|
|
78
78
|
- Internal project decisions (use project ADRs).
|
|
79
79
|
|
|
80
80
|
**Fallback when web search is unavailable:**
|
|
81
|
-
If no web search MCP server is configured (e.g., `brave-search` is not in `mcp.servers` in `.
|
|
81
|
+
If no web search MCP server is configured (e.g., `brave-search` is not in `mcp.servers` in `.hatch3r/hatch.json`), web research cannot be performed. In this case:
|
|
82
82
|
- Note in your output when web research would have been valuable (e.g., "Web research recommended for CVE verification but not available").
|
|
83
83
|
- Rely more heavily on Context7 documentation MCP and codebase exploration.
|
|
84
84
|
- Flag security-sensitive decisions that would benefit from current advisory data.
|
|
@@ -3,7 +3,8 @@ id: hatch3r-ux-states-and-flows
|
|
|
3
3
|
type: rule
|
|
4
4
|
description: Four-state surface contract (loading/empty/error/partial), user-flow decomposition before implementation, and microcopy + tone discipline for end-user UIs
|
|
5
5
|
scope: "**/*.vue,**/*.jsx,**/*.tsx,**/*.svelte,**/components/**,**/*.html,**/messages/**,**/locales/**,**/copy/**"
|
|
6
|
-
tags: [ux, ui, frontend]
|
|
6
|
+
tags: [implementation, floor:ui-ux, ux, ui, frontend]
|
|
7
|
+
precedence: high
|
|
7
8
|
quality_charter: agents/shared/quality-charter.md
|
|
8
9
|
cache_friendly: true
|
|
9
10
|
---
|
|
@@ -2,6 +2,7 @@
|
|
|
2
2
|
description: Four-state surface contract (loading/empty/error/partial), user-flow decomposition before implementation, and microcopy + tone discipline for end-user UIs
|
|
3
3
|
globs: ["**/*.vue", "**/*.jsx", "**/*.tsx", "**/*.svelte", "**/components/**", "**/*.html", "**/messages/**", "**/locales/**", "**/copy/**"]
|
|
4
4
|
alwaysApply: false
|
|
5
|
+
precedence: high
|
|
5
6
|
---
|
|
6
7
|
# UX States and Flows
|
|
7
8
|
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
id: hatch3r-a11y-audit
|
|
3
3
|
description: Run a WCAG AA accessibility audit with findings and fixes across 7 scan categories (keyboard, contrast, ARIA, reduced motion, screen reader, high contrast, automated axe). Use when auditing accessibility or verifying WCAG compliance.
|
|
4
|
-
tags: [review, a11y]
|
|
4
|
+
tags: [review, floor:ui-ux, a11y]
|
|
5
5
|
quality_charter: agents/shared/quality-charter.md
|
|
6
6
|
efficiency_patterns: agents/shared/efficiency-patterns.md
|
|
7
7
|
cache_friendly: true
|
|
@@ -72,7 +72,7 @@ Reference:
|
|
|
72
72
|
## Step 4: External Research
|
|
73
73
|
|
|
74
74
|
- For external library docs and current best practices, follow the project's tooling hierarchy.
|
|
75
|
-
- **Issue/PR search** (check `platform` in `.
|
|
75
|
+
- **Issue/PR search** (check `platform` in `.hatch3r/hatch.json`): Search for related issues, prior discussions, or similar decisions in the repo:
|
|
76
76
|
- **GitHub:** Use **GitHub MCP** or `gh issue list --search "..."` / `gh pr list --search "..."`
|
|
77
77
|
- **Azure DevOps:** `az boards query --wiql "SELECT [System.Id] FROM WorkItems WHERE [System.Title] CONTAINS '...'"` or `az repos pr list`
|
|
78
78
|
- **GitLab:** `glab issue list --search "..."` / `glab mr list --search "..."`
|
package/{commands/hatch3r-board-groom.md → dist/content/skills/hatch3r-board-groom/SKILL.md}
RENAMED
|
@@ -1,9 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
id: hatch3r-board-groom
|
|
3
|
-
type: command
|
|
4
|
-
orchestrator: false
|
|
5
3
|
description: Ongoing backlog refinement for existing board items. Re-prioritize, reclassify, re-scope, archive stale items, decompose oversized issues, merge duplicates, refresh dependencies, and remediate board health findings.
|
|
6
|
-
tags: [board, team]
|
|
4
|
+
tags: [board, ctx:team-only]
|
|
7
5
|
quality_charter: agents/shared/quality-charter.md
|
|
8
6
|
efficiency_patterns: agents/shared/efficiency-patterns.md
|
|
9
7
|
cache_friendly: true
|
|
@@ -14,17 +12,6 @@ parallel_tool_default: true
|
|
|
14
12
|
|
|
15
13
|
Before any action, scan the user's request and provided context for unresolved questions in scope, acceptance criteria, irreversibility, or constraint conflicts (contradictory inputs, missing target, unknown convention). If any are found, ask the user via the platform-native question tool per `agents/shared/user-question-protocol.md` — do not proceed under silent assumption. This is the default path, not an exception. Acceptable to proceed without asking ONLY when scope is single-target, single-concern, and the brief alone is testable. Any residual ambiguity discovered mid-workflow invokes the same protocol.
|
|
16
14
|
|
|
17
|
-
## Agent Pipeline
|
|
18
|
-
|
|
19
|
-
This command runs as a single orchestrator without sub-agent delegation.
|
|
20
|
-
|
|
21
|
-
All board operations MUST follow the Board Sync Enforcement rules defined in `hatch3r-board-shared`.
|
|
22
|
-
|
|
23
|
-
# Board Groom -- Backlog Refinement for Existing Issues
|
|
24
|
-
|
|
25
|
-
Perform ongoing backlog grooming on **{owner}/{repo}** (read from `.agents/hatch.json` board config). Scans all open issues, surfaces health-driven refinement suggestions, and lets the user selectively apply grooming actions: re-prioritize, reclassify, re-scope, demote, archive, decompose, merge duplicates, refresh dependencies, and remediate board health gaps. Unlike `board-fill` (which ingests new work from `todo.md`), board-groom operates exclusively on existing board items. Unlike `board-refresh` (which is read-only), board-groom mutates issues based on user-confirmed decisions.
|
|
26
|
-
|
|
27
|
-
---
|
|
28
15
|
|
|
29
16
|
## Integration with GitHub Agentic Workflows
|
|
30
17
|
|
|
@@ -42,7 +29,7 @@ GitHub Agentic Workflows and hatch3r are complementary: use agentic workflows fo
|
|
|
42
29
|
|
|
43
30
|
## Shared Context
|
|
44
31
|
|
|
45
|
-
**Read the `hatch3r-board-shared`
|
|
32
|
+
**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.
|
|
46
33
|
|
|
47
34
|
## Token-Saving Directives
|
|
48
35
|
|
|
@@ -56,10 +43,10 @@ Execute these steps in order. **Do not skip any step.** Ask the user at every ch
|
|
|
56
43
|
|
|
57
44
|
### Step 1: Read Configuration
|
|
58
45
|
|
|
59
|
-
1. Read `.
|
|
60
|
-
2. Read `platform` from `.
|
|
46
|
+
1. Read `.hatch3r/hatch.json` and cache the full config (top-level `owner`/`repo`, `platform`, and `board` section).
|
|
47
|
+
2. Read `platform` from `.hatch3r/hatch.json`. Default to `github` if missing.
|
|
61
48
|
3. Resolve owner/repo per `hatch3r-board-shared`: use top-level `owner`/`repo` first, fall back to `board.owner`/`board.repo` if top-level values are empty.
|
|
62
|
-
4. If both are missing, abort with: "Cannot groom board -- owner and repo are not configured in `.
|
|
49
|
+
4. If both are missing, abort with: "Cannot groom board -- owner and repo are not configured in `.hatch3r/hatch.json`. Run `board-init` first."
|
|
63
50
|
5. Note `board.projectNumber` -- if null, board sync will be skipped later.
|
|
64
51
|
|
|
65
52
|
---
|
|
@@ -1,9 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
id: hatch3r-board-init
|
|
3
|
-
type: command
|
|
4
|
-
orchestrator: false
|
|
5
3
|
description: Initialize a project board (GitHub Projects V2, Azure Boards, or GitLab Issue Boards) with hatch3r's label taxonomy, status fields, and board structure. Platform detected from hatch.json.
|
|
6
|
-
tags: [board, team]
|
|
4
|
+
tags: [board, ctx:team-only]
|
|
7
5
|
quality_charter: agents/shared/quality-charter.md
|
|
8
6
|
efficiency_patterns: agents/shared/efficiency-patterns.md
|
|
9
7
|
cache_friendly: true
|
|
@@ -14,17 +12,6 @@ parallel_tool_default: true
|
|
|
14
12
|
|
|
15
13
|
Before any action, scan the user's request and provided context for unresolved questions in scope, acceptance criteria, irreversibility, or constraint conflicts (contradictory inputs, missing target, unknown convention). If any are found, ask the user via the platform-native question tool per `agents/shared/user-question-protocol.md` — do not proceed under silent assumption. This is the default path, not an exception. Acceptable to proceed without asking ONLY when scope is single-target, single-concern, and the brief alone is testable. Any residual ambiguity discovered mid-workflow invokes the same protocol.
|
|
16
14
|
|
|
17
|
-
## Agent Pipeline
|
|
18
|
-
|
|
19
|
-
This command runs as a single orchestrator without sub-agent delegation.
|
|
20
|
-
|
|
21
|
-
All board operations MUST follow the Board Sync Enforcement rules defined in `hatch3r-board-shared`.
|
|
22
|
-
|
|
23
|
-
# Board Init -- Bootstrap a Project Board
|
|
24
|
-
|
|
25
|
-
Initialize a new or existing project board for **{owner}/{repo}** (read from `.agents/hatch.json` board config). The `platform` field in `hatch.json` determines whether to set up GitHub Projects V2, Azure Boards, or GitLab Issue Boards. Sets up status fields/states, creates the full hatch3r label/tag taxonomy, optionally migrates issues from another project, and writes all IDs back to `.agents/hatch.json` so subsequent board commands work out of the box. AI proposes configuration; user confirms before any mutation.
|
|
26
|
-
|
|
27
|
-
---
|
|
28
15
|
|
|
29
16
|
## Integration with Platform Agentic Workflows
|
|
30
17
|
|
|
@@ -41,7 +28,7 @@ Platform agentic workflows and hatch3r are complementary: use platform workflows
|
|
|
41
28
|
|
|
42
29
|
## Shared Context
|
|
43
30
|
|
|
44
|
-
**Read the `hatch3r-board-shared`
|
|
31
|
+
**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.
|
|
45
32
|
|
|
46
33
|
## Token-Saving Directives
|
|
47
34
|
|
|
@@ -53,7 +40,7 @@ Follow the **Token-Saving Directives** in `hatch3r-board-shared`.
|
|
|
53
40
|
|
|
54
41
|
If the user requests quick mode, defaults mode, or passes a `--quick` or `--defaults` flag: use all auto-detected values without prompting and proceed directly to execution with a single confirmation. Specifically:
|
|
55
42
|
|
|
56
|
-
1. Auto-detect owner/repo from `.
|
|
43
|
+
1. Auto-detect owner/repo from `.hatch3r/hatch.json` (skip ASK in 1.1).
|
|
57
44
|
2. Default to "Create new project" if `board.projectNumber` is null (skip ASK in 1.2).
|
|
58
45
|
3. Use `{repo} Board` as the project name (skip ASK in 1.2a).
|
|
59
46
|
4. Auto-detect default branch via `git rev-parse --abbrev-ref origin/HEAD` (skip ASK in 1.2b).
|
|
@@ -73,7 +60,7 @@ This command runs in two phases: **Planning** (collect all answers) then **Execu
|
|
|
73
60
|
|
|
74
61
|
Run BEFORE Phase 1. Halt on the first failure with an actionable fix command. Do not prompt for board configuration choices until every prerequisite below succeeds.
|
|
75
62
|
|
|
76
|
-
1. **Run the shared Prerequisite Check.** Execute the `Prerequisite Check` block in `hatch3r-board-shared` §"Prerequisite Check (run at the start of every board command)" — verifies `.
|
|
63
|
+
1. **Run the shared Prerequisite Check.** Execute the `Prerequisite Check` block in `hatch3r-board-shared` §"Prerequisite Check (run at the start of every board command)" — verifies `.hatch3r/hatch.json` exists, owner/repo configured, and platform CLI authenticated (`gh auth status` / `az account show` / `glab auth status`).
|
|
77
64
|
|
|
78
65
|
2. **Verify platform credentials at the env-var layer.** The shared prereq check confirms the CLI is authenticated; this step additionally verifies the underlying credential is present for non-interactive runs:
|
|
79
66
|
|
|
@@ -97,12 +84,12 @@ Run BEFORE Phase 1. Halt on the first failure with an actionable fix command. Do
|
|
|
97
84
|
**If platform is `gitlab`:**
|
|
98
85
|
- Run `glab auth status`. If it fails, check for `GITLAB_TOKEN`. If neither is configured, ASK using the same plain-text fallback shape with options: (1) `glab auth login` interactively, (2) provide GITLAB_TOKEN, (3) abort. Default: 1.
|
|
99
86
|
|
|
100
|
-
3. **Verify owner/repo identity.** Read `.
|
|
87
|
+
3. **Verify owner/repo identity.** Read `.hatch3r/hatch.json` and confirm both top-level `owner`/`repo` (or `board.owner`/`board.repo` as fallback) are set and non-empty. If either is empty, ASK using the user-question-protocol plain-text fallback shape:
|
|
101
88
|
|
|
102
89
|
```
|
|
103
|
-
**Question:** Owner/repo are not configured in `.
|
|
90
|
+
**Question:** Owner/repo are not configured in `.hatch3r/hatch.json`. How should I capture them?
|
|
104
91
|
|
|
105
|
-
1. Provide owner and repo now — paste in this turn; I will write them to `.
|
|
92
|
+
1. Provide owner and repo now — paste in this turn; I will write them to `.hatch3r/hatch.json` after Phase 1 confirmation.
|
|
106
93
|
2. Run `npx hatch3r config` first — abort, configure repo identity, then re-run `hatch3r-board-init`.
|
|
107
94
|
|
|
108
95
|
Default if no response: 1
|
|
@@ -122,8 +109,8 @@ Collect all configuration choices upfront. No GitHub API calls or file writes in
|
|
|
122
109
|
|
|
123
110
|
#### 1.1: Read Configuration
|
|
124
111
|
|
|
125
|
-
1. Read `.
|
|
126
|
-
2. Read `platform` from `.
|
|
112
|
+
1. Read `.hatch3r/hatch.json` and cache the `board` config.
|
|
113
|
+
2. Read `platform` from `.hatch3r/hatch.json`. Default to `github` if missing. Cache for the run.
|
|
127
114
|
3. Resolve owner/repo per `hatch3r-board-shared`: **Use top-level `owner`/`repo` first.** Fall back to `board.owner`/`board.repo` if top-level values are empty.
|
|
128
115
|
4. If both are set (from either source), note: "Using owner=`{owner}`, repo=`{repo}`, platform=`{platform}`."
|
|
129
116
|
5. If either is missing:
|
|
@@ -135,7 +122,7 @@ Update the in-memory config with the provided values.
|
|
|
135
122
|
#### 1.2: Choose Mode
|
|
136
123
|
|
|
137
124
|
**If platform is `github`:**
|
|
138
|
-
1. If `board.projectNumber` is already set in `.
|
|
125
|
+
1. If `board.projectNumber` is already set in `.hatch3r/hatch.json`, default to **B** (Connect to existing project #{board.projectNumber}).
|
|
139
126
|
2. If `board.projectNumber` is null or missing, default to **A** (Create new).
|
|
140
127
|
|
|
141
128
|
**If platform is `azure-devops`:**
|
|
@@ -158,15 +145,15 @@ No separate prompt — the project name is included in the consolidated plan con
|
|
|
158
145
|
|
|
159
146
|
#### 1.2b: Default Branch
|
|
160
147
|
|
|
161
|
-
1. Auto-detect the default branch: run `git rev-parse --abbrev-ref origin/HEAD` and strip the `origin/` prefix. If the command fails (e.g., no remote configured), fall back to `board.defaultBranch` from `.
|
|
148
|
+
1. Auto-detect the default branch: run `git rev-parse --abbrev-ref origin/HEAD` and strip the `origin/` prefix. If the command fails (e.g., no remote configured), fall back to `board.defaultBranch` from `.hatch3r/hatch.json`, then to `"main"`.
|
|
162
149
|
2. Record the detected branch name. This value is written to `board.defaultBranch` and used by board-pickup (checkout, PR base) and other agents.
|
|
163
150
|
|
|
164
151
|
No separate prompt — the detected branch is included in the consolidated plan confirmation (Step 1.6).
|
|
165
152
|
|
|
166
153
|
#### 1.3: Area Labels
|
|
167
154
|
|
|
168
|
-
1. Auto-suggest area labels from the top-level source directories in the codebase. Scan the repository root and common source roots (`src/`, `packages/`, `apps/`) for top-level directories that represent distinct areas (e.g., `frontend`, `backend`, `api`, `infra`, `cli`, `docs`). Exclude non-area directories (`node_modules`, `.git`, `dist`, `build`, `.github`, `.
|
|
169
|
-
2. If `board.areas` already has entries in `.
|
|
155
|
+
1. Auto-suggest area labels from the top-level source directories in the codebase. Scan the repository root and common source roots (`src/`, `packages/`, `apps/`) for top-level directories that represent distinct areas (e.g., `frontend`, `backend`, `api`, `infra`, `cli`, `docs`). Exclude non-area directories (`node_modules`, `.git`, `dist`, `build`, `.github`, `.hatch3r`, `coverage`, `__tests__`).
|
|
156
|
+
2. If `board.areas` already has entries in `.hatch3r/hatch.json`, use those as the default and note the source.
|
|
170
157
|
3. Present the auto-detected areas in the consolidated plan confirmation (Step 1.6) where the user can confirm, add, remove, or skip area labels.
|
|
171
158
|
|
|
172
159
|
No separate prompt — area labels are included in the consolidated plan confirmation (Step 1.6).
|
|
@@ -209,7 +196,7 @@ Board Init Plan:
|
|
|
209
196
|
|
|
210
197
|
Execute all planned mutations in sequence. No further questions unless a mutation fails.
|
|
211
198
|
|
|
212
|
-
**--resume flag.** When invoked with `--resume`, board-init checks `board.workflows.itemClosedEnabled` in `.
|
|
199
|
+
**--resume flag.** When invoked with `--resume`, board-init checks `board.workflows.itemClosedEnabled` in `.hatch3r/hatch.json`. If true, Phase 2.1 through 2.5 are skipped (project, status field, labels, migration, config write-back have already succeeded) and execution jumps directly to the workflow verification gate (§2.2 step 6 above) for the GitHub platform, then proceeds to §2.6 (Create Board Overview Issue) on success. If the gate still fails, the command re-halts with the same actionable message. Non-GitHub platforms ignore `--resume` and run Phase 2 normally.
|
|
213
200
|
|
|
214
201
|
#### 2.1: Create or Connect Project
|
|
215
202
|
|
|
@@ -361,7 +348,7 @@ Execute all planned mutations in sequence. No further questions unless a mutatio
|
|
|
361
348
|
|
|
362
349
|
#### 2.3: Create Label Taxonomy
|
|
363
350
|
|
|
364
|
-
1. Read the label taxonomy from `board.labels` in `.
|
|
351
|
+
1. Read the label taxonomy from `board.labels` in `.hatch3r/hatch.json`.
|
|
365
352
|
2. If labels are not defined or empty, use these defaults:
|
|
366
353
|
|
|
367
354
|
| Category | Labels |
|
|
@@ -535,7 +522,7 @@ Board Init Complete:
|
|
|
535
522
|
Areas: [list or "none"]
|
|
536
523
|
Migration: N issues migrated from Project #X (or "skipped")
|
|
537
524
|
Board overview: #{issueNumber}
|
|
538
|
-
Config: .
|
|
525
|
+
Config: .hatch3r/hatch.json updated
|
|
539
526
|
```
|
|
540
527
|
|
|
541
528
|
---
|
|
@@ -557,4 +544,4 @@ Board Init Complete:
|
|
|
557
544
|
- **Collect all choices in Phase 1 before any mutations in Phase 2.**
|
|
558
545
|
- **Never skip Planning questions or the plan confirmation step.**
|
|
559
546
|
- **Require proper authentication** for the configured platform. If mutations fail with permission errors, surface platform-specific auth requirements.
|
|
560
|
-
- **Preserve existing `.
|
|
547
|
+
- **Preserve existing `.hatch3r/hatch.json` content** outside the `board` key when writing config back.
|
package/{commands/hatch3r-board-refresh.md → dist/content/skills/hatch3r-board-refresh/SKILL.md}
RENAMED
|
@@ -1,9 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
id: hatch3r-board-refresh
|
|
3
|
-
type: command
|
|
4
|
-
orchestrator: false
|
|
5
3
|
description: Regenerate the living board overview dashboard from current board state. Scans all open issues, computes health metrics, and updates the meta:board-overview issue.
|
|
6
|
-
tags: [board, team]
|
|
4
|
+
tags: [board, ctx:team-only]
|
|
7
5
|
quality_charter: agents/shared/quality-charter.md
|
|
8
6
|
efficiency_patterns: agents/shared/efficiency-patterns.md
|
|
9
7
|
cache_friendly: true
|
|
@@ -14,17 +12,6 @@ parallel_tool_default: true
|
|
|
14
12
|
|
|
15
13
|
Before any action, scan the user's request and provided context for unresolved questions in scope, acceptance criteria, irreversibility, or constraint conflicts (contradictory inputs, missing target, unknown convention). If any are found, ask the user via the platform-native question tool per `agents/shared/user-question-protocol.md` — do not proceed under silent assumption. This is the default path, not an exception. Acceptable to proceed without asking ONLY when scope is single-target, single-concern, and the brief alone is testable. Any residual ambiguity discovered mid-workflow invokes the same protocol.
|
|
16
14
|
|
|
17
|
-
## Agent Pipeline
|
|
18
|
-
|
|
19
|
-
This command runs as a single orchestrator without sub-agent delegation.
|
|
20
|
-
|
|
21
|
-
All board operations MUST follow the Board Sync Enforcement rules defined in `hatch3r-board-shared`.
|
|
22
|
-
|
|
23
|
-
# Board Refresh -- Regenerate the Board Overview Dashboard
|
|
24
|
-
|
|
25
|
-
Scan all open issues/work items on **{owner}/{repo}** (read from `.agents/hatch.json` board config), compute board health metrics, build implementation lanes from dependency analysis, and regenerate the `meta:board-overview` dashboard issue with current data, model recommendations, and health diagnostics. The `platform` field determines whether to interact with GitHub Issues, Azure DevOps Work Items, or GitLab Issues. This is a lightweight, read-heavy command -- the only mutation is updating (or creating) the single board overview issue.
|
|
26
|
-
|
|
27
|
-
---
|
|
28
15
|
|
|
29
16
|
## Integration with GitHub Agentic Workflows
|
|
30
17
|
|
|
@@ -44,7 +31,7 @@ GitHub Agentic Workflows and hatch3r are complementary: use agentic workflows fo
|
|
|
44
31
|
|
|
45
32
|
## Shared Context
|
|
46
33
|
|
|
47
|
-
**Read the `hatch3r-board-shared`
|
|
34
|
+
**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.
|
|
48
35
|
|
|
49
36
|
## Token-Saving Directives
|
|
50
37
|
|
|
@@ -58,10 +45,10 @@ Execute these steps in order. **Do not skip any step.**
|
|
|
58
45
|
|
|
59
46
|
### Step 1: Read Configuration
|
|
60
47
|
|
|
61
|
-
1. Read `.
|
|
62
|
-
2. Read `platform` from `.
|
|
48
|
+
1. Read `.hatch3r/hatch.json` and cache the full config (top-level `owner`/`repo`, `platform`, and `board` section).
|
|
49
|
+
2. Read `platform` from `.hatch3r/hatch.json`. Default to `github` if missing.
|
|
63
50
|
3. Resolve owner/repo per `hatch3r-board-shared`: use top-level `owner`/`repo` first, fall back to `board.owner`/`board.repo` if top-level values are empty.
|
|
64
|
-
4. If both are missing, abort with: "Cannot refresh board -- owner and repo are not configured in `.
|
|
51
|
+
4. If both are missing, abort with: "Cannot refresh board -- owner and repo are not configured in `.hatch3r/hatch.json`. Run `board-init` first."
|
|
65
52
|
5. Note `board.projectNumber` -- if null, board sync will be skipped later.
|
|
66
53
|
|
|
67
54
|
---
|
package/{commands/hatch3r-board-shared.md → dist/content/skills/hatch3r-board-shared/SKILL.md}
RENAMED
|
@@ -1,9 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
id: hatch3r-board-shared
|
|
3
|
-
type: shared-context
|
|
4
|
-
orchestrator: false
|
|
5
3
|
description: Shared context and procedures for all board commands. Provides platform-agnostic board config, label taxonomy, branch conventions, sync enforcement, and tooling directives. Platform-specific details are in commands/board/shared-{platform}.md.
|
|
6
|
-
tags: [board, team]
|
|
4
|
+
tags: [board, ctx:team-only]
|
|
7
5
|
quality_charter: agents/shared/quality-charter.md
|
|
8
6
|
efficiency_patterns: agents/shared/efficiency-patterns.md
|
|
9
7
|
cache_friendly: true
|
|
@@ -13,21 +11,16 @@ parallel_tool_default: true
|
|
|
13
11
|
|
|
14
12
|
Shared context for `hatch3r-board-fill`, `hatch3r-board-groom`, `hatch3r-board-pickup`, `hatch3r-board-refresh`, and related board commands. Read once per run and cache.
|
|
15
13
|
|
|
16
|
-
## Agent Pipeline
|
|
17
|
-
|
|
18
|
-
This command provides shared context and procedures for board commands. It does not spawn sub-agents directly.
|
|
19
|
-
|
|
20
|
-
---
|
|
21
14
|
|
|
22
15
|
## Prerequisite Check (run at the start of every board command)
|
|
23
16
|
|
|
24
17
|
Before reading configuration, validate that prerequisites are met. If any check fails, stop immediately with an actionable error message. For interactive sessions where credentials are missing, use the `agents/shared/user-question-protocol.md` plain-text fallback shape to offer the user a numbered choice (interactive login / paste-token / abort) instead of a bare stop message.
|
|
25
18
|
|
|
26
|
-
1. **hatch.json exists:** If `.
|
|
19
|
+
1. **hatch.json exists:** If `.hatch3r/hatch.json` is missing or unreadable, stop with:
|
|
27
20
|
> "Board commands require a hatch3r project. Run `npx hatch3r init` to set up your project first."
|
|
28
21
|
|
|
29
22
|
2. **owner/repo configured:** If both top-level `owner`/`repo` and `board.owner`/`board.repo` are empty, stop with:
|
|
30
|
-
> "Board commands require owner and repo. Run `npx hatch3r config` to set your repository identity, or provide them in `.
|
|
23
|
+
> "Board commands require owner and repo. Run `npx hatch3r config` to set your repository identity, or provide them in `.hatch3r/hatch.json` under the top-level `owner` and `repo` fields."
|
|
31
24
|
|
|
32
25
|
3. **Platform authentication:** Verify CLI authentication for the configured platform. On failure, ASK via user-question-protocol with three numbered options (interactive login / paste-token / abort) and default to option 1 if no response.
|
|
33
26
|
- **GitHub:** Run `gh auth status`. If it fails or the `project` scope is missing, check `GITHUB_TOKEN`/`GH_TOKEN` env vars first; if absent, ASK: (1) `gh auth login` interactively, (2) paste a PAT with `project` scope (set GITHUB_TOKEN for this session only), (3) abort. Reference: https://docs.github.com/en/issues/planning-and-tracking-with-projects
|
|
@@ -35,7 +28,7 @@ Before reading configuration, validate that prerequisites are met. If any check
|
|
|
35
28
|
- **GitLab:** Run `glab auth status`. If it fails, check `GITLAB_TOKEN`; if absent, ASK: (1) `glab auth login` interactively, (2) provide GITLAB_TOKEN, (3) abort. Confirm access to project `{namespace}/{project}`.
|
|
36
29
|
|
|
37
30
|
4. **projectNumber set (for commands other than board-init):** For `board-fill`, `board-groom`, `board-pickup`, and `board-refresh`, if `board.projectNumber` is null, stop with:
|
|
38
|
-
> "No project board configured. Run the `board-init` command first to create or connect a project board. This sets up the board.projectNumber in `.
|
|
31
|
+
> "No project board configured. Run the `board-init` command first to create or connect a project board. This sets up the board.projectNumber in `.hatch3r/hatch.json`."
|
|
39
32
|
|
|
40
33
|
5. **GitHub PAT project scope (GitHub only, for board-init/fill/groom/pickup):** If GitHub mutations fail with permission errors, surface:
|
|
41
34
|
> "GitHub Projects V2 requires the `project` scope on your PAT. Run `gh auth refresh -s project` to add it. Classic PATs need `admin:org` for org-owned projects."
|
|
@@ -46,7 +39,7 @@ Report each failed prerequisite with the specific fix command. Do not proceed pa
|
|
|
46
39
|
|
|
47
40
|
## Board Configuration
|
|
48
41
|
|
|
49
|
-
All board commands read project-specific configuration from `.
|
|
42
|
+
All board commands read project-specific configuration from `.hatch3r/hatch.json`. The GitHub owner and repo are defined at the top level (`owner`, `repo`). Board-specific configuration (Projects v2 IDs, label taxonomy, branch conventions, area labels) lives under the `board` key. **Read `.hatch3r/hatch.json` at the start of every run and cache both top-level and `board` config for the duration.**
|
|
50
43
|
|
|
51
44
|
**Owner/repo resolution:** Use top-level `owner`/`repo`. Fall back to `board.owner`/`board.repo` if top-level values are empty (backward compatibility).
|
|
52
45
|
|
|
@@ -95,7 +88,7 @@ If any field is `null` or missing, the corresponding feature is disabled (e.g.,
|
|
|
95
88
|
|
|
96
89
|
## Platform Detection
|
|
97
90
|
|
|
98
|
-
Read `platform` from `.
|
|
91
|
+
Read `platform` from `.hatch3r/hatch.json`. This determines all CLI commands, API patterns, and terminology for this run. If `platform` is missing or empty, default to `github`.
|
|
99
92
|
|
|
100
93
|
> Platform-specific details: see `commands/board/shared-github.md`
|
|
101
94
|
> Platform-specific details: see `commands/board/shared-azure-devops.md`
|
|
@@ -141,7 +134,7 @@ Board sync is **MANDATORY**, not optional. The following rules override any "ski
|
|
|
141
134
|
6. **Cross-reference: every epic/work item and sub-issue must have its board item ID tracked for subsequent updates.** After adding an item to the board, store the returned item ID in the run cache keyed by issue number.
|
|
142
135
|
7. **`has-dependencies` label consistency:** Every issue with a non-empty `## Dependencies` section (containing at least one `Blocked by` or `Recommended after` reference) MUST have the `has-dependencies` label. Issues whose `## Dependencies` section contains only `None` MUST NOT have the label. Board commands enforce this during creation and update.
|
|
143
136
|
8. **Retry-then-halt fallback policy.** When the Board Sync Procedure's full fallback chain (platform CLI -> MCP) fails for a single item, retry the full chain exactly twice with 2-second then 8-second backoffs. If the third attempt fails, halt that item (not the whole run), roll back only the specific status label this run added (snapshot the item's label set at start-of-sync; do not revert labels that pre-existed or were set concurrently by a human), surface the item to the user as a blocker, and record all three attempts with timestamps under `sync_results` in the run cache.
|
|
144
|
-
9. **Null-option abort.** If any `board.statusOptions.*` key required by a planned sync mutation is null in `.
|
|
137
|
+
9. **Null-option abort.** If any `board.statusOptions.*` key required by a planned sync mutation is null in `.hatch3r/hatch.json`, halt the mutation before it fires with: "Cannot sync {status:label}: board.statusOptions.{key} is null in .hatch3r/hatch.json. Run `hatch3r-board-init` to populate status option IDs." Do not proceed with remaining items in the batch.
|
|
145
138
|
10. **Retry budget ceiling.** No more than 20% of items in a batch may enter retry (rule 8). If the ceiling is exceeded, halt the batch -- this pattern indicates systemic failure (auth expired, project moved, rate limit exceeded), not per-item noise. Record a single batch-level error in the run cache `errors` entry in addition to the per-item `sync_results`.
|
|
146
139
|
|
|
147
140
|
---
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
id: hatch3r-bug-fix
|
|
3
3
|
description: Step-by-step bug fix workflow. Diagnose root cause, implement minimal fix, write regression test. Use when fixing bugs, working on bug report issues, or when the user mentions a bug.
|
|
4
|
-
tags: [
|
|
4
|
+
tags: [implementation, orchestration]
|
|
5
5
|
quality_charter: agents/shared/quality-charter.md
|
|
6
6
|
efficiency_patterns: agents/shared/efficiency-patterns.md
|
|
7
7
|
cache_friendly: true
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
id: hatch3r-cli-fd
|
|
3
3
|
description: "User-friendly find replacement, gitignore-aware. Use when locating filenames or directories by glob with parallel walking; invoke `fd`. Outputs newline-separated hit records; bound results with `-c` or `--max-count`."
|
|
4
|
-
tags: ["cli-tools", "search", "
|
|
4
|
+
tags: ["cli-tools", "search", "orchestration"]
|
|
5
5
|
quality_charter: agents/shared/quality-charter.md
|
|
6
6
|
efficiency_patterns: agents/shared/efficiency-patterns.md
|
|
7
7
|
cache_friendly: true
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
id: hatch3r-cli-fzf
|
|
3
3
|
description: "Interactive fuzzy finder for TTY pickers. Use when ad-hoc interactive picker over piped stdin streams from another command; invoke `fzf`. Requires a TTY; degrade gracefully to non-interactive batch in CI."
|
|
4
|
-
tags: ["cli-tools", "interactive"]
|
|
4
|
+
tags: ["cli-tools", "interactive", "maintenance"]
|
|
5
5
|
quality_charter: agents/shared/quality-charter.md
|
|
6
6
|
efficiency_patterns: agents/shared/efficiency-patterns.md
|
|
7
7
|
cache_friendly: true
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
id: hatch3r-cli-gh
|
|
3
3
|
description: "GitHub CLI — repos, issues, PRs, releases, gists. Use when drafting GitHub pull requests, issues, releases, gists, or workflow dispatches; invoke `gh`. Authenticates via the platform's native token mechanism (OAuth / PAT)."
|
|
4
|
-
tags: ["cli-tools", "forge", "
|
|
4
|
+
tags: ["cli-tools", "forge", "orchestration"]
|
|
5
5
|
quality_charter: agents/shared/quality-charter.md
|
|
6
6
|
efficiency_patterns: agents/shared/efficiency-patterns.md
|
|
7
7
|
cache_friendly: true
|
|
@@ -60,7 +60,7 @@ Live-tail status checks for a PR — return value reflects the worst check state
|
|
|
60
60
|
|
|
61
61
|
## Wrong Choice When
|
|
62
62
|
|
|
63
|
-
- Don't reach for `gh` against a GitLab or Azure DevOps remote. Reach for `glab`
|
|
63
|
+
- Don't reach for `gh` against a GitLab or Azure DevOps remote. Reach for `glab` or `az repos`/`az devops` (both covered in `hatch3r-cli-toolbox` — Forges section).
|
|
64
64
|
- Don't use `gh auth login` flows when an audit trail of who authorized what is required; OAuth scopes granted to the CLI are user-bound. Reach for the GitHub web UI plus org-level SSO logs.
|
|
65
65
|
- Don't use `gh api` for high-volume bulk fetches (>10k records) — rate limits bite. Reach for the GraphQL endpoint via `gh api graphql -F query=@file.gql` with pagination, or a GitHub App token.
|
|
66
66
|
|
|
@@ -68,8 +68,8 @@ Live-tail status checks for a PR — return value reflects the worst check state
|
|
|
68
68
|
|
|
69
69
|
| Tool | When to prefer |
|
|
70
70
|
|------|----------------|
|
|
71
|
-
| `glab` (
|
|
72
|
-
| `az-devops` (
|
|
71
|
+
| `glab` (toolbox section) | GitLab forges — same operations, different vendor. |
|
|
72
|
+
| `az-devops` (toolbox section) | Azure DevOps forges. |
|
|
73
73
|
| `git` + `curl` against REST | Minimal environment (CI runner) where installing `gh` is blocked; trade convenience for raw HTTP. |
|
|
74
74
|
| GitHub web UI | Operations needing org-level approval flows or SAML re-auth that the CLI cannot proxy. |
|
|
75
75
|
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
id: hatch3r-cli-jq
|
|
3
3
|
description: "JSON processor and query language. Use when shaping JSON streams via jq-syntax filters and select expressions; invoke `jq`. Reads stdin and emits stdout; integrates seamlessly into shell pipelines."
|
|
4
|
-
tags: ["cli-tools", "json", "
|
|
4
|
+
tags: ["cli-tools", "json", "orchestration"]
|
|
5
5
|
quality_charter: agents/shared/quality-charter.md
|
|
6
6
|
efficiency_patterns: agents/shared/efficiency-patterns.md
|
|
7
7
|
cache_friendly: true
|
|
@@ -56,14 +56,14 @@ Compact (`-c`) one-object-per-line projection — perfect input for `xargs -L1`
|
|
|
56
56
|
## Wrong Choice When
|
|
57
57
|
|
|
58
58
|
- Don't use `jq` for bidirectional grep on flattened paths; the inverse (`gron` outputs `obj.foo.bar = …` lines you can `rg` then translate back). Reach for `gron`.
|
|
59
|
-
- Don't use `jq` directly on multi-document YAML or front-matter Markdown. Reach for `yq` (`hatch3r-cli-
|
|
59
|
+
- Don't use `jq` directly on multi-document YAML or front-matter Markdown. Reach for `yq` (toolbox section in `hatch3r-cli-toolbox`) and pipe `yq -o=json` into `jq` only if you need jq's filter language.
|
|
60
60
|
- Don't reach for `jq` when the file is a stream of newline-delimited JSON (`.ndjson`); use `jq -c` per line or `jaq`/`fx` for stream-friendly behavior — `jq` without `-c` slurps the whole file.
|
|
61
61
|
|
|
62
62
|
## Alternatives
|
|
63
63
|
|
|
64
64
|
| Tool | When to prefer |
|
|
65
65
|
|------|----------------|
|
|
66
|
-
| `yq` (
|
|
66
|
+
| `yq` (toolbox section) | YAML, TOML, XML input — yq speaks them all, jq is JSON-only. |
|
|
67
67
|
| `gron` | Flatten JSON to `path = value` lines for grep-based exploration and reverse-translation. |
|
|
68
68
|
| `dasel` | Single binary across JSON/YAML/TOML/XML with a path-query DSL — handy in CI where you do not want jq+yq. |
|
|
69
69
|
| `fx` | Interactive JSON browsing in a TTY; jq is the right call in scripts. |
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
id: hatch3r-cli-ripgrep
|
|
3
3
|
description: "Fast recursive grep with sane defaults and gitignore awareness. Use when regex content searches across large source trees with gitignore filtering; invoke `rg`. Outputs newline-separated hit records; bound results with `-c` or `--max-count`."
|
|
4
|
-
tags: ["cli-tools", "search", "
|
|
4
|
+
tags: ["cli-tools", "search", "orchestration"]
|
|
5
5
|
quality_charter: agents/shared/quality-charter.md
|
|
6
6
|
efficiency_patterns: agents/shared/efficiency-patterns.md
|
|
7
7
|
cache_friendly: true
|
|
@@ -55,7 +55,7 @@ Two-phase: file list first, then ranged scan — keeps stdout small when match d
|
|
|
55
55
|
|
|
56
56
|
## Wrong Choice When
|
|
57
57
|
|
|
58
|
-
- Don't use `rg` to match by code structure (function calls, type signatures, JSX shape); literal regex misses renames and whitespace variants. Reach for `ast-grep` (`hatch3r-cli-
|
|
58
|
+
- Don't use `rg` to match by code structure (function calls, type signatures, JSX shape); literal regex misses renames and whitespace variants. Reach for `ast-grep` (see the ast-grep section in `hatch3r-cli-toolbox`).
|
|
59
59
|
- Don't run `rg` against binary blobs (`.zst`, `.png`, lockfile snapshots); it skips them silently by default but explicit `-a` mode wastes CPU. Reach for category-specific tools (`zstd -d` then `rg`, or `xxd | rg` for hex).
|
|
60
60
|
- Don't use `rg` to search a specific git revision or stash — it only sees the working tree. Reach for `git grep <rev>`.
|
|
61
61
|
|
|
@@ -63,7 +63,7 @@ Two-phase: file list first, then ranged scan — keeps stdout small when match d
|
|
|
63
63
|
|
|
64
64
|
| Tool | When to prefer |
|
|
65
65
|
|------|----------------|
|
|
66
|
-
| `ast-grep` (
|
|
66
|
+
| `ast-grep` (toolbox section) | Structural code patterns: matchers like `console.log($MSG)` that survive whitespace and identifier renames. |
|
|
67
67
|
| `git grep` | Search at a specific revision, tag, or stash — `rg` only reads the working tree. |
|
|
68
68
|
| `fd` (`hatch3r-cli-fd`) piped into `rg` | Filename pre-filter when scoping by extension/age is faster than `rg --type`. |
|
|
69
69
|
| `grep -RIn` | POSIX-only environment where ripgrep is not on PATH and install is blocked. |
|