🧭 Что это
Codebase Onboarding & Intelligence — это автоматизированный инструмент для анализа незнакомого репозитория и генерации структурированного руководства по его устройству. Он помогает разработчику быстро разобраться в проекте: понять архитектуру, найти ключевые точки входа, выявить принятые в команде соглашения (code style, naming, Git workflow) и создать или дополнить файл CLAUDE.md — контекстный файл для Claude Code. Skill особенно полезен при первом знакомстве с репозиторием, при переходе в новый проект или при настройке Claude Code в существующей кодовой базе.
⚙️ Как работает
Skill выполняет анализ в четыре последовательных этапа, от поверхностного сканирования до генерации артефактов.
🔍 Этап 1: Разведка (Reconnaissance)
На этом этапе skill собирает «сырую» информацию о проекте, не читая каждый файл. Используются glob-паттерны и grep для быстрого обнаружения:
- Пакетные манифесты:
package.json, go.mod, Cargo.toml, pyproject.toml, pom.xml, build.gradle, Gemfile, composer.json, mix.exs, pubspec.yaml.
- Фреймворки: конфигурационные файлы Next.js (
next.config.*), Nuxt (nuxt.config.*), Angular (angular.json), Vite (vite.config.*), а также типовые структуры Django, Flask, FastAPI, Rails.
- Точки входа:
main.*, index.*, app.*, server.*, cmd/, src/main/.
- Структура директорий: первые два уровня дерева каталогов (исключая
node_modules, vendor, .git, dist, build, __pycache__, .next).
- Инструменты и конфигурация: линтеры (
.eslintrc*, .prettierrc*), TypeScript (tsconfig.json), сборка (Makefile, Dockerfile, docker-compose*), CI (github/workflows/, .env.example).
- Тестовая структура:
tests/, test/, __tests__/, *_test.go, *.spec.ts, *.test.js, конфиги pytest.ini, jest.config.*, vitest.config.*.
🗺️ Этап 2: Карта архитектуры (Architecture Mapping)
На основе собранных данных skill определяет:
- Технологический стек: язык, фреймворк, база данных, ORM, сборщик, CI/CD.
- Архитектурный паттерн: монолит, монорепозиторий, микросервисы, serverless.
- Стиль API: REST, GraphQL, gRPC, tRPC.
- Назначение ключевых директорий: например,
src/components/ → UI-компоненты, src/api/ → обработчики маршрутов, src/db/ → модели и миграции.
- Путь запроса: от точки входа (роутер, контроллер) через валидацию (middleware, guards) и бизнес-логику (сервисы, use cases) до базы данных (ORM, raw queries).
📐 Этап 3: Детекция соглашений (Convention Detection)
Skill выявляет негласные правила, принятые в проекте:
- Именование файлов:
kebab-case, camelCase, PascalCase, snake_case.
- Именование компонентов/классов: паттерны, используемые в коде.
- Именование тестов:
*.test.ts, *.spec.ts, *_test.go.
- Обработка ошибок:
try/catch, Result-типы, коды ошибок.
- Внедрение зависимостей: DI-контейнеры или прямые импорты.
- Управление состоянием: Redux, MobX, Context API и т.д.
- Асинхронность: callbacks, Promises, async/await, channels.
- Git-соглашения: стиль именования веток, сообщений коммитов, workflow PR (squash merge, merge commit, rebase). Если история Git недоступна (например,
git clone --depth 1), skill честно сообщает об этом.
📄 Этап 4: Генерация артефактов (Artifact Generation)
Skill создаёт два документа:
-
Руководство по онбордингу (Onboarding Guide) — структурированный Markdown-документ, включающий:
- Обзор проекта (2–3 предложения).
- Таблицу технологического стека.
- Описание архитектуры и связей между компонентами.
- Список ключевых точек входа (API-роуты, страницы, конфиги).
- Карту директорий.
- Жизненный цикл запроса.
- Соглашения (именование, обработка ошибок, тестирование, Git).
- Типовые команды (
npm run dev, npm test, npm run lint, npx prisma migrate dev, npm run build).
- Таблицу «Куда смотреть, если нужно...» (добавить API-эндпоинт, UI-страницу, таблицу БД, тест, изменить конфиг).
-
Файл CLAUDE.md — контекстный файл для Claude Code, содержащий:
- Технологический стек.
- Стиль кода (именование, паттерны).
- Команды для тестирования, сборки, линтинга.
- Структуру проекта.
- Соглашения (коммиты, PR, обработка ошибок).
Если CLAUDE.md уже существует, skill не перезаписывает его, а дополняет, явно помечая новые или изменённые секции.
🎯 Когда использовать
- При первом открытии проекта в Claude Code — чтобы сразу получить контекст и начать продуктивно работать.
- При переходе в новый репозиторий — для быстрого понимания архитектуры и правил.
- Когда нужно сгенерировать или обновить
CLAUDE.md — для поддержания актуального контекста.
- По запросу «помоги разобраться в коде» — skill выполнит полный анализ и выдаст руководство.
- По запросу «проведи онбординг» — аналогично.
⚠️ Важно знать
- Не читает всё подряд: разведка использует glob и grep, а не полный обход файлов. Это экономит время и токены. Только при неоднозначных сигналах skill может выборочно прочитать несколько файлов.
- Проверяет, а не угадывает: если конфиг фреймворка найден, но код использует другой фреймворк, приоритет у кода.
- Уважает существующий
CLAUDE.md: не заменяет, а дополняет его.
- Держит руководство кратким: оно должно просматриваться за 2 минуты. Детали остаются в коде.
- Честно сообщает о неопределённости: если skill не может уверенно определить, например, тестовый раннер, он скажет «не удалось определить», а не выдаст ложное предположение.
- Избегает антипаттернов: не генерирует
CLAUDE.md длиннее 100 строк, не перечисляет все зависимости, не описывает очевидные директории (src/), не копирует README.
Примеры использования
Пример 1: Первый вход в новый репозиторий
Пользователь: «Проведи онбординг по этому репозиторию»
Skill: выполняет все 4 этапа → выводит руководство в чат и создаёт/обновляет CLAUDE.md в корне проекта.
Пример 2: Генерация CLAUDE.md для существующего проекта
Пользователь: «Сгенерируй CLAUDE.md для этого проекта»
Skill: выполняет этапы 1–3, пропускает генерацию руководства, создаёт только CLAUDE.md.
Пример 3: Обновление существующего CLAUDE.md
Пользователь: «Обнови CLAUDE.md в соответствии с текущими соглашениями»
Skill: читает существующий CLAUDE.md, выполняет этапы 1–3, объединяет новые находки с существующим содержимым, явно помечая добавленные секции.
# Пример типовых команд, которые могут быть обнаружены
npm run dev # запуск dev-сервера
npm test # запуск тестов
npm run build # production-сборка
Комментарии
Комментариев пока нет. Будьте первым.