Brainstorm: task model, comments, voice, blocker detection, agent rejection

This commit is contained in:
Markov 2026-02-20 23:54:16 +01:00
parent 49aadf9c1d
commit e77ce9b9e3

View File

@ -0,0 +1,80 @@
# Брейншторм: Задачи (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)
### 💡 На будущее
- Чеклист внутри задачи (вместо подзадач для мелочей)
### ❌ Отклонено
- Шаблоны задач — не нужны
- Автостатус — не нужен
- Оценка сложности — не нужна
- Дедлайн — не нужен