# P102 — August 2026: «End-to-end наблюдаемость» ## Статус и фактическая граница Это изолированный draft-пакет. На дату подготовки — **31 июля 2026** — август ещё не наступил. Поэтому все три текста прямо оформлены как план/сценарий на август 2026, а не как field report, внедрение, измерение, публикация или результат production-наблюдаемости. Это обязательное применение риска Р-Ф из очереди. Разрешённый положительный результат кода — только `synthetic-observability-plan-hand-off`. Он не выполняет release, deployment, approval, доступ к production, чтение сети, файлов, секретов, браузера, очереди или telemetry backend. Во всех accepted result присутствует `productionEffect: not-attempted`. ## Исследование источников до cutoff 1. [OpenTelemetry Specification, immutable commit `c6520a73287040ca16499cba62cea1b3508dc4da`](https://github.com/open-telemetry/opentelemetry-specification/tree/c6520a73287040ca16499cba62cea1b3508dc4da), Release 1.29.0, 11 January 2024. Локально проверены pinned `specification/trace/api.md`: API содержит `SpanContext`, `TraceId` и определение parent context; pinned `specification/metrics/data-model.md` описывает удаление attributes и re-aggregation с меньшим набором attributes. Граница вывода: спецификация даёт терминологию и варианты обработки данных, но не подтверждает наличие SDK, collector, pipeline, telemetry или safety конкретного продукта. 2. [W3C Trace Context, dated Recommendation 23 November 2021](https://www.w3.org/TR/2021/REC-trace-context-1-20211123/). Локально проверены дата документа, `traceparent`, `trace-id`, `parent-id`, требование переносить `traceparent`/`tracestate`, а также разделы privacy/security considerations. Граница вывода: документ задаёт переносимый HTTP context; он не доказывает прохождение context через конкретные UI, API, queue или worker и не даёт право передавать персональные данные. Ни один source claim не зависит от факта после 2026-07-31. Исторические факты отделены от моей модели fixed literals. ## Review pass 1 — проблема, плотность, голос, независимость - **Practice** начинает с утраты correlation на API → worker и цены в виде невозможности различить очередь, API и worker. Угол статьи — карта проектирования: один путь, разные trace/log/metric роли, ownership schema и запретные поля. - **Mechanism** начинает с ложной причинной истории из совпадающих имён сигналов. Угол — пределы вывода: propagation, error classes, time boundary, cardinality и sampling как независимые решения. - **Field** начинается с небезопасного hand-off без data boundary. Угол — будущий, безопасный сценарий передачи evidence/retention-вопроса; это не production report. - Общие формулировки убраны из открывающих абзацев. Тон M9: короткие утверждения, named boundaries, stop вместо уверенной риторики, без benchmark, incident или claim о внедрении. - Основной текст: 10 029 / 9 775 / 9 553 знака. Каждая статья в диапазоне 5 000–15 000 и в целевом M9 диапазоне 9 000–13 000. ## Review pass 2 — факты, Р-Ф и literal execution - В `web/scripts/upgrade-2026-08.mjs` все данные — named fixed synthetic literals; factory применяет JSON clone и deep freeze. - Literal snippets выполнены через public exports. Получены именно заявленные статусы: `synthetic-observability-plan-hand-off`, `stop-broken-correlation-context`, `stop-forbidden-signal-field`. - Fixture: 6/6. Он проверяет hand-off без production effect, три signal entries, fail-closed отсутствие worker context, запрет `email` и disallowed positive result. - Code не использует часы, сеть, файлы, env, браузер, SDK, queue, collector или secrets. В источниках и тексте нет утверждений о факте августа. - Три статьи содержат отдельную доступную HTML-таблицу, SVG с русским alt/caption, literal executable example, ordered actions, limitations и следующий шаг. ## Review pass 3 — публикационное качество, mobile SVG, уникальность - XML валиден для трёх SVG; safety surface scan не нашёл `script`, `foreignObject`, `javascript:`, `data:image` или event handlers. - Каждый SVG отрендерен Sharp в 375 px и визуально проверен. После первой мобильной проверки в графике cardinality сокращён обрезавшийся заголовок, а в investigation loop сокращена нижняя подпись. Итог: текст читается, стрелки и подписи не обрезаны. - Figures не декоративны: signal map фиксирует ownership по границе; tradeoff разъединяет sampling и cardinality; loop показывает допустимый hand-off и stop. - Строгая pairwise проверка исключает source lists и включает code: во всех трёх парах `exactParagraphs160: 0`, `common12WordFragments: 0`. ## Команды локальной проверки Запуск из `web/`: ```sh node --check scripts/upgrade-2026-08.mjs node scripts/upgrade-2026-08.mjs --verify-fixture npm run audit:draft -- scripts/upgrade-2026-08.mjs node --input-type=module -e "import { createFixedObservabilityPlan, reviewFixedObservabilityHandOff, reviewFixedSignalBoundary } from './scripts/upgrade-2026-08.mjs'; const a=reviewFixedObservabilityHandOff(createFixedObservabilityPlan('ui-api-worker-plan-v1')); const b=reviewFixedSignalBoundary(createFixedObservabilityPlan('missing-worker-context-v1')); const c=reviewFixedObservabilityHandOff(createFixedObservabilityPlan('personal-field-v1')); console.log(a.status, b.status, c.status);" xmllint --noout public/assets/editorial/2026/end-to-end-observability-2026-signal-boundary-map.svg public/assets/editorial/2026/end-to-end-observability-2026-cardinality-sampling-tradeoff.svg public/assets/editorial/2026/end-to-end-observability-2026-investigation-evidence-loop.svg ``` Результат: syntax pass; fixture `6/6`; audit pass для всех трёх статей; literal statuses совпадают с комментариями; SVG XML pass. ## Disposition Draft готов к отдельной независимой приёмке. Registry, README, application files, articles JSON, production queue, staging, commit, push и любые Git-команды намеренно не выполнялись. ## Независимая приёмка основного редактора — 31.07.2026 Принято как **плановая августовская партия**, не как описание совершившейся работы. Во всех трёх текстах сохранены явные `2026-08` и cutoff `2026-07-31`; единственный положительный результат — `synthetic-observability-plan-hand-off` c `productionEffect: not-attempted`. Поэтому публикация не создаёт легенду о production-наблюдаемости в ещё не наступившем месяце. Повторно проверены первоисточники в их зафиксированных версиях: W3C Recommendation от 23.11.2021 задаёт `traceparent`, `trace-id`, `parent-id` и разделы privacy/security; pinned OpenTelemetry source задаёт `SpanContext`/`TraceId` и допускает re-aggregation метрик при меньшем наборе attributes. Из них сделаны только словарные и модельные выводы — не вывод о наличии pipeline, SDK, collector, telemetry backend или доступа к данным конкретного продукта. Три SVG прошли XML и safety-scan; их PNG-рендеры осмотрены на ширине 375 px: подписи, стрелки и границы читаемы, обрезания нет. Повторные локальные проверки: syntax, fixture `6/6`, draft audit и audit статей; literal checks возвращают `synthetic-observability-plan-hand-off`, `stop-broken-correlation-context`, `stop-forbidden-signal-field` и `stop-disallowed-positive-result` на соответствующих fixed inputs. Строгий cross-article scan, включая code и исключая source lists, дал ноль совпадающих абзацев от 160 символов и ноль общих 12-словных фрагментов во всех трёх парах. В registry добавлены только три ревизии августа; пользовательские application-файлы, `articles.json`, production queue и остальная незакоммиченная работа в приёмку не включены.