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