Files
huncode 50d783d0d5
Build and deploy / deploy (push) Successful in 18s
revise December 2025 year synthesis articles
2026-07-31 18:43:29 +03:00

11 KiB
Raw Permalink Blame History

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 e5593d6bb85daecec7e8d9549400c7b3473bcc3f06e469c82218073afa7fba2d Lessons 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.