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,13 +1,13 @@
<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">Матрица статусов practice и review</title>
<desc id="desc">Таблица показывает, что prompt не запущен, а observation, review, feedback и progress не собраны или не заявлены. Любое claimed значение прекращает проверку.</desc>
<title id="title">Матрица слоёв валидации</title>
<desc id="desc">Таблица разделяет форму JSON, связь полей, состояние ресурса и право доступа. Для каждого слоя указаны вход и класс ошибки.</desc>
<rect width="1200" height="720" fill="#111827"/>
<text x="60" y="75" fill="#f9fafb" font-family="Arial, sans-serif" font-size="37" font-weight="700">Practice / review: что известно literal, а что нет</text>
<g font-family="Arial, sans-serif" font-size="22">
<rect x="60" y="125" width="1080" height="72" fill="#1d4ed8"/>
<text x="95" y="170" fill="#eff6ff">Поле</text><text x="420" y="170" fill="#eff6ff">Статус P115</text><text x="780" y="170" fill="#eff6ff">Claimed значение</text>
<g fill="#1f2937" stroke="#475569" stroke-width="2"><rect x="60" y="197" width="1080" height="76"/><rect x="60" y="273" width="1080" height="76"/><rect x="60" y="349" width="1080" height="76"/><rect x="60" y="425" width="1080" height="76"/><rect x="60" y="501" width="1080" height="76"/></g>
<g fill="#e5e7eb"><text x="95" y="244">Prompt</text><text x="420" y="244">not-run</text><text x="780" y="244">не доказывает выполнение</text><text x="95" y="320">Observation</text><text x="420" y="320">not-collected</text><text x="780" y="320">stop</text><text x="95" y="396">Review</text><text x="420" y="396">not-collected</text><text x="780" y="396">stop</text><text x="95" y="472">Feedback</text><text x="420" y="472">not-collected</text><text x="780" y="472">stop</text><text x="95" y="548">Progress</text><text x="420" y="548">not-claimed</text><text x="780" y="548">stop</text></g>
<rect x="60" y="622" width="1080" height="48" rx="12" fill="#7f1d1d"/><text x="600" y="654" text-anchor="middle" fill="#fee2e2">Нет reviewer, mentee, feedback, outcome или учебного процесса</text>
<text x="58" y="72" fill="#f9fafb" font-family="Arial, sans-serif" font-size="38" font-weight="700">Валидация: четыре слоя, четыре вопроса</text>
<text x="58" y="110" fill="#cbd5e1" font-family="Arial, sans-serif" font-size="22">JSON Schema не заменяет проверку состояния и авторизацию</text>
<g font-family="Arial, sans-serif" font-size="21">
<rect x="58" y="150" width="1084" height="62" fill="#1d4ed8"/><text x="88" y="190" fill="#eff6ff" font-weight="700">Слой</text><text x="350" y="190" fill="#eff6ff" font-weight="700">Вопрос</text><text x="690" y="190" fill="#eff6ff" font-weight="700">Пример</text><text x="970" y="190" fill="#eff6ff" font-weight="700">Ошибка</text>
<g stroke="#475569" stroke-width="2"><rect x="58" y="212" width="1084" height="76" fill="#1f2937"/><rect x="58" y="288" width="1084" height="76" fill="#243248"/><rect x="58" y="364" width="1084" height="76" fill="#1f2937"/><rect x="58" y="440" width="1084" height="76" fill="#243248"/></g>
<g fill="#e5e7eb"><text x="88" y="258" font-weight="700">Форма</text><text x="350" y="258">JSON читается?</text><text x="690" y="258">limit: integer</text><text x="970" y="258">400</text><text x="88" y="334" font-weight="700">Инвариант</text><text x="350" y="334">Поля согласованы?</text><text x="690" y="334">from ≤ to</text><text x="970" y="334">400</text><text x="88" y="410" font-weight="700">Состояние</text><text x="350" y="410">Ресурс ещё тот?</text><text x="690" y="410">revision совпала</text><text x="970" y="410">409</text><text x="88" y="486" font-weight="700">Право</text><text x="350" y="486">Можно менять?</text><text x="690" y="486">роль + ресурс</text><text x="970" y="486">403</text></g>
<rect x="58" y="560" width="1084" height="76" rx="16" fill="#14532d"/><text x="600" y="607" text-anchor="middle" fill="#dcfce7" font-weight="700">Слой определяет вход, сообщение и следующий шаг клиента</text>
</g>
</svg>

Before

Width:  |  Height:  |  Size: 2.1 KiB

After

Width:  |  Height:  |  Size: 2.6 KiB