/init-project — Генератор CLAUDE.md
<purpose> Автоматическое создание CLAUDE.md (онбординг AI в проект) на основе анализа репозитория. Фокус: QA-проекты (API тесты, UI тесты, нагрузочное тестирование). </purpose>Перед началом
Прочитай .claude/qa_agent.md.
Когда использовать
- •Новый QA-проект без CLAUDE.md
- •Миграция существующего проекта на AI-assisted workflow
- •Стандартизация CLAUDE.md по команде
Алгоритм выполнения
Verbosity Protocol
Structured Output Priority: Весь analysis идёт в артефакт (MD/HTML), не в чат.
Chat output (ограничения):
- •Brief Summary: max 5 строк (что нашли, сколько, итог)
- •Findings table: max 15 строк (топ по severity)
- •Полный отчёт:
📊 Полный отчёт: {path}+ открыть файл
Iterative steps: Не выводить прогресс по каждому файлу. Checkpoint только при:
- •Phase transition (Фаза N → Фаза N+1)
- •Blocker обнаружен
- •Завершение (SKILL COMPLETE)
Tools first:
- •Grep → table → report, без "Now I will grep..."
- •Read → analyze → report, без "The file shows..."
Post-Check: Inline перед SKILL COMPLETE (5-7 строк checklist), не отдельный файл.
Шаг 1: Сканирование проекта
Найди и проанализируй:
1. Build файлы: - build.gradle.kts / build.gradle → Kotlin/Java + зависимости - pom.xml → Maven + зависимости - package.json → Node.js + зависимости - requirements.txt / pyproject.toml → Python + зависимости 2. Структуру тестов: - src/test/ → стандартная JVM структура - tests/ → Python/JS структура - __tests__/ → Jest структура 3. Конфигурации: - allure.properties → Allure reporting - pytest.ini → pytest конфиг - jest.config.js → Jest конфиг 4. CI/CD: - .github/workflows/ → GitHub Actions - .gitlab-ci.yml → GitLab CI - Jenkinsfile → Jenkins
Обработка ошибок Шага 1
Build-файлы не найдены → Спроси пользователя:
Не удалось определить tech stack автоматически. Уточни вручную: - Язык/рантайм: (Kotlin / Java / Python / JS / Go / другой) - HTTP-клиент для тестов: - Фреймворк тестирования: - Reporting:
Структура тестов нестандартная (нет src/test/, tests/) → Попроси указать корневую папку тестов.
CI/CD-конфиги отсутствуют → Пропусти секцию CI в CLAUDE.md, отметь как TODO.
Шаг 1.5: Определение типа проекта
На основе Шага 1 определи тип:
| Признак | Тип | Включить в CLAUDE.md |
|---|---|---|
src/test/ существует | QA-проект | QA Skills (если .claude/skills/ есть) |
Нет src/test/, есть Helm/Terraform/k8s | Infra-проект | Architecture, Key Values |
| Оба признака | Смешанный | Все секции |
QA Skills секция: включать только если в целевом проекте существует .claude/skills/. Если .claude/skills/ отсутствует — секцию не добавлять.
Architecture секция: включать если проект — infra/backend (нет src/test/). Описать key design decisions из кода: компоненты, зависимости между ними, нетривиальные конфигурации.
CI/CD Flow: включать если найдены CI-конфиги (.github/workflows/, .gitlab-ci.yml, Jenkinsfile). Формат — диаграмма кодовым блоком.
Шаг 2: Определение Tech Stack
На основе зависимостей определи:
| Категория | Что искать | BANNED альтернативы |
|---|---|---|
| HTTP Client | ktor-client, requests, axios | retrofit, okhttp, urllib |
| Serialization | jackson, pydantic, zod | gson, moshi |
| Assertions | kotest, pytest, jest | junit assertEquals, unittest |
| Test Framework | junit5, pytest, jest | testng, nose |
| Reporting | allure | — |
Шаг 3: Генерация CLAUDE.md
Прочитай и используй шаблон из references/claude-md-template.md.
Заполни все placeholder'ы [xxx] данными из Шагов 1-2. Выбери нужный Tech Stack по языку проекта (секция "Tech Stack по языкам" в шаблоне).
Key Values: если в проекте есть конфигурационные файлы с нетривиальными дефолтами (values.yaml, .env.example, application.yml) — добавь секцию ## Key Values с объяснением критичных настроек (не очевидных из названия).
Architecture (для infra/backend-проектов): опиши key design decisions — компоненты, схему взаимодействия, нетривиальные детали реализации. Используй prose-формат.
Шаг 4: Валидация
Перед сохранением проверь:
- • Tech Stack соответствует реальным зависимостям
- • Commands работают (проверь наличие gradlew/npm/pytest)
- • Structure отражает реальные папки
- • Нет placeholder'ов вида
[xxx]или TODO в финальном файле - • Нет HTML-комментариев
<!-- -->из шаблона в финальном файле - • Заголовок
#= имя проекта (не "CLAUDE.md") - • QA Skills присутствует только если
.claude/skills/существует - • CI/CD Flow присутствует если найдены CI-конфиги
- • Architecture присутствует для infra/backend-проектов
Вывод
Сохрани результат в CLAUDE.md в корне проекта.
Пример диалога
User: /init-project AI: Сканирую проект... Найдено: - build.gradle.kts → Kotlin 1.9 - Зависимости: ktor-client, jackson, kotest, allure - Структура: src/test/kotlin/ - CI: .github/workflows/test.yml Генерирую CLAUDE.md... [Показывает сгенерированный файл] Сохранить в ./CLAUDE.md? (y/n)
Связанные файлы
- •Шаблон:
.claude/skills/init-project/references/claude-md-template.md - •Полный гайд:
docs/ai-files-handbook.md - •Примеры: существующий
CLAUDE.mdв проекте (если есть)