Update SKILL.md files to clarify usage of phase and bug handling skills. Added details about agent waves in phase-work, phase-review, and side-work descriptions, emphasizing the shared merge lock and the distinction between different task types. Improved guidance on handling ongoing phases and the importance of not interfering with others' work.
ci / server (push) Failing after 3m39s
ci / client (push) Failing after 2s

This commit is contained in:
Leonid Pershin
2026-08-20 09:30:24 +03:00
parent 9665302948
commit 723f60a9ca
7 changed files with 415 additions and 17 deletions
+23 -11
View File
@@ -1,6 +1,6 @@
---
name: phase-work
description: Берёт ровно одну фазу из среза в docs/phases/ и доводит её до конца — в своём git worktree и на своей ветке, чтобы над одним срезом можно было запустить несколько агентов параллельно. Используй, когда просят «сделай фазу 25», «возьми фазу», «реализуй фазу», «начни срез», «раздели срез между агентами», «work on the phase». Не для ревью уже написанного — там /phase-review, не для бага — /bug-work, и не для правки одного файла по просьбе.
description: Берёт ровно одну фазу из среза в docs/phases/ и доводит её до конца — в своём git worktree и на своей ветке. Используй, когда просят «сделай фазу 25», «возьми фазу», «реализуй фазу», «work on the phase». Не для волны из нескольких агентов — /phase-orch, не для ревью — /phase-review, не для бага — /bug-work, не для задачи вне среза — /side-work.
---
# Работа над фазой
@@ -15,10 +15,12 @@ description: Берёт ровно одну фазу из среза в docs/pha
## Какую фазу брать
**Номер передали в аргументе** — берёшь его, вопросов нет. Так пользователь раздаёт фазы агентам:
`/phase-work 25`, `/phase-work 26` в соседних окнах.
**Номер передали в аргументе** — берёшь его, вопросов нет. Так пользователь и `/phase-orch`
раздают фазы: `/phase-work 25`. Ветка `phase/<N>-*` уже есть — это продолжение (зависшего
агента сменили), не гонка: работай в существующем worktree, не создавай вторую ветку и не
сбрасывай 🔄 на ⬜.
**Номера нет** — выбираешь сам:
**Номера нет** — выбираешь сам. Волну «запусти троих» так не раздавай — это `/phase-orch`.
1. Читаешь `docs/phases/README.md`: находишь первый срез, где есть ⬜.
2. Внутри среза берёшь первую ⬜, у которой закрыты зависимости — они перечислены в шапке фазы.
@@ -28,10 +30,15 @@ description: Берёт ровно одну фазу из среза в docs/pha
✅ значит сделано, ⬜ значит свободно. Ветка может существовать и при ✅ — её просто не убрали после
слияния; это не заявка, а мусор, см. «Кто убирает ветку».
Фаза 🔄 — чужая работа в процессе. Не трогай её, даже если кажется, что там застряли.
Фаза 🔄 — чужая работа в процессе. Не трогай её, даже если кажется, что там застряли
кроме случая выше: номер передали и ветка уже есть, тебя посадили продолжить.
## Как застолбить
Продолжение (номер дали и ветка `phase/<N>-*` уже есть) — этот блок
**пропусти**: ветку не создавай, 🔄 не сбрасывай, садись в существующий
worktree. «already exists» здесь не гонка.
Ветка — и есть заявка, потому что git не даст создать её дважды:
```bash
@@ -129,18 +136,21 @@ git worktree remove --force <путь-в-scratchpad>/wt-phase-25
git branch merge/lock
```
Упало «already exists» — сливает другой агент. Подожди и повтори; не лезь в дерево, пока замок
чужой. Замок снимается `git branch -D merge/lock` **на всех путях**, включая неудачные: забытый
замок остановит остальных.
Упало «already exists» — сливает другой агент (фаза, баг, ревью или side: замок **общий**).
Подожди и повтори; не лезь в дерево и **не снимай** чужой замок. Замок снимается
`git branch -D merge/lock` **на всех путях**, включая неудачные: забытый замок остановит остальных.
**3. Проверь основное дерево, прежде чем трогать.** Оно должно быть на `main` и чистым:
**3. Проверь основное дерево, прежде чем трогать.** Оно должно **уже** быть на `main` и чистым:
```bash
git -C <корень> branch --show-current
git -C <корень> status --porcelain
```
Непусто — там работает человек или соседний агент. **Ничего не сливай**, сними замок и скажи об
этом в отчёте. Чужие незакоммиченные правки дороже твоей ветки.
Не `main` (часто `bug/…` в IDE пользователя) — **не** `checkout`, ничего не сливай, сними
свой замок, отчёт. Непусто — там человек или сосед. То же: не сливать, снять замок, отчёт.
Чужие незакоммиченные правки и чужая ветка в основном дереве дороже твоей. Stash→merge —
не ты: это merge-агент `/phase-orch`, и только если пользователь сказал «сливай».
**4. Слей явным коммитом слияния:**
@@ -198,6 +208,8 @@ git branch --merged main --list "phase/*" --format="%(refname:short)"
- **Сливаешь только свою ветку** и только по порядку из «Слить в main и убрать ветку». Чужие ветки
не сливаешь, даже если они выглядят готовыми.
- **Не переставляй чужие статусы** в `README.md` и не трогай чужие 🔄.
Своя фаза на 🔄, которую тебе отдали продолжить (номер + ветка), — не чужая:
работай там, статус не возвращай в ⬜.
- **Не меняй молча** версию протокола, форму сейва и публичное поведение API — даже когда это
очевидно правильно. Если фаза этого требует, так и написано в её задачах.
- **Общие файлы трогай минимально.** `AGENTS.md`, `docs/protocol.md`, `README.md` правят все ветки