From 07f1b8c6742362e9540b0ead9b1a5a965e09af93 Mon Sep 17 00:00:00 2001 From: Matysh Date: Fri, 21 Aug 2026 00:01:19 +0300 Subject: [PATCH] docs: record that a green verdict spends no review budget MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Section 4 now says what the pipeline does: a cycle is a verdict with blocking findings followed by a return to the author, so a green verdict consumes nothing — the case that cost #225 an arbitration after a failed merge forced a rebase and a third attempt. The canon also separates the two quantities the verdict line carries. The attempt number names the review document, because two runs sharing a number would overwrite each other's artefact; the budget counts blocking cycles only. That is why the document threshold in the process gate sits above the cycle limit, and why the guard reports a recount of review-4 rather than removing the label itself. Issue: #227 User-Visible: no --- PROCESS.md | 26 +++++++++++++++++++++----- 1 file changed, 21 insertions(+), 5 deletions(-) diff --git a/PROCESS.md b/PROCESS.md index 16f70897..49246d57 100644 --- a/PROCESS.md +++ b/PROCESS.md @@ -307,11 +307,24 @@ S1-new → S2-analysis → S3-spec → S4-spec-review ⟲ → S5-ready → ## 4. Лимит циклов ревью: 4 -Оба ревью-гейта возвращают задачу на правки не более **4 раз**. Счётчик виден в -имени документа: `-r1` … `-r4`; на четвёртом заходе ставится метка `review-4`. +Оба ревью-гейта возвращают задачу на правки не более **4 раз**. - **Что считается циклом:** отправка на ревью → вердикт с блокирующими находками → возврат. Уточняющий вопрос без вердикта циклом не считается. +- **Зелёный вердикт цикла не образует** и бюджет не тратит (решение владельца + 2026-08-20, issue #227): он ничего не вернул на правки. Практический случай — + зелёное ревью, слияние которого не удалось: конвейер сам предписывает ребейз и + возврат метки, и этот заход не должен наказываться. Раньше счётчик считал все + вердикты подряд, и на #225 последовательность жёлтый → зелёный → ребейз дала + `review-4` на задаче с зелёным ревью и зелёным CI. +- **Заход и цикл — разные величины.** Заход — сколько раз ревью отработало; он + виден в имени документа (`-r1`, `-r2`, …) и нужен, чтобы два документа не + затёрли друг друга. Цикл — единица бюджета §4. Заходов законно бывает больше, + чем циклов, поэтому порог проверки 7 в `scripts/process-gate.mjs` выше лимита + циклов (шесть документов = четыре цикла плюс два ребейза). +- Метка `review-4` ставится, когда исчерпан **бюджет циклов**; конвейер снимать + её не вправе — это решение владельца. Если бюджет пересчитан и оказался ниже + лимита, конвейер сообщает пересчёт, но метку не трогает. - **Исчерпание лимита — не «пятая попытка», а разбор.** Задача уходит владельцу, решение одно из трёх: 1. **разделить** — issue закрывается как «заменён», вместо него 2–3 меньших с @@ -488,9 +501,12 @@ issue #NN - **Занятие:** `Взял: <роль> · сессия · ветка issue/NN-slug` - **Хендофф:** `Сделано: … · Файлы: … · Гейты: <команда → результат> · НЕ сделано: … · Риски: … · Следующий статус: … · Новые issue: #…` -- **Вердикт ревью:** `Вердикт: зелёный/жёлтый/красный · цикл r/<лимит> · - High: N · Medium: N → в задаче | #… · Документ: docs/reviews/…` - («→ #…» — только у Medium вне скоупа; находки в скоупе возвращаются автору) +- **Вердикт ревью:** `Вердикт: зелёный/жёлтый/красный · заход r · + блокирующих циклов K/<лимит> · High: N · Medium: N → в задаче | #… · + Документ: docs/reviews/…` + («→ #…» — только у Medium вне скоупа; находки в скоупе возвращаются автору. + Заход — номер прогона ревью, K — израсходованный бюджет §4: зелёные вердикты + его не тратят, поэтому заход и K расходятся, #227) - **Закрытие:** `Выпущено в <тег беты> · CI: <ссылка> · Changelog: <ссылка>` **Вперёд двигает только зелёный вердикт.** Жёлтый и красный возвращают автору;