Skip to content
Back to skills

003 Name Skill Ec7166f4

ASecurity

Semantic search for codebases. Locates matches with ripgrep and expands them into full AST nodes (functions/classes) using tree-sitter or pre-generated _MAP.md files. Returns complete, syntactically valid code blocks rather than fragmented lines. Use when looking for specific implementations, examples, or references where full context is needed.

  • 9 stars
  • 0 votes
  • 0 copies
  • 0 views
  • Added October 11, 2026
developmentjavascripttypescriptpythonrustgojavarubyphpc++c#

Security analysis

A96/100
  • mediumInstalls packages at runtime which could introduce malicious dependencies

Pro shows the line behind each finding and how to fix it

Scanned October 11, 2026

npx -y skills add tools-only/X-Skills --skill 003-name-skill_ec7166f4 --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of 003 Name Skill Ec7166f4?

Add the live security badge to your README. It updates with every re-scan.

Security grade badge for 003 Name Skill Ec7166f4
[![Security: A — Skills Directory](https://www.skillsdirectory.com/api/skills/tools-only-003-name-skill-ec7166f4/badge)](https://www.skillsdirectory.com/skills/tools-only-003-name-skill-ec7166f4)

More formats (shields.io, HTML) on the badges page. Keep it an A: scan every change in CI with Pro.

SKILL.md
---
name: exploring-codebases
description: Semantic search for codebases. Locates matches with ripgrep and expands them into full AST nodes (functions/classes) using tree-sitter or pre-generated _MAP.md files. Returns complete, syntactically valid code blocks rather than fragmented lines. Use when looking for specific implementations, examples, or references where full context is needed.
metadata:
  version: 0.3.1
---

# Exploring Codebases

Hybrid search tool that combines the speed of `ripgrep` with structural awareness from `tree-sitter` or pre-generated `_MAP.md` files. It finds matches and returns the *entire* function or class containing the match, de-duplicating results semantically.

## Progressive Disclosure

**By default, returns signatures only** (docstrings + declarations without function bodies), reducing token usage by 10-20x. Use `--expand-full` to get complete implementations when needed.

## Installation

```bash
uv venv /home/claude/.venv
# tree-sitter is optional if using --use-maps mode
uv pip install tree-sitter-language-pack --python /home/claude/.venv/bin/python
```

## Usage

```bash
# Default: signatures only with tree-sitter (efficient)
/home/claude/.venv/bin/python /mnt/skills/user/exploring-codebases/scripts/search.py "query" /path/to/repo

# Full implementations
/home/claude/.venv/bin/python /mnt/skills/user/exploring-codebases/scripts/search.py "query" /path/to/repo --expand-full

# Map-based mode: no tree-sitter required (#276)
# Requires _MAP.md files generated by mapping-codebases
/home/claude/.venv/bin/python /mnt/skills/user/exploring-codebases/scripts/search.py "query" /path/to/repo --use-maps
```

## Options

- `--glob pattern`: Filter files (e.g., `*.py`, `*.ts`)
- `--expand-full`: Return full implementations instead of signatures
- `--json`: Output JSON for machine processing (default is Markdown)
- `--use-maps`: Use pre-generated `_MAP.md` files instead of tree-sitter for context expansion. Eliminates redundant tree-sitter parsing when maps already exist.

## Map-Based Mode (v0.3.0)

When `_MAP.md` files exist (generated by `mapping-codebases`), use `--use-maps` to skip tree-sitter entirely:

1. `mapping-codebases` runs tree-sitter once to generate `_MAP.md` files with symbol locations
2. `exploring-codebases --use-maps` uses ripgrep + map data for context expansion
3. No redundant AST parsing at search time

**Benefits:**
- Single tree-sitter execution per codebase (during map generation)
- Faster searches (no AST parsing overhead)
- `tree-sitter-language-pack` not required at runtime
- Maps serve as canonical index for both navigation and search

**Recommended workflow:**
```bash
# Step 1: Generate maps (one-time, or after code changes)
python /mnt/skills/user/mapping-codebases/scripts/codemap.py /path/to/repo

# Step 2: Search using maps (fast, no tree-sitter needed)
python /mnt/skills/user/exploring-codebases/scripts/search.py "query" /path/to/repo --use-maps
```

## Examples

**Find class signatures:**
```bash
/home/claude/.venv/bin/python /mnt/skills/user/exploring-codebases/scripts/search.py "class User" /path/to/repo
```

Output:
```python
class User:
    """User account model."""
    ...
```

**Find full method implementation:**
```bash
/home/claude/.venv/bin/python /mnt/skills/user/exploring-codebases/scripts/search.py "def validate" /path/to/repo --expand-full
```

**Find usage of `process_data` in Python files:**
```bash
/home/claude/.venv/bin/python /mnt/skills/user/exploring-codebases/scripts/search.py "process_data" /path/to/repo --glob "*.py"
```

## Scope and Limitations

**Returns structural code elements** — functions, classes, methods, interfaces, enums, structs, traits, and modules across 11 supported languages (Python, JavaScript, TypeScript, Go, Rust, Ruby, Java, C, C++, PHP, C#).

**Does not return:**
- Import/require statements
- Module-level variable assignments or constants
- Standalone decorators (decorators attached to functions/classes are included with their parent)
- Type aliases or standalone type annotations
- Comments outside of functions/classes

For these non-structural elements, use plain `ripgrep` (via the Grep tool) directly.

Attribution

Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.

Comments

Loading comments…

Newsletter

Get the weekly list of safe new skills, and the ones we pulled.