explore-codebase
SKILL.md
Explore Codebase
Tool Selection
| Need | Tool |
|---|---|
| Structural patterns (functions, classes) | sg (ast-grep) |
| Text/regex patterns (strings, names) | rg (ripgrep) |
| File discovery by name/extension | fd |
Decision flow: Find files first? fd → pipe to rg/sg. Syntax-aware match needed? sg. Fast text search? rg. Uncertain? Start with rg, escalate to sg if structure matters.
ast-grep Essentials
ast-grep is the least familiar tool -- key syntax summarized here. See references/ast-grep.md for language-specific patterns and YAML rule files.
sg -p 'PATTERN' -l LANG [PATH]
sg -p 'PATTERN' --has 'INNER' -l LANG # Must contain
sg -p 'PATTERN' --not-has 'INNER' -l LANG # Must not contain
sg -p 'PATTERN' --inside 'OUTER' -l LANG # Must be within
Metavariables
| Syntax | Captures | Example |
|---|---|---|
$VAR |
Single node | console.log($MSG) |
$$$VAR |
Zero or more nodes | function($$$ARGS) -- any arity |
$_ |
Non-capturing | $_FUNC($_) -- match without capture |
Rules: must be UPPERCASE, same name = same content ($A == $A matches x == x not x == y).
Examples
sg -p 'function $NAME($$$ARGS) { $$$ }' -l js
sg -p 'async function $NAME($$$) { $$$ }' --has 'await $EXPR' -l js
sg -p 'class $NAME extends $PARENT { $$$ }' -l ts
sg -p 'def $NAME($$$): $$$' -l py
ripgrep / fd Quick Reference
Standard CLI tools -- use references/ripgrep.md and references/fd.md for full flag tables.
rg PATTERN -t TYPE [PATH] # Search by file type
rg -F 'LITERAL' -t TYPE # Fixed string (no regex)
rg PATTERN -l # List matching files only
rg PATTERN -C 3 # With context lines
fd -e EXT [PATH] # Find by extension
fd PATTERN [PATH] # Find by name regex
fd -e py | xargs rg 'pattern' # Pipe fd into rg
Performance
- Narrow scope first:
fd -e py src/ | xargs rg 'class.*Test' - Always use type filters:
rg PATTERN -t rust,sg -p 'PATTERN' -l rs - Exclude artifacts:
rg PATTERN -g '!node_modules' -g '!dist'
Weekly Installs
34
Repository
vinta/hal-9000GitHub Stars
109
First Seen
Feb 10, 2026
Security Audits
Installed on
gemini-cli33
opencode32
codex32
github-copilot31
claude-code29
kimi-cli28