Files
huncode 3d879666ea
Build and deploy / deploy (push) Successful in 20s
revise October 2026 code review plan articles
2026-07-31 19:54:32 +03:00

9.9 KiB
Raw Permalink Blame History

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, 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, BCP 14, May 2017, DOI 10.17487/RFC8174. Использован только для уточнения контекста прописных терминов. Граница: документ не делает synthetic validator стандартом проекта.
  3. NIST SP 800-218, SSDF Version 1.1, 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/:

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 и остальная незакоммиченная работа не вошли в приёмку.