This commit is contained in:
@@ -0,0 +1,50 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<svg xmlns="http://www.w3.org/2000/svg" width="1200" height="720" viewBox="0 0 1200 720" role="img" aria-labelledby="title desc">
|
||||
<title id="title">Контур обновления политики шаблона</title>
|
||||
<desc id="desc">Пять шагов: зафиксировать запрос, сравнить с контрактом, выбрать золотой путь, расширение или отказ, собрать разрешённые доказательства отдельно, затем обновить версию политики. Контур не показывает метрики внедрения.</desc>
|
||||
<rect width="1200" height="720" fill="#0f172a"/>
|
||||
<rect x="48" y="40" width="1104" height="84" rx="20" fill="#172554" stroke="#818cf8" stroke-width="2"/>
|
||||
<text x="82" y="80" fill="#f8fafc" font-family="Arial, sans-serif" font-size="31" font-weight="700">Контур policy: решение отдельно от evidence и операции</text>
|
||||
<text x="82" y="106" fill="#c7d2fe" font-family="Arial, sans-serif" font-size="17">Цикл обновляет versioned contract только после разрешённой проверки; он не является графиком adoption.</text>
|
||||
|
||||
<rect x="74" y="206" width="202" height="132" rx="18" fill="#1e3a8a" stroke="#60a5fa" stroke-width="3"/>
|
||||
<text x="102" y="246" fill="#dbeafe" font-family="Arial, sans-serif" font-size="20" font-weight="700">1. Record</text>
|
||||
<text x="102" y="276" fill="#eff6ff" font-family="Arial, sans-serif" font-size="16">class, owner,</text>
|
||||
<text x="102" y="300" fill="#eff6ff" font-family="Arial, sans-serif" font-size="16">base facts</text>
|
||||
<text x="102" y="324" fill="#93c5fd" font-family="Arial, sans-serif" font-size="15">явно назван scope</text>
|
||||
|
||||
<rect x="342" y="206" width="202" height="132" rx="18" fill="#312e81" stroke="#a5b4fc" stroke-width="3"/>
|
||||
<text x="370" y="246" fill="#eef2ff" font-family="Arial, sans-serif" font-size="20" font-weight="700">2. Match</text>
|
||||
<text x="370" y="276" fill="#e0e7ff" font-family="Arial, sans-serif" font-size="16">versioned</text>
|
||||
<text x="370" y="300" fill="#e0e7ff" font-family="Arial, sans-serif" font-size="16">base contract</text>
|
||||
<text x="370" y="324" fill="#c7d2fe" font-family="Arial, sans-serif" font-size="15">закрытый input</text>
|
||||
|
||||
<rect x="610" y="186" width="218" height="172" rx="18" fill="#422006" stroke="#fbbf24" stroke-width="3"/>
|
||||
<text x="638" y="226" fill="#fef3c7" font-family="Arial, sans-serif" font-size="20" font-weight="700">3. Decision</text>
|
||||
<text x="638" y="258" fill="#fde68a" font-family="Arial, sans-serif" font-size="16">golden path</text>
|
||||
<text x="638" y="284" fill="#fde68a" font-family="Arial, sans-serif" font-size="16">named extension</text>
|
||||
<text x="638" y="310" fill="#fde68a" font-family="Arial, sans-serif" font-size="16">или decline</text>
|
||||
<text x="638" y="338" fill="#fef3c7" font-family="Arial, sans-serif" font-size="15">не silent fork</text>
|
||||
|
||||
<rect x="894" y="206" width="230" height="132" rx="18" fill="#065f46" stroke="#34d399" stroke-width="3"/>
|
||||
<text x="922" y="246" fill="#d1fae5" font-family="Arial, sans-serif" font-size="20" font-weight="700">4. Evidence</text>
|
||||
<text x="922" y="276" fill="#d1fae5" font-family="Arial, sans-serif" font-size="16">разрешённый review,</text>
|
||||
<text x="922" y="300" fill="#d1fae5" font-family="Arial, sans-serif" font-size="16">dry run, validation</text>
|
||||
<text x="922" y="324" fill="#a7f3d0" font-family="Arial, sans-serif" font-size="15">в отдельном scope</text>
|
||||
|
||||
<path d="M276 272 H328" fill="none" stroke="#818cf8" stroke-width="5"/>
|
||||
<path d="M318 260 L342 272 L318 284" fill="none" stroke="#818cf8" stroke-width="5"/>
|
||||
<path d="M544 272 H596" fill="none" stroke="#818cf8" stroke-width="5"/>
|
||||
<path d="M586 260 L610 272 L586 284" fill="none" stroke="#818cf8" stroke-width="5"/>
|
||||
<path d="M828 272 H880" fill="none" stroke="#818cf8" stroke-width="5"/>
|
||||
<path d="M870 260 L894 272 L870 284" fill="none" stroke="#818cf8" stroke-width="5"/>
|
||||
|
||||
<path d="M1008 338 C1008 474 730 544 590 544 C398 544 176 500 176 382" fill="none" stroke="#38bdf8" stroke-width="5" stroke-dasharray="12 9"/>
|
||||
<path d="M164 394 L176 370 L188 394" fill="none" stroke="#38bdf8" stroke-width="5"/>
|
||||
<rect x="394" y="472" width="402" height="100" rx="18" fill="#082f49" stroke="#38bdf8" stroke-width="3"/>
|
||||
<text x="426" y="512" fill="#e0f2fe" font-family="Arial, sans-serif" font-size="21" font-weight="700">5. Версия policy меняется осознанно</text>
|
||||
<text x="426" y="542" fill="#bae6fd" font-family="Arial, sans-serif" font-size="16">Только после evidence и review, не после количества копий.</text>
|
||||
|
||||
<rect x="74" y="616" width="1050" height="50" rx="14" fill="#1e293b"/>
|
||||
<text x="100" y="648" fill="#cbd5e1" font-family="Arial, sans-serif" font-size="16">Граница схемы: не читает usage, issues, интервью, CI или сеть и не делает claim о скорости или adoption.</text>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 5.1 KiB |
@@ -0,0 +1,49 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<svg xmlns="http://www.w3.org/2000/svg" width="1200" height="720" viewBox="0 0 1200 720" role="img" aria-labelledby="title desc">
|
||||
<title id="title">Решение для escape hatch командного шаблона</title>
|
||||
<desc id="desc">Запрос сначала сравнивается с базовым контрактом. Полное совпадение ведёт в golden path, одно именованное расширение с владельцем и rollback ведёт в review, а изменение инварианта останавливает шаблон.</desc>
|
||||
<rect width="1200" height="720" fill="#111827"/>
|
||||
<rect x="48" y="40" width="1104" height="84" rx="20" fill="#1e293b" stroke="#64748b" stroke-width="2"/>
|
||||
<text x="82" y="80" fill="#f8fafc" font-family="Arial, sans-serif" font-size="31" font-weight="700">Escape hatch: расширение имеет границу, owner и обратный ход</text>
|
||||
<text x="82" y="106" fill="#cbd5e1" font-family="Arial, sans-serif" font-size="17">Свободный параметр создаёт fork; контролируемая развилка делает различие видимым до генерации.</text>
|
||||
|
||||
<rect x="68" y="258" width="242" height="142" rx="18" fill="#172554" stroke="#60a5fa" stroke-width="3"/>
|
||||
<text x="96" y="300" fill="#dbeafe" font-family="Arial, sans-serif" font-size="23" font-weight="700">Запрос</text>
|
||||
<text x="96" y="334" fill="#eff6ff" font-family="Arial, sans-serif" font-size="17">type, owner, runtime,</text>
|
||||
<text x="96" y="360" fill="#eff6ff" font-family="Arial, sans-serif" font-size="17">data class, policy</text>
|
||||
<text x="96" y="386" fill="#93c5fd" font-family="Arial, sans-serif" font-size="16">не произвольный объект</text>
|
||||
<path d="M310 329 H412" fill="none" stroke="#60a5fa" stroke-width="5"/>
|
||||
<path d="M402 317 L426 329 L402 341" fill="none" stroke="#60a5fa" stroke-width="5"/>
|
||||
|
||||
<path d="M532 178 L662 329 L532 480 L402 329 Z" fill="#312e81" stroke="#a5b4fc" stroke-width="4"/>
|
||||
<text x="468" y="312" fill="#eef2ff" font-family="Arial, sans-serif" font-size="22" font-weight="700">Сверка с</text>
|
||||
<text x="454" y="342" fill="#eef2ff" font-family="Arial, sans-serif" font-size="22" font-weight="700">base contract</text>
|
||||
<text x="465" y="374" fill="#c7d2fe" font-family="Arial, sans-serif" font-size="16">invariants не меняются?</text>
|
||||
|
||||
<path d="M662 329 H730 V208 H778" fill="none" stroke="#4ade80" stroke-width="5"/>
|
||||
<path d="M768 196 L792 208 L768 220" fill="none" stroke="#4ade80" stroke-width="5"/>
|
||||
<path d="M662 329 H730" fill="none" stroke="#fbbf24" stroke-width="5"/>
|
||||
<path d="M720 317 L744 329 L720 341" fill="none" stroke="#fbbf24" stroke-width="5"/>
|
||||
<path d="M662 329 H730 V510 H778" fill="none" stroke="#fb7185" stroke-width="5"/>
|
||||
<path d="M768 498 L792 510 L768 522" fill="none" stroke="#fb7185" stroke-width="5"/>
|
||||
|
||||
<rect x="792" y="128" width="338" height="160" rx="18" fill="#052e16" stroke="#4ade80" stroke-width="3"/>
|
||||
<text x="822" y="170" fill="#dcfce7" font-family="Arial, sans-serif" font-size="23" font-weight="700">1. Golden path</text>
|
||||
<text x="822" y="204" fill="#d1fae5" font-family="Arial, sans-serif" font-size="17">Все base facts совпали</text>
|
||||
<text x="822" y="232" fill="#bbf7d0" font-family="Arial, sans-serif" font-size="16">Действие: draft + human review</text>
|
||||
<text x="822" y="258" fill="#bbf7d0" font-family="Arial, sans-serif" font-size="16">Rollback: убрать draft</text>
|
||||
|
||||
<rect x="792" y="250" width="338" height="160" rx="18" fill="#422006" stroke="#fbbf24" stroke-width="3"/>
|
||||
<text x="822" y="292" fill="#fef3c7" font-family="Arial, sans-serif" font-size="23" font-weight="700">2. Named extension</text>
|
||||
<text x="822" y="326" fill="#fde68a" font-family="Arial, sans-serif" font-size="17">Один adapter, owner известен</text>
|
||||
<text x="822" y="354" fill="#fde68a" font-family="Arial, sans-serif" font-size="16">Boundary: base policy без замены</text>
|
||||
<text x="822" y="380" fill="#fde68a" font-family="Arial, sans-serif" font-size="16">Действие: extension review</text>
|
||||
|
||||
<rect x="792" y="454" width="338" height="160" rx="18" fill="#4c0519" stroke="#fb7185" stroke-width="3"/>
|
||||
<text x="822" y="496" fill="#ffe4e6" font-family="Arial, sans-serif" font-size="23" font-weight="700">3. Decline template</text>
|
||||
<text x="822" y="530" fill="#fecdd3" font-family="Arial, sans-serif" font-size="17">Новый owner, runtime или policy</text>
|
||||
<text x="822" y="558" fill="#fecdd3" font-family="Arial, sans-serif" font-size="16">Не подгонять через checkbox</text>
|
||||
<text x="822" y="584" fill="#fecdd3" font-family="Arial, sans-serif" font-size="16">Действие: design path</text>
|
||||
|
||||
<text x="68" y="669" fill="#94a3b8" font-family="Arial, sans-serif" font-size="16">Ветка extension не даёт право менять base runtime, ownership, data class или delivery policy.</text>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 5.0 KiB |
@@ -0,0 +1,59 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<svg xmlns="http://www.w3.org/2000/svg" width="1200" height="720" viewBox="0 0 1200 720" role="img" aria-labelledby="title desc">
|
||||
<title id="title">Golden path для командного шаблона</title>
|
||||
<desc id="desc">Четыре стабильных факта внутреннего HTTP-сервиса ведут в версионированный базовый контракт. Новый policy-вопрос отводится в design path, а не добавляется в форму.</desc>
|
||||
<rect width="1200" height="720" fill="#0f172a"/>
|
||||
<rect x="44" y="38" width="1112" height="82" rx="20" fill="#172554" stroke="#3b82f6" stroke-width="2"/>
|
||||
<text x="78" y="78" fill="#f8fafc" font-family="Arial, sans-serif" font-size="31" font-weight="700">Golden path: повторяемое решение, не каталог исключений</text>
|
||||
<text x="78" y="104" fill="#bfdbfe" font-family="Arial, sans-serif" font-size="17">Версия контракта ограничивает выбор до того, как generated repository превратится в fork.</text>
|
||||
|
||||
<rect x="68" y="176" width="300" height="390" rx="20" fill="#172554" stroke="#60a5fa" stroke-width="2"/>
|
||||
<text x="96" y="218" fill="#dbeafe" font-family="Arial, sans-serif" font-size="22" font-weight="700">Вход заявки</text>
|
||||
<text x="96" y="257" fill="#f8fafc" font-family="Arial, sans-serif" font-size="19">1. internal HTTP service</text>
|
||||
<line x1="96" y1="274" x2="340" y2="274" stroke="#334155" stroke-width="2"/>
|
||||
<text x="96" y="309" fill="#f8fafc" font-family="Arial, sans-serif" font-size="19">2. owner известен</text>
|
||||
<line x1="96" y1="326" x2="340" y2="326" stroke="#334155" stroke-width="2"/>
|
||||
<text x="96" y="361" fill="#f8fafc" font-family="Arial, sans-serif" font-size="19">3. approved runtime</text>
|
||||
<line x1="96" y1="378" x2="340" y2="378" stroke="#334155" stroke-width="2"/>
|
||||
<text x="96" y="413" fill="#f8fafc" font-family="Arial, sans-serif" font-size="19">4. internal data class</text>
|
||||
<rect x="96" y="458" width="244" height="72" rx="12" fill="#1d4ed8"/>
|
||||
<text x="118" y="488" fill="#eff6ff" font-family="Arial, sans-serif" font-size="17" font-weight="700">Проверка:</text>
|
||||
<text x="118" y="514" fill="#eff6ff" font-family="Arial, sans-serif" font-size="17">все base facts совпали</text>
|
||||
|
||||
<path d="M368 368 H462" fill="none" stroke="#60a5fa" stroke-width="5"/>
|
||||
<path d="M452 356 L476 368 L452 380" fill="none" stroke="#60a5fa" stroke-width="5"/>
|
||||
|
||||
<rect x="478" y="152" width="370" height="438" rx="22" fill="#052e16" stroke="#4ade80" stroke-width="3"/>
|
||||
<text x="510" y="198" fill="#dcfce7" font-family="Arial, sans-serif" font-size="25" font-weight="700">Версионированный base contract</text>
|
||||
<text x="510" y="236" fill="#bbf7d0" font-family="Arial, sans-serif" font-size="18">synthetic-service-golden-path-v3</text>
|
||||
<line x1="510" y1="256" x2="816" y2="256" stroke="#166534" stroke-width="2"/>
|
||||
<text x="510" y="300" fill="#f0fdf4" font-family="Arial, sans-serif" font-size="19">Создаёт:</text>
|
||||
<text x="534" y="334" fill="#d1fae5" font-family="Arial, sans-serif" font-size="18">• skeleton repository</text>
|
||||
<text x="534" y="366" fill="#d1fae5" font-family="Arial, sans-serif" font-size="18">• metadata draft</text>
|
||||
<text x="534" y="398" fill="#d1fae5" font-family="Arial, sans-serif" font-size="18">• review checklist draft</text>
|
||||
<text x="510" y="450" fill="#fef3c7" font-family="Arial, sans-serif" font-size="19">Не создаёт:</text>
|
||||
<text x="534" y="484" fill="#fde68a" font-family="Arial, sans-serif" font-size="18">• production approval</text>
|
||||
<text x="534" y="516" fill="#fde68a" font-family="Arial, sans-serif" font-size="18">• новую policy</text>
|
||||
<text x="534" y="548" fill="#fde68a" font-family="Arial, sans-serif" font-size="18">• измеренный adoption</text>
|
||||
|
||||
<path d="M848 368 H920" fill="none" stroke="#fbbf24" stroke-width="5"/>
|
||||
<path d="M910 356 L934 368 L910 380" fill="none" stroke="#fbbf24" stroke-width="5"/>
|
||||
|
||||
<rect x="936" y="168" width="218" height="180" rx="18" fill="#422006" stroke="#fbbf24" stroke-width="3"/>
|
||||
<text x="964" y="212" fill="#fef3c7" font-family="Arial, sans-serif" font-size="21" font-weight="700">Golden path</text>
|
||||
<text x="964" y="246" fill="#fef3c7" font-family="Arial, sans-serif" font-size="17">base facts</text>
|
||||
<text x="964" y="272" fill="#fef3c7" font-family="Arial, sans-serif" font-size="17">сохранены</text>
|
||||
<text x="964" y="314" fill="#fde68a" font-family="Arial, sans-serif" font-size="16">Следующий шаг:</text>
|
||||
<text x="964" y="336" fill="#fde68a" font-family="Arial, sans-serif" font-size="16">human fit review</text>
|
||||
|
||||
<path d="M848 470 C900 470 902 518 934 518" fill="none" stroke="#fb7185" stroke-width="4" stroke-dasharray="10 8"/>
|
||||
<path d="M924 506 L948 518 L924 530" fill="none" stroke="#fb7185" stroke-width="4"/>
|
||||
<rect x="936" y="416" width="218" height="174" rx="18" fill="#4c0519" stroke="#fb7185" stroke-width="3"/>
|
||||
<text x="964" y="456" fill="#ffe4e6" font-family="Arial, sans-serif" font-size="20" font-weight="700">Новый policy</text>
|
||||
<text x="964" y="486" fill="#fecdd3" font-family="Arial, sans-serif" font-size="16">retention, access</text>
|
||||
<text x="964" y="510" fill="#fecdd3" font-family="Arial, sans-serif" font-size="16">или неизвестный owner</text>
|
||||
<text x="964" y="552" fill="#ffe4e6" font-family="Arial, sans-serif" font-size="17" font-weight="700">Не поле формы</text>
|
||||
<text x="964" y="576" fill="#fecdd3" font-family="Arial, sans-serif" font-size="16">Design path</text>
|
||||
|
||||
<text x="68" y="658" fill="#94a3b8" font-family="Arial, sans-serif" font-size="16">Схема объясняет контракт выбора. Она не является снимком реального template, CI, usage или production.</text>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 5.9 KiB |
Reference in New Issue
Block a user