Когда это нужноWhen to reach for itКоли це потрібно
Очередь рабочих элементов, например тикетов, остаётся работать, пока никто не смотрит.A queue of work items, such as tickets, is left running while nobody watches.Черга робочих елементів, наприклад тікетів, лишається працювати, поки ніхто не дивиться.
ТребованияRequirementsВимоги
- Где доступноAvailable inДе доступно
- Каждая загрузка kitEvery download of the kitКожне завантаження kit
- К чему обращаетсяWhat it touchesДо чого звертається
- Читает файлы проектаReads the files of your projectЧитає файли проєкту
- Правит файлы проектаEdits files in your projectЗмінює файли проєкту
- Запускает команды (проверки, git)Runs commands (checks, git)Запускає команди (перевірки, git)
- Работает сWorks withПрацює з
- Любой агент, который читает и пишет ваши файлыAny agent that reads and writes your filesБудь-який агент, що читає й пише ваші файли
- Где выполняются шагиWhere the steps happenДе виконуються кроки
- Чат вашего агента и ваши собственные файлы. Ни то ни другое не интерфейс этого сайта, поэтому шаги описаны текстом, а не скриншотами.Your agent's chat and your own files. Neither is an interface of this site, so the steps are text and not screenshots.Чат вашого агента і ваші власні файли. Ні те, ні інше не є інтерфейсом цього сайту, тому кроки описано текстом, а не скриншотами.
- Где это лежит в kitWhere it lives in the kitДе це лежить у kit
docs/PARALLEL.md
Драйвер, не отличающий «сбой» от «не пробовали», либо бесконечно перезапускает завершённую работу, либо теряет работу при первом падении. Состояние, лежащее только в контексте, теряется на каждой границе.A driver that cannot tell "failed" from "not attempted" either re-runs finished work forever or drops work on the first crash. State kept only in the context is lost at every boundary.Драйвер, що не відрізняє «збій» від «не пробували», або нескінченно перезапускає завершену роботу, або губить роботу при першому падінні. Стан, що лежить лише в контексті, губиться на кожній межі.
ШагиStepsКроки
- Вынесите драйвер за пределы сессии. Он берёт из очереди следующий рабочий элемент, запускает его в свежем headless-процессе и повторяет, чем бы ни закончился запуск. Каждый элемент начинается с пустого контекста, и сброс нельзя забыть.Put the driver outside the session. It takes the next work item off the queue, runs it in a fresh headless process, and repeats however that run ended. Every item starts on an empty context, and the reset cannot be forgotten.Винесіть драйвер за межі сесії. Він бере з черги наступний робочий елемент, запускає його у свіжому headless-процесі і повторює, чим би не закінчився запуск. Кожен елемент починається з порожнього контексту, і скидання не можна забути.
- Держите всё состояние, нужное циклу, в файле: кэш пропусков (что уже пробовали и повторять нельзя), корзины отчёта (что удалось, что упало, что пропущено и почему) и позицию в очереди. Состояние в контексте не переживает границу, в этом и смысл её пересечения.Keep every piece of state the loop needs in a file: the skip cache (what was already attempted and must not be retried), the report buckets (what succeeded, what failed, what was skipped and why) and the queue position. State in the context does not survive the boundary, which is the point of crossing it.Тримайте весь стан, потрібний циклу, у файлі: кеш пропусків (що вже пробували й повторювати не можна), кошики звіту (що вдалося, що впало, що пропущено і чому) та позицію в черзі. Стан у контексті не переживає межу, в цьому й сенс її перетину.
- Научите драйвер различать «сбой» и «не пробовали» и записывайте исход каждого элемента до перехода дальше, а не после старта следующего.Make the driver distinguish "failed" from "not attempted", and write each item's outcome before moving on, not after the next item starts.Навчіть драйвер розрізняти «збій» і «не пробували» та записуйте результат кожного елемента до переходу далі, а не після старту наступного.
- Повторяйте, как бы элемент ни завершился. Падение, лимит или отказ - всё равно конец этого элемента, а цикл, который останавливается на первом плохом элементе, ждёт человека, которого рядом нет.Repeat regardless of how an item exited. A crash, a limit or a refusal is still an end of that item, and a loop that stops at the first bad item waits for a human who is not there.Повторюйте, як би елемент не завершився. Падіння, ліміт чи відмова - усе одно кінець цього елемента, а цикл, що зупиняється на першому поганому елементі, чекає на людину, якої поруч немає.
- Используйте то, что даёт граница. Модель можно выбирать под каждый элемент, а не фиксировать на весь прогон, и можно запускать несколько экземпляров одновременно; очередь блокировок, описанная в бюджетном шлюзе, не даёт им мешать друг другу.Use what the boundary buys. You can choose the model per item instead of fixing one for the whole run, and you can run several instances at once; the lock queue described in the budget gate keeps them off each other.Використовуйте те, що дає межа. Модель можна обирати під кожен елемент, а не фіксувати на весь прогін, і можна запускати кілька екземплярів одночасно; черга блокувань, описана в бюджетному шлюзі, не дає їм заважати одне одному.
- Выбор стека оставьте за собой: какой формат очереди, какая оболочка, какой вызов headless-режима. Интерактивный цикл оставьте для работы, за которой смотрит человек, а всё, что работает без присмотра, лучше отдавать драйверу.Leave the stack choices to yourself: which queue format, which shell, which headless invocation. Keep the interactive loop for work a human is watching, and prefer the driver for anything left running unattended.Вибір стеку лишіть за собою: який формат черги, яка оболонка, який виклик headless-режиму. Інтерактивний цикл лишіть для роботи, за якою стежить людина, а все, що працює без нагляду, краще віддавати драйверові.
Каждый элемент прошёл в своём процессе с пустым контекстом, а файлы показывают, что удалось, что упало, что пропущено и почему и где стоит очередь. Плохой элемент завершил свой запуск, и драйвер пошёл к следующему.Each item ran in its own process on an empty context, and the files show what succeeded, what failed, what was skipped and why, and where the queue stands. A bad item ended its own run and the driver went on to the next.Кожен елемент пройшов у своєму процесі з порожнім контекстом, а файли показують, що вдалося, що впало, що пропущено і чому та де стоїть черга. Поганий елемент завершив свій запуск, і драйвер пішов до наступного.
СоветыTipsПоради
- Самонакладываемое «остановлюсь на пороге» не гарантирует сброса: оно зависит от того, что кто-то заметит порог и кто-то потом перезапустит. Граница процесса не зависит ни от того, ни от другого.A self-imposed "I will stop at a threshold" cannot promise the reset, because it depends on somebody noticing the threshold and somebody restarting afterwards. The process boundary depends on neither.Самонакладене «зупинюся на порозі» не гарантує скидання: воно залежить від того, що хтось помітить поріг і хтось потім перезапустить. Межа процесу не залежить ні від того, ні від іншого.
- Нет headless-режима в вашей среде? Оставьте цикл внутри сессии и сделайте остановку явной: останавливайтесь на заданном пороге и возвращайте ручку возобновления, чтобы перезапуск человеком был нажатием клавиши, а не восстановлением по кусочкам.No headless mode in your runtime? Keep the in-session loop and make the halt explicit: stop at a stated threshold and hand back a resume handle, so the human's restart is a keystroke rather than a reconstruction.Немає headless-режиму у вашому середовищі? Лишіть цикл усередині сесії й зробіть зупинку явною: зупиняйтеся на заданому порозі й повертайте ручку відновлення, щоб перезапуск людиною був натисканням клавіші, а не відновленням по шматках.
- В Claude Code headless-запуск - это
claude -p, иCLAUDE.mdиз kit называет его родным драйвером для/backlogбез присмотра, навыка, который разбирает очередь тикетов. См. разобрать очередь тикетов без вашего участия.On Claude Code a headless run isclaude -p, and the kit'sCLAUDE.mdnames it as the native driver for an unattended/backlog, the skill that drains a ticket queue. See drain the ticket queue unattended.У Claude Code headless-запуск - цеclaude -p, іCLAUDE.mdз kit називає його рідним драйвером для/backlogбез нагляду, навички, що розбирає чергу тікетів. Див. розібрати чергу тікетів без вашої участі. - Обоснование цикла процессов по затратам, с единственным измерением за ним, лежит в бюджетном шлюзе. Если несколько экземпляров пишут в одну рабочую папку, прочтите и как запустить нескольких пишущих агентов, не потеряв работу.The cost case for looping the process, with the one measurement behind it, is in the budget gate. If several instances write to one workspace, read how to run several writing agents without losing work too.Обґрунтування циклу процесів за витратами, з єдиним виміром за ним, лежить у бюджетному шлюзі. Якщо кілька екземплярів пишуть в одну робочу теку, прочитайте й як запустити кількох агентів, що пишуть, не втративши роботи.
- Третья часть того же документа, о читающих, которые распараллеливаются свободно, потому что стоят только токенов, - запустить независимые поиски параллельно и проверить результат.The third part of the same document, on readers that fan out freely because they cost only tokens, is run independent lookups in parallel and check what comes back.Третя частина того самого документа, про тих, що лише читають і розпаралелюються вільно, бо коштують лише токенів, - запустити незалежні пошуки паралельно й перевірити результат.
Связанные функцииRelated functionsПов'язані функції
- Запустить нескольких пишущих агентов, не потеряв работуRun several writing agents without losing workЗапустити кількох агентів, що пишуть, не втративши роботиДайте каждому пишущему агенту свою рабочую копию или отдайте команды над всем деревом одному владельцу, чтобы stash, reset или checkout не стёрли молча чужие правки.Give each writing agent its own checkout, or give one owner the tree-wide commands, so no stash, reset or checkout silently erases another agent's edits.Дайте кожному агентові, що пише, власну робочу копію або віддайте команди над усім деревом одному власникові, щоб stash, reset чи checkout не стерли мовчки чужі правки.
- Запустить независимые поиски параллельно и проверить результатRun independent lookups in parallel and check what comes backЗапустити незалежні пошуки паралельно й перевірити результатЗапускайте независимые поиски и помощников, которые только читают, вместе, пройдя бюджетный шлюз, а то, что вернула волна, пусть перепроверит оркестратор.Start independent searches and read-only helpers together once the budget gate is passed, and let the orchestrator re-validate what the wave returns.Запускайте незалежні пошуки й помічників, що лише читають, разом, пройшовши бюджетний шлюз, а те, що повернула хвиля, нехай перевірить оркестратор.
- Назначить бюджет перед параллельным запуском агентовSet a budget before you fan outПризначити бюджет перед паралельним запуском агентівОцените число агентов и примерную цену в токенах, держите потолок около 6-8 агентов и просите явное GO выше него.Estimate the agent count and the rough token cost, keep a ceiling of about 6-8 agents, and ask for an explicit GO above it.Оцініть кількість агентів і приблизну ціну в токенах, тримайте стелю близько 6-8 агентів і просіть явне GO вище неї.
- Разобрать очередь тикетов без вашего участия и получить один отчёт в концеDrain the ticket queue unattended and get one report at the endРозібрати чергу тікетів без вашої участі й отримати один звіт наприкінціБерёт тикет с наивысшим приоритетом из тех, что агент может двигать сам, прогоняет конвейер, повторяет, а всё, что требует человека, откладывает в один отчёт.Picks the highest-priority ticket the agent can move alone, runs the pipeline on it, repeats, and defers everything that needs a human to one report.Бере тікет із найвищим пріоритетом серед тих, що агент може рухати сам, проганяє конвеєр, повторює, а все, що потребує людини, відкладає в один звіт.