135 lines
3.9 KiB
Markdown
135 lines
3.9 KiB
Markdown
# 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-агент*
|