Задачи
Статусы, приоритеты, исполнители и то, как задача доходит от «записали» до «приняли».
Задача — единица работы. У неё есть статус, приоритет, исполнитель и результат, который кто-то принимает. Всё остальное в системе вращается вокруг этого.
Статусы
| Статус | Что значит |
|---|---|
| Бэклог | Задача записана, но в работу её ещё не отдавали. |
| Готова к работе | Можно брать. Агенту такая задача попадёт в очередь, человек берёт её сам. |
| В очереди | Стоит в очереди к диспетчеру и ждёт свободного агента нужной роли. |
| Выдана агенту | Диспетчер выдал задачу конкретному агенту и держит за ним аренду. |
| В работе | Кто-то работает прямо сейчас — агент или человек. |
| Ждёт человека | Агент задал вопрос и остановился. Пока нет ответа, работа не идёт. |
| Заблокирована | Мешает что-то извне: другая задача, доступ, решение. |
| На проверке | Результат сдан и ждёт, чтобы его приняли или вернули с правками. |
| Готово | Принято. Конечное состояние. |
| Не получилось | Не вышло: три возврата с правками подряд либо агент сдался. |
| Отменена | Передумали делать. Конечное состояние. |
Три статуса стоит различать, потому что их часто путают:
- В очереди — задача ждёт свободного агента. Никто ей не занят.
- Выдана агенту — диспетчер уже закрепил её за конкретным агентом. Пока аренда жива, другой агент её не возьмёт.
- Ждёт человека — агент задал вопрос и остановился. Это не поломка: работа честно стоит, пока не ответят.
Кто какой переход может сделать
Таблица ниже собрана из самого кода — из того массива, по которому система и принимает решения. Если в ней чего-то нет, значит система этого не позволит.
| Откуда | Куда | Кто может | Когда |
|---|---|---|---|
| Бэклог | Готова к работе | человек | Задачу признали готовой к работе. |
| Готова к работе | В очереди | платформа, человек | Ушла в очередь к агентам: либо сама, если исполнителем может быть агент, либо человек поставил её вручную. |
| Готова к работе | В работе | человек | Человек взял задачу себе. |
| В очереди | Выдана агенту | платформа | Диспетчер закрепил задачу за свободным агентом нужной роли. |
| Выдана агенту | В работе | агент, человек | Агент подтвердил, что начал работу. |
| Выдана агенту | В очереди | платформа, агент, человек | Агент отказался от задачи или пропал — она вернулась в очередь. |
| В работе | Ждёт человека | агент, платформа, человек | Агент задал вопрос или запросил подтверждение и ждёт ответа. |
| Ждёт человека | В работе | человек | Человек ответил, работа продолжается. |
| Ждёт человека | В очереди | платформа, человек | Ответ пришёл слишком поздно: агента, который спрашивал, уже нет. Задача вернулась в очередь. |
| В работе | Заблокирована | платформа, человек | Появилась блокирующая зависимость от другой задачи. |
| Заблокирована | Готова к работе | платформа, человек | Последняя блокирующая задача закрыта. |
| В работе | На проверке | агент, человек | Результат сдан и ждёт проверки. |
| В работе | Не получилось | агент, платформа, человек | Агент не справился либо исчерпаны попытки доработки. |
| В работе | В очереди | платформа, агент, человек | Агент пропал во время работы — задача вернулась в очередь. |
| На проверке | Готово | человек, платформа | Результат приняли — человек или автоприёмка по слиянию pull request. |
| На проверке | Готова к работе | человек | Ревьюер вернул задачу с правками. |
| Не получилось | Готова к работе | человек | Человек перезапустил задачу. |
| Бэклог | Отменена | человек | Отменили. |
| Готова к работе | Отменена | человек | Отменили. |
| В очереди | Отменена | человек | Отменили. |
| Заблокирована | Отменена | человек | Отменили. |
Из этого следует несколько правил, которые полезно знать заранее:
- Выдать задачу агенту может только диспетчер. Руками перевести задачу в «Выдана агенту» нельзя — иначе двое взялись бы за одно.
- Принимает и возвращает человек. Агент не может принять собственную работу.
- Возврат с правками не бесконечен. Третий возврат подряд уводит задачу в «Не получилось» вместо «Готова к работе». Платформа предупреждает об этом ещё до нажатия кнопки.
Приоритеты
От P0 (критично) до P3 (низкий). Приоритет влияет не только на глаза: диспетчер выдаёт агентам задачи в порядке приоритета, а внутри одного приоритета — в порядке очереди.
Исполнитель: человек, агент или любой
У задачи указывается, кто её должен делать:
| Исполнитель | Что происходит |
|---|---|
| Человек | Задача не попадёт в очередь агентов. Её берут руками. |
| Агент | Попадёт в очередь; агент нужной роли возьмёт её сам. |
| Любой | Может взять и агент, и человек. |
Отдельно указывается роль — разработчик, сисадмин, дизайнер. Агент получает задачи только своей роли.
Если у задачи не указана ни роль, ни конкретный исполнитель, отправить её в очередь нельзя: непонятно, кому выдавать. Платформа скажет об этом заранее и не даст нажать кнопку.
Результат и приёмка
Когда работа сделана, в задаче появляется Результат — отчёт в Markdown, ссылки на pull request и коммиты, статус тестов. Задача переходит «На проверке».
Результат может написать и человек: задача вполне может быть назначена на него. Любая правка результата попадает в ленту задачи — видно, кто и когда переписал.
Дальше проверяющий принимает или возвращает с правками. Возврат требует комментария — без объяснения кнопка не сработает: агент должен понять, что переделывать.
Незелёные проверки блокируют приёмку
Если к задаче привязан pull request и проверки GitHub по последнему коммиту не прошли, принять задачу не получится. Это не предупреждение, а отказ — так устроено намеренно. Подробнее: GitHub.
Зависимости
Задачу можно пометить как зависящую от другой («блокируется») или связанную с ней. Зависимости видны в самой задаче и на графе проекта.
Это не просто пометка: агент, берущий задачу, получает в задании результаты тех задач, от которых она зависит — «что сделано до». Так он не переспрашивает то, что уже решено.
Милстоуны
Милстоун — это срок с набором задач: спринт, релиз, этап. У него есть прогресс, который считается по закрытым задачам.
На странице милстоуна задачи только видно; управляют ими на доске и в списке задач проекта.