istok task

Создание, список, просмотр, комментарии, взятие в работу и завершение задач, а также зависимости между ними.

istok task работает с задачами текущего проекта. Что такое задачи и запуски и как они связаны, читайте в разделе Задачи и запуски.

В CLI у задач есть номера внутри проекта: #12 — это задача 12 текущего проекта.

Команды

Команда Назначение
create Создать задачу в текущем проекте.
list Показать активные задачи.
show ID Показать задачу и её историю.
ready Показать задачи, готовые к взятию в работу.
comment ID Добавить комментарий к задаче.
progress ID Записать значимый прогресс.
dependency add TASK Добавить блокирующую зависимость.
dependency remove TASK Убрать блокирующую зависимость.
claim ID Взять готовую задачу в работу и начать запуск.
done ID Завершить задачу.

Все команды задач принимают --json и --database PATH.

Создать задачу

istok task create \
  --title "Return 404 for missing orders" \
  --description "GET /orders/{id} returns 500 when the order does not exist." \
  --acceptance-criteria "Missing orders return 404 with an error body." \
  --notes "Check the repository error mapping first."
Флаг Назначение
--title Обязательный. Название задачи.
--description Что нужно сделать.
--acceptance-criteria Как понять, что задача выполнена.
--notes Дополнительные сведения.

Список задач

istok task list
#    STATE         TITLE                            BLOCKED BY
#12  READY         Return 404 for missing orders    —
#13  BLOCKED       Add order audit log              #12
#14  IN PROGRESS   Paginate order history           —

Колонка BLOCKED BY появляется, только если хотя бы у одной задачи в списке есть активный блокер.

  • READY — задачу можно взять в работу.
  • BLOCKED — активная зависимость не даёт задаче стать готовой.
  • IN PROGRESS — у задачи есть активный запуск с неистёкшей арендой.

Завершённые задачи по умолчанию не показываются. Фильтруйте по статусу open, blocked или done; флаг можно повторять:

istok task list --status done
istok task list --status open --status blocked

Показать задачу

istok task show 12

Показывает название, описание, критерии приёмки, заметки, вычисленное состояние, блокеры, зависимые задачи, ревизию и историю событий. Работает и для завершённых задач и ничего не меняет.

Готовые задачи

istok task ready

Задача готова, если она открыта, у неё нет активных блокеров и ею не владеет живой активный запуск.

Комментарии и прогресс

istok task comment 12 --body "Waiting for API review."
istok task progress 12 --body "Error mapping updated; integration tests remain."

Комментарии — для наблюдений, уточнений от ревьюера и заметок на будущее. Прогресс — для существенных изменений в состоянии работы: закончен шаг, принято решение, появился новый блокер, проверка показала, что работы больше, или задача готова для другого агента.

Зависимости

Чтобы задача 13 ждала задачу 12:

istok task dependency add 13 --blocker 12

Убрать зависимость:

istok task dependency remove 13 --blocker 12

Оба номера относятся к задачам текущего проекта. Пока зависимость активна, задача 13 заблокирована.

Взять задачу в работу

istok task claim 12

Взятие задачи начинает активный запуск, сохраняет для него снимок контекста и возвращает запуск с арендой — она понадобится следующим командам run. Задачу с живым активным запуском взять нельзя. Если аренда этого запуска истекла, claim закрывает его как abandoned и начинает новую попытку.

При взятии Istok обновляет индекс кода и добавляет найденный код в контекст. Чтобы в исключительном случае пропустить поиск по коду, укажите причину:

istok task claim 12 \
  --without-retrieval \
  --override-reason "Repository index is being repaired"

Опции контекста

Что получает запуск при взятии задачи и какие бюджеты при этом действуют, описано в разделе Контекст и знания. Чтобы посмотреть это заранее, используйте istok context preview.

Флаг Назначение
--context-id ID Включить конкретную запись контекста, например с доставкой manual. Можно повторять.
--context-limit N Явно задать лимит долговременных записей (1–64). Явный лимит никогда не расширяется автоматически.
--all-context Включить весь активный контекст без долговременного бюджета. Требует --context-override-reason.

--all-context — устаревший обходной путь; его причина сохраняется вместе со снимком.

Если обязательный контекст always не помещается в бюджет, взятие завершается ошибкой без создания запуска, а в ошибке перечислены нужные записи. Чтобы найти причину, запустите istok context doctor.

Другие опции взятия

Флаг Назначение
--base-branch, --base-commit Git-ветка и коммит, от которых начался запуск. Если не указаны, определяются по рабочему дереву.
--run-id, --snapshot-id ID в формате UUIDv7, сгенерированные клиентом, — для интеграций. Если не указаны, Istok генерирует их сам.

Завершить задачу

Когда работа сделана и проверена:

istok task done 12 \
  --expected-revision 7 \
  --run-id 019... \
  --validation-id 019... \
  --note "Missing orders return 404; tests pass."
Флаг Назначение
--expected-revision Обязательный. Текущая ревизия задачи.
--note Обязательный. Заметка о завершении.
--run-id Успешный запуск, в котором сделана работа.
--validation-id Пройденная проверка из этого запуска.
--override-reason Завершить без доказательств, с причиной для аудита. Используйте, только если записать доказательства действительно невозможно.
--completion-id ID завершения в формате UUIDv7, сгенерированный клиентом.

Как появляются доказательства, читайте в разделе Проверки.

Ревизии

Команды, которые меняют состояние и принимают --expected-revision, завершаются ошибкой, если задача изменилась с момента, когда вы её прочитали. Снова выполните istok task show 12 и возьмите последнюю ревизию.

Вывод JSON

istok task list --json
istok task show 12 --json

В JSON есть и номер внутри проекта, и канонический UUID задачи. См. Вывод JSON.

Справка

istok task create --help
istok task claim --help
istok task done --help