From 130b1a2e2f9250c9432539e81962f0a9d0f143a9 Mon Sep 17 00:00:00 2001 From: heaven Date: Fri, 11 Sep 2026 01:51:56 +0300 Subject: [PATCH] Write down the next few prompts as an ordered horizon, and the rule that two prompts never target one zone at once. --- CLAUDE.md | 2 ++ docs/NEAR_TERM_PLAN.md | 57 ++++++++++++++++++++++++++++++++++++++++++ docs/README.md | 1 + 3 files changed, 60 insertions(+) create mode 100644 docs/NEAR_TERM_PLAN.md diff --git a/CLAUDE.md b/CLAUDE.md index e97a31d9..cdfd6806 100644 --- a/CLAUDE.md +++ b/CLAUDE.md @@ -34,6 +34,8 @@ Go-бэкенд издательского художественного пер Координация — журнал `docs/PROGRESS.md` (секции «Бэкенд»/«Полигон»; сверху CURRENT-STATE). Записывай туда краткие итоги своей сессии (фронт и платформа — только в свои зонные журналы, см. таблицу выше). ⚠ Это ЕДИНСТВЕННОЕ исключение из «`docs/` — зона оркестратора»: бэкенд и полигон пишут в СВОИ секции этого журнала (полигон — ещё и в `docs/experiments/`), всё прочее в `docs/` правит только оркестратор. Закрытые хроники вынесены в слайсы `docs/archive/PROGRESS-*.md` — НЕ читать при онбординге, только по конкретной ссылке. Параллельные сессии — норма: чужие незакоммиченные файлы в дереве не трогать; сессия считается ЖИВОЙ, пока владелец не сказал обратное. +⚠ **ОДИН ПРОМТ НА ЗОНУ (слово владельца 11.09).** Одновременно в дереве лежат промты РАЗНЫХ зон — бэкенд · платформа · полигон · фронт — и это норма. **Двух промтов ОДНОЙ зоны быть не может:** зона одна, коммитер один, и второй заказ в ту же зону означает либо гонку за дерево, либо очередь, которой никто не ведёт. Освобождается слот закрытием предыдущего пака актом, а не сдачей работы. + ⚠ **НОВЫЙ ПАК — НОВОЙ СЕССИИ.** Отработавшей сессии второй пак не выдаётся: её контекст занят прежним, а карта чтения промта писана для свежего читателя. Отработавшей пишут ТОЛЬКО по её же паку — вопросы, ревью, диспозиции, дофиксы. **Связь между сессиями — файл `/tmp/textmachine-channel`.** Впиши туда СВОЙ блок первым делом diff --git a/docs/NEAR_TERM_PLAN.md b/docs/NEAR_TERM_PLAN.md new file mode 100644 index 00000000..36a8c85e --- /dev/null +++ b/docs/NEAR_TERM_PLAN.md @@ -0,0 +1,57 @@ +# Ближайший горизонт — 3–5 промтов + +> Рабочая записка оркестратора №23. **Только порядок и зоны**, не заказы: готовые промты пишутся отдельно +> и по одному на зону. Живёт до исполнения, потом в архив. Долг живёт строками `BACKLOG.md`, решения — нотами. +> +> ⚠ **Правило раскладки (слово владельца 11.09):** одновременно в дереве лежат промты РАЗНЫХ зон — +> бэкенд · платформа · полигон · фронт. **Двух промтов одной зоны быть не может.** + +## Что решает владелец, а не код + +- **Определения показа в проекте НЕТ** — в реестре требований «демо · показ · гость» 1 хит на 93 строки + (контроль: «перевод» — 16). Нужны: аудитория и вход · какая книга · один гость или несколько · бюджет + времени показа. Без этого список блокеров не имеет знаменателя, а часть решается словом (общий брокер + рейт-лимитов — блокер только при нескольких гостях). +- **Разморозка фронта** — не раньше, чем пере-проверена полнота базового функционала обеих зон + (сомнение владельца 11.09, см. горизонт). + +## Горизонт + +| № | зона | предмет | цена | чем заперт | +|---|---|---|---|---| +| 1 | **бэкенд** | структура глав, ДИЗАЙН — ок владельца получен | $0 | слот занят до закрытия текущей движковой сессии; нужны 5 врезок в пак | +| 2 | **платформа** | прогон A: `curl` → **файл**, короткая настоящая книга 2–3 главы | $0 | четыре однострочных предусловия (ниже) | +| 3 | **полигон** | ремонт прибора — промт уже лежит, не стартован | $0 | ничем | +| 4 | **бэкенд/платформа** | дешёвые ряды пути + что назовёт прогон A | день | после A | +| 5 | **фронт** | поверхность показа | пак | разморозка + проверка полноты | + +## Почему прогон A первым и почему НЕ «по рецепту P9» + +Пока он не пройден, остальное — планирование по чтению. ⛔ Но пробой 27.08 шёл **через `curl` на локальной +заглушке и оборвался на правке банка** — то есть мимо фронта целиком и до последней трети. Заказ: продлить +до конца (редакторская волна → выгрузка → **файл открыт человеком**). Короткая книга намеренно: локальная +модель 63–278 с на чанк. + +**Ловит:** заказ прогона · файл · развёртывание · неизвестное последней трети. +**Не ловит, назвать в промте:** качество (заглушка), настоящий провайдер, транспортные «затупы». + +**Предусловия, все однострочники:** $0-пайплайна в репозитории нет (ни один из 4 `pipeline-*.yaml` не +называет локальную пару) · образца шаблона книги платформы нет · словарь контраста 0 файлов в git при +требовании в 3 конфигах из 5 · грант новичку 0 · Postgres на машине не поднят. + +⚠ **Вычеркнуто из условий:** «второй контур наблюдения» прогон НЕ гейтит — лог запросов и `status --json` +уже есть. ⭐ Дёшево и сразу: собрать бинари `go build -cover` и дать `GOCOVERDIR` — покрытие ответит на +«каждый ли узел выполнился» (в обоих Makefile `-cover` 0 при `-race` 6). + +## Вычеркнуто из плана показа + +Лендинг (строка **384**) — отдельная поверхность. Брокер конкурентности — решается определением. +Корректность остановки — после A, объёмом по его уликам. Ряды остановки (**372**, **391**) — не показ. + +## Мои ошибки, снятые разбором — чтобы не повторить + +1. «По рецепту P9» — рецепт идёт мимо фронта и обрывается до последней трети. +2. «Второй контур наблюдения» как условие — гейтил бы прогон стройкой ненужного ему. +3. «Приоритет №1 не исполняется кодом вовсе» — **неверно**: консистентность держится инъекцией банка и + пост-проверкой, которая ФЛАГУЕТ и ОТГРУЖАЕТ. Это «нет ОТКАЗА», а не «нет носителя», и для читателя + «текст с пометкой» — правильное поведение. diff --git a/docs/README.md b/docs/README.md index 593b12b8..05574089 100644 --- a/docs/README.md +++ b/docs/README.md @@ -18,6 +18,7 @@ - [PROGRESS.md](PROGRESS.md) — журнал: CURRENT-STATE + состояние паков + живой хвост хроники и зонные секции «Бэкенд»/«Полигон». НЕ источник решений. - [BACKLOG.md](BACKLOG.md) — **ЕДИНЫЙ БЭКЛОГ проекта** (единственный трекер; «строка N» — стабильный ID). Вынесен из `PROGRESS.md` 06.09 (D39.218; исключение из дословности названо в шапке того файла); зонные бэклоги — свои и с другими ID (`П-N`, `Ф-N`, `PD-N`). - **Тулчейн на чистой машине.** Версии не здесь — их носители: `backend/Makefile` и `platform/Makefile` (`GO_MIN_VERSION`, `GOLANGCI_VERSION`), `frontend/package.json` (`engines`), `platform/docs/STACK_DECISIONS.md` §«Postgres на стенде без root», `eval/requirements.txt` + `eval/.python-version`. Здесь только то, чего нет нигде: ставим в `~/.local/opt/<инструмент>` с симлинком в `~/.local/bin` (он уже в `PATH`), берём **последний патч пинованного минора, а не следующий минор** — линтер пинован точным равенством и разъедется. Root требуют ровно два пакета: `build-essential` (без C-компилятора нет `-race`, а снять `-race` значит выдать отсутствие тулчейна за зелёный прогон — см. комментарий над целью `test` в `backend/Makefile`) и `python3-venv` (в системном питоне нет `ensurepip`, и установка полигона по `eval/README.md` обрывается на первом шаге). +- [NEAR_TERM_PLAN.md](NEAR_TERM_PLAN.md) — **горизонт на 3–5 ближайших промтов**: порядок, зоны и чем каждый заперт. Рабочая записка оркестратора, живёт до исполнения. ⚠ Не трекер и не реестр: долг — в `BACKLOG.md`, решения — нотами. - `scripts/counts.py` — **производные числа доков считаются им, а не руками** (голова по трём носителям · счёт очереди и зон · вес открытых строк регистра платформы · полнота реестра нот); `--check` даёт ненулевой код на расхождении; `--lint` — линтер file:line-якорей живых доков (D39.126). Его же зовёт зонный хук `scripts/githooks/pre-commit`: **`--lint` якорей — при ЛЮБОМ коммите с непустым индексом, включая коммиты чистого КОДА (гейт по составу снят 21.08: цели якорей живут в коде, и двигает их кодовый коммит; шумовое следствие — строка бэклога 244); `--check` чисел и головы — только при коммите с D-логом или PROGRESS** (оба `--from-index`, предупреждает, не блокирует). ⚠ **Гейт бутстрапится ЧУЖОЙ зоной — это ДЕФЕКТ, а не порядок работы (строка бэклога 220):** судит он `CLAUDE.md` и доки трёх зон, а в `.git/hooks/` его кладёт единственный установщик `frontend/scripts/githooks/install.mjs`, то есть побочный эффект `npm install` в зоне, которая ЗАМОРОЖЕНА. На свежем клоне `.git/hooks/` пуст и гейт молчит, не проверив ничего. Пока строка открыта, бутстрап делается руками (`node frontend/scripts/githooks/install.mjs`) — и это ВРЕМЕННАЯ мера, которую строка 220 закрывает, а не способ жить дальше. ⚠ Шапка систематически отстаёт от хвоста у ЛЮБОГО автора — потому проверка механическая, а не «посмотрю внимательно». - **Активные хендофф-промты — какой файл ТВОЙ** (состав обновляется при каждом лендинге, D39.80; хроника, причины и статусы РАБОТ — CURRENT-STATE и D-лог): | Роль | Активный промт | Статус |