rewrite 2026-09 and 2027 articles for reader-facing quality
Build and deploy / deploy (push) Successful in 18s

This commit is contained in:
2026-07-31 22:26:56 +03:00
parent 3bfc3f21c4
commit 440c8721dc
69 changed files with 4424 additions and 3533 deletions
@@ -1,20 +1,15 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 1200 720" role="img" aria-labelledby="title desc">
<title id="title">Матрица рубрики качества инженерного текста</title>
<desc id="desc">Три независимых прохода: evidence, temporal и voice. Каждый требует названный вход; неизвестный вход или заявленный pass приводят к остановке, а не к оценке качества.</desc>
<rect width="1200" height="720" rx="36" fill="#F5F8FC"/>
<text x="65" y="76" fill="#142B45" font-family="Arial, sans-serif" font-size="34" font-weight="700">Три прохода не складываются в общий stamp</text>
<text x="65" y="113" fill="#526B82" font-family="Arial, sans-serif" font-size="22">Каждый проход проверяет свой риск и может остановить hand-off</text>
<svg xmlns="http://www.w3.org/2000/svg" width="1200" height="720" viewBox="0 0 1200 720" role="img" aria-labelledby="title desc">
<title id="title">Матрица web performance metrics</title>
<desc id="desc">Матрица разделяет LCP, INP и CLS по пользовательскому вопросу, порогу и диагностическому разрезу. Один хороший показатель не закрывает остальные.</desc>
<rect width="1200" height="720" rx="36" fill="#f5f8fc"/>
<text x="65" y="76" fill="#142b45" font-family="Arial, sans-serif" font-size="34" font-weight="700">LCP, INP и CLS отвечают на разные вопросы</text>
<text x="65" y="113" fill="#526b82" font-family="Arial, sans-serif" font-size="22">Порог помогает triage, но не называет причину</text>
<g font-family="Arial, sans-serif">
<rect x="65" y="165" width="1070" height="74" rx="14" fill="#193B5D"/>
<text x="100" y="211" fill="#FFFFFF" font-size="23" font-weight="700">Проход</text><text x="355" y="211" fill="#FFFFFF" font-size="23" font-weight="700">Что различает</text><text x="705" y="211" fill="#FFFFFF" font-size="23" font-weight="700">Stop без входа</text>
<rect x="65" y="239" width="1070" height="105" fill="#E8F2FB"/>
<text x="100" y="287" fill="#183A58" font-size="27" font-weight="700">Evidence</text><text x="355" y="280" fill="#254C6C" font-size="22">claim / источник / boundary</text><text x="705" y="280" fill="#A23F48" font-size="21">not-provided</text><text x="705" y="310" fill="#A23F48" font-size="21">не становится verdict</text>
<rect x="65" y="344" width="1070" height="105" fill="#F2F6FA"/>
<text x="100" y="392" fill="#183A58" font-size="27" font-weight="700">Temporal</text><text x="355" y="385" fill="#254C6C" font-size="22">editorial date / plan / cutoff</text><text x="705" y="385" fill="#A23F48" font-size="21">unknown date</text><text x="705" y="415" fill="#A23F48" font-size="21">закрывает маршрут</text>
<rect x="65" y="449" width="1070" height="105" fill="#E8F2FB"/>
<text x="100" y="497" fill="#183A58" font-size="27" font-weight="700">Voice</text><text x="355" y="490" fill="#254C6C" font-size="22">проблема / цена / действие / limit</text><text x="705" y="490" fill="#A23F48" font-size="21">claimed pass</text><text x="705" y="520" fill="#A23F48" font-size="21">не подменяет review</text>
<rect x="65" y="594" width="1070" height="70" rx="18" fill="#1E765D"/>
<text x="101" y="638" fill="#FFFFFF" font-size="26" font-weight="700">Только все named fixed states → synthetic-plan-hand-off</text>
<rect x="65" y="165" width="1070" height="70" rx="14" fill="#193b5d"/><text x="100" y="210" fill="#fff" font-size="23" font-weight="700">Метрика</text><text x="340" y="210" fill="#fff" font-size="23" font-weight="700">Вопрос</text><text x="690" y="210" fill="#fff" font-size="23" font-weight="700">Порог</text><text x="900" y="210" fill="#fff" font-size="23" font-weight="700">Разрез</text>
<rect x="65" y="235" width="1070" height="100" fill="#e8f2fb"/><rect x="65" y="335" width="1070" height="100" fill="#f2f6fa"/><rect x="65" y="435" width="1070" height="100" fill="#e8f2fb"/>
<text x="100" y="295" fill="#183a58" font-size="27" font-weight="700">LCP</text><text x="340" y="288" fill="#254c6c" font-size="21">крупный контент</text><text x="340" y="316" fill="#254c6c" font-size="21">появился?</text><text x="690" y="295" fill="#a23f48" font-size="22">≤ 2500 ms</text><text x="900" y="295" fill="#254c6c" font-size="21">TTFB + resource</text>
<text x="100" y="395" fill="#183a58" font-size="27" font-weight="700">INP</text><text x="340" y="388" fill="#254c6c" font-size="21">клик получил ответ?</text><text x="690" y="395" fill="#a23f48" font-size="22">≤ 200 ms</text><text x="900" y="395" fill="#254c6c" font-size="21">long task</text>
<text x="100" y="495" fill="#183a58" font-size="27" font-weight="700">CLS</text><text x="340" y="488" fill="#254c6c" font-size="21">layout не сдвинулся?</text><text x="690" y="495" fill="#a23f48" font-size="22">≤ 0.1</text><text x="900" y="495" fill="#254c6c" font-size="21">element + space</text>
<rect x="65" y="585" width="1070" height="70" rx="18" fill="#1e765d"/><text x="600" y="630" text-anchor="middle" fill="#fff" font-size="25" font-weight="700">p75 по одинаковому сегменту → затем действие</text>
</g>
<path d="M320 239V554M670 239V554" stroke="#B4C9DC" stroke-width="3"/>
</svg>

Before

Width:  |  Height:  |  Size: 2.9 KiB

After

Width:  |  Height:  |  Size: 2.8 KiB