Files
progcode/editorial/reviews/2025-11-draft.md
T
huncode def4f0a1f5
Build and deploy / deploy (push) Successful in 16s
revise November 2025 source verification articles
2026-07-31 18:34:41 +03:00

90 lines
11 KiB
Markdown
Raw 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.
# 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 решение.