auto-sync: 2026-05-12 23:20:01

This commit is contained in:
Stream
2026-05-12 23:20:01 +03:00
parent 4946502720
commit ac3f8839d5
3 changed files with 586 additions and 0 deletions

View File

@@ -0,0 +1,134 @@
# DEV TASK: [Название фичи/задачи]
**Статус:** Ready for dev
**Проект:** [slug проекта]
**Фаза:** [номер]
**BRD:** [ссылка на BRD если есть]
---
## Цель
> Одно предложение: что должно работать после выполнения этой задачи.
## Архитектура
> 2-3 предложения: подход, ключевые решения, почему именно так.
## Стек / Зависимости
- [Язык/фреймворк]
- [Библиотеки]
- [Внешние сервисы]
---
## Инфраструктура
| Параметр | Значение |
|----------|----------|
| Сервер | `user@host` |
| Рабочая директория | `/path/to/project/` |
| Деплой | [команды / скрипт] |
| URL | [где проверять результат] |
---
## Файловая карта
> Какие файлы создаются/меняются и за что отвечают.
| Действие | Файл | Ответственность |
|----------|------|-----------------|
| Создать | `path/to/new_file.py` | [что делает] |
| Изменить | `path/to/existing.js:50-80` | [что меняется] |
| Тест | `tests/test_feature.py` | [что проверяет] |
---
## Задачи
### Task 1: [Компонент / Шаг]
**Файлы:**
- Создать: `exact/path/file.py`
- Изменить: `exact/path/existing.js`
**Шаги:**
- [ ] **1.1** Написать [что именно]
```python
# Точный код или псевдокод с достаточной детализацией
def example():
pass
```
- [ ] **1.2** Проверить
```bash
# Точная команда проверки
curl -s http://localhost:5558/api/endpoint | jq .status
# Ожидаемый результат: "ok"
```
- [ ] **1.3** Задеплоить
```bash
# Точные команды деплоя
docker cp /path/file.py container:/app/file.py
docker restart container
```
**Критерий готовности:** [Что должно быть true чтобы задача считалась выполненной]
---
### Task 2: [Следующий компонент]
**Файлы:**
- Создать: `...`
**Шаги:**
- [ ] **2.1** ...
- [ ] **2.2** ...
**Критерий готовности:** ...
---
## Проверка (Acceptance)
> Финальные проверки после всех задач. Что Стрим проверит перед тем как закрыть задачу.
| # | Проверка | Команда / Действие | Ожидаемый результат |
|---|----------|-------------------|---------------------|
| 1 | [что проверяем] | `curl ...` | HTTP 200, JSON с полем X |
| 2 | [визуальная] | Открыть URL | Видно Y без ошибок |
| 3 | [edge case] | [действие] | [результат] |
---
## Ограничения и контекст
> Что Dev-агент ДОЛЖЕН знать, чтобы не наступить на грабли.
- ⚠️ [Граблина 1 — например: docker cp ПОСЛЕ рестарта, не до]
- ⚠️ [Граблина 2 — например: SSH через ssh2 модуль, не бинарник]
- 🚫 [Чего НЕ делать — например: не трогать nginx конфиг]
---
## Деплой-чеклист
- [ ] Код написан и работает локально
- [ ] Файлы загружены на сервер
- [ ] Контейнер перезапущен (если нужно)
- [ ] docker cp выполнен (если статика)
- [ ] Проверка по URL — работает
- [ ] Нет ошибок в логах (`docker logs container --tail 50`)
---
*Создано: YYYY-MM-DD | Автор ТЗ: Стрим | Исполнитель: Dev-агент*

167
templates/DEV_WORKFLOW.md Normal file
View File

@@ -0,0 +1,167 @@
# 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 | Автор: Стрим*