# Протокол 01: Анализ репозитория (ANALYSE) ## Цель Составить полную картину целевого репозитория: тип проекта, стек, архитектура, конвенции, состояние тестов. Создать начальный слепок проекта. ## Вход - Целевой репозиторий - `.agent/checkpoints.json` (фаза analyse: pending) - `.agent/rules/project-rules.md` — прочитать первым ## Шаги ### 1.1. Прочитать правила проекта Прежде чем что-либо делать — прочитать `.agent/rules/project-rules.md`. Если есть правила, применить их к фазе. ### 1.2. Определить тип проекта Просканировать корень репозитория: - **`existing`** — есть исходный код, тесты, система сборки (`.py`, `.js`, `.ts`, `.rs`, `.go` и т.д. помимо конфигов и README). - **`greenfield`** — пусто или только README/LICENSE/.gitignore. - **`scaffold`** — есть базовая структура (`pyproject.toml`/`package.json`), но нет значимого кода. Записать тип в `checkpoints.json → project_type`. ### 1.3. Сканировать проект Для `existing` / `scaffold` собрать: - **README** — описание, инструкции по сборке/тестам. - **Лицензия** — какой LICENSE. - **CI/CD** — `.github/workflows/`, `.gitlab-ci.yml`, `Jenkinsfile`, `Makefile`. - **Стек** — язык, фреймворк, БД, тестовый раннер, пакетный менеджер, линтер. - **Структура** — `tree -L 3` (не более 3 уровней). - **Архитектурный паттерн** — MVC, модульный монолит, микросервисы, слоистая. - **Ключевые модули/пакеты** — список с краткой ответственностью. - **Конвенции** — стиль, именование, обработка ошибок, логирование. - **Тесты** — где лежат, как запускаются, текущее состояние (запустить). - **Сборка** — выполняется ли проект. Для `greenfield` — извлечь требования из README: - Функциональные требования (user stories, сценарии). - Нефункциональные (стек, производительность, безопасность). - Бизнес-контекст (зачем, для кого). - Сомнительные / неясные требования (вопросы пользователю). ### 1.4. Создать analysis-report Записать `.agent/context/analysis-report.md` по шаблону `TEMPLATES/analysis-report.md`. Заполнить соответствующие секции. ### 1.5. Создать начальный project-state Создать `.agent/context/project-state.md` по шаблону `TEMPLATES/project-state.md`. Это **начальный** слепок. В дальнейшем обновляется в фазе METASTATE. Заполнить: - Тип проекта - Краткая архитектура (из шага 1.3) - Ключевые модули и их статус - Tech stack - Статус тестов ### 1.6. Обновить checkpoints ```json { "phases": { "analyse": "completed" }, "project_type": "existing | greenfield | scaffold", "last_updated": "" } ``` ## Ветвление | project_type | Следующая фаза | |---|---| | `existing` | ROADMAP → DECOMPOSITION (DESIGN пропускается) | | `greenfield` | ROADMAP → DESIGN → DECOMPOSITION | | `scaffold` | ROADMAP → DESIGN → DECOMPOSITION | ## Выход - `.agent/context/analysis-report.md` - `.agent/context/project-state.md` (начальный) - Обновлённый `checkpoints.json` ## Критерии завершения - [ ] Тип проекта определён - [ ] `analysis-report.md` содержит все соответствующие секции - [ ] `project-state.md` создан с начальным слепком - [ ] `checkpoints.json` обновлён