diff --git a/BRAINSTORM-TASKS-2026-02-20.md b/BRAINSTORM-TASKS-2026-02-20.md new file mode 100644 index 0000000..5ece9fc --- /dev/null +++ b/BRAINSTORM-TASKS-2026-02-20.md @@ -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) + +### 💡 На будущее +- Чеклист внутри задачи (вместо подзадач для мелочей) + +### ❌ Отклонено +- Шаблоны задач — не нужны +- Автостатус — не нужен +- Оценка сложности — не нужна +- Дедлайн — не нужен