# 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/`