Files
progcode/web/public/assets/editorial/2025/ai-code-verification-2025-risk-detection-matrix.svg
T
huncode 8a27f0f966
Build and deploy / deploy (push) Successful in 15s
revise February 2025 AI code verification articles
2026-07-31 17:20:09 +03:00

67 lines
7.6 KiB
XML

<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 1200 800" role="img" aria-labelledby="title desc">
<title id="title">Матрица риск и способ обнаружения</title>
<desc id="desc">Таблица сопоставляет четыре риска с контрактом, статической проверкой, узким тестом, human review и ручным воспроизведением. Отмеченные клетки означают применимое свидетельство, а не гарантию.</desc>
<rect width="1200" height="800" fill="#f8fafc"/>
<text x="58" y="58" fill="#0f172a" font-family="Arial, sans-serif" font-size="37" font-weight="700">Risk → detecting evidence</text>
<text x="58" y="94" fill="#475569" font-family="Arial, sans-serif" font-size="24">✓ — способ может дать релевантное evidence; пустая клетка не означает, что риска нет.</text>
<rect x="52" y="130" width="300" height="100" fill="#e2e8f0" stroke="#94a3b8" stroke-width="2"/>
<rect x="352" y="130" width="150" height="100" fill="#dbeafe" stroke="#94a3b8" stroke-width="2"/>
<rect x="502" y="130" width="150" height="100" fill="#dcfce7" stroke="#94a3b8" stroke-width="2"/>
<rect x="652" y="130" width="150" height="100" fill="#fef3c7" stroke="#94a3b8" stroke-width="2"/>
<rect x="802" y="130" width="150" height="100" fill="#f3e8ff" stroke="#94a3b8" stroke-width="2"/>
<rect x="952" y="130" width="196" height="100" fill="#fee2e2" stroke="#94a3b8" stroke-width="2"/>
<text x="82" y="188" fill="#0f172a" font-family="Arial, sans-serif" font-size="29" font-weight="700">Риск</text>
<text x="382" y="174" fill="#1e3a8a" font-family="Arial, sans-serif" font-size="25" font-weight="700">Contract</text>
<text x="385" y="205" fill="#1e3a8a" font-family="Arial, sans-serif" font-size="22">check</text>
<text x="530" y="174" fill="#166534" font-family="Arial, sans-serif" font-size="25" font-weight="700">Static</text>
<text x="526" y="205" fill="#166534" font-family="Arial, sans-serif" font-size="22">check</text>
<text x="677" y="174" fill="#92400e" font-family="Arial, sans-serif" font-size="25" font-weight="700">Focused</text>
<text x="696" y="205" fill="#92400e" font-family="Arial, sans-serif" font-size="22">test</text>
<text x="827" y="174" fill="#6b21a8" font-family="Arial, sans-serif" font-size="25" font-weight="700">Human</text>
<text x="828" y="205" fill="#6b21a8" font-family="Arial, sans-serif" font-size="22">review</text>
<text x="977" y="174" fill="#991b1b" font-family="Arial, sans-serif" font-size="23" font-weight="700">Manual</text>
<text x="970" y="205" fill="#991b1b" font-family="Arial, sans-serif" font-size="21">scenario</text>
<g font-family="Arial, sans-serif">
<rect x="52" y="230" width="300" height="108" fill="#ffffff" stroke="#cbd5e1" stroke-width="2"/>
<text x="78" y="277" fill="#0f172a" font-size="27" font-weight="700">Публичное поле</text>
<text x="78" y="309" fill="#334155" font-size="24">переименовано</text>
<rect x="352" y="230" width="150" height="108" fill="#bfdbfe" stroke="#cbd5e1" stroke-width="2"/><text x="412" y="297" fill="#1d4ed8" font-size="44">✓</text>
<rect x="502" y="230" width="150" height="108" fill="#bbf7d0" stroke="#cbd5e1" stroke-width="2"/><text x="562" y="297" fill="#15803d" font-size="44">✓</text>
<rect x="652" y="230" width="150" height="108" fill="#fde68a" stroke="#cbd5e1" stroke-width="2"/><text x="712" y="297" fill="#b45309" font-size="44">✓</text>
<rect x="802" y="230" width="150" height="108" fill="#e9d5ff" stroke="#cbd5e1" stroke-width="2"/><text x="862" y="297" fill="#7e22ce" font-size="44">✓</text>
<rect x="952" y="230" width="196" height="108" fill="#fecdd3" stroke="#cbd5e1" stroke-width="2"/><text x="1030" y="297" fill="#be123c" font-size="44">✓</text>
<rect x="52" y="338" width="300" height="108" fill="#ffffff" stroke="#cbd5e1" stroke-width="2"/>
<text x="78" y="385" fill="#0f172a" font-size="27" font-weight="700">Вход мутирован</text>
<text x="78" y="417" fill="#334155" font-size="24">в preview path</text>
<rect x="352" y="338" width="150" height="108" fill="#bfdbfe" stroke="#cbd5e1" stroke-width="2"/><text x="412" y="405" fill="#1d4ed8" font-size="44">✓</text>
<rect x="502" y="338" width="150" height="108" fill="#bbf7d0" stroke="#cbd5e1" stroke-width="2"/><text x="562" y="405" fill="#15803d" font-size="44">✓</text>
<rect x="652" y="338" width="150" height="108" fill="#fde68a" stroke="#cbd5e1" stroke-width="2"/><text x="712" y="405" fill="#b45309" font-size="44">✓</text>
<rect x="802" y="338" width="150" height="108" fill="#e9d5ff" stroke="#cbd5e1" stroke-width="2"/><text x="862" y="405" fill="#7e22ce" font-size="44">✓</text>
<rect x="952" y="338" width="196" height="108" fill="#fecdd3" stroke="#cbd5e1" stroke-width="2"/><text x="1030" y="405" fill="#be123c" font-size="44">✓</text>
<rect x="52" y="446" width="300" height="108" fill="#ffffff" stroke="#cbd5e1" stroke-width="2"/>
<text x="78" y="493" fill="#0f172a" font-size="27" font-weight="700">Missing role</text>
<text x="78" y="525" fill="#334155" font-size="24">получает доступ</text>
<rect x="352" y="446" width="150" height="108" fill="#bfdbfe" stroke="#cbd5e1" stroke-width="2"/><text x="412" y="513" fill="#1d4ed8" font-size="44">✓</text>
<rect x="502" y="446" width="150" height="108" fill="#bbf7d0" stroke="#cbd5e1" stroke-width="2"/><text x="562" y="513" fill="#15803d" font-size="44">✓</text>
<rect x="652" y="446" width="150" height="108" fill="#fde68a" stroke="#cbd5e1" stroke-width="2"/><text x="712" y="513" fill="#b45309" font-size="44">✓</text>
<rect x="802" y="446" width="150" height="108" fill="#e9d5ff" stroke="#cbd5e1" stroke-width="2"/><text x="862" y="513" fill="#7e22ce" font-size="44">✓</text>
<rect x="952" y="446" width="196" height="108" fill="#fecdd3" stroke="#cbd5e1" stroke-width="2"/><text x="1030" y="513" fill="#be123c" font-size="44">✓</text>
<rect x="52" y="554" width="300" height="108" fill="#ffffff" stroke="#cbd5e1" stroke-width="2"/>
<text x="78" y="601" fill="#0f172a" font-size="27" font-weight="700">Security context</text>
<text x="78" y="633" fill="#334155" font-size="24">не описан</text>
<rect x="352" y="554" width="150" height="108" fill="#e2e8f0" stroke="#cbd5e1" stroke-width="2"/><text x="415" y="621" fill="#64748b" font-size="38">?</text>
<rect x="502" y="554" width="150" height="108" fill="#e2e8f0" stroke="#cbd5e1" stroke-width="2"/><text x="565" y="621" fill="#64748b" font-size="38">?</text>
<rect x="652" y="554" width="150" height="108" fill="#e2e8f0" stroke="#cbd5e1" stroke-width="2"/><text x="715" y="621" fill="#64748b" font-size="38">?</text>
<rect x="802" y="554" width="150" height="108" fill="#e9d5ff" stroke="#cbd5e1" stroke-width="2"/><text x="862" y="621" fill="#7e22ce" font-size="44">✓</text>
<rect x="952" y="554" width="196" height="108" fill="#e2e8f0" stroke="#cbd5e1" stroke-width="2"/><text x="1030" y="621" fill="#64748b" font-size="38">?</text>
</g>
<rect x="52" y="696" width="1096" height="76" rx="12" fill="#fff7ed" stroke="#fb923c" stroke-width="2"/>
<text x="76" y="728" fill="#9a3412" font-family="Arial, sans-serif" font-size="25" font-weight="700">? = нужен внешний context или отдельное authority.</text>
<text x="76" y="758" fill="#9a3412" font-family="Arial, sans-serif" font-size="25" font-weight="700">Матрица не обещает security или correctness.</text>
</svg>