mirror of
https://github.com/Matysh/houseplan-card
synced 2026-09-29 03:09:36 +00:00
docs: record that a green verdict spends no review budget
Validate / docs (push) Failing after 27s
Validate / provenance (push) Successful in 54s
Validate / process-gate (push) Failing after 44s
Validate / changes (push) Successful in 39s
Validate / reuse (push) Successful in 45s
Validate / hacs (push) Failing after 16s
Validate / hassfest (push) Failing after 13s
Validate / frontend (push) Successful in 6m37s
Validate / backend (push) Failing after 9m6s
Validate / performance_smoke (push) Failing after 18m53s
Validate / smoke (push) Failing after 39m24s
Validate / golden (push) Failing after 11m5s
Validate / docs (push) Failing after 27s
Validate / provenance (push) Successful in 54s
Validate / process-gate (push) Failing after 44s
Validate / changes (push) Successful in 39s
Validate / reuse (push) Successful in 45s
Validate / hacs (push) Failing after 16s
Validate / hassfest (push) Failing after 13s
Validate / frontend (push) Successful in 6m37s
Validate / backend (push) Failing after 9m6s
Validate / performance_smoke (push) Failing after 18m53s
Validate / smoke (push) Failing after 39m24s
Validate / golden (push) Failing after 11m5s
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
This commit is contained in:
+21
-5
@@ -307,11 +307,24 @@ S1-new → S2-analysis → S3-spec → S4-spec-review ⟲ → S5-ready →
|
|||||||
|
|
||||||
## 4. Лимит циклов ревью: 4
|
## 4. Лимит циклов ревью: 4
|
||||||
|
|
||||||
Оба ревью-гейта возвращают задачу на правки не более **4 раз**. Счётчик виден в
|
Оба ревью-гейта возвращают задачу на правки не более **4 раз**.
|
||||||
имени документа: `-r1` … `-r4`; на четвёртом заходе ставится метка `review-4`.
|
|
||||||
|
|
||||||
- **Что считается циклом:** отправка на ревью → вердикт с блокирующими находками
|
- **Что считается циклом:** отправка на ревью → вердикт с блокирующими находками
|
||||||
→ возврат. Уточняющий вопрос без вердикта циклом не считается.
|
→ возврат. Уточняющий вопрос без вердикта циклом не считается.
|
||||||
|
- **Зелёный вердикт цикла не образует** и бюджет не тратит (решение владельца
|
||||||
|
2026-08-20, issue #227): он ничего не вернул на правки. Практический случай —
|
||||||
|
зелёное ревью, слияние которого не удалось: конвейер сам предписывает ребейз и
|
||||||
|
возврат метки, и этот заход не должен наказываться. Раньше счётчик считал все
|
||||||
|
вердикты подряд, и на #225 последовательность жёлтый → зелёный → ребейз дала
|
||||||
|
`review-4` на задаче с зелёным ревью и зелёным CI.
|
||||||
|
- **Заход и цикл — разные величины.** Заход — сколько раз ревью отработало; он
|
||||||
|
виден в имени документа (`-r1`, `-r2`, …) и нужен, чтобы два документа не
|
||||||
|
затёрли друг друга. Цикл — единица бюджета §4. Заходов законно бывает больше,
|
||||||
|
чем циклов, поэтому порог проверки 7 в `scripts/process-gate.mjs` выше лимита
|
||||||
|
циклов (шесть документов = четыре цикла плюс два ребейза).
|
||||||
|
- Метка `review-4` ставится, когда исчерпан **бюджет циклов**; конвейер снимать
|
||||||
|
её не вправе — это решение владельца. Если бюджет пересчитан и оказался ниже
|
||||||
|
лимита, конвейер сообщает пересчёт, но метку не трогает.
|
||||||
- **Исчерпание лимита — не «пятая попытка», а разбор.** Задача уходит владельцу,
|
- **Исчерпание лимита — не «пятая попытка», а разбор.** Задача уходит владельцу,
|
||||||
решение одно из трёх:
|
решение одно из трёх:
|
||||||
1. **разделить** — issue закрывается как «заменён», вместо него 2–3 меньших с
|
1. **разделить** — issue закрывается как «заменён», вместо него 2–3 меньших с
|
||||||
@@ -488,9 +501,12 @@ issue #NN
|
|||||||
- **Занятие:** `Взял: <роль> · сессия <id> · ветка issue/NN-slug`
|
- **Занятие:** `Взял: <роль> · сессия <id> · ветка issue/NN-slug`
|
||||||
- **Хендофф:** `Сделано: … · Файлы: … · Гейты: <команда → результат> ·
|
- **Хендофф:** `Сделано: … · Файлы: … · Гейты: <команда → результат> ·
|
||||||
НЕ сделано: … · Риски: … · Следующий статус: … · Новые issue: #…`
|
НЕ сделано: … · Риски: … · Следующий статус: … · Новые issue: #…`
|
||||||
- **Вердикт ревью:** `Вердикт: зелёный/жёлтый/красный · цикл r<N>/<лимит> ·
|
- **Вердикт ревью:** `Вердикт: зелёный/жёлтый/красный · заход r<N> ·
|
||||||
High: N · Medium: N → в задаче | #… · Документ: docs/reviews/…`
|
блокирующих циклов K/<лимит> · High: N · Medium: N → в задаче | #… ·
|
||||||
(«→ #…» — только у Medium вне скоупа; находки в скоупе возвращаются автору)
|
Документ: docs/reviews/…`
|
||||||
|
(«→ #…» — только у Medium вне скоупа; находки в скоупе возвращаются автору.
|
||||||
|
Заход — номер прогона ревью, K — израсходованный бюджет §4: зелёные вердикты
|
||||||
|
его не тратят, поэтому заход и K расходятся, #227)
|
||||||
- **Закрытие:** `Выпущено в <тег беты> · CI: <ссылка> · Changelog: <ссылка>`
|
- **Закрытие:** `Выпущено в <тег беты> · CI: <ссылка> · Changelog: <ссылка>`
|
||||||
|
|
||||||
**Вперёд двигает только зелёный вердикт.** Жёлтый и красный возвращают автору;
|
**Вперёд двигает только зелёный вердикт.** Жёлтый и красный возвращают автору;
|
||||||
|
|||||||
Reference in New Issue
Block a user