65 lines
4.4 KiB
XML
65 lines
4.4 KiB
XML
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 960 620" role="img" aria-labelledby="title desc">
|
|
<title id="title">Контекст учебного решения о публикации рабочих заметок</title>
|
|
<desc id="desc">Автор сохраняет каноническую заметку. Локальная учебная граница записывает заметку и publication intent. Relay по ключу noteId и revision обновляет независимое публичное чтение. Evidence и assumption отделены.</desc>
|
|
<defs>
|
|
<marker id="arrow" markerWidth="10" markerHeight="10" refX="8" refY="5" orient="auto"><path d="M0,0 L10,5 L0,10 Z" fill="#335e8a"/></marker>
|
|
<style>
|
|
.bg { fill: #f7f6f1; }
|
|
.title { fill: #17212b; font: 700 28px system-ui, -apple-system, sans-serif; }
|
|
.sub { fill: #52616d; font: 400 16px system-ui, -apple-system, sans-serif; }
|
|
.card-title { fill: #17212b; font: 700 20px system-ui, -apple-system, sans-serif; }
|
|
.card-text { fill: #334452; font: 400 16px system-ui, -apple-system, sans-serif; }
|
|
.mini { fill: #52616d; font: 600 14px system-ui, -apple-system, sans-serif; letter-spacing: .3px; }
|
|
.line { stroke: #335e8a; stroke-width: 3; marker-end: url(#arrow); }
|
|
.key { fill: #e9f0f7; stroke: #335e8a; stroke-width: 2; }
|
|
.write { fill: #e8f5ef; stroke: #25734f; stroke-width: 2; }
|
|
.read { fill: #f1edf9; stroke: #7253a6; stroke-width: 2; }
|
|
.evidence { fill: #eaf2fb; stroke: #2e6da4; stroke-width: 2; }
|
|
.assumption { fill: #fff5dd; stroke: #b67813; stroke-width: 2; stroke-dasharray: 7 6; }
|
|
</style>
|
|
</defs>
|
|
<rect class="bg" width="960" height="620" rx="24"/>
|
|
<text class="title" x="52" y="58">Контекст: публикация рабочей заметки</text>
|
|
<text class="sub" x="52" y="86">Схема фиксирует владельцев состояния; она не является схемой production-инфраструктуры.</text>
|
|
|
|
<rect x="52" y="150" width="182" height="150" rx="16" fill="#fff" stroke="#7f8b96" stroke-width="2"/>
|
|
<text class="mini" x="76" y="182">ВНЕШНИЙ АКТОР</text>
|
|
<text class="card-title" x="76" y="218">Автор</text>
|
|
<text class="card-text" x="76" y="248">передаёт версию</text>
|
|
<text class="card-text" x="76" y="272">рабочей заметки</text>
|
|
|
|
<line class="line" x1="234" y1="225" x2="310" y2="225"/>
|
|
<rect class="write" x="310" y="126" width="276" height="198" rx="18"/>
|
|
<text class="mini" x="338" y="160">УЧЕБНАЯ ЛОКАЛЬНАЯ ГРАНИЦА</text>
|
|
<text class="card-title" x="338" y="201">canonical note</text>
|
|
<text class="card-text" x="338" y="230">id + revision</text>
|
|
<line x1="338" y1="247" x2="558" y2="247" stroke="#8bbda4" stroke-width="2"/>
|
|
<text class="card-title" x="338" y="280">publication intent</text>
|
|
<text class="card-text" x="338" y="307">не delivery и не effect</text>
|
|
|
|
<line class="line" x1="586" y1="225" x2="674" y2="225"/>
|
|
<rect class="key" x="651" y="164" width="160" height="120" rx="16"/>
|
|
<text class="mini" x="675" y="195">RELAY</text>
|
|
<text class="card-title" x="675" y="229">key</text>
|
|
<text class="card-text" x="675" y="257">noteId:revision</text>
|
|
|
|
<line class="line" x1="811" y1="225" x2="850" y2="225"/>
|
|
<rect class="read" x="798" y="150" width="120" height="150" rx="16"/>
|
|
<text class="mini" x="818" y="182">READ</text>
|
|
<text class="card-title" x="818" y="218">public</text>
|
|
<text class="card-title" x="818" y="244">projection</text>
|
|
<text class="card-text" x="818" y="272">может</text>
|
|
<text class="card-text" x="818" y="294">отставать</text>
|
|
|
|
<rect class="evidence" x="92" y="402" width="364" height="144" rx="16"/>
|
|
<text class="mini" x="120" y="435">FIXTURE EVIDENCE</text>
|
|
<text class="card-title" x="120" y="470">claim: requirements явны</text>
|
|
<text class="card-text" x="120" y="504">и вариант проверен против brief</text>
|
|
|
|
<rect class="assumption" x="504" y="402" width="364" height="144" rx="16"/>
|
|
<text class="mini" x="532" y="435">ASSUMPTION</text>
|
|
<text class="card-title" x="532" y="470">локальная пара Map возможна</text>
|
|
<text class="card-text" x="532" y="504">не доказательство storage atomicity</text>
|
|
<path d="M456 474 C470 474 486 474 504 474" fill="none" stroke="#52616d" stroke-width="2" stroke-dasharray="5 5"/>
|
|
</svg>
|