Make the pack two-phase: ten of thirteen items are one missing law, so the session designs it before touching any instance
This commit is contained in:
parent
e1ae8fe0cd
commit
9d27c0b8e9
1 changed files with 81 additions and 18 deletions
|
|
@ -29,7 +29,67 @@
|
|||
⚠ **Пак НЕ про качество перевода и НЕ про калибровку ставки.** Числа прогона — проекция на n=3, ими
|
||||
ничего не калибруют (`D39.165 ⛔г`).
|
||||
|
||||
## 1. Состав — два яруса, и смешивать их НЕЛЬЗЯ
|
||||
## 1. ГЛАВНОЕ: пак ДВУХФАЗНЫЙ, и первая фаза — ДИЗАЙН, а не правка
|
||||
|
||||
⚠ **Это заказ владельца 31.08, и он меняет предмет пака.** Когда одиннадцать правок были собраны, стало
|
||||
видно, что **десять из тринадцати пунктов — ОДНОЙ ФОРМЫ**: движок ЗНАЕТ факт и не сообщает его, либо
|
||||
сообщает ложь, либо сообщает не в тот канал.
|
||||
|
||||
| | что движок знает | что делает |
|
||||
|---|---|---|
|
||||
| A0 | хвост неудач посчитан | не показывает |
|
||||
| A2 | смета фазы посчитана и НАПЕЧАТАНА рядом с бюджетом | не судит |
|
||||
| A3а | файлы записаны на диск | `exit 1` говорит «ничего не записано» |
|
||||
| A3б | формат удалён | `book_files` печатает его путь |
|
||||
| A4 | какое поле снапшота разошлось | называет выдуманную причину |
|
||||
| A5 | остановка по объёму | говорит прозой, не машинным каналом |
|
||||
| A6 | исходник правлен, юниты будут перекуплены | смета молчит |
|
||||
| A7 | стадия исчезла из конфига | `status` говорит `drift=false`, `export` — `true` |
|
||||
| A8 | байты промпта (`PromptSHA256`) | метка `prompt_version` с ними не связана |
|
||||
| A10 | деньги банк-ролей потрачены | проекция их не покрывает |
|
||||
|
||||
Десять экземпляров одной болезни — это **не десять багов, а один отсутствующий закон**: у движка нет
|
||||
единой дисциплины «что оператор и платформа обязаны узнать, и по какому каналу». Чинить поштучно
|
||||
значит гарантировать одиннадцатый экземпляр через месяц.
|
||||
|
||||
### ФАЗА 1 — спроектировать закон. Твой главный результат.
|
||||
|
||||
**Что спроектировать.** Правило вида «факт КЛАССА X, вычисленный движком, обязан достичь потребителя Y
|
||||
по каналу Z» — и гейт, который ловит нарушение механически.
|
||||
|
||||
**Жёсткие рамки, они не обсуждаются:**
|
||||
- **Потребителей ТРИ, и они читают РАЗНОЕ.** Оператор — stdout/stderr и отчёт `translate`. Платформа —
|
||||
коды выхода · поток `events.jsonl` · **`status --json`, чей allowlisted-подмножество она декодирует**
|
||||
(`platform/internal/runner/engine.go`, греп `Status runs the reconciliation channel`; ⚠ у неё же
|
||||
`exit 2` от `status` — ОТВЕТ, а не отказ). ⛔ **Отчёт `translate` платформе НЕ виден** — это и есть
|
||||
ловушка A5. $0-читатели — обе стороны. Закон назначает канал ПО ПОТРЕБИТЕЛЮ, а не по удобству.
|
||||
⚠ Перечень проверь САМА грепом по `platform/internal/runner/`: я его уже один раз назвал неверно.
|
||||
- **Каналы РАТИФИЦИРОВАНЫ и узки.** Полоса кодов выхода — замороженный словарь; кадры потока — контракт
|
||||
шва; `status --json` читает платформа. ⛔ **Новое слово в любой из них — НЕ решение сессии.** Закон
|
||||
может ПОТРЕБОВАТЬ расширения — тогда это пункт на ратификацию, а не правка.
|
||||
- **Закон без гейта гниёт.** Сегодня в проекте это измерено на соседнем механизме: из ~818 указателей
|
||||
доков по содержимому проверялись 89, и потому 34 уехали молча. Спроектируй, чем ловится
|
||||
ОДИННАДЦАТЫЙ экземпляр — иначе мы вернёмся сюда.
|
||||
|
||||
**Проверка качества дизайна — на корпусе, а не на вкусе:** закон обязан объяснить **все десять** строк
|
||||
таблицы выше, и для каждой сказать, какой канал правильный. ⚠ **Найдёшь одиннадцатый экземпляр,
|
||||
которого в таблице нет, — это лучший результат фазы 1**, лучше самого закона: он покажет, что мерка
|
||||
работает. Ищи специально.
|
||||
|
||||
⛔ **ФАЗУ 1 ТЫ НЕ РАТИФИЦИРУЕШЬ.** Дизайн уезжает пингом оркестратору → владельцу. **Стоп-точка: к
|
||||
правкам классов A0/A2/A3/A4/A5/A6/A7/A8/A10 не приступаешь до ответа.** Это дизайн-решение размера
|
||||
владельца, а не хвост пака.
|
||||
|
||||
### ФАЗА 2 — пока ждёшь ратификации и после неё
|
||||
|
||||
**Пока ждёшь** — бери то, что от закона НЕ зависит и его не предрешает: **A1** (дефолт эхо-регена),
|
||||
**A9** (строка 233), **A11** (строка 232). Это экономика и абстракция, не раскрытие.
|
||||
|
||||
**После ратификации** — применяешь закон к десяти экземплярам. ⚠ Если ответ придёт поздно или не
|
||||
придёт, отчёт сдаётся с фазой 1 и тремя пунктами фазы 2; **это ПОЛНОЦЕННЫЙ результат, а не недоделка**.
|
||||
Не изобретай закон сама, чтобы успеть.
|
||||
|
||||
## 2. Состав правок — два яруса, и смешивать их НЕЛЬЗЯ
|
||||
|
||||
**Механическая причина деления.** Снапшот стадии фолдит `Model` · `PromptVersion` · `PromptSHA256` ·
|
||||
`Temperature` · **`Reasoning`** (`backend/internal/pipeline/snapshot.go:290`=`Reasoning string`).
|
||||
|
|
@ -120,11 +180,13 @@ flash 0731 **стохастично на вызов** (побайтно один
|
|||
стоит раньше (`backend/cmd/tmctl/main.go`, греп `refusalExit`, тело `exitCode`). Объёмный стоп своего
|
||||
кода не имеет вовсе — он едет РЕЗУЛЬТАТОМ, не ошибкой. То есть «я купил столько и всё» и «что-то тихо
|
||||
сломалось» для потребителя кодов **машинно неразличимы**; различает только строка `VOLUME CEILING:`.
|
||||
⚠ Платформа читает КОДЫ ВЫХОДА и поток `events.jsonl`; отчёт `translate` ей не виден вовсе.
|
||||
⚠ Платформа читает коды выхода, поток `events.jsonl` и `status --json`; **отчёт `translate` ей не
|
||||
виден** — поэтому «признак есть в отчёте прогона» задачу НЕ решает.
|
||||
⛔ Новый код выхода — слово в ратифицированный словарь, **пинг, а не решение сессии**.
|
||||
⇒ **Этот пункт — ПИНГ С ДОМАШНЕЙ ЗАГОТОВКОЙ.** Твоя работа: перечислить машинные носители признака,
|
||||
которые СУЩЕСТВУЮТ (кандидаты: словарь `Finished.Outcome` — `backend/internal/runevents/`, греп
|
||||
`Outcome`; полоса кодов; кадры потока), сказать про каждый, ратифицирован ли он и достаёт ли до
|
||||
`Outcome`; полоса кодов; кадры потока; **поля `status --json`** — единственный из четырёх, который
|
||||
платформа уже декодирует), сказать про каждый, ратифицирован ли он и достаёт ли до
|
||||
платформы, и предложить ОДИН с доводом. Правку вносит следующий пак после ратификации.
|
||||
|
||||
**A6. Строка 238 — деньги слепы к правке исходника НА МЕСТЕ.**
|
||||
|
|
@ -178,7 +240,7 @@ flash 0731 **стохастично на вызов** (побайтно один
|
|||
`ReasoningNone` шлёт `low|medium|high` и молчит только на `off`
|
||||
(`backend/internal/llm/capability.go:52`=`ReasoningNone is the OpenAI-compat baseline`).
|
||||
|
||||
## 2. Зона записи и git
|
||||
## 3. Зона записи и git
|
||||
|
||||
**Пишешь:** `backend/` + **свою секцию «Бэкенд» в `docs/PROGRESS.md`** — краткий итог сессии туда
|
||||
ОБЯЗАТЕЛЕН, это единственное исключение канона (CLAUDE.md §«Роли сессий и зоны»), и туда же идут
|
||||
|
|
@ -193,7 +255,7 @@ flash 0731 **стохастично на вызов** (побайтно один
|
|||
`-wal`/`-shm`. **Любое чтение чужой базы — только `sqlite3 'file:<путь>?mode=ro'`.**
|
||||
- ⚠ Улика прогона: `books/gu-zhenren/coldrun-v16/` — читать можно и нужно, **менять нельзя**.
|
||||
|
||||
## 3. Карта чтения — ЗАКОН, пять позиций
|
||||
## 4. Карта чтения — ЗАКОН, пять позиций
|
||||
|
||||
1. **`docs/experiments/00-provider-quirks.md`** — эхо-мина, стохастичность эха, цены и ручки. Несущее
|
||||
для A1. ⚠ Факт о провайдере правится ТОЛЬКО пробой или вендор-докой, с датой и способом в самой
|
||||
|
|
@ -210,7 +272,7 @@ flash 0731 **стохастично на вызов** (побайтно один
|
|||
|
||||
Остальное — код первичен, достаёшь сама грепом.
|
||||
|
||||
## 4. Разметка свободы
|
||||
## 5. Разметка свободы
|
||||
|
||||
**Делай РОВНО так (отступление = пинг, не интерпретация):**
|
||||
|
||||
|
|
@ -232,7 +294,7 @@ flash 0731 **стохастично на вызов** (побайтно один
|
|||
в A3(б) · форма гейта метки в A8 · порядок и глубина A9–A11 по остатку ресурса · что из A9–A11 не
|
||||
влезло (скажи прямо, не растягивай).
|
||||
|
||||
## 5. Оси предъявления
|
||||
## 6. Оси предъявления
|
||||
|
||||
Каждый пункт получает вердикт **предъявлено / не предъявлено / опровергнуто**. Три исхода, не два.
|
||||
|
||||
|
|
@ -247,7 +309,7 @@ flash 0731 **стохастично на вызов** (побайтно один
|
|||
⚠ Оси выше — приор оркестратора, **не потолок**: считаешь, что уязвимо другое, — замени с доводом и
|
||||
скажи об этом в отчёте.
|
||||
|
||||
## 6. Мандат самопроверки ИСПОЛНЕНИЕМ
|
||||
## 7. Мандат самопроверки ИСПОЛНЕНИЕМ
|
||||
|
||||
Самоотчёт «проверено» без исполнения регулярно оказывается ложным.
|
||||
|
||||
|
|
@ -270,39 +332,40 @@ flash 0731 **стохастично на вызов** (побайтно один
|
|||
6. **Перед отчётом сверь КАЖДЫЙ клейм с результатом инструмента ЭТОЙ сессии.**
|
||||
7. **Последний абзац отчёта — план или обещание? Сделай сейчас.**
|
||||
8. **Интервальная сверка с заказом** на каждой естественной границе: «что предъявлено / что ещё нет»,
|
||||
и хотя бы одну отдай субагенту с явными критериями §5.
|
||||
и хотя бы одну отдай субагенту с явными критериями §6.
|
||||
|
||||
## 7. Записка-план и комплектность
|
||||
## 8. Записка-план и комплектность
|
||||
|
||||
Записка-план до первой правки (§6.1). Перед сдачей — механическая сверка отчёта против §1 по пунктам:
|
||||
каждый A получает вердикт §5. Пункт, который ты решила не брать, — **решение с доводом**, а не молчание.
|
||||
Записка-план до первой правки (§7.1). Перед сдачей — механическая сверка отчёта против §1 (фазы) и §2
|
||||
(состав правок) по пунктам:
|
||||
каждый A получает вердикт §6. Пункт, который ты решила не брать, — **решение с доводом**, а не молчание.
|
||||
⚠ **Где всё живёт:** записка-план и отчёт — ФАЙЛОМ в репозитории (при лендинге оркестратор уносит их в
|
||||
`docs/archive/reports/`); краткий итог сессии — секцией «Бэкенд» в `docs/PROGRESS.md`. `/tmp` умирает
|
||||
с окружением: что должно пережить рестарт, туда не кладётся.
|
||||
|
||||
## 8. «Заявление = команда»
|
||||
## 9. «Заявление = команда»
|
||||
|
||||
Каждое число и каждая категорика — С КОМАНДОЙ, которой получены. Приёмка пере-ранит выборочно.
|
||||
Клейм о рантайме без живого прогона = **PLAUSIBLE**, и так помечается.
|
||||
⚠ Числа прогона (23.7% · $0.103305 · 16 термов) — **чужие**: либо пере-сними их сама из
|
||||
`coldrun-v16` read-only, либо помечай «со слов прогона».
|
||||
|
||||
## 9. Эхо-протокол старта
|
||||
## 10. Эхо-протокол старта
|
||||
|
||||
**ДО первой правки** — ≤10 строк: скоуп / инварианты / чего не делаешь. Первым действием по каналу §12.
|
||||
**ДО первой правки** — ≤10 строк: скоуп / инварианты / чего не делаешь. Первым действием по каналу §13.
|
||||
|
||||
## 10. Obstacle reporting
|
||||
## 11. Obstacle reporting
|
||||
|
||||
Обязательная секция: **что НЕ удалось и что НЕ проверено**. Пустая секция при непустой работе —
|
||||
дефект отчёта. Ты вправе сказать «этого делать не надо» с аргументом — это поощряется.
|
||||
|
||||
## 11. Канал вопросов
|
||||
## 12. Канал вопросов
|
||||
|
||||
Конфликт промта с кодом ⇒ **пинг, НЕ интерпретация**. Код первичен: промт мог устареть, и его автор
|
||||
сегодня уже трижды ошибался в фактуре. Mid-flight правки доезжают ТОЛЬКО релеем — владелец
|
||||
пере-передаёт, ты эхо-подтверждаешь, и это отдельный пункт отчёта.
|
||||
|
||||
## 12. Прямой канал
|
||||
## 13. Прямой канал
|
||||
|
||||
Механизм — `CLAUDE.md` §«Связь между сессиями»; файл **`/tmp/textmachine-channel`**. Впиши СВОЙ блок
|
||||
первым делом, дописывая в КОНЕЦ. Перед тем как писать кому-то — сверься с `ListAgents`: файл переживает
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue