К основному содержанию
скилл CX Codex

grepai-trace-callees — скилл для Claude Code: какие функции вызывает

Скилл учит агента вызывать grepai trace callees и разбирать, какие функции вызывает конкретная функция — с файлами, строками и контекстом вызова.

Установить в Claude Code · Через Skills CLI (Vercel) Все способы и платформы ↓
npx skills add yoanbernabeu/grepai-skills --skill grepai-trace-callees -a claude-code
Открыть на GitHub

Что делает grepai-trace-callees

Скилл описывает одну команду: grepai trace callees "FunctionName". Она отвечает на вопрос, что вызывает функция — прямые вызовы, методы, функции из пакетов. В выводе для каждого найденного вызова есть файл, номер строки и строка кода, где вызов происходит.

Есть два режима разбора. --mode fast работает без зависимостей, --mode precise точнее, но требует tree-sitter. Для машинной обработки есть --json, компактный --json --compact и TOON через --toon; --json и --toon вместе не ставятся. Результаты удобно резать через jq — например, отбросить тестовые функции или оставить только файлы .go.

Статический анализ не видит динамические вызовы: колбэки, замыкания, вызовы через интерфейс и рефлексию. Если функция не находится или список пуст, скилл советует проверить написание имени, режим precise и то, что язык входит в enabled_languages, а индекс символов обновлён через grepai watch. Это повод не полагаться на вывод как на полную карту зависимостей.

Какие задачи решает

  • узнать, что вызывает большая функция, прежде чем её менять
  • собрать список зависимостей функции для документации
  • найти обращения к базе и внешним сервисам внутри одной функции
  • оценить на код-ревью, не делает ли функция слишком много
  • выгрузить список вызовов в JSON и отфильтровать тестовые

Примеры запросов агенту

  • покажи, какие функции вызывает ProcessOrder
  • разбери callees для handleRequest в режиме precise
  • выгрузи callees функции main в JSON и убери тестовые

Как установить grepai-trace-callees

1Через Skills CLI (Vercel)

npx skills add yoanbernabeu/grepai-skills --skill grepai-trace-callees -a claude-code

2Вручную: положить файлы

~/.claude/skills/grepai-trace-callees/SKILL.md

Папка скилла целиком; для одного проекта — .claude/skills/grepai-trace-callees/

По шагам, с командами для каждой платформы: Как установить скилл в Claude Code: пять способов

Вопросы о grepai-trace-callees

Как установить grepai-trace-callees в Claude?

Выполните npx skills add yoanbernabeu/grepai-skills --skill grepai-trace-callees -a claude-code. Скилл встанет в ~/.claude/skills/grepai-trace-callees/SKILL.md.

Что делает grepai-trace-callees?

Показывает, какие функции вызывает заданная функция: имена, файлы, строки и контекст вызова. Работает через grepai trace callees.

Почему часть вызовов не находится?

Статический разбор пропускает динамические вызовы, колбэки, замыкания и вызовы через интерфейс. Помогает --mode precise, но и он их не ловит.

Исходный текст

SKILL.md · MIT
---
name: grepai-trace-callees
description: Find function callees with GrepAI trace. Use this skill to discover what functions a specific function calls.
---

# GrepAI Trace Callees

This skill covers using `grepai trace callees` to find all functions called by a specific function.

## When to Use This Skill

- Understanding function dependencies
- Mapping function behavior
- Finding deeply nested dependencies
- Code comprehension and documentation

## What is Trace Callees?

`grepai trace callees` answers: **"What does this function call?"**

```
func ProcessOrder(order) {
    validateOrder(order)
    calculateTotal(order)
    sendConfirmation(order.email)
}
        │
        ↓
┌───────┴───────────────────┐
│  What does ProcessOrder   │
│  call?                    │
├───────────────────────────┤
│ • validateOrder           │
│ • calculateTotal          │
│ • sendConfirmation        │
└───────────────────────────┘
```

## Basic Usage

```bash
grepai trace callees "FunctionName"
```

### Example

```bash
grepai trace callees "ProcessOrder"
```

Output:
```
🔍 Callees of "ProcessOrder"

Found 4 callees:

1. validateOrder
   File: services/order.go:45
   Context: validateOrder(order)

2. calculateTotal
   File: services/order.go:48
   Context: total := calculateTotal(order.Items)

3. applyDiscount
   File: services/order.go:51
   Context: total = applyDiscount(total, order.Coupon)

4. sendConfirmation
   File: services/order.go:55
   Context: sendConfirmation(order.Email, total)
```

## JSON Output

```bash
grepai trace callees "ProcessOrder" --json
```

