revise April 2025 AI data privacy articles
Build and deploy / deploy (push) Successful in 19s

This commit is contained in:
2026-07-31 17:42:56 +03:00
parent 249dd850a4
commit 4930c69d90
7 changed files with 1136 additions and 1 deletions
@@ -0,0 +1,55 @@
<svg xmlns="http://www.w3.org/2000/svg" width="760" height="1060" viewBox="0 0 760 1060" role="img" aria-labelledby="title desc">
<title id="title">Матрица допустимости синтетического контекста</title>
<desc id="desc">Четыре синтетические записи различаются по классу, rule, retention label, egress gate и human authorization. Только первая имеет полный fixed набор свидетельств, но всё равно не отправляется наружу.</desc>
<rect width="760" height="1060" rx="32" fill="#111827"/>
<text x="40" y="60" fill="#f8fafc" font-family="Arial, sans-serif" font-size="30" font-weight="700">Матрица: что именно допускается к hand-off</text>
<text x="40" y="94" fill="#cbd5e1" font-family="Arial, sans-serif" font-size="19">Все строки — fixed synthetic labels, не классификация реальных данных.</text>
<rect x="34" y="128" width="692" height="82" rx="12" fill="#1e3a5f"/>
<g fill="#dbeafe" font-family="Arial, sans-serif" font-size="18" font-weight="700">
<text x="52" y="161">Запись</text><text x="202" y="161">Класс</text><text x="344" y="161">Rule</text><text x="486" y="161">Gate</text><text x="622" y="161">Итог</text>
<text x="52" y="190">и label</text><text x="202" y="190">данных</text><text x="344" y="190">+ retention</text><text x="486" y="190">+ authority</text><text x="622" y="190">модели</text>
</g>
<rect x="34" y="228" width="692" height="144" rx="14" fill="#173a2a"/>
<g font-family="Arial, sans-serif" font-size="18">
<text x="52" y="268" fill="#f0fdf4" font-weight="700">public-summary</text><text x="52" y="296" fill="#bbf7d0">v1</text>
<text x="202" y="268" fill="#bbf7d0">synthetic</text><text x="202" y="296" fill="#bbf7d0">public</text>
<text x="344" y="268" fill="#bbf7d0">allow +</text><text x="344" y="296" fill="#bbf7d0">contract label</text>
<text x="486" y="268" fill="#bbf7d0">scope +</text><text x="486" y="296" fill="#bbf7d0">valid auth</text>
<text x="622" y="282" fill="#86efac" font-weight="700">handoff</text><text x="622" y="310" fill="#86efac">only</text>
</g>
<rect x="34" y="390" width="692" height="144" rx="14" fill="#422006"/>
<g font-family="Arial, sans-serif" font-size="18">
<text x="52" y="430" fill="#fff7ed" font-weight="700">internal-note</text><text x="52" y="458" fill="#fed7aa">v2</text>
<text x="202" y="430" fill="#fed7aa">synthetic</text><text x="202" y="458" fill="#fed7aa">internal</text>
<text x="344" y="430" fill="#fed7aa">review</text><text x="344" y="458" fill="#fbbf24">not settled</text>
<text x="486" y="430" fill="#fed7aa">scope</text><text x="486" y="458" fill="#fed7aa">not enough</text>
<text x="622" y="444" fill="#fbbf24" font-weight="700">stop</text><text x="622" y="472" fill="#fbbf24">policy</text>
</g>
<rect x="34" y="552" width="692" height="144" rx="14" fill="#3f1d2e"/>
<g font-family="Arial, sans-serif" font-size="18">
<text x="52" y="592" fill="#fff1f2" font-weight="700">log-shape</text><text x="52" y="620" fill="#fecdd3">v1</text>
<text x="202" y="592" fill="#fecdd3">synthetic</text><text x="202" y="620" fill="#fecdd3">restricted</text>
<text x="344" y="592" fill="#fecdd3">deny +</text><text x="344" y="620" fill="#fb7185">no retention</text>
<text x="486" y="592" fill="#fecdd3">authority</text><text x="486" y="620" fill="#fecdd3">cannot override</text>
<text x="622" y="606" fill="#fb7185" font-weight="700">stop</text><text x="622" y="634" fill="#fb7185">class</text>
</g>
<rect x="34" y="714" width="692" height="144" rx="14" fill="#312e81"/>
<g font-family="Arial, sans-serif" font-size="18">
<text x="52" y="754" fill="#eef2ff" font-weight="700">ticket-shape</text><text x="52" y="782" fill="#c7d2fe">v1</text>
<text x="202" y="754" fill="#c7d2fe">synthetic</text><text x="202" y="782" fill="#c7d2fe">personal-data</text>
<text x="344" y="754" fill="#c7d2fe">deny +</text><text x="344" y="782" fill="#c4b5fd">no retention</text>
<text x="486" y="754" fill="#c7d2fe">expired</text><text x="486" y="782" fill="#c7d2fe">auth</text>
<text x="622" y="768" fill="#c4b5fd" font-weight="700">stop</text><text x="622" y="796" fill="#c4b5fd">expiry</text>
</g>
<line x1="38" y1="896" x2="722" y2="896" stroke="#475569" stroke-width="2"/>
<text x="42" y="940" fill="#f8fafc" font-family="Arial, sans-serif" font-size="24" font-weight="700">Решение = class ∩ rule/contract ∩ egress ∩ authority</text>
<text x="42" y="977" fill="#cbd5e1" font-family="Arial, sans-serif" font-size="20">«Handoff» означает только готовность задать следующий вопрос владельцу.</text>
<rect x="42" y="998" width="676" height="34" rx="10" fill="#0f172a" stroke="#64748b"/>
<text x="58" y="1022" fill="#e2e8f0" font-family="Arial, sans-serif" font-size="18">Контракт или UI setting не заменяют техническую и человеческую границы.</text>
</svg>

