unica-conveyor · git:20261022.4c3371c · 2026-10-22 · sha256 82dc4d704c2ac0a8
unica-conveyor git:20261022.4c3371cA
Immutable. This exact content never changes and is served at /api/v1/blob/82dc4d704c2ac0a8.
---
name: unica-conveyor
description: Конвейер сессий над Unica — координатор, вливатель и исполнители. Используй, когда сессия получила одну из этих ролей, когда нужно запустить, продолжить или восстановить конвейер, и сразу после сжатия контекста или перезапуска сессии, работавшей в конвейере.
---
# Конвейер сессий Unica
Сначала прочитай [SOUL.md](SOUL.md): там цель и запреты, общие для всех
ролей. Затем — файл своей роли.
| Роль | Кто | Файл |
| --- | --- | --- |
| Координатор | Одна сессия на конвейер. Владелец зовёт её «Макс». | [references/coordinator.md](references/coordinator.md) |
| Вливатель | Одна сессия на конвейер. Владелец зовёт её «Вася». | [references/merger.md](references/merger.md) |
| Исполнитель | Рабочая сессия: одна задача, своя ветка и рабочая копия. | [references/worker.md](references/worker.md) |
Роль назначает владелец или координатор. Если роль не названа ни в поручении,
ни в комментарии состояния, ты не в конвейере: работай по
[unica-development](../unica-development/SKILL.md).
Навыки разработки Unica подбирай и правь через
[unica-development](../unica-development/SKILL.md), его правила
действуют и в конвейере. Отличие одно: исполнитель сам не ставит PR
в очередь и не включает автовливание, хотя
[правило PR](../unica-development/references/pull-requests.md#вливание-через-очередь)
велит это одиночной сессии. Это делает вливатель.
## Комментарий состояния
Координатор держит в зонтичной задаче работы один комментарий,
начинающийся строкой `## Состояние конвейера`, и правит его, а не
добавляет новые. Комментарий обновляется при каждой передаче работы
и каждом решении владельца. В нём:
- кто координатор и кто вливатель: заголовок сессии;
- исполнители: заголовок сессии, ветка, задача или PR, что сделано и чего ждёт;
- PR, переданные вливателю, и порядок их вливания: что за чем;
- решения владельца, которые ещё не исполнены, и вопросы, ждущие его ответа.
Зонтичная задача публичная: идентификаторы сессий, пути и секреты
в комментарий не пишутся. Комментарий описывает живой состав. Самих сессий, путей рабочих копий
и журнала шагов в репозитории нет.
## Первый запуск
Координатор заводит зонтичную задачу владельца по правилу
[материалов работы](../unica-development/SKILL.md#материалы-работы),
если её ещё нет, и первый комментарий состояния. Затем поднимает
вливателя и раздаёт задачи исполнителям.
## Возрождение после остановки
Конвейер остановлен целиком: сессии закрыты, хост перезапущен или
прошло много времени. Владелец поднимает новую сессию и называет её
координатором.
1. Прочитай SOUL.md, этот файл и [coordinator.md](references/coordinator.md).
2. Найди зонтичную задачу: её назовёт владелец, иначе ищи последний
комментарий `## Состояние конвейера` в открытых задачах
(`gh search issues --repo IngvarConsulting/unica "Состояние конвейера" --state open`).
3. Сверь комментарий с GitHub. Открытые PR, очередь слияния и последние
прогоны `merge_group` важнее записи: что
влито или закрыто, вычеркни; что расходится — исправь.
4. Проверь, какие сессии живы, если хост показывает список. Живой сессии
отправь её роль и строку из комментария. Для потерянной заведи новую
по шаблону брифа из coordinator.md: ветка и PR остались на GitHub,
работа продолжается с них.
5. Подними вливателя первым, если его нет: без него очередь стоит.
6. Обнови комментарий и коротко доложи владельцу, что восстановлено
и что требует его решения.
Очередь слияния:
```bash
gh api graphql -f query='{repository(owner:"IngvarConsulting",name:"unica"){mergeQueue(branch:"main"){entries(first:50){nodes{position state enqueuedAt pullRequest{number headRefOid}}}}}}'
```
## Возрождение после сжатия контекста
Хост сжал переписку, и сессия продолжает работу по пересказу. Пересказ
теряет подробности роли и мог пропустить последние действия.
1. До любых действий перечитай SOUL.md, этот файл и файл своей роли.
Свою роль ищи в пересказе или в комментарии состояния: по ветке
своей рабочей копии или заголовку сессии.
2. Восстанови текущее положение из GitHub, а не из пересказа. Для
исполнителя это состояние своего PR: head, CI, ревью, вылеты из очереди.
Для вливателя — очередь и прогоны `merge_group`. Для координатора —
комментарий состояния, открытые PR и очередь.
3. Сообщение, которое пересказ называет отправленным, считай отправленным.
Действие, исход которого пересказ не называет, проверь перед
повторением: PR мог уже открыться, запись — встать в очередь.
4. Продолжай с первого незавершённого шага. Владельцу о сжатии
не сообщай, если ничего не потеряно.