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:
av
2026-08-07 08:50:13 +03:00
co-authored by Claude Opus 5
parent a81dd1a5a7
commit 900f3f83ca
8 changed files with 75 additions and 28 deletions
+2 -2
View File
@@ -1,6 +1,6 @@
---
name: review-code
description: "Технический разбор кода изменения плюс сверка с конвенциями проекта — две половины одного прохода, обе во всех профилях. Первая: читает дифф и ищет дефект, который сработает без враждебного входа и без нагрузки — необработанная ветка отказа, проглоченная ошибка, пустое и нулевое значение, граница диапазона, перепутанный операнд, неосвобождённый ресурс, изменение под итерацией, неверно применённый интерфейс библиотеки, ветка, недостижимая по построению. Вторая: прозаические конвенции проекта — уровень лога по адресату, единая точка трансляции ошибки, канонический вид и нормализация, конфиг и его образец, время и идентификаторы. Механизируемое проверяет гейт, отказы окружения — basics и ops, форму решения — architecture. Только чтение."
description: "Технический разбор кода изменения плюс сверка с конвенциями проекта — две половины одного прохода, обе во всех профилях. Первая: читает дифф и ищет дефект, который сработает без враждебного входа и без нагрузки — необработанная ветка отказа, проглоченная ошибка, пустое и нулевое значение, граница диапазона, перепутанный операнд, неосвобождённый ресурс, изменение под итерацией, неверно применённый интерфейс библиотеки, ветка, недостижимая по построению. Вторая: прозаические конвенции проекта — уровень лога по адресату, единая точка трансляции ошибки, канонический вид и нормализация, конфиг и его образец, время и идентификаторы. Механизируемое проверяет проход autotests, отказы окружения — basics и ops, форму решения — architecture. Только чтение."
tools: Read, Grep, Glob, Bash
model: opus
color: yellow
@@ -167,7 +167,7 @@ color: yellow
## Чем ты НЕ занимаешься
- механизируемое (форматирование, запрещённые вызовы, импорты) — `review-gate`;
- механизируемое (форматирование, запрещённые вызовы, импорты) — `review-autotests`;
- построенный путь недоверенного входа — `review-adversary` (тема `security`);
- отказ соседа, рост объёма, наблюдаемость, откат — `review-basics`, в `wide`
`review-ops` (тема `operations`);