skill-drying
$
npx mdskill add SteelMorgan/1c-agent-based-dev-framework/skill-dryingCompresses skills and rules to reduce token usage without altering agent behavior.
- Helps optimize agent prompts by removing redundant content when skills exceed about 150 lines.
- Integrates with SKILL.md files, .mdc rules, subagent prompts, and workflows.
- Uses a behavioral criterion with five questions to identify and eliminate non-essential fragments.
- Presents results by applying structured drying rules to maintain clarity and operational efficiency.
SKILL.md
.github/skills/skill-dryingView on GitHub ↗
--- name: skill-drying description: Сжатие навыков и правил для снижения расхода токенов без потери поведения агента. Используй при ревью навыков на избыточность, когда навык превышает ~150 строк или когда размер промпта критичен. Применяется к SKILL.md, правилам .mdc, промптам субагентов и воркфлоу. --- # Осушение навыков ## Поведенческий критерий Для каждого фрагмента задай пять вопросов. Если на все ответ «нет» — фрагмент является водой, удали его. 1. Меняет ли он выбор инструмента или навыка? 2. Меняет ли он порядок шагов? 3. Добавляет ли нетривиальный запрет или путь обработки исключения? 4. Устраняет ли опасную двусмысленность? 5. Необходим ли он для нетривиального контрпримера? ## Правила осушения ### Структура **П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. Прочитать целевой навык полностью. 2. Применить поведенческий критерий к каждой секции/абзацу. 3. Применить П1–П12 по порядку. 4. Сравнить до/после: убедиться, что поведенческий сигнал не потерян. 5. При наличии `references/` — перенести извлечённые блоки с понятными именами файлов. 6. Обновить `depends_on` и перекрёстные ссылки, если дедупликация изменила расположение нормы.
More from SteelMorgan/1c-agent-based-dev-framework
- 1c-ai-agent-cliCLI 1C BSL Agent Framework — tools/install.py (clone, install). Используй при клонировании репозитория, установке компонентов в проект, настройке IDE (Cursor, Claude Code, Windsurf, VS Code+Continue).
- agent-debugПаттерн отладочных сообщений для 1С BSL. Используй, когда стандартная диагностика (event-log, скриншоты) не даёт понять фактическое поведение системы — нужно вставить временные точки логирования в код, запустить тест и проанализировать записи ЖР.
- agent-developmentCreate custom subagents for specialized AI tasks. Use when the user wants to create a new type of subagent, set up task-specific agents, configure code reviewers, debuggers, or domain-specific assistants with custom prompts.
- agent-development-ext>
- agent-git-workflowStandardizes git workflow for the AI agent in the sandbox devcontainer: work in agent/<task>-<yyyymmdd>, integrate via agent, never push to main/master, open PRs via GitHub CLI. Use when the user asks to create branches, push changes, open PRs, or follow this sandbox repo setup.
- auto-skill-bootstrapDeterministic helper to inventory existing project skills, detect missing capability coverage, search skills.sh via Skills CLI, and (optionally) install missing skills under a trust policy. Uses skills-manifest.json + state.json to stay idempotent across changing requirements.
- code-navigationНавигация по коду (Code Navigation). Навык учит агента **эффективно перемещаться по BSL-коду** с помощью LSP (Language Server Protocol).
- config-operationsОперации с конфигурацией 1С (CF) — init, info, edit, validate. Используй при создании конфигурации, анализе структуры, изменении свойств и ChildObjects, валидации Configuration.xml.
- epf-buildСобрать EPF/ERF из XML-исходников. Используй после внесения временных диагностических правок в разобранную обработку.
- epf-dumpРазобрать EPF/ERF в XML-исходники. Используй, когда нужно быстро получить исходный код внешней обработки или отчета для анализа и временной модификации.