7.8 KiB
Январь 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 — Recommendation, 23 November 2021; формат
traceparentи передача контекста; не доказывает полноту цепочки или причинность. - RFC 5424 — Standards Track, March 2009; structured data и границы syslog-сообщения; не гарантирует доставку журнала приложения.
- RFC 9110 — Internet Standard, June 2022; семантика HTTP 502/504/401/403; не описывает конкретную топологию сервиса.
- NIST SP 800-92 — 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.
Проверки
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, приложение и файлы других месяцев не изменялись.