Output:
```json
{
  "query": "ProcessOrder",
  "mode": "callees",
  "count": 4,
  "results": [
    {
      "file": "services/order.go",
      "line": 45,
      "callee": "validateOrder",
      "context": "validateOrder(order)"
    },
    {
      "file": "services/order.go",
      "line": 48,
      "callee": "calculateTotal",
      "context": "total := calculateTotal(order.Items)"
    },
    {
      "file": "services/order.go",
      "line": 51,
      "callee": "applyDiscount",
      "context": "total = applyDiscount(total, order.Coupon)"
    },
    {
      "file": "services/order.go",
      "line": 55,
      "callee": "sendConfirmation",
      "context": "sendConfirmation(order.Email, total)"
    }
  ]
}
```

## Compact JSON (AI Optimized)

```bash
grepai trace callees "ProcessOrder" --json --compact
```

Output:
```json
{
  "q": "ProcessOrder",
  "m": "callees",
  "c": 4,
  "r": [
    {"f": "services/order.go", "l": 45, "fn": "validateOrder"},
    {"f": "services/order.go", "l": 48, "fn": "calculateTotal"},
    {"f": "services/order.go", "l": 51, "fn": "applyDiscount"},
    {"f": "services/order.go", "l": 55, "fn": "sendConfirmation"}
  ]
}
```

## TOON Output (v0.26.0+)

TOON format offers ~50% fewer tokens than JSON:

```bash
grepai trace callees "ProcessOrder" --toon
```

> **Note:** `--json` and `--toon` are mutually exclusive.

## Extraction Modes

### Fast Mode (Default)

```bash
grepai trace callees "ProcessOrder" --mode fast
```

### Precise Mode

```bash
grepai trace callees "ProcessOrder" --mode precise
```

| Mode | Speed | Accuracy | Dependencies |
|------|-------|----------|--------------|
| `fast` | ⚡⚡⚡ | Good | None |
| `precise` | ⚡⚡ | Excellent | tree-sitter |

## Use Cases

### Understanding Function Behavior

```bash
# What does this complex function do?
grepai trace callees "handleRequest"

# Map the data flow
grepai trace callees "processPayment"
```

### Finding Dependencies

```bash
# What external services does this call?
grepai trace callees "syncData"

# What database operations happen?
grepai trace callees "saveUser"
```

### Code Review

```bash
# What side effects does this function have?
grepai trace callees "updateProfile"

# Is this function doing too much?
grepai trace callees "doEverything"  # Lots of callees = code smell
```

### Documentation

```bash
# Generate dependency list for docs
grepai trace callees "initialize" --json | jq '.results[].callee'
```

## Callers vs Callees

| Command | Question | Use Case |
|---------|----------|----------|
| `trace callers` | Who calls me? | Impact analysis |
| `trace callees` | What do I call? | Behavior analysis |

```bash
# Combined analysis
grepai trace callers "processOrder"   # Who uses this?
grepai trace callees "processOrder"   # What does it do?
```

## Filtering Results

### By File Type

```bash
# Get callees and filter to only .go files
grepai trace callees "main" --json | jq '.results[] | select(.file | endswith(".go"))'
```

### Exclude Test Functions

```bash
grepai trace callees "Login" --json | jq '.results[] | select(.callee | startswith("Test") | not)'
```

### Count by Category

```bash
# Count how many database vs. API calls
grepai trace callees "processOrder" --json | jq '.results[].callee' | grep -c "db"
```

## What Callees Includes

The trace finds:
- Direct function calls
- Method calls
- Built-in function calls (depending on mode)

### Example

```go
func ProcessOrder(order Order) error {
    // Direct call
    validateOrder(order)

    // Method call
    order.Validate()

    // Package function
    utils.Log("processing")

    // Built-in (may or may not be captured)
    fmt.Println("done")

    return nil
}
```

Callees found:
- `validateOrder`
- `Validate` (method)
- `Log` (from utils)
- `Println` (depending on mode)

## Limitations

### What Callees Might Miss

- Dynamic/runtime calls
- Callbacks and closures
- Interface method calls (may show interface, not implementation)
- Reflection-based calls

### Example of Undetected Call

```go
func process(fn func()) {
    fn()  // Callee is unknown at static analysis time
}
```

## Combining with Trace Graph

For recursive dependency analysis, use trace graph:

```bash
# Direct callees only
grepai trace callees "main"

# Full dependency tree (recursive)
grepai trace graph "main" --depth 3
```

## Scripting Examples

### List All Callees

```bash
grepai trace callees "main" --json | jq -r '.results[].callee' | sort -u
```

### Check for Specific Callee

```bash
# Does processOrder call sendEmail?
grepai trace callees "processOrder" --json | jq -e '.results[] | select(.callee == "sendEmail")' && echo "Yes" || echo "No"
```

### Generate Dependency Report

