Типовые рабочие процессы задач
Ниже — три сценария. Каждый шаг описан как действие и его результат. Состояния и переходы соответствуют конечному автомату из src/raytsystem/tasking.py.
Пример 1. Простой поток inbox → done через UI
Подходит для отдельной задачи без зависимостей.
- Действие. В разделе «Задачи» нажмите «Новая задача», введите название и приоритет, подтвердите.
Результат. Задача появляется в колонке «Входящие» (
inbox), доска получает новое поколение. - Действие. На карточке нажимайте кнопку перехода — она ведёт по прямому маршруту. Результат. Задача последовательно проходит «Запланировано» → «Готово» → «В работе» → «На проверке».
- Действие. Из «На проверке» нажмите переход ещё раз.
Результат. Задача переходит в «Завершено» (
done) — финальное состояние. Её неизменяемая история остаётся доступной.
Интерфейс сам подставляет ожидаемое поколение и ключ идемпотентности на каждом шаге.
Пример 2. Поток с зависимостями
Задача B должна начаться только после завершения задачи A.
- Действие. Создайте задачу A и доведите её до конца.
Результат. A в состоянии
done. - Действие. Создайте задачу B, указав A в зависимостях. Важно: зависимость должна уже существовать на доске, иначе создание отклоняется.
Результат. B создана в
inbox. - Действие. Попробуйте перевести B в
readyилиrunning, пока A ещё неdone. Результат. Переход отклоняется: «Task dependencies are not complete». Дождитесь завершения A. - Действие. Когда A в
done, переведите B вready, затем вrunning. Результат. Переходы проходят, потому что все зависимости завершены.
Правило проверяется и при создании, и при переходе в ready/running (см. жизненный цикл).
Пример 3. Поток с проверкой (review) через CLI
Показывает возврат на доработку и завершение.
-
Действие. Создайте задачу и доведите до состояния «в работе».
uv run raytsystem task create "Обновить раздел документации" --idempotency-key doc-01uv run raytsystem task list --json # прочитать task_id и tgen поколенияuv run raytsystem task transition task_XXXX planned --idempotency-key doc-02 --expected-generation tgen_Auv run raytsystem task transition task_XXXX ready --idempotency-key doc-03 --expected-generation tgen_Buv run raytsystem task transition task_XXXX running --idempotency-key doc-04 --expected-generation tgen_CРезультат. После каждого перехода печатается новое поколение (
tgen_...) — используйте его в следующей команде. -
Действие. Отправьте задачу на проверку.
uv run raytsystem task transition task_XXXX review --idempotency-key doc-05 --expected-generation tgen_DРезультат. Задача в «На проверке».
-
Действие (доработка). Если нужны правки, верните из review в running, затем снова в review. Результат. Разрешённый переход
review → runningдаёт цикл доработки; история каждого шага неизменяема. -
Действие. Когда всё готово, завершите.
uv run raytsystem task transition task_XXXX done --idempotency-key doc-06 --expected-generation tgen_EРезультат. Задача в
done.
Частые ошибки
- Конфликт поколений. Забыли обновить
--expected-generationпосле предыдущего перехода — перечитайтеtask listи повторите (подробнее). - Переход отклонён. Целевое состояние не разрешено из текущего или зависимости не завершены (диагностика).
- Повтор команды. Тот же
--idempotency-keyдля того же действия безопасен (вернётся прежний результат какno_op); тот же ключ для другого действия будет отклонён.
Связанные страницы
Источники истины
web/src/features/Tasks.tsxsrc/raytsystem/tasking.pysrc/raytsystem/cli.py