Files
progcode/editorial/reviews/2027-06-draft.md
T
huncode 659108c398
Build and deploy / deploy (push) Successful in 16s
revise June 2027 performance capstone articles
2026-07-31 20:44:55 +03:00

104 lines
13 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.
# 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 не включены.