# Промпты субагентов Координатор подставляет номер, пути, соседей. Субагент не видит этот чат. Тесты везде как у `/phase-work`: только проект(ы) из Testing policy в `AGENTS.md`, `--filter` на новый класс. Весь `dotnet test` solution и парный `npm test` «для уверенности» не гонять. Клиентский Vitest — только если трогали `src/HSchool.Client`. `HSchool.AppHost.Tests` — только HTTP / сокет / хост. Общее во все промпты: не пушь; `HSchool.Server` не убивай; dev-сервер не поднимай; `cursor-app-control` не вызывай; memory — один раз или без неё; stash с пометкой portraits / чужой wip не pop. ## Разработчик — новый захват ⬜ ``` Ты агент разработки h-school. Следуй `.claude/skills/phase-work/SKILL.md` буквально. Один запуск — одна фаза: **. <имя>**. Чужие фазы не трогай. Репо: <корень>. Сливать только в основном дереве, и только если оно уже на main (не checkout ветки пользователя bug/…). Фаза: docs/phases/<файл>.md Дизайн среза: docs/design/<файл>.md Инварианты: AGENTS.md Индекс: docs/phases/README.md — эта фаза сейчас ⬜. Соседи (🔄 / параллельно): <номера и чего не трогать>. Стоп фазы: <из её файла>. Windows Vitest: при падении параллели — `--maxWorkers=1`. Застолбить до кода: 1. git branch --list "phase/-*" — пусто, иначе стоп (это чужой захват). 2. git branch phase/- 3. 🔄 в README основного дерева, отдельный коммит только этой строки. 4. git worktree add /wt-phase- phase/- Клиент: npm ci или копия node_modules (не рекурсивно в себя). Задачи и обязательные тесты — как в файле фазы целиком. Гоняй только проект(ы) из Testing policy в AGENTS.md, `--filter` на новый класс. Весь solution не гонять. Общие файлы (README фаз, protocol.md, AGENTS.md) — точечно. HTTP/протокол — docs/protocol.md тем же коммитом; версию сокета не бампить, если фаза этого не требует. Слияние по скиллу: убрать worktree, merge/lock (общий: фаза/баг/ревью/side; чужой — ждать, не снимать), merge --no-ff, конфликт README — обе стороны. Грязный main или дерево не на main — не сливать, не checkout, снять lock, отчёт. Stash сам не делай. ✅ в README — последним коммитом ветки, только строка статуса. Не сливай чужие ветки. Отчёт: фаза и ветка; задачи; тесты списком; какой проект прогнал; незакрытое; слита ли. ``` ## Разработчик — замена зависшего Продолжение того же 🔄, не новый захват ⬜. Координатор уже знает ветку. ``` Ты продолжение того же /phase-work, не второй автор. Следуй `.claude/skills/phase-work/SKILL.md`. Блок «Как застолбить» пропусти. Фаза: **. <имя>**. Ветка уже есть: **phase/-**. Worktree: <путь>/wt-phase- — работай там. 🔄 не сбрасывай и вторую ветку не создавай. `git branch --list "phase/-*"` не обязан быть пустым — это не гонка. Не начинай фазу с нуля. Брось MCP (cursor-app-control не звать). Дочитай незакоммиченное в worktree, не выкидывай его. Дальше — как обычный разработчик: задачи фазы, тесты по Testing policy (`--filter`, не весь solution), слияние по скиллу (грязный main / не на main — не stash, не checkout, отчёт). Соседи: <номера>. Стоп фазы: <из файла>. Отчёт: как у phase-work. ``` ## Merge-агент Только названная ветка. Код фазы не писать. Протокол — «Слить в main» в phase-work; stash — только если ниже явно сказано, что пользователь сказал «сливай». ``` Только слияние ветки - | review/>. Код не писать. Следуй блоку «Слить в main» из `.claude/skills/phase-work/SKILL.md`. Замок merge/lock общий (фаза, баг, ревью, side): чужой — ждать, не снимать. Основное дерево должно уже быть на main. Если там bug/… или другая ветка пользователя — не checkout, не stash, стоп, отчёт. <выбрать одно:> Грязный main: пользователь сказал «сливай». Это исключение к dirty-main из phase-work. stash push -u своим ярлыком, merge --no-ff, pop только его. Конфликт pop — оставить stash, дерево не калечить. Чужой wip / worktree соседа не stash’ать. <или:> Грязный main — не stash, снять lock, отчёт. Конфликт README — обе стороны. protocol.md — не выкидывать чужие блоки. После успеха: branch -d (не -D), снять lock, worktree remove. Не пушь. HSchool.Server не убивай. Весь solution не гонять: конфликт только в статусе — тесты не нужны; в коде — узкий проект из Testing policy. Отчёт: слита ли; что помешало (lock / не main / dirty / конфликт). ``` ## Ревьюер Урезанный объём задаёт координатор. Это всё ещё `/phase-review`. ``` Следуй `.claude/skills/phase-review/SKILL.md`. Один проход — только фазы (этап среза <имя>), не весь срез и не следующий. Свой заголовок в docs/phases/reviewed.md. Чужие разделы журнала не затирай. Ветка review/, worktree вне репо: /wt-review-. Слияние как у phase-work: merge/lock общий, --no-ff, не пушь. Основное дерево уже на main; не checkout bug/…. Тесты — Testing policy, `--filter`, не весь solution. Фазу 🔄/⬜ как готовую не закрывай. Отчёт: что проверено; что дописано; что исправлено; открытое; слита ли ветка. ```