--- name: skill-master description: Находит архитектурные шаблоны в кодовой базе и автоматически создаёт файлы SKILL для .claude/skills/. Используй при поиске недостающих навыков проекта, создании навыков по существующему коду и синхронизации навыков со структурой проекта. version: 1.0.0 --- # Skill Master ## Обзор Анализируй кодовую базу, находи повторяющиеся архитектурные шаблоны и создавай или обновляй файлы SKILL в `.claude/skills/`. Навык поддерживает проекты для нескольких платформ и определяет шаблоны с учётом стека. **Возможности:** - Поиск архитектурных шаблонов в коде: ViewModel, Repository, Room и других. - Сравнение найденных шаблонов с существующими навыками. - Автоматическое создание файлов SKILL с настоящими примерами кода. - Отслеживание версий и обновление с сохранением внесённых правок. ## Как ИИ находит и использует этот навык Навык срабатывает, когда пользователь: - Просит найти недостающие навыки проекта. - Просит создать навыки на основе шаблонов в коде. - Хочет синхронизировать или обновить существующие навыки. - Упоминает «skill discovery», «generate skills» или «skill-sync». **Признаки для определения контекста:** - Наличие каталога `.claude/skills/`. - Структура проекта, соответствующая известным шаблонам. - Файлы сборки и конфигурации, указывающие на платформу; см. справочные файлы. ## Режимы ### Режим поиска Проанализируй кодовую базу и сообщи, каких навыков не хватает. **Шаги:** 1. Определи платформу по файлам сборки и конфигурации; см. справочные файлы. 2. Проверь корневые каталоги исходников на признаки известных шаблонов. 3. Сопоставь найденные шаблоны с содержимым `.claude/skills/`. 4. Выведи отчёт о недостающих навыках. **Формат результата:** ``` Найдено шаблонов: {count} | Шаблон | Найдено файлов | Пример расположения | |---------|-------------|------------------| | {name} | {count} | {path} | Существующих навыков: {count} Недостающих навыков: {count} - {skill-name}: {pattern}, найдено файлов: {file-count} ``` ### Режим создания Создай файлы SKILL по найденным шаблонам. **Шаги:** 1. Запусти поиск, чтобы определить недостающие навыки. 2. Для каждого недостающего навыка: - Найди 2-3 показательных файла исходного кода. - Извлеки импорты, аннотации, структуру классов и принятые соглашения. - Если есть `.ruler/*.md`, извлеки правила из этих файлов. 3. Создай SKILL.md по структуре шаблона. 4. Добавь версию и маркер источников. **Структура создаваемого SKILL:** ```yaml --- name: {pattern-name} description: {Generated description with trigger keywords} version: 1.0.0 --- # {Title} ## Обзор {Brief description from pattern analysis} ## Структура файлов {Extracted from codebase} ## Шаблон реализации {Real code examples - anonymized} ## Правила ### Что делать {From .ruler/*.md + codebase conventions} ### Чего избегать {Anti-patterns found} ## Расположение файлов {Actual paths from codebase} ``` ## Создание нового файла Если целевой файл SKILL ещё не существует: 1. Создай файл по шаблону. 2. Установи `version: 1.0.0` во frontmatter. 3. Добавь все обязательные разделы. 4. В конце добавь маркер источников; см. «Формат маркера». ## Обновление **Проверка маркера:** ищи ` ``` ## Справочные файлы для платформ После определения платформы прочитай соответствующий файл: | Платформа | Файлы для определения | Справочный файл | |----------|-----------------|-----------| | Android/Gradle | `build.gradle`, `settings.gradle` | `references/android.md` | | iOS/Xcode | `*.xcodeproj`, `Package.swift` | `references/ios.md` | | React (web) | `package.json` + react | `references/react-web.md` | | React Native | `package.json` + react-native | `references/react-native.md` | | Flutter/Dart | `pubspec.yaml` | `references/flutter.md` | | Node.js | `package.json` | `references/node.md` | | Python | `pyproject.toml`, `requirements.txt` | `references/python.md` | | Java/JVM | `pom.xml`, `build.gradle` | `references/java.md` | | .NET/C# | `*.csproj`, `*.sln` | `references/dotnet.md` | | Go | `go.mod` | `references/go.md` | | Rust | `Cargo.toml` | `references/rust.md` | | PHP | `composer.json` | `references/php.md` | | Ruby | `Gemfile` | `references/ruby.md` | | Elixir | `mix.exs` | `references/elixir.md` | | C/C++ | `CMakeLists.txt`, `Makefile` | `references/cpp.md` | | Неизвестная платформа | - | `references/generic.md` | Если найдено несколько платформ, прочитай несколько справочных файлов. ## Правила ### Что делать - Извлекай только те шаблоны, которые подтверждены кодом. - Используй реальные примеры кода, обезличивая бизнес-логику. - Добавляй ключевые слова для срабатывания навыка в описание. - Ограничивай SKILL.md 500 строками. - Подробности выноси в отдельные файлы и ссылайся на них. - Сохраняй пользовательские разделы при обновлениях. - Всегда делай резервную копию перед первым изменением. ### Чего избегать - Не включай секреты, токены и учётные данные. - Не раскрывай детали логики конкретного бизнеса. - Не создавай пустые заготовки вместо настоящего содержимого. - Не перезаписывай пользовательские правки без резервной копии. - Не создавай глубоких цепочек ссылок: не более 1 уровня. - Не записывай файлы за пределами `.claude/skills/`. ## Правила извлечения содержимого **Из кодовой базы:** - Извлекай структуру классов, аннотации, способы импорта, расположение файлов и соглашения об именовании. - Никогда не извлекай жёстко заданные значения, секреты, API-ключи и персональные данные. **Из .ruler/*.md, если такие файлы есть:** - Извлекай разрешения и запреты, архитектурные ограничения и правила зависимостей. ## Итоговый отчёт После создания выведи: ``` ОТЧЁТ О СОЗДАНИИ НАВЫКОВ Создано навыков: {count} {skill-name} [CREATED | UPDATED | BACKED_UP+CREATED] ├── Проанализировано файлов исходного кода: {file-count} ├── Источники: {list of source files} ├── Правила из: {.ruler files if any} └── Результат: .claude/skills/{skill-name}/SKILL.md ({line-count} строк) Проверка: ✓ Корректный YAML frontmatter ✓ В описании есть ключевые слова для срабатывания ✓ Объём не превышает 500 строк ✓ Все обязательные разделы на месте ``` ## Ограничения безопасности - Никогда не записывай файлы за пределами `.claude/skills/`. - Никогда не удаляй содержимое без резервной копии. - Всегда создавай резервную копию перед первым изменением файла. - Сохраняй пользовательские правки. - Обеспечивай воспроизводимость: одинаковые входные данные дают одинаковый результат.