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

135 lines
11 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# P94 · Декабрь 2025 · Синтез инженерного года
Пакет намеренно остаётся изолированным. Он заменяет только содержимое трёх
декабрьских overlay-ревизий и не подключён к registry, README, очереди,
<code>articles.json</code>, 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 <code>9ab2b8864a85dca73a88f49b0927bc7bc85f596926e4fd1890905777924e700a</code> | Раздел 5.6 задаёт составной <code>date-time</code> с датой, <code>T</code>, временем и offset. | Использован только для синтаксиса fixed UTC timestamp; не задаёт причинность. |
| RFC 7282 | June 2014, immutable RFC text; SHA-256 <code>d060ec156f5d0699e2c0afd50ea6678293059feb84f1293c2db7ac67f482ae8d</code> | Документ прямо называет trade-off частью инженерного выбора. | Не переносит процедуру IETF в другую среду и не валидирует решение. |
| NIST SP 800-61r3 | April 2025, immutable published PDF; SHA-256 <code>e5593d6bb85daecec7e8d9549400c7b3473bcc3f06e469c82218073afa7fba2d</code> | Lessons learned анализируются, приоритизируются и возвращаются в Improvement. | Это пример направления цикла из cybersecurity incident response, не доказательство causal effect и не шаблон ADR. |
- Все URL прочитаны прямым <code>curl -L --fail</code>; PDF дополнительно
проверен через <code>pdfinfo</code> и <code>pdftotext</code>. В article
source list у каждой ссылки видны version/date и boundary; аудит нашёл
**3 HTTPS source и 3 visible version** в каждой из трёх статей.
Изменяемые live docs без pin не используются.
- <code>FIXED_YEAR_SYNTHESIS</code> содержит только frozen JavaScript literals
в памяти. У каждого timeline item есть <code>at</code>, <code>decision</code>,
две alternatives, cost, observation, unknown, comparisonBoundary и запрет
effect claim. Нет файлов, сети, clock, telemetry, Git, CI, production data,
user data, реальных организаций, команд, людей, идентификаторов или
интеграций.
- Проверка fail-closed. Неполная traceability, неверный timestamp,
отсутствующие alternative/cost/observation/unknown/boundary и
<code>effect-established</code> блокируют hand-off. Произвольный объект
получает <code>unknown-fixed-input</code>. Положительная ветка возвращает
только <code>synthetic-review-hand-off-only</code> с
<code>productionEffect: not-attempted</code>.
- Видимые snippets буквально запущены через публичные exports
<code>createFixedYearSynthesisInput</code>,
<code>inspectYearSynthesis</code> и
<code>prepareSyntheticYearReviewHandOff</code>. Practice вернул безопасный
synthetic hand-off; mechanism вернул ровно <code>missing-cost</code>,
<code>missing-unknown</code>, <code>missing-comparison-boundary</code>,
<code>effect-claim-not-allowed</code>; field сохранил
<code>stop-and-repair-boundary</code> на обоих шагах.
## Проход 3 — figure, mobile, uniqueness и выпускной контроль
- Каждая статья содержит отдельную безопасную SVG: decision timeline,
decision/cost/observation matrix и counterfactual review loop. Все XML
прошли <code>xmllint --noout</code>. Safety scan не нашёл
<code>script</code>, <code>foreignObject</code>, <code>javascript:</code>,
<code>data:image</code> или inline event handlers.
- Все три схемы отрендерены Sharp на ширине 375 px и просмотрены вручную.
При первом просмотре две нижние подписи вышли за край canvas; они были
сокращены, центрированы и повторно проверены. Финальные mobile-версии
сохраняют читаемый порядок блоков и видимые stop/hand-off границы.
- Cross-article scan исключал code и source list, нормализовал основной текст
и сравнивал каждую пару. Результат: **0** одинаковых абзацев длиной от
160 знаков и **0** общих последовательностей из 12 слов во всех трёх парах.
- Выполнены проверки:
~~~text
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 и читаемы.
~~~text
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.