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
4.4 KiB
4.4 KiB
Протокол 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
{
"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обновлён