Files
progcode/editorial/reviews/2027-02-draft.md
T
huncode 9e3cd52f80
Build and deploy / deploy (push) Successful in 16s
revise February 2027 legacy lessons plan articles
2026-07-31 20:18:11 +03:00

12 KiB
Raw Blame History

P108 — February 2027: «Уроки Bitrix для legacy-разработки»

Статус и временная граница

Редакторская дата: 31 июля 2026. Февраль 2027 ещё не наступил. Все три статьи прямо обозначены как план/сценарий на 2027-02 с source cutoff 2026-07-31. Это не описание существующего проекта, Bitrix-установки, версии, API-вызова, пользователя, поля, migration test, релиза или результата. Архивная документация Bitrix не использована как факт: подтверждённой версии у сценария нет.

Модель работает только с named fixed synthetic cases и fixed in-memory literals. Factory выполняет JSON clone и recursive deep freeze; evaluator fail-closed и принимает только byte-identical known literal. Единственный положительный output — synthetic-plan-hand-off с productionEffect: not-attempted. Код не читает сеть, browser, files, environment, clock, secrets, telemetry, external tools или production и не пытается выполнять migration.

Источники и boundary

  1. RFC 2119: Key words for use in RFCs, BCP 14, March 1997, DOI 10.17487/RFC2119. Первичный pinned источник точной нормативной лексики. Он не описывает Bitrix, не подтверждает API, версию, migration или результат.
  2. RFC 8174: Ambiguity of Uppercase vs Lowercase in RFC 2119 Key Words, BCP 14, May 2017, DOI 10.17487/RFC8174. Первичный pinned источник контекста модальных слов. Он не создаёт совместимость, evidence или будущий release.
  3. NIST SP 800-160 Vol. 1 Rev. 1: Engineering Trustworthy Secure Systems, Revision 1, November 2022, DOI 10.6028/NIST.SP.800-160v1r1. Первичный pinned источник общих инженерных границ и evidence. Он не является документацией Bitrix и не подтверждает project/test/field result.

Все источники опубликованы не позже cutoff. Их общие принципы отделены от модели P108: keep/wrap/replace, placeholders, stop-status, evidence state и hand-off — собственные synthetic конструкции будущего номера.

Review pass 1 — проблема, фокус, тон, плотность

  • Practice начинает с ранней замены старого участка без названного правила и цены потери неявного соглашения. Угол: дерево сохранить → обернуть → заменить, где ни одна ветка не выдается за выполненную миграцию.
  • Mechanism начинает с ошибки «имя вызова равно гарантии поведения» и цены ложного инварианта. Угол: граница версии и контракт существуют отдельно от вида API-вызова; ни один вызов не назван фактом Bitrix.
  • Field начинает с фразы о подтверждённой миграции без provenance и цены несуществующего evidence. Угол: synthetic migration evidence hand-off без заявленного test, проекта, релиза или успеха.
  • Во всех первых двух абзацах названы проблема и цена. Голос M10: сжатая русская техническая речь, прямые запреты на вымысел, без оправдания бездействия legacy-возрастом.
  • В каждом тексте есть механизм, HTML-table, русские alt/caption для своего SVG, literal runnable safe example, ordered actions, ограничения и следующий шаг. Финальные body lengths: practice — 9 469, mechanism — 9 663, field — 9 576 знаков.

Review pass 2 — cutoff, факты, literal safety

  • planDate: 2027-02 и sourceCutoff: 2026-07-31 обязательны; undated-future-scenario-v1 возвращает stop-undated-future-scenario-or-cutoff.
  • В модели есть только unnamed-legacy-contract и unnamed-version-boundary как named synthetic placeholders. Пропуск каждого закрывается соответственно stop-unnamed-legacy-contract и stop-unnamed-version-boundary; ни версия, ни контракт не выдумываются.
  • missing-migration-evidence-v1 возвращает stop-missing-or-claimed-migration-evidence. У allowed literal evidence остаётся not-collected/synthetic-input, поэтому сценарий не маскирует отсутствие test или record.
  • positive-conclusion-v1 закрывается stop-disallowed-positive-conclusion; migration-succeeded, release и любой позитивный future outcome не допускаются.
  • JSON clone + deep freeze не дают caller изменить вложенный literal после выдачи. Произвольный input останавливается stop-unknown-fixed-input; safe examples не обращаются к Bitrix или какой-либо живой системе.

Review pass 3 — SVG, мобильный осмотр и фактические проверки

  • Все три SVG содержат русские title и desc, data-bearing схему и русские article alt/caption. Нет внешних ссылок, script, foreignObject, javascript:, data:image или event handlers.
  • Sharp-рендеры 375×260 осмотрены вручную. Дерево сохраняет три ветки и два красных stop; матрица сохраняет четыре колонки после сокращения заголовка до «Вывод» без наложения; evidence loop сохраняет зелёную передачу и красные запреты. Обрезания текста не обнаружены.
  • Строгая pairwise проверка исключала source sections, но включала <pre><code>. Для всех трёх пар получены exactParagraphs160: 0 и common12WordFragments: 0.

