fix(skills): вердикт перепроверки о лечении получил ячейку в формате

- Зачем:
  - вчера в шапку перепроверки дописано требование судить лечение, а
    места под ответ в формате строки нет: перетянувшая правка, которая
    находку закрывает, не ложится ни в CLOSED, ни в NOT_CLOSED, ни в
    статусы отклонения. Обе линии холодного ревью нашли это независимо,
    и тот же долг записан в lessons.md:99-102 («статус вешается на
    находку, не на лечение; механизма по-прежнему нет»).
  - оговорка про «размен свойства на защиту от умысла» обобщила один
    случай на весь класс безопасности — защита от умысла и есть этот
    класс.
- Что:
  - в спецификацию строки добавлен второй вердикт для ID со статусом
    FIXED: PROPORTIONATE или OVERREACH с указанием, что вышло за
    находку; OVERREACH не переводит прогон в ISSUES_REMAIN.
  - оговорка про NOT_CLOSED вернулась к взвешиванию цены и получила
    границу: так закрываются инварианты своего кода, но не находки про
    доступ, данные и деньги.
  - OVERREACH выносится в финальную строку, а prompt-templates.md
    разрешает читать файл перепроверки и по нему — иначе сообщение
    наверх не дошло бы: файл читается только при ISSUES_REMAIN.
- Проверка:
  - FIXED сверен с вокабуляром triage-header.md; статусы перепроверки
    и условие чтения файла согласованы между тремя файлами.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This commit is contained in:
Dmitry DementievandClaude Opus 5 committed 2026-08-04 00:04:57 +03:00
1 parent 5fa98d4d0b
commit 05336325db
2 files changed
+18 -14

No files matched your search

@@ -223,7 +223,7 @@ Test command (expect {{N}} passed): {{command}}
Вердикт узкой перепроверки Клода бери прямо из строки task-notification — Вердикт узкой перепроверки Клода бери прямо из строки task-notification —
обёртка требует финальным актом только VERDICT-строку; файл перепроверки обёртка требует финальным актом только VERDICT-строку; файл перепроверки
читай лишь при `ISSUES_REMAIN` или споре (эмпирика 2026-07-13: экономит читай при `ISSUES_REMAIN`, при `OVERREACH` в той же строке или споре (эмпирика 2026-07-13: экономит
чтение без потерь). чтение без потерь).
Кавеат: проверь, что Codex-ревьюер может читать `$SCRATCH` из песочницы Кавеат: проверь, что Codex-ревьюер может читать `$SCRATCH` из песочницы
@@ -5,23 +5,27 @@ their resolutions report is appended below. Check ONLY your own findings —
no full second pass. Mandate unchanged: modify nothing; reading and no full second pass. Mandate unchanged: modify nothing; reading and
running tests are allowed. running tests are allowed.
Judge the repair, not only the closure: Judge the repair, not only the closure — the likeliest source of an
overreaching fix is your own prescription, so put that on trial too.
- A fix that reaches further than your finding required is itself a Before writing NOT_CLOSED, check that a closing state exists at all, and
defect — and the likeliest source of it is your own prescription, so price the demand against what it buys: a demand the platform cannot
put that on trial too. satisfy is not a valid NOT_CLOSED, and neither is one whose cost dwarfs
- Before writing NOT_CLOSED, check that a closing state exists at all, what it protects. That weighing settles invariants of your own code — it
and price the alternative. A demand the platform cannot satisfy, or one does not settle a finding about access, data or money.
that trades away a real property to guard against deliberate misuse, is
not a valid NOT_CLOSED.
One line per your original ID: `ID | CLOSED | NOT_CLOSED (why) | One line per your original ID: `ID | CLOSED | NOT_CLOSED (why) |
REJECTION_VALID | REJECTION_INVALID (why)`. Judge a rejection by its REJECTION_VALID | REJECTION_INVALID (why)`. Where the implementer
argument in the resolutions report — contract and test, not taste. If you reported FIXED, append the verdict on the repair itself:
spot a NEW defect while re-checking, report it with a new ID in the same `| PROPORTIONATE` or `| OVERREACH (what reached further than the finding
index format — narrowness limits scope, not honesty. required)` — OVERREACH is a message upward, not a blocker, and does not
by itself make the run ISSUES_REMAIN. Judge a rejection by its argument
in the resolutions report — contract and test, not taste. If you spot a
NEW defect while re-checking, report it with a new ID in the same index
format — narrowness limits scope, not honesty.
Final line: RECHECK: ALL_CLOSED | ISSUES_REMAIN Final line: RECHECK: ALL_CLOSED | ISSUES_REMAIN — and, if any repair was
judged OVERREACH, the IDs of those repairs on the same line.
The implementer's resolutions report path, test command and expected The implementer's resolutions report path, test command and expected
counters are appended below. counters are appended below.