Skill v1.0.1
currentAutomated scan100/100+1 new
version: "1.0.1" name: skill-drying description: Use for ревью навыков и правил на избыточность (навык > ~150 строк или критичный бюджет токенов). Helps сжать SKILL.md, .mdc-правила и промпты субагентов без потери поведения агента.
Осушение навыков
Поведенческий критерий
Для каждого фрагмента задай пять вопросов. Если на все ответ «нет» — фрагмент является водой, удали его.
- Меняет ли он выбор инструмента или навыка?
- Меняет ли он порядок шагов?
- Добавляет ли нетривиальный запрет или путь обработки исключения?
- Устраняет ли опасную двусмысленность?
- Необходим ли он для нетривиального контрпримера?
Правила осушения
Структура
П1. Одна норма — один источник истины. Если политика зафиксирована в правиле .mdc, навык не повторяет её. Навык ссылается на правило и добавляет только операционный алгоритм.
П2. Frontmatter — маршрутизация, тело — новая информация. Удалять секции ## Назначение, дословно повторяющие поле description. Тело начинается с первого элемента, добавляющего контекст, которого нет в description.
П3. Один реестр навыков в субагентах. Перечислять навыки только во frontmatter skills:. Тело описывает обязанности, протокол и границы — не каталог зависимостей. depends_on в конце файла — для механизма резолюции, не для чтения агентом.
П4. Межнавыковые дубли — ссылка + дельта. Если два навыка содержат одно правило (напр. «не проглатывай исключения» в coding-standards и error-handling), полная версия остаётся в одном месте. Второй навык получает однострочную ссылку.
Мотивация и пояснения
П5. Мотивация — одна строка последствия. Многоабзацные блоки «Почему:» заменяются одним предложением о последствии нарушения. Удалить полностью, если без блока агент ведёт себя идентично.
П6. Внешние ссылки — убрать URL, оставить маркер. [Стандарт ИТС: «Тексты модулей»](https://its.1c.ru/...) → Стандарт ИТС: «Тексты модулей». Агент не откроет URL, но название стандарта — полезный сигнал для LLM.
П7. «Источники» и «Связанные ресурсы» — минимизировать. Удалять блоки с 3-4 ссылками на ИТС. Оставлять перекрёстные ссылки только если они влияют на workflow («после этого навыка — запусти vanessa-run»).
Примеры
П8. Один канонический паттерн + один нетривиальный контрпример на правило. Удалять примеры «неправильно», являющиеся тривиальной инверсией «правильно». Критерии оставления контрпримера — см. «Красные линии».
П9. Сценарии — в алгоритм. Несколько однотипных сценариев заменяются одним алгоритмом. Четыре сценария поиска → один каскад LSP → метаданные → API платформы → БСП → AI + таблица триггеров.
Справочный материал
П10. Большие блоки кода — в `references/`. Блоки кода >20 строк, служащие справочником для копирования, выносятся в references/. В теле навыка остаётся: когда использовать, имя файла, ключевые параметры.
П11. Структуры данных и диаграммы — в `references/`. Деревья каталогов, JSON-схемы, ASCII-диаграммы — в приложение. В теле остаются только критичные пути и обязательные поля.
П12. Сводка-таблица или развёрнутые правила — выбрать одно. Если в навыке есть оба варианта и навык загружается целиком, сводка дублирует правила. Оставить ту форму, которая компактнее для данного содержания.
Красные линии — не сушить
- Точный порядок операций, нарушение которого ведёт к потере данных (транзакции, блокировки, последовательности rollback/logging)
- Нетривиальные контрпримеры — ошибка связана со скрытым поведением платформы, показывает конкретные имена/конструкции которые агент может случайно использовать, или не выводится из правильного примера
- Границы ответственности агента («НЕ пишет тесты», «НЕ изменяет protected paths»)
- Доменные имена API, которые LLM не знает из обучения (имена функций 1С BSL, CLI-синтаксис)
- Причинно-следственные цепочки, влияющие на решения в граничных случаях (напр. «O(N²) по памяти», «счётчиковые транзакции», составные типы в JOIN)
Процесс
- Прочитать целевой навык полностью.
- Применить поведенческий критерий к каждой секции/абзацу.
- Применить П1–П12 по порядку.
- Сравнить до/после: убедиться, что поведенческий сигнал не потерян.
- При наличии
references/— перенести извлечённые блоки с понятными именами файлов. - Обновить
depends_onи перекрёстные ссылки, если дедупликация изменила расположение нормы.