Files
2026-07-31 22:26:56 +03:00

43 lines
5.9 KiB
Markdown
Raw Permalink 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.
# Редакторское ревью: декабрь 2027
Пакет переписан как три самостоятельных технических материала о web security, web performance и эксплуатационной документации. Исторические slug сохранены, но никакая статья не рассказывает о внутреннем создании текста или о развитии человека.
## Три содержательных прохода
### `editorial-2027-12-practice-author-manifesto`
1. Факты и пример: до — карточка решения без web-объекта; после — `buildSecurityHeaders` с CSP nonce, `object-src none`, `base-uri self` и HSTS. Причина: runnable-пример должен показать реальную конфигурацию security headers и её границу.
2. Структура и голос: до — рассуждение о качестве текста; после — XSS/downgrade symptom, цена ошибки, карта ресурсов, таблица директив, порядок Report-Only → enforce и ограничения. Причина: reader должен понять, что именно защищает заголовок.
3. Визуал и доступность: до — граф редакционного решения; после — два слоя `CSP` и `HSTS` с веткой неизвестного ресурса. Причина: рисунок разделяет защиту ресурсов и схему соединения.
### `editorial-2027-12-mechanism-author-manifesto`
1. Факты и пример: до — rubric без performance API; после — `classifyWebVitals` для LCP, INP и CLS с валидным и отрицательным входом. Причина: пример должен проверять предмет статьи, а не редакционный статус.
2. Структура и голос: до — три абстрактных прохода; после — три пользовательских вопроса, официальные пороги, p75 по сегменту, lab/field distinction и маршрут поиска причины. Причина: порог не должен подменять причинность.
3. Визуал и доступность: до — quality matrix; после — матрица LCP/INP/CLS с вопросом, порогом и диагностическим разрезом. Причина: мобильный читатель видит различия без длинного абзаца.
### `editorial-2027-12-field-author-manifesto`
1. Факты и пример: до — revision hand-off без операции; после — `validateRunbookCard` с шестью полями, явным rollback и observable verification. Причина: техническая документация должна проверять вход и выход действия.
2. Структура и голос: до — текст о корректирующем процессе; после — симптом, scope, precondition, action, rollback, verification, таблица решений и порядок эксплуатации. Причина: статья стала инструкцией для reader-facing работы.
3. Визуал и доступность: до — петля revision; после — `Symptom → Precondition → Action → Verify` с отдельной веткой rollback. Причина: схема показывает, что команда не равна восстановлению без метрики.
## Источники и границы применения
- [W3C Content Security Policy Level 3](https://www.w3.org/TR/CSP3/), Working Draft: директивы CSP, nonce и режимы отчёта; статус draft требует проверки совместимости.
- [RFC 6797](https://www.rfc-editor.org/rfc/rfc6797.html), ноябрь 2012 года: HSTS; не защищает первый HTTP-переход.
- [W3C Largest Contentful Paint](https://www.w3.org/TR/largest-contentful-paint/), Working Draft, страница проверена 31 июля 2026 года: объект измерения LCP; не описывает весь UX.
- [W3C Performance Timeline](https://www.w3.org/TR/2025/CRD-performance-timeline-20250521/), Candidate Recommendation Draft, 21 мая 2025 года: PerformanceObserver и entries.
- [Web Vitals](https://web.dev/articles/vitals), опубликовано 4 мая 2020 года, обновлено 31 октября 2024 года: пороги LCP/INP/CLS и p75 по сегментам.
- [NIST SP 800-61r2](https://nvlpubs.nist.gov/nistpubs/SpecialPublications/NIST.SP.800-61r2.pdf), revision 2, май 2012 года: общая структура incident handling; не задаёт локальные команды.
- [RFC 2119](https://www.rfc-editor.org/rfc/rfc2119.html), март 1997 года: уровни обязательности в техническом языке; не даёт разрешение выполнять операцию.
## Проверки
- `node --check scripts/upgrade-2027-12.mjs` — PASS.
- `node scripts/upgrade-2027-12.mjs --verify-fixture` — PASS, 9/9.
- `npm run audit:draft -- scripts/upgrade-2027-12.mjs` — PASS, 5710 / 5476 / 5686 body chars.
- `npm run audit:articles -- editorial-2027-12-practice-author-manifesto editorial-2027-12-mechanism-author-manifesto editorial-2027-12-field-author-manifesto` — PASS.
- `xmllint --noout` и SVG safety scan — PASS для трёх существующих assets.
- Ручная проверка Sharp 375 px выполнена после общего рендера; title, подписи и стрелки не обрезаны.