istok context

Добавление, список, просмотр, поиск, изменение, включение, отключение и архивация сохранённого контекста, а также предпросмотр и диагностика того, что получают запуски.

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

Команды

Команда Назначение
add TITLE Добавить запись контекста.
list Показать записи контекста.
show [ID] Вывести контекст проекта или посмотреть одну запись.
search QUERY Искать по контексту проекта.
update ID Изменить запись контекста.
enable ID Включить инструкцию.
disable ID Отключить инструкцию.
delete ID Архивировать запись контекста.
preview TASK Посмотреть контекст, который получит взятие задачи TASK.
doctor Найти проблемы с ростом и жизненным циклом контекста.

Все команды работают с текущим проектом. У записей есть канонические ID в формате UUIDv7 и ревизии.

Виды записей

Вид Для чего
note Знания о проекте или заметки о реализации. Вид по умолчанию.
decision Решения, которые должны оставаться доступными для будущей работы.
instruction Указания, которым агенты следуют при работе в проекте.
constraint Правила или ограничения, влияющие на реализацию.

Добавить контекст

istok context add "Public API naming" \
  --kind constraint \
  --body "Public API fields use snake_case." \
  --tag api \
  --tag conventions

--tag можно повторять.

Метаданные записи

Флаг Значения По умолчанию
--source user, agent, import user
--visibility shared, local_only shared
--sensitivity normal, private normal
--delivery always, ranked, manual always для инструкций, ranked для остальных

Записи shared участвуют в обычной работе с проектом; local_only помечает запись, которая должна остаться в текущем окружении Istok. Чувствительность хранится вместе с записью и подсказывает, как обращаться с её содержимым.

Доставка

Режим Поведение
always Попадает в каждый запуск.
ranked Попадает в запуск, если относится к задаче.
manual Попадает в запуск, только если при взятии задачи запись указана по ID.

Так длинная заметка не попадёт в автоматическую доставку:

istok context add "Legacy billing migration notes" \
  --kind note \
  --delivery manual \
  --body "..."

Записи always держите короткими: они входят в каждый запуск и каждый раз расходуют долговременный бюджет.

Даты жизненного цикла

Даты указываются в формате RFC 3339.

Флаг Действие
--review-after После этого момента запись по-прежнему доставляется, но помечается как требующая пересмотра.
--expires-at После этого момента запись исключается из автоматической сборки.
--superseded-by UUIDv7 активной записи, которая заменяет эту; запись исключается из автоматической сборки.
istok context add "Feature freeze until the 2.0 release" \
  --kind constraint \
  --expires-at 2026-12-01T00:00:00Z \
  --body "Only bug fixes are accepted on main."

В context update дату можно очистить пустым значением, например --expires-at "".

Инструкции

У записи вида instruction есть дополнительные поля: включена ли она, --priority и --scope.

istok context add "Do not edit generated SDK files" \
  --kind instruction \
  --priority high \
  --body "Regenerate them from the OpenAPI schema instead."

Приоритет — critical, high, normal или low; при сборке контекста инструкции с более высоким приоритетом идут первыми. Область действия — project: инструкция относится к работе в текущем проекте.

Список, просмотр и поиск

istok context list
istok context show
istok context show RECORD_ID
istok context search "naming"

show без ID выводит активный контекст проекта обычным Markdown — его можно сразу вставить куда-нибудь ещё. С ID команда показывает одну запись с метаданными и текущей ревизией; посмотрите её перед изменением, которому нужен --expected-revision.

Флаг Для команд Действие
--include-disabled list, show, search Включить отключённые инструкции.
--deleted list, show, search Включить архивные записи.
--limit list, search Максимальное число записей.
--kind, --source, --visibility, --sensitivity list Фильтры; каждый можно повторять.

Изменить контекст

istok context show RECORD_ID
istok context update RECORD_ID \
  --expected-revision REVISION \
  --delivery ranked

update принимает новые значения для названия, текста, вида, тегов, источника, видимости, чувствительности, доставки, приоритета, области действия и дат жизненного цикла.

Включить и отключить инструкции

istok context disable RECORD_ID --expected-revision REVISION
istok context enable RECORD_ID --expected-revision REVISION

Отключение сохраняет запись и её историю, но исключает её из сборки контекста. Отключённые инструкции не попадают в обычный список, поиск, экспорт и пакеты контекста, если их не запросить явно.

Архивировать контекст

istok context delete RECORD_ID --expected-revision REVISION

Запись архивируется и больше не входит в активный контекст. CLI просит подтверждение; вместе с --json передайте --yes.

Ревизии

update, enable, disable и delete требуют --expected-revision. Если запись изменилась после этой ревизии, команда завершается ошибкой, а не перезаписывает более новое состояние. Прочитайте запись снова и повторите с последней ревизией.

Ограниченная сборка контекста

Когда задачу берут в работу, Istok собирает пакет контекста из:

  • записей always, причём включённые инструкции упорядочены по приоритету;
  • записей, указанных через --context-id;
  • записей ranked, подходящих к названию, описанию, критериям приёмки и заметкам задачи;
  • кода, найденного в индексе репозитория;
  • сводки текущих знаний.

Пакет становится снимком контекста запуска. Последующие правки живого контекста его не меняют.

Лимит По умолчанию
Долговременный контекст 16 KiB
Найденный код 32 KiB
Всего 48 KiB
Долговременных записей 12, расширяется до 64 для обязательных записей always
Размер одной записи 12 KiB
Сводка знаний 20 элементов, 4 KiB, считается отдельно

Записи ranked занимают тот долговременный бюджет, что остался после записей always и явно указанных. Истёкшие и заменённые записи пропускаются, а в снимок записывается предупреждение о них. Снимок также предупреждает, если контекст always вырос больше 8 KiB.

Если обязательные записи always или явно указанные не помещаются, взятие задачи завершается ошибкой, а не отбрасывает их. В ошибке перечислены записи и предложено решение: сократить запись, перевести необязательную запись в ranked или задать больший --context-limit.

Предпросмотр контекста для задачи

Посмотрите, что получит взятие задачи 12, не создавая запуск:

istok context preview 12

В выводе — число долговременных записей относительно лимита, расход байт по каждому бюджету, сводка знаний, каждая выбранная запись с её полосой (always, explicit или ranked) и оценкой, а также предупреждения.

preview принимает те же опции контекста, что и istok task claim:

istok context preview 12 --context-id RECORD_ID
istok context preview 12 --context-limit 20

--all-context требует --context-override-reason, а --without-retrieval — --retrieval-override-reason.

Диагностика контекста

istok context doctor

doctor сообщает:

  • активные записи и их общий размер;
  • сколько записей использует каждый режим доставки;
  • истёкшие, заменённые и требующие пересмотра записи;
  • проблемы с уровнем серьёзности, ID затронутых записей и предлагаемым действием.

Среди проблем — записи больше лимита на одну запись, контекст always сверх мягкого лимита или сверх долговременного бюджета, записей always больше лимита по умолчанию, истёкшие и требующие пересмотра записи, записи с одинаковыми названиями. Запускайте его, когда взятие задач падает из-за бюджетов контекста, или время от времени по мере роста контекста.

Вывод JSON

Команды контекста принимают --json и возвращают версионированный ответ. show --json вместо готового Markdown возвращает структурированный список. См. Вывод JSON.

Справка

istok context add --help
istok context update --help
istok context preview --help
istok context doctor --help