11 KiB
P94 · Декабрь 2025 · Синтез инженерного года
Пакет намеренно остаётся изолированным. Он заменяет только содержимое трёх
декабрьских overlay-ревизий и не подключён к registry, README, очереди,
articles.json, app-файлам или Git.
Проход 1 — проблема, структура и техническая речь
- Прочитаны все три тела без списка источников. У практической статьи свой вопрос: как собрать timeline, в котором не исчезают варианты и цена. Механизм разбирает, почему порядок «decision → observation» не доказывает причинность. Полевая статья строит короткий counterfactual review и маршрут repair request. Тексты не являются разрезанным общим введением.
- Первые два абзаца каждой статьи содержат symptom и cost. Practice называет цену витрины успехов — повторную работу на основании памяти. Mechanism называет стоимость ложного эффекта — продолжение дорогого пути без основания. Field называет цену гладкой истории — следующий цикл повторяет уже любимое объяснение вместо выбора по записи.
- Каркас у каждой статьи самостоятельный: отдельные figure, table, executable snippet, ordered sequence, границы и следующий шаг. Практика развивает контракт timeline и различие окна решения с окном observation; механизм — типы ложного causal claim и условия метода сравнения; поле — правила repair request, два вида несогласия и цену самого review.
- Язык соответствует уровню M8: короткая цепочка «симптом → причина → проверка → действие», явный trade-off, спокойная граница утверждения. Английские слова используются как названия полей fixed модели и раскрыты рядом русским смыслом. Удалены обещания универсального эффекта, реальные кейсы, организации, команды, люди, идентификаторы и интеграции.
- Финальные размеры основного текста после удаления HTML и source list: practice — 9 262, mechanism — 9 398, field — 9 349 знаков. Все тексты находятся в обязательном диапазоне 5 000–15 000 и целевом диапазоне 9–10 тыс. без искусственного растягивания.
Проход 2 — источники, историческая граница и исполняемый код
-
Историческая граница пакета — 2025-12-31. Все три источника первичные, официальные и доступны до этой даты:
Источник Pin / версия Проверенный узкий факт Граница использования RFC 3339 July 2002, immutable RFC text; SHA-256 9ab2b8864a85dca73a88f49b0927bc7bc85f596926e4fd1890905777924e700aРаздел 5.6 задаёт составной date-timeс датой,T, временем и offset.Использован только для синтаксиса fixed UTC timestamp; не задаёт причинность. RFC 7282 June 2014, immutable RFC text; SHA-256 d060ec156f5d0699e2c0afd50ea6678293059feb84f1293c2db7ac67f482ae8dДокумент прямо называет trade-off частью инженерного выбора. Не переносит процедуру IETF в другую среду и не валидирует решение. NIST SP 800-61r3 April 2025, immutable published PDF; SHA-256 e5593d6bb85daecec7e8d9549400c7b3473bcc3f06e469c82218073afa7fba2dLessons learned анализируются, приоритизируются и возвращаются в Improvement. Это пример направления цикла из cybersecurity incident response, не доказательство causal effect и не шаблон ADR. -
Все URL прочитаны прямым
curl -L --fail; PDF дополнительно проверен черезpdfinfoиpdftotext. В article source list у каждой ссылки видны version/date и boundary; аудит нашёл 3 HTTPS source и 3 visible version в каждой из трёх статей. Изменяемые live docs без pin не используются. -
FIXED_YEAR_SYNTHESISсодержит только frozen JavaScript literals в памяти. У каждого timeline item естьat,decision, две alternatives, cost, observation, unknown, comparisonBoundary и запрет effect claim. Нет файлов, сети, clock, telemetry, Git, CI, production data, user data, реальных организаций, команд, людей, идентификаторов или интеграций. -
Проверка fail-closed. Неполная traceability, неверный timestamp, отсутствующие alternative/cost/observation/unknown/boundary и
effect-establishedблокируют hand-off. Произвольный объект получаетunknown-fixed-input. Положительная ветка возвращает толькоsynthetic-review-hand-off-onlyсproductionEffect: not-attempted. -
Видимые snippets буквально запущены через публичные exports
createFixedYearSynthesisInput,inspectYearSynthesisиprepareSyntheticYearReviewHandOff. Practice вернул безопасный synthetic hand-off; mechanism вернул ровноmissing-cost,missing-unknown,missing-comparison-boundary,effect-claim-not-allowed; field сохранилstop-and-repair-boundaryна обоих шагах.
Проход 3 — figure, mobile, uniqueness и выпускной контроль
-
Каждая статья содержит отдельную безопасную SVG: decision timeline, decision/cost/observation matrix и counterfactual review loop. Все XML прошли
xmllint --noout. Safety scan не нашёлscript,foreignObject,javascript:,data:imageили inline event handlers. -
Все три схемы отрендерены Sharp на ширине 375 px и просмотрены вручную. При первом просмотре две нижние подписи вышли за край canvas; они были сокращены, центрированы и повторно проверены. Финальные mobile-версии сохраняют читаемый порядок блоков и видимые stop/hand-off границы.
-
Cross-article scan исключал code и source list, нормализовал основной текст и сравнивал каждую пару. Результат: 0 одинаковых абзацев длиной от 160 знаков и 0 общих последовательностей из 12 слов во всех трёх парах.
-
Выполнены проверки:
node --check scripts/upgrade-2025-12.mjs PASS node scripts/upgrade-2025-12.mjs --verify-fixture PASS fixture: 16/16 assertions npm run audit:draft -- scripts/upgrade-2025-12.mjs PASS: 9262 / 9398 / 9349 body chars xmllint --noout <3 P94 SVG> PASS SVG safety scan PASS: 0 forbidden constructs Sharp 375 px render + manual inspection PASS after caption correction git diff --check PASS -
Пакет не интегрирован, не staged, не committed и не published. Для подключения требуется отдельная независимая приёмка, audit целевых статей после registry и только затем отдельное решение о Git.
Независимый выпускной проход — 31.07.2026
Три source pin проверены повторно через прямой HTTPS fetch: SHA-256 RFC 3339, RFC 7282 и NIST SP 800-61r3 совпали с зафиксированными в этом review. Тексты источников подтвердили только заявленные факты: формулу RFC 3339 date-time, инженерные trade-off в RFC 7282 и путь lessons learned → analysis/prioritization → Improvement у NIST. Границы статей не расширены до causal или production claim.
Practice, mechanism и field прочитаны целиком. Попарная проверка полного HTML-body, включая code blocks, дала 0 одинаковых абзацев от 160 знаков и 0 общих 12-словных фрагментов. Все три snippets выполнены через public exports: valid case возвращает synthetic-review-hand-off-only; correlation-only — четыре точные stop reasons; incomplete case сохраняет stop-and-repair-boundary. Три SVG повторно отрендерены Sharp на 375 px и читаемы.
node --check scripts/upgrade-2025-12.mjs
PASS
node scripts/upgrade-2025-12.mjs --verify-fixture
PASS fixture: 16/16 assertions
npm run audit:draft -- scripts/upgrade-2025-12.mjs
PASS: 9262 / 9398 / 9349 body chars
npm run audit:articles -- <3 December slugs>
PASS: each article has 1 table, 1 code example and 1 figure
После приёмки overlay подключён в editorial-revisions.mjs после November 2025. Все решения, timeline, alternatives, costs и observations по-прежнему fixed synthetic literals и не являются историей реального года или основанием для production decision.