explore-codebase

Structural patterns (functions, classes) sg (ast-grep)

Safety Notice

This listing is imported from skills.sh public index metadata. Review upstream SKILL.md and repository scripts before running.

Copy this and send it to your AI assistant to learn

Install skill "explore-codebase" with this command: npx skills add vinta/hal-9000/vinta-hal-9000-explore-codebase

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'

Source Transparency

This detail page is rendered from real SKILL.md content. Trust labels are metadata-based hints, not a safety guarantee.

Related Skills

Related by shared tags or category signals.

Coding

codex

No summary provided by upstream source.

Repository SourceNeeds Review
Coding

understand-codebase

No summary provided by upstream source.

Repository SourceNeeds Review
General

commit

No summary provided by upstream source.

Repository SourceNeeds Review