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. Продолжай с первого незавершённого шага. Владельцу о сжатии
   не сообщай, если ничего не потеряно.