From 4dfbd7a5e3d7a4c228a75b103afdab153a177a5c Mon Sep 17 00:00:00 2001 From: heaven Date: Sat, 15 Aug 2026 20:53:46 +0300 Subject: [PATCH] Harden the contract review prompt with the six reviewer anti-patterns, their genesis, research lessons, freedom markup and the anti-anchoring reading order --- docs/CONTRACT_REVIEW_SESSION_PROMPT.md | 54 ++++++++++++++++++++++++++ 1 file changed, 54 insertions(+) diff --git a/docs/CONTRACT_REVIEW_SESSION_PROMPT.md b/docs/CONTRACT_REVIEW_SESSION_PROMPT.md index 065286ce..1c7d77ba 100644 --- a/docs/CONTRACT_REVIEW_SESSION_PROMPT.md +++ b/docs/CONTRACT_REVIEW_SESSION_PROMPT.md @@ -78,6 +78,57 @@ git запрещён перечислением: reset/checkout/restore/clean/st менять код / оставить как есть с записанным обоснованием». REJECTED-буллеты — отдельной секцией с причинами (отвержение лишнего — тоже результат). +## 2а. Наши антипаттерны и оплаченные уроки — дисциплина ТВОЕГО ревью, с генезисом (не декор; каждый куплен реальным инцидентом проекта) + +Проект ведёт письменный канон дисциплины ревьюера (дом — `docs/ORCHESTRATOR_SESSION_PROMPT.md`, +блок «Анти-паттерны приёмки», и D-ноты D39.46/47/120/121). Шесть ловушек, в которые ревью на +LLM падает систематически — и как промт §2 их гасит: + +1. **След отчёта** — ревьюер проверяет только места, НАЗВАННЫЕ автором. У тебя: суди контракт по + СВОЕЙ карте, построенной из кода и стандартов, а не по карте компаньона и наших ратификаций — + они и есть «отчёт автора». +2. **Связность вместо истинности** — гладкий, хорошо мотивированный текст убеждает сам собой + (наша спека многословно обосновывает свои решения — это форма, не доказательство). Гаситель — + greenfield §2.2: форма API проектируется ДО знакомства с нашими доводами. +3. **Соглашательство с чёткой позицией** — LLM склонны соглашаться с уже принятым/сформулированным. + Отсюда мандат «ратифицировано ≠ правильно» — он не разрешение, а ОБЯЗАННОСТЬ пере-судить. +4. **Рационализация задним числом** — найдя довод ЗА нашу форму, проверь: существовал бы этот + довод, если бы ты увидел такую форму в чужом API? +5. **Слепой участок общих моделей** — модели одного семейства обучены на пересекающихся корпусах: + подтверждение буллета тем же семейством НЕ независимо. Поэтому кросс-модельные опровергатели + §2.5 — требование, не пожелание (норма D39.120). +6. **Экономия усилия на неудобном** — самые дорогие находки живут там, где читать скучно: + пагинация, коды ошибок, идемпотентность, повторы. Скучное — читать первым, не последним. + +Плюс три урока наших же ресёрчей и замеров: + +- **Овер-атрибуция — ТИПОВОЙ провал ресёрчей этого проекта** (верные числа/цитаты не к тому + предмету; ловилось многократно, вплоть до приёмок): цитаты стандартов — ДОСЛОВНЫЕ, с URL, + сверенные по первоисточнику; пересказ RFC по памяти модели уликой НЕ является. +- **Сфабрикованная сходимость** (наш повторявшийся паттерн агрегации): «три линзы сходятся» + ощущается сильнее данных. Перед мульти-линзовым буллетом — leave-one-out: держится ли он без + каждой из линз по отдельности. +- **Вывод на агрегате до вскрытия единиц запрещён** (урок платных замеров, D39.61): вердикт по + КЛАССУ («ошибки без машинных кодов», «списки без пагинации») — только после вскрытия конкретных + мест с `file:line`, минимум по одному на затронутую зону. + +**Предметные оси самопроверки этого пака** (норма D39.120; вправе добавить свою или +аргументированно снять): (1) *claim-fidelity* — перед сдачей выборочно пере-открой ≥10 случайных +`file:line`-улик своего отчёта исполнением; (2) *анти-инерция* — у каждого вердикта «оставить как +есть» записан КОНТРАРГУМЕНТ, который ты рассмотрел и отверг (пустая графа = не судил); +(3) *полнота интересов* — каждый буллет несёт, чью боль лечит и кому миграция дорога (§4). + +**Разметка свободы:** метод §2 и входы §3 по ПОКРЫТИЮ — «делай ровно так» (каждому входу — +диспозиция, вплоть до «делать не надо, потому что…» — это легитимный ответ с аргументом); +СУЩЕСТВО вердиктов — целиком твоё (ты предлагаешь, ратифицируют владелец и оркестратор). +Аддендумы к промту доезжают только релеем владельца — эхо-подтверди получение и отрази отдельным +пунктом отчёта. Жаргон проекта (банк, юнит, волна, банкнота, сид…) — `docs/glossary.md`. + +**Порядок чтения против якорения:** ты-лид читаешь всё; но greenfield-агентам §2.2 наша спека, +компаньон, D-ноты и этот раздел НЕ выдаются — им только продуктовый бриф. Мотивы наших правок +(провенанс ✓/◆/○ компаньона, приёмочные записи фронта) сам читай ПОСЛЕ того, как твоя +собственная карта фактов §2.1 построена. + ## 3. Обязательные входы (вопросы, уже стоящие в очереди — каждому дать диспозицию в отчёте) - **Ф-56**: конец разбора книги никто не объявляет — клиент лечится опросом раз в 3 с; кадр/канал? @@ -130,6 +181,9 @@ git запрещён перечислением: reset/checkout/restore/clean/st CONFIRMED/PLAUSIBLE с ценой и рекомендацией, упорядоченные по severity · (3) REJECTED с причинами · (4) предложение состава батча 0.3.0 (или честное «контракт здоров, N точечных правок») · (5) не покрытое. Владельцу — краткое резюме поверх файла. +- Стиль отчёта — норма «без саги»: плотность, не объём; эрудиция ≠ улика (каждое утверждение — + `file:line` или дословная цитата с URL, иначе пометка «мнение»); без пересказа промта и + шаблонных оговорок. ## 7. Канал вопросов