84 lines
11 KiB
Markdown
84 lines
11 KiB
Markdown
# P116 — октябрь 2027: «Длинное техническое интервью»
|
||
|
||
## Статус, temporal boundary и изолированный scope
|
||
|
||
Редакторская дата: **2026-07-31**. PlanDate: **2027-10**. Source cutoff: **2026-07-31**. Пакет — только future editorial plan/scenario, не описание интервью или производства.
|
||
|
||
Ни в prose, ни в fixed literals не заявлены actual interview, transcript, speaker, quote, code, metric, evidence, review, approval, ownership, publication или production effect. Не созданы fictional people, quotes, metrics или outcomes. Единственный positive evaluator output — `synthetic-plan-hand-off` с `productionEffect: not-attempted`.
|
||
|
||
Изменены только разрешённые файлы:
|
||
|
||
- `web/scripts/upgrade-2027-10.mjs`
|
||
- `editorial/reviews/2027-10-draft.md`
|
||
- `web/public/assets/editorial/2027/long-form-interview-2027-claim-evidence-map.svg`
|
||
- `web/public/assets/editorial/2027/long-form-interview-2027-source-boundary-matrix.svg`
|
||
- `web/public/assets/editorial/2027/long-form-interview-2027-editorial-handoff-loop.svg`
|
||
|
||
Git не использовался. Registry, README, очередь, `articles.json`, application files и чужие пакеты не менялись.
|
||
|
||
## Research: закреплённые источники и их границы
|
||
|
||
1. [W3C PROV-DM: The PROV Data Model](https://www.w3.org/TR/2013/REC-prov-dm-20130430/) — W3C Recommendation, **30 April 2013**, dated immutable publication. Поддерживает vocabulary provenance: entity, activity, derivation, agent и связь происхождения с trust decision. Используется только для разделения assertion, evidence и origin. Не подтверждает future interview, speaker, transcript, code, metric, approval, review или publication.
|
||
2. [C2PA Technical Specification 1.3](https://spec.c2pa.org/specifications/specifications/1.3/specs/C2PA_Specification.html) — **version 1.3, April 2023**, version-pinned publication. Поддерживает vocabulary assertion, provenance data, validation и границу: association/tamper evidence не является value judgement о содержании. Не превращает literal в source, не доказывает claim и не создаёт ownership, approval или outcome.
|
||
|
||
Оба URL проверены 2026-07-31 через `curl -I -L`: HTTP 200. Дата W3C закреплена в URL; C2PA закреплена версией `1.3` и датой из version history. Обе публикации не позже source cutoff. Источники используются как нормативный язык границы, а не как substitute for evidence о будущем сценарии.
|
||
|
||
## Review pass 1 — facts, temporal boundary и voice
|
||
|
||
- Первые два абзаца каждого текста называют самостоятельные problem/cost и сразу фиксируют будущую temporal boundary.
|
||
- **Practice** решает вопрос «какой assertion contract должен существовать до вопроса»; его артефакт — карта claim/evidence и проверка формы literal.
|
||
- **Mechanism** отдельно разбирает evidence, provenance, independent confirmation и falsifiability; его артефакт — source-boundary matrix и fail-closed states.
|
||
- **Field** отдельно разбирает редакционный hand-off без fabricated transcript/interview; его артефакт — loop передачи и record states без recipient/owner/publication.
|
||
- Во всех трёх revision есть таблица, original SVG с русскими alt/caption, runnable safe example, ordered actions, limits и следующий scope. Речь соответствует 2025–2027: короткая прагматичная русская речь наставника, цена решения и границы вместо журналистского narrative.
|
||
- Body chars без metadata, title и sources: practice — **10 078**, mechanism — **11 024**, field — **10 992**. Каждый текст находится в требуемых 10 000–13 000.
|
||
|
||
## Review pass 2 — safe literal и fail closed
|
||
|
||
`FIXED_INTERVIEW_LITERALS` содержит только named fixed in-memory synthetic literals. Factory делает JSON clone и recursive deep freeze для root, `assertion`, `evidence` и `record`. Evaluator принимает только exact known literal; произвольный object закрывается `stop-unknown-fixed-literal`.
|
||
|
||
- `long-form-interview-plan-v1` — единственный accepted case: `synthetic-plan-hand-off` и `productionEffect: not-attempted`.
|
||
- `long-form-interview-undated-v1` — `stop-temporal-boundary-required`.
|
||
- `long-form-interview-unnamed-claim-v1` — `stop-unnamed-claim`.
|
||
- `long-form-interview-hidden-source-v1` — `stop-hidden-source`.
|
||
- `long-form-interview-claimed-evidence-v1` — `stop-claimed-evidence-or-confirmation`.
|
||
- `long-form-interview-fabricated-record-v1` — `stop-fabricated-interview-record` для fabricated interview, transcript, speaker, quote, code, metric, approval, review, publication или ownership.
|
||
- `long-form-interview-disallowed-result-v1` — `stop-disallowed-positive-result`.
|
||
|
||
Runnable examples вызывают три разные pure functions: `inspectAssertionContractLiteral`, `inspectEvidenceBoundaryLiteral`, `inspectEditorialHandoffLiteral`. Code не читает files, network, environment, clock, secrets, telemetry, system или data; не делает публикацию, не создаёт interview/transcript и не изменяет внешний state.
|
||
|
||
## Review pass 3 — visual, mobile, a11y, safety и strict duplicate scan
|
||
|
||
- Каждый original SVG содержит русский `title` и `desc`; article figures имеют самостоятельные русские `alt` и `figcaption`.
|
||
- `xmllint --noout` прошёл для трёх SVG. Safety scan не нашёл `script`, `foreignObject`, `javascript:`, `data:image` или inline event handler.
|
||
- Sharp создал три PNG `375×225`. Ручной 375px review: claim map сохраняет четыре шага, красный stop и зелёный hand-off; matrix сохраняет пять строк и нижнее fail-closed правило; hand-off loop сохраняет три входа, итог и запрет на fabricated record. Обрезаний, внешних изображений и нечитаемых наложений нет.
|
||
- Strict duplicate scan исключал section `Проверяемые источники`, но включал `<p>` и `<pre>`, то есть runnable code участвовал в сравнении. Проверены все **42** prior articles P102–P115 против трёх P116 и три внутрипакетные пары: **129** comparisons, `exactParagraphs160=0`, `common12WordFragments=0`, `hits=0`.
|
||
|
||
## Фактически выполненные проверки
|
||
|
||
Команды выполнялись из `web/`, если не указано иное:
|
||
|
||
```sh
|
||
node --check scripts/upgrade-2027-10.mjs
|
||
node scripts/upgrade-2027-10.mjs --verify-fixture
|
||
npm run audit:draft -- scripts/upgrade-2027-10.mjs
|
||
node --input-type=module -e "/* public literal statuses, deep freeze, unknown input */"
|
||
xmllint --noout public/assets/editorial/2027/long-form-interview-2027-claim-evidence-map.svg public/assets/editorial/2027/long-form-interview-2027-source-boundary-matrix.svg public/assets/editorial/2027/long-form-interview-2027-editorial-handoff-loop.svg
|
||
! rg -n -i '<(script|foreignObject)\\b|javascript:|data:image|(?:^|[[:space:]])on[a-z]+=' public/assets/editorial/2027/long-form-interview-2027-claim-evidence-map.svg public/assets/editorial/2027/long-form-interview-2027-source-boundary-matrix.svg public/assets/editorial/2027/long-form-interview-2027-editorial-handoff-loop.svg
|
||
node --input-type=module -e "import sharp from 'sharp'; /* render three SVG at width 375 */"
|
||
node --input-type=module -e "/* P102-P115 + P116, sources excluded, p/pre and 12-word grams */"
|
||
curl -I -L https://www.w3.org/TR/2013/REC-prov-dm-20130430/
|
||
curl -I -L https://spec.c2pa.org/specifications/specifications/1.3/specs/C2PA_Specification.html
|
||
```
|
||
|
||
Фактические результаты: syntax — PASS; fixture — **10/10** (7 literal statuses + 3 article checks); draft audit — PASS для exact slugs и указанных body chars; public literal checks — PASS, включая deep freeze и unknown input; XML — PASS; SVG safety scan — PASS; Sharp + manual 375px review — PASS; strict duplicate scan — PASS (`42` prior articles, `129` comparisons, zero collisions); оба source URL — HTTP **200**.
|
||
|
||
`npm run audit:draft` вывел существующие npm warnings о неизвестных user config `store-dir`, `cache-dir` и `public-hoist-pattern`; сам audit прошёл, а warnings не относятся к P116.
|
||
|
||
## Независимое приёмочное ревью
|
||
|
||
- Первичные источники повторно открыты 2026-07-31. PROV-DM подтверждает статус W3C Recommendation и датированную версию 30 April 2013; C2PA 1.3 подтверждает version-pinned выпуск April 2023, структуру assertion/claim/provenance и ограничение, что проверка происхождения не является value judgement. Их использование в статьях не выходит за эти границы.
|
||
- Повторно выполнены `node --check`, fixture (**10/10**), `npm run audit:draft` и три runnable-примера. Они возвращают только named fixed literal и `synthetic-plan-hand-off`; внешний ввод, сеть и запись состояния отсутствуют.
|
||
- Три SVG прошли XML/safety scan и независимый рендер Sharp на 375 px. Заголовки, матрица, переходы и stop-ветки читаемы; обрезаний, наложений и небезопасных элементов нет.
|
||
- Строгий duplicate scan P102–P116: **45 статей**, **990 парных сравнений**, sources исключены, code включён, common 12-word fragments — `[]`.
|
||
- Приёмочный verdict: **pass**. Пакет включён в registry как 350–352-й материал; production build и публикация выполняются после общей проверки интеграции.
|