diff --git a/.claude/skills/bug-work/SKILL.md b/.claude/skills/bug-work/SKILL.md index f26bdde..55fa9e4 100644 --- a/.claude/skills/bug-work/SKILL.md +++ b/.claude/skills/bug-work/SKILL.md @@ -4,8 +4,8 @@ description: >- Принимает баг в уже сделанном, при необходимости обсуждает путь и чинит. Файлы в docs/bugs/, индекс отдельно от фаз. Используй при «баг», «почини», «регрессия», «сломалось», «fix the bug», «возьми баг N». Не для новой фичи - (/side-work), фазы среза (/phase-work), волны агентов (/phase-orch) и ревью - (/phase-review). + (/side-work), нового среза (/slice-work), фазы среза (/phase-work), волны + агентов (/phase-orch) и ревью (/phase-review). --- # Баги @@ -23,7 +23,7 @@ description: >- - Уже стоит ⬜/🔄 в индексе багов — бери его, не заводи второй. - Это ещё не сделанная фаза в `docs/phases/` — скажи и отдай `/phase-work`. -- Новая фича, склейка систем, DX — `/side-work`. +- Склейка систем, DX — `/side-work`. Новый кусок игры — `/slice-work`. - Ревью среза — `/phase-review`. - Волну фаз — `/phase-orch`. diff --git a/.claude/skills/phase-orch/SKILL.md b/.claude/skills/phase-orch/SKILL.md index 3be7031..92916b8 100644 --- a/.claude/skills/phase-orch/SKILL.md +++ b/.claude/skills/phase-orch/SKILL.md @@ -6,14 +6,14 @@ description: >- `/phase-orch 3`. Используй при «запусти N разработчиков», «веди срез», «оркестрация», «раздели срез между агентами и следи», «продолжай волну». Не пишет код фаз сам. Не для одной фазы (/phase-work), одного бага - (/bug-work), задачи вне среза (/side-work) и одиночного ревью - (/phase-review). + (/bug-work), задачи вне среза (/side-work), нового среза (/slice-work) + и одиночного ревью (/phase-review). --- # Оркестрация среза -Ты **координатор**, не разработчик. В этом чате не пишешь код фаз, багов и -side-work. Фазы делают фоновые агенты по [`phase-work`](../phase-work/SKILL.md); +Ты **координатор**, не разработчик. В этом чате не пишешь код фаз, багов, +side-work и не заводишь новый срез. Фазы делают фоновые агенты по [`phase-work`](../phase-work/SKILL.md); проверку закрытых срезов — по [`phase-review`](../phase-review/SKILL.md). Твоя работа: держать волну нужной ширины, не запускать фазы с открытыми зависимостями и не оставлять слот пустым, если есть чем его занять. @@ -27,6 +27,7 @@ side-work. Фазы делают фоновые агенты по [`phase-work`] | «проверь срез», одно ревью | `/phase-review` | | «баг», «почини» | `/bug-work` | | «сделай отдельно», «вне среза» | `/side-work` | +| «новый срез», «спланируй срез» | `/slice-work` | Независимые side-фазы параллельно — тоже этот скилл (так уже сказано в side-work). Слоты волны багами не заполнять. diff --git a/.claude/skills/phase-review/SKILL.md b/.claude/skills/phase-review/SKILL.md index f22057d..75ccc59 100644 --- a/.claude/skills/phase-review/SKILL.md +++ b/.claude/skills/phase-review/SKILL.md @@ -1,6 +1,6 @@ --- name: phase-review -description: Ревью срезов и фаз проекта h-school по их же критериям приёмки — с дописыванием недостающих тестов, исправлением найденного и журналом проверенного в docs/phases/reviewed.md. Обязательно используй этот скилл, когда просят «сделай ревью», «проведи ревью», «проверь срез», «проверь непроверенные срезы», «что ещё не проверено», «review the slice» — и вообще при любой просьбе проверить, действительно ли сделанная фаза сделана. Не для ревью одного диффа или пул-реквеста: там нужен /code-review. Не для волны разработчиков — /phase-orch (он может запустить этот скилл как одного из агентов). +description: Ревью срезов и фаз проекта h-school по их же критериям приёмки — с дописыванием недостающих тестов, исправлением найденного и журналом проверенного в docs/phases/reviewed.md. Обязательно используй этот скилл, когда просят «сделай ревью», «проведи ревью», «проверь срез», «проверь непроверенные срезы», «что ещё не проверено», «review the slice» — и вообще при любой просьбе проверить, действительно ли сделанная фаза сделана. Не для ревью одного диффа или пул-реквеста: там нужен /code-review. Не для волны разработчиков — /phase-orch (он может запустить этот скилл как одного из агентов). Не для планирования нового среза — /slice-work. --- # Ревью срезов diff --git a/.claude/skills/phase-work/SKILL.md b/.claude/skills/phase-work/SKILL.md index 813ebec..a7a8618 100644 --- a/.claude/skills/phase-work/SKILL.md +++ b/.claude/skills/phase-work/SKILL.md @@ -1,6 +1,6 @@ --- name: phase-work -description: Берёт ровно одну фазу из среза в docs/phases/ и доводит её до конца — в своём git worktree и на своей ветке. Используй, когда просят «сделай фазу 25», «возьми фазу», «реализуй фазу», «work on the phase». Не для волны из нескольких агентов — /phase-orch, не для ревью — /phase-review, не для бага — /bug-work, не для задачи вне среза — /side-work. +description: Берёт ровно одну фазу из среза в docs/phases/ и доводит её до конца — в своём git worktree и на своей ветке. Используй, когда просят «сделай фазу 25», «возьми фазу», «реализуй фазу», «work on the phase». Не для волны из нескольких агентов — /phase-orch, не для ревью — /phase-review, не для бага — /bug-work, не для задачи вне среза — /side-work, не для нового среза — /slice-work. --- # Работа над фазой diff --git a/.claude/skills/side-work/SKILL.md b/.claude/skills/side-work/SKILL.md index 133a9a4..eb9e2e1 100644 --- a/.claude/skills/side-work/SKILL.md +++ b/.claude/skills/side-work/SKILL.md @@ -1,19 +1,22 @@ --- name: side-work description: >- - Обсуждает задачу вне запланированных срезов, пишет под неё фазы и делает на - отдельной ветке. Используй при «сделай отдельно», «вне среза», «отдельная - задача», «не из фаз», «side-work», «обсуди и сделай». Не для бага - (/bug-work), «сделай фазу N» (/phase-work), волну агентов (/phase-orch) и ревью - (/phase-review). + Обсуждает задачу вне запланированных срезов, пишет под неё фазы в «Вне + очереди» и делает на отдельной ветке. Используй при «сделай отдельно», + «вне среза», «отдельная задача», «не из фаз», «side-work», «обсуди и сделай». + Не для нового именованного среза (/slice-work), бага (/bug-work), «сделай + фазу N» (/phase-work), волны агентов (/phase-orch) и ревью (/phase-review). --- # Отдельная задача вне среза -Задачи нет в индексе — и в уже стоящие срезы она не дописывается. Сначала -согласовать форму, потом документы в **своём** срезе, потом код как у +Склейка уже живых систем и мелкий DX. В уже стоящие срезы не дописывается. +Сначала согласовать форму, потом фаза в **«Вне очереди»**, потом код как у `/phase-work`. Код до документов не писать. +Новый кусок игры с этапами и остановкой посередине — не этот скилл, +[slice-work](../slice-work/SKILL.md). + «Обсуди и сделай» — идти до конца после короткого согласования. Стоп, только если выбор меняет протокол, сейв или инвариант. @@ -21,7 +24,8 @@ description: >- Прочитай `docs/phases/README.md`, `docs/bugs/README.md`, инварианты в `AGENTS.md` и затронутые дизайн-доки. Это уже чья-то фаза в индексе — скажи -и отдай `/phase-work`. Регрессия уже сделанного — `/bug-work`. +и отдай `/phase-work`. Регрессия уже сделанного — `/bug-work`. Этапы, новый +кусок игры, остановка посередине целой школой — `/slice-work`. Два–пять вопросов, два–три варианта, **рекомендация обязательна**. Спросить только форму: что увидит игрок; протокол / HTTP / сейв; какой инвариант; одна @@ -34,12 +38,12 @@ description: >- **Баг / регрессия** — не этот скилл, [bug-work](../bug-work/SKILL.md). -**Мелкое** (дырка, одна кнопка, DX) — фаза в секции **«Вне очереди»** в конце -индекса. Это срез без номера, чтобы не спорить со срезом 10. Дизайн — `##` в -`docs/design/off-queue.md`; файла нет — заведи с заголовком, зачем он. +**Новый срез** — не этот скилл, [slice-work](../slice-work/SKILL.md). -**Крупное** (этапы, остановка посередине, новый кусок игры) — именованный срез -со следующим номером и `docs/design/.md`. «Вне очереди» номер не занимает. +**Мелкое** (дырка, одна кнопка, DX, склейка живых систем) — фаза в секции +**«Вне очереди»** в конце индекса. Это срез без номера, чтобы не спорить со +следующим именованным. Дизайн — `##` в `docs/design/off-queue.md`; файла нет — +заведи с заголовком, зачем он. Номер фазы: максимум по `docs/phases/*.md` и индексу, плюс один, затем `git branch --list "phase/-*"`. Занято — следующий. Гонку ловят ветки, не @@ -52,13 +56,12 @@ description: >- «Тесты…» — контракт для `/phase-review`: каждый пункт станет отдельным тестом по Testing policy в `AGENTS.md`. Дизайн: зачем; «Было / Стало / Почему», если -меняется принятое; что не входит. Индекс — новая строка, статус ⬜. Новый срез, -куда ходят люди — строка в Orientation `AGENTS.md`. +меняется принятое; что не входит. Индекс — новая строка, статус ⬜. Протокол, HTTP, сейв — назвать явно. Версию не бампать: это коммит с кодом. -Покажи срез, фазы и Стоп. Просил только документы — здесь конец. Просил сделать -— сразу шаг 4. +Покажи фазы и Стоп. Просил только документы — здесь конец. Просил сделать — +сразу шаг 4. ## 4. Работа diff --git a/.claude/skills/slice-work/SKILL.md b/.claude/skills/slice-work/SKILL.md new file mode 100644 index 0000000..25f1041 --- /dev/null +++ b/.claude/skills/slice-work/SKILL.md @@ -0,0 +1,95 @@ +--- +name: slice-work +description: >- + Обсуждает и заводит новый именованный срез: дизайн-док, фазы, строка в + индексе. Используй при «новый срез», «заведи срез», «спланируй срез», + «обсуди срез», «slice-work». Не пишет код. Не для мелкого DX и склейки + (/side-work), бага (/bug-work), одной фазы (/phase-work), волны уже + стоящего среза (/phase-orch) и ревью (/phase-review). +--- + +# Новый срез + +Полноценный кусок игры: свой номер, свой дизайн-док, этапы, после каждого +можно остановить школу целой. Это не дырка и не DX — то `/side-work`. Код +не писать: после документов — `/phase-orch` или `/phase-work`. + +«Обсуди и сделай» здесь — согласовать и **записать документы**, не реализовать +срез в этом чате. + +## Когда это + +Прочитай `docs/phases/README.md`, `docs/bugs/README.md`, инварианты в +`AGENTS.md` и соседние дизайн-доки. + +- Уже чья-то фаза в индексе — скажи и отдай `/phase-work`. +- Регрессия уже сделанного — `/bug-work`. +- Склейка живых систем, одна кнопка, DX — `/side-work` в «Вне очереди». +- «Веди срез» про уже стоящие ⬜ — `/phase-orch`, не этот скилл. +- «Проверь срез» — `/phase-review`. + +Живой срез с открытыми ⬜ не дописывай, пока не попросили явно. Следующий +номер — после последнего именованного; «Вне очереди» номер среза не занимает. + +## 1. Обсуждение + +Два–пять вопросов, два–три варианта, **рекомендация обязательна**. Спросить +форму среза: + +- что увидит и сделает игрок; +- протокол / HTTP / сейв; +- какой инвариант; +- этапы, и можно ли остановиться посередине целой школой; +- чего в срезе **нет**; +- на каких срезах стоит; +- ваниль или отдельный пак. + +«Ок», «делай», «как рекомендуешь» — согласие. Молчание — нет. Соседнее +«заодно» в отчёт, не в объём. + +Покажи черновик: номер, этапы, фазы одной строкой, Стоп. Файлы — после +согласия, не до. + +## 2. Номера + +Срез: максимум именованного в индексе, плюс один. + +Фазы: максимум по `docs/phases/*.md` и индексу, плюс один, затем +`git branch --list "phase/-*"`. Занято — следующий. Гонку ловят ветки, +не индекс: у новой фазы на `main` строки ещё нет. + +## 3. Документы + +Как у соседа (`social.md`, `session.md`, `inventory.md`), не новый жанр. + +`docs/design/.md`: + +- шапка: договорённость на срез, не текущий код; ссылки на соседние доки; +- зачем, что увидит игрок, на какие вопросы отвечает, чего **нет**; +- «Что меняется в уже принятом» — Было / Стало / Почему; +- этапы A/B/C…; +- «Где живёт код»; +- «Советы, которые стоит принять сразу»; +- «Заведомо не сейчас»; +- «Зафиксировано этим разговором». + +Фазы — как у соседней, не короче бага: Зависимости, Зачем, Задачи, Тесты +без которых фаза не закрыта, Критерий готовности, Стоп. Галочки все `[ ]`. +«Тесты…» — контракт для `/phase-review`: каждый пункт станет отдельным +тестом по Testing policy в `AGENTS.md`. + +Индекс — новая секция **перед** «Вне очереди», все ⬜, этапы как у 7–9. +Куда ходят люди — строка в Orientation `AGENTS.md`. + +Протокол, HTTP, сейв — назвать явно. Версию не бампать: это коммит с кодом. +🔄 не ставить: фазы ещё никто не взял. + +## 4. Код + +Не этот скилл. Дальше — `/phase-orch`, одну фазу — `/phase-work`. Три фазы +в этот чат не паковать. + +## Отчёт + +Номер среза и slug; путь дизайн-дока; фазы списком; что вне среза; какой +командой начинать код. diff --git a/AGENTS.md b/AGENTS.md index 9dabb19..ccbab65 100644 --- a/AGENTS.md +++ b/AGENTS.md @@ -26,7 +26,8 @@ way; this file is *how to work in them*. | talks, opinions, fights, romance pack | [`docs/design/social.md`](docs/design/social.md) — slice 9, phases 41–47 | | lesson consequences (teacher present, skill, warmth, textbook, weather commute) | [`docs/design/off-queue.md`](docs/design/off-queue.md) — phases 48, 50–53 | | a bug in already-shipped behaviour | `.claude/skills/bug-work` — document in `docs/bugs/`, discuss only if the fix has a fork, then patch | -| a task that is not in any slice | `.claude/skills/side-work` — discuss, document in «Вне очереди» or a new named slice, then implement | +| a task that is not in any slice | `.claude/skills/side-work` — discuss, document in «Вне очереди», then implement | +| a new named slice of the game | `.claude/skills/slice-work` — discuss, write design and phases, then `/phase-orch` | ## Commands diff --git a/docs/bugs/README.md b/docs/bugs/README.md index a723b64..6406b6d 100644 --- a/docs/bugs/README.md +++ b/docs/bugs/README.md @@ -3,8 +3,8 @@ Индекс регрессий в уже сделанном. Статус: ⬜ не начат, 🔄 в работе, ✅ готов. Это не фазы: номера не спорят со срезами, в `docs/phases/` не дублировать. -Новая фича и склейка систем — [«Вне очереди»](../phases/README.md#вне-очереди) -или отдельный срез, скилл `/side-work`. Как работать с багом — +Склейка систем и DX — [«Вне очереди»](../phases/README.md#вне-очереди), скилл +`/side-work`. Новый кусок игры — `/slice-work`. Как работать с багом — [`.claude/skills/bug-work`](../../.claude/skills/bug-work/SKILL.md). | Баг | Статус | Симптом |