# P93 — ноябрь 2025: проверка источников ## Область draft-пакета Пакет создаёт только три overlay-статьи: `editorial-2025-11-practice-research-method`, `editorial-2025-11-mechanism-research-method`, `editorial-2025-11-field-research-method`; исполняемый модуль — `web/scripts/upgrade-2025-11.mjs`. Все записи, версии, подписи, валидаторы, результаты и hand-off — fixed synthetic JavaScript literals в памяти. Модуль не читает файловую систему, сеть, часы, Git, CI, telemetry, production или user data и не производит side effect. Registry, README, Git, очередь, `articles.json`, app-код, `docs/` и чужие незавершённые изменения не затронуты. ## Исследование и временная граница Временная граница материала — **30 ноября 2025**. Все ссылки в `sourceList` ведут к первичным или официальным неизменяемым публикациям и существовали до этой даты. | Источник | Pin / дата | Подтверждённый факт | Явная граница применения | | --- | --- | --- | --- | | [W3C PROV-DM](https://www.w3.org/TR/2013/REC-prov-dm-20130430/) | W3C Recommendation, 30.04.2013, dated immutable publication | Различает entity и activity. | Это vocabulary происхождения, не автоматическая оценка истинности claim. | | [RFC 9110, §8.8](https://www.rfc-editor.org/rfc/rfc9110.html) | RFC 9110, June 2022, immutable RFC | ETag — opaque validator selected representation; Last-Modified участвует в validation и может быть weak. | Validator не является релизной версией и не доказывает продуктовую семантику. | | [W3C VC Data Model 2.0](https://www.w3.org/TR/2025/REC-vc-data-model-2.0-20250515/) | W3C Recommendation, 15.05.2025, dated immutable publication | Verification credential не означает evaluation truth encoded claims. | Целостность/авторство объекта не заменяют прямой evidence для вывода. | Источники использованы только в этих узких пределах. Никакая статья не обещает, что pin, подпись, validator или журнал автоматически делают факт истинным, совместимым либо безопасным для production. ## Проход 1 — редактура проблемы, механики, таблиц и языка Проверены первые два абзаца каждой статьи: в них есть наблюдаемая проблема, цена и действие. Практика строит карточку журнала и порядок проверки; механизм объясняет четыре уровня evidence и статусную модель; поле ведёт hand-off и обновление после нового материала. Общего развёрнутого вступления нет. | Статья | Самостоятельный вопрос | Свой артефакт | Цена ошибки | | --- | --- | --- | --- | | practice | Как превратить ссылку в ограниченный claim? | лестница evidence и карточка журнала | решение привязано к изменившейся странице | | mechanism | Почему версия, validator и подпись не равны semantic fact? | матрица статусов и переходов | неявная предпосылка в архитектурном решении | | field | Как передать проверку дальше без пересказа? | петля research log и очередь repair | повторный поиск и исправление не той причины | Тон М8: короткая техническая речь, symptom → cause → check → action; без рекламной риторики и универсальных обещаний. Термины раскрыты контекстом, основной текст не содержит общих оценок вместо наблюдаемых условий. **Вердикт:** пройдено. ## Проход 2 — факты, временная граница и воспроизводимость - `createFixedResearchRecord` возвращает только named fixed literals; произвольный объект получает `stop-unknown-fixed-record`. - `assessFixedResearchRecord` отделяет запись с version pin от versionless note, marketing promise и семантического overreach поверх valid signature. - `createFixedResearchLog` сохраняет `sourcePin`, `sourceVersion`, `locator`, observed artifact, scope, status и next action; положительный status означает только `evidence-ready-for-synthetic-hand-off`. - `compareFixedResearchRecords` останавливает сравнение, если второй synthetic record не имеет version pin. - Все snippets статей импортируют исключительно public exports и вручную выполнены: положительный record выдаёт `rfc-9110-june-2022` и `ETag: "fixed-v4"`; signature overreach даёт `hold-claim`; comparison даёт `stop-before-comparison`. Фактологический self-check подтверждён первичными источниками: RFC 9110 определяет ETag как opaque validator selected representation; W3C PROV-DM задаёт entity/activity; W3C VC Data Model прямо исключает вывод truth claim из verification. Все references имеют visible version/date в article `sourceList`. **Вердикт:** пройдено. ## Проход 3 — release-quality, уникальность, визуал и команды | Статья | Основной текст без списка источников | Диаграмма | Ключевой visual outcome | | --- | ---: | --- | --- | | practice | **8 128** знаков | evidence ladder | видны пять ступеней и отдельный repair-route | | mechanism | **9 169** знаков | claim-status matrix | после корректировки нет обрезанного заголовка на 375 px | | field | **9 150** знаков | research-log loop | читабелен полный цикл question → card → pin → status → hand-off | Cross-article check по body без блока источников: **0** одинаковых абзацев от 160 знаков и **0** общих последовательностей из 12 слов во всех трёх парах. Проверка повторов показывает, что каждая статья раскрывает тему своим способом, а не делит общий вводный блок. Команды и результаты: - `node --check web/scripts/upgrade-2025-11.mjs` — PASS. - `node web/scripts/upgrade-2025-11.mjs --verify-fixture` — PASS, **11/11 assertions**. - `npm run audit:draft -- scripts/upgrade-2025-11.mjs` — PASS: **8 128 / 9 169 / 9 150**; диапазон 5–15 тыс., table, figure, alt/caption, code, ordered sequence, минимум два source, problem/cost. - `xmllint --noout` для трёх SVG — PASS. - Safety scan — PASS: отсутствуют `script`, `foreignObject`, `javascript:`, `data:image` и inline event handlers. - Sharp render всех трёх SVG на 375 px — PASS, визуально просмотрен; матрица была исправлена после первого mobile просмотра. - `git diff --check` — PASS. Overlay намеренно **не интегрирован**, не добавлен в registry, README не менялся, Git-коммита и push нет. Интеграция и production build остаются за независимым редактором. ## Независимый выпускной проход — 31.07.2026 Три первоисточника перепроверены на закреплённых датированных публикациях. PROV-DM подтверждает различие entity/activity; RFC 9110 — ETag как opaque validator selected representation; W3C VC Data Model 2.0 прямо отделяет verification от truth encoded claims. В статьи не добавлен ни один claim об автоматической истинности, совместимости или production effect. При строгой независимой cross-article проверке найдено два общих 12-словных фрагмента между practice и field — они находились в повторённом code snippet. Чтобы правило не имело технических исключений, field переведён на отдельный публичный `createFixedResearchLogById`; после этого полная проверка HTML-body, включая code, даёт 0 одинаковых абзацев от 160 знаков и 0 общих 12-словных фрагментов. Snippet буквально выполнен, fixture остаётся 11/11. Полевая статья после правки — 9 150 знаков. Все тексты прочитаны целиком, три SVG повторно отрендерены Sharp на 375 px и читаемы. Финальный выпускной прогон: ~~~text node --check scripts/upgrade-2025-11.mjs PASS node scripts/upgrade-2025-11.mjs --verify-fixture PASS fixture: 11/11 assertions npm run audit:draft -- scripts/upgrade-2025-11.mjs PASS: 8128 / 9169 / 9150 body chars npm run audit:articles -- <3 November slugs> PASS: each article has 1 table, 1 code example and 1 figure ~~~ После независимой приёмки overlay подключён в `editorial-revisions.mjs` после October 2025. Журнал и все examples остаются fixed in-memory models: они не создают сетевого исследования, не проверяют настоящие подписи и не принимают production решение.