After

Width:  |  Height:  |  Size: 5.1 KiB

@@ -0,0 +1,58 @@
<svg xmlns="http://www.w3.org/2000/svg" width="760" height="1040" viewBox="0 0 760 1040" role="img" aria-labelledby="title desc">
<title id="title">Пять границ перед передачей синтетического контекста в AI-инструмент</title>
<desc id="desc">Вертикальная схема отделяет классификацию данных, условие допустимости, контракт retention, технический egress и человеческое разрешение. Красная ветка останавливает передачу до внешней границы.</desc>
<defs>
<marker id="arrow-context" markerWidth="12" markerHeight="12" refX="10" refY="6" orient="auto">
<path d="M0,0 L12,6 L0,12 Z" fill="#475569"/>
</marker>
<marker id="stop-context" markerWidth="12" markerHeight="12" refX="10" refY="6" orient="auto">
<path d="M0,0 L12,6 L0,12 Z" fill="#be123c"/>
</marker>
</defs>
<rect width="760" height="1040" rx="32" fill="#f8fafc"/>
<text x="44" y="56" fill="#0f172a" font-family="Arial, sans-serif" font-size="28" font-weight="700">Перед AI-границей —</text>
<text x="44" y="88" fill="#0f172a" font-family="Arial, sans-serif" font-size="28" font-weight="700">пять отдельных вопросов</text>
<text x="44" y="116" fill="#475569" font-family="Arial, sans-serif" font-size="18">Один allow-list, DPA или UI setting не отвечает на все пять.</text>
<rect x="44" y="132" width="672" height="118" rx="18" fill="#e0f2fe" stroke="#0284c7" stroke-width="3"/>
<circle cx="82" cy="173" r="21" fill="#0ea5e9"/>
<text x="75" y="181" fill="#ffffff" font-family="Arial, sans-serif" font-size="22" font-weight="700">1</text>
<text x="122" y="171" fill="#0c4a6e" font-family="Arial, sans-serif" font-size="27" font-weight="700">Класс данных</text>
<text x="122" y="204" fill="#164e63" font-family="Arial, sans-serif" font-size="19">Что это: public, internal, restricted</text>
<text x="122" y="230" fill="#164e63" font-family="Arial, sans-serif" font-size="19">или другой локальный label?</text>
<line x1="380" y1="252" x2="380" y2="278" stroke="#475569" stroke-width="4" marker-end="url(#arrow-context)"/>
<rect x="44" y="284" width="672" height="118" rx="18" fill="#ecfccb" stroke="#65a30d" stroke-width="3"/>
<circle cx="82" cy="325" r="21" fill="#84cc16"/>
<text x="75" y="333" fill="#365314" font-family="Arial, sans-serif" font-size="22" font-weight="700">2</text>
<text x="122" y="323" fill="#365314" font-family="Arial, sans-serif" font-size="27" font-weight="700">Допустимость и retention</text>
<text x="122" y="356" fill="#3f6212" font-family="Arial, sans-serif" font-size="19">Какое правило и contract нужны?</text>
<text x="122" y="384" fill="#3f6212" font-family="Arial, sans-serif" font-size="19">Retention и training проверяют отдельно.</text>
<line x1="380" y1="404" x2="380" y2="430" stroke="#475569" stroke-width="4" marker-end="url(#arrow-context)"/>
<rect x="44" y="436" width="672" height="118" rx="18" fill="#fef3c7" stroke="#d97706" stroke-width="3"/>
<circle cx="82" cy="477" r="21" fill="#f59e0b"/>
<text x="75" y="485" fill="#78350f" font-family="Arial, sans-serif" font-size="22" font-weight="700">3</text>
<text x="122" y="475" fill="#78350f" font-family="Arial, sans-serif" font-size="27" font-weight="700">Технический egress</text>
<text x="122" y="508" fill="#92400e" font-family="Arial, sans-serif" font-size="19">Разрешён ли этот destination</text>
<text x="122" y="536" fill="#92400e" font-family="Arial, sans-serif" font-size="19">и маршрут, а не только продукт?</text>
<line x1="380" y1="556" x2="380" y2="582" stroke="#475569" stroke-width="4" marker-end="url(#arrow-context)"/>
<rect x="44" y="588" width="672" height="118" rx="18" fill="#f3e8ff" stroke="#9333ea" stroke-width="3"/>
<circle cx="82" cy="629" r="21" fill="#a855f7"/>
<text x="75" y="637" fill="#ffffff" font-family="Arial, sans-serif" font-size="22" font-weight="700">4</text>
<text x="122" y="627" fill="#581c87" font-family="Arial, sans-serif" font-size="27" font-weight="700">Human authorization</text>
<text x="122" y="660" fill="#6b21a8" font-family="Arial, sans-serif" font-size="19">Кто разрешил именно этот scope,</text>
<text x="122" y="688" fill="#6b21a8" font-family="Arial, sans-serif" font-size="19">кому и до какой даты?</text>
<line x1="380" y1="708" x2="380" y2="734" stroke="#475569" stroke-width="4" marker-end="url(#arrow-context)"/>
<rect x="44" y="740" width="672" height="104" rx="18" fill="#dcfce7" stroke="#16a34a" stroke-width="3"/>
<text x="74" y="787" fill="#14532d" font-family="Arial, sans-serif" font-size="27" font-weight="700">5. Только hand-off, не автоматический send</text>
<text x="74" y="814" fill="#166534" font-family="Arial, sans-serif" font-size="19">Пакет фиксирует decision и citation;</text>
<text x="74" y="838" fill="#166534" font-family="Arial, sans-serif" font-size="19">реальный egress остаётся вне модели.</text>
<path d="M44,612 C12,612 12,900 152,900" fill="none" stroke="#be123c" stroke-width="4" marker-end="url(#stop-context)"/>
<rect x="164" y="862" width="552" height="118" rx="18" fill="#fff1f2" stroke="#be123c" stroke-width="3"/>
<text x="194" y="909" fill="#881337" font-family="Arial, sans-serif" font-size="26" font-weight="700">Нет доказательства → safe stop</text>
<text x="194" y="944" fill="#9f1239" font-family="Arial, sans-serif" font-size="19">Не смешивать class, egress и authority.</text>
</svg>

