diff --git a/docs/BACKEND_GATES_NOT_PROSE_SESSION_PROMPT.md b/docs/BACKEND_GATES_NOT_PROSE_SESSION_PROMPT.md index 5c3c1923..96143a1c 100644 --- a/docs/BACKEND_GATES_NOT_PROSE_SESSION_PROMPT.md +++ b/docs/BACKEND_GATES_NOT_PROSE_SESSION_PROMPT.md @@ -159,8 +159,11 @@ гейта молча. Состав ВЫВОДИТСЯ из каталога (префикс id, поле — форму выбери сам), а не перечисляется; - **`expect: "survives"` — штатная дверь для подгонки**: мутант объявляется «аргументированно выжившим», и цель зелена. Для записей ЭТОГО пака `survives` запрещён — это ровно мотив, запрещённый `D39.183`; -- **копировать надо РАБОЧЕЕ дерево** (`cp -a`), а не `git archive HEAD`: иначе гейт судит HEAD и твоих - новых пинов не видит. И убирай копию за собой на падении тоже, иначе `/tmp` копится; +- **копировать надо РАБОЧЕЕ дерево**, а не `git archive HEAD`: иначе гейт судит HEAD и твоих новых пинов + не видит. ⛔ **Но НЕ `cp -a`, и это не вкусовщина:** он тащит в `/tmp` секреты (`.env`) и бинари, а в + существующий каталог ещё и ВКЛАДЫВАЕТ вместо замены. Форма — `d=$(mktemp -d) && tar -cf - --exclude=./bin --exclude='./.env*' -C backend . | tar -xf - -C "$d"`, работа в `$d`, `rm -rf "$d"` в конце И на падении + (замер 07.09: копия 6.8 МБ вместо 17, секретов 0 при 12 элементах верхнего уровня, `go build ./...` + проходит). Забитый `/tmp` красит батарею `no space left on device` — красное, неотличимое от дефекта кода; - **`Package` записи каталога — это пакет ПИНА, а не пакет правки.** Инструмент гоняет ОДИН пакет. Правка M5 живёт в `internal/chunk`, а утверждение реконструкции — в `internal/pipeline`: запись с чужим пакетом честно скажет SURVIVED, ничего не проверив. Для каждой новой записи назови пакет, где живёт утверждение; @@ -315,8 +318,9 @@ value-default, на который ссылаются `checks/sanitizer.go:21` 1. **Каждая новая гарантия предъявляется МУТАЦИЕЙ.** Для каждого утверждения, которое ты добавил: посади правку, ломающую именно его, и покажи КРАСНОТУ **с текстом падения**. ⛔ Текст читается: говорит ли он про сломанное тобой. Правый вердикт по неправой причине — дыра, а не поимка. -2. **Мутации гоняются ТОЛЬКО на копии дерева** (`cp -a backend <копия>`, `-root <копия>`). Рабочее дерево - не правится никогда, в том числе «на секунду». +2. **Мутации гоняются ТОЛЬКО на копии дерева**, и копия делается БЕЗ секретов и бинарей, в УНИКАЛЬНЫЙ + путь, с уборкой за собой: `d=$(mktemp -d) && tar -cf - --exclude=./bin --exclude='./.env*' -C backend . | tar -xf - -C "$d"`, работа в `$d`, `rm -rf "$d"` в конце И на падении, затем `-root "$d"`. + Рабочее дерево не правится никогда, в том числе «на секунду». 3. **Мутируй и СВОИ новые фикстуры**, не только боевой код: фикстура, которую ты только что написал и считаешь сильной, — типовое место, где прячется второе вырождение (`D39.208` п.5). 4. **BASELINE НА ВХОДЕ, снят оркестратором 07.09 на `4d0b68e`** — чтобы ты отличал СВОЮ поломку от diff --git a/docs/ORCHESTRATOR_SESSION_PROMPT.md b/docs/ORCHESTRATOR_SESSION_PROMPT.md index fb8bdbce..a3d00aa2 100644 --- a/docs/ORCHESTRATOR_SESSION_PROMPT.md +++ b/docs/ORCHESTRATOR_SESSION_PROMPT.md @@ -228,7 +228,7 @@ D23.3). Владельцу на решение: деньги сверх мело ### Запускаешь панель/субагентов? -Изоляция жёстко (D39.113): свой каталог песочницы КАЖДОМУ агенту · ⛔ **верификатору, судящему НАЗВАННЫЙ КОММИТ, выдаётся ГОТОВЫЙ ПУТЬ отдельного рабочего дерева — `git worktree add <путь> <коммит>`, а не только запрет ниже** (внесено 05.09, `D39.202` п.8: запрет СТОЯЛ и не сработал на 22 агентах приёмки — общее дерево отцепилось на судимый коммит, следующий коммит оркестратора ушёл мимо ветки, и заметила это ЧУЖАЯ зона) · запрет state-changing git +Изоляция жёстко (D39.113): свой каталог песочницы КАЖДОМУ агенту · ⛔ **копия модуля — БЕЗ секретов и бинарей, в УНИКАЛЬНЫЙ путь, с уборкой за собой** (`tar --exclude=./bin --exclude='./.env*'`, не `cp -a`: он тащит `.env` в `/tmp` и в существующий каталог ВКЛАДЫВАЕТ вместо замены; забитый `/tmp` красит батарею `no space left on device` — красное, неотличимое от дефекта кода) · ⛔ **верификатору, судящему НАЗВАННЫЙ КОММИТ, выдаётся ГОТОВЫЙ ПУТЬ отдельного рабочего дерева — `git worktree add <путь> <коммит>`, а не только запрет ниже** (внесено 05.09, `D39.202` п.8: запрет СТОЯЛ и не сработал на 22 агентах приёмки — общее дерево отцепилось на судимый коммит, следующий коммит оркестратора ушёл мимо ветки, и заметила это ЧУЖАЯ зона) · запрет state-changing git ПЕРЕЧИСЛЕНИЕМ (`reset` · `checkout` · `restore` · `clean` · `stash` · `add` · `commit` · `rebase` · `push`) · бэкап чужого незакоммиченного ДО запуска (`git diff > файл` вне репо + копии untracked) · мандат чисто читающий; «работай в копии» без выданного пути = приглашение к инциденту.