- Home
- Skills
- Brettatoms
- Agent Skills
- Code Symbols
code-symbols_skill
- JavaScript
0
GitHub Stars
1
Bundled Files
2 months ago
Catalog Refreshed
4 months ago
First Indexed
Readme & install
Copy the install command, review bundled files from the catalogue, and read any extended description pulled from the listing source.
Installation
Preview and clipboard use veilstrat where the catalogue uses aiagentskills.
npx veilstrat add skill brettatoms/agent-skills --skill code-symbols- SKILL.md3.6 KB
Overview
This skill uses ast-grep (tree-sitter based) to find and edit symbols across many programming languages. It locates function and class definitions, symbol usages, and performs structural renames or code rewrites. Use it for language-aware searches and automated, syntax-safe edits in JavaScript, TypeScript, Python, Go, Rust, and more. Clojure is not supported by this skill.
How this skill works
The skill runs ast-grep (sg) patterns that are valid code snippets parsed by tree-sitter. Patterns can include meta-variables to capture nodes, match zero-or-more nodes, or ignore matches, and results can be emitted as JSON for tooling. It supports previewing matches, performing automated rewrites (rename or replace), and updating files interactively or in batch.
When to use it
- Find all function or class definitions by structure rather than name
- Locate symbol usages across a codebase with correct syntax boundaries
- Rename a symbol safely across files with a structural rewrite
- Extract or replace code patterns that depend on AST shape
- Generate structured JSON output for further automation or reporting
Best practices
- Install ast-grep globally and verify with
ast-grep --versionbefore running searches - Write patterns as valid source code for the target language so tree-sitter can parse them
- Preview matches first using --json or dry-run flags before applying --update-all
- Use meta-variables ($NAME, $$$, $_) to capture or ignore nodes and avoid overbroad matches
- Restrict searches to relevant directories or file extensions to reduce noise and speed up runs
Example use cases
- Find every JavaScript function declaration and extract names into a report using --json and jq
- Rename a Python function across a repo with a structural pattern and --update-all to ensure syntax-safe replacement
- Search for Go method usages on a receiver type and refactor their calls
- Locate and replace a repeated JSX/TSX pattern across a frontend codebase using tree-sitter patterns
- Identify Rust trait implementations and list files and line numbers for audit
FAQ
ast-grep supports dozens of languages including JavaScript, TypeScript, Python, Go, Rust, Java, Kotlin, C, C++, Swift, and more; Clojure is not supported by this skill.
How do I rename a symbol safely?
Run ast-grep with --pattern for the old symbol and --rewrite for the new one. Preview results first, then apply changes with --update-all or use --interactive for manual confirmation.