Files
progcode/editorial/reviews/2026-09-draft.md
T
2026-07-31 22:26:56 +03:00

46 lines
6.3 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.
# Пакет 2026-09 — три редакторских прохода
Пакет переписан как три самостоятельные технические статьи. В тексте нет описания авторской траектории, редакционного плана, даты отсечения источников, отчёта о публикации или обещаний о состоянии системы. Стабильные slug сохранены.
## Проход 1 — проблема, структура и практический результат
Для каждой статьи выполнена отдельная замена предмета, а не косметическая правка.
| Статья | Было | Стало |
|---|---|---|
| Practice | «План на сентябрь: карта границы между экраном и доменом» и рассуждение о synthetic hand-off | «Ответ 200 — ещё не модель экрана: валидируем JSON на границе UI и API»; в первых абзацах названы сломанный payload, цена рассинхрона и порядок проверки status → media type → JSON → screen model |
| Mechanism | «План на сентябрь: на что boundary даёт право сделать вывод» и fixed literal ownership | «Состояние экрана не угадывают по статусу: разделяем query, command и ошибку»; добавлены 2xx/204/409/422/429/5xx, problem envelope и отдельная retry policy |
| Field | «Сценарий на сентябрь: synthetic hand-off для границы UI и API» и карточка передачи | «UI и API расходятся: полевой протокол диагностики без догадок»; добавлены четыре наблюдения intent/request/response/render input и маршрутизация к adapter, cache или selector |
Для всех трёх материалов добавлены самостоятельные разделы, доступные таблицы, SVG-схемы, кодовый пример, последовательность действий, ограничения и следующий шаг. Повторы между текстами убраны: у первой статьи центр тяжести — форма ответа, у второй — семантика результата, у третьей — локализация рассинхрона.
## Проход 2 — факты, техническая проверка и источники
| Статья | Конкретная правка | Проверка границы |
|---|---|---|
| Practice | Убрано утверждение, что HTTP 200 равен успеху экрана; добавлена функция checkScreenResponse с закрытым словарём status/actions и непустым messageCode | 200 проверяется отдельно от runtime shape; 204 не проходит в JSON parser; generated types не выданы за runtime validation |
| Mechanism | Убрана универсальная ветка «красный статус = сетевой сбой»; добавлена classifyHttpResponse с отдельными ветками 409/422 и 429/5xx | RFC 9110 используется только для HTTP semantics, RFC 9457 — только для Problem Details, OpenAPI — только для описания response variants |
| Field | Убрана имитация UI/network trace; добавлена diagnoseBoundaryObservation, которая различает валидный response и устаревший render input | Код не обращается к сети, секретам или реальному браузеру; curl-пример ограничен чтением тестового ресурса и явно отделён от mutation |
Проверяемые ссылки находятся в конце каждой статьи. Для каждой указаны название, версия/дата, конкретное использование и граница применимости. Внутренние выводы статьи не приписываются стандартам.
## Проход 3 — язык, визуальная подача и выпускная вычитка
| Статья | До правки | После правки |
|---|---|---|
| Practice | «карта владельцев», «сценарий», «положительная ветка» | прагматичный глагольный маршрут: «проверить», «остановить», «не передавать в компонент» |
| Mechanism | «hand-off», «approval», «synthetic» в основном тексте | короткие технические формулировки о response, problem detail, retry и read model |
| Field | «передать карточку следующему reviewer» | конкретные поля диагностики, безопасные заголовки, порядок сравнения и критерий остановки |
SVG переработаны под мобильную ширину: крупные подписи, один смысловой рисунок на статью, title/desc, содержательный alt и подпись. Убраны схемы, которые показывали редакционный процесс вместо технического механизма.
## Выполненные проверки
- node --check scripts/upgrade-2026-09.mjs — pass.
- node scripts/upgrade-2026-09.mjs --verify-fixture — 8/8; объём тел: 7 581, 6 998 и 8 459 знаков.
- npm run audit:draft -- scripts/upgrade-2026-09.mjs — pass после добавления явного слова «Проблема» в открытие Mechanism.
- xmllint --noout для трёх SVG — pass.
- SVG safety scan — pass: нет script, foreignObject, javascript:, data:image и inline event handlers.
Пакет не меняет articles.json, application-файлы, registry и чужие незакоммиченные изменения.