# Создание навыков по кодовой базе

## Файл: SKILL.md

---
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. В конце добавь маркер источников; см. «Формат маркера».

## Обновление

**Проверка маркера:** ищи `<!-- Generated by skill-master command` в конце файла.

**Если маркер есть, то есть навык уже запускался:**
- Объедини содержимое: сохрани пользовательские правки и добавь недостающие разделы.
- Увеличь версию: major для несовместимых изменений, minor для новых возможностей, patch для исправлений.
- Обнови список источников в маркере.

**Если маркера нет, то есть существующий файл обновляется впервые:**
- Создай резервную копию: `SKILL.md` → `SKILL.md.bak`.
- Используй её как источник и извлеки подходящее содержимое.
- Создай новый файл с маркером.
- Установи `version: 1.0.0`.

## Формат маркера

Помести его в КОНЕЦ созданного SKILL.md:

```html
<!-- Generated by skill-master command
Version: {version}
Sources:
- path/to/source1.kt
- path/to/source2.md
- .ruler/rule-file.md
Last updated: {YYYY-MM-DD}
-->
```

## Справочные файлы для платформ

После определения платформы прочитай соответствующий файл:

| Платформа | Файлы для определения | Справочный файл |
|----------|-----------------|-----------|
| 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/`.
- Никогда не удаляй содержимое без резервной копии.
- Всегда создавай резервную копию перед первым изменением файла.
- Сохраняй пользовательские правки.
- Обеспечивай воспроизводимость: одинаковые входные данные дают одинаковый результат.


## Файл: references/android.md


# Android (Gradle/Kotlin)

## Признаки платформы
- `settings.gradle` или `settings.gradle.kts`
- `build.gradle` или `build.gradle.kts`
- `gradle.properties`, `gradle/libs.versions.toml`
- `gradlew`, `gradle/wrapper/gradle-wrapper.properties`
- `app/src/main/AndroidManifest.xml`

## Признаки многомодульного проекта
- Несколько `include(...)` в `settings.gradle*`
- Несколько каталогов с `build.gradle*` + `src/`
- Типичные корневые каталоги: `feature/`, `core/`, `library/`, `domain/`, `data/`

## Источники перед созданием навыка
- `settings.gradle*` (список модулей)
- `build.gradle*` (корневой проект и модули)
- `gradle/libs.versions.toml` (зависимости)
- `config/detekt/detekt.yml` (если есть)
- `**/AndroidManifest.xml`

## Что искать в кодовой базе

### Корневые каталоги исходников
- `*/src/main/java/`, `*/src/main/kotlin/`

### Типовые слои и каталоги: зафиксируй найденные
`features/`, `core/`, `common/`, `data/`, `domain/`, `presentation/`, `ui/`, `di/`, `navigation/`, `network/`

### Признаки шаблонов

| Шаблон | Критерии обнаружения | Имя навыка |
|---------|-------------------|------------|
| ViewModel | `@HiltViewModel`, `ViewModel()`, `MVI<` | viewmodel-mvi |
| Repository | `*Repository`, `*RepositoryImpl` | data-repository |
| UseCase | `operator fun invoke`, `*UseCase` | domain-usecase |
| Room Entity | `@Entity`, `@PrimaryKey`, `@ColumnInfo` | room-entity |
| Room DAO | `@Dao`, `@Query`, `@Insert`, `@Update` | room-dao |
| Migration | `Migration(`, `@Database(version=` | room-migration |
| Type Converter | `@TypeConverter`, `@TypeConverters` | type-converter |
| DTO | `@SerializedName`, `*Request`, `*Response` | network-dto |
| Compose Screen | `@Composable`, `NavGraphBuilder.` | compose-screen |
| Bottom Sheet | `ModalBottomSheet`, `*BottomSheet(` | bottomsheet-screen |
| Navigation | `@Route`, `NavGraphBuilder.`, `composable(` | navigation-route |
| Hilt Module | `@Module`, `@Provides`, `@Binds`, `@InstallIn` | hilt-module |
| Worker | `@HiltWorker`, `CoroutineWorker`, `WorkManager` | worker-task |
| DataStore | `DataStore<Preferences>`, `preferencesDataStore` | datastore-preference |
| Retrofit API | `@GET`, `@POST`, `@PUT`, `@DELETE` | retrofit-api |
| Mapper | `*.toModel()`, `*.toEntity()`, `*.toDto()` | data-mapper |
| Interceptor | `Interceptor`, `intercept()` | network-interceptor |
| Paging | `PagingSource`, `Pager(`, `PagingData` | paging-source |
| Broadcast Receiver | `BroadcastReceiver`, `onReceive(` | broadcast-receiver |
| Android Service | `: Service()`, `ForegroundService` | android-service |
| Notification | `NotificationCompat`, `NotificationChannel` | notification-builder |
| Analytics | `FirebaseAnalytics`, `logEvent` | analytics-event |
| Feature Flag | `RemoteConfig`, `FeatureFlag` | feature-flag |
| App Widget | `AppWidgetProvider`, `GlanceAppWidget` | app-widget |
| Unit Test | `@Test`, `MockK`, `mockk(`, `every {` | unit-test |

## Обязательные разделы результата

Добавь, если найдено; перечисли реальные имена:
- **Состав функциональных модулей**: каталоги в `feature/`
- **Основные модули**: каталоги в `core/`, `library/`
- **Графы навигации**: `*Graph.kt`, `*Navigator*.kt`
- **Модули Hilt**: `@Module` классы, `di/` содержимое
- **API Retrofit**: `*Api.kt` интерфейсы
- **Базы данных Room**: `@Database` классы
- **Фоновые обработчики**: `@HiltWorker` классы
- **Proguard**: `proguard-rules.pro`, если есть

## Откуда брать команды
- README и документация с вызовами `./gradlew`
- Сценарии CI с командами Gradle
- Обычные команды: `./gradlew assemble`, `./gradlew test`, `./gradlew lint`
- Добавляй только команды, которые есть в репозитории

## Основные пути
- `app/src/main/`, `app/src/main/res/`
- `app/src/main/java/`, `app/src/main/kotlin/`
- `app/src/test/`, `app/src/androidTest/`
- `library/database/migration/` (миграции Room)


## Файл: README.md





## Файл: references/cpp.md


# C/C++

## Признаки платформы
- `CMakeLists.txt`
- `Makefile`, `makefile`
- `*.cpp`, `*.c`, `*.h`, `*.hpp`
- `conanfile.txt`, `conanfile.py` (Conan)
- `vcpkg.json` (vcpkg)

## Признаки многомодульного проекта
- Несколько `CMakeLists.txt` с `add_subdirectory`
- Несколько `Makefile` в подкаталогах
- `lib/`, `src/`, `modules/` каталоги

## Источники перед созданием навыка
- `CMakeLists.txt` (зависимости и цели сборки)
- `conanfile.*` (зависимости)
- `vcpkg.json` (зависимости)
- `Makefile` (цели сборки)

## Что искать в кодовой базе

### Корневые каталоги исходников
- `src/`, `lib/`, `include/`

### Типовые слои и каталоги: зафиксируй найденные
`core/`, `utils/`, `network/`, `storage/`, `ui/`, `tests/`

### Признаки шаблонов

| Шаблон | Критерии обнаружения | Имя навыка |
|---------|-------------------|------------|
| Class | `class *`, `public:`, `private:` | cpp-class |
| Header | `*.h`, `*.hpp`, `#pragma once` | header-file |
| Template | `template<`, `typename T` | cpp-template |
| Smart Pointer | `std::unique_ptr`, `std::shared_ptr` | smart-pointer |
| RAII | шаблон деструктора, `~*()` | raii-pattern |
| Singleton | `static *& instance()` | singleton |
| Factory | `create*()`, `make*()` | factory-pattern |
| Observer | `subscribe`, `notify`, шаблон обратного вызова | observer-pattern |
| Thread | `std::thread`, `std::async`, `pthread` | threading |
| Mutex | `std::mutex`, `std::lock_guard` | synchronization |
| Network | `socket`, `asio::`, `boost::asio` | network-cpp |
| Serialization | `nlohmann::json`, `protobuf` | serialization |
| Unit Test | `TEST(`, `TEST_F(`, `gtest` | gtest |
| Catch2 Test | `TEST_CASE(`, `REQUIRE(` | catch2-test |

## Обязательные разделы результата

Добавь, если найдено:
- **Основные модули**: основная функциональность
- **Библиотеки**: внутренние библиотеки
- **Заголовочные файлы**: публичный API
- **Тесты**: организация проверок
- **Build цели сборки**: executables, libraries

## Откуда брать команды
- `CMakeLists.txt` пользовательские цели сборки
- `Makefile` цели сборки
- README, документация и CI
- Обычные команды: `cmake`, `make`, `ctest`
- Добавляй только команды, которые есть в репозитории

## Основные пути
- `src/`, `include/`
- `lib/`, `libs/`
- `tests/`, `test/`
- `build/` (вне каталога исходников)


## Файл: references/dotnet.md


# .NET (C#/F#)

## Признаки платформы
- `*.csproj`, `*.fsproj`
- `*.sln`
- `global.json`
- `appsettings.json`
- `Program.cs`, `Startup.cs`

## Признаки многомодульного проекта
- Несколько `*.csproj` файлов
- Решение с несколькими проектами
- `src/`, `tests/` каталоги с projects

## Источники перед созданием навыка
- `*.csproj` (зависимости и SDK)
- `*.sln` (структура проекта)
- `appsettings.json` (конфигурация)
- `global.json` (версия SDK)

## Что искать в кодовой базе

### Корневые каталоги исходников
- `src/`, `*/` (для каждого проекта)

### Типовые слои и каталоги: зафиксируй найденные
`Controllers/`, `Services/`, `Repositories/`, `Models/`, `Entities/`, `DTOs/`, `Middleware/`, `Extensions/`

### Признаки шаблонов

| Шаблон | Критерии обнаружения | Имя навыка |
|---------|-------------------|------------|
| Controller | `[ApiController]`, `ControllerBase`, `[HttpGet]` | aspnet-controller |
| Service | `I*Service`, `class *Service` | dotnet-service |
| Repository | `I*Repository`, `class *Repository` | dotnet-repository |
| Entity | `class *Entity`, `[Table]`, `[Key]` | ef-entity |
| DTO | `class *Dto`, `class *Request`, `class *Response` | dto-pattern |
| DbContext | `: DbContext`, `DbSet<` | ef-dbcontext |
| Middleware | `IMiddleware`, `RequestDelegate` | aspnet-middleware |
| Background Service | `BackgroundService`, `IHostedService` | background-service |
| MediatR Handler | `IRequestHandler<`, `INotificationHandler<` | mediatr-handler |
| SignalR Hub | `: Hub`, `[HubName]` | signalr-hub |
| Minimal API | `app.MapGet(`, `app.MapPost(` | minimal-api |
| gRPC Service | `*.proto`, `: *Base` | grpc-service |
| EF Migration | `Migrations/`, `AddMigration` | ef-migration |
| Unit Test | `[Fact]`, `[Theory]`, `xUnit` | xunit-test |
| Integration Test | `WebApplicationFactory`, `IClassFixture` | integration-test |

## Обязательные разделы результата

Добавь, если найдено:
- **Контроллеры**: конечные точки API
- **Сервисы**: бизнес-логика
- **Репозитории**: доступ к данным (EF Core)
- **Сущности/DTO**: модели данных
- **Промежуточные обработчики**: цепочка обработки запросов
- **Фоновые сервисы**: размещённые сервисы

## Откуда брать команды
- `*.csproj` цели сборки
- README, документация и CI
- Обычные команды: `dotnet build`, `dotnet test`, `dotnet run`
- Добавляй только команды, которые есть в репозитории

## Основные пути
- `src/*/`, project каталоги
- `tests/`
- `Migrations/`
- `Properties/`


## Файл: references/elixir.md


# Elixir/Erlang

## Признаки платформы
- `mix.exs`
- `mix.lock`
- `config/config.exs`
- `lib/`, `test/` каталоги

## Признаки многомодульного проекта
- Umbrella-приложение (`apps/` каталог)
- Несколько `mix.exs` в подкаталогах
- `rel/` для релизов

## Источники перед созданием навыка
- `mix.exs` (dependencies, config)
- `config/*.exs` (конфигурация)
- `rel/config.exs` (releases)

## Что искать в кодовой базе

### Корневые каталоги исходников
- `lib/`, `apps/*/lib/`

### Типовые слои и каталоги: зафиксируй найденные
`controllers/`, `views/`, `channels/`, `contexts/`, `schemas/`, `workers/`

### Признаки шаблонов

| Шаблон | Критерии обнаружения | Имя навыка |
|---------|-------------------|------------|
| Phoenix Controller | `use *Web, :controller`, `def index` | phoenix-controller |
| Phoenix LiveView | `use *Web, :live_view`, `mount/3` | phoenix-liveview |
| Phoenix Channel | `use *Web, :channel`, `join/3` | phoenix-channel |
| Ecto Schema | `use Ecto.Schema`, `schema "` | ecto-schema |
| Ecto Migration | `use Ecto.Migration`, `create table` | ecto-migration |
| Ecto Changeset | `cast/4`, `validate_required` | ecto-changeset |
| Context | `defmodule *Context`, `def list_*` | phoenix-context |
| GenServer | `use GenServer`, `handle_call` | genserver |
| Supervisor | `use Supervisor`, `start_link` | supervisor |
| Task | `Task.async`, `Task.Supervisor` | elixir-task |
| Oban Worker | `use Oban.Worker`, `perform/1` | oban-worker |
| Absinthe | `use Absinthe.Schema`, `field :` | graphql-schema |
| ExUnit Test | `use ExUnit.Case`, `test "` | exunit-test |

## Обязательные разделы результата

Добавь, если найдено:
- **Контроллеры/LiveView**: обработчики HTTP/WebSocket
- **Контексты**: бизнес-логика
- **Схемы**: модели Ecto
- **Каналы**: обработчики в реальном времени
- **Фоновые обработчики**: фоновые задания

## Откуда брать команды
- `mix.exs` псевдонимы
- README, документация и CI
- Обычные команды: `mix deps.get`, `mix test`, `mix phx.server`
- Добавляй только команды, которые есть в репозитории

## Основные пути
- `lib/*/`, `lib/*_web/`
- `priv/repo/migrations/`
- `test/`
- `config/`


## Файл: references/flutter.md


# Flutter/Dart

## Признаки платформы
- `pubspec.yaml`
- `lib/main.dart`
- `android/`, `ios/`, `web/` каталоги
- `.dart_tool/`
- `analysis_options.yaml`

## Признаки многомодульного проекта
- `melos.yaml` (монорепозиторий)
- Несколько `pubspec.yaml` в подкаталогах
- `packages/` каталог

## Источники перед созданием навыка
- `pubspec.yaml` (зависимости)
- `analysis_options.yaml`
- `build.yaml` (если используется build_runner)
- `lib/main.dart` (точка входа)

## Что искать в кодовой базе

### Корневые каталоги исходников
- `lib/`, `test/`

### Типовые слои и каталоги: зафиксируй найденные
`screens/`, `widgets/`, `models/`, `services/`, `providers/`, `repositories/`, `utils/`, `constants/`, `bloc/`, `cubit/`

### Признаки шаблонов

| Шаблон | Критерии обнаружения | Имя навыка |
|---------|-------------------|------------|
| Screen/Page | `*Screen`, `*Page`, `extends StatefulWidget` | flutter-screen |
| Widget | `extends StatelessWidget`, `extends StatefulWidget` | flutter-widget |
| BLoC | `extends Bloc<`, `extends Cubit<` | bloc-pattern |
| Provider | `ChangeNotifier`, `Provider.of<`, `context.read<` | provider-pattern |
| Riverpod | `@riverpod`, `ref.watch`, `ConsumerWidget` | riverpod-provider |
| GetX | `GetxController`, `Get.put`, `Obx(` | getx-controller |
| Repository | `*Repository`, `abstract class *Repository` | data-repository |
| Service | `*Service` | service-layer |
| Model | `fromJson`, `toJson`, `@JsonSerializable` | json-model |
| Freezed | `@freezed`, `part '*.freezed.dart'` | freezed-model |
| API Client | `Dio`, `http.Client`, `Retrofit` | api-client |
| Navigation | `Navigator`, `GoRouter`, `auto_route` | flutter-navigation |
| Localization | `AppLocalizations`, `l10n`, `intl` | flutter-l10n |
| Testing | `testWidgets`, `WidgetTester`, `flutter_test` | widget-test |
| Integration Test | `integration_test`, `IntegrationTestWidgetsFlutterBinding` | integration-test |

## Обязательные разделы результата

Добавь, если найдено:
- **Состав экранов**: каталоги в `screens/`, `pages/`
- **Управление состоянием**: BLoC, Provider, Riverpod, GetX
- **Настройка навигации**: GoRouter, auto_route, Navigator
- **Способ внедрения зависимостей**: get_it, injectable, вручную
- **Слой API**: Dio, http, Retrofit
- **Модели**: Freezed, json_serializable

## Откуда брать команды
- `pubspec.yaml` команды (если используется melos)
- README и документация
- Обычные команды: `flutter run`, `flutter test`, `flutter build`
- Добавляй только команды, которые есть в репозитории

## Основные пути
- `lib/`, `test/`
- `lib/screens/`, `lib/widgets/`
- `lib/bloc/`, `lib/providers/`
- `assets/`


## Файл: references/generic.md


# Общий случай: неизвестный стек

Запасной справочник для случая, когда конкретную платформу определить не удалось.

## Признаки платформы
- Характерные файлы сборки или конфигурации не найдены
- Смешанный технологический стек
- Репозиторий только с документацией

## Признаки многомодульного проекта
- Несколько каталогов с разными зонами ответственности
- `packages/`, `modules/`, `libs/` каталоги
- Структура монорепозитория без специальных инструментов

## Источники перед созданием навыка
- `README.md` (обзор проекта)
- `docs/*` (documentation)
- `.env.example` (переменные окружения)
- `docker-compose.yml` (сервисы)
- Файлы CI (`.github/workflows/`, и др.)

## Что искать в кодовой базе

### Корневые каталоги исходников
- `src/`, `lib/`, `app/`

### Типовые слои и каталоги: зафиксируй найденные
`api/`, `core/`, `utils/`, `services/`, `models/`, `config/`, `scripts/`

### Признаки общих шаблонов

| Шаблон | Критерии обнаружения | Имя навыка |
|---------|-------------------|------------|
| Entry Point | `main.*`, `index.*`, `app.*` | entry-point |
| Config | `config.*`, `settings.*` | config-file |
| API Client | `api/`, `client/`, HTTP-вызовы | api-client |
| Model | `model/`, `types/`, структуры данных | data-model |
| Service | `service/`, бизнес-логика | service-layer |
| Utility | `utils/`, `helpers/`, `common/` | utility-module |
| Test | `test/`, `tests/`, `*_test.*`, `*.test.*` | test-file |
| Script | `scripts/`, `bin/` | script-file |
| Documentation | `docs/`, `*.md` | documentation |

## Обязательные разделы результата

Добавь, если найдено:
- **Структура проекта**: main каталоги
- **Точки входа**: main файлов
- **Конфигурация**: файлы конфигурации
- **Зависимости**: любой менеджер пакетов
- **Команды сборки и запуска**: из README и скриптов

## Откуда брать команды
- `README.md` (ищи блоки кода)
- `Makefile`, `Taskfile.yml`
- `scripts/` каталог
- Сценарии CI
- Добавляй только команды, которые есть в репозитории

## Основные пути
- `src/`, `lib/`
- `docs/`
- `scripts/`
- `config/`

## Примечания

При работе с этим общим справочником:
1. Ищи любые узнаваемые шаблоны
2. Опиши фактическую структуру проекта
3. Если есть README, извлеки команды из него
4. Отметь технологии, упомянутые в документации
5. Ограничь результат необходимыми проверенными фактами


## Файл: references/go.md


# Go

## Признаки платформы
- `go.mod`
- `go.sum`
- `main.go`
- `cmd/`, `internal/`, `pkg/` каталоги

## Признаки многомодульного проекта
- `go.work` (рабочая область)
- Несколько `go.mod` файлов
- `cmd/*/main.go` (несколько исполняемых файлов)

## Источники перед созданием навыка
- `go.mod` (зависимости)
- `Makefile` (команды сборки)
- `config/*.yaml` или `*.toml`

## Что искать в кодовой базе

### Корневые каталоги исходников
- `cmd/`, `internal/`, `pkg/`

### Типовые слои и каталоги: зафиксируй найденные
`handler/`, `service/`, `repository/`, `model/`, `middleware/`, `config/`, `util/`

### Признаки шаблонов

| Шаблон | Критерии обнаружения | Имя навыка |
|---------|-------------------|------------|
| HTTP Handler | `http.Handler`, `http.HandlerFunc`, `gin.Context` | http-handler |
| Gin Route | `gin.Engine`, `r.GET(`, `r.POST(` | gin-route |
| Echo Route | `echo.Echo`, `e.GET(`, `e.POST(` | echo-route |
| Fiber Route | `fiber.App`, `app.Get(`, `app.Post(` | fiber-route |
| gRPC Service | `*.proto`, `pb.*Server` | grpc-service |
| Repository | `type *Repository interface`, `*Repository` | data-repository |
| Service | `type *Service interface`, `*Service` | service-layer |
| GORM Model | `gorm.Model`, `*gorm.DB` | gorm-model |
| sqlx | `sqlx.DB`, `sqlx.NamedExec` | sqlx-usage |
| Migration | `goose`, `golang-migrate` | db-migration |
| Middleware | `func(*Context)`, `middleware.*` | go-middleware |
| Worker | `go func()`, `sync.WaitGroup`, `errgroup` | worker-goroutine |
| Config | `viper`, `envconfig`, `cleanenv` | config-loader |
| Unit Test | `*_test.go`, `func Test*(t *testing.T)` | go-test |
| Mock | `mockgen`, `*_mock.go` | go-mock |

## Обязательные разделы результата

Добавь, если найдено:
- **Обработчики HTTP**: конечные точки API
- **Сервисы**: бизнес-логика
- **Репозитории**: доступ к данным
- **Модели**: структуры данных
- **Промежуточные обработчики**: перехватчики запросов
- **Миграции**: миграции базы данных

## Откуда брать команды
- `Makefile` цели сборки
- README, документация и CI
- Обычные команды: `go build`, `go test`, `go run`
- Добавляй только команды, которые есть в репозитории

## Основные пути
- `cmd/`, `internal/`, `pkg/`
- `api/`, `handler/`
- `migrations/`
- `config/`


## Файл: references/ios.md


# iOS (Xcode/Swift)

## Признаки платформы
- `*.xcodeproj`, `*.xcworkspace`
- `Package.swift` (SPM)
- `Podfile`, `Podfile.lock` (CocoaPods)
- `Cartfile` (Carthage)
- `*.pbxproj`
- `Info.plist`

## Признаки многомодульного проекта
- Несколько целей сборки в `*.xcodeproj`
- Несколько `Package.swift` файлов
- Рабочая область с несколькими проектами
- `Modules/`, `Packages/`, `Features/` каталоги

## Источники перед созданием навыка
- `*.xcodeproj/project.pbxproj` (список целей сборки)
- `Package.swift` (зависимости и цели сборки)
- `Podfile` (зависимости)
- `*.xcconfig` (конфигурации сборки)
- `Info.plist` файлов

## Что искать в кодовой базе

### Корневые каталоги исходников
- `*/Sources/`, `*/Source/`
- `*/App/`, `*/Core/`, `*/Features/`

### Типовые слои и каталоги: зафиксируй найденные
`Models/`, `Views/`, `ViewModels/`, `Services/`, `Networking/`, `Utilities/`, `Extensions/`, `Coordinators/`

### Признаки шаблонов

| Шаблон | Критерии обнаружения | Имя навыка |
|---------|-------------------|------------|
| SwiftUI View | `struct *: View`, `var body: some View` | swiftui-view |
| UIKit VC | `UIViewController`, `viewDidLoad()` | uikit-viewcontroller |
| ViewModel | `@Observable`, `ObservableObject`, `@Published` | viewmodel-observable |
| Coordinator | `Coordinator`, `*Coordinator` | coordinator-pattern |
| Repository | `*Repository`, `protocol *Repository` | data-repository |
| Service | `*Service`, `protocol *Service` | service-layer |
| Core Data | `NSManagedObject`, `@NSManaged`, `.xcdatamodeld` | coredata-entity |
| Realm | `Object`, `@Persisted` | realm-model |
| Network | `URLSession`, `Alamofire`, `Moya` | network-client |
| Dependency | `@Inject`, `Container`, `Swinject` | di-container |
| Navigation | `NavigationStack`, `NavigationPath` | navigation-swiftui |
| Combine | `Publisher`, `AnyPublisher`, `sink` | combine-publisher |
| Async/Await | `async`, `await`, `Task {` | async-await |
| Unit Test | `XCTestCase`, `func test*()` | xctest |
| UI Test | `XCUIApplication`, `XCUIElement` | xcuitest |

## Обязательные разделы результата

Добавь, если найдено:
- **Состав целей сборки**: список из pbxproj
- **Модули/пакеты**: пакеты SPM и Pods
- **Архитектура представлений**: SwiftUI или UIKit
- **Управление состоянием**: Combine, Observable, и др.
- **Сетевой слой**: URLSession, Alamofire, и др.
- **Хранение данных**: Core Data, Realm, UserDefaults
- **Настройка внедрения зависимостей**: Swinject, ручное внедрение

## Откуда брать команды
- README и документация с командами xcodebuild
- `fastlane/Fastfile` сценарии
- Сценарии CI (`.github/workflows/`, `.gitlab-ci.yml`)
- Обычные команды: `xcodebuild test`, `fastlane test`
- Добавляй только команды, которые есть в репозитории

## Основные пути
- `*/Sources/`, `*/Tests/`
- `*.xcodeproj/`, `*.xcworkspace/`
- `Pods/` (при использовании CocoaPods)
- `Packages/` (при использовании локальных пакетов SPM)


## Файл: references/java.md


# Java/JVM (Spring, и др.)

## Признаки платформы
- `pom.xml` (Maven)
- `build.gradle`, `build.gradle.kts` (Gradle)
- `settings.gradle` (несколько модулей)
- `src/main/java/`, `src/main/kotlin/`
- `application.properties`, `application.yml`

## Признаки многомодульного проекта
- Несколько `pom.xml` с `<modules>`
- Несколько `build.gradle` с `include()`
- `modules/`, `services/` каталоги

## Источники перед созданием навыка
- `pom.xml` или `build.gradle*` (зависимости)
- `application.properties/yml` (конфигурация)
- `settings.gradle` (модули)
- `docker-compose.yml` (сервисы)

## Что искать в кодовой базе

### Корневые каталоги исходников
- `src/main/java/`, `src/main/kotlin/`
- `src/test/java/`, `src/test/kotlin/`

### Типовые слои и каталоги: зафиксируй найденные
`controller/`, `service/`, `repository/`, `model/`, `entity/`, `dto/`, `config/`, `exception/`, `util/`

### Признаки шаблонов

| Шаблон | Критерии обнаружения | Имя навыка |
|---------|-------------------|------------|
| REST Controller | `@RestController`, `@GetMapping`, `@PostMapping` | spring-controller |
| Service | `@Service`, `class *Service` | spring-service |
| Repository | `@Repository`, `JpaRepository`, `CrudRepository` | spring-repository |
| Entity | `@Entity`, `@Table`, `@Id` | jpa-entity |
| DTO | `class *DTO`, `class *Request`, `class *Response` | dto-pattern |
| Config | `@Configuration`, `@Bean` | spring-config |
| Component | `@Component`, `@Autowired` | spring-component |
| Security | `@EnableWebSecurity`, `SecurityFilterChain` | spring-security |
| Validation | `@Valid`, `@NotNull`, `@Size` | validation-pattern |
| Exception Handler | `@ControllerAdvice`, `@ExceptionHandler` | exception-handler |
| Scheduler | `@Scheduled`, `@EnableScheduling` | scheduled-task |
| Event | `ApplicationEvent`, `@EventListener` | event-listener |
| Flyway Migration | `V*__*.sql`, `flyway` | flyway-migration |
| Liquibase | `changelog*.xml`, `liquibase` | liquibase-migration |
| Unit Test | `@Test`, `@SpringBootTest`, `MockMvc` | spring-test |
| Integration Test | `@DataJpaTest`, `@WebMvcTest` | integration-test |

## Обязательные разделы результата

Добавь, если найдено:
- **Контроллеры**: конечные точки REST
- **Сервисы**: бизнес-логика
- **Репозитории**: доступ к данным (JPA, JDBC)
- **Сущности/DTO**: модели данных
- **Конфигурация**: бины и профили Spring
- **Безопасность**: настройки аутентификации

## Откуда брать команды
- `pom.xml` плагины, `build.gradle` задачи
- README, документация и CI
- Обычные команды: `./mvnw`, `./gradlew`, `mvn test`, `gradle test`
- Добавляй только команды, которые есть в репозитории

## Основные пути
- `src/main/java/`, `src/main/kotlin/`
- `src/main/resources/`
- `src/test/`
- `db/migration/` (Flyway)


## Файл: references/node.md


# Node.js

## Признаки платформы
- `package.json` (без react/react-native)
- `tsconfig.json`
- `node_modules/`
- `*.js`, `*.ts`, `*.mjs`, `*.cjs` entry файлов

## Признаки многомодульного проекта
- `pnpm-workspace.yaml`, `lerna.json`
- `nx.json`, `turbo.json`
- Несколько `package.json` в подкаталогах
- `packages/`, `apps/` каталоги

## Источники перед созданием навыка
- `package.json` (зависимости и команды)
- `tsconfig.json` (пути и параметры компилятора)
- `.env.example` (переменные окружения)
- `docker-compose.yml` (сервисы)

## Что искать в кодовой базе

### Корневые каталоги исходников
- `src/`, `lib/`, `app/`

### Типовые слои и каталоги: зафиксируй найденные
`controllers/`, `services/`, `models/`, `routes/`, `middleware/`, `utils/`, `config/`, `types/`, `repositories/`

### Признаки шаблонов

| Шаблон | Критерии обнаружения | Имя навыка |
|---------|-------------------|------------|
| Express Route | `app.get(`, `app.post(`, `Router()` | express-route |
| Express Middleware | `(req, res, next)`, `app.use(` | express-middleware |
| NestJS Controller | `@Controller`, `@Get`, `@Post` | nestjs-controller |
| NestJS Service | `@Injectable`, `@Service` | nestjs-service |
| NestJS Module | `@Module`, `imports:`, `providers:` | nestjs-module |
| Fastify Route | `fastify.get(`, `fastify.post(` | fastify-route |
| GraphQL Resolver | `@Resolver`, `@Query`, `@Mutation` | graphql-resolver |
| TypeORM Entity | `@Entity`, `@Column`, `@PrimaryGeneratedColumn` | typeorm-entity |
| Prisma Model | `prisma.*.create`, `prisma.*.findMany` | prisma-usage |
| Mongoose Model | `mongoose.Schema`, `mongoose.model(` | mongoose-model |
| Sequelize Model | `Model.init`, `DataTypes` | sequelize-model |
| Queue Worker | `Bull`, `BullMQ`, `process(` | queue-worker |
| Cron Job | `@Cron`, `node-cron`, `cron.schedule` | cron-job |
| WebSocket | `ws`, `socket.io`, `io.on(` | websocket-handler |
| Unit Test | `describe(`, `it(`, `expect(`, `jest` | jest-test |
| E2E Test | `supertest`, `request(app)` | e2e-test |

## Обязательные разделы результата

Добавь, если найдено:
- **Маршруты/контроллеры**: конечные точки API
- **Сервисный слой**: бизнес-логика
- **База данных**: использование ORM/ODM (TypeORM, Prisma, Mongoose)
- **Промежуточные обработчики**: аутентификация, валидация и обработка ошибок
- **Фоновые задания**: очереди и задания cron
- **Обработчики WebSocket**: возможности реального времени

## Откуда брать команды
- `package.json` раздел команд
- README и документация
- Сценарии CI
- Обычные команды: `npm run dev`, `npm run build`, `npm test`
- Добавляй только команды, которые есть в репозитории

## Основные пути
- `src/`, `lib/`
- `src/routes/`, `src/controllers/`
- `src/services/`, `src/models/`
- `prisma/`, `migrations/`


## Файл: references/php.md


# PHP

## Признаки платформы
- `composer.json`, `composer.lock`
- `public/index.php`
- `artisan` (Laravel)
- `spark` (CodeIgniter 4)
- `bin/console` (Symfony)
- `app/Config/App.php` (CodeIgniter 4)
- `ext-phalcon` в composer.json (Phalcon)
- `phalcon/devtools` (Phalcon)

## Признаки многомодульного проекта
- `packages/` каталог
- Модули Laravel (`app/Modules/`)
- Модули CodeIgniter (`app/Modules/`, `modules/`)
- Несколько приложений Phalcon (`apps/*/`)
- Несколько `composer.json` в подкаталогах

## Источники перед созданием навыка
- `composer.json` (зависимости)
- `.env.example` (переменные окружения)
- `config/*.php` (Laravel/Symfony)
- `routes/*.php` (Laravel)
- `app/Config/*` (CodeIgniter 4)
- `apps/*/config/` (Phalcon)

## Что искать в кодовой базе

### Корневые каталоги исходников
- `app/`, `src/`, `apps/`

### Типовые слои и каталоги: зафиксируй найденные
`Controllers/`, `Services/`, `Repositories/`, `Models/`, `Entities/`, `Http/`, `Providers/`, `Console/`

### Структуры конкретных фреймворков

**Laravel** (зафиксируй, если найдено):
- `app/Http/Controllers`, `app/Models`, `database/migrations`
- `routes/*.php`, `resources/views`

**Symfony** (зафиксируй, если найдено):
- `src/Controller`, `src/Entity`, `config/packages`, `templates`

**CodeIgniter 4** (зафиксируй, если найдено):
- `app/Controllers`, `app/Models`, `app/Views`
- `app/Config/Routes.php`, `app/Database/Migrations`

**Phalcon** (зафиксируй, если найдено):
- `apps/*/controllers/`, `apps/*/Module.php`
- `models/`, `views/`

### Признаки шаблонов

| Шаблон | Критерии обнаружения | Имя навыка |
|---------|-------------------|------------|
| Laravel Controller | `extends Controller`, `public function index` | laravel-controller |
| Laravel Model | `extends Model`, `protected $fillable` | laravel-model |
| Laravel Migration | `extends Migration`, `Schema::create` | laravel-migration |
| Laravel Service | `class *Service`, `app/Services/` | laravel-service |
| Laravel Repository | `*Repository`, `interface *Repository` | laravel-repository |
| Laravel Job | `implements ShouldQueue`, `dispatch(` | laravel-job |
| Laravel Event | `extends Event`, `event(` | laravel-event |
| Symfony Controller | `#[Route]`, `AbstractController` | symfony-controller |
| Symfony Service | `#[AsService]`, `services.yaml` | symfony-service |
| Doctrine Entity | `#[ORM\Entity]`, `#[ORM\Column]` | doctrine-entity |
| Doctrine Migration | `AbstractMigration`, `$this->addSql` | doctrine-migration |
| CI4 Controller | `extends BaseController`, `app/Controllers/` | ci4-controller |
| CI4 Model | `extends Model`, `protected $table` | ci4-model |
| CI4 Migration | `extends Migration`, `$this->forge->` | ci4-migration |
| CI4 Entity | `extends Entity`, `app/Entities/` | ci4-entity |
| Phalcon Controller | `extends Controller`, `Phalcon\Mvc\Controller` | phalcon-controller |
| Phalcon Model | `extends Model`, `Phalcon\Mvc\Model` | phalcon-model |
| Phalcon Migration | `Phalcon\Migrations`, `morphTable` | phalcon-migration |
| API Resource | `extends JsonResource`, `toArray` | api-resource |
| Form Request | `extends FormRequest`, `rules()` | form-request |
| Middleware | `implements Middleware`, `handle(` | php-middleware |
| Unit Test | `extends TestCase`, `test*()`, `PHPUnit` | phpunit-test |
| Feature Test | `extends TestCase`, `$this->get(`, `$this->post(` | feature-test |

## Обязательные разделы результата

Добавь, если найдено:
- **Контроллеры**: конечные точки HTTP
- **Модели/сущности**: слой данных
- **Сервисы**: бизнес-логика
- **Репозитории**: доступ к данным
- **Миграции**: изменения базы данных
- **Задания/события**: асинхронная обработка
- **Бизнес-модули**: крупнейшие модули по размеру

## Откуда брать команды
- `composer.json` команды
- `php artisan` (Laravel)
- `php spark` (CodeIgniter 4)
- `bin/console` (Symfony)
- `phalcon` команды devtools
- README, документация и CI
- Добавляй только команды, которые есть в репозитории

## Основные пути

**Laravel:**
- `app/`, `routes/`, `database/migrations/`
- `resources/views/`, `tests/`

**Symfony:**
- `src/`, `config/`, `templates/`
- `migrations/`, `tests/`

**CodeIgniter 4:**
- `app/Controllers/`, `app/Models/`, `app/Views/`
- `app/Database/Migrations/`, `tests/`

**Phalcon:**
- `apps/*/controllers/`, `apps/*/models/`
- `apps/*/views/`, `migrations/`


## Файл: references/python.md


# Python

## Признаки платформы
- `pyproject.toml`
- `requirements.txt`, `requirements-dev.txt`
- `Pipfile`, `poetry.lock`
- `setup.py`, `setup.cfg`
- `manage.py` (Django)

## Признаки многомодульного проекта
- Несколько `pyproject.toml` в подкаталогах
- `packages/`, `apps/` каталоги
- Структура Django: `apps/` с `apps.py`

## Источники перед созданием навыка
- `pyproject.toml` или `setup.py`
- `requirements*.txt`, `Pipfile`
- `tox.ini`, `pytest.ini`
- `manage.py`, `settings.py` (Django)

## Что искать в кодовой базе

### Корневые каталоги исходников
- `src/`, `app/`, `packages/`, `tests/`

### Типовые слои и каталоги: зафиксируй найденные
`api/`, `routers/`, `views/`, `services/`, `repositories/`, `models/`, `schemas/`, `utils/`, `config/`

### Признаки шаблонов

| Шаблон | Критерии обнаружения | Имя навыка |
|---------|-------------------|------------|
| FastAPI Router | `APIRouter`, `@router.get`, `@router.post` | fastapi-router |
| FastAPI Dependency | `Depends(`, `def get_*():` | fastapi-dependency |
| Django View | `View`, `APIView`, `def get(self, request)` | django-view |
| Django Model | `models.Model`, `class Meta:` | django-model |
| Django Serializer | `serializers.Serializer`, `ModelSerializer` | drf-serializer |
| Flask Route | `@app.route`, `Blueprint` | flask-route |
| Pydantic Model | `BaseModel`, `Field(`, `model_validator` | pydantic-model |
| SQLAlchemy Model | `Base`, `Column(`, `relationship(` | sqlalchemy-model |
| Alembic Migration | `alembic/versions/`, `op.create_table` | alembic-migration |
| Repository | `*Repository`, `class *Repository` | data-repository |
| Service | `*Service`, `class *Service` | service-layer |
| Celery Task | `@celery.task`, `@shared_task` | celery-task |
| CLI Command | `@click.command`, `typer.Typer` | cli-command |
| Unit Test | `pytest`, `def test_*():`, `unittest` | pytest-test |
| Fixture | `@pytest.fixture`, `conftest.py` | pytest-fixture |

## Обязательные разделы результата

Добавь, если найдено:
- **Маршрутизаторы/представления**: конечные точки API
- **Модели/схемы**: модели данных (Pydantic, SQLAlchemy, Django)
- **Сервисы**: слой бизнес-логики
- **Репозитории**: слой доступа к данным
- **Миграции**: миграции Alembic и Django
- **Задачи**: Celery, фоновые задания

## Откуда брать команды
- `pyproject.toml` разделы инструментов
- README, документация и CI
- Обычные команды: `python manage.py`, `pytest`, `uvicorn`, `flask run`
- Добавляй только команды, которые есть в репозитории

## Основные пути
- `src/`, `app/`
- `tests/`
- `alembic/`, `migrations/`
- `templates/`, `static/` (для веб-приложения)


## Файл: references/react-native.md


# React Native

## Признаки платформы
- `package.json` с `react-native`
- `metro.config.js`
- `app.json` или `app.config.js` (Expo)
- `android/`, `ios/` каталоги
- `babel.config.js` с пресет metro

## Признаки многомодульного проекта
- Monorepo с `packages/`
- Несколько `app.json` файлов
- Рабочая область Nx с React Native

## Источники перед созданием навыка
- `package.json` (зависимости и команды)
- `app.json` или `app.config.js`
- `metro.config.js`
- `babel.config.js`
- `tsconfig.json`

## Что искать в кодовой базе

### Корневые каталоги исходников
- `src/`, `app/`

### Типовые слои и каталоги: зафиксируй найденные
`screens/`, `components/`, `navigation/`, `services/`, `hooks/`, `store/`, `api/`, `utils/`, `assets/`

### Признаки шаблонов

| Шаблон | Критерии обнаружения | Имя навыка |
|---------|-------------------|------------|
| Screen | `*Screen`, `export function *Screen` | rn-screen |
| Component | `export function *()`, `StyleSheet.create` | rn-component |
| Navigation | `createNativeStackNavigator`, `NavigationContainer` | rn-navigation |
| Hook | `use*`, `export function use*()` | rn-hook |
| Redux | `createSlice`, `configureStore` | redux-slice |
| Zustand | `create(`, `useStore` | zustand-store |
| React Query | `useQuery`, `useMutation` | react-query |
| Native Module | `NativeModules`, `TurboModule` | native-module |
| Async Storage | `AsyncStorage`, `@react-native-async-storage` | async-storage |
| SQLite | `expo-sqlite`, `react-native-sqlite-storage` | sqlite-storage |
| Push Notification | `@react-native-firebase/messaging`, `expo-notifications` | push-notification |
| Deep Link | `Linking`, `useURL`, `expo-linking` | deep-link |
| Animation | `Animated`, `react-native-reanimated` | rn-animation |
| Gesture | `react-native-gesture-handler`, `Gesture` | rn-gesture |
| Testing | `@testing-library/react-native`, `render` | rntl-test |

## Обязательные разделы результата

Добавь, если найдено:
- **Состав экранов**: каталоги в `screens/`
- **Структура навигации**: навигация стеком, вкладками и боковым меню
- **Управление состоянием**: Redux, Zustand, Context
- **Нативные модули**: собственный нативный код
- **Слой хранения**: AsyncStorage, SQLite, MMKV
- **Особенности платформы**: `*.android.tsx`, `*.ios.tsx`

## Откуда брать команды
- `package.json` команды
- README и документация
- Обычные команды: `npm run android`, `npm run ios`, `npx expo start`
- Добавляй только команды, которые есть в репозитории

## Основные пути
- `src/screens/`, `src/components/`
- `src/navigation/`, `src/store/`
- `android/app/`, `ios/*/`
- `assets/`


## Файл: references/react-web.md


# React (Web)

## Признаки платформы
- `package.json` с `react`, `react-dom`
- `vite.config.ts`, `next.config.js`, `craco.config.js`
- `tsconfig.json` или `jsconfig.json`
- `src/App.tsx` или `src/App.jsx`
- `public/index.html` (CRA)

## Признаки многомодульного проекта
- `pnpm-workspace.yaml`, `lerna.json`
- Несколько `package.json` в подкаталогах
- `packages/`, `apps/` каталоги
- Рабочая область Nx (`nx.json`)

## Источники перед созданием навыка
- `package.json` (зависимости и команды)
- `tsconfig.json` (пути и параметры компилятора)
- `vite.config.*`, `next.config.*`, `webpack.config.*`
- `.env.example` (переменные окружения)

## Что искать в кодовой базе

### Корневые каталоги исходников
- `src/`, `app/`, `pages/`

### Типовые слои и каталоги: зафиксируй найденные
`components/`, `hooks/`, `services/`, `utils/`, `store/`, `api/`, `types/`, `contexts/`, `features/`, `layouts/`

### Признаки шаблонов

| Шаблон | Критерии обнаружения | Имя навыка |
|---------|-------------------|------------|
| Component | `export function *()`, `export const * =` с JSX | react-component |
| Hook | `use*`, `export function use*()` | custom-hook |
| Context | `createContext`, `useContext`, `*Provider` | react-context |
| Redux | `createSlice`, `configureStore`, `useSelector` | redux-slice |
| Zustand | `create(`, `useStore` | zustand-store |
| React Query | `useQuery`, `useMutation`, `QueryClient` | react-query |
| Form | `useForm`, `react-hook-form`, `Formik` | form-handling |
| Router | `createBrowserRouter`, `Route`, `useNavigate` | react-router |
| API Client | `axios`, `fetch`, `ky` | api-client |
| Testing | `@testing-library/react`, `render`, `screen` | rtl-test |
| Storybook | `*.stories.tsx`, `Meta`, `StoryObj` | storybook |
| Styled | `styled-components`, `@emotion`, `styled(` | styled-component |
| Tailwind | `className="*"`, `tailwind.config.js` | tailwind-usage |
| i18n | `useTranslation`, `i18next`, `t()` | i18n-usage |
| Auth | `useAuth`, `AuthProvider`, `PrivateRoute` | auth-pattern |

## Обязательные разделы результата

Добавь, если найдено:
- **Состав компонентов**: каталоги в `components/`
- **Функциональные модули/страницы**: каталоги в `features/`, `pages/`
- **Управление состоянием**: Redux, Zustand, Context
- **Настройка маршрутизации**: React Router и страницы Next.js
- **Слой API**: экземпляры axios и обёртки fetch
- **Способ оформления**: CSS-модули, Tailwind и styled-components
- **Обработка форм**: react-hook-form, Formik

## Откуда брать команды
- `package.json` раздел команд
- README и документация
- Сценарии CI
- Обычные команды: `npm run dev`, `npm run build`, `npm test`
- Добавляй только команды, которые есть в репозитории

## Основные пути
- `src/components/`, `src/hooks/`
- `src/pages/`, `src/features/`
- `src/store/`, `src/api/`
- `public/`, `dist/`, `build/`


## Файл: references/ruby.md


# Ruby/Rails

## Признаки платформы
- `Gemfile`
- `Gemfile.lock`
- `config.ru`
- `Rakefile`
- `config/application.rb` (Rails)

## Признаки многомодульного проекта
- Несколько `Gemfile` в подкаталогах
- `engines/` каталог (движки Rails)
- `gems/` каталог (монорепозиторий)

## Источники перед созданием навыка
- `Gemfile` (зависимости)
- `config/database.yml`
- `config/routes.rb` (Rails)
- `.env.example`

## Что искать в кодовой базе

### Корневые каталоги исходников
- `app/`, `lib/`

### Типовые слои и каталоги: зафиксируй найденные
`controllers/`, `models/`, `services/`, `jobs/`, `mailers/`, `channels/`, `helpers/`, `concerns/`

### Признаки шаблонов

| Шаблон | Критерии обнаружения | Имя навыка |
|---------|-------------------|------------|
| Rails Controller | `< ApplicationController`, `def index` | rails-controller |
| Rails Model | `< ApplicationRecord`, `has_many`, `belongs_to` | rails-model |
| Rails Migration | `< ActiveRecord::Migration`, `create_table` | rails-migration |
| Service Object | `class *Service`, `def call` | service-object |
| Rails Job | `< ApplicationJob`, `perform_later` | rails-job |
| Mailer | `< ApplicationMailer`, `mail(` | rails-mailer |
| Channel | `< ApplicationCable::Channel` | action-cable |
| Serializer | `< ActiveModel::Serializer`, `attributes` | serializer |
| Concern | `extend ActiveSupport::Concern` | rails-concern |
| Sidekiq Worker | `include Sidekiq::Worker`, `perform_async` | sidekiq-worker |
| Grape API | `Grape::API`, `resource :` | grape-api |
| RSpec Test | `RSpec.describe`, `it "` | rspec-test |
| Factory | `FactoryBot.define`, `factory :` | factory-bot |
| Rake Task | `task :`, `namespace :` | rake-task |

## Обязательные разделы результата

Добавь, если найдено:
- **Контроллеры**: конечные точки HTTP
- **Модели**: связи ActiveRecord
- **Сервисы**: бизнес-логика
- **Задания**: фоновая обработка
- **Миграции**: схема базы данных

## Откуда брать команды
- `Gemfile` команды
- `Rakefile` задачи
- `bin/rails`, `bin/rake`
- README, документация и CI
- Добавляй только команды, которые есть в репозитории

## Основные пути
- `app/controllers/`, `app/models/`
- `app/services/`, `app/jobs/`
- `db/migrate/`
- `spec/`, `test/`
- `lib/`


## Файл: references/rust.md


# Rust

## Признаки платформы
- `Cargo.toml`
- `Cargo.lock`
- `src/main.rs` или `src/lib.rs`
- `target/` каталог

## Признаки многомодульного проекта
- `[workspace]` в `Cargo.toml`
- Несколько `Cargo.toml` в подкаталогах
- `crates/`, `packages/` каталоги

## Источники перед созданием навыка
- `Cargo.toml` (зависимости и возможности)
- `build.rs` (скрипт сборки)
- `rust-toolchain.toml` (набор инструментов)

## Что искать в кодовой базе

### Корневые каталоги исходников
- `src/`, `crates/*/src/`

### Типовые слои и каталоги: зафиксируй найденные
`handlers/`, `services/`, `models/`, `db/`, `api/`, `utils/`, `error/`, `config/`

### Признаки шаблонов

| Шаблон | Критерии обнаружения | Имя навыка |
|---------|-------------------|------------|
| Axum Handler | `axum::`, `Router`, `async fn handler` | axum-handler |
| Actix Route | `actix_web::`, `#[get]`, `#[post]` | actix-route |
| Rocket Route | `rocket::`, `#[get]`, `#[post]` | rocket-route |
| Service | `impl *Service`, `pub struct *Service` | rust-service |
| Repository | `*Repository`, `trait *Repository` | rust-repository |
| Diesel Model | `diesel::`, `Queryable`, `Insertable` | diesel-model |
| SQLx | `sqlx::`, `FromRow`, `query_as!` | sqlx-model |
| SeaORM | `sea_orm::`, `Entity`, `ActiveModel` | seaorm-entity |
| Error Type | `thiserror`, `anyhow`, `#[derive(Error)]` | error-type |
| CLI | `clap`, `#[derive(Parser)]` | cli-app |
| Async Task | `tokio::spawn`, `async fn` | async-task |
| Trait | `pub trait *`, `impl * for` | rust-trait |
| Unit Test | `#[cfg(test)]`, `#[test]` | rust-test |
| Integration Test | `tests/`, `#[tokio::test]` | integration-test |

## Обязательные разделы результата

Добавь, если найдено:
- **Обработчики/маршруты**: конечные точки API
- **Сервисы**: бизнес-логика
- **Модели/сущности**: структуры данных
- **Типы ошибок**: собственные ошибки
- **Миграции**: миграции diesel/sqlx

## Откуда брать команды
- `Cargo.toml` команды и псевдонимы
- `Makefile`, README и документация
- Обычные команды: `cargo build`, `cargo test`, `cargo run`
- Добавляй только команды, которые есть в репозитории

## Основные пути
- `src/`, `crates/`
- `tests/`
- `migrations/`
- `examples/`

---
Источник: prompts.chat. Текст: CC0 1.0 Universal. Русская версия: Kvantora.
