уставы вычитки: оговорка про поля меты и два рода «не своего»

Обкатка обоих проходов на тестовом наборе нашла два расхождения в
правилах, которые я же и написал.

«Одна мысль — одно предложение» не распространяется на поля меты.
doc-wording предложил разбить «зачем» надвое, а task-format.md требует
от него одного предложения: оно повторяется строкой индекса, и второму
там не поместиться. Агент честно выполнил тот документ, который читал;
виновато правило без оговорки. Оговорка записана и в доме language.md, и
в уставе: тесно — сокращай, но не дели.

«Не своё» бывает двух родов. Чужому подрядчику — строкой в границах
покрытия, чтобы находка не пропала. Машинной проверке — вообще ничего,
даже строкой: это не потерянная находка, а уже проверенное. doc-wording
отправил в «замечено не по моей части» открытый вопрос в задаче, который
ловит tasks.py check, и строка получилась шумом, выглядящим как работа.
Разделение прописано в обоих уставах.

DECISIONS тема 24 (ХХХ, ЦЦЦ, следствия 94–95).

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
This commit is contained in:
av
2026-08-04 19:58:28 +03:00
co-authored by Claude Opus 5
parent 6609012696
commit 8ce2a29160
4 changed files with 77 additions and 14 deletions
+41
View File
@@ -1687,3 +1687,44 @@ ADR, запискам разведки и сообщениям коммитов
впервые используется не для скелетов канона, а чтобы удержать одно правило в впервые используется не для скелетов канона, а чтобы удержать одно правило в
двух уставах подрядчиков. Случай тот же: текст обязан быть на месте, потому двух уставах подрядчиков. Случай тот же: текст обязан быть на месте, потому
что подрядчик по ссылкам не ходит. что подрядчик по ссылкам не ходит.
## 24. Обкатка двух проходов: два дефекта в собственных правилах (2026-08-04)
### Что было
Оба прохода запущены на тестовом наборе из 13 записей. `task-form` дал три
находки и блок «строки Завершения», `doc-wording` — пять находок. Разделение
окупилось сразу: `task-form` поймал ровно тот класс, на котором слитый агент
промолчал (границы, названные будущим состоянием, — тема 22, РРР).
Но два его правила разошлись с остальным каноном.
### Решено
**ХХХ. «Одна мысль — одно предложение» не распространяется на поля меты.**
`doc-wording` предложил разбить «зачем» надвое — а `task-format.md` требует от
«зачем» **одного предложения**: оно повторяется строкой индекса, и второму там не
поместиться. Агент честно выполнил тот документ, который читал; виноват не он, а
правило без оговорки. Оговорка записана и в доме (`language.md`), и в уставе:
тесно — сокращай, но не дели.
**ЦЦЦ. «Не своё» бывает двух родов, и поступают с ними по-разному.** Чужому
подрядчику — строкой в границах покрытия, чтобы находка не пропала. **Машинной
проверке — вообще ничего, даже строкой**: это не потерянная находка, а уже
проверенное. `doc-wording` отправил в «замечено не по моей части» открытый
вопрос в задаче — а его ловит `tasks.py check`, и строка получилась шумом,
который выглядит как работа.
### Что из этого следует
94. **Шестое правило нашло то, чего не искали.** Три строки «Завершения»
оказались **закрыты критериями задач, но не заявлены** самими задачами, а
одна строка цели (`checks-one-command`, «названа в README и в описании
работы над проектом») — закрыта наполовину. Агент назвал оба толкования и
выбирать не стал, как и велено. Выбрано сужение цели: описания работы над
проектом у выдуманной игры нет вовсе, и строка обещала то, чего негде
исполнить.
95. **Спорные находки полезны тем, что показывают спор правил, а не вкуса.**
Из пяти языковых находок три приняты сразу, две отклонены — и обе отклонённые
указывали на одно и то же место канона (правило 4 без оговорки). Вкусовых
находок не было ни одной: порог держится.
+17 -7
View File
@@ -66,6 +66,10 @@ color: green
утверждениями делится. **Причинную связь не режь**: «поэтому», «иначе», «раз утверждениями делится. **Причинную связь не режь**: «поэтому», «иначе», «раз
так» — смысл, а не длина; рубленые фразы ради краткости тут вредят. так» — смысл, а не длина; рубленые фразы ради краткости тут вредят.
**Поля меты не делятся.** «Зачем» в мете задачи по формату — одно
предложение: оно повторяется строкой индекса, и второму там не поместиться.
Тесно — сокращай, но не дели. То же с любым полем вида `- **Имя:** …`.
5. **Англицизм, у которого есть живое русское слово, заменяется.** 5. **Англицизм, у которого есть живое русское слово, заменяется.**
<!-- копия: язык-англицизмы из av-dev-pm/skills/canon/references/language.md --> <!-- копия: язык-англицизмы из av-dev-pm/skills/canon/references/language.md -->
@@ -120,15 +124,21 @@ color: green
## Чего ты не проверяешь ## Чего ты не проверяешь
**Форму записи задачи** — она у `task-form`, см. выше. Не своё бывает двух разных родов, и поступают с ними по-разному.
Всё, что ловит `tasks.py check` и `docs.py check`: состав и написание секций, **Чужому подрядчику — строкой в границах покрытия.** Форма записи задачи у
наличие разделов, число критериев, теги, согласованность индексов, битые ссылки. `task-form`; увидел — назови в конце одной строкой, чтобы находка не пропала, но
Повторять машинную проверку словами — заводить второй дом для одного правила; находкой не оформляй.
если видишь такое, просто не пиши.
**Машинной проверке — вообще ничего.** Всё, что ловят `tasks.py check` и
`docs.py check` (состав и написание секций, наличие разделов, число критериев,
теги, тег `question` при непустом разделе «Вопросы», согласованность индексов,
битые ссылки), **не пиши даже строкой**: это не потерянная находка, а уже
проверенное. Повторять машинную проверку словами — заводить второй дом для
одного правила.
**Содержание**: верно ли решение, нужна ли задача, полна ли архитектура. Это **Содержание**: верно ли решение, нужна ли задача, полна ли архитектура. Это
разбор, а не вычитка. разбор, а не вычитка, — и о нём тоже молчи.
## Порог вмешательства ## Порог вмешательства
@@ -169,7 +179,7 @@ color: green
смотрел и почему, и по чему проверялись термины (документы проекта названы или смотрел и почему, и по чему проверялись термины (документы проекта названы или
нет). Отчёт без этой строки читается как «всё вычитано», не сообщая, какая часть нет). Отчёт без этой строки читается как «всё вычитано», не сообщая, какая часть
осталась нетронутой. Туда же — строка «замечено не по моей части», если бросилась осталась нетронутой. Туда же — строка «замечено не по моей части», если бросилась
в глаза форма записи. в глаза форма записи; машинно проверяемое в неё **не идёт**.
Ничего не нашёл — так и скажи одной строкой. Пустой доклад с границами покрытия Ничего не нашёл — так и скажи одной строкой. Пустой доклад с границами покрытия
полезнее выдуманной находки. полезнее выдуманной находки.
+14 -7
View File
@@ -99,16 +99,22 @@ color: yellow
## Чего ты не проверяешь ## Чего ты не проверяешь
**Язык** — он у `doc-wording`, см. выше. Не своё бывает двух разных родов, и поступают с ними по-разному.
Всё, что ловит `tasks.py check`: наличие разделов, число критериев, состав и **Чужому подрядчику — строкой в границах покрытия.** Язык у `doc-wording`;
написание секций, теги, согласованность индексов, битые ссылки, форма заголовка увидел — назови в конце одной строкой, чтобы находка не пропала, но находкой не
как строки. Повторять машинную проверку словами — заводить второй дом для одного оформляй.
правила; если видишь такое, просто не пиши.
**Машинной проверке — вообще ничего.** Всё, что ловит `tasks.py check` (наличие
разделов, число критериев, состав и написание секций, теги, тег `question` при
непустом разделе «Вопросы», согласованность индексов, битые ссылки, форма
заголовка как строки), **не пиши даже строкой**: это не потерянная находка, а
уже проверенное. Повторять машинную проверку словами — заводить второй дом для
одного правила.
**Содержание работы**: нужна ли задача, верно ли выбрана цель, не крупна ли она, **Содержание работы**: нужна ли задача, верно ли выбрана цель, не крупна ли она,
достаточна ли декомпозиция. Шестое правило подходит к этому близко и достаточна ли декомпозиция. Шестое правило подходит к этому близко и
останавливается там, где кончается сверка с текстом цели. останавливается там, где кончается сверка с текстом цели. Об этом молчи.
## Порог вмешательства ## Порог вмешательства
@@ -151,7 +157,8 @@ color: yellow
В конце — **границы покрытия**: сколько записей просмотрено из скольких, какие В конце — **границы покрытия**: сколько записей просмотрено из скольких, какие
цели открыты, какие не смотрел и почему. Отчёт без этой строки читается как цели открыты, какие не смотрел и почему. Отчёт без этой строки читается как
«беклог проверен», не сообщая, какая его часть осталась нетронутой. Туда же — «беклог проверен», не сообщая, какая его часть осталась нетронутой. Туда же —
строка «замечено не по моей части», если бросился в глаза язык. строка «замечено не по моей части», если бросился в глаза язык; машинно
проверяемое в неё **не идёт**.
Ничего не нашёл — так и скажи одной строкой. Пустой доклад с границами покрытия Ничего не нашёл — так и скажи одной строкой. Пустой доклад с границами покрытия
полезнее выдуманной находки. полезнее выдуманной находки.
@@ -59,6 +59,11 @@
утверждения, делится. Придаточное, которое можно вынести в отдельную фразу, утверждения, делится. Придаточное, которое можно вынести в отдельную фразу,
выносится. выносится.
Исключение — **поля, которым формат отвёл одно предложение**. «Зачем» в мете
задачи именно такое: оно повторяется строкой индекса, и второе предложение там
просто не поместится. Такое поле либо укладывается в одну фразу, либо
сокращается, но не делится.
**Параллельность.** Однородное пишется одинаково: пункты списка — одной **Параллельность.** Однородное пишется одинаково: пункты списка — одной
грамматической формой, разделы одного вида — одним порядком, заголовки одного грамматической формой, разделы одного вида — одним порядком, заголовки одного
уровня — одним типом фразы. Разнобой читатель принимает за разницу по существу и уровня — одним типом фразы. Разнобой читатель принимает за разницу по существу и