56 lines
3.8 KiB
XML
56 lines
3.8 KiB
XML
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 480 700" role="img" aria-labelledby="title desc">
|
||
<title id="title">Диагностический маршрут для signal при нагрузочном тестировании</title>
|
||
<desc id="desc">Вертикальный маршрут начинается с error-signal или latency-signal как диагностической метки. Затем проверяет evidence packet, environment drift, пробел сценария и synthetic bottleneck. Каждая карточка содержит обратимое действие. Fixture не измеряет latency.</desc>
|
||
<defs>
|
||
<marker id="arrow" markerWidth="10" markerHeight="10" refX="9" refY="5" orient="auto">
|
||
<path d="M 0 0 L 10 5 L 0 10 z" fill="#486581"/>
|
||
</marker>
|
||
<style>
|
||
.bg { fill: #f8fafc; }
|
||
.title { fill: #102a43; font: 700 25px Arial, sans-serif; }
|
||
.subtitle { fill: #486581; font: 15px Arial, sans-serif; }
|
||
.start { fill: #ebf8ff; stroke: #3182ce; stroke-width: 2; }
|
||
.question { fill: #ffffff; stroke: #829ab1; stroke-width: 2; }
|
||
.drift { fill: #fffaf0; stroke: #dd6b20; stroke-width: 2; }
|
||
.gap { fill: #fff5f5; stroke: #c53030; stroke-width: 2; }
|
||
.boundary { fill: #f0fff4; stroke: #2f855a; stroke-width: 2; }
|
||
.action { fill: #edf2f7; stroke: #486581; stroke-width: 1.5; }
|
||
.label { fill: #102a43; font: 700 17px Arial, sans-serif; }
|
||
.small { fill: #334e68; font: 14px Arial, sans-serif; }
|
||
.tiny { fill: #486581; font: 13px Arial, sans-serif; }
|
||
.arrow { fill: none; stroke: #486581; stroke-width: 2.5; marker-end: url(#arrow); }
|
||
</style>
|
||
</defs>
|
||
<rect class="bg" width="480" height="700" rx="22"/>
|
||
<text class="title" x="30" y="44">Signal не выбирает причину сам</text>
|
||
<text class="subtitle" x="30" y="70">Сначала сохранить evidence, затем сузить гипотезу.</text>
|
||
<text class="tiny" x="30" y="94">Fixture: latency не collected; нет HTTP, tool, server, network или benchmark.</text>
|
||
|
||
<rect class="start" x="30" y="118" width="420" height="70" rx="14"/>
|
||
<text class="label" x="74" y="148">error-signal / latency-signal</text>
|
||
<text class="small" x="94" y="173">диагностическая метка, не verdict</text>
|
||
|
||
<path class="arrow" d="M 240 188 L 240 218"/>
|
||
<rect class="question" x="30" y="224" width="420" height="78" rx="14"/>
|
||
<text class="label" x="78" y="254">Evidence packet complete?</text>
|
||
<text class="small" x="60" y="280">endpoint · environment · data · profile · stop criterion</text>
|
||
|
||
<path class="arrow" d="M 240 302 L 240 332"/>
|
||
<rect class="drift" x="30" y="338" width="420" height="82" rx="14"/>
|
||
<text class="label" x="54" y="368">1. Environment drift?</text>
|
||
<text class="small" x="54" y="393">Identity или constraint отличаются от declared envelope.</text>
|
||
<text class="tiny" x="54" y="412">Rollback-safe: вернуться к manifest; не менять endpoint.</text>
|
||
|
||
<path class="arrow" d="M 240 420 L 240 450"/>
|
||
<rect class="gap" x="30" y="456" width="420" height="82" rx="14"/>
|
||
<text class="label" x="54" y="486">2. Scenario gap?</text>
|
||
<text class="small" x="54" y="511">Нет route, data identity, segment или stop criterion.</text>
|
||
<text class="tiny" x="54" y="530">Rollback-safe: восстановить карточку и evidence packet.</text>
|
||
|
||
<path class="arrow" d="M 240 538 L 240 568"/>
|
||
<rect class="boundary" x="30" y="574" width="420" height="92" rx="14"/>
|
||
<text class="label" x="54" y="604">3. Synthetic boundary?</text>
|
||
<text class="small" x="54" y="629">Flag в step и units согласованы с planned slots.</text>
|
||
<text class="tiny" x="54" y="650">Rollback-safe: изменить один field; сохранить packet.</text>
|
||
</svg>
|