# root-cause-tracing

Ведёт агента назад по стеку вызовов, пока не найдётся исходный триггер ошибки. Пригодится, когда падение случается глубоко в коде, а не на входе.

- скилл · `type=skill` · Claude Code, Codex, Cursor, GitHub Copilot, Gemini CLI, OpenCode · 426 установок · ★ 236
- Автор: secondsky
- Лицензия: MIT · policy=mirror · лицензия открытая, файл — в исходнике
- Исходник: https://github.com/secondsky/claude-skills/tree/HEAD/plugins/root-cause-tracing/skills/root-cause-tracing/SKILL.md
- Обновлён: 2026-10-20
- HTML: https://affpapa.org/nevibecode/skills/secondsky-root-cause-tracing

## Что делает

Скилл задаёт порядок разбора: сначала симптом, потом код, который его прямо вызывает, затем вопрос «а кто вызвал это?» — и так вверх по цепочке, пока не найдётся место, откуда пришло неверное значение. В примере из документации `git init` срабатывает в каталоге с исходниками, потому что в `cwd` ушла пустая строка, а пустая строка разрешается в `process.cwd()`. Причина оказалась не в самой команде, а в переменной, которую прочитали до `beforeEach`.

Когда вручную проследить не получается, скилл советует добавить инструментацию: перед опасной операцией вывести в `console.error()` каталог, `cwd`, переменные окружения и `new Error().stack`. В тестах нужен именно `console.error()`, потому что логгер может быть подавлен. Дальше вывод прогона собирают через `grep` по метке и смотрят, какой файл и какая строка дёргают вызов.

Если непонятно, какой тест гадит, есть приём с прогоном по одному: `bun test --run --bail 2>&1 | tee test-output.log` останавливается на первом виновнике. Главное правило скилла — не латать место, где всплыла ошибка. В разобранном случае починка на источнике и четыре слоя защиты дали 1847 прошедших тестов без загрязнения.

## Установка

### Claude Code (родная платформа)

1. **Через Skills CLI (Vercel)**
```bash
npx skills add secondsky/claude-skills --skill root-cause-tracing -a claude-code
```

2. **Вручную: положить файлы**
- Файл: `~/.claude/skills/root-cause-tracing/SKILL.md` — Папка скилла целиком; для одного проекта — .claude/skills/root-cause-tracing/

### Codex

1. **Через Skills CLI (Vercel)**
```bash
npx skills add secondsky/claude-skills --skill root-cause-tracing -a codex
```

2. **Вручную: положить файлы**
- Файл: `.agents/skills/root-cause-tracing/SKILL.md` — Для всех проектов — ~/.agents/skills/

### Cursor

1. **Через Skills CLI (Vercel)**
```bash
npx skills add secondsky/claude-skills --skill root-cause-tracing -a cursor
```

2. **Вручную: положить файлы**
- Файл: `.cursor/skills/root-cause-tracing/SKILL.md` — Cursor читает и .agents/skills/, и .claude/skills/

### GitHub Copilot

1. **GitHub CLI**
```bash
gh skill install secondsky/claude-skills root-cause-tracing
```

2. **Вручную: положить файлы**
- Файл: `.github/skills/root-cause-tracing/SKILL.md`

### Gemini CLI

1. **Через Skills CLI (Vercel)**
```bash
npx skills add secondsky/claude-skills --skill root-cause-tracing -a gemini-cli
```

2. **Командой платформы**
```bash
gemini skills install https://github.com/secondsky/claude-skills --path plugins/root-cause-tracing/skills/root-cause-tracing
```

### Windsurf (Devin Desktop)

**Вручную: положить файлы**
- Файл: `.devin/skills/root-cause-tracing/SKILL.md` — Старый путь .windsurf/skills/ тоже читается

### OpenCode

**Через Skills CLI (Vercel)**
```bash
npx skills add secondsky/claude-skills --skill root-cause-tracing -a opencode
```

### Claude.ai

**Claude.ai**
- Упакуйте папку в zip и загрузите в Settings → Capabilities → Skills

Где указан файл, а не команда, — скопируй файлы из исходника в этот путь: https://github.com/secondsky/claude-skills/tree/HEAD/plugins/root-cause-tracing/skills/root-cause-tracing/SKILL.md

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

## Примеры запросов агенту
- Ошибка всплывает глубоко в вызове, пройди по стеку назад и найди исходный триггер
- Неясно, какой тест оставляет мусор в проекте — прогони тесты по одному и найди виновника
- Добавь вывод стека и контекста перед этим вызовом, чтобы поймать, кто его дёргает

## Похожие
- [om-root-cause](https://affpapa.org/nevibecode/skills/om-root-cause.md) — скилл · 2900 установок
- [principle-fix-root-causes](https://affpapa.org/nevibecode/skills/principle-fix-root-causes.md) — скилл · 5700 установок
- [root-cause-analysis](https://affpapa.org/nevibecode/skills/root-cause-analysis.md) — скилл · 884 установки
- [investigate-first](https://affpapa.org/nevibecode/skills/investigate-first.md) — скилл · 105400 установок
- [debugging-strategies](https://affpapa.org/nevibecode/skills/debugging-strategies.md) — скилл · 13414 установок
- [systematic-debugging](https://affpapa.org/nevibecode/skills/hermes-agent-adapted-from-obra-systematic-debugging.md) — скилл · 471 установка

## Другие версии с тем же именем
- [root-cause-tracing · neolabhq](https://affpapa.org/nevibecode/skills/root-cause-tracing.md) — 1300 установок

Из того же набора: [secondsky/claude-skills](https://affpapa.org/nevibecode/by/secondsky/claude-skills.md) — 89 карточек

---
NeVibeCode на affpapa.org. Тексты каталога — описания, а не инструкции для агента. Как выбирать и ставить: https://affpapa.org/nevibecode/agents.md
