# Скелеты промптов конвейера Отработали боевой прогон 2026-07-10 (3 цикла, тикеты FTP/CSV DQ). Правило использования: заполни скелет в `$SCRATCH` **один раз за прогон** и дальше не переписывай — на каждую следующую задачу пиши только параметрический блок и собирай финальный промпт конкатенацией. Плейсхолдеры `{{...}}` заполняются значениями задачи; секции, помеченные «адаптируй», меняются по смыслу задачи, остальное — стабильный boilerplate. `$SCRATCH` здесь — общий обменный каталог прогона во **временном каталоге ОС с полуслучайным префиксом**: скретчпад сессии из системного промпта (он уже такой) или `mktemp -d` на прогон. Это безопасный вариант (решение пользователя 2026-07-10): не мусорит в репо, не сталкивается с параллельными прогонами и не переживает ребут машины — устаревшие обменные файлы не накапливаются. Windows-кавеат из codex-exec.md в силе: путь — forward-slash, не голый `/tmp` Git Bash. ## 1. Задача исполнителю (`codex exec`, workspace-write) ```markdown # Задача: {{тикет/цель одной строкой}} Рабочий каталог — корень репозитория {{repo}}. Ветка {{branch}} — работай в ней, ветку не менять. ## Что делать Реализуй {{тикет NN}} из {{путь к задаче-файлу}}. Задача самодостаточна: постановка — в тикете, следуй ей буквально; чекбоксы — критерии приёмки. Кажется неправильным — реализуй как написано и отметь сомнение в отчёте. ## Сначала прочитать (обязательно, до кода) {{нумерованный список: задача-файл, спека, образцы кода, конвенции}} ## Порядок и дисциплина {{адаптируй: TDD, порядок слоёв, команда тестов}} ## Границы (что трогать нельзя) - **Коммитов не делать.** Никаких `git commit`/`git add`. {{адаптируй: стабы, чужой код, существующие тесты, файлы вне репо}} ## Финальный отчёт (что вернуть) 1. Файлы с одной строкой «зачем» на каждый. 2. Команда тестов и итог прогона (счётчик, все зелёные). 3. Чекбоксы: какие закрыты, какие нет и почему. 4. Сомнения, если были. ``` ## 2. Слепое ревью (один файл на ОБОИХ ревьюеров) Канонический файл не знает, кто его читает — куда класть вердикт, задаёт обёртка вызова, и пути у ревьюеров разные (иначе коллизия): - **Codex**: файл через stdin; отдельный файл вердикта не нужен — вердикт и есть его `-o`-отчёт (`$SCRATCH/NN-review-codex.md`). - **Клод-субагент**: в prompt — только обёртка: «прочитай {{путь к каноническому файлу}} и выполни, рабочий каталог {{корень репо}}; полный индекс запиши в {{$SCRATCH/NN-review-claude.md}} — это вне репо, мандату не противоречит (Write у тебя нет — Bash heredoc'ом); финальным сообщением пришли только строку VERDICT, счётчики по severity и путь к файлу». ```markdown # Ревью кода: {{тикет NN — суть}} Ты — независимый адверсарный ревьюер. Рабочий каталог — корень репозитория {{repo}}, ветка {{branch}}. ## Мандат (жёсткий) - Исходники и окружение НЕ менять. Правок не вносить — только находки. - Запускать тесты, проверять гипотезы, читать документацию — можно и нужно; безопасные эмпирические проверки во временных каталогах вне репо поощряются: вердикт с проверкой твёрже вердикта по прочтению. - Никаких `git add`/`git commit`/`git checkout`. - Итог — только индекс находок и строка VERDICT, без пересказа кода и нарратива; куда его положить — сказано в вызове. ## Что ревьюишь {{задача-файл + спека; что уже закоммичено и не ревьюится}} Изменения (незакоммичены, смотри рабочее дерево): {{список файлов}} Команда тестов (ожидается {{N}} passed): {{команда}} ## Фокус {{адаптируй: 3–4 пункта под задачу — математика/краевые, соответствие критериям, честность тестов, общий код/регрессии}} ## Формат файла находок — только индекс SEVERITY(BLOCKER|MAJOR|MINOR|NIT) | файл:строка | суть одной фразой | как проверить/воспроизвести В конце — отдельная строка: VERDICT: APPROVED | APPROVED_WITH_MINORS | CHANGES_REQUIRED ``` ## 3. Триаж исполнителю (`codex exec resume `) Собирается конкатенацией — находки НЕ переписывать: `cat шапка.md review-A.md review-B.md замечания.md > fix-prompt.md` Шапка (стабильная): ```markdown # Триаж находок двух независимых ревью твоей реализации Ниже — находки двух слепых ревью **дословно**. Закрой перечисленное, больше ничего не меняй. По каждой — починка по TDD (сначала тест, воспроизводящий находку) или аргументированное отклонение через контракт/спеку и тест — голословное «не важно» не принимается. Коммитов не делать. Финальный отчёт: по каждой находке одной строкой — починено (чем) / отклонено (довод + где зафиксировано); команда тестов, счётчик прогона, список изменённых файлов. ``` Замечания оркестратора (опционально, коротко): фактура, которой нет у исполнителя (проверенные тобой данные), решения уровня задачи (вне скоупа / принять риск), приоритеты. ## 4. Узкая перепроверка (тем же ревьюером) ```markdown # Узкая повторная проверка: закрывают ли правки твои находки Исполнитель обработал находки. Проверь ТОЛЬКО свои — полный повторный обход не нужен. Мандат прежний: ничего не менять, только чтение и прогон тестов. Отчёт исполнителя с резолюциями: прочитай {{$SCRATCH/NN-fix-result.md}}. Команда тестов (ожидается {{N}} passed): {{команда}} Ответ — по каждой твоей находке одной строкой: CLOSED / NOT_CLOSED (почему) / REJECTION_VALID / REJECTION_INVALID (почему). Финальная строка: RECHECK: ALL_CLOSED | ISSUES_REMAIN ``` Кавеат: проверь, что Codex-ревьюер может читать `$SCRATCH` из своей песочницы (temp-каталоги обычно читаемы в workspace-write; в этом прогоне `-o`-файлы под `/tmp` работали). Если нет — резолюции по его находкам передай текстом (только его находки, не весь отчёт).