Agent skill
extracting-code-structure
Extracts file structure (functions, classes, exports) efficiently without reading entire files, using ast-grep, Dart/Flutter analyzer, ctags, or other language-specific tools to get outlines and signatures. Use this skill when listing all methods, functions, or classes in a file, exploring unfamiliar code, getting API overviews, or deciding what to read selectively
Install this agent skill to your Project
npx add-skill https://github.com/iota9star/my-skills/tree/main/skills/code-structure
SKILL.md
Code Structure Exploration Tools
Always invoke extracting-code-structure skill to extract file structure - do not execute bash commands directly.
Recognizing Structure Questions
These keywords mean use structure tools, NOT grep/search:
- "all the methods/functions/classes in..."
- "list of function signatures"
- "what functions/exports/API..."
- "package API" or "module exports"
- "method signatures with receivers" (Dart/Flutter, TypeScript)
- "what's available in..."
These keywords mean use search (Grep tool or extracting-code-structure skill):
- "where is X defined"
- "find calls to X"
- "search for pattern Y"
Before You Choose a Tool
Ask yourself:
- Am I listing/exploring what exists? → Structure tools
- Am I finding WHERE something is? → Search tools (Grep or ast-grep)
- Am I understanding HOW something works? → Read
When to Get File Outline vs Read
Get outline/index when:
- File is large (>500 lines)
- Need to see what's available (functions, classes, exports)
- Exploring unfamiliar code
- Want to decide what to read in detail
- Saves 90%+ context vs reading entire file
Just use Read when:
- File is small (<500 lines)
- Already know what you're looking for
- Need to understand implementation details
- extracting-code-structure pattern already targets what you need
Anti-Patterns
DON'T use grep/rg/Grep tool for:
- Extracting function/method lists
- Getting API overviews
- Finding all exports/public members
- Getting signatures/interfaces
These are STRUCTURE queries, not SEARCH queries.
Default Strategy
Invoke extracting-code-structure skill for extracting file structure (functions, classes, exports) efficiently without reading entire files.
Use ast-grep patterns, Dart/Flutter analyzer, ctags, or language-specific tools to get outlines and signatures. Dart/Flutter and JavaScript/TypeScript support have highest priority.
Exploration Strategy
Tiered approach (try in order):
-
ast-grep with known patterns - Fast, targeted (highest priority)
- Extract exports, functions, classes with specific patterns
- See code structure guide for patterns, including comprehensive Dart/Flutter support
-
Toolchain-specific approaches - When available
- Dart/Flutter analyzer - Comprehensive structure extraction for .dart files
- See code structure guide for Dart/Flutter patterns
- ctags/universal-ctags: Symbol index across languages
- See code structure guide for examples
- Dart/Flutter analyzer - Comprehensive structure extraction for .dart files
-
Read file - Last resort for exploration
- Sometimes necessary to understand structure
Key Principle
Use structure tools to decide what to read, then read selectively.
Don't read 1000-line files blind. Get an outline first, then read the 50 lines you actually need.
Skill Combinations
For Discovery and Exploration
- extracting-code-structure → fd: Find files of a specific type, then get structure
- extracting-code-structure → ripgrep: Understand structure, then search for specific patterns
- extracting-code-structure → analyzing-code-structure: Get outline, then perform structural refactoring
- extracting-code-structure → jq/yq: Understand API structures before extracting data
In Refactoring Workflows
- extracting-code-structure → fzf → analyzing-code-structure: Interactive selection of components to refactor
- extracting-code-structure → ripgrep → sd: Find patterns and perform replacements
For Documentation and Analysis
- extracting-code-structure → tokei: Get statistics for specific code components
- extracting-code-structure → bat: View structure with syntax highlighting
Multi-Skill Workflows
- extracting-code-structure → ripgrep → analyzing-code-structure → bat: Complete code analysis and refactoring pipeline
- extracting-code-structure → fd → jq/yq: Find and analyze configuration structures
- extracting-code-structure → fzf → sd: Interactive selection and modification of code elements
Integration Examples
# Get structure and find all methods
ast-grep -r 'function $FUNC($$$ARGS) {$$$BODY}' src/ | fzf | cut -d: -f1 | xargs -I {} bat {}
# Understand API and extract usage
yq '.endpoints' api.yml | fzf | ripgrep -A 10 -B 5
Detailed Patterns
For language-specific extraction patterns, ast-grep examples, ctags usage, and integration strategies, load code structure guide when needing:
- Dart/Flutter specific patterns and analyzer usage
- Language-specific extraction strategies
- ctags configuration and usage
- Comprehensive workflow examples
- Tool selection guidance for different languages
Recommended Agent Skills
Expand your agent's capabilities with these related and highly-rated skills.
analyzing-code
Analyzes code statistics by language for project insight, CI/CD metrics, or before refactoring. Use this skill when understanding project composition, measuring change impact, or generating CI/CD metrics
querying-json
Extracts specific fields from JSON files efficiently using jq instead of reading entire files, saving 80-95% context. Use this skill when querying JSON files, filtering/transforming data, or getting specific field(s) from large JSON files
querying-yaml
Extracts specific fields from YAML files efficiently using yq instead of reading entire files, saving 80-95% context. Use this skill when querying YAML files, filtering/transforming configuration data, or getting specific field(s) from large YAML files like docker-compose.yml or GitHub Actions workflows
replacing-text
Provides intuitive find & replace CLI with JavaScript regex and string-literal mode. Use this skill when performing text replacements, batch transformations, or need JavaScript-style regex syntax
analyzing-code-structure
Performs structural code search and refactoring by matching code structure instead of exact text. Use when editing code structure with text matching ambiguity, handling "old_string not unique" problems, or performing formatting-independent pattern matching across function signatures, method calls, and class structures
finding-files
Performs fast file discovery with parallel search and smart defaults. Use this skill when searching for files by name, pattern, or type, especially when performance matters or when working with large directories
Didn't find tool you were looking for?