Bring the navigation docs to the tree after the fix pack: the prompt-binding norm, the docs map, the zone README and the review prompt banner I got wrong
This commit is contained in:
parent
619d0473d4
commit
5838751574
6 changed files with 23 additions and 13 deletions
File diff suppressed because one or more lines are too long
|
|
@ -7,7 +7,7 @@
|
|||
1. **Движок language/book-agnostic.** Go-ЛОГИКА не ветвится по паре языков или книге. Пара-специфичное — ДАННЫМИ: `internal/lang` + `configs/langpacks/<пара>/` (fail-loud loader, байты в `pack.Version()` → снапшот). Книго-специфичное — данными КНИГИ: сид-глоссарий / brief / book.yaml. Книжный канон в общем пар-слое = утечка (прецедент: 古月 в surnames-compound.txt).
|
||||
2. **Пар-скоупнутые модули** (checkers_zh_ru и т.п.) легитимны как код за pair-гейтом, но их ДАННЫЕ (словники, руны, таблицы) подлежат выносу в langpack.
|
||||
3. **Тест-данные пары легитимны**: zh/ru-строки в `*_test.go`/golden упражняют общую логику. Не путать с логикой.
|
||||
4. **Промпты — pair-keyed файлы** (`prompts: {<пара>: файл}`, fail-loud на чужую пару); конвенции пары (меры, стихи, дискурс) живут в теле промпта СВОЕЙ пары — это данные. Дальний план — извлечение в структурированный пакет конвенций пары (10-prompt-architecture, гейтится формой пакета).
|
||||
4. **Промпты резолвятся КОНВЕНЦИЕЙ ПУТИ, а не ключом конфига** (форма пака-15; ⚠ прежняя редакция этой строки писала `prompts: {<пара>: файл}` — такого ключа нет, испр. 22.08 аудитом доков): пара-пак — `configs/pairs/<пара>.yaml`, роль — `prompts/<пара>/<роль>.md`, и пара без пакета падает ГРОМКО на загрузке с именем пути, который искали (`internal/config/pair.go`; пины `config.TestPromptResolvesByPairAndRoleConvention` и `config.TestPromptMissingPairPackFailsLoud`). ⚠ Прежний ключ не просто снят — он ОТВЕРГАЕТСЯ загрузкой (`config.TestRetiredPromptKeysAreRejected`), то есть конфиг, написанный по старой редакции этого норматива, не поднимется вовсе. Конвенции пары (меры, стихи, дискурс) живут в теле промпта СВОЕЙ пары — это данные. Дальний план — извлечение в структурированный пакет конвенций пары (10-prompt-architecture, гейтится формой пакета).
|
||||
5. Ревью-вопрос по умолчанию: **«заработает ли это на паре, которой в репо ещё НЕТ, без правки Go?»** Если нет — данные наружу.
|
||||
6. **Контент-свойства — тем же правилом (владелец 25.07, D39.25):** движок НЕ ветвится по типу контента (18+/архаика/жанр). Механизм generic: content-label книги/глав = данные книги · capability провайдера = данные models.yaml · сопоставление и политика цепочки = движок/конфиг. «adult» — значение данных, не Go-идентификатор. Refusal-обработка причино-агностична (D12: детектим ФАКТ отказа; причина — операторская диагностика). Ревью-вопрос: «добавится ли второй лейбл (archaic-register) без правки Go?»
|
||||
|
||||
|
|
|
|||
|
|
@ -22,8 +22,11 @@
|
|||
второй конец того же правила, и он в силе и в бою, и в рецепте дев-стенда.
|
||||
|
||||
Бинари: `cmd/tmplatformd` (сервис) и `cmd/tmplatformctl` (админ: гранты, КОРРЕКТИРОВКИ (`adjust`), баланс, журнал входов,
|
||||
отзыв сессий, дев-интейк `book add`, список книг для апгрейда движка `books`, сид дев-стенда `seed`,
|
||||
и `exit-marker` — его зовёт systemd на конце прогона). Деплой — `deploy/`.
|
||||
отзыв сессий, дев-интейк `book add`, список книг для апгрейда движка `books` и список книг, чью
|
||||
читательскую поверхность построить не удалось (`books --abandoned` / `book refresh`), диагностика и
|
||||
терминальный вердикт по застрявшим прогонам (`runs [--stalled]` / `run abandon`, P8-FIX), сид
|
||||
дев-стенда `seed`, и `exit-marker` — его зовёт systemd на конце прогона). Что оператор делает, когда
|
||||
свип не справляется, — `deploy/README.md` §«Застрявшая работа». Деплой — `deploy/`.
|
||||
|
||||
Метрики — отдельным слушателем (`TM_PLATFORM_METRICS_ADDR`, дефолт `127.0.0.1:9464`), формат
|
||||
Prometheus; на контрактную поверхность они не выходят и наружу не привязываются (`docs/STACK_DECISIONS.md` §24).
|
||||
|
|
@ -45,8 +48,9 @@ Prometheus; на контрактную поверхность они не вы
|
|||
| как это разворачивается и в каком порядке | `deploy/README.md` |
|
||||
| незакрытые куски работы | `BACKLOG.md` |
|
||||
|
||||
⚠ Документы вида `docs/P7_*` — **рабочие записи конкретной сессии**, а не состояние зоны: они несут
|
||||
ход работы и полезны той же сессии после компакции. Для лендинга их читать не нужно.
|
||||
⚠ Рабочие записи конкретной сессии (`P7_*`, `*_HANDOFF`, планы актов) — **не состояние зоны**: они
|
||||
несут ход работы и полезны той же сессии после компакции. Все такие файлы уехали в
|
||||
`docs/archive/` при лендингах, и новые туда же; для лендинга их читать не нужно.
|
||||
|
||||
## ⚠ Git и зона (читать ДО первой строки кода)
|
||||
|
||||
|
|
@ -85,8 +89,9 @@ Prometheus; на контрактную поверхность они не вы
|
|||
- очередь задач и запуск воркеров, статусы прогонов, ретраи — **есть (P4)**: River на том же
|
||||
Postgres; задание очереди выдаёт только РАЗРЕШЕНИЕ стартовать, а жизнь прогона ведёт
|
||||
реконсилятор, который читает мир (Postgres · журнал книги · маркер выхода) и не ждёт процесса;
|
||||
- читающая поверхность контракта — **есть (P7)**: дерево глав и пары с текстом, замечания, банк и
|
||||
подпись, `GET /capabilities`, машинная модель ошибок (`code` + `request_id`), условные чтения
|
||||
- читающая поверхность контракта — **есть (P7)**: дерево глав и пары с текстом, замечания, ЧТЕНИЕ
|
||||
банка (⚠ ЗАПИСЬ в банк снята 22.08 вместе с пер-термной моделью подписи — `PD-370`, D39.144: подпись
|
||||
это `resume`, а ручки «поправить/добавить термин» нет ни в зоне, ни в каноне), `GET /capabilities`, машинная модель ошибок (`code` + `request_id`), условные чтения
|
||||
(`ETag`/304) и сжатие JSON, `Idempotency-Key` на двух создающих вызовах;
|
||||
- SSE-поток прогресса во фронт — **есть (P7)**: поток на КНИГЕ (не на прогоне), кадры минтит
|
||||
писатель в свою транзакцию, клиент продолжает по `Last-Event-ID` (⚠ денежные суммы на провод и на
|
||||
|
|
|
|||
|
|
@ -12,8 +12,12 @@
|
|||
> Абзац про найденный блокер ниже оставлен как описание НАЙДЕННОГО — зона пере-нацелила его якоря и
|
||||
> сказала об этом прямо. Ищи сиблингов класса, но теперь И в самом лечении: оно свежее, его смотрели
|
||||
> ревьюеры зоны и приёмка, и у него уже есть четыре открытых строки — `PD-371`…`PD-374`.
|
||||
> **(2) Оси 1, 2 и 4 (деньги и леджер · вход/сессии/CSRF · метрики) не тронуты вообще** — там пак
|
||||
> по-прежнему первый взгляд, и он и есть главная ценность этого захода.
|
||||
> **(2) ⚠ Поправка к первой редакции этого баннера (её ошибку нашёл аудит доков в тот же день):**
|
||||
> «оси 1, 2 и 4 не тронуты» — НЕВЕРНО. Ось 2 (вход · сессии · CSRF) действительно не тронута ничем, там
|
||||
> ты первый взгляд целиком. А оси 1 и 4 дофикс ЗАДЕЛ точечно, и ты обязан это знать, чтобы не искать
|
||||
> уже найденное: `internal/metrics/metrics.go` (+гейдж `runs_stalled`) и `internal/pgstore/credits_test.go`
|
||||
> (+пин `PD-334`), плюс `internal/pgstore/isolation_test.go` (`PD-333`). Системного разбора ни та, ни
|
||||
> другая ось не получила — точечные находки при постройке это не он.
|
||||
> **(3) §4.7 работает В ОБРАТНУЮ СТОРОНУ:** релея тебе ждать не от кого, твои находки поедут в
|
||||
> СЛЕДУЮЩИЙ кодовый пак — тем же протоколом, через оркестратора, с эхо-подтверждением.
|
||||
|
||||
|
|
|
|||
|
|
@ -331,7 +331,7 @@
|
|||
совпадает ровно тогда, когда обе записи сделала одна транзакция. Найдено тем, что два пина этого
|
||||
же акта прошли под мутацией, которую сами называют.
|
||||
|
||||
## Инвентарь каналов движка — полная таблица (собран паком P8-FIX 22.08 ЧТЕНИЕМ кода движка)
|
||||
## Инвентарь каналов движка (собран паком P8-FIX 22.08 ЧТЕНИЕМ кода движка)
|
||||
|
||||
> Перенесено оркестратором №18 при лендинге P8-FIX из отчёта пака: это был его артефакт §4.4, и
|
||||
> ДРУГОГО носителя у таблицы в репозитории нет (грепом — `research/23` описывает ФОРМУ шва, а не
|
||||
|
|
@ -350,6 +350,7 @@
|
|||
| `<project_db>.auto-bank.yaml` | `pipeline/mining.go` `os.WriteFile` | **НЕ атомарно** | читателя нет | ✅ то же правило |
|
||||
| `mined_delta` (путь из `book.yaml`) | **писателя в движке НЕТ** — только читатель `loadMinedDelta`; формат `seed.File` (`terms:`), грузится `membank.LoadGlossarySeed`, `Source` пере-штампуется на `"mined"` | — | **писателя НЕТ и у платформы** | ❌ **разрыв — это строка 199(а) единого бэклога**, развилка ждёт ратификации |
|
||||
| `mined_rejects` | читатель `loadMinedRejects`; формат `rejects: [{src, note}]` — это ФИЛЬТР ПРЕДЛОЖЕНИЙ, в банк не входит | — | писателя нет | ❌ тот же разрыв |
|
||||
| `tmctl export --json --pairs` | движок (`pipeline/export.go`) | — (одноразовая выдача на вызов) | `internal/runner/engine.go` `ExportArgs`/`Export` → `ingest.DecodeExport` → `internal/readmodel` | ✅ ⚠ **Единственный канал, несущий ТЕКСТ пары** — исходник и перевод; манифест несёт только структуру. Пропущен в первой редакции этой таблицы (найдено аудитом доков в тот же день) |
|
||||
| `events.jsonl` (NDJSON эмиттера) | движок, StreamVersion 1.1 | append-only | `internal/ingest/tail.go` + `pgstore.RunSink` | ✅ |
|
||||
| exit-коды `tmctl` | контракт движка | — | `ingest.OutcomeOf`, `internal/runs/reconcile.go` `outcome` | ✅ |
|
||||
| `tmctl status --json` | движок | — | `internal/runner/engine.go` → `ingest.StatusReport`; расчёт денег | ✅ форму P8-FIX не менял; изменил лишь то, СКОЛЬКО раз его зовут при неудаче (бэкофф отсрочки) |
|
||||
|
|
|
|||
|
|
@ -16,7 +16,7 @@
|
|||
остаётся то, что рецепт объявляет у батареи ДВА гейта, а их три — `PD-374`.
|
||||
- **Тесты 561 против 532 на HEAD** — сходится, сверено `git show HEAD:<файл>` по всем `_test.go`
|
||||
против дерева. Удалённых имён ровно **три**, все три описывали снятую пер-термную подпись.
|
||||
- **Отпечатки миграций:** пере-считаны все 41, расхождений нет; в диффе `migrations.sha256` ровно
|
||||
- **Отпечатки миграций:** пере-считаны все 25, расхождений нет (⚠ испр. 22.08 аудитом доков: первая редакция этой строки писала «41» — число взято из головы, а не из команды; `grep -c '^[0-9a-f]\{64\}' migrations.sha256` = 25, файлов миграций тоже 25); в диффе `migrations.sha256` ровно
|
||||
одна ДОБАВЛЕННАЯ строка — заявление «релизные миграции не тронуты» держится механически.
|
||||
- **Пол поверхности 15 → 14** равен реальной длине таблицы маршрутов (14), то есть запаса не
|
||||
оставлено и следующее сужение гейт поймает. Причина стоит в комментарии рядом.
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue