Correct the entry hole with a measurement: two of its three parts are built or ratified, and put the shift's working checklist beside the plan

This commit is contained in:
heaven 2026-09-11 02:52:17 +03:00
parent a43da1a561
commit 9b58fac36e
3 changed files with 87 additions and 3 deletions

View file

@ -14,8 +14,19 @@
По этому критерию путь ОДНОГО гостя zh→ru полон до последнего шага, а неполнота сидит в **трёх местах**:
1. **ВХОД.** Пригласительного гейта нет — учётку получает кто угодно, прошедший провайдера; грант новичку 0;
лимита размера загрузки нет. Платформа, дни.
1. **ВХОД — ⛔ ФОРМУЛИРОВКА ИСПРАВЛЕНА 11.09 ЗАМЕРОМ, ДВЕ ТРЕТИ ЕЁ БЫЛИ МОЕЙ ОШИБКОЙ.** Пере-снято:
**(а)** пригласительного гейта и allow-list действительно НЕТ — учётку получает кто угодно, прошедший
провайдера (греп `invite|allowlist|AllowedDomains` по `platform/internal` и `cmd`: живых механизмов 0
при контрольных 204 Go-файлах); **(б)** грант новичку 0 — это НЕ дыра, а **ратифицированное решение
владельца** (`D39.176` п.1: «никаких квот, живём на покупке API; бонусы зачисляются из админки»), и он же
работает экономическим гейтом закрытой беты: аккаунт заводится, но без ручного пополнения не может
ничего; **(в)** «лимита размера загрузки нет» — **НЕВЕРНО**: байтовый потолок стоит на маршруте интейка,
`platform/internal/httpapi/server.go:98`=`UploadLimits{MaxBytes: 64 << 20, Deadline: 10 * time.Minute}`,
механизм — `http.MaxBytesReader` (`middleware.go:22`).
⇒ **Живой остаток — операционная гигиена, и `D39.176` п.1 прямо называет её инженерной, без слова
владельца:** число аплоадов ничем не ограничено · у статуса `rejected` нет выхода · каталоги-сироты никто
не подметает. Плюс три ряда регистра (`PD-162` · `PD-455` · `PD-448`). Платформа, дни.
**Продуктовых квот и фри-тир-лимитов НЕ ПРОЕКТИРОВАТЬ**`D39.176` п.1 закрыл вопрос целиком.
2. ⛔ **СОДЕРЖИМОЕ УЗЛА ПОДПИСИ БАНКА** — человеческий узел потока показывает ПУСТОТУ: у секции предложений
читателя нет (`json:"proposed` — 0 хитов при 356 json-тегах), живой экран 04.09 отдал `total 0, signed 0`.
3. **ВТОРАЯ ПАРА** — японская книга получает китайскую транскрипцию. «Требуется проекту», не показу zh→ru.
@ -32,7 +43,7 @@
|---|---|---|---|---|
| 1 | **полигон** | **прогон A**: короткая настоящая книга до ФАЙЛА, платный провайдер | **≈$0.250.40** | словом владельца о платном прогоне |
| 2 | **бэкенд** | структура глав, ДИЗАЙН — ок владельца получен | $0 | слот занят до закрытия движковой сессии; 5 врезок в пак |
| 3 | **платформа** | вход (гейт · грант · лимит) + `PD-162` · `PD-455` · `PD-448` | дни | ничем |
| 3 | **платформа** | операционная гигиена входа (аплоады · выход из `rejected` · сироты) + `PD-162` · `PD-455` · `PD-448` | дни | ничем (⚠ предмет пере-определён 11.09 замером — см. дыру 1) |
| 4 | **бэкенд** | «ВЫДАЧА, КОТОРУЮ ВИДИТ ЧИТАТЕЛЬ»: ряды **284** · **201** · **283** · **307** · **291** | пак | после глав |
| 5 | **фронт** | поверхность показа | пак | разморозка + пункты 13 |
@ -83,3 +94,5 @@
пост-проверкой, которая ФЛАГУЕТ и ОТГРУЖАЕТ. Это «нет ОТКАЗА», а не «нет носителя».
4. «Прогон A — зона платформы» — **нет, полигона**: он не пишет кода зон, это эксперимент с пре-регистрацией.
Слот платформы поэтому свободен.
5. **«Вход» как дыра из трёх частей** — две части оказались не дырами (грант ратифицирован, байтовый
потолок построен), и я объявил их отсутствующими, не спросив дерево. Замер и правка — в самой дыре 1.

View file

@ -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` обрывается на первом шаге).
- [orchestrator-norms-scratchpad.md](orchestrator-norms-scratchpad.md) — **рабочий чек-лист смены №23**: стоячие правила владельца на луп, механическая сверка перед выдачей промта и перед лендингом, живая раскладка слотов зон и журнал выдач. ⚠ Копий норм не несёт — они в `ORCHESTRATOR_SESSION_PROMPT.md`; умирает вместе с очередью.
- [NEAR_TERM_PLAN.md](NEAR_TERM_PLAN.md) — **горизонт на 35 ближайших промтов**: порядок, зоны и чем каждый заперт. Рабочая записка оркестратора, живёт до исполнения. ⚠ Не трекер и не реестр: долг — в `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-лог):

View file

