29 KiB
Глоссарий — жаргон и сокращения проекта (один экран)
Читать при онбординге по мере надобности; термин непонятен → сюда. Пополняет оркестратор.
Роли и фазы
- Оркестратор / Бэкенд / Полигон / Фронт / Платформа — роли сессий с зонами записи (CLAUDE.md §Роли); платформа = SaaS control plane (
platform/, D39.81). «Оркестратор №N» — канонический счётчик преемственности роли (текущий N — CURRENT-STATEdocs/PROGRESS.md, единственный носитель; выдаёт номер автор промта передачи, D39.112 п.6). - Хендофф(-промт) — передача роли новой сессии файлом-промтом; аддендумы к бегущей сессии доезжают только релеем владельца.
- Владелец — человек; ратифицирует деньги, скоуп-сдвиги, продукт, 18+; связной между сессиями.
- Ф0–Ф3 — фазы: Ф0 скелет · Ф1 инфраструктура · Ф2 качество (судья/гейты) · Ф2.5 пилот · Ф3 продукт (веб-фронт, ридер-IDE).
- S-этапы (S0…) / P-этапы (P0…) — нумерация кодовых сессий зон: S — фронт (S0–S4 приняты; ⚠ зона ЗАМОРОЖЕНА, разморозка отдельным словом владельца и к паку платформы НЕ привязана — D39.136 п.2 + D39.147), P — платформа (P0 бутстрап … P13, D39.188); не путать с фазами Ф0–Ф3, и не всякий пак несёт P-номер (пак
sqlcне несёт, D39.172). ⚠ Живой перечень принятых паков со статусами — реестрarchitecture/05-decisions-index.md(греп номера:grep -inE '\bP-?[0-9]+\b' docs/architecture/05-decisions-index.md); здесь только расшифровка обозначения. ⚠ P-номер этапа платформы не путать с P-номером ПРОБЫ в отчётах полигона (там контекст локален). - Зонный журнал / зонный бэклог —
frontend/docs/frontend-PROGRESS.md·platform/docs/platform-PROGRESS.mdи BACKLOG зоны: прогресс/пинги фронта и платформы живут ТОЛЬКО там (D39.100); их строки единый бэклог не принимает (D39.84). - D-номер с подпунктом (
D20.4,D22.7,D39.153 п.9б) — ПОДПУНКТ внутри тела родительской ноты. Реестрarchitecture/05-decisions-index.mdнесёт ноты ВЕРХНЕГО уровня, своей строки у подпункта там нет и не должно быть (дисциплина грепа — CLAUDE.md §«Источники истины»). - Шиппинг-конфиг — конфиг пайплайна, по которому идёт БОЕВОЙ прогон, в отличие от тестового и от ран-локального. ⚠ Читать строго: «шиппинг-конфиг» = ШАБЛОН в
backend/configs/; конфиг РЕАЛЬНОГО прогона живёт РЯДОМ С КНИГОЙ, вне git, — он «ран-локальный», и утверждения о нём проверяются в каталоге книги, а не грепом по репозиторию (клейм «гейт не включён ни в одном шиппинг-конфиге» верен про шаблоны и ложен про прогон). - Полигон — eval-зона платных/бесплатных экспериментов (
eval/; отчёты —docs/experiments/, статус эксп-а — его баннер/D-лог).
Решения и документы
- D-номер (D39.x) — ратифицированная запись в
architecture/05-decisions-log.md; голова — последний номер; эра — куст решений одного курса; лендинг — коммит работ сессии оркестратором после приёмки. - Р-номер — ДВА смысла по контексту: Р1–Р10 = десять ранних принципов (
01-decisions.md, историчны); Р1–Р7 в записях эры D39.5x–6x = вопросы/решения владельца по банку и промптам (D39.63 и соседние) — «Р2 = ЗНАЧЕНИЕ» (D39.63) не про принцип Р2. H1–H18 / L1–L8 — находки стратегического аудита (09-target-architecture.md§3); H — HIGH, в т.ч. незакрытые владельческие требования. - Q1–Qn — нумерованные вопросы КОНКРЕТНОГО пакета/отчёта — контекст локален, Q2 пака-19 ≠ Q2 чекер-пака.
- V0–Vn — секции идей владельца в
START_PROMT.MD(живой бриф; разобраны вproduct-requirements.md). - Ш-1/Ш-2 — стоячие трипваеры голден-дрейфа стандартной библиотеки; Ш-2 = пересмотр
unicode.Version-зависимых мест (memnorm/classifier/style + chunker/estimator) до перехода на go1.27 (детали — grep «Ш-2» по D-логу). - PD-классика — public-domain тексты из претрейна моделей; эмпирика на них предварительна до вебновелл-среза (CLAUDE.md §Дисциплина).
- Харнесс — обвязка исполнения (наш пайплайн-транспорт или конкурентные agent-обвязки; калибровка — research/21–22).
- ⚠-баннер — шапка «тело superseded, чему верить»; ревью-шапка — вердикты приёмки поверх отчёта в
archive/reports/. - Пак — пакет работ одной сессии; свип — полная перепроверка обязательств (D39.66: 951 позиция); добор идеала — очередь качества после ре-пробы flash; МАСШТАБ — прогон целой книги.
- Строка N — стабильный ID строки единого бэклога (
docs/BACKLOG.md; не перенумеровывается); вес — блокер-очереди / скоро / когда-нибудь; носитель — артефакт, в котором обязательство живёт; хвост — незакрытый остаток; петля — вопрос, обязанный получить диспозицию; слот — зарезервированное место в будущем пакете/замере. - Гвоздь / пин — регрессионный тест, прибивающий контракт (негативный гвоздь — тест на ОТСУТСТВИЕ поведения). ⚠ Замер 11.09 по 167 живым
.md: «пин»/«запинить»/«пин пуст» — 244 вхождения в двух главных доках (90 вdocs/BACKLOG.md, 154 в D-логе; счёт очищен от «пинг», «пиньинь», «Репин», «спина»), тогда как «гвоздь» вне этой статьи встречается всего 4 раза в двух доках (docs/architecture/13-tech-debt-anchors.md,eval/softsign-decl/README.md), а вBACKLOG.mdи D-логе — НИ РАЗУ; статья держит оба имени, потому что определён был редкий синоним, а не рабочее слово. Мутация / мутант — намеренная порча исходника, которой проверяют, что пин ЛОВИТ; инструментbackend/cmd/tmmutateс каталогомmutations.jsonсажает мутацию, гоняет тесты одного пакета и возвращает исходник (110 упоминаний в тех же двух доках при нуле в глоссарии). ⛔ Мутация засчитывается по ТЕКСТУ падения, а не по факту красноты (D39.217п.2в); гоняется на КОПИИ дерева; пин, флейковый на мутанте, измеряет пустой сценарий, а пин, удовлетворённый ЧУЖОЙ уликой, пуст (гардрейлыCLAUDE.md). - Реестр 108 / «жилец реестра» — строка 108 единого бэклога: реестр ЗАГЕЙЧЕННЫХ ТРИГГЕРОВ (отложенных реопенов с условием «когда вернуться»); «жилец» = такой реопен; норма «каждое отложено получает строку или жильца» — D39.66/D39.90.
- Контракт 14 (API v0) — ратифицированный контракт фронт↔платформа:
architecture/14-api-contract/— нормативная спека OpenAPI 3.1 + компаньон-README; ⚠ зонная копия — НЕ байт-зеркало (испр. 10.09): равенство приостановлено на время фриза фронта (D39.142п.5), и расхождение сегодня измеримо — канон 3467 строк против 1444 в зоне. Прежняя формулировка: зонная копияfrontend/docs/api-contract/— байт-зеркало (D39.99; статус зеркала и версий — картаREADME.md, здесь не пинятся). Провенанс ✓/◆/○ — классы утверждений компаньона: выведено из кода/ратификации · предложено (подтверждает названная зона) · открыто (К-вопросы). spectral / openapi-typescript — линт спеки и генерация типов фронта с дрифт-тестом (⚠ 3.1-условия генератор игнорирует — К-11). - ПТ-N — стабильный ID требования в
product-requirements.md; не путать со строками единого бэклога. paused / лимиты «как Claude Code» — статус книги при стопе по потолку + страница статуса использования в настройках (ПТ-35, D39.100) ⚠ испр. 05.09: «сумм на экране нет» ОТОЗВАНО — D39.196; баланс, потолок и холд показываются деньгами, запрет остался только на структуру НАШИХ расходов.
Пайплайн и код
-
tmctl build— $0-глагол ПИСАТЕЛЯ книги: собирает EPUB 3 и чистый txt изBookExport(прод-пакетbackend/internal/bookfile, только stdlib), ОДИН файл на книгу на формат рядом сProjectDB; пути —StatusArtifacts.book_files(канал, который читает дверь выдачи платформы —createExport/getExport/downloadExport, ПОСТРОЕНА 04.09, D39.194), stdout — конвертtm-build-v1, отказ —book_incomplete(exit 16). D39.175. -
Состояния честности файла (писатель книги) — pending · withheld (текст удержан) · incomplete (юнит отгружен с дырой) · ghost (остаток источника после укрупнения нарезки: без него книга выглядит «молча полной») · stale (финал сделан под исчезнувший исходник; под дрейфом честное
stale_unknown, никогда не «нет») — все пять ДЫРЫ (поведение отказа и--partial— ПТ-44, D39.175). Шестое, drift, — НЕ дыра: носительBuildReport/WARN для оператора, байты файла = байты прогона (слово владельца 30.08, D39.175 п.2). Читательские слова — данныеconfigs/langpacks/<цель>/reader.txt, внеPack.Version(); без пака цели — несловесная форма. -
Волны — waveDraft (черновик) → терминолог → waveEdit (редактура); имена только полные, аббревиатуры W0/W1 запрещены (решение владельца 19.07).
-
Чанк — единица нарезки книги; edit-unit (юнит редактуры) — member-чанки, схлопнутые редактором в один финальный текст: гранулярность финала и экспорта пар (~1.9 юнита/главу; якорь синхронизации фронта — D39.84; draft-only-пайплайн шипит по чанкам).
-
Поверхность — слово с ТРЕМЯ смыслами, и без соседей оно не читается (замер 11.09: 53 употребления — 22 в
docs/BACKLOG.mdи 31 в D-логе, — статьи не было ни одной). (1) банковская — исходное НАПИСАНИЕ термина, ключ, под которым он живёт в банке; ключ уникальности банка —(src, sense, since, until), поэтому «одна поверхность ЗАКОННО несёт несколько ПОДПИСАННЫХ канонов (фамилия и направление у одного написания)» (D39.193п.3), а дедуп по голомуsrcронял подпись молча. (2) продуктовая/сетевая — внешняя грань, которой продукт повёрнут к пользователю или к соседней зоне: читающая поверхность платформы, операторская ручка, SSE-поток, «поверхностей у продукта ДВЕ, а не одна» — лендинг и IDE (D39.239п.1). (3) кодовая — место в коде, до которого прогон или тест реально добрался: «Первый живой прогон НЕ КОСНУЛСЯ поверхностей, ради которых часть кода построена» (строка 255). ⚠ Смыслы (1) и (2) сталкиваются в одних и тех же строках про банк и дверь. -
Банк (памяти) — термины/имена/голоса книги на весь прогон; сид — стартовый банк книги (YAML; подпись владельца — только вкусовые поля, D39.77); бриф — книжные вводные; банкнота — канал выноса кандидатов из ответа переводчика; майнер — $0-извлечение кандидатов из исходника; KWIC — конкорданс-контекст кандидата; терминолог — роль перевода/подписи терминов батчами.
-
Доктрина инжекта (закон) — банк на проводе обязателен для всех ролей НЕЗАВИСИМО от статуса строки; право «перевести иначе, если сомнительно» упразднено, свобода — только оговоркой ОБЛАСТИ употребления (не-терминные пассажи: игра слов, разбор знаков); на проводе — единый закон-блок редактора, маркер ⟨проверить⟩ снят; статусы строк и подписная таблица не меняются (D39.104; ВНЕСЕНО вайр-батчем, пак принят D39.199; строка 134 закрыта).
-
Гейты — детерминированные $0-проверки перевода; чекеры K1–K12 — классы дефектов рубрики; DC1–DC7 — data-driven чекеры на данных пары; репэйр — платная петля ремонта (построена, выключена — строка 13).
-
Строгая и якорная колонка — две колонки прибора консистентности по ОТГРУЖЕННОМУ тексту (носитель — строка 406, правило выбора там же помечено как ратифицируемое приёмкой 11.09): СТРОГАЯ требует «равенства стеммов, как у пост-проверки» и ошибается в сторону ЛОЖНОЙ ТРЕВОГИ; ЯКОРНАЯ «признаёт склонённую передачу» и ошибается в сторону СОКРЫТИЯ. «Первичная — ЯКОРНАЯ, строгая идёт полом точности рядом» (на прогоне A точность 0.78 против 0.39); основание НЕ «ложная тревога дешевле сокрытия» — строка 406 прямо говорит, что этот довод аргументирует ОБРАТНОЕ, — а «детектор, врущий в 61 % сообщений, … перестают читать». ⚠ Правило действует, ПОКА прибор флагует и не отказывает: станет он гейтом отгрузки — асимметрия перевернётся и порядок колонок решается заново (строка 406 называет ДВА триггера пере-открытия). ⚠ Не путать с «якорной половиной» канон-проверок (строка 339) — там слово про другое.
-
Судья — Ф2-оценка качества (gemini); канал B — путь чувствительного контента (Mistral+grok); лейблы (labels) — размеченный корпус для precision/recall чекеров, метрики заморожены числами в приёмках.
-
Голден — байт-фиксированный снапшот прогона; маскированный дифф — сверка голдена с маской hex/версий; CheapGateVersion (CGVER) — версия контракта гейтов; парити —
TM_MINER_PARITY=1EXACT-сверка майнера. -
Эхо-мина — DeepSeek без thinking эхоит вход вместо перевода; гейт
echoMineViolationпринуждает thinking-ON. -
Langpack / пар-файл — данные языковой пары (
backend/configs/langpacks/); книжное в пар-слое = утечка; общность — ревью-вопрос «заработает ли пара/вторая книга без правки Go». -
Ведро B/D — корзины триажа карты общности D39.60 (B «пар-модуль без гейта» · D «удалить»).
-
tmctl — CLI бэкенда. Полный список глаголов — ОДИН в коде (
backend/cmd/tmctl/main.go,dispatchCommands), и он же печатается в usage (паритет «список ↔ usage ↔ switch» прибит тестомcmd/tmctl/invocation_test.go); сверка одной командой:grep -n -A3 "dispatchCommands = " backend/cmd/tmctl/main.go. ⚠ Копия списка стояла здесь и трижды отставала от кода — снята: носитель один, отдельные глаголы (build,bank-apply) расшифрованы строками ниже. -
Подстановка цены — тихий фолбэк прайсера: провайдер вернул слаг, которого в каталоге нет, и
PriceForResponse(backend/internal/ledger/pricing.go:88=func (p *Pricer) PriceForResponse) пробуетactual, потомrequested, потом якорь, а ни одно из трёх мест вызова не различает, какая ветвь сработала. Пока подмена падает внутрь той же семьи, счёт верен; опасна не подстановка, а её НЕВИДИМОСТЬ — при маршрутизации провайдера ВНИЗ это «×3.3 из кармана читателя, молча». Носитель — строка 413. ⚠ Сводя такое по диску, помнить строку 428: обход файлов*.dbумножает трату на число КОПИЙ базы (замер 11.09 — множитель 10.88×), поэтому деньги считаются по УНИКАЛЬНОМУ(book_id, date)либо по одной авторитетной базе. -
COGS — себестоимость перевода; ре-проба — дешёвый повторный замер провайдера после аномалии (носитель события — строка 188; исходная 74 закрыта D39.91).
Неймспейсы номеров
- PD-N — регистр дефектов ПЛАТФОРМЫ (
platform/docs/DEFECT_REGISTER.md; счёт —counts.py); П-N — зонный бэклог платформы (platform/BACKLOG.md); Ф-N — зонный бэклог фронта (frontend/docs/BACKLOG.md); В-N — вопрос ВЛАДЕЛЬЦУ от фронта (журналfrontend-PROGRESS.md); К-N — вопрос контракта API (14-api-contract/README.md). «Строка N» без префикса = ЕДИНЫЙ бэклогdocs/PROGRESS.md(НЕ номер строки файла). - Глава — единица структуры книги: детект
chunk/ingest.go(txt: CJK-шапки/form-feed; epub: документ spine), нумерация плотная позиционная + титульная политикаchunk/chunker.go(stripHeading/ApplyHeadingпоlangpacks/*/heading.txt), идентичность = контент-хеш в манифесте (pipeline/manifest.go), деньги ключуются ПОЗИЦИЕЙ (сдвиг границы = перекупка хвоста). Дизайн будущего —research/27. - Деньги платформы: холд — резервация суммы прироста на счёте ДО спавна; прирост — купленные главы × ставка ($0.03,
platform/internal/pricing/pricing.go); аргумент потолка — что уходит движку в--ceiling-usd= committed книги + прирост (PD-158; ЭТО НЕ ХОЛД — он больше холда на committed); baseline — счётчик книги на старте попытки, списание = разница; settle/расчёт — закрытие холда по фигуре движка; leftover-reserved — висячий reserved движка после краша (зануляется его write-open); SpendBound — верхняя граница отложенного расчёта по baseline следующей попытки (PD-159). - Лексикон экспериментов: жилец — модель на роли; арм — вариант в бейк-оффе; однопроходка/второй проход — топологии редактуры; закон-блок = доктрина инжекта (D39.104); пол/floor — нижний якорь шкалы судьи; Холм — поправка Холма на множественные сравнения; порог различимости — минимальная дельта, отличимая от шума риге.
- Входная дверь шва — входная половина контракта движок↔платформа (почему понадобилась — D39.156
п.2). Закон — D39.156 (
17-seam-inbound-law.md), построена и заленджена D39.158. tmctl bank-apply— $0-глагол входной двери: кладёт правки банка памяти, сделанные пользователем. Проекция--dry-run, всё-или-ничего, байтовый no-op идемпотентен, лок проекта неблокирующий.- Стоп банка — ФЛАЖОК, а не развилка: движок останавливается на границе майнинга, показывает банк
и ждёт «ОК» = продолжить. Подписывается БАНК целиком либо правится отдельный термин — пер-термной
масс-подписи НЕТ (модель владельца 16.08, D39.144). Предъявленное помнится (
bank_stop_presented, схема store v16), поэтому стоп срабатывает ОДИН раз на одно и то же. - Остановка прогона — с 10.09 их ДВЕ, и без прилагательного это слово не пишется (
D39.234п.1а). МЯГКАЯ — первое нажатие: новых единиц работы не раздаём, начатое ДОИГРЫВАЕМ, выходим сами; ничего не рвётся ⇒ ни одна позиция не получает пометкиcancelledи никто не платит дважды. ЖЁСТКАЯ — второе нажатие: контекст отменяется, летящие вызовы рвутся, доставленные книжатся по ОЦЕНКЕ и метятсяcancelled, резюм их пере-делывает. ⚠ В коде на 10.09 построена только ЖЁСТКАЯ (backend/cmd/tmctl/main.go, грепsignal.NotifyContext); мягкая ратифицирована и заказана паком — строка бэклога 381. ⛔ Оба стопа отдают код выхода 5 (полоса кодов заморожена): какой именно случился, говорит ПРИЗНАК в кадреfinished, а не код. Не путать со стопом банка (флажок границы майнинга, статья выше) и со стопом по потолку (paused, код 4) — это четыре разных предмета, и слово «стоп» само по себе не различает ни одного. - Полоса отказов [10,19] — коды выхода движка, отличающие «отказал ЗАКОННО» от «сломался»:
10 конфиг · 11 источник · 12 лок · 13 схема · 14 решения отклонены · 15
write_incomplete· 16book_incomplete(tmctl buildбез--partialна книге с дырами, D39.175) · 19 без имени. - Онтология банка —
architecture/18-bank-ontology.md: три роли носителей (источники · вид · проекции · память флага), их писатели и моменты коммита. Названный там класс дефекта — «проекция без названного потребителя и без якоря свежести в кадре». ОСПОРЕНО(PD-N)— грепаемый токен реестра дефектов платформы: строка стоитfixed, но пак доказал, что её пин доказывает свойство СЛАБЕЕ, чем строка гласит. Статус НЕ меняется, живой пробел несёт новая строкаPD-N. Ратифицирован D39.159 при условии двусторонней ссылки.