hatch3r 1.7.0 → 1.7.5

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.
Files changed (160) hide show
  1. package/README.md +38 -12
  2. package/agents/hatch3r-a11y-auditor.md +4 -0
  3. package/agents/hatch3r-architect.md +5 -1
  4. package/agents/hatch3r-ci-watcher.md +4 -0
  5. package/agents/hatch3r-context-rules.md +4 -0
  6. package/agents/hatch3r-creator.md +4 -0
  7. package/agents/hatch3r-dependency-auditor.md +4 -0
  8. package/agents/hatch3r-devops.md +4 -0
  9. package/agents/hatch3r-docs-writer.md +4 -0
  10. package/agents/hatch3r-fixer.md +5 -1
  11. package/agents/hatch3r-handoff-loader.md +243 -0
  12. package/agents/hatch3r-handoff-preparer.md +134 -0
  13. package/agents/hatch3r-implementer.md +5 -1
  14. package/agents/hatch3r-learnings-loader.md +4 -0
  15. package/agents/hatch3r-lint-fixer.md +4 -0
  16. package/agents/hatch3r-perf-profiler.md +8 -0
  17. package/agents/hatch3r-researcher.md +5 -1
  18. package/agents/hatch3r-reviewer.md +92 -0
  19. package/agents/hatch3r-security-auditor.md +24 -0
  20. package/agents/hatch3r-test-writer.md +4 -0
  21. package/agents/modes/requirements-elicitation.md +5 -1
  22. package/agents/modes/similar-implementation.md +6 -0
  23. package/agents/modes/user-flows.md +76 -0
  24. package/agents/shared/quality-charter.md +129 -0
  25. package/agents/shared/user-question-protocol.md +95 -0
  26. package/commands/board/shared-azure-devops.md +2 -0
  27. package/commands/board/shared-github.md +17 -0
  28. package/commands/board/shared-gitlab.md +4 -0
  29. package/commands/hatch3r-board-fill.md +2 -1
  30. package/commands/hatch3r-board-pickup.md +1 -1
  31. package/commands/hatch3r-board-shared.md +21 -0
  32. package/commands/hatch3r-create.md +2 -0
  33. package/commands/hatch3r-handoff.md +126 -0
  34. package/commands/hatch3r-pr-resolve.md +672 -0
  35. package/commands/hatch3r-quick-change.md +5 -3
  36. package/commands/hatch3r-report.md +167 -0
  37. package/commands/hatch3r-revision.md +1 -1
  38. package/commands/hatch3r-workflow.md +3 -1
  39. package/dist/cli/index.js +3144 -979
  40. package/dist/cli/index.js.map +1 -1
  41. package/package.json +4 -2
  42. package/rules/hatch3r-accessibility-standards.md +21 -0
  43. package/rules/hatch3r-accessibility-standards.mdc +21 -0
  44. package/rules/hatch3r-agent-orchestration.md +32 -1
  45. package/rules/hatch3r-agent-orchestration.mdc +32 -1
  46. package/rules/hatch3r-ai-evals.md +158 -0
  47. package/rules/hatch3r-ai-evals.mdc +154 -0
  48. package/rules/hatch3r-ai-ux-patterns.md +131 -0
  49. package/rules/hatch3r-ai-ux-patterns.mdc +127 -0
  50. package/rules/hatch3r-api-design.md +67 -9
  51. package/rules/hatch3r-api-design.mdc +67 -9
  52. package/rules/hatch3r-api-versioning.md +119 -0
  53. package/rules/hatch3r-api-versioning.mdc +115 -0
  54. package/rules/hatch3r-auth-patterns.md +170 -0
  55. package/rules/hatch3r-auth-patterns.mdc +166 -0
  56. package/rules/hatch3r-component-conventions.md +30 -0
  57. package/rules/hatch3r-component-conventions.mdc +30 -0
  58. package/rules/hatch3r-container-hardening.md +131 -0
  59. package/rules/hatch3r-container-hardening.mdc +127 -0
  60. package/rules/hatch3r-contract-testing.md +117 -0
  61. package/rules/hatch3r-contract-testing.mdc +113 -0
  62. package/rules/hatch3r-deep-context.md +3 -1
  63. package/rules/hatch3r-deep-context.mdc +3 -1
  64. package/rules/hatch3r-dependency-management.md +73 -1
  65. package/rules/hatch3r-dependency-management.mdc +72 -0
  66. package/rules/hatch3r-design-system-detection.md +142 -0
  67. package/rules/hatch3r-design-system-detection.mdc +138 -0
  68. package/rules/hatch3r-event-schema-evolution.md +90 -0
  69. package/rules/hatch3r-event-schema-evolution.mdc +86 -0
  70. package/rules/hatch3r-handoff-readiness.md +45 -0
  71. package/rules/hatch3r-handoff-readiness.mdc +40 -0
  72. package/rules/hatch3r-i18n.md +13 -0
  73. package/rules/hatch3r-i18n.mdc +13 -0
  74. package/rules/hatch3r-iteration-summary.md +2 -0
  75. package/rules/hatch3r-iteration-summary.mdc +2 -0
  76. package/rules/hatch3r-migrations.md +61 -16
  77. package/rules/hatch3r-migrations.mdc +61 -16
  78. package/rules/hatch3r-observability-logging.md +1 -1
  79. package/rules/hatch3r-observability-logging.mdc +1 -1
  80. package/rules/hatch3r-observability-metrics.md +1 -1
  81. package/rules/hatch3r-observability-metrics.mdc +1 -1
  82. package/rules/hatch3r-observability-tracing-detail.md +1 -1
  83. package/rules/hatch3r-observability-tracing-detail.mdc +1 -1
  84. package/rules/hatch3r-observability-tracing.md +1 -1
  85. package/rules/hatch3r-observability-tracing.mdc +1 -1
  86. package/rules/hatch3r-observability.md +1 -0
  87. package/rules/hatch3r-observability.mdc +1 -0
  88. package/rules/hatch3r-operability.md +149 -0
  89. package/rules/hatch3r-operability.mdc +145 -0
  90. package/rules/hatch3r-passkey-server.md +181 -0
  91. package/rules/hatch3r-passkey-server.mdc +177 -0
  92. package/rules/hatch3r-progressive-delivery.md +120 -0
  93. package/rules/hatch3r-progressive-delivery.mdc +116 -0
  94. package/rules/hatch3r-resilience-patterns.md +154 -0
  95. package/rules/hatch3r-resilience-patterns.mdc +150 -0
  96. package/rules/hatch3r-secrets-management.md +29 -0
  97. package/rules/hatch3r-secrets-management.mdc +29 -0
  98. package/rules/hatch3r-testing.md +139 -43
  99. package/rules/hatch3r-testing.mdc +139 -43
  100. package/rules/hatch3r-ux-states-and-flows.md +149 -0
  101. package/rules/hatch3r-ux-states-and-flows.mdc +145 -0
  102. package/skills/hatch3r-a11y-audit/SKILL.md +14 -0
  103. package/skills/hatch3r-ai-feature/SKILL.md +134 -0
  104. package/skills/hatch3r-api-spec/SKILL.md +5 -0
  105. package/skills/hatch3r-architecture-review/SKILL.md +14 -0
  106. package/skills/hatch3r-bug-fix/SKILL.md +5 -0
  107. package/skills/hatch3r-ci-pipeline/SKILL.md +14 -0
  108. package/skills/hatch3r-cli-aichat/SKILL.md +84 -0
  109. package/skills/hatch3r-cli-ast-grep/SKILL.md +85 -0
  110. package/skills/hatch3r-cli-az-devops/SKILL.md +89 -0
  111. package/skills/hatch3r-cli-bat/SKILL.md +85 -0
  112. package/skills/hatch3r-cli-comby/SKILL.md +85 -0
  113. package/skills/hatch3r-cli-csvkit/SKILL.md +84 -0
  114. package/skills/hatch3r-cli-delta/SKILL.md +86 -0
  115. package/skills/hatch3r-cli-difftastic/SKILL.md +84 -0
  116. package/skills/hatch3r-cli-docker/SKILL.md +89 -0
  117. package/skills/hatch3r-cli-duckdb/SKILL.md +84 -0
  118. package/skills/hatch3r-cli-fd/SKILL.md +85 -0
  119. package/skills/hatch3r-cli-fzf/SKILL.md +84 -0
  120. package/skills/hatch3r-cli-gh/SKILL.md +90 -0
  121. package/skills/hatch3r-cli-glab/SKILL.md +89 -0
  122. package/skills/hatch3r-cli-jq/SKILL.md +85 -0
  123. package/skills/hatch3r-cli-lazygit/SKILL.md +78 -0
  124. package/skills/hatch3r-cli-llm/SKILL.md +84 -0
  125. package/skills/hatch3r-cli-miller/SKILL.md +84 -0
  126. package/skills/hatch3r-cli-mods/SKILL.md +84 -0
  127. package/skills/hatch3r-cli-overview/SKILL.md +60 -0
  128. package/skills/hatch3r-cli-playwright/SKILL.md +89 -0
  129. package/skills/hatch3r-cli-podman/SKILL.md +84 -0
  130. package/skills/hatch3r-cli-ripgrep/SKILL.md +85 -0
  131. package/skills/hatch3r-cli-rtk/SKILL.md +91 -0
  132. package/skills/hatch3r-cli-sd/SKILL.md +85 -0
  133. package/skills/hatch3r-cli-stagehand/SKILL.md +79 -0
  134. package/skills/hatch3r-cli-taplo/SKILL.md +84 -0
  135. package/skills/hatch3r-cli-xsv/SKILL.md +89 -0
  136. package/skills/hatch3r-cli-yq/SKILL.md +85 -0
  137. package/skills/hatch3r-cli-zstd/SKILL.md +85 -0
  138. package/skills/hatch3r-context-health/SKILL.md +14 -0
  139. package/skills/hatch3r-cost-tracking/SKILL.md +14 -0
  140. package/skills/hatch3r-customize/SKILL.md +14 -0
  141. package/skills/hatch3r-dep-audit/SKILL.md +14 -0
  142. package/skills/hatch3r-design-system-detect/SKILL.md +162 -0
  143. package/skills/hatch3r-feature/SKILL.md +2 -0
  144. package/skills/hatch3r-gh-agentic-workflows/SKILL.md +13 -0
  145. package/skills/hatch3r-handoff-prepare/SKILL.md +160 -0
  146. package/skills/hatch3r-handoff-resume/SKILL.md +171 -0
  147. package/skills/hatch3r-incident-response/SKILL.md +14 -0
  148. package/skills/hatch3r-issue-workflow/SKILL.md +5 -0
  149. package/skills/hatch3r-logical-refactor/SKILL.md +14 -0
  150. package/skills/hatch3r-migration/SKILL.md +14 -0
  151. package/skills/hatch3r-observability-verify/SKILL.md +133 -0
  152. package/skills/hatch3r-perf-audit/SKILL.md +14 -0
  153. package/skills/hatch3r-pr-creation/SKILL.md +14 -0
  154. package/skills/hatch3r-qa-validation/SKILL.md +18 -0
  155. package/skills/hatch3r-recipe/SKILL.md +14 -0
  156. package/skills/hatch3r-refactor/SKILL.md +14 -0
  157. package/skills/hatch3r-release/SKILL.md +14 -0
  158. package/skills/hatch3r-reliability-verify/SKILL.md +144 -0
  159. package/skills/hatch3r-ui-ux-verify/SKILL.md +136 -0
  160. package/skills/hatch3r-visual-refactor/SKILL.md +15 -1
