This commit is contained in:
@@ -0,0 +1,48 @@
|
||||
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 1200 720" role="img" aria-labelledby="title desc">
|
||||
<title id="title">Матрица schema, semantic expectation и provider verification</title>
|
||||
<desc id="desc">Три синтетических ответа сопоставлены с проверкой формы, ожиданием consumer и неисполненной provider verification.</desc>
|
||||
<rect width="1200" height="720" rx="32" fill="#111827"/>
|
||||
<text x="58" y="66" fill="#f9fafb" font-family="Inter, Arial, sans-serif" font-size="33" font-weight="700">Матрица совместимости: форма, смысл, исполненный факт</text>
|
||||
<text x="58" y="103" fill="#d1d5db" font-family="Inter, Arial, sans-serif" font-size="20">Все ответы ниже синтетические и существуют только для объяснения границы.</text>
|
||||
|
||||
<rect x="55" y="148" width="1090" height="78" rx="16" fill="#1f2937"/>
|
||||
<text x="82" y="194" fill="#e5e7eb" font-family="Inter, Arial, sans-serif" font-size="21" font-weight="700">Ответ</text>
|
||||
<text x="405" y="194" text-anchor="middle" fill="#e5e7eb" font-family="Inter, Arial, sans-serif" font-size="21" font-weight="700">Schema match</text>
|
||||
<text x="685" y="194" text-anchor="middle" fill="#e5e7eb" font-family="Inter, Arial, sans-serif" font-size="21" font-weight="700">Consumer meaning</text>
|
||||
<text x="970" y="194" text-anchor="middle" fill="#e5e7eb" font-family="Inter, Arial, sans-serif" font-size="21" font-weight="700">Provider verification</text>
|
||||
|
||||
<rect x="55" y="240" width="1090" height="120" rx="14" fill="#113c36"/>
|
||||
<text x="82" y="278" fill="#d1fae5" font-family="Inter, Arial, sans-serif" font-size="20" font-weight="700">active + ISO date</text>
|
||||
<text x="82" y="312" fill="#a7f3d0" font-family="Inter, Arial, sans-serif" font-size="18">renewalAt: 2023-07-19T00:00:00Z</text>
|
||||
<rect x="330" y="266" width="150" height="56" rx="28" fill="#059669"/>
|
||||
<text x="405" y="302" text-anchor="middle" fill="#ecfdf5" font-family="Inter, Arial, sans-serif" font-size="20" font-weight="700">PASS</text>
|
||||
<rect x="610" y="266" width="150" height="56" rx="28" fill="#059669"/>
|
||||
<text x="685" y="302" text-anchor="middle" fill="#ecfdf5" font-family="Inter, Arial, sans-serif" font-size="20" font-weight="700">PASS</text>
|
||||
<rect x="842" y="258" width="256" height="72" rx="14" fill="#334155"/>
|
||||
<text x="970" y="288" text-anchor="middle" fill="#e2e8f0" font-family="Inter, Arial, sans-serif" font-size="18">Нужен реальный запуск</text>
|
||||
<text x="970" y="313" text-anchor="middle" fill="#cbd5e1" font-family="Inter, Arial, sans-serif" font-size="17">в точном provider state</text>
|
||||
|
||||
<rect x="55" y="378" width="1090" height="120" rx="14" fill="#4a2a12"/>
|
||||
<text x="82" y="416" fill="#fef3c7" font-family="Inter, Arial, sans-serif" font-size="20" font-weight="700">active + null</text>
|
||||
<text x="82" y="450" fill="#fde68a" font-family="Inter, Arial, sans-serif" font-size="18">форма допускает null, экран — нет</text>
|
||||
<rect x="330" y="404" width="150" height="56" rx="28" fill="#059669"/>
|
||||
<text x="405" y="440" text-anchor="middle" fill="#ecfdf5" font-family="Inter, Arial, sans-serif" font-size="20" font-weight="700">PASS</text>
|
||||
<rect x="610" y="404" width="150" height="56" rx="28" fill="#dc2626"/>
|
||||
<text x="685" y="440" text-anchor="middle" fill="#fef2f2" font-family="Inter, Arial, sans-serif" font-size="20" font-weight="700">FAIL</text>
|
||||
<rect x="842" y="396" width="256" height="72" rx="14" fill="#7f1d1d"/>
|
||||
<text x="970" y="426" text-anchor="middle" fill="#fee2e2" font-family="Inter, Arial, sans-serif" font-size="18">Synthetic fixture:</text>
|
||||
<text x="970" y="451" text-anchor="middle" fill="#fecaca" font-family="Inter, Arial, sans-serif" font-size="17">verification not-run</text>
|
||||
|
||||
<rect x="55" y="516" width="1090" height="120" rx="14" fill="#3f1d2e"/>
|
||||
<text x="82" y="554" fill="#fce7f3" font-family="Inter, Arial, sans-serif" font-size="20" font-weight="700">state: 7</text>
|
||||
<text x="82" y="588" fill="#fbcfe8" font-family="Inter, Arial, sans-serif" font-size="18">нарушен enum и тип</text>
|
||||
<rect x="330" y="542" width="150" height="56" rx="28" fill="#dc2626"/>
|
||||
<text x="405" y="578" text-anchor="middle" fill="#fef2f2" font-family="Inter, Arial, sans-serif" font-size="20" font-weight="700">FAIL</text>
|
||||
<rect x="610" y="542" width="150" height="56" rx="28" fill="#64748b"/>
|
||||
<text x="685" y="578" text-anchor="middle" fill="#f8fafc" font-family="Inter, Arial, sans-serif" font-size="20" font-weight="700">N/A</text>
|
||||
<rect x="842" y="534" width="256" height="72" rx="14" fill="#334155"/>
|
||||
<text x="970" y="564" text-anchor="middle" fill="#e2e8f0" font-family="Inter, Arial, sans-serif" font-size="18">Schema FAIL — сначала</text>
|
||||
<text x="970" y="589" text-anchor="middle" fill="#cbd5e1" font-family="Inter, Arial, sans-serif" font-size="17">исправить форму</text>
|
||||
|
||||
<text x="600" y="685" text-anchor="middle" fill="#94a3b8" font-family="Inter, Arial, sans-serif" font-size="18">Зелёная ячейка schema не даёт разрешения на release и не равна provider verification.</text>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 5.2 KiB |
@@ -0,0 +1,58 @@
|
||||
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 1200 720" role="img" aria-labelledby="title desc">
|
||||
<title id="title">Consumer, contract и provider verification</title>
|
||||
<desc id="desc">Учебная схема показывает, что consumer scenario, contract и результат provider verification являются разными артефактами.</desc>
|
||||
<defs>
|
||||
<marker id="arrow" viewBox="0 0 10 10" refX="8" refY="5" markerWidth="8" markerHeight="8" orient="auto-start-reverse">
|
||||
<path d="M 0 0 L 10 5 L 0 10 z" fill="#5eead4"/>
|
||||
</marker>
|
||||
</defs>
|
||||
<rect width="1200" height="720" rx="32" fill="#0f172a"/>
|
||||
<text x="60" y="68" fill="#f8fafc" font-family="Inter, Arial, sans-serif" font-size="34" font-weight="700">Контрактный сценарий: три разных доказательства</text>
|
||||
<text x="60" y="106" fill="#cbd5e1" font-family="Inter, Arial, sans-serif" font-size="21">Учебный пример: экран продления должен получить применимую дату.</text>
|
||||
|
||||
<rect x="55" y="154" width="290" height="350" rx="22" fill="#172554" stroke="#60a5fa" stroke-width="3"/>
|
||||
<circle cx="91" cy="196" r="20" fill="#60a5fa"/>
|
||||
<text x="91" y="204" text-anchor="middle" fill="#0f172a" font-family="Inter, Arial, sans-serif" font-size="21" font-weight="700">1</text>
|
||||
<text x="125" y="205" fill="#dbeafe" font-family="Inter, Arial, sans-serif" font-size="29" font-weight="700">Consumer</text>
|
||||
<text x="85" y="254" fill="#e0f2fe" font-family="Inter, Arial, sans-serif" font-size="22">Сценарий экрана</text>
|
||||
<text x="85" y="290" fill="#cbd5e1" font-family="Inter, Arial, sans-serif" font-size="20">GET /subscriptions/sub-42</text>
|
||||
<rect x="85" y="323" width="230" height="58" rx="12" fill="#0c4a6e"/>
|
||||
<text x="101" y="359" fill="#e0f2fe" font-family="Inter, Arial, sans-serif" font-size="19">Нужна дата для действия</text>
|
||||
<text x="85" y="426" fill="#94a3b8" font-family="Inter, Arial, sans-serif" font-size="18">Не описывает весь домен.</text>
|
||||
<text x="85" y="456" fill="#94a3b8" font-family="Inter, Arial, sans-serif" font-size="18">Фиксирует одну потребность.</text>
|
||||
|
||||
<path d="M 352 328 H 445" fill="none" stroke="#5eead4" stroke-width="5" marker-end="url(#arrow)"/>
|
||||
<text x="397" y="307" text-anchor="middle" fill="#99f6e4" font-family="Inter, Arial, sans-serif" font-size="18">ожидание</text>
|
||||
|
||||
<rect x="455" y="132" width="310" height="414" rx="22" fill="#134e4a" stroke="#5eead4" stroke-width="3"/>
|
||||
<circle cx="491" cy="176" r="20" fill="#5eead4"/>
|
||||
<text x="491" y="184" text-anchor="middle" fill="#0f172a" font-family="Inter, Arial, sans-serif" font-size="21" font-weight="700">2</text>
|
||||
<text x="525" y="185" fill="#ccfbf1" font-family="Inter, Arial, sans-serif" font-size="29" font-weight="700">Contract</text>
|
||||
<text x="485" y="238" fill="#ccfbf1" font-family="Inter, Arial, sans-serif" font-size="20">Форма: id, state, renewalAt</text>
|
||||
<text x="485" y="273" fill="#ccfbf1" font-family="Inter, Arial, sans-serif" font-size="20">Schema: дата или null</text>
|
||||
<rect x="485" y="304" width="250" height="112" rx="12" fill="#115e59"/>
|
||||
<text x="503" y="339" fill="#ecfeff" font-family="Inter, Arial, sans-serif" font-size="18">Semantic expectation:</text>
|
||||
<text x="503" y="370" fill="#ecfeff" font-family="Inter, Arial, sans-serif" font-size="18">в этом сценарии active</text>
|
||||
<text x="503" y="399" fill="#ecfeff" font-family="Inter, Arial, sans-serif" font-size="18">требует будущую дату</text>
|
||||
<text x="485" y="470" fill="#99f6e4" font-family="Inter, Arial, sans-serif" font-size="18">version + provider state</text>
|
||||
<text x="485" y="501" fill="#99f6e4" font-family="Inter, Arial, sans-serif" font-size="18">должны быть адресуемы</text>
|
||||
|
||||
<path d="M 772 328 H 855" fill="none" stroke="#5eead4" stroke-width="5" marker-end="url(#arrow)"/>
|
||||
<text x="812" y="307" text-anchor="middle" fill="#99f6e4" font-family="Inter, Arial, sans-serif" font-size="18">проверить</text>
|
||||
|
||||
<rect x="865" y="154" width="280" height="350" rx="22" fill="#3f2a12" stroke="#fbbf24" stroke-width="3"/>
|
||||
<circle cx="901" cy="196" r="20" fill="#fbbf24"/>
|
||||
<text x="901" y="204" text-anchor="middle" fill="#0f172a" font-family="Inter, Arial, sans-serif" font-size="21" font-weight="700">3</text>
|
||||
<text x="935" y="205" fill="#fef3c7" font-family="Inter, Arial, sans-serif" font-size="29" font-weight="700">Provider</text>
|
||||
<text x="895" y="254" fill="#fef3c7" font-family="Inter, Arial, sans-serif" font-size="21">Подготовить state</text>
|
||||
<text x="895" y="291" fill="#fde68a" font-family="Inter, Arial, sans-serif" font-size="19">Исполнить interaction</text>
|
||||
<rect x="895" y="323" width="220" height="84" rx="12" fill="#713f12"/>
|
||||
<text x="912" y="358" fill="#fef3c7" font-family="Inter, Arial, sans-serif" font-size="18">PASS только после</text>
|
||||
<text x="912" y="386" fill="#fef3c7" font-family="Inter, Arial, sans-serif" font-size="18">реального запуска</text>
|
||||
<text x="895" y="451" fill="#fcd34d" font-family="Inter, Arial, sans-serif" font-size="18">результат + версия</text>
|
||||
<text x="895" y="481" fill="#fcd34d" font-family="Inter, Arial, sans-serif" font-size="18">для release decision</text>
|
||||
|
||||
<rect x="55" y="588" width="1090" height="82" rx="18" fill="#1e293b" stroke="#64748b" stroke-width="2"/>
|
||||
<text x="600" y="624" text-anchor="middle" fill="#f8fafc" font-family="Inter, Arial, sans-serif" font-size="25" font-weight="700">Schema match ≠ semantic expectation ≠ provider verification</text>
|
||||
<text x="600" y="652" text-anchor="middle" fill="#cbd5e1" font-family="Inter, Arial, sans-serif" font-size="18">Схема не является сетевой трассой и не сообщает о выполненном Pact/CI запуске.</text>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 5.9 KiB |
@@ -0,0 +1,54 @@
|
||||
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 1200 720" role="img" aria-labelledby="title desc">
|
||||
<title id="title">Шлюз выпуска для contract change</title>
|
||||
<desc id="desc">Схема показывает последовательность consumer scenario, versioned contract, provider state, provider verification и release decision с точками остановки.</desc>
|
||||
<defs>
|
||||
<marker id="arrow" viewBox="0 0 10 10" refX="8" refY="5" markerWidth="8" markerHeight="8" orient="auto-start-reverse">
|
||||
<path d="M 0 0 L 10 5 L 0 10 z" fill="#93c5fd"/>
|
||||
</marker>
|
||||
</defs>
|
||||
<rect width="1200" height="720" rx="32" fill="#0b1220"/>
|
||||
<text x="55" y="65" fill="#f8fafc" font-family="Inter, Arial, sans-serif" font-size="34" font-weight="700">Release gate: от contract scenario к решению о выпуске</text>
|
||||
<text x="55" y="103" fill="#cbd5e1" font-family="Inter, Arial, sans-serif" font-size="20">Каждый блок добавляет отдельное evidence; форма JSON не перепрыгивает через verification.</text>
|
||||
|
||||
<rect x="48" y="168" width="205" height="200" rx="20" fill="#172554" stroke="#60a5fa" stroke-width="3"/>
|
||||
<text x="72" y="212" fill="#dbeafe" font-family="Inter, Arial, sans-serif" font-size="23" font-weight="700">1. Consumer</text>
|
||||
<text x="72" y="250" fill="#bfdbfe" font-family="Inter, Arial, sans-serif" font-size="18">Один сценарий</text>
|
||||
<text x="72" y="280" fill="#bfdbfe" font-family="Inter, Arial, sans-serif" font-size="18">и decision UI</text>
|
||||
<text x="72" y="326" fill="#93c5fd" font-family="Inter, Arial, sans-serif" font-size="17">Нужна дата действия</text>
|
||||
|
||||
<path d="M 258 268 H 290" fill="none" stroke="#93c5fd" stroke-width="5" marker-end="url(#arrow)"/>
|
||||
<rect x="300" y="168" width="205" height="200" rx="20" fill="#134e4a" stroke="#5eead4" stroke-width="3"/>
|
||||
<text x="324" y="212" fill="#ccfbf1" font-family="Inter, Arial, sans-serif" font-size="23" font-weight="700">2. Contract</text>
|
||||
<text x="324" y="250" fill="#99f6e4" font-family="Inter, Arial, sans-serif" font-size="18">Request, response,</text>
|
||||
<text x="324" y="280" fill="#99f6e4" font-family="Inter, Arial, sans-serif" font-size="18">scenario, version</text>
|
||||
<text x="324" y="326" fill="#5eead4" font-family="Inter, Arial, sans-serif" font-size="17">Schema + meaning</text>
|
||||
|
||||
<path d="M 510 268 H 542" fill="none" stroke="#93c5fd" stroke-width="5" marker-end="url(#arrow)"/>
|
||||
<rect x="552" y="168" width="205" height="200" rx="20" fill="#3f2a12" stroke="#fbbf24" stroke-width="3"/>
|
||||
<text x="576" y="212" fill="#fef3c7" font-family="Inter, Arial, sans-serif" font-size="23" font-weight="700">3. Provider</text>
|
||||
<text x="576" y="250" fill="#fde68a" font-family="Inter, Arial, sans-serif" font-size="18">Точная версия</text>
|
||||
<text x="576" y="280" fill="#fde68a" font-family="Inter, Arial, sans-serif" font-size="18">и provider state</text>
|
||||
<text x="576" y="326" fill="#fcd34d" font-family="Inter, Arial, sans-serif" font-size="17">Не production trace</text>
|
||||
|
||||
<path d="M 762 268 H 794" fill="none" stroke="#93c5fd" stroke-width="5" marker-end="url(#arrow)"/>
|
||||
<rect x="804" y="168" width="205" height="200" rx="20" fill="#3b1f55" stroke="#c084fc" stroke-width="3"/>
|
||||
<text x="828" y="212" fill="#f3e8ff" font-family="Inter, Arial, sans-serif" font-size="23" font-weight="700">4. Verify</text>
|
||||
<text x="828" y="250" fill="#e9d5ff" font-family="Inter, Arial, sans-serif" font-size="18">Исполнить все</text>
|
||||
<text x="828" y="280" fill="#e9d5ff" font-family="Inter, Arial, sans-serif" font-size="18">нужные interaction</text>
|
||||
<text x="828" y="326" fill="#d8b4fe" font-family="Inter, Arial, sans-serif" font-size="17">PASS/FAIL + version</text>
|
||||
|
||||
<path d="M 1014 268 H 1046" fill="none" stroke="#93c5fd" stroke-width="5" marker-end="url(#arrow)"/>
|
||||
<rect x="1056" y="168" width="96" height="200" rx="20" fill="#14532d" stroke="#4ade80" stroke-width="3"/>
|
||||
<text x="1104" y="218" text-anchor="middle" fill="#dcfce7" font-family="Inter, Arial, sans-serif" font-size="20" font-weight="700">5.</text>
|
||||
<text x="1104" y="251" text-anchor="middle" fill="#dcfce7" font-family="Inter, Arial, sans-serif" font-size="17" font-weight="700">Release</text>
|
||||
<text x="1104" y="278" text-anchor="middle" fill="#bbf7d0" font-family="Inter, Arial, sans-serif" font-size="15">owner</text>
|
||||
<text x="1104" y="305" text-anchor="middle" fill="#bbf7d0" font-family="Inter, Arial, sans-serif" font-size="15">decision</text>
|
||||
|
||||
<path d="M 654 384 V 454" fill="none" stroke="#f87171" stroke-width="5" marker-end="url(#arrow)"/>
|
||||
<rect x="155" y="470" width="890" height="92" rx="18" fill="#7f1d1d" stroke="#f87171" stroke-width="3"/>
|
||||
<text x="600" y="509" text-anchor="middle" fill="#fee2e2" font-family="Inter, Arial, sans-serif" font-size="24" font-weight="700">Нет contract version, provider state или verification result → STOP</text>
|
||||
<text x="600" y="540" text-anchor="middle" fill="#fecaca" font-family="Inter, Arial, sans-serif" font-size="18">Schema PASS сам по себе не даёт production compatibility и не отменяет отдельный rollback plan.</text>
|
||||
|
||||
<rect x="155" y="596" width="890" height="64" rx="16" fill="#1e293b" stroke="#64748b" stroke-width="2"/>
|
||||
<text x="600" y="635" text-anchor="middle" fill="#e2e8f0" font-family="Inter, Arial, sans-serif" font-size="19">Rollback: версии клиентов, обратимое переключение, владелец и отдельная проверка после изменения.</text>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 5.5 KiB |
Reference in New Issue
Block a user