diff --git a/docs/the-whole-chain.md b/docs/the-whole-chain.md new file mode 100644 index 0000000000..5301291857 --- /dev/null +++ b/docs/the-whole-chain.md @@ -0,0 +1,57 @@ +# Цепь, пройденная целиком + +Issue: gHashTag/trios#1186 · Часть эпика #1090 + +## Что это за заметка + +Эпик [#1090](https://github.com/gHashTag/trios/issues/1090) собирает систему +«Королева-надзиратель»: задача живёт в своём чате, пчела держит только свою +задачу, Королева держит только карту. Отдельные звенья давно работали — issue +приходили, спецификации рендерились, чаты открывались, пчёлы отчитывались, — +но сам цикл ни разу не доходил до конца. В списке «что осталось» так и +сказано: цикл ни разу не дошёл до pull request, Королева никогда ничего не +ревьюила и не мержила. + +Задача #1186 существует ради одного: показать круг на настоящей работе +(«показать круг на настоящей работе» — формулировка из тела issue). Эта +заметка — сам груз той задачи: она родилась как issue, стала спецификацией +формата Spec Kit (Intent / Acceptance criteria / Boundary / Out of scope / +Verification), вошла в чат, была исполнена работником внутри границы и +пройдёт ревью Королевой по критериям приёмки. + +## Цепь звено за звеном + +Полный цикл из эпика: issue → спецификация → чат → работа пчелы → ветка → +PR → ревью Королевой по критериям приёмки → мерж → архив чата. Цикл считается +пройденным, только когда выдержано каждое звено: + +1. **Issue.** Задача пришла как GitHub issue #1186 — простой запрос на + заметку, без собственного кода. +2. **Спецификация.** Issue превращён в бриф Spec Kit: намерение, критерии + приёмки, граница файлов, что вне рамок. Бриф называет один файл и два + критерия — мало нарочно: демонстрация про цепь, а не про груз. +3. **Чат.** Один чат, одна пчела. Пчела держит только свою задачу, Королева — + только карту; история Королевы в чат пчелы не протекает. +4. **Работа.** Работник пишет этот файл внутри границы из спецификации, не + трогая ничего больше и не делая коммитов: checkout общий с человеком, со + сборкой и с остальными пчёлами. +5. **Ветка.** Правки принадлежат ветке задачи (`queen/1186-r1`), Королева + attribution'ит их после хода работника. +6. **Ревью.** Королева читает диф против критериев приёмки, не против вкуса. + Непроверенный критерий — не зачёт; приёмка блокируется, пока каждый + критерий не получил вердикт. +7. **Мерж и архив.** Диф приземляется, чат, носивший задачу, закрывается. + Заметка, читаемая на приземлённой ветке, — закрывающая скобка цикла. + +## Зачем она останется в репозитории + +До #1186: звенья, работавшие поодиночке, и цикл, останавливавшийся не дойдя +до pull request. После: круг, пройденный целиком на настоящей работе, и +заметка, которая говорит об этом прямо. Соседние заметки разбирают отдельные +звенья — где рвалась цепь ревью, как доказывается мерж, как судятся критерии. +Эта несёт единственное, чего не могла ни одна из них: цепь, выдержанную +целиком. + +*2026-08-19, вторая попытка: первая была возвращена Королевой — файл оказался +в чужом checkout и не был attribution'ит ветке задачи. Этот проход пишет файл +там, где его ждёт критерий.*