корректор метки переехал в code; размер считается по пяти источникам
Сигнал «метка, вероятно, занижена» жил в review-basics — в единственном месте. А basics с меткой small не запускается, если у проекта нет своих тем: значит на типичном проекте задача с меткой small шла без рантайм-проверки того, что метка выбрана верно. Дыра появилась вместе с удешевлением small и попала в самую вероятную точку ошибки: занижают туда, где дешевле, а цена занижения там же и выросла — три темы ядра смотрятся только против записанных инвариантов. Сигнал перешёл в review-code, и он подходит по построению: идёт при любой метке, видит дифф целиком, а на small уже читает инварианты, то есть держит весь материал, из которого сигнал выводится. Признаков четыре, и один весит больше прочих — изменение, которое не откатывается обратной правкой, при метке small это прямой промах отрицательного теста. У basics сигнал остался вторым, подтверждающим: он смотрит оптикой тем и видит то, чего не видно из кода как кода, — что вопросов, отложенных до large, накопилось слишком много. Триаж теперь обязан сказать и когда сигнала нет: «корректор отработал, возражений нет» и «корректор не запускался» по молчанию неразличимы. У small появилась доля, и она сформулирована сравнением, а не порогом: small не должен обгонять medium, ориентир — до трети задач. Проверка нужна именно теперь. Пока quick и standard совпадали составом, дрейф между ними не стоил ничего, и её не было; сейчас он стоит трёх тем ядра. У дрейфа вниз есть стимул, и он назван прямо: метку выбирает не автор, но по описанию, написанному автором — занижённое описание даёт занижённую метку без чьего-либо умысла. Размер теперь считается по корпусу из пяти источников. Разметчик читал proposal.md и tasks.md, но design.md не открывал вовсе, а метод был описан одной фразой «размер считается по дельта-спекам». Дельты описывают заказанное поведение и молчат об объёме работы: шесть шагов в двух узлах видны в tasks.md, а факт, что форму решения выбирали из нескольких, — только в design.md. Каждый источник получил свою строку по каждой оси, и каждая цифра обоснования обязана быть привязана к источнику поимённо; «изменение выглядит средним» обоснованием больше не считается. Отсюда два правила, которых не было. Расхождение источников по объёму разрешается в пользу большего — и это не «спорное решается вниз»: то правило разрешает ничью при равных данных, а здесь один источник просто видел больше. Само расхождение при этом идёт доводом за незнакомое: если о задаче написано так, что источники не сходятся в объёме, форму решения по ней не знают. Отсутствие design.md у нетривиальной задачи читается так же — «форму знали заранее» ничем не подтверждено. Заодно две грамматические опечатки от вчерашнего переименования в SKILL.md. Решение — 45. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -2934,3 +2934,61 @@ JJJ): у профиля обязан быть один правильный от
|
||||
проходы сравнивают, и потому она английская. Тот же разрез, что «имена
|
||||
файлов английские, текст русский» в каноне, и он же снимает путаницу
|
||||
«крупное» против `large`.
|
||||
|
||||
## 45. Корректор метки, доля `small` и корпус оценки (2026-08-07)
|
||||
|
||||
Три правки по следам решений 41–44, и все три закрывают дыры, которые эти решения
|
||||
и открыли.
|
||||
|
||||
**АЕАЖА. Сигнал о заниженной метке переехал в `review-code`.** Он жил в
|
||||
`review-basics` — единственном месте. А `basics` с меткой `small` не запускается,
|
||||
если у проекта нет своих тем: значит на типичном проекте задача с меткой `small`
|
||||
шла **без рантайм-проверки** того, что метка верна. Дыра появилась ровно вместе с
|
||||
удешевлением `small` и попала в самую вероятную точку ошибки: занижают туда, где
|
||||
дешевле, а цена занижения там же и выросла — три темы ядра смотрятся только
|
||||
против инвариантов.
|
||||
|
||||
`code` подходит по построению: он идёт при **любой** метке, видит дифф целиком, а
|
||||
на `small` уже читает инварианты — то есть держит в руках весь материал, из
|
||||
которого сигнал выводится. У `basics` сигнал остаётся вторым, подтверждающим: он
|
||||
смотрит оптикой тем и видит то, чего не видно из кода как кода, — что вопросов,
|
||||
отложенных до `large`, накопилось слишком много. Триаж теперь обязан сказать и
|
||||
когда сигнала **нет**: «корректор отработал, возражений нет» и «корректор не
|
||||
запускался» по молчанию неразличимы.
|
||||
|
||||
**АЕАЖБ. У `small` появилась доля, и она сформулирована сравнением, а не числом.**
|
||||
`small` не должен обгонять `medium`; ориентир — до трети задач. Проверка нужна
|
||||
именно теперь: пока `quick` и `standard` совпадали составом, дрейф между ними не
|
||||
стоил ничего, и её не было. Сейчас он стоит трёх тем ядра. У дрейфа вниз есть
|
||||
стимул, и он назван: метку выбирает не автор, но по описанию, написанному
|
||||
автором, — занижённое описание даёт занижённую метку без чьего-либо умысла.
|
||||
|
||||
**АЕАЖВ. Размер оценивается по корпусу из пяти источников, а не по дельта-спекам.**
|
||||
Разметчик читал `proposal.md` и `tasks.md`, но `design.md` не открывал вовсе, а
|
||||
метод был описан одной фразой «размер считается по дельта-спекам». Дельты
|
||||
описывают заказанное **поведение** и молчат об объёме работы: шесть шагов в двух
|
||||
узлах видны в `tasks.md`, а факт, что форму решения выбирали из нескольких, —
|
||||
только в `design.md`. Каждый источник получил свою строку по каждой оси, и каждая
|
||||
цифра в обосновании обязана быть привязана к источнику поимённо.
|
||||
|
||||
Отсюда два правила, которых раньше не было. **Расхождение источников по объёму
|
||||
разрешается в пользу большего** — и это не «спорное решается вниз»: то правило
|
||||
разрешает ничью при равных данных, а здесь один источник просто видел больше.
|
||||
**Само расхождение — довод за `незнакомое`:** если о задаче написано так, что
|
||||
источники не сходятся в объёме, форму решения по ней не знают. Отсутствие
|
||||
`design.md` у нетривиальной задачи читается так же — «форму знали заранее» ничем
|
||||
не подтверждено.
|
||||
|
||||
### Что из этого следует
|
||||
|
||||
161. **Корректор обязан идти чаще, чем корректируемое.** Проверяющий, который
|
||||
запускается реже проверяемого, оставляет дыру именно там, где выбор был
|
||||
самым дешёвым, — то есть там, где ошибаются.
|
||||
162. **Отсутствие сигнала — тоже сигнал, и его надо печатать.** Молчание
|
||||
корректора неотличимо от его отсутствия, а решения по ним разные.
|
||||
163. **Проверка доли формулируется сравнением, а не порогом.** «Меньше, чем
|
||||
`medium`» считается по любому журналу и не требует спорить о числе; порог
|
||||
«не больше 30%» спорен ровно настолько, насколько несопоставимы задачи.
|
||||
164. **Оценка по одному источнику — оценка по остатку.** Источники о задаче
|
||||
отвечают на разные вопросы; пропущенный не ухудшает точность понемногу, а
|
||||
оставляет ось без данных.
|
||||
|
||||
Reference in New Issue
Block a user