hatch3r 1.7.1 → 1.8.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 +38 -12
- package/agents/hatch3r-a11y-auditor.md +4 -0
- package/agents/hatch3r-architect.md +4 -0
- package/agents/hatch3r-ci-watcher.md +4 -0
- package/agents/hatch3r-context-rules.md +26 -6
- package/agents/hatch3r-creator.md +6 -1
- package/agents/hatch3r-dependency-auditor.md +4 -0
- package/agents/hatch3r-devops.md +4 -0
- package/agents/hatch3r-docs-writer.md +4 -0
- package/agents/hatch3r-fixer.md +4 -0
- package/agents/hatch3r-handoff-loader.md +243 -0
- package/agents/hatch3r-handoff-preparer.md +134 -0
- package/agents/hatch3r-implementer.md +12 -0
- package/agents/hatch3r-learnings-loader.md +5 -1
- package/agents/hatch3r-lint-fixer.md +4 -0
- package/agents/hatch3r-perf-profiler.md +8 -0
- package/agents/hatch3r-researcher.md +4 -0
- package/agents/hatch3r-reviewer.md +94 -0
- package/agents/hatch3r-security-auditor.md +24 -0
- package/agents/hatch3r-test-writer.md +4 -0
- package/agents/modes/requirements-elicitation.md +4 -1
- package/agents/modes/similar-implementation.md +6 -0
- package/agents/modes/user-flows.md +76 -0
- package/agents/shared/quality-charter.md +128 -0
- package/agents/shared/user-content-templates.md +31 -1
- package/commands/hatch3r-agent-customize.md +4 -0
- package/commands/hatch3r-api-spec.md +7 -0
- package/commands/hatch3r-benchmark.md +7 -0
- package/commands/hatch3r-board-fill.md +8 -0
- package/commands/hatch3r-board-groom.md +4 -0
- package/commands/hatch3r-board-init.md +51 -0
- package/commands/hatch3r-board-pickup.md +8 -0
- package/commands/hatch3r-board-refresh.md +4 -0
- package/commands/hatch3r-board-shared.md +6 -6
- package/commands/hatch3r-bug-plan.md +7 -0
- package/commands/hatch3r-codebase-map.md +8 -0
- package/commands/hatch3r-command-customize.md +4 -0
- package/commands/hatch3r-context-health.md +5 -0
- package/commands/hatch3r-create.md +59 -4
- package/commands/hatch3r-debug.md +7 -0
- package/commands/hatch3r-dep-audit.md +4 -0
- package/commands/hatch3r-feature-plan.md +7 -0
- package/commands/hatch3r-handoff.md +133 -0
- package/commands/hatch3r-healthcheck.md +4 -0
- package/commands/hatch3r-hooks.md +4 -0
- package/commands/hatch3r-learn.md +16 -0
- package/commands/hatch3r-migration-plan.md +7 -0
- package/commands/hatch3r-onboard.md +7 -0
- package/commands/hatch3r-pr-resolve.md +12 -1
- package/commands/hatch3r-project-spec.md +8 -0
- package/commands/hatch3r-quick-change.md +11 -2
- package/commands/hatch3r-recipe.md +4 -0
- package/commands/hatch3r-refactor-plan.md +7 -0
- package/commands/hatch3r-release.md +5 -0
- package/commands/hatch3r-revision.md +7 -0
- package/commands/hatch3r-roadmap.md +8 -0
- package/commands/hatch3r-rule-customize.md +4 -0
- package/commands/hatch3r-security-audit.md +4 -0
- package/commands/hatch3r-skill-customize.md +4 -0
- package/commands/hatch3r-test-plan.md +7 -0
- package/commands/hatch3r-workflow.md +11 -1
- package/dist/cli/index.js +4814 -1130
- package/dist/cli/index.js.map +1 -1
- package/package.json +10 -5
- package/rules/hatch3r-accessibility-standards.md +21 -0
- package/rules/hatch3r-accessibility-standards.mdc +21 -0
- package/rules/hatch3r-agent-orchestration-detail.md +3 -0
- package/rules/hatch3r-agent-orchestration-detail.mdc +3 -0
- package/rules/hatch3r-agent-orchestration.md +34 -3
- package/rules/hatch3r-agent-orchestration.mdc +34 -3
- package/rules/hatch3r-ai-evals.md +158 -0
- package/rules/hatch3r-ai-evals.mdc +154 -0
- package/rules/hatch3r-ai-ux-patterns.md +131 -0
- package/rules/hatch3r-ai-ux-patterns.mdc +127 -0
- package/rules/hatch3r-api-design.md +67 -9
- package/rules/hatch3r-api-design.mdc +67 -9
- package/rules/hatch3r-api-versioning.md +119 -0
- package/rules/hatch3r-api-versioning.mdc +115 -0
- package/rules/hatch3r-auth-patterns.md +170 -0
- package/rules/hatch3r-auth-patterns.mdc +166 -0
- package/rules/hatch3r-component-conventions.md +30 -0
- package/rules/hatch3r-component-conventions.mdc +30 -0
- package/rules/hatch3r-container-hardening.md +131 -0
- package/rules/hatch3r-container-hardening.mdc +127 -0
- package/rules/hatch3r-contract-testing.md +117 -0
- package/rules/hatch3r-contract-testing.mdc +113 -0
- package/rules/hatch3r-deep-context.md +2 -0
- package/rules/hatch3r-deep-context.mdc +2 -0
- package/rules/hatch3r-dependency-management.md +73 -1
- package/rules/hatch3r-dependency-management.mdc +72 -0
- package/rules/hatch3r-design-system-detection.md +142 -0
- package/rules/hatch3r-design-system-detection.mdc +138 -0
- package/rules/hatch3r-event-schema-evolution.md +90 -0
- package/rules/hatch3r-event-schema-evolution.mdc +86 -0
- package/rules/hatch3r-handoff-readiness.md +45 -0
- package/rules/hatch3r-handoff-readiness.mdc +40 -0
- package/rules/hatch3r-i18n.md +13 -0
- package/rules/hatch3r-i18n.mdc +13 -0
- package/rules/hatch3r-iteration-summary.md +2 -0
- package/rules/hatch3r-iteration-summary.mdc +2 -0
- package/rules/hatch3r-migrations.md +61 -16
- package/rules/hatch3r-migrations.mdc +61 -16
- package/rules/hatch3r-observability-logging.md +1 -1
- package/rules/hatch3r-observability-logging.mdc +1 -1
- package/rules/hatch3r-observability-metrics.md +1 -1
- package/rules/hatch3r-observability-metrics.mdc +1 -1
- package/rules/hatch3r-observability-tracing-detail.md +8 -149
- package/rules/hatch3r-observability-tracing-detail.mdc +7 -149
- package/rules/hatch3r-observability-tracing.md +154 -6
- package/rules/hatch3r-observability-tracing.mdc +154 -6
- package/rules/hatch3r-observability.md +1 -0
- package/rules/hatch3r-observability.mdc +1 -0
- package/rules/hatch3r-operability.md +149 -0
- package/rules/hatch3r-operability.mdc +145 -0
- package/rules/hatch3r-passkey-server.md +181 -0
- package/rules/hatch3r-passkey-server.mdc +177 -0
- package/rules/hatch3r-progressive-delivery.md +120 -0
- package/rules/hatch3r-progressive-delivery.mdc +116 -0
- package/rules/hatch3r-resilience-patterns.md +154 -0
- package/rules/hatch3r-resilience-patterns.mdc +150 -0
- package/rules/hatch3r-secrets-management.md +29 -0
- package/rules/hatch3r-secrets-management.mdc +29 -0
- package/rules/hatch3r-testing.md +139 -43
- package/rules/hatch3r-testing.mdc +139 -43
- package/rules/hatch3r-ux-states-and-flows.md +149 -0
- package/rules/hatch3r-ux-states-and-flows.mdc +145 -0
- package/skills/hatch3r-a11y-audit/SKILL.md +14 -0
- package/skills/hatch3r-agent-customize/SKILL.md +10 -0
- package/skills/hatch3r-ai-feature/SKILL.md +136 -0
- package/skills/hatch3r-api-spec/SKILL.md +73 -0
- package/skills/hatch3r-architecture-review/SKILL.md +14 -0
- package/skills/hatch3r-bug-fix/SKILL.md +5 -0
- package/skills/hatch3r-ci-pipeline/SKILL.md +14 -0
- package/skills/hatch3r-cli-aichat/SKILL.md +84 -0
- package/skills/hatch3r-cli-ast-grep/SKILL.md +85 -0
- package/skills/hatch3r-cli-az-devops/SKILL.md +89 -0
- package/skills/hatch3r-cli-bat/SKILL.md +85 -0
- package/skills/hatch3r-cli-comby/SKILL.md +85 -0
- package/skills/hatch3r-cli-csvkit/SKILL.md +84 -0
- package/skills/hatch3r-cli-delta/SKILL.md +86 -0
- package/skills/hatch3r-cli-difftastic/SKILL.md +84 -0
- package/skills/hatch3r-cli-docker/SKILL.md +89 -0
- package/skills/hatch3r-cli-duckdb/SKILL.md +84 -0
- package/skills/hatch3r-cli-fd/SKILL.md +85 -0
- package/skills/hatch3r-cli-fzf/SKILL.md +84 -0
- package/skills/hatch3r-cli-gh/SKILL.md +90 -0
- package/skills/hatch3r-cli-glab/SKILL.md +89 -0
- package/skills/hatch3r-cli-jq/SKILL.md +89 -0
- package/skills/hatch3r-cli-lazygit/SKILL.md +78 -0
- package/skills/hatch3r-cli-llm/SKILL.md +84 -0
- package/skills/hatch3r-cli-miller/SKILL.md +84 -0
- package/skills/hatch3r-cli-mods/SKILL.md +84 -0
- package/skills/hatch3r-cli-overview/SKILL.md +60 -0
- package/skills/hatch3r-cli-playwright/SKILL.md +89 -0
- package/skills/hatch3r-cli-podman/SKILL.md +84 -0
- package/skills/hatch3r-cli-qsv/SKILL.md +91 -0
- package/skills/hatch3r-cli-ripgrep/SKILL.md +85 -0
- package/skills/hatch3r-cli-rtk/SKILL.md +91 -0
- package/skills/hatch3r-cli-sd/SKILL.md +85 -0
- package/skills/hatch3r-cli-stagehand/SKILL.md +111 -0
- package/skills/hatch3r-cli-taplo/SKILL.md +84 -0
- package/skills/hatch3r-cli-yq/SKILL.md +85 -0
- package/skills/hatch3r-cli-zstd/SKILL.md +85 -0
- package/skills/hatch3r-command-customize/SKILL.md +10 -0
- package/skills/hatch3r-context-health/SKILL.md +14 -0
- package/skills/hatch3r-cost-tracking/SKILL.md +14 -0
- package/skills/hatch3r-customize/SKILL.md +17 -0
- package/skills/hatch3r-dep-audit/SKILL.md +14 -0
- package/skills/hatch3r-design-system-detect/SKILL.md +164 -0
- package/skills/hatch3r-feature/SKILL.md +2 -0
- package/skills/hatch3r-gh-agentic-workflows/SKILL.md +13 -0
- package/skills/hatch3r-handoff-prepare/SKILL.md +160 -0
- package/skills/hatch3r-handoff-resume/SKILL.md +171 -0
- package/skills/hatch3r-incident-response/SKILL.md +14 -0
- package/skills/hatch3r-issue-workflow/SKILL.md +5 -0
- package/skills/hatch3r-logical-refactor/SKILL.md +14 -0
- package/skills/hatch3r-migration/SKILL.md +14 -0
- package/skills/hatch3r-observability-verify/SKILL.md +134 -0
- package/skills/hatch3r-perf-audit/SKILL.md +14 -0
- package/skills/hatch3r-pr-creation/SKILL.md +14 -0
- package/skills/hatch3r-qa-validation/SKILL.md +18 -0
- package/skills/hatch3r-recipe/SKILL.md +14 -0
- package/skills/hatch3r-refactor/SKILL.md +14 -0
- package/skills/hatch3r-release/SKILL.md +14 -0
- package/skills/hatch3r-reliability-verify/SKILL.md +146 -0
- package/skills/hatch3r-rule-customize/SKILL.md +10 -0
- package/skills/hatch3r-skill-customize/SKILL.md +10 -0
- package/skills/hatch3r-ui-ux-verify/SKILL.md +138 -0
- package/skills/hatch3r-visual-refactor/SKILL.md +15 -1
|
@@ -0,0 +1,85 @@
|
|
|
1
|
+
---
|
|
2
|
+
id: hatch3r-cli-bat
|
|
3
|
+
description: "cat clone with syntax highlighting and git integration. Use when scrolling one source file with syntax colours, line numbers, and header decorations; invoke `bat`. Prints to a terminal pager (`less`-compatible) for quick visual inspection."
|
|
4
|
+
tags: ["cli-tools", "view", "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: bat
|
|
10
|
+
bin: bat
|
|
11
|
+
tier: 1
|
|
12
|
+
category: view
|
|
13
|
+
homepage: https://github.com/sharkdp/bat
|
|
14
|
+
---
|
|
15
|
+
<!-- HATCH3R-CLI-SKILL-GENERATED v1 -->
|
|
16
|
+
# bat
|
|
17
|
+
|
|
18
|
+
cat clone with syntax highlighting and git integration
|
|
19
|
+
|
|
20
|
+
## When to Use
|
|
21
|
+
|
|
22
|
+
Reach for `bat` when the task is in the **view** 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
|
+
bat src/cli/commands/init.ts
|
|
33
|
+
```
|
|
34
|
+
Default view — syntax-highlighted output with line numbers and git modification markers.
|
|
35
|
+
|
|
36
|
+
```bash
|
|
37
|
+
bat --plain --line-range 50:100 src/adapters/cursor.ts
|
|
38
|
+
```
|
|
39
|
+
`--plain` strips decorations; range syntax mimics `sed -n '50,100p'` without invoking sed.
|
|
40
|
+
|
|
41
|
+
```bash
|
|
42
|
+
bat --paging=never -A whitespace.txt
|
|
43
|
+
```
|
|
44
|
+
`-A` reveals tabs, trailing spaces, and CRLF — handy when debugging YAML indentation failures.
|
|
45
|
+
|
|
46
|
+
```bash
|
|
47
|
+
git diff | bat --language=diff
|
|
48
|
+
```
|
|
49
|
+
Force a language when stdin lacks a filename hint — `--language=diff` produces a unified-diff colorscheme.
|
|
50
|
+
|
|
51
|
+
```bash
|
|
52
|
+
fd '\.md$' governance/ -x bat --style=plain
|
|
53
|
+
```
|
|
54
|
+
Pipeline: list files with `fd`, render each through `bat` with no header — bulk preview of canonical content.
|
|
55
|
+
|
|
56
|
+
## Wrong Choice When
|
|
57
|
+
|
|
58
|
+
- Don't use `bat` against binary files (`.zst`, executables); it prints the bytes verbatim and pollutes the terminal. Reach for `xxd | bat --language=hex` or `file <path>` first.
|
|
59
|
+
- Don't pipe `bat` into machine consumers in a strict POSIX environment — ANSI escapes and `--paging=auto` defaults break grep/awk chains. Reach for plain `cat`.
|
|
60
|
+
- Don't reach for `bat` to compare two files; it views one at a time. Reach for `delta` (`hatch3r-cli-delta`) or `diff -u | bat --language=diff`.
|
|
61
|
+
|
|
62
|
+
## Alternatives
|
|
63
|
+
|
|
64
|
+
| Tool | When to prefer |
|
|
65
|
+
|------|----------------|
|
|
66
|
+
| `cat` (POSIX) | Strict scripted pipelines, embedded systems, environments where escape sequences break consumers. |
|
|
67
|
+
| `less` | Paginate raw text without coloring; large files where rebuilding the syntax tree is wasted work. |
|
|
68
|
+
| `delta` (`hatch3r-cli-delta`) | Diff view rather than single-file render. |
|
|
69
|
+
| `xxd \| bat --language=hex` | Inspect binary payloads with column-aligned hex + ASCII. |
|
|
70
|
+
|
|
71
|
+
## Detection / Install
|
|
72
|
+
|
|
73
|
+
Verify with:
|
|
74
|
+
```bash
|
|
75
|
+
command -v bat
|
|
76
|
+
```
|
|
77
|
+
|
|
78
|
+
Install (mac):
|
|
79
|
+
|
|
80
|
+
```bash
|
|
81
|
+
# brew
|
|
82
|
+
brew install bat
|
|
83
|
+
```
|
|
84
|
+
|
|
85
|
+
Homepage: https://github.com/sharkdp/bat
|
|
@@ -0,0 +1,85 @@
|
|
|
1
|
+
---
|
|
2
|
+
id: hatch3r-cli-comby
|
|
3
|
+
description: "Structural search and replace across languages with declarative patterns. Use when declarative pattern match-and-rewrite spanning mixed-language repositories; invoke `comby`. Language-agnostic: a single `{:[hole]}` template works against any of 30+ grammars."
|
|
4
|
+
tags: ["cli-tools", "search", "opt-in"]
|
|
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: comby
|
|
10
|
+
bin: comby
|
|
11
|
+
tier: 3
|
|
12
|
+
category: search
|
|
13
|
+
homepage: https://comby.dev/
|
|
14
|
+
---
|
|
15
|
+
<!-- HATCH3R-CLI-SKILL-GENERATED v1 -->
|
|
16
|
+
# comby
|
|
17
|
+
|
|
18
|
+
Structural search and replace across languages with declarative patterns
|
|
19
|
+
|
|
20
|
+
## When to Use
|
|
21
|
+
|
|
22
|
+
Reach for `comby` 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
|
+
comby 'console.log(:[arg])' 'logger.info(:[arg])' -i src/
|
|
33
|
+
```
|
|
34
|
+
Rewrite every `console.log(...)` to `logger.info(...)` in `src/`, preserving the captured argument.
|
|
35
|
+
|
|
36
|
+
```bash
|
|
37
|
+
comby 'if :[cond] { return :[ret] }' 'if (:[cond]) return :[ret];' -i .
|
|
38
|
+
```
|
|
39
|
+
Reshape brace-style returns into single-line returns — works across Go, Rust, TypeScript, Java.
|
|
40
|
+
|
|
41
|
+
```bash
|
|
42
|
+
comby -config patterns.toml -d src/
|
|
43
|
+
```
|
|
44
|
+
Run a batch of templated rewrites from a TOML config (each `[[match]]` entry holds a match/rewrite pair).
|
|
45
|
+
|
|
46
|
+
```bash
|
|
47
|
+
comby 'TODO(:[author]): :[msg]' 'FIXME(:[author]): :[msg]' -i -extensions js,ts,go
|
|
48
|
+
```
|
|
49
|
+
Restrict the rewrite to specific file extensions.
|
|
50
|
+
|
|
51
|
+
```bash
|
|
52
|
+
comby 'foo(:[args])' 'bar(:[args])' -stats -d src/
|
|
53
|
+
```
|
|
54
|
+
Preview-only run with summary stats — no files written. Useful before a destructive rewrite.
|
|
55
|
+
|
|
56
|
+
## Wrong Choice When
|
|
57
|
+
|
|
58
|
+
- **Security/SAST policy enforcement:** semgrep has a vetted rule registry, dataflow analysis, and CI-grade reporting — comby's surface-level templates miss taint flow.
|
|
59
|
+
- **Pure-text find/replace (no balanced delimiters):** `hatch3r-cli-ripgrep` + `hatch3r-cli-sd` (both tier 1) are faster and have no template parser overhead.
|
|
60
|
+
- **Language-precise refactors that need type info:** `hatch3r-cli-ast-grep` (tier 1) operates on the parse tree; comby is brace-aware but not type-aware.
|
|
61
|
+
|
|
62
|
+
## Alternatives
|
|
63
|
+
|
|
64
|
+
| Tool | When to prefer |
|
|
65
|
+
|------|----------------|
|
|
66
|
+
| `hatch3r-cli-ast-grep` (tier 1) | Tree-sitter-backed, language-precise rewrites |
|
|
67
|
+
| `hatch3r-cli-sd` (tier 1) | Plain literal-text replacement, no template syntax |
|
|
68
|
+
| semgrep | SAST rule registry, taint analysis, CI integration |
|
|
69
|
+
| `hatch3r-cli-ripgrep` (tier 1) | Read-only inventory before deciding on a rewrite tool |
|
|
70
|
+
|
|
71
|
+
## Detection / Install
|
|
72
|
+
|
|
73
|
+
Verify with:
|
|
74
|
+
```bash
|
|
75
|
+
command -v comby
|
|
76
|
+
```
|
|
77
|
+
|
|
78
|
+
Install (mac):
|
|
79
|
+
|
|
80
|
+
```bash
|
|
81
|
+
# brew
|
|
82
|
+
brew install comby
|
|
83
|
+
```
|
|
84
|
+
|
|
85
|
+
Homepage: https://comby.dev/
|
|
@@ -0,0 +1,84 @@
|
|
|
1
|
+
---
|
|
2
|
+
id: hatch3r-cli-csvkit
|
|
3
|
+
description: "csvkit — Python CSV toolkit (csvlook, csvsql, csvjoin, csvstat). Use when Python-powered CSV toolkit covering csvlook, csvsql, csvjoin, csvstat; invoke `csvlook`. Streams records lazily; works on datasets that exceed available RAM."
|
|
4
|
+
tags: ["cli-tools", "data", "opt-in"]
|
|
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: csvkit
|
|
10
|
+
bin: csvlook
|
|
11
|
+
tier: 3
|
|
12
|
+
category: data
|
|
13
|
+
homepage: https://csvkit.readthedocs.io/
|
|
14
|
+
---
|
|
15
|
+
<!-- HATCH3R-CLI-SKILL-GENERATED v1 -->
|
|
16
|
+
# csvkit
|
|
17
|
+
|
|
18
|
+
csvkit — Python CSV toolkit (csvlook, csvsql, csvjoin, csvstat)
|
|
19
|
+
|
|
20
|
+
## When to Use
|
|
21
|
+
|
|
22
|
+
Reach for `csvlook` 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
|
+
csvcut -c name,email records.csv
|
|
33
|
+
```
|
|
34
|
+
Project two named columns from a CSV — column-name addressing instead of positional.
|
|
35
|
+
|
|
36
|
+
```bash
|
|
37
|
+
csvstat records.csv
|
|
38
|
+
```
|
|
39
|
+
One-shot column-by-column summary: type, count, null %, min/max/mean. Drop-in EDA.
|
|
40
|
+
|
|
41
|
+
```bash
|
|
42
|
+
csvgrep -c status -m active records.csv
|
|
43
|
+
```
|
|
44
|
+
Row filter where column `status` matches literal `active`.
|
|
45
|
+
|
|
46
|
+
```bash
|
|
47
|
+
csvjoin -c id a.csv b.csv
|
|
48
|
+
```
|
|
49
|
+
Join two CSVs on column `id` (inner join by default; `--left` / `--outer` available).
|
|
50
|
+
|
|
51
|
+
```bash
|
|
52
|
+
csvsql --query 'SELECT name FROM data WHERE active = 1' data.csv
|
|
53
|
+
```
|
|
54
|
+
Run SQL directly against a CSV using an in-memory SQLite — no schema file required.
|
|
55
|
+
|
|
56
|
+
## Wrong Choice When
|
|
57
|
+
|
|
58
|
+
- **Files larger than ~1M rows:** csvkit is Python-startup-heavy; `hatch3r-cli-duckdb` (tier 2) loads and queries the same file in a fraction of the time.
|
|
59
|
+
- **Production SQL workloads:** csvsql is convenient but evaluates against in-memory SQLite — use a real database for anything served.
|
|
60
|
+
- **Single-column slice or count under a few hundred MB:** `hatch3r-cli-qsv` (tier 2) is faster with lower memory pressure.
|
|
61
|
+
|
|
62
|
+
## Alternatives
|
|
63
|
+
|
|
64
|
+
| Tool | When to prefer |
|
|
65
|
+
|------|----------------|
|
|
66
|
+
| `hatch3r-cli-duckdb` (tier 2) | Large files, analytical SQL, Parquet, multi-file joins |
|
|
67
|
+
| `hatch3r-cli-qsv` (tier 2) | Fast column slicing, sampling, deduping |
|
|
68
|
+
| `hatch3r-cli-miller` (tier 3) | Streaming put/filter DSL, format conversion |
|
|
69
|
+
|
|
70
|
+
## Detection / Install
|
|
71
|
+
|
|
72
|
+
Verify with:
|
|
73
|
+
```bash
|
|
74
|
+
command -v csvlook
|
|
75
|
+
```
|
|
76
|
+
|
|
77
|
+
Install (mac):
|
|
78
|
+
|
|
79
|
+
```bash
|
|
80
|
+
# pipx
|
|
81
|
+
pipx install csvkit
|
|
82
|
+
```
|
|
83
|
+
|
|
84
|
+
Homepage: https://csvkit.readthedocs.io/
|
|
@@ -0,0 +1,86 @@
|
|
|
1
|
+
---
|
|
2
|
+
id: hatch3r-cli-delta
|
|
3
|
+
description: "Syntax-highlighting git diff pager. Use when viewing unified git diffs with side-by-side syntax colourised hunks; invoke `delta`. Replaces the legacy `less`-based diff renderer with terminal-native ANSI colour blocks."
|
|
4
|
+
tags: ["cli-tools", "git", "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: delta
|
|
10
|
+
bin: delta
|
|
11
|
+
tier: 1
|
|
12
|
+
category: git
|
|
13
|
+
homepage: https://github.com/dandavison/delta
|
|
14
|
+
---
|
|
15
|
+
<!-- HATCH3R-CLI-SKILL-GENERATED v1 -->
|
|
16
|
+
# delta
|
|
17
|
+
|
|
18
|
+
Syntax-highlighting git diff pager
|
|
19
|
+
|
|
20
|
+
## When to Use
|
|
21
|
+
|
|
22
|
+
Reach for `delta` 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
|
+
```bash
|
|
32
|
+
git config --global core.pager delta
|
|
33
|
+
git config --global interactive.diffFilter 'delta --color-only'
|
|
34
|
+
```
|
|
35
|
+
Enables delta as the diff pager for `git diff`, `git log -p`, and interactive add/stash.
|
|
36
|
+
|
|
37
|
+
```ini
|
|
38
|
+
# ~/.gitconfig
|
|
39
|
+
[delta]
|
|
40
|
+
side-by-side = true
|
|
41
|
+
line-numbers = true
|
|
42
|
+
syntax-theme = Monokai Extended
|
|
43
|
+
navigate = true
|
|
44
|
+
```
|
|
45
|
+
Side-by-side panes with line numbers and `n`/`N` hunk navigation — the high-signal review layout.
|
|
46
|
+
|
|
47
|
+
```bash
|
|
48
|
+
git diff HEAD~5..HEAD -- 'src/**/*.ts' | delta --features=side-by-side
|
|
49
|
+
```
|
|
50
|
+
Pipe a constrained diff range into delta directly when the pager is not globally configured.
|
|
51
|
+
|
|
52
|
+
```bash
|
|
53
|
+
delta --list-syntax-themes | rg -i 'mono\|gruv\|night'
|
|
54
|
+
```
|
|
55
|
+
Inventory available syntax themes — use the output to set `syntax-theme` in `~/.gitconfig`.
|
|
56
|
+
|
|
57
|
+
## Wrong Choice When
|
|
58
|
+
|
|
59
|
+
- Don't pipe `delta` output into another script — it injects ANSI escape sequences that break downstream parsing. Reach for plain `diff -u` or `git diff --no-color` for machine consumers.
|
|
60
|
+
- Don't use `delta` to review semantic refactors (renames across files, signature reshapes); line-by-line color highlight misses tree-level moves. Reach for `difftastic` (`hatch3r-cli-difftastic`).
|
|
61
|
+
- Don't expect `delta` to fix the diff itself — it is a pager, not a merge tool. Reach for `git mergetool` or your editor's diff view.
|
|
62
|
+
|
|
63
|
+
## Alternatives
|
|
64
|
+
|
|
65
|
+
| Tool | When to prefer |
|
|
66
|
+
|------|----------------|
|
|
67
|
+
| `difftastic` (`hatch3r-cli-difftastic`) | Tree-aware diff that understands renames and reshaped expressions. |
|
|
68
|
+
| `diff -u` | Scripted consumers needing plain unified text without ANSI. |
|
|
69
|
+
| GitHub web UI / `gh pr diff 123` | Review on the forge with inline comments. |
|
|
70
|
+
| `git diff --word-diff=color` | Quick word-granularity diff without a separate binary. |
|
|
71
|
+
|
|
72
|
+
## Detection / Install
|
|
73
|
+
|
|
74
|
+
Verify with:
|
|
75
|
+
```bash
|
|
76
|
+
command -v delta
|
|
77
|
+
```
|
|
78
|
+
|
|
79
|
+
Install (mac):
|
|
80
|
+
|
|
81
|
+
```bash
|
|
82
|
+
# brew
|
|
83
|
+
brew install git-delta
|
|
84
|
+
```
|
|
85
|
+
|
|
86
|
+
Homepage: https://github.com/dandavison/delta
|
|
@@ -0,0 +1,84 @@
|
|
|
1
|
+
---
|
|
2
|
+
id: hatch3r-cli-difftastic
|
|
3
|
+
description: "Structural diff that understands syntax. Use when syntax-aware diffing that reports semantic edits instead of textual lines; invoke `difft`. Skips whitespace and reordering noise by computing edits over parsed syntax trees."
|
|
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: difftastic
|
|
10
|
+
bin: difft
|
|
11
|
+
tier: 2
|
|
12
|
+
category: git
|
|
13
|
+
homepage: https://difftastic.wilfred.me.uk/
|
|
14
|
+
---
|
|
15
|
+
<!-- HATCH3R-CLI-SKILL-GENERATED v1 -->
|
|
16
|
+
# difftastic
|
|
17
|
+
|
|
18
|
+
Structural diff that understands syntax
|
|
19
|
+
|
|
20
|
+
## When to Use
|
|
21
|
+
|
|
22
|
+
Reach for `difft` 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
|
+
```bash
|
|
32
|
+
difft a.ts b.ts
|
|
33
|
+
```
|
|
34
|
+
Compare two files using a syntax-aware tree diff; rename-of-block does not show as wholesale rewrite.
|
|
35
|
+
|
|
36
|
+
```bash
|
|
37
|
+
git -c diff.external=difft diff HEAD~1 HEAD
|
|
38
|
+
```
|
|
39
|
+
One-shot syntactic git diff for the last commit without mutating global config.
|
|
40
|
+
|
|
41
|
+
```bash
|
|
42
|
+
git config --global diff.external difft
|
|
43
|
+
```
|
|
44
|
+
Wire `difft` as the default git external diff (human setup; agents should prefer the `-c` form above for transparency).
|
|
45
|
+
|
|
46
|
+
```bash
|
|
47
|
+
difft --background light a.ts b.ts
|
|
48
|
+
```
|
|
49
|
+
Render with a light-background palette — pick to match the terminal theme.
|
|
50
|
+
|
|
51
|
+
```bash
|
|
52
|
+
difft --display side-by-side a.py b.py
|
|
53
|
+
```
|
|
54
|
+
Side-by-side layout for review; fall back to the default inline mode for narrow terminals.
|
|
55
|
+
|
|
56
|
+
## Wrong Choice When
|
|
57
|
+
|
|
58
|
+
- A script needs stable, parseable diff output — `diff -u` or `git diff --no-color` produce deterministic POSIX output; `difft` is for human reading.
|
|
59
|
+
- You only need a prettier pager for unified diffs — `delta` (Tier 1) renders standard git output with syntax highlighting and is faster.
|
|
60
|
+
- The languages involved are unsupported by tree-sitter parsers `difft` ships — fall back to `diff -u`.
|
|
61
|
+
|
|
62
|
+
## Alternatives
|
|
63
|
+
|
|
64
|
+
| Tool | When to prefer |
|
|
65
|
+
|------|----------------|
|
|
66
|
+
| `delta` | Want syntax-highlighted unified diff for git output. |
|
|
67
|
+
| `diff -u` | Script consumes the output; need POSIX stability. |
|
|
68
|
+
| `git diff --word-diff` | Care about prose changes; line-noise from refactors is acceptable. |
|
|
69
|
+
|
|
70
|
+
## Detection / Install
|
|
71
|
+
|
|
72
|
+
Verify with:
|
|
73
|
+
```bash
|
|
74
|
+
command -v difft
|
|
75
|
+
```
|
|
76
|
+
|
|
77
|
+
Install (mac):
|
|
78
|
+
|
|
79
|
+
```bash
|
|
80
|
+
# brew
|
|
81
|
+
brew install difftastic
|
|
82
|
+
```
|
|
83
|
+
|
|
84
|
+
Homepage: https://difftastic.wilfred.me.uk/
|
|
@@ -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 `qsv`/`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 — `qsv` (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
|
+
| `qsv` | 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
|