```bash
#!/bin/bash
echo "# Function Dependencies Report"
echo ""
for fn in main initialize processOrder; do
    echo "## $fn"
    grepai trace callees "$fn" --json | jq -r '.results[].callee' | sed 's/^/- /'
    echo ""
done
```

## Common Issues

❌ **Problem:** Function not found
✅ **Solution:** Check spelling and ensure function exists in indexed files

❌ **Problem:** No callees found (but function has calls)
✅ **Solutions:**
- Try `--mode precise`
- Check language is in `enabled_languages`
- Ensure symbols.gob is up to date (`grepai watch`)

❌ **Problem:** Missing some callees
✅ **Solution:** Use `--mode precise` for better accuracy

## Best Practices

1. **Use for understanding:** Great for learning new codebases
2. **Combine with callers:** Full dependency picture
3. **Use graph for deep analysis:** When you need recursion
4. **Filter results:** Focus on relevant callees
5. **Document findings:** Export to markdown for docs

## Output Format

Trace callees result:

```
🔍 Callees of "ProcessOrder"

Mode: fast
Function found in: services/order.go:40

Found 4 callees:

1. validateOrder
   File: services/order.go:45
   Context: validateOrder(order)

2. calculateTotal
   File: services/order.go:48
   Context: total := calculateTotal(order.Items)

3. applyDiscount
   File: services/order.go:51
   Context: total = applyDiscount(total, order.Coupon)

4. sendConfirmation
   File: services/order.go:55
   Context: sendConfirmation(order.Email, total)

Tip: Use 'grepai trace graph ProcessOrder' for recursive analysis
```

© yoanbernabeu · MIT · yoanbernabeu/grepai-skills

Похожие скиллы

Все скиллы по теме «Настройка агента: память, контекст, субагенты» →
trace Yeachan-Heo Скилл для разбора неоднозначных проблем: багов, регрессий, задержек. Запускает параллельные линии исследования, собирает доказательства за и против каждой версии, ранжирует их и предлагает следующий шаг, который даст ответ быстрее всего. CX Codex +1 790установок analyze-project lllllllama Читает репозиторий с обучением моделей и выдаёт карту структуры, точек входа и подозрительных мест. Ничего не меняет и не запускает тяжёлые задачи. CX Codex +1 337 200установок spec-miner https://github.com/Jeffallan Скилл для реверс-инжиниринга кодовых баз. Извлекает спецификации из существующего кода, строит схемы зависимостей и создаёт документацию для наследованных проектов и систем без документов. CX Codex +1 4 400установок codex softaworks Скилл запускает Codex CLI для анализа, рефакторинга и автоматического редактирования кода. По умолчанию использует GPT-5.2 с адаптивным reasoning и достигает 76.3% на SWE-bench. CX Codex +1 4 100установок gemini giuseppe-trisciuoglio Передаёт разбор большого кода и сложные рассуждения в Gemini CLI, а результат возвращает вам на подтверждение. CX Codex +1 3 400установок rust-symbol-analyzer actionbook Скилл показывает структуру Rust-проекта через LSP-символы: модули, структуры, трейты, функции. Пригодится, когда надо быстро понять чужой крейт. CX Codex +1 3 100установок

Из того же набора12

grepai-trace-graph Скилл учит агента строить рекурсивные графы вызовов через grepai trace graph: кто кого вызывает и на какую глубину. CX Codex +1 802установок grepai-trace-callers Скилл учит агента искать все места в коде, откуда вызывается конкретная функция. Пригодится перед переименованием или сменой сигнатуры. CX Codex +1 784установок grepai-search-tips Скилл учит агента формулировать семантические запросы к GrepAI: описывать смысл, а не имя функции. Пригодится, когда поиск по коду выдаёт мусор. CX Codex +1 778установок grepai-search-boosting Скилл настраивает бусты и штрафы в GrepAI, чтобы исходники поднимались выше тестов, документации и вендорного кода. CX Codex +1 749установок grepai-watch-daemon Скилл учит агента запускать и настраивать демон grepai watch: первичная индексация проекта, слежение за файлами, фоновый режим и разбор сбоев. CX Codex +1 693установок grepai-config-reference Скилл-шпаргалка по всем параметрам .grepai/config.yaml: эмбеддер, хранилище, чанки, поиск. Пригодится, когда нужно понять опцию или починить конфиг. CX Codex +1 688установок grepai-workspaces Скилл учит агента настраивать рабочие пространства GrepAI: несколько проектов, один поисковый индекс, поиск по всем сразу или по одному. CX Codex +1 682установок grepai-mcp-claude Подключает GrepAI к Claude через MCP: агент ищет код по смыслу, а не по строкам, и разбирает граф вызовов. CX Codex +1 612установок

Спонсоры проекта

Компании, которые помогают держать аналитику открытой