After

Width:  |  Height:  |  Size: 5.8 KiB

@@ -0,0 +1,47 @@
<svg xmlns="http://www.w3.org/2000/svg" width="760" height="1000" viewBox="0 0 760 1000" role="img" aria-labelledby="title desc">
<title id="title">Маршрут review для передачи синтетического AI-контекста</title>
<desc id="desc">Последовательность review начинается с record id и class, затем сверяет contract, egress destination, access и срок human authorization. Любое расхождение идёт в safe stop без внешней отправки.</desc>
<defs>
<marker id="arrow-review" markerWidth="12" markerHeight="12" refX="10" refY="6" orient="auto"><path d="M0,0 L12,6 L0,12 Z" fill="#475569"/></marker>
<marker id="arrow-review-stop" markerWidth="12" markerHeight="12" refX="10" refY="6" orient="auto"><path d="M0,0 L12,6 L0,12 Z" fill="#be123c"/></marker>
</defs>
<rect width="760" height="1000" rx="32" fill="#fffdf8"/>
<text x="42" y="58" fill="#1f2937" font-family="Arial, sans-serif" font-size="30" font-weight="700">Review egress: evidence до действия</text>
<text x="42" y="92" fill="#6b7280" font-family="Arial, sans-serif" font-size="20">Фиксированный учебный маршрут: он не делает реальный request.</text>
<rect x="52" y="126" width="656" height="110" rx="18" fill="#e0f2fe" stroke="#0284c7" stroke-width="3"/>
<text x="82" y="170" fill="#0c4a6e" font-family="Arial, sans-serif" font-size="27" font-weight="700">1. Record и class</text>
<text x="82" y="201" fill="#164e63" font-family="Arial, sans-serif" font-size="19">Сверить id, version, class, allowability</text>
<text x="82" y="226" fill="#164e63" font-family="Arial, sans-serif" font-size="19">и retention label.</text>
<line x1="380" y1="238" x2="380" y2="265" stroke="#475569" stroke-width="4" marker-end="url(#arrow-review)"/>
<rect x="52" y="272" width="656" height="110" rx="18" fill="#ecfccb" stroke="#65a30d" stroke-width="3"/>
<text x="82" y="316" fill="#365314" font-family="Arial, sans-serif" font-size="27" font-weight="700">2. Policy и contract</text>
<text x="82" y="347" fill="#3f6212" font-family="Arial, sans-serif" font-size="19">Проверить rule для class,</text>
<text x="82" y="374" fill="#3f6212" font-family="Arial, sans-serif" font-size="19">не название инструмента.</text>
<line x1="380" y1="384" x2="380" y2="411" stroke="#475569" stroke-width="4" marker-end="url(#arrow-review)"/>
<rect x="52" y="418" width="656" height="110" rx="18" fill="#fef3c7" stroke="#d97706" stroke-width="3"/>
<text x="82" y="462" fill="#78350f" font-family="Arial, sans-serif" font-size="27" font-weight="700">3. Egress gate</text>
<text x="82" y="493" fill="#92400e" font-family="Arial, sans-serif" font-size="18">Destination и route соответствуют scope;</text>
<text x="82" y="518" fill="#92400e" font-family="Arial, sans-serif" font-size="18">allow-list — только один факт.</text>
<line x1="380" y1="530" x2="380" y2="557" stroke="#475569" stroke-width="4" marker-end="url(#arrow-review)"/>
<rect x="52" y="564" width="656" height="110" rx="18" fill="#f3e8ff" stroke="#9333ea" stroke-width="3"/>
<text x="82" y="608" fill="#581c87" font-family="Arial, sans-serif" font-size="27" font-weight="700">4. Access и authorization</text>
<text x="82" y="639" fill="#6b21a8" font-family="Arial, sans-serif" font-size="18">Права requester, owner, scope и expiry</text>
<text x="82" y="664" fill="#6b21a8" font-family="Arial, sans-serif" font-size="18">сходятся на одной записи.</text>
<line x1="380" y1="676" x2="380" y2="703" stroke="#475569" stroke-width="4" marker-end="url(#arrow-review)"/>
<rect x="52" y="710" width="656" height="96" rx="18" fill="#dcfce7" stroke="#16a34a" stroke-width="3"/>
<text x="82" y="751" fill="#14532d" font-family="Arial, sans-serif" font-size="26" font-weight="700">Decision + citation + next owner question</text>
<text x="82" y="776" fill="#166534" font-family="Arial, sans-serif" font-size="18">Только fixed hand-off; egressPerformed</text>
<text x="82" y="800" fill="#166534" font-family="Arial, sans-serif" font-size="18">остаётся false.</text>
<path d="M52,470 C12,470 14,860 176,860" fill="none" stroke="#be123c" stroke-width="4" marker-end="url(#arrow-review-stop)"/>
<rect x="190" y="830" width="518" height="116" rx="18" fill="#fff1f2" stroke="#be123c" stroke-width="3"/>
<text x="220" y="875" fill="#881337" font-family="Arial, sans-serif" font-size="26" font-weight="700">Mismatch → safe stop</text>
<text x="220" y="906" fill="#9f1239" font-family="Arial, sans-serif" font-size="19">Записать reason/citation;</text>
<text x="220" y="932" fill="#9f1239" font-family="Arial, sans-serif" font-size="19">не обходить policy, не делать send.</text>
<text x="52" y="980" fill="#6b7280" font-family="Arial, sans-serif" font-size="18">Ни DPA, ни auth, ни firewall отдельно не равны всему маршруту.</text>
</svg>

After

Width:  |  Height:  |  Size: 5.0 KiB