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

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

«Одна мысль — одно предложение» не распространяется на поля меты.
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. **Англицизм, у которого есть живое русское слово, заменяется.**
<!-- копия: язык-англицизмы из 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 @@
утверждения, делится. Придаточное, которое можно вынести в отдельную фразу,
выносится.
Исключение — **поля, которым формат отвёл одно предложение**. «Зачем» в мете
задачи именно такое: оно повторяется строкой индекса, и второе предложение там
просто не поместится. Такое поле либо укладывается в одну фразу, либо
сокращается, но не делится.
**Параллельность.** Однородное пишется одинаково: пункты списка — одной
грамматической формой, разделы одного вида — одним порядком, заголовки одного
уровня — одним типом фразы. Разнобой читатель принимает за разницу по существу и