mirror of
https://github.com/oqyude/nixos.git
synced 2026-10-11 14:27:26 +03:00
- install.sh: .agent/src/ (PROTOCOLS, COMMANDS, TEMPLATES, install.sh/ps1, GUIDE)
- .temp/ добавлен в .gitignore
- .agent/checkpoints.json: phases.init=completed, project_type=existing
- .agent/rules/project-rules.md: R1-R5 (инварианты, ловушки, куда лезть, проверки)
- .agent/context/analysis-report.md: стек, архитектура, конвенции, кандидаты CI
- .agent/context/project-state.md: сжатый слепок (хосты, сервисы, ADR)
- .agent/roadmap/sources.md: открытые вопросы слоёв 0-11 (бывший invariants.md)
- .agent/tasks/manifest.{json,md}: 16 задач A1-F + 23 в backlog
- .agent/decisions/0001-sops-secrets-paths.md: ADR для инварианта S1
- AGENTS.md: metaagent-шапка + сжатая выжимка nixos (yaml frontmatter сохранён)
- удалены docs/arch/{map,invariants,todo}.md
96 lines
4.4 KiB
Markdown
96 lines
4.4 KiB
Markdown
# Протокол 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": "<timestamp>"
|
|
}
|
|
```
|
|
|
|
## Ветвление
|
|
|
|
| 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` обновлён
|