revise June 2027 performance capstone articles
Build and deploy / deploy (push) Successful in 16s

This commit is contained in:
2026-07-31 20:44:55 +03:00
parent 733151116e
commit 659108c398
7 changed files with 336 additions and 1 deletions
+103
View File
@@ -0,0 +1,103 @@
# P112 — June 2027: «Большой разбор производительности»
## Статус, temporal boundary и file scope
Редакторская дата: **2026-07-31**. Июнь 2027 ещё не наступил. Три revision — только **plan/scenario на 2027-06** с source cutoff **2026-07-31**. В них не существуют и не заявляются benchmark, telemetry, profile, bottleneck, rollout, winner, product/production effect, service data или raw telemetry.
Модуль принимает лишь named fixed in-memory literals. Единственный положительный status — `synthetic-plan-hand-off`, всегда с `productionEffect: not-attempted`; прочие cases проходят fail-closed. Код не читает files, network, environment, clock, secrets, telemetry, browsers, services, systems или data и не делает наблюдений. Реальный сбор, profile, service inspection или интерпретация могут появиться только в отдельном явно authorised scope.
Изменены только разрешённые P112-файлы:
- `web/scripts/upgrade-2027-06.mjs`
- `editorial/reviews/2027-06-draft.md`
- `web/public/assets/editorial/2027/performance-capstone-2027-critical-path-contract.svg`
- `web/public/assets/editorial/2027/performance-capstone-2027-evidence-boundary-matrix.svg`
- `web/public/assets/editorial/2027/performance-capstone-2027-handoff-loop.svg`
Git не использовался. Registry, README, queue, `articles.json`, app и P102–P111 не менялись.
## Закреплённые первичные источники и URL verification
1. [W3C Performance Timeline Level 2](https://www.w3.org/TR/2019/WD-performance-timeline-2-20190329/) — W3C Working Draft, **dated snapshot 2019-03-29**. Это immutable датированная замена прежнему mutable URL. Используется для vocabulary `PerformanceEntry`/`PerformanceObserver`; не подтверждает существование entry, rendering path или effect в неизвестном приложении.
2. [W3C Navigation Timing Level 2](https://www.w3.org/TR/2026/WD-navigation-timing-2-20260225/) — W3C Working Draft, **2026-02-25**. Используется для границ navigation timing entry; не создаёт future measurement или baseline.
3. [W3C Resource Timing](https://www.w3.org/TR/2026/CRD-resource-timing-20260420/) — W3C Candidate Recommendation Draft, **2026-04-20**. Используется для vocabulary resource entries и `Timing-Allow-Origin`; не делает условия сопоставимыми и не устанавливает bottleneck.
4. [W3C Long Tasks API](https://www.w3.org/TR/2026/WD-longtasks-1-20260319/) — W3C Working Draft, **2026-03-19**. Используется для определения класса long task; не доказывает profile, причину задержки или наличие long task в продукте.
Все четыре exact W3C URL проверены 2026-07-31 запросом `curl -I -L`: HTTP **200**. Их датированные publication/last-modified значения — 2019-03-29, 2026-02-25, 2026-04-20 и 2026-03-19; каждое не позже source cutoff. Предыдущая mutable-публикация удалена из script и review: историческим доказательством остаётся только закреплённый W3C snapshot. Спецификация задаёт термин и visibility boundary, но никогда не выступает evidence измеренного результата.
## Additional independent correction after rejection
Независимая приёмка справедливо отклонила предыдущую глубину **5 913 / 6 306 / 6 203** знака: общий минимум выполнялся, но это не соответствовало очереди «Большой разбор производительности». Исправление расширило статьи до строгого локального диапазона **9 000–12 000** знаков и закрепило тот же диапазон в `revision()` и `verifyRevisionsAgainstFixture()`.
- **Practice** теперь отдельно разбирает navigation/resource/main-thread/action boundary, единицу работы, owner каждого элемента контракта, ложный proxy-контрпример и редакционный stop для склеенной постановки.
- **Mechanism** добавляет condition ledger, смысл baseline без прошлого числа, confounders, TAO/visibility/privacy boundary, различие между числом и causal claim, а также будущие outcomes фальсификации без выдачи их за result.
- **Field** добавляет evidence record против отчёта, разделение прав на сбор и решение, no-data hand-off, независимость review от decision и минимальный контракт следующего scope.
Новые body lengths без sources: practice — **11 758**, mechanism — **11 981**, field — **11 747** знаков. Все новые разделы описывают контракт будущей работы, а не будущий benchmark, telemetry, profile или производственный эффект.
## Review pass 1 — содержание, источники и temporal honesty
- Первые два абзаца каждой статьи по-прежнему называют исходную проблему и цену: спорные правки, ложный winner и преждевременный rollout соответственно.
- Три текста сохраняют разные главные вопросы: practice — что является единицей критического пути; mechanism — что сделает сравнение опровержимым; field — как передать вопрос без отчёта.
- Ссылки отделены от фактов: датированные W3C snapshots объясняют API и ограничения, но не подтверждают route, service, response, entry, timing или пользовательское состояние.
- В каждом revision есть HTML table, исходная русская SVG-схема с meaningful alt/caption, safe runnable example, ordered actions, limits и concrete next scope boundary.
## Review pass 2 — literal safety и fail-closed
- `critical-path-contract-2027-06-v1` — единственный accept: `synthetic-plan-hand-off` / `productionEffect: not-attempted`.
- `missing-june-date-or-cutoff-v1` — `stop-missing-june-date-or-cutoff`; date и cutoff не выводятся по умолчанию.
- `unnamed-path-contract-v1` — `stop-unnamed-path-contract`; question обязана иметь id и revision.
- `conditions-claimed-without-record-v1` — `stop-conditions-claimed-without-record`; browser/device/cache/route нельзя assumed.
- `observation-injected-into-plan-v1` — `stop-observation-injected-into-plan`; benchmark, telemetry и profile остаются unobserved.
- `result-substitution-v1` — `stop-result-substitution`; winner, bottleneck, rollout и production conclusion запрещены.
- JSON clone + recursive deep freeze закрывают mutation nested contract/conditions/evidence. Unknown input закрывается `stop-unknown-fixed-literal`. Runnable examples выполняют только fixed literal/evaluator и не имеют I/O.
## Review pass 3 — visual, mobile, SVG safety и uniqueness
- Все SVG имеют русский `title`/`desc`; article figures имеют русские alt/caption. Не найдены external URL, `script`, `foreignObject`, `javascript:`, `data:image` или inline event handlers.
- Sharp создал три изображения **375×225**. Ручной осмотр: contract сохраняет четыре границы и итоговый hand-off; matrix — четыре строки/колонки и stop rule; loop — вход, проверки, stop-ветку и владельца. Обрезаний или перекрытий нет.
- Strict scan исключал section `Проверяемые источники`, но включал `<p>` и `<pre>`, поэтому runnable code участвовал. Сканированы 3 P112 revision попарно и против **30** published revision P102–P111 (2026-08…2027-05). `exactParagraphs160: 0`, `common12WordFragments: 0`, `failures: []`.
## Реально выполненные проверки после correction
Из `web/` выполнены:
```sh
node --check scripts/upgrade-2027-06.mjs
node scripts/upgrade-2027-06.mjs --verify-fixture
npm run audit:draft -- scripts/upgrade-2027-06.mjs
xmllint --noout public/assets/editorial/2027/performance-capstone-2027-critical-path-contract.svg public/assets/editorial/2027/performance-capstone-2027-evidence-boundary-matrix.svg public/assets/editorial/2027/performance-capstone-2027-handoff-loop.svg
rg -n -i '<(script|foreignObject)\b|javascript:|data:image|(?:^|[[:space:]])on[a-z]+=' public/assets/editorial/2027/performance-capstone-2027-critical-path-contract.svg public/assets/editorial/2027/performance-capstone-2027-evidence-boundary-matrix.svg public/assets/editorial/2027/performance-capstone-2027-handoff-loop.svg
node --input-type=module -e "import sharp from 'sharp'; /* render all three SVG at width 375 */"
node --input-type=module -e "/* import P102-P111 and P112; exclude sources; scan p/pre and 12-word grams */"
curl -I -L https://www.w3.org/TR/2019/WD-performance-timeline-2-20190329/
curl -I -L https://www.w3.org/TR/2026/WD-navigation-timing-2-20260225/
curl -I -L https://www.w3.org/TR/2026/CRD-resource-timing-20260420/
curl -I -L https://www.w3.org/TR/2026/WD-longtasks-1-20260319/
```
Фактические результаты: syntax — pass; fixture — **9/9** (6 literal statuses + 3 articles); internal 9–12k guard — pass; audit — pass для three exact slug с **11 758 / 11 981 / 11 747** body chars; XML — pass; SVG safety scan — empty/pass; Sharp — **3 × 375×225**; manual mobile review — pass; duplicate scan — `scannedP112: 3`, `againstP102toP111: 30`, `failures: []`; W3C URL verification — **4 × HTTP 200**.
## Disposition
P112 остаётся завершённым плановым выпуском: итогом может быть лишь `synthetic-plan-hand-off`. Любая будущая работа с реальными target, data, telemetry, profile, benchmark, interpretation, rollout или effect требует собственного authorised scope и не может быть задним числом добавлена в этот выпуск.
## Независимая приёмка — 2026-07-31
### Проход 1 — глубина, источники и границы знания
- Предыдущая краткая версия была отклонена и расширена до 11 758, 11 981 и 11 747 знаков. Новые разделы раскрывают ownership, false proxy, condition ledger, confounders, visibility/TAO, privacy, provenance и separation review/decision, не добавляя вымышленного performance-result.
- Все источники W3C проверены: immutable snapshot Performance Timeline от 2019-03-29 и три датированных W3C публикации 2026 года существуют до cutoff 2026-07-31. Они применены как vocabulary и спецификация visibility, не как evidence о продукте.
- Practice, mechanism и field сохраняют разные вопросы и цену: договор критического пути, опровержимость claim и передача вопроса без отчёта.
### Проход 2 — контракт и редакционный автоматический аудит
- `node --check`, fixture `9/9`, export/deep-freeze check и `npm run audit:draft -- scripts/upgrade-2027-06.mjs` прошли. Единственная accepted ветвь — `synthetic-plan-hand-off`; все пять контрпримеров останавливаются fail-closed, accepted effect — `not-attempted`.
- Три body проходят не только глобальный диапазон 5–15k, но и локальную защиту capstone `9–12k`.
- `xmllint` прошёл без output; SVG safety scan не нашёл executable или active external content.
### Проход 3 — визуал, overlap и выпуск
- Три SVG заново отрендерены и просмотрены на ширине 375 px: контур критического пути, матрица сравнимости и hand-off loop остаются читаемыми без обрезания.
- Strict cross-package scan P102–P112 исключает source section, но включает code. Для 33 статей результат: `collisions: []`.
- В реестр добавлены только три июньские revisions; пользовательские app/data files не включены.