This commit is contained in:
@@ -0,0 +1,52 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<svg xmlns="http://www.w3.org/2000/svg" width="900" height="1120" viewBox="0 0 900 1120" role="img" aria-labelledby="title desc">
|
||||
<title id="title">Цикл совместимости потребителя и платформенного контракта</title>
|
||||
<desc id="desc">Вертикальный цикл связывает именованный контракт и потребителя через проверку семейства, поверхности, гарантии и escape hatch. Зелёная ветка передаёт только synthetic review hand-off, красные ветки возвращают конкретный статус stop в карточку inventory.</desc>
|
||||
<defs>
|
||||
<marker id="greenArrow" viewBox="0 0 10 10" refX="8" refY="5" markerWidth="8" markerHeight="8" orient="auto">
|
||||
<path d="M 0 0 L 10 5 L 0 10 z" fill="#246B5A"/>
|
||||
</marker>
|
||||
<marker id="redArrow" viewBox="0 0 10 10" refX="8" refY="5" markerWidth="8" markerHeight="8" orient="auto">
|
||||
<path d="M 0 0 L 10 5 L 0 10 z" fill="#B7443E"/>
|
||||
</marker>
|
||||
</defs>
|
||||
<rect width="900" height="1120" fill="#F7FAFC"/>
|
||||
<rect x="34" y="28" width="832" height="96" rx="20" fill="#173B4D"/>
|
||||
<text x="70" y="73" fill="#FFFFFF" font-family="Arial, sans-serif" font-size="34" font-weight="700">Consumer compatibility loop</text>
|
||||
<text x="70" y="103" fill="#C8E8E2" font-family="Arial, sans-serif" font-size="24">сначала сравнимость, потом compatible</text>
|
||||
|
||||
<rect x="108" y="162" width="500" height="110" rx="18" fill="#E9F0FF" stroke="#506FB5" stroke-width="3"/>
|
||||
<text x="142" y="207" fill="#173B4D" font-family="Arial, sans-serif" font-size="30" font-weight="700">1. Named contract</text>
|
||||
<text x="142" y="243" fill="#315366" font-family="Arial, sans-serif" font-size="25">family · version · surface · errors</text>
|
||||
<path d="M358 272 L358 314" stroke="#246B5A" stroke-width="5" marker-end="url(#greenArrow)"/>
|
||||
|
||||
<rect x="108" y="332" width="500" height="110" rx="18" fill="#FFFFFF" stroke="#6F8DA0" stroke-width="3"/>
|
||||
<text x="142" y="377" fill="#173B4D" font-family="Arial, sans-serif" font-size="30" font-weight="700">2. Named consumer</text>
|
||||
<text x="142" y="413" fill="#315366" font-family="Arial, sans-serif" font-size="25">family · supported version · required fields</text>
|
||||
<path d="M358 442 L358 484" stroke="#246B5A" stroke-width="5" marker-end="url(#greenArrow)"/>
|
||||
|
||||
<rect x="108" y="502" width="500" height="110" rx="18" fill="#FFF6DD" stroke="#A66E12" stroke-width="3"/>
|
||||
<text x="142" y="547" fill="#5B4210" font-family="Arial, sans-serif" font-size="30" font-weight="700">3. Compare family</text>
|
||||
<text x="142" y="583" fill="#5B4210" font-family="Arial, sans-serif" font-size="25">different family → stop before fields</text>
|
||||
<path d="M358 612 L358 654" stroke="#246B5A" stroke-width="5" marker-end="url(#greenArrow)"/>
|
||||
|
||||
<rect x="108" y="672" width="500" height="110" rx="18" fill="#FFFFFF" stroke="#6F8DA0" stroke-width="3"/>
|
||||
<text x="142" y="717" fill="#173B4D" font-family="Arial, sans-serif" font-size="30" font-weight="700">4. Check surface</text>
|
||||
<text x="142" y="753" fill="#315366" font-family="Arial, sans-serif" font-size="25">fields · guarantees · documented hatch</text>
|
||||
<path d="M358 782 L358 824" stroke="#246B5A" stroke-width="5" marker-end="url(#greenArrow)"/>
|
||||
|
||||
<rect x="108" y="842" width="500" height="110" rx="18" fill="#EAF4F1" stroke="#246B5A" stroke-width="3"/>
|
||||
<text x="142" y="887" fill="#173B4D" font-family="Arial, sans-serif" font-size="30" font-weight="700">5. Synthetic hand-off</text>
|
||||
<text x="142" y="923" fill="#315366" font-family="Arial, sans-serif" font-size="25">status + reasons + next action</text>
|
||||
|
||||
<rect x="640" y="495" width="210" height="202" rx="18" fill="#FFF0EE" stroke="#B7443E" stroke-width="3"/>
|
||||
<text x="667" y="539" fill="#8B2C27" font-family="Arial, sans-serif" font-size="25" font-weight="700">STOP card</text>
|
||||
<text x="667" y="581" fill="#8B2C27" font-family="Arial, sans-serif" font-size="22">incomparable</text>
|
||||
<text x="667" y="612" fill="#8B2C27" font-family="Arial, sans-serif" font-size="22">incompatible</text>
|
||||
<text x="667" y="643" fill="#8B2C27" font-family="Arial, sans-serif" font-size="22">implicit</text>
|
||||
<text x="667" y="674" fill="#8B2C27" font-family="Arial, sans-serif" font-size="22">undocumented</text>
|
||||
<path d="M608 557 L632 557" stroke="#B7443E" stroke-width="5" marker-end="url(#redArrow)"/>
|
||||
<path d="M745 697 L745 994 L358 994 L358 968" stroke="#B7443E" stroke-width="5" stroke-dasharray="11 10" fill="none" marker-end="url(#redArrow)"/>
|
||||
<text x="126" y="1029" fill="#8B2C27" font-family="Arial, sans-serif" font-size="24">return reason to inventory</text>
|
||||
<text x="126" y="1061" fill="#8B2C27" font-family="Arial, sans-serif" font-size="24">do not hide it in a version</text>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 4.8 KiB |
Reference in New Issue
Block a user