Навык задаёт пошаговый процесс поиска корневой причины ошибки до любых исправлений. Он помогает разобраться, где именно ломается система, проверить гипотезу минимальным изменением и убедиться, что исправление устранило проблему.
Возможности
- Требует сначала изучить сообщения об ошибках, воспроизвести сбой и проверить недавние изменения.
- Для систем из нескольких компонентов предлагает собирать данные на границах компонентов, чтобы найти место сбоя.
- Помогает проследить поток данных до источника некорректного значения.
- Предлагает сравнить сломанный код с рабочими примерами и найти различия.
- Предписывает проверять одну гипотезу за раз, а исправление подтвердить тестами.
- Если не сработали три исправления, предлагает остановиться и обсудить архитектуру.
Когда использовать
- При падении тестов, ошибках в production, проблемах со сборкой или интеграцией.
- При неожиданном поведении или проблемах с производительностью.
- Если несколько исправлений уже не помогли или предыдущее исправление создало новые симптомы.
- Когда хочется применить «быстрый фикс», но причина сбоя ещё не ясна.
Примеры
Диагностика передачи секретов и состояния между слоями системы:
Layer 1: Workflow
echo "=== Secrets available in workflow: ===" echo "IDENTITY: ${IDENTITY:+SET}${IDENTITY:-UNSET}"
Layer 2: Build script
echo "=== Env vars in build script: ===" env | grep IDENTITY || echo "IDENTITY not in environment"
Layer 3: Signing script
echo "=== Keychain state: ===" security list-keychains security find-identity -v
Layer 4: Actual signing
codesign --sign "$IDENTITY" --verbose=4 "$APP"
Установка
npx skills add https://github.com/obra/superpowers --skill systematic-debugging