diff --git a/AGENTS.md b/AGENTS.md index 86d2e890..899a16b3 100644 --- a/AGENTS.md +++ b/AGENTS.md @@ -40,10 +40,16 @@ task records: problem, scope, acceptance criteria and discussion. of a status and `rejected` on a closed issue. Exactly one `S*` label per open issue. Labels are the whole of it: GitHub Projects is no longer used. -Two shortcuts exist for small work. `small` — the light track: the spec lives in -the issue body and its review is a comment. `trivial` — the short track: no spec -stage at all, `S2-analysis` straight to `S5-ready`, with the AC written into the -issue body first. `trivial` requires a bug confined to one surface with no new UX +**The light track is the default, not a shortcut** (owner's decision 2026-08-27, +issue #338). `small` — the spec lives in the issue body and its review is a +comment. Analysis names the `small` criterion the task *fails* when it takes the +full track; "ordinary track" without a named criterion is not a justification. +The threshold itself did not move — only which side carries the proof. The full +track stays what it was for geometry, config migrations and public contracts, +where a criterion is broken plainly and saying which one is easy. + +`trivial` — the short track: no spec stage at all, `S2-analysis` straight to +`S5-ready`, with the AC written into the issue body first. `trivial` requires a bug confined to one surface with no new UX contract, no migration, no i18n, no perf or touch impact, at most three checkable AC, **and expected behaviour already on record** — nothing left to decide. Code review is never skipped on either track; it is what stands in for testing. @@ -274,7 +280,9 @@ the owner splits the task, rejects it, or arbitrates. On the light track (`small`: complexity ≤3, one surface, no config migration, no new UX contract, no perf or touch impact — all at once) the spec lives in the issue -body and the spec review is a comment. Code review is never skipped. +body and the spec review is a comment. Code review is never skipped. This track is +the default: taking the full one means naming the criterion above that the task +does not meet. ## Specs diff --git a/PROCESS.md b/PROCESS.md index 86dcee73..97eb23b3 100644 --- a/PROCESS.md +++ b/PROCESS.md @@ -101,7 +101,9 @@ S1-new → S2-analysis → S3-spec → S4-spec-review ⟲ → S5-ready → 5. приоритет **P1/P2/P3**; 6. тип: баг / фича / техдолг; 7. затронутые поверхности (модули, диалоги, бэкенд, i18n); - 8. трек: обычный / `small` / `trivial` по критериям §5 и §5.1. + 8. трек — **по умолчанию `small`** (§5). Если задача идёт полным треком, + называется критерий §5, который она не проходит: «обычный трек» без + названного критерия обоснованием не является. - **Оценки и приоритет ставятся метками сразу, согласие не запрашивается.** Комментарий аналитики — уведомление, а не запрос: **молчание владельца — согласие**, несогласие он выражает правкой меток или комментарием, и это не @@ -348,9 +350,26 @@ S1-new → S2-analysis → S3-spec → S4-spec-review ⟲ → S5-ready → --- -## 5. Лёгкий трек (метка `small`) +## 5. Лёгкий трек (метка `small`) — путь по умолчанию -**Критерии — все одновременно:** +Умолчание изменено решением владельца 2026-08-27, issue #338. Прежде полный трек +был бесплатен, а выбор лёгкого требовал обоснования. Фактическая цена: **2.9 +ревью-документа на задачу** в среднем и до шести на одну issue (#329, #316, +#290) — при том что Medium-находки всё равно чинятся в той же задаче, без +отдельного цикла. + +**Порог не изменился.** Критерии ниже те же и по-прежнему обязательны все +одновременно. Изменилась сторона доказательства: теперь обосновывается не выбор +лёгкого трека, а отказ от него — в `S2-analysis` называется критерий, который +задача не проходит. Полный трек остаётся тем, чем был, для геометрии, миграций +конфига и публичных контрактов: там критерии нарушаются сами, и назвать +нарушенный несложно. + +Инверсия умолчания не отменяет ничего из §5 ниже и ничего из §4: бюджет четырёх +циклов, арбитраж владельца, обязательность ТЗ на полном треке и правило «ревью +до мержа» остаются как были. Меняется только стоимость пути по умолчанию. + +**Критерии — все одновременно; нарушенный называется явно:** - сложность и риск ≤ 3; - одна поверхность (один диалог, один модуль, один эндпоинт);