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

Stars 8
Forks 0

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:

  1. Am I listing/exploring what exists? → Structure tools
  2. Am I finding WHERE something is? → Search tools (Grep or ast-grep)
  3. 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):

  1. 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
  2. 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
  3. 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

bash
# 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

Expand your agent's capabilities with these related and highly-rated skills.

iota9star/my-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

8 0
Explore
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

8 0
Explore
iota9star/my-skills

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

8 0
Explore
iota9star/my-skills

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

8 0
Explore
iota9star/my-skills

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

8 0
Explore
iota9star/my-skills

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

8 0
Explore

Didn't find tool you were looking for?

Be as detailed as possible for better results