Files
nixos/.agent/src/PROTOCOLS/01_ANALYSE.md
T
oqyude 16644fcc0b metaagent: install v3.0.0, migrate docs/arch/* → .agent/
- 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
2026-10-09 20:37:14 +03:00

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 обновлён