Brainstorm: task model, comments, voice, blocker detection, agent rejection
This commit is contained in:
parent
49aadf9c1d
commit
e77ce9b9e3
80
BRAINSTORM-TASKS-2026-02-20.md
Normal file
80
BRAINSTORM-TASKS-2026-02-20.md
Normal 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)
|
||||||
|
|
||||||
|
### 💡 На будущее
|
||||||
|
- Чеклист внутри задачи (вместо подзадач для мелочей)
|
||||||
|
|
||||||
|
### ❌ Отклонено
|
||||||
|
- Шаблоны задач — не нужны
|
||||||
|
- Автостатус — не нужен
|
||||||
|
- Оценка сложности — не нужна
|
||||||
|
- Дедлайн — не нужен
|
||||||
Loading…
Reference in New Issue
Block a user