Files
wiki/templates/DEV_WORKFLOW.md
2026-05-12 23:20:01 +03:00

168 lines
6.7 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# Dev Workflow — Процесс разработки через OpenClaw
> Адаптация методологии Superpowers под нашу архитектуру: Стрим (постановка) → Dev-агент (реализация) → Стрим (ревью)
---
## Роли
| Роль | Кто | Что делает |
|------|-----|-----------|
| **Product** | Слава | Идея, приоритеты, финальное ОК |
| **Architect** | Стрим | BRD, ТЗ по шаблону, ревью результата |
| **Implementer** | Dev-агент | Код, тесты, деплой |
| **Reviewer** | Стрим (+ опционально отдельный субагент) | Проверка соответствия ТЗ |
---
## Пайплайн
```
Слава: идея/запрос
Стрим: уточняющие вопросы (1-3 штуки, не больше)
Стрим: BRD (если фича крупная) или сразу ТЗ
Слава: ОК / правки
Стрим: заполняет DEV_TASK по шаблону
Dev-агент: реализация (sessions_spawn, agentId: "dev")
Стрим: ревью результата (spec compliance)
[если баги] → Dev-агент: фикс → Стрим: повторное ревью
Стрим: обновляет PROJECT.md, онтологию
Слава: финальная проверка
```
---
## Когда что использовать
### Быстрая задача (< 30 мин Dev-работы)
- Один файл, понятная правка, нет архитектурных решений
- **Процесс:** Стрим пишет короткое ТЗ прямо в `task` параметре `sessions_spawn`
- **Шаблон не нужен** — достаточно: цель + файлы + команда проверки
- Пример: «поменять opacity слоя с 0.55 на 0.7 в app.js строка 450»
### Средняя задача (30 мин — 2 часа)
- Несколько файлов, но понятная архитектура
- **Процесс:** Стрим заполняет DEV_TASK_TEMPLATE.md, передаёт Dev-агенту
- **Ревью:** Стрим проверяет по таблице Acceptance
- Пример: новая кнопка в UI + API endpoint + деплой
### Крупная задача (> 2 часов, новая фича)
- Много файлов, архитектурные решения, несколько компонентов
- **Процесс:** BRD → ТЗ по шаблону → разбивка на Task 1..N → Dev-агент получает по одной задаче
- **Ревью:** после каждого Task (не в конце!)
- **Опционально:** отдельный субагент-ревьюер для spec compliance
- Пример: terrain layer, PWA, новый режим роутинга
---
## Формат передачи задачи Dev-агенту
### Вариант A: Файл (средние/крупные задачи)
```python
sessions_spawn(
agentId="dev",
task="Реализуй задачу по ТЗ: /home/node/.openclaw/workspace/tasks/{project}/DEV_TASK_{feature}.md. Начни с Task 1. После каждого Task — отчитайся что сделано.",
mode="run"
)
```
### Вариант B: Inline (быстрые задачи)
```python
sessions_spawn(
agentId="dev",
task="""
Проект: enduro-trails
Сервер: slin@82.22.50.71
Задача: Поменять opacity гипсометрии с 0.55 на 0.7
Файл: /home/slin/enduro-trails/prototype/static/app.js
Строка: найти `'raster-opacity': 0.55` в source `terrain-hypso`
Заменить на: `'raster-opacity': 0.7`
Деплой:
docker cp /home/slin/enduro-trails/prototype/static/app.js prototype-enduro-trails-1:/app/static/app.js
Проверка:
curl -s https://openclaw.mva154.duckdns.org/enduro/static/app.js | grep "raster-opacity"
# Должно быть 0.7
""",
mode="run"
)
```
---
## Ревью после реализации
### Что проверяет Стрим:
1. **Spec compliance** — всё ли из ТЗ реализовано? Ничего лишнего не добавлено?
2. **Деплой** — код на сервере, контейнер работает, URL отвечает?
3. **Edge cases** — что будет если [нет данных / таймаут / мобильный]?
### Когда запускать отдельного ревьюера:
- Задача > 3 Tasks
- Затрагивает > 5 файлов
- Есть сложная логика (роутинг, алгоритмы)
```python
sessions_spawn(
task="""
Ты — ревьюер. Проверь реализацию на соответствие ТЗ.
ТЗ: [путь к DEV_TASK]
Реализация: [пути к изменённым файлам]
Проверь:
1. Все задачи из ТЗ выполнены?
2. Нет лишнего кода, не описанного в ТЗ?
3. Команды проверки из ТЗ проходят?
Формат ответа:
✅ Task N — ОК / ❌ Task N — [что не так]
""",
mode="run"
)
```
---
## Принципы (из Superpowers, адаптированные)
| Superpowers | Наша адаптация |
|-------------|---------------|
| TDD обязателен | Тесты для бэкенда/логики. Для UI — acceptance checks |
| Git worktrees | Не используем. Деплой через docker cp / SSH |
| Fresh subagent per task | ✅ Уже делаем через sessions_spawn |
| No placeholders в плане | ✅ Точный код, точные пути, точные команды |
| Spec review + Code review | Spec review — всегда. Code review — для крупных задач |
| Continuous execution | Dev работает автономно внутри одного Task |
| YAGNI | Не добавлять фичи, которых нет в ТЗ |
---
## Антипаттерны
**Стрим пишет код сама** — никогда, даже «быстрый фикс»
**ТЗ без команды проверки** — Dev не знает когда он закончил
**«Сделай как в прошлый раз»** — Dev не помнит прошлый раз, повтори контекст
**Несколько крупных Tasks в одном spawn** — контекст переполнится
**Ревью через неделю** — проверять сразу после выполнения
---
*Создано: 2026-05-12 | Автор: Стрим*