metaagent updated
This commit is contained in:
@@ -0,0 +1,126 @@
|
||||
# Протокол 04: Настройка окружения (SETUP)
|
||||
|
||||
## Цель
|
||||
|
||||
Обеспечить рабочее окружение, в котором исполнительный агент может сразу выполнять задачи.
|
||||
|
||||
## Вход
|
||||
|
||||
- `.agent/analysis-report.md`
|
||||
- `.agent/design-report.md` (опционально, для greenfield)
|
||||
- `.agent/task-manifest.json`
|
||||
- `.agent/checkpoints.json` (фаза environment: pending)
|
||||
|
||||
## Поведение в зависимости от типа проекта
|
||||
|
||||
Фаза SETUP работает по-разному для `existing` и `greenfield/scaffold` проектов.
|
||||
|
||||
---
|
||||
|
||||
## Ветка A: existing/scaffold проект
|
||||
|
||||
### 4A.1. Зависимости
|
||||
|
||||
- Установить все зависимости согласно документации проекта
|
||||
- Если есть `requirements.txt`, `pyproject.toml`, `package.json`, `Cargo.toml` и т.д. — выполнить установку
|
||||
- Если в проекте используется виртуальное окружение (venv, .venv, conda) — активировать или создать
|
||||
- Если в проекте используется Docker — проверить, что образ собирается
|
||||
|
||||
**Правило:** если установка зависимостей требует нестандартных шагов, описанных в README — строго следовать им. Если шаги не описаны — запросить у пользователя.
|
||||
|
||||
### 4A.2. Конфигурация
|
||||
|
||||
- Проверить наличие конфигурационных файлов (`.env.example`, `.env`, `config.yaml`)
|
||||
- Если есть `.env.example`, скопировать в `.env` с настройками по умолчанию
|
||||
- Если проекту требуется БД — проверить строку подключения, при необходимости создать БД или использовать SQLite для разработки
|
||||
- Настроить pre-commit хуки, если они есть в проекте
|
||||
|
||||
### 4A.3. Линтеры и форматтеры
|
||||
|
||||
- Запустить линтер на всём проекте: записать результат
|
||||
- Если линтер выдаёт ошибки — не исправлять, только зафиксировать в отчёте
|
||||
- Убедиться, что исполнительный агент может запускать линтер (записать команду)
|
||||
|
||||
### 4A.4. Baseline-тесты
|
||||
|
||||
- Запустить все тесты проекта
|
||||
- Записать в `.agent/baseline-test-report.log`:
|
||||
- Команда запуска
|
||||
- Общее количество тестов
|
||||
- Пройдено / упало / пропущено
|
||||
- Время выполнения
|
||||
- Список упавших тестов (если есть)
|
||||
- Если тесты не проходят — указать это в отчёте, но **не исправлять**
|
||||
|
||||
### 4A.5. Сборка проекта
|
||||
|
||||
- Выполнить полную сборку/компиляцию проекта
|
||||
- Записать результат (успех/ошибка с логом)
|
||||
- Сборка должна проходить без ошибок. Если не собирается — остановиться, сообщить пользователю.
|
||||
|
||||
---
|
||||
|
||||
## Ветка B: greenfield проект
|
||||
|
||||
### 4B.1. Инициализация проекта
|
||||
|
||||
- Создать базовую структуру директорий согласно design-report.md
|
||||
- Инициализировать пакетный менеджер:
|
||||
- Python: `pyproject.toml` (poetry, pdm, hatch) или `requirements.txt`
|
||||
- Node: `package.json` и `npm init` / `yarn init`
|
||||
- Go: `go mod init`
|
||||
- Rust: `cargo init`
|
||||
- Настроить базовый конфиг: `.env.example`, `config/` и т.д.
|
||||
- Настроить линтер/форматтер: `ruff`, `eslint`, `gofmt` и т.д.
|
||||
|
||||
### 4B.2. Scaffold-код
|
||||
|
||||
Создать пустые заглушки для модулей, описанных в design-report:
|
||||
|
||||
```python
|
||||
# app/services/cashflow.py — заглушка
|
||||
class CashflowService:
|
||||
"""TBD — реализация в задаче T3"""
|
||||
pass
|
||||
```
|
||||
|
||||
Назначение: фиксировать структуру, чтобы исполнительный агент не думал о ней, а сразу писал реализацию.
|
||||
|
||||
### 4B.3. Установка зависимостей
|
||||
|
||||
- Установить базовые зависимости согласно стеку из design-report
|
||||
- Если проект использует БД — установить драйвер/ORM
|
||||
- Если проект использует API — установить фреймворк (FastAPI, Express и т.д.)
|
||||
- Установить dev-зависимости: линтер, тестовый раннер, type stubs
|
||||
|
||||
### 4B.4. Базовые тесты (scaffold)
|
||||
|
||||
- Создать пустой тестовый файл для каждого модуля
|
||||
- Настроить тестовый раннер (pytest, jest и т.д.)
|
||||
- Записать в `.agent/baseline-test-report.log`: "0 tests — greenfield, scaffold готов"
|
||||
|
||||
### 4B.5. Проверка сборки
|
||||
|
||||
- Убедиться, что проект импортируется без ошибок
|
||||
- Убедиться, что линтер проходит (без кода он должен проходить)
|
||||
- Убедиться, что тестовый раннер запускается (0 tests, exit code 0)
|
||||
|
||||
---
|
||||
|
||||
## Выход
|
||||
|
||||
- Работоспособное окружение / инициализированный проект
|
||||
- `.agent/baseline-test-report.log` — результат прогона тестов
|
||||
- `.agent/setup-report.log` — лог установки зависимостей и сборки
|
||||
|
||||
Обновить checkpoints.json: `phases.environment = "completed"`.
|
||||
|
||||
## Критерии завершения фазы
|
||||
|
||||
- [ ] Зависимости установлены / проект инициализирован
|
||||
- [ ] Проект собирается / импортируется без ошибок
|
||||
- [ ] Baseline-тесты запущены, результат записан
|
||||
- [ ] `.agent/baseline-test-report.log` и `.agent/setup-report.log` созданы
|
||||
- [ ] checkpoints.json обновлён
|
||||
|
||||
Если проект не собирается — **фаза считается проваленной**, checkpoints.json отмечает `phases.environment = "failed"`, управление возвращается пользователю.
|
||||
Reference in New Issue
Block a user