81 lines
3.5 KiB
Markdown
81 lines
3.5 KiB
Markdown
# Брейншторм: Задачи (Tasks)
|
||
Дата: 2026-02-20
|
||
|
||
## Модель задачи
|
||
|
||
### Поля
|
||
- **id**: UUID
|
||
- **title**: string
|
||
- **description**: text (markdown)
|
||
- **type**: task | bug | epic | story
|
||
- **status**: backlog | todo | in_progress | in_review | done
|
||
- **priority**: critical | high | medium | low
|
||
- **labels**: string[] (bug, feature, refactor, docs...)
|
||
- **project_id**: UUID
|
||
- **parent_id**: UUID | null (бесконечная вложенность)
|
||
- **depends_on**: UUID[] (зависимости — нельзя начать пока не done)
|
||
- **assignee_slug**: string | null (кто делает)
|
||
- **reviewer_slug**: string | null (кто ревьюит)
|
||
- **time_spent**: int (минуты, для аналитики)
|
||
- **attachments**: file[] (файлы + ссылки на файлы в хранилище/git)
|
||
- **created_at**, **updated_at**
|
||
|
||
### Переходы статусов
|
||
Любой → любой. Без жёсткого flow. UI может подсвечивать нетипичные переходы.
|
||
|
||
## Комментарии
|
||
|
||
```
|
||
TaskComment:
|
||
id, task_id
|
||
author_type: human | agent | system
|
||
author_name, author_slug
|
||
content: text (markdown)
|
||
mentions: string[] # @slug упоминания
|
||
attachments: file[]
|
||
parent_comment_id: UUID | null # треды
|
||
voice_url: string | null # голосовое сообщение (оригинал)
|
||
created_at
|
||
```
|
||
|
||
- Mentions → уведомление агенту через WS (`task.comment` с `mentions`)
|
||
- Агент может отвечать на конкретный комментарий (threads)
|
||
|
||
## Принятые идеи
|
||
|
||
### ✅ Автообнаружение блокеров
|
||
Задача видит что зависимость застряла → пишет в чат/комментарий:
|
||
"Задача #15 блокирует меня, кто-нибудь займётся?"
|
||
|
||
### ✅ Задача-наблюдатель
|
||
Не на выполнение, а мониторинг: "следи за CI", "проверяй X раз в час".
|
||
Периодическая/фоновая задача.
|
||
|
||
### ✅ Задача порождает задачи
|
||
Агент в процессе работы создаёт дочерние задачи автоматически.
|
||
|
||
### ✅ Агент может отклонить задачу
|
||
"Не хватает контекста", "противоречит архитектуре", "задача слишком большая".
|
||
Агент не безмолвный исполнитель — может отказаться с обоснованием.
|
||
|
||
### ✅ Голосовые комментарии и задачи
|
||
- Голосовое сообщение → Thoth транскрибирует → текст + аудио сохраняются
|
||
- Можно записать голосовое прямо в задачу (поле voice)
|
||
- В чате тоже голосовые
|
||
|
||
### ✅ Связи между задачами (links)
|
||
Не только parent/child, но и:
|
||
- relates_to
|
||
- duplicates
|
||
- blocks / blocked_by
|
||
(Больше для человека, агенты используют depends_on)
|
||
|
||
### 💡 На будущее
|
||
- Чеклист внутри задачи (вместо подзадач для мелочей)
|
||
|
||
### ❌ Отклонено
|
||
- Шаблоны задач — не нужны
|
||
- Автостатус — не нужен
|
||
- Оценка сложности — не нужна
|
||
- Дедлайн — не нужен
|