This commit is contained in:
@@ -1,6 +1,6 @@
|
||||
# Производство редакционных партий
|
||||
|
||||
На 31 июля 2026 года строгий аудит проходит 313 из 358 созданных материалов. Остальные 45 не считаются «почти готовыми»: их нужно заменить, а не косметически удлинить.
|
||||
На 31 июля 2026 года строгий аудит проходит 316 из 358 созданных материалов. Остальные 42 не считаются «почти готовыми»: их нужно заменить, а не косметически удлинить.
|
||||
|
||||
## Одна партия
|
||||
|
||||
|
||||
@@ -0,0 +1,64 @@
|
||||
# P104 — October 2026: «Стандарт code review»
|
||||
|
||||
## Статус и фактическая граница
|
||||
|
||||
Это изолированный draft-пакет. На дату подготовки — **31 июля 2026** — октябрь ещё не наступил. Все три статьи прямо оформлены как план/сценарий на октябрь 2026, а не как field report, история pull request, CI-прогон, merge, release, deploy, публикация или результат настоящего review.
|
||||
|
||||
Все входы — named fixed synthetic literals в памяти. Разрешённый положительный статус только `synthetic-review-hand-off`, в нём есть `productionEffect: not-attempted`. Код не читает repository, diff, сеть, файловую систему, часы, secrets, CI или production и не совершает внешних действий.
|
||||
|
||||
## Исследование источников до cutoff
|
||||
|
||||
1. [RFC 2119: Key words for use in RFCs to Indicate Requirement Levels](https://www.rfc-editor.org/rfc/rfc2119), BCP 14, March 1997, DOI `10.17487/RFC2119`. Проверены дата, определение `MUST`, `SHOULD`, `MAY` и ограничение: императивы надо применять бережно там, где они действительно нужны для совместимости или ограничения вредного поведения. Граница: RFC не является policy code review и не создаёт обязанностей этой команды.
|
||||
2. [RFC 8174: Ambiguity of Uppercase vs Lowercase in RFC 2119 Key Words](https://www.rfc-editor.org/rfc/rfc8174), BCP 14, May 2017, DOI `10.17487/RFC8174`. Использован только для уточнения контекста прописных терминов. Граница: документ не делает synthetic validator стандартом проекта.
|
||||
3. [NIST SP 800-218, SSDF Version 1.1](https://doi.org/10.6028/NIST.SP.800-218), February 2022, DOI `10.6028/NIST.SP.800-218`. Проверены месяц публикации, статус рекомендаций и назначение: высокоуровневые secure-development practices, интегрируемые в разные SDLC. Граница: NIST не подтверждает риск, уязвимость, CI или review конкретной организации.
|
||||
|
||||
Ни одно утверждение не зависит от факта после cutoff **2026-07-31**. Внешние документы отделены от моей проектной модели матрицы и fixed literals.
|
||||
|
||||
## Review pass 1 — проблема, плотность, голос, независимость
|
||||
|
||||
- **Practice** начинается с contract/migration change, который тонет в замечаниях о стиле; цена — не названные consumers и rollback. Угол: decision/evidence matrix.
|
||||
- **Mechanism** начинает с вывода, который сильнее evidence; цена — ложная определённость о поведении системы. Угол: риск → evidence → допустимый вывод → fail-closed gate.
|
||||
- **Field** начинается с hand-off, передающего вердикт вместо вопроса; цена — исчезновение consumer и rollback boundary. Угол: bounded synthetic hand-off без имитации истории.
|
||||
- Тон M9: прагматичные короткие утверждения, ownership границ и различение факта, question, stop и вывода. Общего вводного блока нет; одинаковая терминология объяснена через разные задачи.
|
||||
- Основной текст: 9 229 / 10 115 / 10 190 знаков (practice / mechanism / field). Все три тела в контракте 5 000–15 000 и в целевом диапазоне 9 000–13 000.
|
||||
|
||||
## Review pass 2 — факты, future boundary и literal execution
|
||||
|
||||
- Все fixed cases несут `planDate: 2026-10` и `sourceCutoff: 2026-07-31`; недатированный вход закрывается fail-closed status.
|
||||
- Factory применяет JSON clone и deep freeze. Полный case не даёт approval: только `synthetic-review-hand-off` с `productionEffect: not-attempted`.
|
||||
- Проверены четыре stop: неизвестный риск, недостаточный evidence, style вместо contract risk и positive conclusion `approve-and-merge`.
|
||||
- Literal snippets выполнены через public exports. Получены статусы: `synthetic-review-hand-off`, `stop-insufficient-evidence`, `stop-disallowed-positive-conclusion`.
|
||||
- В каждой статье есть независимые: механизм, HTML-таблица, оригинальный SVG с точными русскими alt/caption, runnable example, упорядоченные действия, границы и следующий шаг.
|
||||
|
||||
## Review pass 3 — выпуск, mobile SVG, уникальность
|
||||
|
||||
- XML валиден для трёх SVG; safety scan не нашёл `script`, `foreignObject`, `javascript:`, `data:image` или event handlers. Рабочий текст 20–27 px в viewBox 720×500.
|
||||
- Все SVG отрендерены Sharp в 375 px и визуально проверены: заголовок и 4 колонки матрицы читаются, два stop gate не обрезаны, loop сохраняет стрелки и нижний stop. Фигуры несут данные о связи risk/evidence/conclusion, а не иллюстрируют тему декоративно.
|
||||
- Строгая pairwise проверка исключила source lists, но включила code. Фактический результат каждой из трёх пар: `exactParagraphs160: 0`, `common12WordFragments: 0`.
|
||||
|
||||
## Команды локальной проверки
|
||||
|
||||
Запуск из `web/`:
|
||||
|
||||
```sh
|
||||
node --check scripts/upgrade-2026-10.mjs
|
||||
node scripts/upgrade-2026-10.mjs --verify-fixture
|
||||
npm run audit:draft -- scripts/upgrade-2026-10.mjs
|
||||
node --input-type=module -e "import { createFixedReviewCase, createFixedReviewHandOff, assessFixedDecisionEvidence } from './scripts/upgrade-2026-10.mjs'; const a=createFixedReviewHandOff(createFixedReviewCase('decision-evidence-ready-v1')); const b=assessFixedDecisionEvidence(createFixedReviewCase('missing-consumer-map-v1')); const c=createFixedReviewHandOff(createFixedReviewCase('approval-word-v1')); console.log(a.status, b.status, c.status);"
|
||||
xmllint --noout public/assets/editorial/2026/code-review-standard-2026-decision-evidence-matrix.svg public/assets/editorial/2026/code-review-standard-2026-risk-escalation-gates.svg public/assets/editorial/2026/code-review-standard-2026-review-handoff-loop.svg
|
||||
rg -n -i "<(script|foreignObject)\\b|javascript:|data:image|(?:^|[[:space:]])on[a-z]+=" public/assets/editorial/2026/code-review-standard-2026-decision-evidence-matrix.svg public/assets/editorial/2026/code-review-standard-2026-risk-escalation-gates.svg public/assets/editorial/2026/code-review-standard-2026-review-handoff-loop.svg
|
||||
```
|
||||
|
||||
## Disposition
|
||||
|
||||
Локальные проверки прошли: syntax; fixture `7/7`; editorial audit для всех трёх slug; literal execution; XML; SVG safety; Sharp mobile inspection; strict duplicate scan. Draft ожидает отдельной независимой приёмки. Registry, README, application files, articles JSON, production queue и все Git-действия намеренно не затрагивались.
|
||||
|
||||
## Независимая приёмка основного редактора — 31.07.2026
|
||||
|
||||
Принято только как **октябрьский plan/scenario**. Месяц и cutoff `2026-07-31` явно присутствуют, а максимальный positive output — `synthetic-review-hand-off` с `productionEffect: not-attempted`; review не подменяется approval, merge, release или фактом о CI/production.
|
||||
|
||||
Проверены первичные источники: RFC 2119 — BCP 14 от March 1997 и действительно требует осторожности с императивами; RFC 8174 — BCP 14 от May 2017 и уточняет особый смысл только uppercase терминов. NIST SP 800-218 v1.1 подтверждает February 2022 и описывает высокоуровневые практики, интегрируемые в SDLC; исходное неподтверждённое уточнение «final, 3 February» удалено до интеграции. Из документов не выводятся локальные policy, реальный риск или состояние review.
|
||||
|
||||
Повторно выполнены syntax, fixture `7/7`, draft audit с объёмами 9 229 / 10 115 / 10 190, XML и SVG safety-scan. Public exports возвращают `synthetic-review-hand-off`, `stop-insufficient-evidence`, `stop-disallowed-positive-conclusion` и `stop-style-displaces-risk` на fixed inputs. PNG-рендеры трёх SVG визуально осмотрены на 375 px: таблица, stop-gates и loop читаются без обрезания. Строгий scan, включающий code и исключающий source lists, дал ноль совпадающих абзацев от 160 символов и ноль общих 12-словных фрагментов во всех трёх парах.
|
||||
|
||||
В registry добавлены только три октябрьские ревизии. Пользовательские application-файлы, `articles.json`, production queue и остальная незакоммиченная работа не вошли в приёмку.
|
||||
Reference in New Issue
Block a user