gate и autotests сведены к одному имени
Тема звалась autotests, а закрывающий её проход — gate, и на всех трёх ступенях это была одна и та же клетка таблицы. Одна сущность под двумя именами — та же ошибка, что и два разных под одним, только тише: она не путает, а теряет. Вопрос проекта в docs/review адресуется теме; адресованный проходу не приезжает никуда, и ровно этот отказ уже случился однажды с ops. Победило имя темы. Тема первична по правилу 0, а имена тем — это имена документов: docs/autotests.md проект напишет (что покрыто, что нарочно нет, где testdata), docs/gate.md не напишет никто, потому что гейт это команда, а не предмет. Слово «гейт» к тому же занято дважды — команда проекта и ребро графа; третьим значением стал бы нечитаемым отчёт, где «гейт красный» и «гейт нашёл» про разное. И тема шире гейта ровно на «чего в гейте намеренно нет». Цена названа честно: autotests звучит уже своего содержимого — линт, типы и сканер уязвимостей тестами не являются. Гасится строкой в уставе: тема — это «проверено ли машиной», а не «есть ли тесты», гейт в ней инструмент, а не граница. Слово «гейт» осталось ровно в одном значении — команда проекта. Все прочие вхождения (семантика гейта, «пока гейт красный», финальный гейт в task-batch) именно про неё и не тронуты. Побочно: autotests — единственная тема, чей дом лежит не в docs/, а в CLAUDE.md. Канон править не пришлось: список тем открытый, и заведённый когда-нибудь docs/autotests.md ляжет на существующее имя. Тема 37 в DECISIONS.md, следствия 141-142. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -142,7 +142,7 @@ description: "Конвейер ревью изменения, устроенны
|
||||
|
||||
| Модель | Цвет | Проходы | Почему |
|
||||
|---|---|---|---|
|
||||
| `sonnet` | green | scope, gate, ops | вывод перечислим и сверяется механически |
|
||||
| `sonnet` | green | scope, autotests, ops | вывод перечислим и сверяется механически |
|
||||
| `opus` | yellow | specs, code, basics, adversary, rubric, architecture, triage | дорога ошибка — ложная либо пропущенная |
|
||||
|
||||
**Цвет charter'а кодирует модель, а не роль прохода.** Это единственное
|
||||
@@ -210,7 +210,7 @@ charter'а, а модель потом двигает калибровка, и
|
||||
| Тема | `quick` | `standard` | `wide` |
|
||||
|---|---|---|---|
|
||||
| `requirements` | `specs` | `specs` | `specs` |
|
||||
| `autotests` | `gate` | `gate` | `gate` |
|
||||
| `autotests` | `autotests` | `autotests` | `autotests` |
|
||||
| `conventions` | `code` | `code` | `code` |
|
||||
| `architecture` | `basics`, сверка | `basics`, разбор | `architecture`, доказательство |
|
||||
| `security` | `basics`, сверка | `basics`, разбор | `adversary`, доказательство |
|
||||
@@ -352,7 +352,7 @@ charter'а, а модель потом двигает калибровка, и
|
||||
```mermaid
|
||||
flowchart TD
|
||||
scope["scope — разметка<br/>(стадия 0, темы и ступень)"]
|
||||
gate["gate<br/>(стадия 1, держит машину)"]
|
||||
autotests["autotests<br/>(стадия 1, держит машину)"]
|
||||
specs["specs"]
|
||||
code["code"]
|
||||
basics["basics<br/>(quick, standard: темы;<br/>wide: только свои темы проекта)"]
|
||||
@@ -361,13 +361,13 @@ flowchart TD
|
||||
architecture["architecture<br/>(wide)"]
|
||||
triage["triage — единственный сток"]
|
||||
|
||||
scope -->|план| gate
|
||||
gate -->|зелёный| specs
|
||||
gate -->|зелёный| code
|
||||
gate -->|"зелёный, темы по плану"| basics
|
||||
gate -->|"зелёный, wide"| adversary
|
||||
gate -->|"зелёный, wide"| ops
|
||||
gate -->|"зелёный, wide"| architecture
|
||||
scope -->|план| autotests
|
||||
autotests -->|зелёный| specs
|
||||
autotests -->|зелёный| code
|
||||
autotests -->|"зелёный, темы по плану"| basics
|
||||
autotests -->|"зелёный, wide"| adversary
|
||||
autotests -->|"зелёный, wide"| ops
|
||||
autotests -->|"зелёный, wide"| architecture
|
||||
adversary -. один ресурс — машина .- ops
|
||||
specs --> triage
|
||||
code --> triage
|
||||
@@ -405,7 +405,7 @@ flowchart TD
|
||||
|
||||
| Проход | Держит машину | Почему |
|
||||
|---|---|---|
|
||||
| `gate` | да | запускает инструменты проекта — но он источник графа и один по построению |
|
||||
| `autotests` | да | запускает инструменты проекта — но он источник графа и один по построению |
|
||||
| `adversary` | да | находка есть **построенный путь**: он пишет падающий тест и гоняет его |
|
||||
| `ops` | да | доказывает числами: время удержания блокировки, пик кучи, темп роста журнала |
|
||||
| `triage` | да | проверяет оракул `critical`/`major` запуском — но он сток и тоже один |
|
||||
@@ -489,10 +489,16 @@ flowchart TD
|
||||
одинаково**, но обоснование обязательно в обоих случаях и всегда — строкой, какой
|
||||
признак сработал и по какому факту.
|
||||
|
||||
## Стадия 1 — Gate (обязательна во всех профилях)
|
||||
## Стадия 1 — Автотесты (обязательна во всех профилях)
|
||||
|
||||
Агент `review-gate`. Закрывает тему `autotests`. Запускает команду гейта из
|
||||
семантики гейта в `CLAUDE.md` и интерпретирует вывод.
|
||||
Агент `review-autotests`, тема `autotests`. Запускает команду гейта из семантики
|
||||
гейта в `CLAUDE.md` и интерпретирует вывод.
|
||||
|
||||
**Тема и проход названы одинаково намеренно, а «гейт» осталось именем команды.**
|
||||
Раньше тема звалась `autotests`, а проход — `gate`: одна сущность под двумя
|
||||
именами, и вопрос проекта, адресованный одному имени, к другому не приезжал.
|
||||
Слово «гейт» теперь значит ровно одно — барьер, который проект запускает; тема
|
||||
шире него ровно на «чего в гейте намеренно нет».
|
||||
|
||||
**Пока гейт красный — опиниативные проходы не запускаются.** Оркестратор чинит и
|
||||
перезапускает гейт. Исключение одно: отказ, унаследованный от базовой ветки
|
||||
@@ -564,7 +570,7 @@ Recall темы `conventions` равен длине конвенций прое
|
||||
|
||||
**Он покрывает миграцию и публичный контракт на нижних ступенях.** Это не
|
||||
побочный эффект, а условие, при котором миграция схемы вообще может не поднимать
|
||||
ступень: её шаг гоняет `gate`, спеку сверяет `specs`, а вопросы «обратима ли» и
|
||||
ступень: её шаг гоняет `autotests`, спеку сверяет `specs`, а вопросы «обратима ли» и
|
||||
«что с записями новой версии после отката» задаёт здесь `basics`, темой
|
||||
`operations`. Уберёшь его — и нижние ступени останутся без единственного прохода,
|
||||
который смотрит на ось времени.
|
||||
|
||||
Reference in New Issue
Block a user