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

58 lines
7.8 KiB
Markdown

# Январь 2027 — редакторское ревью после переписывания
## Объём партии
Переписаны три самостоятельные технические статьи с сохранением stable slug:
- `editorial-2027-01-practice-debugging-decade` — 5 825 знаков основного текста;
- `editorial-2027-01-mechanism-debugging-decade` — 5 706 знаков;
- `editorial-2027-01-field-debugging-decade` — 5 640 знаков.
Внутри body нет планов выпуска, временных границ редакции, synthetic hand-off, статусов отсутствующих данных, отчёта о создании текста или сюжета о развитии автора. Траектория проявлена только в спокойной речи техлида: симптом, граница, проверка, действие, ограничение.
## Проход 1 — факты, техника, пример и источники
Проверялись смысл HTTP/trace/log, соответствие примеров заявленному предмету, версии и границы официальных источников.
- **Practice.** До: статья вела от абстрактной карты диагностики к передаче вопроса. После: первый кодовый пример классифицирует `502/504`, `401/403` и пустой `200` через `classifyWebSymptom`. Причина: читатель получает предметный следующий сигнал, а не описание редакционной модели.
- **Mechanism.** До: связь trace и log описывалась как фиксированный набор полей. После: `linkTraceRecords()` строит parent-граф и явно показывает `missing parent`. Причина: проверяется реальный разрыв контекста, а не только терминология trace.
- **Field.** До: полевой текст заканчивался передачей неполной карточки. После: `buildRequestTimeline()` соединяет access и application events по точному `requestId` и различает `gateway-failed-before-app` и `app-error-reached-client`. Причина: пример отвечает на вопрос разбора 502.
Источники сверены точечными запросами и применены с границами:
- [W3C Trace Context](https://www.w3.org/TR/trace-context/) — Recommendation, 23 November 2021; формат `traceparent` и передача контекста; не доказывает полноту цепочки или причинность.
- [RFC 5424](https://www.rfc-editor.org/rfc/rfc5424.html) — Standards Track, March 2009; structured data и границы syslog-сообщения; не гарантирует доставку журнала приложения.
- [RFC 9110](https://www.rfc-editor.org/rfc/rfc9110.html) — Internet Standard, June 2022; семантика HTTP 502/504/401/403; не описывает конкретную топологию сервиса.
- [NIST SP 800-92](https://csrc.nist.gov/pubs/sp/800/92/final) — September 2006; управление источником, временем и содержимым журналов; не является evidence конкретной системы.
## Проход 2 — структура, голос, плотность и мета-лексика
- **Practice.** До: вступление начиналось с общего разговора о диагностике. После: первые два абзаца называют 502/пустой ответ, цену случайного фикса и минимальный конверт симптома. Причина: читатель сразу понимает, что именно проверять.
- **Mechanism.** До: лог, span и metric смешивались в одном объяснении. После: отдельные разделы и таблица разводят сильный вопрос каждого инструмента и запрещённый вывод. Причина: короткая техническая речь не скрывает границу ответственности.
- **Field.** До: один общий совет «посмотреть логи» повторялся в нескольких местах. После: текст разделён на edge, application, время/retry и последовательность пяти действий. Причина: каждый абзац добавляет наблюдение или решение.
Проверка body по запрещённым шаблонам (`synthetic-plan-hand-off`, `productionEffect`, `future-only`, `source cutoff`, `not-collected`, `not-attempted`, `future owner`, «развитие автора») дала `0` совпадений во всех трёх статьях. Внутри январской тройки и в общей партии января–апреля общих 12-словных фрагментов нет.
## Проход 3 — визуал, мобильная читаемость, доступность и повторы
- **Practice.** До: временная шкала содержала редакционные статусы. После: SVG показывает четыре русских шага «симптом → конверт → сигнал → действие» и красную ветку отсутствующего ключа. Причина: рисунок объясняет маршрут диагностики.
- **Mechanism.** До: схема показывала hand-off. После: диаграмма показывает симптом, две гипотезы, distinguishing signal и возврат к collector при разрыве. Причина: visual соответствует коду parent/request-id.
- **Field.** До: таблица и рисунок утверждали передачу несуществующего отчёта. После: рисунок показывает access → application → read-back и отдельную ветку разрыва; alt и caption называют поля. Причина: убрана мета-сюжетность и сохранена доступность.
Все три SVG имеют русские `<title>`/`<desc>`, содержательный `alt`, подпись, только локальные формы и проходят XML/safety scan. Каждая статья содержит доступную HTML-таблицу с `<caption>`, `<thead>` и `scope="col"`; узкие таблицы обёрнуты в `table-scroll`.
## Проверки
```text
node --check scripts/upgrade-2027-01.mjs — PASS
node scripts/upgrade-2027-01.mjs --verify-fixture — PASS, 4/4
npm run audit:draft -- scripts/upgrade-2027-01.mjs — PASS, 3/3
локальные примеры module exports — PASS, 12/12 для всей партии
xmllint --noout для 3 SVG — PASS
SVG safety scan (script, foreignObject, javascript, data:image, event handlers) — PASS
Sharp resize width=375 для 3 SVG — PASS; визуально проверены заголовки, стрелки, таблица и красные ветки
strict cross-article scan января–апреля: 12 статей, 66 сравнений, sources excluded, code included — collisions: []
```
Git, registry, README, `articles.json`, приложение и файлы других месяцев не изменялись.