textmachine/docs/NEAR_TERM_PLAN.md

98 lines
11 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# Ближайший горизонт — 35 промтов
> Рабочая записка оркестратора №23. **Только порядок и зоны**, не заказы. Живёт до исполнения, потом в архив.
> Долг живёт строками `BACKLOG.md`, решения — нотами. Разобрано со старшим коллегой 11.09, его правки внесены.
>
> ⚠ **Раскладка (слово владельца 11.09):** одновременно лежат промты РАЗНЫХ зон — бэкенд · платформа ·
> полигон · фронт. **Двух промтов одной зоны быть не может**; слот освобождается закрытием пака актом.
## Критерий полноты базового функционала — ответ на сомнение владельца
**Фронт размораживать, когда каждый шаг пути имеет на бэкендах: (а) смонтированную дверь по канону,
(б) СОДЕРЖИМОЕ, которое эта дверь отдаёт, (в) словарь исходов, которым она отказывает.** Реестр требований
целиком критерием быть не может — 🔶 стоит у 24 строк из 45, «без 🔶 на ядре» не наступит никогда.
По этому критерию путь ОДНОГО гостя zh→ru полон до последнего шага, а неполнота сидит в **трёх местах**:
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.
Условное (4): **CORS/same-origin**`Access-Control` 0 хитов при 201 Go-файле; предусловие прогона B.
**«Качественно готовы» имеет ВТОРОЕ чтение, и его надо назвать владельцу:** качество перевода на целевом
жанре не измерено и кодом не обещано. Эта готовность наступает только ПОСЛЕ настоящей книги — то есть после
прогона, а не до него.
## Горизонт
| № | зона | предмет | цена | чем заперт |
|---|---|---|---|---|
| 1 | **полигон** | **прогон A**: короткая настоящая книга до ФАЙЛА, платный провайдер | **≈$0.250.40** | словом владельца о платном прогоне |
| 2 | **бэкенд** | структура глав, ДИЗАЙН — ок владельца получен | $0 | слот занят до закрытия движковой сессии; 5 врезок в пак |
| 3 | **платформа** | операционная гигиена входа (аплоады · выход из `rejected` · сироты) + `PD-162` · `PD-455` · `PD-448` | дни | ничем (⚠ предмет пере-определён 11.09 замером — см. дыру 1) |
| 4 | **бэкенд** | «ВЫДАЧА, КОТОРУЮ ВИДИТ ЧИТАТЕЛЬ»: ряды **284** · **201** · **283** · **307** · **291** | пак | после глав |
| 5 | **фронт** | поверхность показа | пак | разморозка + пункты 13 |
## Прогон A — точечно
**ИСПР. 11.09 ПО СЛОВУ ВЛАДЕЛЬЦА: ЛОКАЛЬНОЙ МОДЕЛИ НЕТ — на машине нет видеокарты.** Пере-снято:
провайдер `local` смотрит в `http://127.0.0.1:11434/v1` (ollama), а на хосте нет ни `nvidia-smi`, ни `ollama`,
ни слушателя на 11434 (контроль: слушателей всего 5, из них на 11434 — 0). ⇒ рекомендация «гнать на локальной
модели» **невыполнима**, и выбор сужается до двух.
**Заглушка** — свободна, но на заглушечной прозе **вырождаются сами узлы**: гейты, майнинг терминов, банк;
узел подписи на ней пуст ПО ПОСТРОЕНИЮ и дыру (2) не покажет никогда. Годится ТОЛЬКО как двадцатиминутный
дым продлённой трети (экспорт → скачивание).
**Настоящую книгу через настоящие узлы можно прогнать только ПЛАТНО. И это дёшево:** замеренный живой
прогон 08.09 — **10 глав за `committed=$1.259217`** (строка **354**), то есть ≈ **$0.13 за главу** ⇒
23 главы ≈ **$0.250.40**. Владелец хочет «каждый узел так, как мы хотим» — это вопрос к узлам на настоящем
тексте, и стоит он центы, а не доллары.
**Книга:** та, что стояла на стенде P9, 23 главы zh→ru, **с многоединичной главой внутри** — иначе
редакторская волна не покажет своего худшего случая.
**Пробой 27.08 шёл через `curl` на заглушке и оборвался на правке банка** — то есть мимо фронта и до
последней трети. Заказ: продлить до конца (редакторская волна → выгрузка → **файл открыт человеком**).
**Приёмка узла — по трём независимым следам, НЕ по самоотчёту движка** (три отчётные поверхности врут).
Ожидаемый исход каждого шага пишется ДО прогона; иначе ноль ошибок прочтут как успех.
⚠ Прогону A **запрещено чинить найденное** — только пинги. И движок на время прогона заморожен: смена ключа
манифеста стирает замечания и счётчики книги.
## Что решает владелец
- **Определение показа:** аудитория и вход · какая книга · один гость или несколько · **бюджет времени**
(`ПТ-19` называет скорость киллерфичей, а времени у экрана никто не мерил).
- **Разрешить платный прогон A** — 23 главы ≈ $0.250.40; без него настоящие узлы не увидеть.
- **Деньги гостя на показе** — стенд сеет $25, продукт 0; дневного потолка в шаблоне намеренно нет.
- Какую из двух «готовностей» он имел в виду — полноту функционала или качество перевода.
## Вычеркнуто
Лендинг (строка **384**) — отдельная поверхность. Брокер конкурентности — решается определением «один гость».
Корректность остановки — после A, объёмом по его уликам; четыре однострочника «без мусора» идут приложением
к пункту 4, kill-харнесс — следующим слотом.
## Мои ошибки, снятые разбором — чтобы не повторить
1. «По рецепту P9» — рецепт идёт мимо фронта и обрывается до последней трети.
2. «Второй контур наблюдения» как условие — гейтил бы прогон стройкой ненужного ему.
3. «Приоритет №1 не исполняется кодом вовсе» — **неверно**: консистентность держится инъекцией банка и
пост-проверкой, которая ФЛАГУЕТ и ОТГРУЖАЕТ. Это «нет ОТКАЗА», а не «нет носителя».
4. «Прогон A — зона платформы» — **нет, полигона**: он не пишет кода зон, это эксперимент с пре-регистрацией.
Слот платформы поэтому свободен.
5. **«Вход» как дыра из трёх частей** — две части оказались не дырами (грант ратифицирован, байтовый
потолок построен), и я объявил их отсутствующими, не спросив дерево. Замер и правка — в самой дыре 1.