@@ -0,0 +1,89 @@
1
+ ---
2
+ id: hatch3r-cli-docker
3
+ description: "Container runtime and CLI. Use when image build, container run, exec inspection, or registry push commands; invoke `docker`. Talks to a running Docker Engine daemon over a Unix socket; perfect for x86 build hosts."
4
+ tags: ["cli-tools", "container"]
5
+ quality_charter: agents/shared/quality-charter.md
6
+ efficiency_patterns: agents/shared/efficiency-patterns.md
7
+ cache_friendly: true
8
+ cli_tool:
9
+ id: docker
10
+ bin: docker
11
+ tier: 2
12
+ category: container
13
+ homepage: https://docs.docker.com/get-docker/
14
+ ---
15
+ <!-- HATCH3R-CLI-SKILL-GENERATED v1 -->
16
+ # docker
17
+
18
+ Container runtime and CLI
19
+
20
+ ## When to Use
21
+
22
+ Reach for `docker` when the task is in the **container** category and the agent would otherwise call an MCP tool or read large outputs into context.
23
+
24
+ ## Token Cost
25
+
26
+ CLI tools return structured stdout that fits in <1KB for typical queries; equivalent MCP calls regularly exceed 10KB.
27
+ Reference: Anthropic engineering (Nov 4 2025) — code-execution-over-MCP yields 98.7% token reduction.
28
+
29
+ ## Recipes
30
+
31
+ ```bash
32
+ docker build -t myapp:dev .
33
+ ```
34
+ Build a local tag from the cwd Dockerfile; layer cache hits keep rebuilds under a second.
35
+
36
+ ```bash
37
+ docker run --rm -v "$PWD":/app -w /app node:22 npm test
38
+ ```
39
+ Run a one-shot test container with the host repo mounted — no image rebuild, no leftover container.
40
+
41
+ ```bash
42
+ docker compose up -d --build
43
+ ```
44
+ Bring up the multi-service stack from `docker-compose.yml` in the background, rebuilding stale images.
45
+
46
+ ```bash
47
+ docker run --rm -e DEBUG=1 myapp:dev sh -c 'env | sort'
48
+ ```
49
+ Inspect the runtime environment a container actually sees; useful for diagnosing missing env vars.
50
+
51
+ ```bash
52
+ docker inspect myapp:dev --format '{{.Config.Cmd}} {{.Config.Entrypoint}}'
53
+ ```
54
+ Extract a single image setting via Go template — avoids piping 10KB of JSON to `jq`.
55
+
56
+ ```bash
57
+ docker ps --format '{{.ID}} {{.Names}} {{.Status}}' --filter status=running
58
+ ```
59
+ Compact running-container summary; one line per container, easy to grep.
60
+
61
+ ## Wrong Choice When
62
+
63
+ - The goal is per-agent isolation only (file scoping, no service runtime) — `container-use` provides that without a long-running daemon.
64
+ - You are deploying to a Kubernetes cluster — go through `kubectl`/`helm`; `docker run` does not understand cluster semantics.
65
+ - The host already has `podman` and rootless containers — prefer it for security; the CLI surface is nearly identical.
66
+
67
+ ## Alternatives
68
+
69
+ | Tool | When to prefer |
70
+ |------|----------------|
71
+ | `podman` | Want rootless containers and a daemonless model. |
72
+ | `container-use` | Need lightweight per-agent isolation; no service orchestration. |
73
+ | `nerdctl` | Existing containerd installation; do not need Docker Desktop. |
74
+
75
+ ## Detection / Install
76
+
77
+ Verify with:
78
+ ```bash
79
+ command -v docker
80
+ ```
81
+
82
+ Install (mac):
83
+
84
+ ```bash
85
+ # brew
86
+ brew install --cask docker
87
+ ```
88
+
89
+ Homepage: https://docs.docker.com/get-docker/
@@ -0,0 +1,84 @@
1
+ ---
2
+ id: hatch3r-cli-duckdb
3
+ description: "Embedded analytical database with first-class CSV/Parquet support. Use when ad-hoc analytical SQL over local Parquet, CSV, and JSON files; invoke `duckdb`. Streams records lazily; works on datasets that exceed available RAM."
4
+ tags: ["cli-tools", "data"]
5
+ quality_charter: agents/shared/quality-charter.md
6
+ efficiency_patterns: agents/shared/efficiency-patterns.md
7
+ cache_friendly: true
8
+ cli_tool:
9
+ id: duckdb
10
+ bin: duckdb
11
+ tier: 2
12
+ category: data
13
+ homepage: https://duckdb.org/
14
+ ---
15
+ <!-- HATCH3R-CLI-SKILL-GENERATED v1 -->
16
+ # duckdb
17
+
18
+ Embedded analytical database with first-class CSV/Parquet support
19
+
20
+ ## When to Use
21
+
22
+ Reach for `duckdb` when the task is in the **data** category and the agent would otherwise call an MCP tool or read large outputs into context.
23
+
24
+ ## Token Cost
25
+
26
+ CLI tools return structured stdout that fits in <1KB for typical queries; equivalent MCP calls regularly exceed 10KB.
27
+ Reference: Anthropic engineering (Nov 4 2025) — code-execution-over-MCP yields 98.7% token reduction.
28
+
29
+ ## Recipes
30
+
31
+ ```bash
32
+ duckdb -c "SELECT count(*) FROM 'data/*.parquet'"
33
+ ```
34
+ Count rows across a Parquet glob — no schema declaration, no import step.
35
+
36
+ ```bash
37
+ duckdb -c "COPY (SELECT * FROM 'in.csv' WHERE active) TO 'out.parquet' (FORMAT PARQUET)"
38
+ ```
39
+ Filter a CSV and emit columnar Parquet in one pass; ideal for downstream `xsv`/`jq` chains.
40
+
41
+ ```bash
42
+ duckdb -c "ATTACH 'app.sqlite' AS sqlite; SELECT * FROM sqlite.users LIMIT 10"
43
+ ```
44
+ Query a SQLite file without conversion — useful for app debugging from the terminal.
45
+
46
+ ```bash
47
+ duckdb -json -c "DESCRIBE 'data.parquet'"
48
+ ```
49
+ Emit JSON schema rows for column inspection; pipe to `jq` to extract specific column types.
50
+
51
+ ```bash
52
+ duckdb -c "SELECT date_trunc('day', ts) AS d, count(*) FROM 'events/*.csv' GROUP BY 1 ORDER BY 1"
53
+ ```
54
+ Aggregate over a CSV directory; DuckDB streams the read so memory stays bounded.
55
+
56
+ ## Wrong Choice When
57
+
58
+ - The CSV has <10k rows and you only need to slice/select columns — `xsv` (Tier 2 sibling) starts faster and has no install dependency in many environments.
59
+ - The workload is transactional (writes from multiple clients, ACID across rows) — use SQLite or Postgres; DuckDB is read-optimized OLAP.
60
+ - A single `jq` filter would do the job (the data is already JSON, the operation is field extraction) — skip the SQL detour.
61
+
62
+ ## Alternatives
63
+
64
+ | Tool | When to prefer |
65
+ |------|----------------|
66
+ | `xsv` | Single CSV file, <100MB, just need slice/select/sort. |
67
+ | `sqlite3` | Need OLTP writes or row-level updates rather than analytics. |
68
+ | `python -m pandas` | Already in a Python script and the data fits in memory. |
69
+
70
+ ## Detection / Install
71
+
72
+ Verify with:
73
+ ```bash
74
+ command -v duckdb
75
+ ```
76
+
77
+ Install (mac):
78
+
79
+ ```bash
80
+ # brew
81
+ brew install duckdb
82
+ ```
83
+
84
+ Homepage: https://duckdb.org/
@@ -0,0 +1,85 @@
1
+ ---
2
+ id: hatch3r-cli-fd
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", "core"]
5
+ quality_charter: agents/shared/quality-charter.md
6
+ efficiency_patterns: agents/shared/efficiency-patterns.md
7
+ cache_friendly: true
8
+ cli_tool:
9
+ id: fd
10
+ bin: fd
11
+ tier: 1
12
+ category: search
13
+ homepage: https://github.com/sharkdp/fd
14
+ ---
15
+ <!-- HATCH3R-CLI-SKILL-GENERATED v1 -->
16
+ # fd
17
+
18
+ User-friendly find replacement, gitignore-aware
19
+
20
+ ## When to Use
21
+
22
+ Reach for `fd` when the task is in the **search** category and the agent would otherwise call an MCP tool or read large outputs into context.
23
+
24
+ ## Token Cost
25
+
26
+ CLI tools return structured stdout that fits in <1KB for typical queries; equivalent MCP calls regularly exceed 10KB.
27
+ Reference: Anthropic engineering (Nov 4 2025) — code-execution-over-MCP yields 98.7% token reduction.
28
+
29
+ ## Recipes
30
+
31
+ ```bash
32
+ fd '\.test\.ts$' src/
33
+ ```
34
+ Regex match against the path tail — locates every test file under `src/` without traversing `node_modules` or `.git` (gitignore-aware by default).
35
+
36
+ ```bash
37
+ fd -e ts -e tsx --exec wc -l
38
+ ```
39
+ Extension filter plus parallel `--exec` — one process per match, returns line counts for sizing audits.
40
+
41
+ ```bash
42
+ fd -H -E .git -E node_modules 'config'
43
+ ```
44
+ Includes hidden files (`-H`) and explicitly excludes vendor trees — useful when scanning dotfiles for stale config.
45
+
46
+ ```bash
47
+ fd --changed-within 7d -e md
48
+ ```
49
+ Time-windowed query for recent edits — pairs with `gh pr list` to spot undocumented changes.
50
+
51
+ ```bash
52
+ fd 'SKILL\.md$' skills/ -x rg -l 'placeholder'
53
+ ```
54
+ Pipeline: locate every `SKILL.md`, then `rg`-search each for a marker string in one parallel batch.
55
+
56
+ ## Wrong Choice When
57
+
58
+ - Don't reach for `fd` when the recursive predicate needs POSIX `find` features like `-mtime +N -delete`, `-path` with mixed Boolean operators, or NFS-mount handling. Reach for system `find`.
59
+ - Don't use `fd` as a content searcher — it matches paths, not file bodies. Reach for `ripgrep` (`hatch3r-cli-ripgrep`), optionally piped after `fd` for filename pre-filtering.
60
+ - Don't use `fd` against a system-wide indexed search ("which package owns this file?"); it walks the live filesystem each call. Reach for `locate` / `mlocate`.
61
+
62
+ ## Alternatives
63
+
64
+ | Tool | When to prefer |
65
+ |------|----------------|
66
+ | `find` (POSIX) | Mixed predicates with `-and`/`-or`, `-mtime`, `-prune`, or actions like `-delete` and `-execdir`. |
67
+ | `locate` | Pre-indexed lookups across the entire filesystem (no live walk). |
68
+ | `ripgrep` (`hatch3r-cli-ripgrep`) | When you want content matches, not path matches — `fd ... -x rg` if both. |
69
+ | `git ls-files` | Restrict to tracked files only; ignores untracked even if not in `.gitignore`. |
70
+
71
+ ## Detection / Install
72
+
73
+ Verify with:
74
+ ```bash
75
+ command -v fd
76
+ ```
77
+
78
+ Install (mac):
79
+
80
+ ```bash
81
+ # brew
82
+ brew install fd
83
+ ```
84
+
85
+ Homepage: https://github.com/sharkdp/fd
@@ -0,0 +1,84 @@
1
+ ---
2
+ id: hatch3r-cli-fzf
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"]
5
+ quality_charter: agents/shared/quality-charter.md
6
+ efficiency_patterns: agents/shared/efficiency-patterns.md
7
+ cache_friendly: true
8
+ cli_tool:
9
+ id: fzf
10
+ bin: fzf
11
+ tier: 2
12
+ category: interactive
13
+ homepage: https://github.com/junegunn/fzf
14
+ ---
15
+ <!-- HATCH3R-CLI-SKILL-GENERATED v1 -->
16
+ # fzf
17
+
18
+ Interactive fuzzy finder for TTY pickers
19
+
20
+ ## When to Use
21
+
22
+ Reach for `fzf` when the task is in the **interactive** category and the agent would otherwise call an MCP tool or read large outputs into context.
23
+
24
+ ## Token Cost
25
+
26
+ CLI tools return structured stdout that fits in <1KB for typical queries; equivalent MCP calls regularly exceed 10KB.
27
+ Reference: Anthropic engineering (Nov 4 2025) — code-execution-over-MCP yields 98.7% token reduction.
28
+
29
+ ## Recipes
30
+
31
+ ```bash
32
+ fzf --filter 'auth' < paths.txt
33
+ ```
34
+ Headless mode — ranks lines by fuzzy match score and prints them in order; no TTY needed. This is the agent-safe entrypoint.
35
+
36
+ ```bash
37
+ git branch --format='%(refname:short)' | fzf --filter main
38
+ ```
39
+ Score branch names against `main`; pipe to `head -1` to pick the best match deterministically.
40
+
41
+ ```bash
42
+ rg -l 'TODO' . | fzf --filter 'src/cli'
43
+ ```
44
+ Re-rank a `ripgrep` file list by proximity to a fuzzy hint; combine with `head` for a deterministic top pick.
45
+
46
+ ```bash
47
+ fzf --filter 'auth' --print0 < paths.txt | xargs -0 wc -l
48
+ ```
49
+ Stream NUL-delimited matches to a downstream pipeline — safe across filenames with spaces.
50
+
51
+ ```bash
52
+ fzf < paths.txt
53
+ ```
54
+ Interactive picker — only useful in a human TTY; do not call this form from an autonomous agent.
55
+
56
+ ## Wrong Choice When
57
+
58
+ - Running in a non-TTY context (CI, agent loop) — interactive `fzf` will hang on stdin; always use `--filter` headless mode.
59
+ - The ranking needs semantic understanding (synonyms, embeddings) — `fzf` is character-level fuzzy; reach for an embedding-based tool.
60
+ - A simple `grep -F` or `rg --files | head` would already return the right answer — no need to layer scoring on top.
61
+
62
+ ## Alternatives
63
+
64
+ | Tool | When to prefer |
65
+ |------|----------------|
66
+ | `skim` (`sk`) | Need a Rust binary with similar fuzzy scoring and the same `--filter` headless mode. |
67
+ | `rg --files \| head` | Already filtered; want stable lexicographic order rather than fuzzy ranking. |
68
+ | `grep -F` | Exact substring match; no scoring needed. |
69
+
70
+ ## Detection / Install
71
+
72
+ Verify with:
73
+ ```bash
74
+ command -v fzf
75
+ ```
76
+
77
+ Install (mac):
78
+
79
+ ```bash
80
+ # brew
81
+ brew install fzf
82
+ ```
83
+
84
+ Homepage: https://github.com/junegunn/fzf
@@ -0,0 +1,90 @@
1
+ ---
2
+ id: hatch3r-cli-gh
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", "core"]
5
+ quality_charter: agents/shared/quality-charter.md
6
+ efficiency_patterns: agents/shared/efficiency-patterns.md
7
+ cache_friendly: true
8
+ cli_tool:
9
+ id: gh
10
+ bin: gh
11
+ tier: 1
12
+ category: forge
13
+ homepage: https://cli.github.com/
14
+ ---
15
+ <!-- HATCH3R-CLI-SKILL-GENERATED v1 -->
16
+ # gh
17
+
18
+ GitHub CLI — repos, issues, PRs, releases, gists
19
+
20
+ ## When to Use
21
+
22
+ Reach for `gh` when the task is in the **forge** category and the agent would otherwise call an MCP tool or read large outputs into context.
23
+
24
+ ## Token Cost
25
+
26
+ CLI tools return structured stdout that fits in <1KB for typical queries; equivalent MCP calls regularly exceed 10KB.
27
+ Reference: Anthropic engineering (Nov 4 2025) — code-execution-over-MCP yields 98.7% token reduction.
28
+
29
+ ## Recipes
30
+
31
+ ```bash
32
+ gh pr view 123 --json title,state,body,reviewDecision
33
+ ```
34
+ Targeted JSON projection — pulls just the fields the agent needs, not the whole PR payload.
35
+
36
+ ```bash
37
+ gh issue list --label bug --json number,title,author --limit 50
38
+ ```
39
+ Label-filtered list with capped page size — avoids paginating the entire issue corpus into context.
40
+
41
+ ```bash
42
+ gh api repos/:owner/:repo/contents/path/to/file.ts --jq '.sha'
43
+ ```
44
+ Direct REST passthrough with built-in `--jq` filter — single round-trip, no jq install required at call site.
45
+
46
+ ```bash
47
+ gh run watch
48
+ ```
49
+ Blocks until the most recent CI run finishes — pairs with PR creation flows so the agent doesn't poll.
50
+
51
+ ```bash
52
+ gh release create v1.7.5 --notes-from-tag --target release/1.7.5
53
+ ```
54
+ Cuts a release using annotated-tag notes; deterministic input avoids hand-edited release bodies.
55
+
56
+ ```bash
57
+ gh pr checks 78 --watch
58
+ ```
59
+ Live-tail status checks for a PR — return value reflects the worst check state, scripts can branch on it.
60
+
61
+ ## Wrong Choice When
62
+
63
+ - Don't reach for `gh` against a GitLab or Azure DevOps remote. Reach for `glab` (`hatch3r-cli-glab`) or `az repos`/`az devops` (`hatch3r-cli-az-devops`).
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
+ - 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
+
67
+ ## Alternatives
68
+
69
+ | Tool | When to prefer |
70
+ |------|----------------|
71
+ | `glab` (`hatch3r-cli-glab`) | GitLab forges — same operations, different vendor. |
72
+ | `az-devops` (`hatch3r-cli-az-devops`) | Azure DevOps forges. |
73
+ | `git` + `curl` against REST | Minimal environment (CI runner) where installing `gh` is blocked; trade convenience for raw HTTP. |
74
+ | GitHub web UI | Operations needing org-level approval flows or SAML re-auth that the CLI cannot proxy. |
75
+
76
+ ## Detection / Install
77
+
78
+ Verify with:
79
+ ```bash
80
+ command -v gh
81
+ ```
82
+
83
+ Install (mac):
84
+
85
+ ```bash
86
+ # brew
87
+ brew install gh
88
+ ```
89
+
90
+ Homepage: https://cli.github.com/
@@ -0,0 +1,89 @@
1
+ ---
2
+ id: hatch3r-cli-glab
3
+ description: "GitLab CLI — merge requests, issues, pipelines. Use when GitLab merge-request review, pipeline retries, and issue triage; invoke `glab`. Authenticates via the platform's native token mechanism (OAuth / PAT)."
4
+ tags: ["cli-tools", "forge"]
5
+ quality_charter: agents/shared/quality-charter.md
6
+ efficiency_patterns: agents/shared/efficiency-patterns.md
7
+ cache_friendly: true
8
+ cli_tool:
9
+ id: glab
10
+ bin: glab
11
+ tier: 2
12
+ category: forge
13
+ homepage: https://gitlab.com/gitlab-org/cli
14
+ ---
15
+ <!-- HATCH3R-CLI-SKILL-GENERATED v1 -->
16
+ # glab
17
+
18
+ GitLab CLI — merge requests, issues, pipelines
19
+
20
+ ## When to Use
21
+
22
+ Reach for `glab` when the task is in the **forge** category and the agent would otherwise call an MCP tool or read large outputs into context.
23
+
24
+ ## Token Cost
25
+
26
+ CLI tools return structured stdout that fits in <1KB for typical queries; equivalent MCP calls regularly exceed 10KB.
27
+ Reference: Anthropic engineering (Nov 4 2025) — code-execution-over-MCP yields 98.7% token reduction.
28
+
29
+ ## Recipes
30
+
31
+ ```bash
32
+ glab mr list --assignee=@me --output json | jq '.[] | {iid, title, web_url}'
33
+ ```
34
+ List merge requests assigned to the authenticated user; `--output json` keeps stdout structured.
35
+
36
+ ```bash
37
+ glab mr view 42 --output json
38
+ ```
39
+ Fetch a single MR's metadata as JSON — avoids the HTML-decorated default view.
40
+
41
+ ```bash
42
+ glab mr diff 42
43
+ ```
44
+ Print the unified diff for an MR to stdout; pipe to `delta` for review or `diff -u` parsing.
45
+
46
+ ```bash
47
+ glab issue create --title 'tracking-id mismatch on import' --label bug --label backend
48
+ ```
49
+ Open an issue from a script; the URL is printed on stdout for the agent to capture.
50
+
51
+ ```bash
52
+ glab ci view --branch main
53
+ ```
54
+ Show the pipeline status for `main`; agents should re-run with `--output json` for parseable output.
55
+
56
+ ```bash
57
+ glab api projects/:fullpath/jobs --paginate
58
+ ```
59
+ Raw API call with auto-pagination for endpoints the high-level commands do not cover.
60
+
61
+ ## Wrong Choice When
62
+
63
+ - The repo lives on GitHub, not GitLab — use `gh` (Tier 1) which has parity for issues/PRs/checks.
64
+ - The repo lives in Azure Repos — use `az devops` (Tier 2 sibling) with the same credential model.
65
+ - You only need to read a public file at a known URL — `curl` is one HTTP round-trip versus `glab`'s auth dance.
66
+
67
+ ## Alternatives
68
+
69
+ | Tool | When to prefer |
70
+ |------|----------------|
71
+ | `gh` | GitHub-hosted repository. |
72
+ | `az devops` | Azure DevOps / Azure Repos. |
73
+ | `curl` + `GITLAB_TOKEN` | Endpoint not exposed by `glab api`; need explicit retry/timeout control. |
74
+
75
+ ## Detection / Install
76
+
77
+ Verify with:
78
+ ```bash
79
+ command -v glab
80
+ ```
81
+
82
+ Install (mac):
83
+
84
+ ```bash
85
+ # brew
86
+ brew install glab
87
+ ```
88
+
89
+ Homepage: https://gitlab.com/gitlab-org/cli
@@ -0,0 +1,85 @@
1
+ ---
2
+ id: hatch3r-cli-jq
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", "core"]
5
+ quality_charter: agents/shared/quality-charter.md
6
+ efficiency_patterns: agents/shared/efficiency-patterns.md
7
+ cache_friendly: true
8
+ cli_tool:
9
+ id: jq
10
+ bin: jq
11
+ tier: 1
12
+ category: json
13
+ homepage: https://github.com/jqlang/jq
14
+ ---
15
+ <!-- HATCH3R-CLI-SKILL-GENERATED v1 -->
16
+ # jq
17
+
18
+ JSON processor and query language
19
+
20
+ ## When to Use
21
+
22
+ Reach for `jq` when the task is in the **json** category and the agent would otherwise call an MCP tool or read large outputs into context.
23
+
24
+ ## Token Cost
25
+
26
+ CLI tools return structured stdout that fits in <1KB for typical queries; equivalent MCP calls regularly exceed 10KB.
27
+ Reference: Anthropic engineering (Nov 4 2025) — code-execution-over-MCP yields 98.7% token reduction.
28
+
29
+ ## Recipes
30
+
31
+ ```bash
32
+ gh pr list --json number,title,isDraft | jq '.[] | select(.isDraft|not) | .number'
33
+ ```
34
+ Pipeline from `gh` JSON into a selector — emits only open non-draft PR numbers.
35
+
36
+ ```bash
37
+ jq -r '.[] | .name' inventory.json
38
+ ```
39
+ Raw string output (`-r`) drops the JSON quoting — feeds straight into `xargs` or shell loops.
40
+
41
+ ```bash
42
+ jq 'group_by(.category) | map({key: .[0].category, value: length}) | from_entries' findings.json
43
+ ```
44
+ Group-then-count idiom — produces a `{category: count}` object suitable for direct comparison against a baseline.
45
+
46
+ ```bash
47
+ jq --slurp 'add | unique_by(.id)' shard-*.json
48
+ ```
49
+ Slurp multiple files into a single array, concatenate, dedupe by `id` — the canonical merge pattern for sharded JSON output.
50
+
51
+ ```bash
52
+ jq -c '{id, title, severity}' findings.json
53
+ ```
54
+ Compact (`-c`) one-object-per-line projection — perfect input for `xargs -L1` or `grep`-style downstream tools.
55
+
56
+ ## Wrong Choice When
57
+
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-yq`) and pipe `yq -o=json` into `jq` only if you need jq's filter language.
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
+
62
+ ## Alternatives
63
+
64
+ | Tool | When to prefer |
65
+ |------|----------------|
66
+ | `yq` (`hatch3r-cli-yq`) | YAML, TOML, XML input — yq speaks them all, jq is JSON-only. |
67
+ | `gron` | Flatten JSON to `path = value` lines for grep-based exploration and reverse-translation. |
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
+ | `fx` | Interactive JSON browsing in a TTY; jq is the right call in scripts. |
70
+
71
+ ## Detection / Install
72
+
73
+ Verify with:
74
+ ```bash
75
+ command -v jq
76
+ ```
77
+
78
+ Install (mac):
79
+
80
+ ```bash
81
+ # brew
82
+ brew install jq
83
+ ```
84
+
85
+ Homepage: https://github.com/jqlang/jq
@@ -0,0 +1,78 @@
1
+ ---
2
+ id: hatch3r-cli-lazygit
3
+ description: "Terminal UI for git with keyboard-driven workflows. Use when keyboard-driven terminal UI for staging, rebasing, branch switching; invoke `lazygit`. Reads `.git/objects` directly without invoking external services or remotes."
4
+ tags: ["cli-tools", "git"]
5
+ quality_charter: agents/shared/quality-charter.md
6
+ efficiency_patterns: agents/shared/efficiency-patterns.md
7
+ cache_friendly: true
8
+ cli_tool:
9
+ id: lazygit
10
+ bin: lazygit
11
+ tier: 2
12
+ category: git
13
+ homepage: https://github.com/jesseduffield/lazygit
14
+ ---
15
+ <!-- HATCH3R-CLI-SKILL-GENERATED v1 -->
16
+ # lazygit
17
+
18
+ Terminal UI for git with keyboard-driven workflows
19
+
20
+ ## When to Use
21
+
22
+ Reach for `lazygit` when the task is in the **git** category and the agent would otherwise call an MCP tool or read large outputs into context.
23
+
24
+ ## Token Cost
25
+
26
+ CLI tools return structured stdout that fits in <1KB for typical queries; equivalent MCP calls regularly exceed 10KB.
27
+ Reference: Anthropic engineering (Nov 4 2025) — code-execution-over-MCP yields 98.7% token reduction.
28
+
29
+ ## Recipes
30
+
31
+ `lazygit` is a TUI for humans; agents should call plain `git` instead. The recipes below are key bindings inside the running TUI, not shell commands.
32
+
33
+ ```bash
34
+ lazygit
35
+ ```
36
+ Launch the TUI in the cwd repo — requires an interactive terminal; will hang in a non-TTY context.
37
+
38
+ ```bash
39
+ lazygit -p path/to/repo
40
+ ```
41
+ Open the TUI on a specific repo without changing directory first.
42
+
43
+ Key bindings inside the TUI (human reference):
44
+ - `a` — stage all changes in the focused file
45
+ - `c` — open the commit message editor
46
+ - `P` — push current branch
47
+ - `p` — pull current branch
48
+ - `?` — show the full keymap
49
+
50
+ ## Wrong Choice When
51
+
52
+ - The caller is an autonomous agent (no human at the terminal) — use plain `git status` / `git add` / `git commit` instead; they emit parseable stdout.
53
+ - The task is part of a CI script — `lazygit` cannot run headless; rely on `git` plumbing commands.
54
+ - You need a scriptable diff view — pair `git diff` with `delta` or `difftastic` rather than launching a TUI.
55
+
56
+ ## Alternatives
57
+
58
+ | Tool | When to prefer |
59
+ |------|----------------|
60
+ | `git` (plain) | Anything an agent or CI script runs. |
61
+ | `tig` | Prefer a different TUI keymap; broadly similar capability. |
62
+ | `gh` / `glab` | The operation is forge-side (PRs, issues), not local repo state. |
63
+
64
+ ## Detection / Install
65
+
66
+ Verify with:
67
+ ```bash
68
+ command -v lazygit
69
+ ```
70
+
71
+ Install (mac):
72
+
73
+ ```bash
74
+ # brew
75
+ brew install lazygit
76
+ ```
77
+
78
+ Homepage: https://github.com/jesseduffield/lazygit