порядок проходов ревью — граф, а не номера стадий
Номер стадии не означал зависимости: между стадиями 1–4 ни один проход не читает вывод другого, и очередь между ними была платой ни за что. А правило про замеры держалось на двух именах и рассыпалось бы в день, когда мерить начнёт третий проход. Рёбер три вида, и они разной природы: зависимость (гейт → опиниативные, все проходы → триаж), конфликт за ресурс (ненаправленный) и барьер стоимости. Стадии остаются единицей состава, порядок задаёт граф: уходит всё, у чего входящие рёбра закрыты. Сериализует ресурс, а не имена: пометка «держит машину» — gate, adversary, ops, triage; остальные читают и рассуждают. Проект вправе пометить свой проход, снять пометку с перечисленных — нет. Ранний выход заменён барьером стоимости и стоит там, где выход зарабатывал: перед reimpl и architecture, то есть только в deep. Отдельным абзацем — что ребро значит порядок и никогда не данные: графовый словарь провоцирует обратное прочтение, а проход, увидевший чужие находки, соглашается с ними. Исключение одно и оно же сток. Диаграммы — mermaid, прогнаны через mermaid-cli. Режим прогона теперь «по графу» / «линейно»; task-batch и task-pipeline подтянуты под общий словарь, adversary и ops знают о пометке из своих charter'ов. DECISIONS 15. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -994,3 +994,62 @@ HTML-комментарии, невидимые в отрендеренном ma
|
||||
фиксированный порт или файл БД, и проект, умеющий поднимать один экземпляр, —
|
||||
основание гнать по одной даже после просьбы, сказанное строкой: просьба была
|
||||
про параллельность, а не про сломанные тесты.
|
||||
|
||||
## 15. Порядок проходов ревью — граф зависимостей (2026-08-03)
|
||||
|
||||
### Что было
|
||||
|
||||
Решение 14 перевернуло умолчание, но оставило порядок в прежней форме: «стадии
|
||||
идут по порядку номеров, параллельность — только внутри стадии». Номер стадии при
|
||||
этом ничего не означает: между стадиями 1–4 ни один проход не читает вывод
|
||||
другого, так что очередь между ними была платой ни за что. А правило про замеры
|
||||
держалось на **двух именах** — `adversary` и `ops`, — и рассыпалось бы в тот
|
||||
день, когда мерить начнёт третий проход или проект добавит свой.
|
||||
|
||||
### Решено
|
||||
|
||||
**XX. Порядок задаёт граф; стадии остаются единицей состава.** Профиль
|
||||
по-прежнему набирается стадиями, но запускается всё, у чего закрыты входящие
|
||||
рёбра. Рёбер три вида, и смешивать их нельзя: **зависимость** (гейт → все
|
||||
опиниативные, все проходы → триаж), **конфликт за ресурс** (ненаправленный, между
|
||||
теми, кто держит машину), **барьер стоимости** (только `deep`).
|
||||
|
||||
**YY. Сериализует ресурс, а не имена.** Пометка «держит машину» — таблицей в
|
||||
скилле: `gate`, `adversary`, `ops`, `triage`; читают и рассуждают — `specs`,
|
||||
`code`, `reimpl`, `architecture`, `rubric`. Проект вправе пометить свой проход в
|
||||
`docs/review.md`; снимать пометку с перечисленных нельзя. Правило теперь
|
||||
самораспространяется: начнёт проход мерить — попадёт в цепочку по факту, а не по
|
||||
поправке.
|
||||
|
||||
**ZZ. Ранний выход заменён барьером стоимости.** Он стоит там, где ранний выход
|
||||
зарабатывал: перед `reimpl` (пишет реализацию целиком) и `architecture`. В
|
||||
`quick`/`standard` барьера нет — стадий 3–4 там не бывает; в `design` нет по
|
||||
другой причине — предметом там и является форма, защищать нечего.
|
||||
|
||||
**AAA. Ребро — это порядок, никогда не данные.** В обычном графе задач ребро
|
||||
тянет за собой вывод предшественника; здесь это запрещено: проход, увидевший
|
||||
чужие находки, соглашается с ними, и декорреляция — вся ценность конвейера —
|
||||
обнуляется. Сказано в самом правиле, потому что графовый словарь провоцирует
|
||||
ровно эту ошибку. Исключение одно и оно же сток: триаж.
|
||||
|
||||
**BBB. Диаграммы в скиллах — `mermaid`.** Граф, описанный прозой, читается как
|
||||
инструкция и теряет форму; диаграмма показывает её целиком. Четыре штуки: общий
|
||||
граф прогона, граф профиля `design`, пример графа задач батча, веер финальной
|
||||
сверки.
|
||||
|
||||
### Что из этого следует
|
||||
|
||||
59. **Триаж — сток по определению, а не «стадия 5».** Отсюда без отдельного
|
||||
обоснования следует правило, которое раньше приходилось защищать: на неполном
|
||||
графе триаж не запускается, потому что агрегировал бы половину и выглядел бы
|
||||
полным.
|
||||
60. **Словарь рёбер общий у ревью и батча.** «Жёсткая зависимость» и
|
||||
«сериализуемое пересечение» в `task-batch` — те же два вида рёбер;
|
||||
формулировки сведены, и в обоих скиллах стоит ссылка на другой.
|
||||
61. **Значения режима стали `по графу` и `линейно`.** Прежние «параллельно» и
|
||||
«последовательно» описывали способ запуска, а не структуру; линеаризация
|
||||
осталась отступлением с тремя причинами (оператор, занятая машина, разбор
|
||||
самого конвейера).
|
||||
62. **Проход, держащий машину, знает об этом из своего charter'а.** `adversary` и
|
||||
`ops` получили по абзацу: цепочка гарантирует им чистое железо, значит их
|
||||
число — оракул, и шум в нём объясняется замером, а не соседом.
|
||||
|
||||
Reference in New Issue
Block a user