50 lines
8.9 KiB
Markdown
50 lines
8.9 KiB
Markdown
# P103 — сентябрь 2026: граница frontend и backend
|
||
|
||
Статус: изолированный **план/сценарий на сентябрь 2026**, не field report. Исторический cutoff источников: **31.07.2026**. Пакет намеренно не утверждает, что сентябрьская работа была проведена, опубликована, измерена, внедрена или одобрена. Все модели, названия, поля, значения и positive outputs — named fixed synthetic JavaScript literals в памяти; UI, API, пользователь, сеть, trace, файл, секрет, endpoint и production не читаются и не представляются фактом.
|
||
|
||
## Проход 1 — проблема, плотность, голос и независимость
|
||
|
||
- Practice начинает с присвоения UI доменного факта и цены несовместимых версий между входами. Его вопрос: как в сентябрьском плане разложить local state, context и screen read model по владельцам.
|
||
- Mechanism начинает с handler, который трактует отправку command как подтверждение. Его предмет: какое право на вывод дают query, command, read model и problem envelope, а не карта владельцев как таковая.
|
||
- Field начинает с подмены evidence правдоподобным mock и цены неповторимого решения. Его предмет: как передать только synthetic review card без имитации UI-network trace.
|
||
- Первые два абзаца каждой статьи явно называют проблему и цену. В каждой есть отдельная таблица, SVG, выполняемый snippet, упорядоченный план, ограничения и следующий шаг. Общего вступительного блока нет.
|
||
- Размер тел без списка источников: practice — 8 953, mechanism — 8 977, field — 9 006 знаков. Это в диапазоне 5 000–15 000 и близко к целевому объёму 9 тыс. без наполнения повторами.
|
||
- Строгий попарный scan исключил source lists, но включил code: 0 совпадающих абзацев от 160 символов и 0 общих 12-словных фрагментов для всех трёх пар.
|
||
|
||
## Проход 2 — источники, future-fact gate и literal execution
|
||
|
||
1. [OpenAPI Specification 3.1.1](https://spec.openapis.org/oas/v3.1.1.html), версия 3.1.1 от 24.10.2024 — первичная версионированная спецификация. Использована только для узкого утверждения, что HTTP API имеет независимое от языка interface description. Она не доказывает существование endpoint, screen model или выбранного boundary.
|
||
2. [RFC 9110: HTTP Semantics](https://www.rfc-editor.org/rfc/rfc9110.html), июнь 2022 — неизменяемый RFC. Использован только для различения HTTP semantics и application-level problem policy. Он не задаёт retry, не подтверждает response и не описывает product flow.
|
||
3. [JSON Schema Core, draft 2020-12](https://json-schema.org/draft/2020-12/json-schema-core.html), Internet-Draft (work in progress), 16.06.2022. Использован только для идеи явной структуры/vocabulary contract-карточки. Валидация схемы не доказывает доменную корректность, UI-поведение или достоверность fixed literals.
|
||
|
||
Ссылки открыты локальной проверкой до написания. Ни один источник не позже cutoff 31.07.2026. Свойства модели P103 — ownership map, состав read model, stop reasons и hand-off — отделены от источников и не приписываются стандартам.
|
||
|
||
Public exports выполнены буквально:
|
||
|
||
- `reviewFixedStateOwnership(createFixedBoundaryCase('ui-claims-domain-state-v1'))` → `stop-ui-claims-domain-state`.
|
||
- `explainFixedBoundaryInference(createFixedBoundaryCase('unactionable-error-v1'))` → `stop-error-not-actionable`.
|
||
- `explainFixedBoundaryInference(createFixedBoundaryCase('named-screen-boundary-v1'))` → `synthetic-inference-boundary-explained`, `productionEffect: not-attempted`.
|
||
|
||
Fixture: 5/5. Вместе с тремя article checks — 8/8. Положительная ветка заканчивается только `synthetic-boundary-review-hand-off` или объяснением его границы; в ней нет approval, release, deployment, публикации, доступа к production или факта trace.
|
||
|
||
## Проход 3 — выпускное качество, mobile SVG и уникальность
|
||
|
||
- `node --check scripts/upgrade-2026-09.mjs` — pass.
|
||
- `node scripts/upgrade-2026-09.mjs --verify-fixture` — 8/8, pass.
|
||
- `npm run audit:draft -- scripts/upgrade-2026-09.mjs` — pass для трёх строгих slug.
|
||
- `xmllint --noout` — pass для трёх SVG. Safety scan — pass: отсутствуют `script`, `foreignObject`, `javascript:`, `data:image` и event handlers.
|
||
- Все SVG отрисованы Sharp до 375px и просмотрены визуально. В первой схеме различимы три владельца и стрелка command; во второй — четыре разных права на вывод; в третьей после редакции читается `review hand-off`, подпись не обрезается. Рабочий SVG-текст задан 21–28px при viewBox 720px; схемы содержат title/desc, осмысленный article alt и caption.
|
||
- В code нет обращения к сети, файловой системе, секретам, часам или UI. Input только JSON-clone + deep-freeze named fixtures, а неизвестный или неполный вход останавливается fail-closed.
|
||
|
||
Draft готов для независимой production-приёмки. Registry, README, staging, commit и push находятся вне scope этого sidecar.
|
||
|
||
## Независимая приёмка основного редактора — 31.07.2026
|
||
|
||
Принято только как **сентябрьский план/сценарий**. Во всех трёх текстах будущий месяц и cutoff `2026-07-31` названы прямо; positive branches заканчиваются `synthetic-boundary-review-hand-off` или `synthetic-inference-boundary-explained` с `productionEffect: not-attempted`. Пакет не выдаёт fixed model за UI/API/trace из production.
|
||
|
||
Проверены первичные источники. Официальная OpenAPI Specification v3.1.1 действительно задаёт language-agnostic interface description для HTTP API и датирована **24.10.2024**; ошибочная дата 15.09.2023 исправлена до интеграции. RFC 9110 — June 2022 и описывает HTTP semantics; JSON Schema Core draft 2020-12 опубликован 16.06.2022 как Internet-Draft/work in progress. Поэтому последний источник используется только как vocabulary для явной структуры, а не как нормативное доказательство доменной схемы или поведения продукта.
|
||
|
||
Повторно выполнены syntax и fixture `8/8`, draft audit с объёмами 8 953 / 8 977 / 9 006, XML и SVG safety-scan. Public exports выдают проверенные stops `stop-ui-claims-domain-state` и `stop-error-not-actionable`; accepted branch остаётся только synthetic и имеет `productionEffect: not-attempted`. Три SVG заново отрендерены Sharp на 375 px: текст, стрелки и подписи читаются без обрезания. Строгая pairwise-проверка, включающая code и исключающая source lists, вернула ноль совпадающих абзацев от 160 символов и ноль общих 12-словных фрагментов.
|
||
|
||
В registry добавлены только три сентябрьские ревизии. Пользовательские application-файлы, `articles.json`, production queue и прочая незакоммиченная работа в приёмку не включены.
|