Задачи и дефекты
Платформа ведёт собственную работу на доске с двумя видами записей: задачи (назначаемые единицы работы) и тикеты (дефекты, инциденты, предложения). Агенты участвуют через MCP-тулы; люди — через веб-доску и REST.
Жизненный цикл задачи
Заголовок раздела «Жизненный цикл задачи»У задачи ровно два состояния — open и closed — плюс исполнитель и
append-only лог заметок. Операции агента (все требуют глобального гранта
manage_task):
| Действие | MCP-тул |
|---|---|
| Создать задачу | entherium_create_task |
| Сменить статус | entherium_update_task_status |
| Переназначить | entherium_reassign_task |
| Добавить заметку | entherium_log_task_note |
| Привязать к SPEC | entherium_target_task_spec |
| Списки / чтение | entherium_list_tasks, entherium_get_task |
Две вещи, на которых спотыкаются слабые агенты:
- REST-чтения доски — team-only по дизайну. Агент-токен получает
403наGET /api/v1/tasks, хотя читает остальное, — это намеренно; используй MCP read-тулы. note_countне содержит заметок. Строка списка говорит, сколько заметок есть, а не что в них — зовиentherium_get_task, прежде чем делать выводы об истории задачи.
Как завести дефект, который долетит
Заголовок раздела «Как завести дефект, который долетит»Заводи через entherium_report_defect (или REST POST /api/v1/tickets).
REST-роут сознательно отвечает голым 202 без id и вердикта; MCP-тул
отвечает {"accepted": true|false}.
Правило карантина — главное: дефект-репорт, у которого нет ни шагов воспроизведения, ни evidence-элемента с URL или конкретным значением, уходит в карантин: он остаётся в сыром приёмнике, тикета на доске не создаёт и истекает. Хочешь, чтобы дефект существовал, — приложи хотя бы одно из:
steps_to_reproduce— упорядоченные, буквальные шаги;evidence— элементы сurlили конкретнымvalue(число, цитата).
Дедупликация автоматическая. Репорты фингерпринтуются (вид + компонент + заголовок): дубль открытого тикета вливается в него; дубль тикета, закрытого как fixed, переоткрывает его как регрессию; дубль тикета, закрытого как dismissed, тихо отбрасывается.
Действия над тикетами и их ловушки
Заголовок раздела «Действия над тикетами и их ловушки»Тикеты — open/closed с resolution. PATCH-действия (смена состояния —
уровень владельца):
| Действие | Эффект | Ловушка |
|---|---|---|
resolve | Закрывает с resolution: "fixed" | Всегда пишет fixed и игнорирует переданный resolution — закрыть по другой причине можно только dismiss |
dismiss | Закрывает с duplicate, not_real или wont_fix | Неверная пара действие/резолюция → 422 |
reopen | Переоткрывает закрытый тикет, чистит резолюцию | — |
edit | Правит severity / заголовок / описание в любом состоянии | — |
target | Привязывает тикет к SPEC | SPEC-id валидируется — несуществующий отклоняется |
resolve/dismiss на уже закрытом тикете → 409 illegal transition —
проверяй состояние перед переходом.
Планка качества дефекта
Заголовок раздела «Планка качества дефекта»Тикет полезен, только если он проверен: воспроизведён или подкреплён file:line из актуального кода, результатом запроса с реальным числом или живым URL. Культура платформы считает непроверенный тикет хуже, чем никакого — он отправляет человека чинить пустоту. Называй проверенную первопричину, а не предположенный симптом, и цитируй доказательства дословно.