extracting-code-structure
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
More from iota9star/my-skills
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
27querying-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
26finding-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
24viewing-files
Enhanced cat clone with syntax highlighting, Git integration, and automatic paging for efficient file content viewing. Use this skill when viewing source files, documentation, or when syntax highlighting would improve readability
22replacing-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
21fuzzy-selecting
Provides interactive fuzzy finder for selecting items from any list with preview capabilities. Use this skill when choosing from search results, files, processes, or any command output
21