Agent Skills

Systematic Debugger

Отладка по методу «Железного закона»: не трогаем код, пока причина не подтверждена гипотезами и данными. 4 фазы, Red Flags, Rationalization Table, регресс-тест.

Загружай этот скилл когда есть баг/неожиданное поведение и нужно найти корневую причину (root cause), а не наколеночный фикс. Скилл ведёт процесс: воспроизведение, гипотезы, изоляция, минимальный фикс + тест-регрессия.

🎯 When to use

Use this skill when:

Do NOT use when:

📦 Files

⚙️ Iron Law (Железный закон)

Никаких изменений кода, пока причина не подтверждена минимум одной воспроизводимой гипотезой. Один фикс за раз — после каждого изменения перепроверяй по фактам.

🔧 Workflow (4 фазы)

Фаза 1 — Воспроизведение

  1. Зафиксируй точные шаги, при которых баг проявляется.
  2. Зафиксируй «факт»: что происходит на самом деле (вывод, лог, скрин).
  3. Попробуй минимизировать: убрать переменные, пока баг воспроизводится.

Фаза 2 — Гипотезы

  1. Выдвини 1..3 гипотезы о причине (не больше).
  2. Для каждой — как её проверить (команда/тест/лог) и какой результат ожидаем.
  3. Заполни Rationalization Table: гипотеза → проверка → результат → вердикт.

Фаза 3 — Изоляция причины

  1. Проверяй гипотезы по одной; после каждой проверки обновляй таблицу.
  2. Используй минимальные вмешательства: точечный лог, изолированный репродюсер.
  3. Red Flag: если «внезапно заработало» без понимания почему — это НЕ фикс.

Фаза 4 — Фикс + регрессия

  1. Внеси минимальное изменение, устраняющее подтверждённую причину.
  2. Напиши/обнови тест, который ловил бы баг (регрессия).
  3. Прогони связанные тесты: старый баг не вернулся, фикс работает.

🛡 Red Flags (стоп-сигналы)

🧰 Скрипт отчёта

python3 skills/systematic-debugger/scripts/debug_log.py \
    --label "auth_flow" \
    --command "pytest tests/test_auth.py -k login" \
    --expected "login succeeds" \
    --actual "401 Unauthorized"

Секции отчёта: Среда / Команда / Ожидаем / Факт / Гипотезы (1..3) / Регресс-план. Отчёт удобно прикладывать к issue или передавать другому агенту для фазы 2.

✅ Definition of Done