язык: чекпоинт и синк вошли в словарь, опиниативный снят

Три слова жили в текстах, не входя в закрытый словарь правила 6, — то есть
выглядели словарём, не будучи им. Решение по каждому своё.

Чекпоинт и синк внесены с определением: первый называет плановый стоп, на
котором ждут ответа, второй — сверку каждого документа канона с работой, с
обязательным отрицанием по нетронутым. Русские замены обоих называют либо исход,
либо обряд, но не саму работу.

Опиниативный заменён на «проход с мнением» в 13 местах и добавлен к снятому
рядом с конфляцией и гайдом. Копии правил пересобраны resync.py; версию канона
это не двигает — в репозиторий проекта отсюда ничего не уезжает.
This commit is contained in:
av
2026-08-13 09:48:00 +03:00
parent 96dafc9011
commit 142659bfd1
10 changed files with 43 additions and 33 deletions
+5 -5
View File
@@ -1014,7 +1014,7 @@ HTML-комментарии, невидимые в отрендеренном ma
**XX. Порядок задаёт граф; стадии остаются единицей состава.** Профиль
по-прежнему набирается стадиями, но запускается всё, у чего закрыты входящие
рёбра. Рёбер три вида, и смешивать их нельзя: **зависимость** (гейт → все
опиниативные, все проходы → триаж), **конфликт за ресурс** (ненаправленный, между
проходы с мнением, все проходы → триаж), **конфликт за ресурс** (ненаправленный, между
теми, кто держит машину), **барьер стоимости** (только `deep`).
**YY. Сериализует ресурс, а не имена.** Пометка «держит машину» — таблицей в
@@ -2358,8 +2358,8 @@ JJJ): у профиля обязан быть один правильный от
`standard` остался хоть один взгляд на ось времени.
Модель у него верхняя, `opus`, и это не противоречит слову «средний»: усилие
режется **входом и потолком**, а не моделью. Дешёвая модель на опиниативном
проходе платит триажем — это записанный замер, и отменять его без нового замера
режется **входом и потолком**, а не моделью. Дешёвая модель на проходе
с мнением платит триажем — это записанный замер, и отменять его без нового замера
нельзя.
**ААББУУ. Объём и незнакомость изменения вошли в правило выбора ступени.** Раньше
@@ -2607,7 +2607,7 @@ JJJ): у профиля обязан быть один правильный от
`docs/autotests.md` проект напишет: что покрыто, что нарочно нет, где
`testdata`. `docs/gate.md` не напишет никто — гейт это команда, а не предмет.
2. **Слово «гейт» уже занято дважды** — команда проекта и ребро графа («пока гейт
красный, опиниативные не идут»). Третье значение сделало бы отчёт нечитаемым:
красный, проходы с мнением не идут»). Третье значение сделало бы отчёт нечитаемым:
«гейт красный» и «гейт нашёл» — про разное.
3. **Тема шире гейта.** «Хватает ли проверок» и «чего в гейте намеренно нет» за
пределы красного/зелёного выходят. Назвать целое именем инструмента — тихо его
@@ -2828,7 +2828,7 @@ JJJ): у профиля обязан быть один правильный от
держит ровно на одной ступени из трёх, а приёмником проектных тем работает на
всех.
**АЕАГВ. Вход и потолок применены к каждому опиниативному проходу.** На `quick`
**АЕАГВ. Вход и потолок применены к каждому проходу с мнением.** На `quick`
`specs` читает только дельта-спеку, `code` — только индекс конвенций. Потолки
напечатаны и раздельны по половинам `code`: 3 технических, 2 конвенционных, 1 по
инвариантам. Раздельность обязательна — конвенционных находок больше по
+1 -1
View File
@@ -1,6 +1,6 @@
---
name: review-autotests
description: "Тема `autotests` — проверено ли машиной и хватает ли проверок. Запускает команду гейта проекта (сборка/vet/линт/формат/тесты/флаки/гонки/покрытие изменённых строк/миграции/секреты/уязвимости) и интерпретирует вывод. Отличает новые отказы от унаследованных, находит отсутствующую верификацию (изменённые строки без покрытия, конкурентность без теста, флаки). Пока гейт красный, опиниативные проходы не запускаются. Первый проход ревью кода и источник его графа, обязателен при любой метке."
description: "Тема `autotests` — проверено ли машиной и хватает ли проверок. Запускает команду гейта проекта (сборка/vet/линт/формат/тесты/флаки/гонки/покрытие изменённых строк/миграции/секреты/уязвимости) и интерпретирует вывод. Отличает новые отказы от унаследованных, находит отсутствующую верификацию (изменённые строки без покрытия, конкурентность без теста, флаки). Пока гейт красный, проходы с мнением не запускаются. Первый проход ревью кода и источник его графа, обязателен при любой метке."
tools: Bash, Read, Grep, Glob
model: sonnet
color: green
@@ -238,7 +238,7 @@ ADR: список источников канон закрыл двумя — а
### 3. Гейт до зелёного
Прогони гейт и добейся зелёного — он же условие следующего шага: пока гейт
красный, опиниативные проходы не запускаются.
красный, проходы с мнением не запускаются.
**Поведенческая верификация здесь другая, чем в решении.** Проверяется не новое
поведение, а то, что прежнее не поехало: команда из `CLAUDE.md` поднимается, шаг
@@ -257,7 +257,7 @@ flowchart TD
сессия, ушёл контекст) — повтори шаг 3, а не гони прогон без него.
**Режим по умолчанию — `по графу`, и обосновывать его не надо.** Конвейер сам
знает свои рёбра: гейт открывает опиниативные проходы, проходы с пометкой «держит
знает свои рёбра: гейт открывает проходы с мнением, проходы с пометкой «держит
машину» идут цепочкой (иначе замеры портят друг друга и находка выглядит
доказанной), триаж — сток. Просить **`линейно`** нужно только по причине, и она
называется строкой: так сказал оператор; машина занята чем-то ещё; идёт разбор
@@ -394,7 +394,7 @@ flowchart TD
## Тонкости сценария
- Гейт блокирует: пока он красный, опиниативные проходы не запускаются. Чинить и
- Гейт блокирует: пока он красный, проходы с мнением не запускаются. Чинить и
перезапускать, а не «посмотреть заодно».
- Стиль правок — заточка под проект и конвенции, по размеру задачи, без
улучшений заодно.
+9 -9
View File
@@ -1,6 +1,6 @@
---
name: review
description: "Конвейер ревью изменения, устроенный по темам: документ проекта либо заводит тему ревью, либо питает чужую тему источником, либо процессный и в ревью не читается вовсе. Ядро тем — requirements, autotests, conventions, architecture, security, operations; список тем открытый, свои темы проект заводит документом. Разметка задачи идёт один раз, после propose: агент review-scope выводит размер и сложность, из их максимума — метка, и раздаёт темы проходам обеих стадий. Метка правит и ревью дизайна (small — только specs; medium — плюс rubric; large — плюс architecture), и ревью кода (small — гейт, спеки, код, триаж; medium — плюс приёмник тем; large — плюс доказательство: враждебные постановки, эксплуатационный постмортем, архитектурный проход на широком входе). Триаж обязателен всегда. Порядок прогона — граф зависимостей: гейт открывает опиниативные проходы, проходы с пометкой «держит машину» идут цепочкой, триаж — единственный сток. Проектная специфика приходит из документов канона av-dev-docs. Вызывается из скилла resolve — двумя стадиями: ревью дизайна до кода и ревью кода после apply. Третий вызов идёт от сценария обслуживания: без change и без метки, фиксированным планом (autotests, operations, плюс conventions, если тронут код), разметчик при этом не запускается."
description: "Конвейер ревью изменения, устроенный по темам: документ проекта либо заводит тему ревью, либо питает чужую тему источником, либо процессный и в ревью не читается вовсе. Ядро тем — requirements, autotests, conventions, architecture, security, operations; список тем открытый, свои темы проект заводит документом. Разметка задачи идёт один раз, после propose: агент review-scope выводит размер и сложность, из их максимума — метка, и раздаёт темы проходам обеих стадий. Метка правит и ревью дизайна (small — только specs; medium — плюс rubric; large — плюс architecture), и ревью кода (small — гейт, спеки, код, триаж; medium — плюс приёмник тем; large — плюс доказательство: враждебные постановки, эксплуатационный постмортем, архитектурный проход на широком входе). Триаж обязателен всегда. Порядок прогона — граф зависимостей: гейт открывает проходы с мнением, проходы с пометкой «держит машину» идут цепочкой, триаж — единственный сток. Проектная специфика приходит из документов канона av-dev-docs. Вызывается из скилла resolve — двумя стадиями: ревью дизайна до кода и ревью кода после apply. Третий вызов идёт от сценария обслуживания: без change и без метки, фиксированным планом (autotests, operations, плюс conventions, если тронут код), разметчик при этом не запускается."
---
# Конвейер ревью
@@ -274,14 +274,14 @@ charter'а, а модель потом двигает калибровка, и
а не как мнение.
**Самая дешёвая модель не используется ни на одном проходе, и это не экономия
наоборот.** Дешёвая модель на опиниативном проходе даёт правдоподобные находки,
наоборот.** Дешёвая модель на проходе с мнением даёт правдоподобные находки,
которые триаж обязан опровергать оракулом, — а это самая дорогая операция
конвейера. Механизируемая же работа здесь вынесена **ниже** модели: гейт,
покрытие диффа, карта проекта — это скрипты проекта, они стоят ноль токенов.
Дешёвому проходу просто не осталось работы.
Экономия достигается **не понижением модели, а тремя другими рычагами**, и все
три применяются к каждому опиниативному проходу, а не к одному избранному.
три применяются к каждому проходу с мнением, а не к одному избранному.
1. **Непуск.** `large` добавляет доказательство — запуск, замер, построенный
путь — и стоит часов; `small` снимает приёмник тем. Что при этом перестаёт
@@ -289,7 +289,7 @@ charter'а, а модель потом двигает калибровка, и
2. **Вход.** `basics` идёт на верхней модели, но с узким входом: дифф и его
окрестности, без карты проекта. На `small` сужаются и остальные: `specs`
читает только дельта-спеку, `code` — только индекс конвенций.
3. **Потолок.** Он есть у каждого опиниативного прохода и напечатан: `basics` — 2
3. **Потолок.** Он есть у каждого прохода с мнением и напечатан: `basics` — 2
находки на сверке и 4 на разборе; `code` — 3 технических и 2 конвенционных на
`small`, 4 конвенционных выше; `specs` — 3 на `small`; `architecture` — 3;
триаж — 7 в основном списке.
@@ -441,12 +441,12 @@ flowchart TD
— и очередь между ними была бы платой ни за что.
Рёбер два вида, и они разной природы. Путать их нельзя: первое про
**осмысленность** (без плана задание не определено, на красном гейте опиниативный
**осмысленность** (без плана задание не определено, на красном гейте проход с мнением
проход не о чем), второе про **железо**.
| Ребро | Смысл | Между кем |
|---|---|---|
| **зависимость** | B не стартует, пока A не закончил, потому что без A задание B не определено | гейт → все опиниативные; все проходы → триаж |
| **зависимость** | B не стартует, пока A не закончил, потому что без A задание B не определено | гейт → все проходы с мнением; все проходы → триаж |
| **конфликт за ресурс** | A и B не держат машину одновременно; кто из них первый — неважно, направления у ребра нет | проходы, помеченные «держит машину» |
**План разметки — вход графа, а не его узел.** Он готов до того, как ревью кода
@@ -692,7 +692,7 @@ change**: у работы, не меняющей поведения, дельт
Слово «гейт» теперь значит ровно одно — барьер, который проект запускает; тема
шире него ровно на «чего в гейте намеренно нет».
**Пока гейт красный — опиниативные проходы не запускаются.** Оркестратор чинит и
**Пока гейт красный — проходы с мнением не запускаются.** Оркестратор чинит и
перезапускает гейт. Исключение одно: отказ, унаследованный от базовой ветки
(гейт проверяет это прогоном на базе) — тогда он фиксируется находкой и не
блокирует.
@@ -756,7 +756,7 @@ Recall темы `conventions` равен длине конвенций прое
это направление `code → spec`: надо заметить **отсутствие** — тихий фолбэк,
самодеятельный дефолт, проглоченную ошибку. У `code` это пропущенный дефект,
который поедет в прод. Ни то ни другое не оставляет следа ни в отчёте, ни в
границах покрытия; прочие опиниативные проходы держат `opus` из-за цены **ложных**
границах покрытия; прочие проходы с мнением держат `opus` из-за цены **ложных**
находок, эти двое — из-за цены пропущенных.
## Стадия 3 — Темы (`medium` целиком; `small` и `large` — только свои темы проекта)
@@ -1051,7 +1051,7 @@ flowchart TD
прогоне — поимённо, а не общим «метка ниже». Формулировка «не запускается
ничего» была бы короче и была бы ложью: гейт запускает инструменты проекта, а
триаж проверяет оракул `critical`/`major` запуском — оба идут при любой метке.
Не проверяется **опиниативным** проходом: построенный путь атаки (его надо
Не проверяется **проходом с мнением**: построенный путь атаки (его надо
прогнать), поведение библиотеки и драйвера в вырожденном случае (достаётся только
экспериментом), любое число — время удержания блокировки, пик кучи, темп роста
журнала, стоимость на годовой истории. `basics` задаёт часть тех же вопросов
+5 -3
View File
@@ -109,6 +109,8 @@ color: green
| промпт | текст, которым зовут модель |
| change, capability, spec | сущности OpenSpec, имена вещей чужого инструмента |
| generative, applicative | роды проходов ревью, вводятся определением по месту |
| чекпоинт | плановый стоп работы, на котором ждут ответа человека. «Остановка» называет любой перерыв, «согласование» — обряд одобрения, а здесь место в процессе, назначенное заранее |
| синк | сверка каждого документа канона с только что сделанной работой, с обязательным отрицанием по нетронутым. «Обновление документации» называет исход, а не работу, и молчит о принуждённом отрицании |
**Список закрыт.** Слово не отсюда и не из таблицы имён вещей выше — находка,
а не «принятый стиль»: у него либо есть живой русский аналог, либо оно
@@ -117,9 +119,9 @@ color: green
Отсюда же читается снятое. Эти слова из текстов убраны, и возвращать их не
надо: **конфляция** (смешение), **декорреляция** (разведённость, разведён с
кем-то), **непоймание** (почему не поймали), **эвал-сет** (проверочный
набор), **гайд** (руководство). Каждое было латинизмом или калькой при живом
русском слове, и каждое к моменту снятия жило в трёх-шести файлах разом — то
есть выглядело словарём, не будучи им.
набор), **гайд** (руководство), **опиниативный** (проход с мнением). Каждое
было латинизмом или калькой при живом русском слове, и каждое к моменту снятия
жило в трёх-шести файлах разом — то есть выглядело словарём, не будучи им.
7. **Жаргон и метафоры заменяются прямым называнием.** Автору образ понятен,
читателю — нет.
@@ -145,6 +145,8 @@
| промпт | текст, которым зовут модель |
| change, capability, spec | сущности OpenSpec, имена вещей чужого инструмента |
| generative, applicative | роды проходов ревью, вводятся определением по месту |
| чекпоинт | плановый стоп работы, на котором ждут ответа человека. «Остановка» называет любой перерыв, «согласование» — обряд одобрения, а здесь место в процессе, назначенное заранее |
| синк | сверка каждого документа канона с только что сделанной работой, с обязательным отрицанием по нетронутым. «Обновление документации» называет исход, а не работу, и молчит о принуждённом отрицании |
**Список закрыт.** Слово не отсюда и не из таблицы имён вещей выше — находка,
а не «принятый стиль»: у него либо есть живой русский аналог, либо оно
@@ -153,9 +155,9 @@
Отсюда же читается снятое. Эти слова из текстов убраны, и возвращать их не
надо: **конфляция** (смешение), **декорреляция** (разведённость, разведён с
кем-то), **непоймание** (почему не поймали), **эвал-сет** (проверочный
набор), **гайд** (руководство). Каждое было латинизмом или калькой при живом
русском слове, и каждое к моменту снятия жило в трёх-шести файлах разом — то
есть выглядело словарём, не будучи им.
набор), **гайд** (руководство), **опиниативный** (проход с мнением). Каждое
было латинизмом или калькой при живом русском слове, и каждое к моменту снятия
жило в трёх-шести файлах разом — то есть выглядело словарём, не будучи им.
7. **Жаргон и метафоры заменяются прямым называнием.** Автору образ понятен,
читателю — нет.
+5 -3
View File
@@ -117,6 +117,8 @@ color: green
| промпт | текст, которым зовут модель |
| change, capability, spec | сущности OpenSpec, имена вещей чужого инструмента |
| generative, applicative | роды проходов ревью, вводятся определением по месту |
| чекпоинт | плановый стоп работы, на котором ждут ответа человека. «Остановка» называет любой перерыв, «согласование» — обряд одобрения, а здесь место в процессе, назначенное заранее |
| синк | сверка каждого документа канона с только что сделанной работой, с обязательным отрицанием по нетронутым. «Обновление документации» называет исход, а не работу, и молчит о принуждённом отрицании |
**Список закрыт.** Слово не отсюда и не из таблицы имён вещей выше — находка,
а не «принятый стиль»: у него либо есть живой русский аналог, либо оно
@@ -125,9 +127,9 @@ color: green
Отсюда же читается снятое. Эти слова из текстов убраны, и возвращать их не
надо: **конфляция** (смешение), **декорреляция** (разведённость, разведён с
кем-то), **непоймание** (почему не поймали), **эвал-сет** (проверочный
набор), **гайд** (руководство). Каждое было латинизмом или калькой при живом
русском слове, и каждое к моменту снятия жило в трёх-шести файлах разом — то
есть выглядело словарём, не будучи им.
набор), **гайд** (руководство), **опиниативный** (проход с мнением). Каждое
было латинизмом или калькой при живом русском слове, и каждое к моменту снятия
жило в трёх-шести файлах разом — то есть выглядело словарём, не будучи им.
7. **Жаргон и метафоры заменяются прямым называнием.** Автору образ понятен,
читателю — нет.
@@ -145,6 +145,8 @@
| промпт | текст, которым зовут модель |
| change, capability, spec | сущности OpenSpec, имена вещей чужого инструмента |
| generative, applicative | роды проходов ревью, вводятся определением по месту |
| чекпоинт | плановый стоп работы, на котором ждут ответа человека. «Остановка» называет любой перерыв, «согласование» — обряд одобрения, а здесь место в процессе, назначенное заранее |
| синк | сверка каждого документа канона с только что сделанной работой, с обязательным отрицанием по нетронутым. «Обновление документации» называет исход, а не работу, и молчит о принуждённом отрицании |
**Список закрыт.** Слово не отсюда и не из таблицы имён вещей выше — находка,
а не «принятый стиль»: у него либо есть живой русский аналог, либо оно
@@ -153,9 +155,9 @@
Отсюда же читается снятое. Эти слова из текстов убраны, и возвращать их не
надо: **конфляция** (смешение), **декорреляция** (разведённость, разведён с
кем-то), **непоймание** (почему не поймали), **эвал-сет** (проверочный
набор), **гайд** (руководство). Каждое было латинизмом или калькой при живом
русском слове, и каждое к моменту снятия жило в трёх-шести файлах разом — то
есть выглядело словарём, не будучи им.
набор), **гайд** (руководство), **опиниативный** (проход с мнением). Каждое
было латинизмом или калькой при живом русском слове, и каждое к моменту снятия
жило в трёх-шести файлах разом — то есть выглядело словарём, не будучи им.
7. **Жаргон и метафоры заменяются прямым называнием.** Автору образ понятен,
читателю — нет.
+5 -3
View File
@@ -160,6 +160,8 @@
| промпт | текст, которым зовут модель |
| change, capability, spec | сущности OpenSpec, имена вещей чужого инструмента |
| generative, applicative | роды проходов ревью, вводятся определением по месту |
| чекпоинт | плановый стоп работы, на котором ждут ответа человека. «Остановка» называет любой перерыв, «согласование» — обряд одобрения, а здесь место в процессе, назначенное заранее |
| синк | сверка каждого документа канона с только что сделанной работой, с обязательным отрицанием по нетронутым. «Обновление документации» называет исход, а не работу, и молчит о принуждённом отрицании |
**Список закрыт.** Слово не отсюда и не из таблицы имён вещей выше — находка,
а не «принятый стиль»: у него либо есть живой русский аналог, либо оно
@@ -168,9 +170,9 @@
Отсюда же читается снятое. Эти слова из текстов убраны, и возвращать их не
надо: **конфляция** (смешение), **декорреляция** (разведённость, разведён с
кем-то), **непоймание** (почему не поймали), **эвал-сет** (проверочный
набор), **гайд** (руководство). Каждое было латинизмом или калькой при живом
русском слове, и каждое к моменту снятия жило в трёх-шести файлах разом — то
есть выглядело словарём, не будучи им.
набор), **гайд** (руководство), **опиниативный** (проход с мнением). Каждое
было латинизмом или калькой при живом русском слове, и каждое к моменту снятия
жило в трёх-шести файлах разом — то есть выглядело словарём, не будучи им.
7. **Жаргон и метафоры заменяются прямым называнием.** Автору образ понятен,
читателю — нет.