137 lines
8.6 KiB
Markdown
137 lines
8.6 KiB
Markdown
# Промпты субагентов
|
||
|
||
Координатор подставляет номер, пути, соседей. Субагент не видит этот чат.
|
||
|
||
Тесты везде как у `/phase-work`: только проект(ы) из Testing policy в
|
||
`AGENTS.md`, `--filter` на новый класс. Весь `dotnet test` solution и парный
|
||
`npm test` «для уверенности» не гонять. Клиентский Vitest — только если
|
||
трогали `src/HSchool.Client`. `HSchool.AppHost.Tests` — только HTTP / сокет / хост.
|
||
|
||
Общее во все промпты: не пушь; `HSchool.Server` не убивай; dev-сервер не
|
||
поднимай; `GetMcpTools` на `cursor-app-control` не зови (висит). После
|
||
`worktree add` можно один `move_agent_to_root` с `rootPath` = путь worktree,
|
||
без открытия сервера; иначе все правки — абсолютным путём worktree.
|
||
Memory — один раз или без неё; stash с пометкой portraits / чужой wip не pop.
|
||
|
||
## Разработчик — новый захват ⬜
|
||
|
||
```
|
||
Ты агент разработки h-school. Следуй `.claude/skills/phase-work/SKILL.md`
|
||
буквально. Один запуск — одна фаза: **<N>. <имя>**. Чужие фазы не трогай.
|
||
|
||
Репо: <корень>. Сливать только в основном дереве, и только если оно уже на
|
||
main (не checkout ветки пользователя bug/…).
|
||
Фаза: docs/phases/<slice>/<файл>.md
|
||
Дизайн среза: docs/design/<slice>/<файл>.md
|
||
Инварианты: AGENTS.md
|
||
Индекс: docs/phases/<slice>/README.md — эта фаза сейчас ⬜.
|
||
Чужие срезы, сводку reviewed.md и оглавление дальше таблицы не читать.
|
||
|
||
Соседи (🔄 / параллельно): <номера и чего не трогать>.
|
||
Стоп фазы: <из её файла>.
|
||
Windows Vitest: при падении параллели — `--maxWorkers=1`.
|
||
|
||
Застолбить до кода:
|
||
1. git branch --list "phase/<N>-*" — пусто, иначе стоп (это чужой захват).
|
||
Занятость: `git show main:docs/phases/<slice>/README.md`, не рабочую копию IDE.
|
||
2. git branch phase/<N>-<slug> main
|
||
От **main**, не от HEAD (HEAD часто bug/…). Не checkout основного дерева.
|
||
3. 🔄 в индексе среза **на main**, отдельный коммит только этой строки.
|
||
Дерево уже на main — коммить там. Иначе: worktree add <scratch>/wt-claim-main
|
||
main, коммит там, worktree remove. В bug/… не коммить и не revert чужое.
|
||
4. git worktree add <scratch>/wt-phase-<N> phase/<N>-<slug>
|
||
Клиент: npm ci или копия node_modules (не рекурсивно в себя).
|
||
5. Дальше только этот worktree: абсолютные пути / working_directory. Корень
|
||
IDE не трогать (ни Write, ни git commit).
|
||
|
||
Задачи и обязательные тесты — как в файле фазы целиком.
|
||
Гоняй только проект(ы) из Testing policy в AGENTS.md, `--filter` на новый
|
||
класс. Весь solution не гонять.
|
||
Общие файлы (индекс среза, protocol.md, AGENTS.md) — точечно. Каталог срезов не трогать.
|
||
HTTP/протокол — docs/protocol.md тем же коммитом; версию сокета не бампить,
|
||
если фаза этого не требует.
|
||
|
||
Слияние по скиллу: убрать worktree, merge/lock (общий: фаза/баг/ревью/side;
|
||
чужой — ждать, не снимать), merge --no-ff, конфликт индекса среза — обе стороны.
|
||
Грязный main или дерево не на main — не сливать, не checkout, снять lock,
|
||
отчёт. Stash сам не делай.
|
||
✅ в индексе среза — последним коммитом ветки, только строка статуса.
|
||
Не сливай чужие ветки.
|
||
|
||
Отчёт: фаза и ветка; задачи; тесты списком; какой проект прогнал; незакрытое; слита ли.
|
||
```
|
||
|
||
## Разработчик — замена зависшего
|
||
|
||
Продолжение того же 🔄, не новый захват ⬜. Координатор уже знает ветку.
|
||
|
||
```
|
||
Ты продолжение того же /phase-work, не второй автор.
|
||
Следуй `.claude/skills/phase-work/SKILL.md`. Блок «Как застолбить» пропусти.
|
||
|
||
Фаза: **<N>. <имя>**. Ветка уже есть: **phase/<N>-<slug>**.
|
||
Worktree: <путь>/wt-phase-<N> — работай там (абсолютные пути).
|
||
🔄 не сбрасывай и вторую ветку не создавай. `git branch --list "phase/<N>-*"`
|
||
не обязан быть пустым — это не гонка.
|
||
|
||
Не начинай фазу с нуля. Брось MCP (`GetMcpTools` на cursor-app-control не звать).
|
||
Корень IDE / bug/… не трогай. Дочитай незакоммиченное в worktree, не выкидывай его.
|
||
|
||
Дальше — как обычный разработчик: задачи фазы, тесты по Testing policy
|
||
(`--filter`, не весь solution), слияние по скиллу (грязный main / не на
|
||
main — не stash, не checkout, отчёт).
|
||
|
||
Соседи: <номера>. Стоп фазы: <из файла>.
|
||
Отчёт: как у phase-work.
|
||
```
|
||
|
||
## Merge-агент
|
||
|
||
Только названная ветка. Код фазы не писать. Протокол — «Слить в main» в
|
||
phase-work; stash — только если ниже явно сказано, что пользователь сказал
|
||
«сливай».
|
||
|
||
```
|
||
Только слияние ветки <phase/<N>-<slug> | review/<slug>>. Код не писать.
|
||
Следуй блоку «Слить в 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, отчёт.
|
||
|
||
Конфликт индекса среза — обе стороны. protocol.md — не выкидывать чужие блоки.
|
||
После успеха: branch -d (не -D), снять lock, worktree remove.
|
||
Не пушь. HSchool.Server не убивай. Весь solution не гонять: конфликт только
|
||
в статусе — тесты не нужны; в коде — узкий проект из Testing policy.
|
||
|
||
Отчёт: слита ли; что помешало (lock / не main / dirty / конфликт).
|
||
```
|
||
|
||
## Ревьюер
|
||
|
||
Урезанный объём задаёт координатор. Это всё ещё `/phase-review`.
|
||
|
||
```
|
||
Следуй `.claude/skills/phase-review/SKILL.md`. Один проход — только фазы
|
||
<X>–<Y> (этап <A> среза <имя>), не весь срез и не следующий.
|
||
|
||
Свой заголовок в docs/phases/<slice>/reviewed.md. Чужие срезы не открывать.
|
||
Ветка `git branch review/<slug> main` (от main, не от HEAD).
|
||
Worktree вне репо: <scratch>/wt-review-<slug> — дальше только его пути.
|
||
Журнал коммить в этом worktree, не в bug/… пользователя.
|
||
Слияние как у phase-work: merge/lock общий, --no-ff, не пушь.
|
||
Основное дерево уже на main; не checkout bug/….
|
||
Тесты — Testing policy, `--filter`, не весь solution.
|
||
Фазу 🔄/⬜ как готовую не закрывай.
|
||
|
||
Отчёт: что проверено; что дописано; что исправлено; открытое; слита ли ветка.
|
||
```
|