150 lines
14 KiB
Markdown
150 lines
14 KiB
Markdown
# Промт: бэкенд-сессия «ЗАКОН БАНКА — ЧЕСТНО» (пак одного предмета)
|
||
|
||
## 1. Какая проблема и что решит твой результат
|
||
|
||
Приоритет владельца №1 — **консистентность терминов и голосов на всю книгу**. Она держится на банке
|
||
памяти: строка «термин → перевод» едет в промпт как ЗАКОН для каждой роли. Сегодня закон исполняется,
|
||
но **три места описывают его неверно, а одно не исполняет собственный совет**. Цена — не поломка, а
|
||
хуже: мы не можем узнать правду о собственной работе. Метрика «промахов нет» означает «банк исполнен»,
|
||
а читается как «исполнен ВЕРНО» — и ровно в случае, которого владелец боится (вложили неверный перевод,
|
||
модель послушалась), прибор молчит надёжнее всего.
|
||
|
||
Твой результат: закон банка описан тем, что код делает, и один настоящий пробел в нём закрыт.
|
||
|
||
## 2. Зона и git
|
||
|
||
**Зона записи: `backend/`.** Чужие зоны (`platform/`, `frontend/`, `eval/`, `docs/`) — только чтение;
|
||
расхождения — пингом в секцию «Бэкенд» файла `docs/PROGRESS.md`.
|
||
**Сессия НЕ коммитит** — готовое дерево передаёшь оркестратору. Канон git-дисциплины — `CLAUDE.md`.
|
||
`.env` не читать. Не работать под `/tmp`.
|
||
|
||
## 3. Карта чтения — ЗАКОН, дальше только по её ссылкам
|
||
|
||
1. `CLAUDE.md` — цели владельца и гардрейлы.
|
||
2. Строки бэклога **267**, **318**, **320** (`docs/PROGRESS.md`, греп `^| N |`).
|
||
3. `backend/README.md` — механика движка.
|
||
4. `docs/architecture/03-implementation-notes.md` — через баннер.
|
||
5. `docs/architecture/12-go-style-notes.md` — только больные места.
|
||
|
||
**Ратифицированное, что нужно для работы, — в теле промта, чтобы не искать (`D39.216` требует так):**
|
||
|
||
- **Закон банка (`D39.104`)**: строка на проводе — закон для КАЖДОЙ роли и КАЖДОЙ строки, независимо от
|
||
статуса. ⛔ Ослаблять его этот пак НЕ предлагает: он ратифицирован, доказательств против нет ни у
|
||
одного голоса. Предмет — исполнение и честность описания.
|
||
- **`D39.216` (мандат владельца, 06.09), делай РОВНО так**: проектировать и чинить **без хаков и
|
||
воркэраундов**; где нынешняя форма не тянет — **развязать или переписать**, а не обложить заплатой.
|
||
«Дешевле подпереть» доводом НЕ является. Отступление законно, но **объявляется с ценой**.
|
||
- **Комментарий не доказывает поведение** (`D39.214` п.3): источник утверждения о СМЫСЛЕ — тест или
|
||
прогон. ⚠ Эту норму НЕ ищи грепом в `CLAUDE.md` — её там нет, она живёт нотой.
|
||
- **Число называет ДЕРЕВО и ПОПУЛЯЦИЮ**: приводишь счёт — назови коммит и что именно посчитано.
|
||
- **Рядом с нулём — контрольная величина**: «0 совпадений» неотличимо от «искал не там» (`CLAUDE.md`).
|
||
- **Мутация засчитывается по ТЕКСТУ сообщения, а не по факту красноты** (`CLAUDE.md`): правый вердикт
|
||
по неправой причине — дыра, а не поимка.
|
||
- **Тесты и гейты не подгонять под зелень** (`D39.121`, мотив решает).
|
||
|
||
## 4. Состав и разметка свободы
|
||
|
||
### 4.1 Гард перекрытия окон при слиянии (строка 267) — **делай РОВНО так**
|
||
|
||
Один термин в одном смысле может нести две конкурирующие формы, и обе доезжают на оба провода — дыра в
|
||
проверке схлопывания. Решение владельца 05.09 состоялось, строка несёт разбор. Закрыть.
|
||
|
||
### 4.2 Совет, который движок не исполняет (строка 320а) — **реши сам, аргументируй**
|
||
|
||
Диагностика советует оператору пометить одну строку статусом, а гвард полисемии **статус не смотрит
|
||
вовсе**. Два честных выхода: привести совет к тому, что код делает, **или** научить гвард смотреть
|
||
статус. **Выбор объяви и обоснуй; молча не решай.** ⚠ Второй вариант меняет поведение — тогда это смена
|
||
заказа, и нужен пинг, а не правка.
|
||
|
||
### 4.3 Комментарий постчека — привести к поведению (строка 318) — **делай РОВНО так**
|
||
|
||
Комментарий обещает ловить и случай «вложили неверный перевод, модель исполнила»; код при найденной
|
||
форме делает `continue` ⇒ промаха нет. Приведи текст к поведению **и поставь пин**, чтобы описание
|
||
больше не могло разойтись молча.
|
||
|
||
⛔ **Детектор правильности ЗНАЧЕНИЯ здесь НЕ строить.** Он живёт строкой **286**, упирается в замер
|
||
точности, а не в код, и его постройка тут будет расширением заказа.
|
||
|
||
### 4.4 Два ложных комментария — снять (строки 321 и 322) — **делай РОВНО так**
|
||
|
||
- Оправдание `nil`-переноса в редакторской волне («единица есть глава или её часть») — **ложно**: глава
|
||
регулярно делится на несколько правочных единиц. ⛔ **Сам перенос НЕ строить** — по строке 321 сначала
|
||
замер дрейфа, инцидентов пока ноль. Здесь только честный комментарий.
|
||
- Утверждение, что обычный резюм перезаписывает строку статуса, — **ложно**: он выходит раньше, пишет
|
||
только ре-пин.
|
||
|
||
### 4.5 Чего в паке НЕТ и почему — **не делай**
|
||
|
||
- **Строка 322 (история принятой редактуры)** — другой предмет: жизненный цикл чекпойнтов и схема, а не
|
||
закон банка. Отдельным паком.
|
||
- **Строка 295 (подать подписанный канон в прогон)** — снята из этого пака: у бэкенд-сессии нет ни
|
||
книги, ни стенда, ни санкции на деньги. Если найдёшь чисто бэкендовую половину — **назови её пингом**,
|
||
но не бери.
|
||
- **Перекрой структуры глав (161/283)** — отдельный дизайн-пак.
|
||
|
||
## 5. Мандат самопроверки ИСПОЛНЕНИЕМ — механизм назван, и пустое исполнение его не удовлетворяет
|
||
|
||
⛔ «Перечитал сам» **не считается**. Обязательны все три:
|
||
|
||
1. **Мутационная проверка каждого пина, который ты заводишь или трогаешь.** Механизм: сломай проверяемое
|
||
свойство, прогони пин, **прочитай ТЕКСТ падения** и убедись, что он говорит про сломанное тобой, а не
|
||
про что-то соседнее; восстанови файл и **сверь sha256** с исходным. Артефакт: таблица «мутация →
|
||
текст падения → хеш восстановлен».
|
||
2. **Опровергатель твоей готовой работы отдельным субагентом.** ⚠ Харнесс по умолчанию субагентов не
|
||
спавнит — **тебе это РАЗРЕШЕНО и требуется**. Модель задай ЯВНО (`fable` — контролёр проекта), знай,
|
||
сколько их у тебя работает; одного-двух достаточно. Мандат ему: «найди в этой работе отсутствующее и
|
||
противоречащее», а не «проверь, всё ли хорошо».
|
||
3. **Греп по отозванной формулировке перед словом «исправлено»**: `grep -c "<снятая фраза>" <файл>` —
|
||
ноль либо только внутри пометки. Смена 06.09 попалась на этом трижды.
|
||
|
||
## 6. Оси ревью — характер работы «Код» и «Доки»
|
||
|
||
Из таблицы приёмки, две оси, обе твои:
|
||
- **Код:** ⚠ «тест утверждает не то, что думает» — проверь, что каждый твой пин падает ИМЕННО от того,
|
||
что он охраняет (см. §5.1).
|
||
- **Доки:** сверка утверждений против кода и живых носителей — весь этот пак ровно об этом.
|
||
|
||
## 7. Записка-план ДО работы
|
||
|
||
До первой правки пришли оркестратору ≤15 строк: что берёшь по каждому из четырёх пунктов · где ждёшь
|
||
сопротивления · что считаешь спорным в самом заказе. Это дешевле, чем разойтись на готовом.
|
||
|
||
## 8. Заявление = команда
|
||
|
||
Любое число и любая категорика в отчёте — **с командой, которой получены**, и её выводом, а не
|
||
пересказом. «Батарея зелёная» без команды и её кода возврата — не факт.
|
||
|
||
## 9. Эхо-протокол старта
|
||
|
||
ДО работы пришли ≤10 строк: **скоуп** (что берёшь) · **инварианты** (что обязано уцелеть) · **не-делать**
|
||
(что в паке запрещено). Если эхо разойдётся с моим заказом — лучше здесь, чем в приёмке.
|
||
|
||
## 10. Что НЕ удалось — обязательная секция отчёта
|
||
|
||
Что не проверено · что не воспроизвелось · где данных не хватило. **«Не измерено» вместо догадки.**
|
||
|
||
## 11. Канал вопросов и право отказаться
|
||
|
||
Конфликт промта с кодом или доками — **пинг, не правка**. И у тебя есть **право сказать «этого делать не
|
||
надо»** с аргументом: если по коду окажется, что предмет описан мимо, это самый ценный ответ.
|
||
|
||
## 12. Прямой канал
|
||
|
||
Механизм — `CLAUDE.md` §«Связь между сессиями»: файл `/tmp/textmachine-channel`, свой блок впиши первым
|
||
делом, адреса других ролей — оттуда, живость сверяй `ListAgents`. ⚠ **Нужной роли нет или файла нет —
|
||
это НОРМАЛЬНЫЙ случай**: вопрос секцией в отчёт, сессии подряд не опрашивать.
|
||
|
||
## Деньги
|
||
|
||
**Этот пак — $0.** Платных вызовов к моделям в нём нет ни одного: все четыре предмета — код,
|
||
комментарии и пины на фикстурах. ⛔ Если по ходу окажется, что предъявить что-то можно только платным
|
||
прогоном — **это пинг оркестратору за санкцией, а не твоё решение**. Санкции на деньги промт не несёт.
|
||
|
||
## Отчёт
|
||
|
||
Секция «Бэкенд» в `docs/PROGRESS.md` + сообщение оркестратору: что построено · чем предъявлено (команда
|
||
и вывод) · таблица мутаций из §5.1 · что сказал опровергатель и что ты с этим сделал · двигает ли
|
||
что-нибудь из сделанного снапшот, хеш запроса, ключ манифеста или версию встроенных данных · секция §10 ·
|
||
**что ты сам считаешь слабым местом своей работы**.
|
||
|
||
⚠ Числа батареи снимай **после последней правки**, не до.
|