Команды действительно выполнены из web/; результаты ниже зафиксированы после финальной правки SVG.

node --check scripts/upgrade-2027-02.mjs
node scripts/upgrade-2027-02.mjs --verify-fixture
npm run audit:draft -- scripts/upgrade-2027-02.mjs
node --input-type=module -e "import { createFixedLessonCase, assessFixedLessonPlan } from './scripts/upgrade-2027-02.mjs'; for (const id of ['keep-wrap-replace-v1','undated-future-scenario-v1','unnamed-contract-v1','unnamed-version-boundary-v1','missing-migration-evidence-v1','positive-conclusion-v1']) console.log(id, assessFixedLessonPlan(createFixedLessonCase(id)).status);"
xmllint --noout public/assets/editorial/2027/bitrix-lessons-2027-keep-wrap-replace-tree.svg public/assets/editorial/2027/bitrix-lessons-2027-version-boundary-matrix.svg public/assets/editorial/2027/bitrix-lessons-2027-migration-evidence-loop.svg
rg -n -i "<(script|foreignObject)\\b|javascript:|data:image|(?:^|[[:space:]])on[a-z]+=" public/assets/editorial/2027/bitrix-lessons-2027-keep-wrap-replace-tree.svg public/assets/editorial/2027/bitrix-lessons-2027-version-boundary-matrix.svg public/assets/editorial/2027/bitrix-lessons-2027-migration-evidence-loop.svg
node --input-type=module -e "import sharp from 'sharp'; for (const n of ['bitrix-lessons-2027-keep-wrap-replace-tree','bitrix-lessons-2027-version-boundary-matrix','bitrix-lessons-2027-migration-evidence-loop']) { const out='/private/tmp/'+n+'-375.png'; const info=await sharp('public/assets/editorial/2027/'+n+'.svg').resize({width:375}).png().toFile(out); console.log(out, info.width+'x'+info.height); }"

Фактические результаты: syntax — pass; fixture — 9/9 (6/6 literals + 3/3 article checks); audit — pass для трёх exact slug с lengths 9 469 / 9 663 / 9 576; public exports вернули один synthetic-plan-hand-off и пять ожидаемых stop-status; xmllint — pass; SVG safety scan — empty/pass; Sharp — три файла 375x260; визуальный inspection — pass; pairwise duplicate scan — нули по обеим метрикам во всех парах.

Disposition

Изменены только пять файлов P108:

  • web/scripts/upgrade-2027-02.mjs
  • editorial/reviews/2027-02-draft.md
  • web/public/assets/editorial/2027/bitrix-lessons-2027-keep-wrap-replace-tree.svg
  • web/public/assets/editorial/2027/bitrix-lessons-2027-version-boundary-matrix.svg
  • web/public/assets/editorial/2027/bitrix-lessons-2027-migration-evidence-loop.svg

Registry, README, articles.json, application files, очередь, P102–P107 и Git-state не менялись. P108 передаёт только synthetic plan hand-off; он не заявляет тест, проект, API, релиз, пользователя, поле или положительный будущий результат.

Независимая приёмка основного редактора — 31.07.2026

Принято исключительно как февральский план/сценарий 2027. В текстах сохранены 2027-02 и cutoff 2026-07-31; нет выдуманного Bitrix API, версии, установки, migration test, release или результата. Единственный positive result — synthetic-plan-hand-off, productionEffect: not-attempted.

Проверка первоисточников обнаружила и устранила ошибку в ссылке: NIST SP 800-160 Vol. 1 Rev. 1 официально называется Engineering Trustworthy Secure Systems и опубликован в November 2022, не November 2021. RFC 2119 и RFC 8174 подтверждены как BCP 14. Все три документа оставлены только для дисциплины границ/модальности; они не служат документацией Bitrix и не доказывают version boundary или migration evidence.

Повторно выполнены syntax, fixture/guard 9/9, draft audit с объёмами 9 469 / 9 663 / 9 649, XML и SVG safety-scan. Literal exports дали expected six branches, включая stop-unnamed-legacy-contract, stop-unnamed-version-boundary, stop-missing-or-claimed-migration-evidence и stop-disallowed-positive-conclusion. Три SVG осмотрены через Sharp на 375 px: ветви дерева, строки матрицы и arrows hand-off не обрезаются. Один общий 12-словный label между practice и field был устранён; итоговый scan 21 статьи августа 2026 — февраля 2027 дал collisions: [].

В registry добавлены только три февральские ревизии. Пользовательские application-файлы, articles.json, production queue и остальная незакоммиченная работа в приёмку не включены.