Debug by using
Debug by Using — универсальная методология отладки и закалки ЛЮБОГО приложения/программы через прямое ПРОЖИВАНИЕ (реальный запуск, весь пользовательский цикл, все фичи, как самый придирчивый нестандартный юзер), а НЕ через закрытые/зелёные тесты. Ловит баги, которых юнит-тесты со стабами не видят: роутинг, UX, экономика/учёт, состояние/связность, интеграции, прогрессия. Начинается с СТАРТОВОГО ИНТЕРВЬЮ, чтобы определить охват (всё или отдельные фичи), зафиксировать ЦЕЛЬ сессии (условие «готово», что гонит работу до конца) и ЭТАЛОН (идеал, по которому судим «хорошо»). ДВА РЕЖИМА: «Соло» (сам проживаешь и чинишь инлайн) и «Агентик+» (делегируешь фиксы агентам ПАРАЛЛЕЛЬНО). Применимо к веб- и десктоп-UI, CLI, API, ботам, играм, пайплайнам, прошивкам — к любому продукту с пользовательским циклом. Включай, когда пользователь говорит «debug by using», «проживи приложение», «отладь использованием», «пройди весь цикл», «используй все фичи», «проверь на прочность живьём», «поработай как реальный юзер», «в соло-режиме»/«в агентик-режиме», «не тестами, а использованием»; ИЛИ тесты зелёные, но реальное поведение не проверено; ИЛИ перед релизом/демо/продажей; ИЛИ «всё работает», но чувствуешь, что живьём отвалится.From its SKILL.md
npx -y skills add bispeklolik/debug-by-using --skill debug-by-usingAssembled from the repository path, not quoted from the project. Check it against their README if it does not work.
2 things to look at
- 29 days oldThe repository was created 29 days ago. New is not bad, but a brand new repository carrying a familiar-sounding name is the shape a typosquat arrives in, and there has been no time for anyone else to find a problem with it.
- 0 stars0 stars. Stars are a popularity signal and not a quality one, but at this level it is likely that nobody has read this closely except its author, and you would be relying on your own review.
SKILL.md
21.1 KB, ~5.5k tokens by cl100k_base, as published. Nobody here has run it
Debug by Using — отлаживай ЛЮБОЙ продукт, ПРОЖИВАЯ его
Главный тезис
Зелёные тесты ≠ работающий продукт. Юнит/интеграционные тесты со стаб-входами проверяют «работает ли машина при ИДЕАЛЬНОМ сигнале», а НЕ «даёт ли реальное действие пользователя правильный результат». Они систематически пропускают крупнейший класс багов: реальный вход → не тот роут / не та реакция / поехавшее состояние / кривая экономика / UX-трение / развалившаяся интеграция. Эти баги живут ровно там, где стаб их обходит.
Правда добывается ОДНИМ способом: взять настоящую сборку и ПРОЖИТЬ её — пройти весь пользовательский цикл, задействовать все фичи, вести себя как придирчивый нестандартный юзер. Каждое место, где фича не срабатывает от естественного действия или ведёт себя не так, — это реальный баг, который тест никогда не поймал бы.
Красный флаг-мысль: «у меня всё зелёное, значит работает». Нет. Это значит, что машина работает при заранее скормленном идеальном сигнале. Спроси: а от РЕАЛЬНОГО входа пользователя оно даёт нужный результат? Проверь это использованием.
Продукт-агностично. «Пользователь» и «действие» подставляются под тип продукта:
| Продукт | «Прожить» = | Типичный невидимый-тестам баг |
|---|---|---|
| Веб/десктоп-UI | кликать по реальным экранам как юзер | тост «сохранено», а в БД пусто; кнопка молчит |
| CLI | гонять реальные команды/флаги | флаг тихо игнорится; пайп ломает вывод |
| API/бэкенд | слать реальные запросы | 200 OK, но строка не создалась; гонка состояния |
| Бот/ассистент | писать живые сообщения | команда не роутится от естественной фразы |
| Игра | играть реальными ходами | действие не запускает механику; экономика врёт |
| Пайплайн/ETL | прогнать реальные данные | тихая потеря строк; кодировка бьёт кириллицу |
Когда включать
- Пользователь просит проживание/использование, а не тестирование (триггеры в description).
- Тесты зелёные, но никто не гонял продукт как реальный юзер end-to-end.
- Перед релизом/демо/продажей — «а оно вообще юзабельно на самом деле?».
- Подозрение, что богатые сценарии (реальные входы, интеграции, состояние между экранами) не покрыты юнитами.
🎯 ШАГ 0 (ОБЯЗАТЕЛЬНЫЙ ДО РАБОТЫ): интервью → Цель → Эталон
Все продукты разные — не начинай вслепую. Сперва проведи короткое интервью: выборы —
через AskUserQuestion, остальное — прямым вопросом (что пользователь уже сказал — не переспрашивай).
Задача интервью — зафиксировать три вещи, без которых работа расплывается: ОХВАТ, ЦЕЛЬ, ЭТАЛОН.
Вопросы интервью (адаптируй под продукт, лишнее выкинь):
- Продукт и запуск. Что это, как запускается, как реальный юзер в него входит?
- ОХВАТ. Тестируем ВСЁ или конкретные фичи/потоки? Назови их и приоритет. (ключевой вопрос — определяет фронт работ)
- 🏆 ЭТАЛОН. Какой идеальный результат / референс «как должно быть»? Есть образец — конкурент, ТЗ, прошлая версия, ощущение, «как <X>»? По каким 2–3 критериям судить «отлично»? (без эталона «хорошо» — вкусовщина; в игре эталоном был «Опус в чате»)
- 🎯 ЦЕЛЬ СЕССИИ. Какое условие = «готово»? (напр.: «основной поток + фичи A,B,C проходят чисто, эталон достигнут, найденные баги починены»). Это север-звезда, что ГОНИТ работу до конца.
- Известная боль. Что уже подозрительно / где раньше ломалось?
- Режим. Соло (сам чиню инлайн) или Агентик+ (делегирую фиксы параллельно)?
- Границы и риск. Что НЕ трогать? Есть ли прод/деньги/необратимое/приватные данные?
- Где ПРАВДА. Где смотреть неподделываемое состояние — БД, логи, файлы, реальные ответы?
- Глубина/бюджет. Быстрый прогон или исчерпывающе (сколько заходов/токенов не жалко)?
После интервью — ЯВНО запиши в журнал/дашборд и держи перед глазами весь заход:
🎯 ЦЕЛЬ СЕССИИ: <условие «готово», проверяемое>
🏆 ЭТАЛОН: <идеал + 2–3 критерия «отлично»>
📋 ОХВАТ: <какие фичи/потоки в работе, приоритет>
⚙️ РЕЖИМ: Соло / Агентик+
⛔ ГРАНИЦЫ: <что не трогать; риски>
🔎 ПРАВДА: <где смотреть un-fakeable состояние>
Дальше ЦЕЛЬ гонит цикл (не останавливайся, пока не выполнена), а ЭТАЛОН — линейка для каждого вердикта (🟢/🟡/🔴 ставится ОТНОСИТЕЛЬНО эталона, а не «вроде ок»). Это и есть тот драйв и та планка, что делают проживание комплексным, а не поверхностным.
Если пользователь не хочет интервью — предложи разумные дефолты (охват=всё, эталон=«ведёт себя предсказуемо и без обмана пользователя», цель=«весь цикл проходит чисто со всеми фичами») и подтверди одной строкой, но НЕ работай совсем без Цели и Эталона.
🔀 Два режима (спрашиваются в интервью; дефолт — «Соло»)
🎮 Режим «Соло» (прежний, ручной)
Ты САМ проживаешь продукт и чинишь каждый баг ИНЛАЙН, по одному: нашёл → диагностировал корень → починил → проверил тем же живым действием → закоммитил → пошёл дальше. Последовательно, руками, полный контроль над каждым фиксом.
- Когда: соло-работа; малые/средние продукты; простые фиксы; когда хочешь держать всё под личным контролем.
🤖 Режим «Агентик+»
Нашёл баг → не тормозя проживание, делегируешь фикс агенту (Agent) или воркфлоу (Workflow), а сам продолжаешь пользоваться продуктом на ТОМ ЖЕ состоянии. Агент думает над корнем, чинит и САМ доказывает результат.
- Когда: длинные/богатые циклы; пачка багов за проход (фан-аут по агенту на баг); нетривиальные фиксы; когда «чинить сразу» должно быть ДЁШЕВО.
Контракт агенту-фиксеру (в «Агентик+»):
- Репро: точное провальное действие + что ОЖИДАЛОСЬ vs что вышло + файл/функция корня (если нащупал).
- Задача: диагностируй ИСТИННУЮ причину (не симптом) → почини корнево → и ОБЯЗАТЕЛЬНО САМопроверься.
- Само-проверка (без неё «готово» не принимать): прогони тесты/линт/сборку (регресс = провал); ПОВТОРИ ровно то провальное действие в живой сборке и докажи неподделываемым состоянием, что теперь верно; верни корень + что изменил + ДОКАЗАТЕЛЬСТВО живого повтора + коммит-хеш.
- Не верь агенту на слово — прими фикс только при доказательстве живого повтора.
- Гигиена: секрет-скан; один фикс = один коммит; осмысленное сообщение.
- Дизайн-развилки агент НЕ решает (баланс/ощущение/вектор) — возвращает владельцу с рекомендацией.
Оба режима гонят ОДИН цикл ниже. Разница только в шаге «чинить»: сам инлайн (Соло) или делегировано параллельно (Агентик+). Можно смешивать: мелочь — соло, крупное — агенту.
Метод: цикл «Использовать → Поймать → Починить → Проверить → Записать»
0. Собери РЕАЛЬНУЮ точку входа
Запускай продукт так, как его запускает пользователь: настоящий entry-point, живые сервисы/БД/модели/сеть (НЕ моки), реальные входы. Драйвер/скрипт должен дёргать РЕАЛЬНЫЙ путь, а не стаб. Лишний шум глуши, чтобы видеть исход чисто.
1. Почини свой ИНСТРУМЕНТ наблюдения
Если твой способ гонять продукт НЕ показывает того, что видит пользователь (экраны, панели, состояние, ответы, ошибки) — сначала допили инструмент, чтобы видеть то же, что юзер. Иначе тестируешь вслепую и примешь ограничение драйвера за баг продукта.
2. Пройди цикл в рамках ОХВАТА, задействуя все фичи охвата
От запуска до завершения задачи (по Цели). Не «ткнул одну кнопку» — прогони полный путь и по разу тронь каждую фичу охвата, каждую ветку, крайние состояния (пусто/переполнено/ошибка/нет прав/оффлайн). Веди себя как придирчивый нестандартный пользователь: естественные формулировки, неожиданные последовательности, творческие и слегка адверсарные действия. Ты ХОЧЕШЬ его сломать.
3. Лови реальный класс багов
Смотри туда, куда стаб не смотрит: роутинг (вход → не та ветка); экономика/учёт (доход→расход, значения из воздуха, цена не списалась); состояние/связность (сессия теряется, переход рвёт контекст); UX-трение (важное действие молча не сработало на естественном входе; фича только кнопкой, но не словом); интеграции (БД/сервис/файл/кодировка/таймзона/гонки); прогрессия/награды (действие не даёт должного).
4. Суди по ЭТАЛОНУ + проверяй неподделываемое состояние
Каждый вердикт 🟢/🟡/🔴 — ОТНОСИТЕЛЬНО эталона, не «вроде ок». И не верь тому, что UI/вывод/лог ОПИСЫВАЕТ успех: сверяйся с un-fakeable истиной (БД, файл, счётчик, ответ). Проза говорит «сохранено», а строки нет — это баг.
5. Чини КОРЕНЬ, проверяй тем же живым действием — (Соло инлайн ИЛИ делегируй в Агентик+)
Диагностируй истинную причину (не симптом), почини, повтори ровно то действие в живой сборке — должно дать правильный результат. Регрессы: старые тесты зелёные, но живая проверка первична. Коммить чисто, по одному фиксу. Найденное чини СРАЗУ и основательно — не откладывай в «очередь».
6. ВЕДИ ЖУРНАЛ по ходу
Живой дневник: что сделал → что выдал продукт → вердикт (🟢/🟡/🔴 против эталона) → что починил (+коммит). Наверху журнала — зафиксированные Цель и Эталон. Журнал вне репозитория с кодом, читаемый человеком.
7. Крути, пока не достигнута ЦЕЛЬ
Повторяй, пока условие ЦЕЛИ не выполнено: весь охват отработан, эталон достигнут на приоритетных фичах, найденные баги починены (K циклов без нового). Цель — стоп-условие И драйв: не бросай на полпути, но и не раздувай за её границы. Если Цель оказалась недостижима за заход — скажи честно и покажи, сколько до неё.
Дисциплина и границы
- Корень, не симптом. Костыль/
if (x!=null)— не финал. Перестрой так, чтобы класс бага стал невозможен by design. - Дизайн-зоны — хозяину. Фикс упирается в решение о балансе/ощущении/векторе (не баг, а выбор) — НЕ хачь наугад. Пометь как развилку с рекомендацией, реши с владельцем.
- Честный итог. Не выдавай «зелёное» за «работающее». Скажи: что прожито и работает (против эталона), что нашёл-починил, что осталось до Цели.
Анти-паттерны (стоп-мысли)
| Мысль | Правда |
|---|---|
| «Начну чинить, разберусь по ходу» | Сперва ШАГ 0: без Цели и Эталона работа расплывётся. Проведи интервью. |
| «Тесты зелёные — значит работает» | Тесты со стабами не видят реальный роут/UX/экономику/интеграции. Проживи. |
| «Проверю изолированно один кусок» | Баги — на стыках и в реальных входах. Пройди весь цикл охвата. |
| «Готово, фича реализована» | Реализована ≠ срабатывает от естественного действия. Используй и проверь. |
| «Вроде норм» | Норм ОТНОСИТЕЛЬНО ЧЕГО? Суди по эталону, а не по вкусу. |
| «UI говорит успех» | Сверь неподделываемое состояние (БД/файл/ответ), не фасад. |
| «Мой драйвер не показывает X → баг продукта» | Сначала почини инструмент, чтобы видеть как юзер. |
| «Починю потом, в очередь» | Чини сразу и основательно; крупное — в Агентик+ параллельно. |
Рефлекс
ШАГ 0 (интервью → Цель + Эталон + охват + режим) → запусти по-настоящему → почини наблюдение → проживи охват всеми фичами как придирчивый юзер → лови реальные баги → суди по эталону + сверяй неподделываемое состояние → чини корень (сам или делегируй) → проверяй живым действием → записывай → крути, пока ЦЕЛЬ не достигнута. Ты — самый дотошный пользователь этого продукта, с ясной целью и высокой планкой. Не «прошли тесты», а «прожил, дотянул до эталона, цель взята».
What ships with it
Read from the repository
Just SKILL.md. No reference files, no scripts.