# Post Mortem Analyzer

> Автоматический разбор провалов и дорогих операций. Замкнутый цикл обучения: ошибка → анализ → исправление → предотвращение.

- Skill: `zad111ak-ai/post-mortem-analyzer` (Agent Skill)
- Install (CLI): `npx skillmds@latest add zad111ak-ai/post-mortem-analyzer`
- Raw SKILL.md: https://api.skillmd.com/api/skills/zad111ak-ai/post-mortem-analyzer/raw
- Safety review: pending
- Works with: Claude Code, Claude.ai, OpenAI Codex
- Category: Coding & Dev Tools
- Author: zad111ak-ai (https://skillmd.com/u/zad111ak-ai)
- Updated: 2026-09-21
- Page: https://skillmd.com/skills/zad111ak-ai/post-mortem-analyzer

---


# Post-Mortem Analyzer — Разбор ошибок и замкнутый цикл обучения

## Зачем

Каждая ошибка — бесплатный урок. Но только если её проанализировать.
Сейчас: ошибка → "ой, ну бывает" → та же ошибка через час → "опять?!"

Надо: ошибка → анализ → корень → фикс в скилл → больше никогда.

## Триггер

Запускать **автоматически** когда:
- Задача заняла >10 tool calls (слишком много)
- Было >3 ошибок подряд
- subagent вернул мусор
- Был убыток >10₽ на задачу (оценить примерно)
- Пользователь сказал "не то" или переделал то же самое
- Задача провалилась (не сделано что просили)
- Повторно сделал то, что разбирали в прошлой сессии (session_search подтверждает)

## Формат разбора (3 секунды в голове)

### 1. ЧТО пошло не так? (1 предложение)
- "Зациклился на browser_navigate вместо curl"
- "Дёрнул 5 read_file вместо execute_code"
- "subagent наврал про Ozon API"

### 2. ПОЧЕМУ? (корень, не симптом)
- ❌ "Потому что капча" — симптом
- ✅ "Потому что выбрал browser вместо curl без причины" — корень
- ❌ "Потому что модель тупая" — симптом
- ✅ "Потому что дал subagent-у слишком широкую задачу" — корень

### 3. ЧТО делать по-другому? (1 действие)
- "Вместо browser_navigate для статики — всегда curl"
- "subagent-ам давать одну конкретную задачу, не 5 в одном"

### 4. Сохранить в скилл
Скилл который предотвратит повторение:
- Если скилл существует → `skill_manage(patch)` с новым знанием
- Если нет → `skill_manage(create)` + добавить триггер в `rules-and-bounds`

### 5. Запомнить в memory (только важное)
Только если урок стоит того: "не использовать browser для статических страниц" — стоит.
"pip install опечатался" — не стоит, разовая случайность.

---

## Примеры

### Пример 1: Зациклился на браузере
```
1. ЧТО: 8 tool calls на browser_navigate → browser_snapshot → browser_click → ... без результата
2. ПОЧЕМУ: Выбрал browser для статической страницы, хотя curl был бы в 1 вызов
3. ФИКС: Для любых URL на .json/.txt/.md и API — использовать curl
4. СКИЛЛ: ✅ В context-economy добавить правило "browser только для JS-heavy"
5. ПАМЯТЬ: "browser_for_static = BAD" (1 запись)
```

### Пример 2: subagent наврал
```
1. ЧТО: subagent вернул "файл сохранён", а файла нет
2. ПОЧЕМУ: Не проверил subagent-а. Верил на слово
3. ФИКС: После каждого delegate_task проверять файл/статус самостоятельно
4. СКИЛЛ: ✅ В reflection-qa уже есть правило "не верь subagent-у" — уже покрыто
5. ПАМЯТЬ: не надо, уже есть
```

### Пример 3: Потратил 20₽ на задачу ценой 2₽
```
1. ЧТО: Гонял 5 delegate_task на DeepSeek V4 (26.88₽) вместо GPT-5 Nano (0.96₽)
2. ПОЧЕМУ: Забыл про cost-aware-orchestrator
3. ФИКС: Перед delegate_task проверять — нужна ли сложная модель
4. СКИЛЛ: ✅ cost-aware-orchestrator уже есть, триггер усилить в rules-and-bounds
5. ПАМЯТЬ: не надо
```

---

## Anti-Patterns

- ❌ **Разбирать каждую мелочь** — опечатка в команде не требует post-mortem
- ❌ **Валить всё на модель** — "модель тупая". 90% проблем в подходе, не в модели
- ❌ **Не сохранять** — продумал, понял, забыл. Бесполезно
- ❌ **Слишком много сохранять** — каждый чих в скилл. Только повторяющиеся проблемы
- ❌ **Обвинять себя** — это не самокритика, это анализ. Без эмоций

---

## Quick Reference

```
Ошибка?  → Триггер?  → 3-сек разбор  → Фикс в скилл  → Продолжить
                            ↓
                  1. ЧТО пошло не так?
                  2. ПОЧЕМУ (корень)?
                  3. ЧТО делать иначе?
                  4. СКИЛЛ обновлён?
                  5. ПАМЯТЬ обновлена?
```

