go · diff

git:20260825.c1464d3 to git:20260902.5fa5897

8 added, 25 removed. Audit A to A.

---
name: go
description: Построить новый продукт с нуля или добавить крупную часть к существующему — от фразы «хочу вот такое» до работающего куска с доказательством. Использовать, когда человек пишет /go, описывает продукт, который хочет («сделай приложение…», «хочу сайт…», «нужен бот…»), или просит новую большую функцию. Ведёт через манифест требований, четыре гейта и приёмку, которая закрывается кодом возврата, а не словами.
argument-hint: "<что хочешь построить>"
---
# GO — от фразы до доказанного куска
Установщик чинит станок. Этот скилл — про то, что на станке делают.
Правило, определяющее всю конструкцию:
> **Отчёт — это утверждение, а не доказательство.** «Должно работать» и «тесты
> должны проходить» означают, что работа не сделана.
Отсюда и порядок фаз: код пишется в предпоследней, всё до неё выясняет ЧТО
строить, всё после — доказывает, что построили именно это.
## Сколько говорить — прочти до первого слова человеку
Этот файл — короткий стержень; полное лежит в фазах. **То, что ты ГОВОРИШЬ,
короче и того.** Рассуждение, которому место в файле, в чате является шумом. Прогон,
работавший правильно и объяснявший себя на каждом шаге, человек описал словами
«невозможно переварить, давит».
| Момент | Бюджет |
|---|---|
| Между одним вопросом и следующим | **Ничего.** Спроси. Без предисловия, без пересказа прошлого ответа. |
| Конец фазы | **Две строки:** что теперь существует и следующий вопрос. |
| Объяснение понятия | **Только когда спросили**, и сперва короткая версия. |
| Отчёт о записанном файле | **Одна строка:** путь и что решает его содержимое. |
| Вывод команды | Никогда не вставляй. Скажи вердикт и число. |
Никогда: объявлять план фазы до того, как её сделал · пересказывать ответ
человека абзацем · объяснять, ПОЧЕМУ скилл устроен так · печатать таблицу того,
что собираешься построить · вставлять файл, который только что написал.
Проверка перед любым сообщением: **останется ли это верным, если я это удалю?**
Факт уже лежит в файле — удаляй.
Слова стоит тратить ровно на одно: вопрос, несущий настоящее решение. И он
уходит через инструмент вопросов, где слова живут в вариантах, а не в абзаце
над ними.
## Инструменты — один пакет, один корень
`${CLAUDE_PLUGIN_ROOT}` указывает на корень этого пакета, и все инструменты
лежат в нём: `$CLAUDE_PLUGIN_ROOT/tools/<имя>.py`. Путь пишется целиком в
каждом вызове — не ради многословия, а ради проверяемости: ворота проводки
читают именно эту строку и падают, если названного файла в пакете нет.
Сокращать её переменной нельзя. `T="$CLAUDE_PLUGIN_ROOT/tools"` короче, но
делает вызовы невидимыми для ворот, и первая же опечатка в имени доживёт до
человека под видом «нет такого файла» — то есть будет прочитана как поломка
установки, а не как опечатка.
Позиционных параметров здесь нет намеренно: движок подставляет аргументы
слэш-команды прямо в текст скилла, и `"$1"` в теле функции превратился бы в
слово из просьбы человека. На живом прогоне `/go прогон брифа студии керамики`
это уже случилось — вызов пошёл искать инструмент с именем «брифа».
Инструмент не найден — это опечатка в имени, а не поломка окружения: все
инструменты лежат в этом пакете, и ставится он одной записью целиком.
Рабочий каталог прогона — `.superstack/`.
## Порядок фаз — и где лежит каждая
Здесь только стержень: что делает фаза и чем закрывается. Подробности лежат
рядом, и каждая читается в свой момент, а не на входе в прогон.
| фаза | чем закрывается |
|---|---|
| 0 Завести | бриф записан дословно, панель хода открыта |
| 1 Понять | гейт **G1** — ни одного нерешённого требования |
| 2 Спека | гейт **G2** — сверка чужими глазами, папка настроена из спеки |
| 2.5 Направление | дизайн-система, если у продукта есть интерфейс |
- | 3 План | **человек подтверждает.** Код до этого не пишется |
+ | 3 План | гейт **G3** — план трассируется к требованиям в обе стороны; **человек подтверждает.** Код до этого не пишется |
| 4 Работа | таски уходят исполнителям, возвраты разбираются кодом |
| 5 Верификация | `verify.py` ≠ 0 закрывает ход; планка проекта считает «готово ли» |
| 5.4 Безопасность | если продукт выходит к людям |
| 5.5 Глазами | открыть и посмотреть, прежде чем показывать |
| 6 Слепая приёмка | гейт **G4** — независимый вердикт против манифеста |
| 7 Что переживёт | память проекта, решения, связность документов |
| 8 Отчёт | собирается из файлов, уходит человеку туда, где он его увидит |
- **Фаза 0 — ЗАВЕСТИ.** Читается на входе в фазу — прочти файл целиком:
- `$CLAUDE_PLUGIN_ROOT/skills/go/phases/0-завести.md`
+ Файл фазы читается ЦЕЛИКОМ и в свой момент. Не «просмотреть по диагонали» и
+ не «вспомнить, как было в прошлый раз»: половина механизмов внутри — это
+ отказы, которые срабатывают один раз за прогон, и по памяти они выполняются
+ через раз.
- **Фаза 1 — ПОНЯТЬ.** Читается на входе в фазу — прочти файл целиком:
+ Читается на входе в фазу — прочти файл целиком. Фазы 0–4:
+ `$CLAUDE_PLUGIN_ROOT/skills/go/phases/0-завести.md`
`$CLAUDE_PLUGIN_ROOT/skills/go/phases/1-понять.md`
-
- **Фаза 2 — СПЕКА.** Читается на входе в фазу — прочти файл целиком:
`$CLAUDE_PLUGIN_ROOT/skills/go/phases/2-спека.md`
-
- **Фаза 3 — ПЛАН.** Читается на входе в фазу — прочти файл целиком:
`$CLAUDE_PLUGIN_ROOT/skills/go/phases/3-план.md`
-
- **Фаза 4 — РАБОТА.** Читается на входе в фазу — прочти файл целиком:
`$CLAUDE_PLUGIN_ROOT/skills/go/phases/4-работа.md`
- **Фаза 5 — ВЕРИФИКАЦИЯ.** Читается на входе в фазу — прочти файл целиком:
+ Читается на входе в фазу — прочти файл целиком. Фазы 5–8:
`$CLAUDE_PLUGIN_ROOT/skills/go/phases/5-верификация.md`
-
- **Фаза 5.5 — ГЛАЗАМИ.** Читается на входе в фазу — прочти файл целиком:
`$CLAUDE_PLUGIN_ROOT/skills/go/phases/5.5-глазами.md`
-
- **Фаза 6 — СЛЕПАЯ ПРИЁМКА.** Читается на входе в фазу — прочти файл целиком:
`$CLAUDE_PLUGIN_ROOT/skills/go/phases/6-приёмка.md`
-
- **Фаза 7 — ЧТО ПЕРЕЖИВЁТ.** Читается на входе в фазу — прочти файл целиком:
`$CLAUDE_PLUGIN_ROOT/skills/go/phases/7-переживёт.md`
-
- **Фаза 8 — ОТЧЁТ.** Читается на входе в фазу — прочти файл целиком:
`$CLAUDE_PLUGIN_ROOT/skills/go/phases/8-отчёт.md`
-
-
- Файл фазы читается ЦЕЛИКОМ и в свой момент. Не «просмотреть по диагонали» и
- не «вспомнить, как было в прошлый раз»: половина механизмов внутри — это
- отказы, которые срабатывают один раз за прогон, и по памяти они выполняются
- через раз.
## Фаза 2.5 — НАПРАВЛЕНИЕ И ДИЗАЙН
**Нужна, если у продукта есть интерфейс** — сайт, приложение, панель.
Для бота, скрипта и библиотеки не нужна. Дизайн делается здесь, на холсте,
и подтягивается в код значениями, а не пересказом.
Нужна — прочти файл целиком и веди фазу по нему, а не по памяти:
`$CLAUDE_PLUGIN_ROOT/skills/go/phases/direction.md`
Не нужна — скажи одной строкой, что пропускаешь и почему. Пропустить,
не сказав, нельзя: человек не отличит «решили, что не нужно» от «забыли».
## Фаза 5.4 — БЕЗОПАСНОСТЬ И НАГРУЗКА
**Нужна, если продукт выходит к людям** — принимает данные, деньги, файлы
или запросы извне.
Нужна — прочти файл целиком и веди фазу по нему, а не по памяти:
`$CLAUDE_PLUGIN_ROOT/skills/go/phases/security.md`
Не нужна — скажи одной строкой, что пропускаешь и почему. Пропустить,
не сказав, нельзя: непроверенное и проверенное на вид одинаковы.
## Чего делать нельзя
- Писать код до подтверждения плана
- Закрывать ход при коде возврата ≠ 0
- Считать «тестов нет» успехом
- Править тест ради зелёного
- Снимать требование самому — это делает только человек, своей цитатой
- Править файлы проекта своими руками вместо агента `builder`
- Читать дифф в свой контекст: нужен вердикт и имена упавшего, не материал
- Говорить «готово», не пройдя G4