← ClaudeAtlas

legacy-characterizelisted

Покрыть тестами существующий код без спецификации — характеризационные тесты и golden master перед любыми изменениями легаси. Используй, когда нужно изменить или отрефакторить непокрытый тестами старый код, разобраться в чужом модуле или подготовить легаси к работе агента.
DanielLetto2020/vibe-rules · ★ 1 · AI & Automation · score 69
Install: claude install-skill DanielLetto2020/vibe-rules
# Легаси: сначала зафиксировать, потом менять К старому коду нельзя применить обычный конвейер: там нет спецификации, поведение неизвестно и частично случайно. Попытка «написать нормальные тесты» проваливается, потому что неизвестно, что счи��ать правильным. Решение: **сама текущая система становится эталоном.** Главный принцип, нарушение которого обесценивает всю работу: > Агент строит эталон и обслуживает его, но никогда не является эталоном. > Что считать правильным поведением — решает человек или существующая система, > но не модель. ## 1. Определи границу Выбери узкий кусок: один класс, один эндпоинт, одну команду. Найди его вход и выход. Если у куска нет наблюдаемой границы — сначала вынеси её, не меняя логику. Не пытайся охватить весь модуль сразу: характеризационный тест на 200 строк вывода невозможно чинить, когда он покраснеет. ## 2. Зафиксируй поведение как есть Прогони код на реальных входах и **запиши выходы как эталон**, не оценивая, правильные они или нет. ``` Вход → [существующий код] → Выход └── сохраняется как эталон ``` Правило, которое нарушают чаще всего: **если поведение выглядит багом — оно всё равно фиксируется.** Задача этого шага не улучшить систему, а поймать её в текущем состоянии. Баги чинятся потом, отдельно и осознанно. Найденные странности выпиши списком и покажи пользователю. Не чини их сейчас. ## 3. Набери входы, а не придумай Источники реальных входов, по убыванию ценности: - продовые логи и запи