Files
progcode/web/public/assets/editorial/2025/engineering-automation-2025-dry-run-evidence-loop.svg
T
huncode fa6d1c3eac
Build and deploy / deploy (push) Successful in 15s
revise May 2025 engineering automation articles
2026-07-31 17:48:51 +03:00

61 lines
4.7 KiB
XML
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 375 860" role="img" aria-labelledby="title desc">
<title id="title">Петля evidence для инженерной автоматизации</title>
<desc id="desc">Вертикальная петля показывает, как preview и dry-run создают evidence, authority и approval проверяют scope, execute и audit trail фиксируют попытку, а verification наблюдает target. Красная ветка создаёт только rollback plan.</desc>
<rect width="375" height="860" fill="#0b1220"/>
<text x="22" y="33" fill="#f8fafc" font-family="Arial, sans-serif" font-size="18" font-weight="700">Evidence loop, а не «зелёный job»</text>
<text x="22" y="54" fill="#a5b4fc" font-family="Arial, sans-serif" font-size="12">Каждая карточка отвечает на другой вопрос</text>
<g font-family="Arial, sans-serif">
<g>
<rect x="24" y="82" width="327" height="78" rx="12" fill="#172554" stroke="#60a5fa"/>
<text x="42" y="110" fill="#dbeafe" font-size="15" font-weight="700">PREVIEW / DRY-RUN</text>
<text x="42" y="132" fill="#bfdbfe" font-size="12">что предлагается; какой источник</text>
<text x="42" y="148" fill="#bfdbfe" font-size="12">и какая side-effect boundary</text>
</g>
<path d="M187 160v22" stroke="#60a5fa" stroke-width="2"/>
<path d="M182 177l5 6 5-6" fill="none" stroke="#60a5fa" stroke-width="2"/>
<g>
<rect x="24" y="190" width="327" height="78" rx="12" fill="#172554" stroke="#60a5fa"/>
<text x="42" y="218" fill="#dbeafe" font-size="15" font-weight="700">SCOPE + AUTHORITY</text>
<text x="42" y="240" fill="#bfdbfe" font-size="12">exact ids, digest, selector, max count</text>
<text x="42" y="256" fill="#bfdbfe" font-size="12">scope wider than limit → STOP</text>
</g>
<path d="M187 268v22" stroke="#60a5fa" stroke-width="2"/>
<path d="M182 285l5 6 5-6" fill="none" stroke="#60a5fa" stroke-width="2"/>
<g>
<rect x="24" y="298" width="327" height="78" rx="12" fill="#172554" stroke="#60a5fa"/>
<text x="42" y="326" fill="#dbeafe" font-size="15" font-weight="700">APPROVAL BINDING</text>
<text x="42" y="348" fill="#bfdbfe" font-size="12">operation + preview + target + authority</text>
<text x="42" y="364" fill="#bfdbfe" font-size="12">digest mismatch → STOP</text>
</g>
<path d="M187 376v22" stroke="#34d399" stroke-width="2"/>
<path d="M182 393l5 6 5-6" fill="none" stroke="#34d399" stroke-width="2"/>
<g>
<rect x="24" y="406" width="327" height="76" rx="12" fill="#123524" stroke="#34d399"/>
<text x="42" y="434" fill="#d1fae5" font-size="15" font-weight="700">EXECUTE + AUDIT EVENT</text>
<text x="42" y="456" fill="#a7f3d0" font-size="12">attempt recorded with links and result</text>
<text x="42" y="472" fill="#a7f3d0" font-size="12">receipt is not target state</text>
</g>
<path d="M187 482v22" stroke="#fbbf24" stroke-width="2"/>
<path d="M182 499l5 6 5-6" fill="none" stroke="#fbbf24" stroke-width="2"/>
<g>
<rect x="24" y="512" width="327" height="76" rx="12" fill="#3b2f0b" stroke="#fbbf24"/>
<text x="42" y="540" fill="#fef3c7" font-size="15" font-weight="700">INDEPENDENT VERIFY</text>
<text x="42" y="562" fill="#fde68a" font-size="12">authoritative reader compares expected</text>
<text x="42" y="578" fill="#fde68a" font-size="12">and observed state on exact scope</text>
</g>
<path d="M187 588v22" stroke="#fb7185" stroke-width="2"/>
<path d="M182 605l5 6 5-6" fill="none" stroke="#fb7185" stroke-width="2"/>
<g>
<rect x="24" y="618" width="327" height="120" rx="12" fill="#4c1020" stroke="#fb7185" stroke-width="2"/>
<text x="42" y="648" fill="#ffe4e6" font-size="16" font-weight="700">UNKNOWN / MISMATCH → STOP</text>
<text x="42" y="672" fill="#fecdd3" font-size="12">preserve reason and observed subset</text>
<text x="42" y="692" fill="#fecdd3" font-size="12">new inventory → new bounded rollback plan</text>
<text x="42" y="712" fill="#fecdd3" font-size="12">new authority + preview + approval before write</text>
</g>
<path d="M187 738v28c0 12 18 12 18 0v-626" fill="none" stroke="#818cf8" stroke-width="2" stroke-dasharray="5 5"/>
<path d="M200 144l5 -7 5 7" fill="none" stroke="#818cf8" stroke-width="2"/>
</g>
<text x="22" y="807" fill="#c4b5fd" font-family="Arial, sans-serif" font-size="12">Пунктир: новый plan начинается с нового preview и approval.</text>
<text x="22" y="834" fill="#94a3b8" font-family="Arial, sans-serif" font-size="10">Audit = trace; verification = observed state. Они не равны.</text>
</svg>