@ -0,0 +1,70 @@
# Скратчпад оркестратора №23 — контроль исполнения лупа
> ⚠ **Здесь НЕТ копий норм.** Нормы живут в `docs/ORCHESTRATOR_SESSION_PROMPT.md`, копия факта стареет
> молча (`D39.112`). Здесь только (а) указатели-чек-лист, по которому я прохожу ПЕРЕД выдачей и ПЕРЕД
> лендингом, (б) стоячие правила владельца на этот луп, (в) живая раскладка слотов и журнал выдач.
> Файл рабочий и умирает вместе с очередью №23.
## Стоячие правила владельца на этот луп (слово 11.09)
1. Выполнить ВСЕ промты, задуманные в `docs/NEAR_TERM_PLAN.md`.
2. Советоваться со старшим коллегой (Fable 5, постоянный контекст) — при выдаче промта, при
ратификации, при лендинге и при ЛЮБОМ сомнении.
3. Каждый выдаваемый промт писан по ролевой ноте; сверяться с ролевым промтом всегда.
4. Сессия обязана **эхом вернуть промт** (блок 9 — своими словами, не пересказом).
5. Приёмка и лендинг — строго по нормам ролевого промта.
6. Сессия доводит свой пак до конца САМА и не беспокоит владельца до готовности; финальное исполнение
контролирую я.
7. ⛔ **Большинство паков идёт бэкенд-сессиям — следить за КАЧЕСТВОМ КОДА: никаких лишних велосипедов,
воркэраундов и хаков ВОКРУГ проблемы.** Нужно логически правильное работающее решение задачи, а не
обход проблемы. Это отдельная ось приёмки, а не общее пожелание.
8. **Один промт на зону.** Одновременно живут бэкенд · платформа · полигон · фронт; двух промтов одной
зоны быть не может. Слот освобождается закрытием пака АКТОМ, а не сдачей работы.
9. Пустые сессии владелец наспамил — роли назначаю сам, запускаю по одной и довожу до логического
завершения.
10. ⛔ **АВТОНОМИЯ (слово 11.09, 03:00): владелец отошёл и вернётся, когда весь ближайший план ИСПОЛНЕН.**
Вопросы решаю сам, совещаясь со старшим коллегой; владельца не жду.
11. **Мерило любого решения — в этом порядке:** (а) главные ценности продукта — КАЧЕСТВЕННЫЙ КОНСИСТЕНТНЫЙ
ИИ-перевод длинных книг/ранобэ; (б) архитектура и чистый код; (в) рефакторинг только действительно
необходимый; (г) ⛔ никакого велосипедостроения. Решение, выигрывающее у (б)(г), но не служащее (а), —
неверное решение.
## Перед выдачей промта — механическая сверка (перечтение автором рубежом НЕ считается)
- [ ] 13 обязательных блоков — таблицей/грепом против §«Пишешь промт сессии?» (счёт равен нумерации).
- [ ] Опровергатель-субагент к самому промту («найди отсутствующее и противоречащее»).
- [ ] Блок 5 называет **24 уязвимых места ИМЕННО ЭТОГО пака** — «сделай самопроверку» дефектна.
- [ ] Разметка свободы у каждого пункта: «ровно так» либо «реши сам и аргументируй».
- [ ] «Инструмент задан» — только после (а) что канон зовёт штатным, (б) не построено ли уже.
- [ ] Фантом-гард: каждая D-ссылка грепается до НОМЕРА ПУНКТА, не до тела ноты.
- [ ] Построчная сверка чужих путей/каналов против зонной таблицы `CLAUDE.md`.
- [ ] Полигон-пак — дополнительный абзац норм замеров (арм без фактора · дедуп+декой · критик полноты
на каждую фазу · пре-рег фриз ДО платных вызовов · активная проверка живости прогона).
- [ ] Кодовый пак — свой абзац (вакуумный пин · клейм = команда · дифф `^func Test` исполнением).
- [ ] Пропорциональность: тяжесть аппарата соразмерна весу пака.
## Перед лендингом
- [ ] Контроль завершённости ДО приёмки, механически (блок 13).
- [ ] Приёмка адверсариальная; дерево на время прохода заморожено ИЛИ верификатору выдан ГОТОВЫЙ путь.
- [ ] Скипы печатаются рядом с числом `ok`.
- [ ] Деньги — из сырого леджера двумя независимыми путями.
- [ ] `docs/scripts/counts.py --check` и `--lint` перед ратификационным коммитом.
- [ ] `git diff -- <файл>` по каждому файлу класса «пишет зона, коммитит оркестратор».
- [ ] Коммит pathspec-формой; финал `git status --short`.
- [ ] Акт закрывает носители ТЕМ ЖЕ движением (ряды бэклога, реестр дефектов, таблица активных промтов).
## Раскладка слотов (живая)
| Зона | Промт | Сессия | Состояние |
|---|---|---|---|
| полигон | — | — | свободен |
| бэкенд | — | — | свободен |
| платформа | — | — | свободен |
| фронт | заморожен | — | разморозка по критерию `NEAR_TERM_PLAN.md` |
## Журнал выдач очереди №23
| # | зона | предмет | сессия | эхо | исход |
|---|---|---|---|---|---|
| — | — | — | — | — | — |