fix: clean up architecture and plan-flow SVGs — simpler connector routing, tighter arrow spacing

This commit is contained in:
Content Agent 2026-04-28 16:24:11 -07:00
parent ec1edc9f0f
commit 2fe706436d
2 changed files with 42 additions and 48 deletions

View file

@ -1,45 +1,42 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 600 320">
<defs>
<marker id="arrow" markerWidth="10" markerHeight="7" refX="10" refY="3.5" orient="auto" fill="#3b82f6">
<marker id="arr" markerWidth="10" markerHeight="7" refX="10" refY="3.5" orient="auto" fill="#3b82f6">
<polygon points="0 0, 10 3.5, 0 7"/>
</marker>
</defs>
<!-- Orchestrator -->
<rect x="170" y="20" width="260" height="70" rx="8" fill="#1e3a5f" stroke="#3b82f6" stroke-width="2"/>
<text x="300" y="50" text-anchor="middle" fill="#f8fafc" font-family="system-ui, sans-serif" font-size="16" font-weight="bold">Orchestrator</text>
<text x="300" y="70" text-anchor="middle" fill="#94a3b8" font-family="system-ui, sans-serif" font-size="12">Accepts Specks, decomposes tasks</text>
<rect x="170" y="15" width="260" height="65" rx="8" fill="#1e3a5f" stroke="#3b82f6" stroke-width="2"/>
<text x="300" y="45" text-anchor="middle" fill="#f8fafc" font-family="system-ui, sans-serif" font-size="15" font-weight="bold">Orchestrator</text>
<text x="300" y="63" text-anchor="middle" fill="#94a3b8" font-family="system-ui, sans-serif" font-size="11">Accepts Specks, decomposes tasks</text>
<!-- Branching lines from Orchestrator -->
<line x1="230" y1="90" x2="230" y2="120" stroke="#3b82f6" stroke-width="2"/>
<line x1="370" y1="90" x2="370" y2="120" stroke="#3b82f6" stroke-width="2"/>
<line x1="230" y1="120" x2="370" y2="120" stroke="#3b82f6" stroke-width="2"/>
<line x1="165" y1="120" x2="230" y2="120" stroke="#3b82f6" stroke-width="2"/>
<line x1="370" y1="120" x2="435" y2="120" stroke="#3b82f6" stroke-width="2"/>
<line x1="165" y1="120" x2="165" y2="150" stroke="#3b82f6" stroke-width="2" marker-end="url(#arrow)"/>
<line x1="435" y1="120" x2="435" y2="150" stroke="#3b82f6" stroke-width="2" marker-end="url(#arrow)"/>
<!-- Arrow: Orchestrator → Team Lead Verification -->
<line x1="220" y1="80" x2="165" y2="145" stroke="#3b82f6" stroke-width="2" marker-end="url(#arr)"/>
<!-- Arrow: Orchestrator → Team Lead Codegen -->
<line x1="380" y1="80" x2="435" y2="145" stroke="#3b82f6" stroke-width="2" marker-end="url(#arr)"/>
<!-- Team Lead: Verification -->
<rect x="60" y="155" width="210" height="70" rx="8" fill="#1e3a5f" stroke="#f59e0b" stroke-width="2"/>
<text x="165" y="185" text-anchor="middle" fill="#f8fafc" font-family="system-ui, sans-serif" font-size="14" font-weight="bold">Team Lead</text>
<text x="165" y="205" text-anchor="middle" fill="#fbbf24" font-family="system-ui, sans-serif" font-size="12">Verification</text>
<rect x="60" y="150" width="210" height="60" rx="8" fill="#1e3a5f" stroke="#f59e0b" stroke-width="2"/>
<text x="165" y="177" text-anchor="middle" fill="#f8fafc" font-family="system-ui, sans-serif" font-size="14" font-weight="bold">Team Lead</text>
<text x="165" y="197" text-anchor="middle" fill="#fbbf24" font-family="system-ui, sans-serif" font-size="12">Verification</text>
<!-- Team Lead: Codegen -->
<rect x="330" y="155" width="210" height="70" rx="8" fill="#1e3a5f" stroke="#10b981" stroke-width="2"/>
<text x="435" y="185" text-anchor="middle" fill="#f8fafc" font-family="system-ui, sans-serif" font-size="14" font-weight="bold">Team Lead</text>
<text x="435" y="205" text-anchor="middle" fill="#6ee7b7" font-family="system-ui, sans-serif" font-size="12">Codegen</text>
<rect x="330" y="150" width="210" height="60" rx="8" fill="#1e3a5f" stroke="#10b981" stroke-width="2"/>
<text x="435" y="177" text-anchor="middle" fill="#f8fafc" font-family="system-ui, sans-serif" font-size="14" font-weight="bold">Team Lead</text>
<text x="435" y="197" text-anchor="middle" fill="#6ee7b7" font-family="system-ui, sans-serif" font-size="12">Codegen</text>
<!-- Connectors: Team Lead → SME -->
<line x1="165" y1="225" x2="165" y2="260" stroke="#f59e0b" stroke-width="2" marker-end="url(#arrow)"/>
<line x1="435" y1="225" x2="435" y2="260" stroke="#10b981" stroke-width="2" marker-end="url(#arrow)"/>
<!-- Arrow: Team Lead Verification → Z3 SME -->
<line x1="165" y1="210" x2="165" y2="250" stroke="#f59e0b" stroke-width="2" marker-end="url(#arr)"/>
<!-- Arrow: Team Lead Codegen → TypeScript SME -->
<line x1="435" y1="210" x2="435" y2="250" stroke="#10b981" stroke-width="2" marker-end="url(#arr)"/>
<!-- SME: Z3 -->
<rect x="60" y="265" width="210" height="50" rx="8" fill="#1e3a5f" stroke="#f59e0b" stroke-width="1.5"/>
<text x="165" y="287" text-anchor="middle" fill="#f8fafc" font-family="system-ui, sans-serif" font-size="14" font-weight="bold">Z3 SME</text>
<text x="165" y="303" text-anchor="middle" fill="#fbbf24" font-family="system-ui, sans-serif" font-size="11">(verify)</text>
<rect x="60" y="255" width="210" height="50" rx="8" fill="#1e3a5f" stroke="#f59e0b" stroke-width="1.5"/>
<text x="165" y="277" text-anchor="middle" fill="#f8fafc" font-family="system-ui, sans-serif" font-size="14" font-weight="bold">Z3 SME</text>
<text x="165" y="295" text-anchor="middle" fill="#fbbf24" font-family="system-ui, sans-serif" font-size="11">(verify)</text>
<!-- SME: TypeScript -->
<rect x="330" y="265" width="210" height="50" rx="8" fill="#1e3a5f" stroke="#10b981" stroke-width="1.5"/>
<text x="435" y="287" text-anchor="middle" fill="#f8fafc" font-family="system-ui, sans-serif" font-size="14" font-weight="bold">TypeScript SME</text>
<text x="435" y="303" text-anchor="middle" fill="#6ee7b7" font-family="system-ui, sans-serif" font-size="11">(emit)</text>
</svg>
<rect x="330" y="255" width="210" height="50" rx="8" fill="#1e3a5f" stroke="#10b981" stroke-width="1.5"/>
<text x="435" y="277" text-anchor="middle" fill="#f8fafc" font-family="system-ui, sans-serif" font-size="14" font-weight="bold">TypeScript SME</text>
<text x="435" y="295" text-anchor="middle" fill="#6ee7b7" font-family="system-ui, sans-serif" font-size="11">(emit)</text>
</svg>

Before

Width:  |  Height:  |  Size: 3.2 KiB

After

Width:  |  Height:  |  Size: 2.9 KiB

Before After
Before After

View file

@ -1,14 +1,11 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 600 420">
<defs>
<marker id="arr" markerWidth="10" markerHeight="7" refX="9" refY="3.5" orient="auto" fill="#3b82f6">
<marker id="arr-b" markerWidth="10" markerHeight="7" refX="9" refY="3.5" orient="auto" fill="#3b82f6">
<polygon points="0 0, 10 3.5, 0 7"/>
</marker>
<marker id="arr-g" markerWidth="10" markerHeight="7" refX="9" refY="3.5" orient="auto" fill="#10b981">
<polygon points="0 0, 10 3.5, 0 7"/>
</marker>
<marker id="arr-p" markerWidth="10" markerHeight="7" refX="9" refY="3.5" orient="auto" fill="#8b5cf6">
<polygon points="0 0, 10 3.5, 0 7"/>
</marker>
</defs>
<!-- PLAN D -->
@ -18,33 +15,33 @@
<text x="300" y="78" text-anchor="middle" fill="#94a3b8" font-family="system-ui, sans-serif" font-size="11">SpeckDL · Dark Provenance · Reference agents · Certification</text>
<!-- D → C arrow -->
<line x1="220" y1="100" x2="220" y2="145" stroke="#3b82f6" stroke-width="2" marker-end="url(#arr)"/>
<line x1="220" y1="100" x2="220" y2="148" stroke="#3b82f6" stroke-width="2" marker-end="url(#arr-b)"/>
<!-- D → A arrow -->
<line x1="420" y1="100" x2="420" y2="145" stroke="#3b82f6" stroke-width="2" marker-end="url(#arr)"/>
<line x1="420" y1="100" x2="420" y2="148" stroke="#3b82f6" stroke-width="2" marker-end="url(#arr-b)"/>
<!-- PLAN C -->
<rect x="50" y="150" width="280" height="80" rx="8" fill="#1e3a5f" stroke="#f59e0b" stroke-width="2"/>
<text x="190" y="176" text-anchor="middle" fill="#f59e0b" font-family="system-ui, sans-serif" font-size="15" font-weight="bold">PLAN C</text>
<text x="190" y="196" text-anchor="middle" fill="#f8fafc" font-family="system-ui, sans-serif" font-size="13" font-weight="bold">Consulting + Services</text>
<text x="190" y="214" text-anchor="middle" fill="#94a3b8" font-family="system-ui, sans-serif" font-size="11">Validates · Funds early · Builds case studies</text>
<rect x="50" y="155" width="280" height="80" rx="8" fill="#1e3a5f" stroke="#f59e0b" stroke-width="2"/>
<text x="190" y="181" text-anchor="middle" fill="#f59e0b" font-family="system-ui, sans-serif" font-size="15" font-weight="bold">PLAN C</text>
<text x="190" y="201" text-anchor="middle" fill="#f8fafc" font-family="system-ui, sans-serif" font-size="13" font-weight="bold">Consulting + Services</text>
<text x="190" y="219" text-anchor="middle" fill="#94a3b8" font-family="system-ui, sans-serif" font-size="11">Validates · Funds early · Builds case studies</text>
<!-- PLAN A -->
<rect x="350" y="150" width="220" height="80" rx="8" fill="#1e3a5f" stroke="#10b981" stroke-width="2"/>
<text x="460" y="176" text-anchor="middle" fill="#10b981" font-family="system-ui, sans-serif" font-size="15" font-weight="bold">PLAN A</text>
<text x="460" y="196" text-anchor="middle" fill="#f8fafc" font-family="system-ui, sans-serif" font-size="13" font-weight="bold">Developer Tool (SaaS)</text>
<text x="460" y="214" text-anchor="middle" fill="#94a3b8" font-family="system-ui, sans-serif" font-size="11">Self-serve PLG · Provenance graph data</text>
<rect x="360" y="155" width="200" height="80" rx="8" fill="#1e3a5f" stroke="#10b981" stroke-width="2"/>
<text x="460" y="181" text-anchor="middle" fill="#10b981" font-family="system-ui, sans-serif" font-size="15" font-weight="bold">PLAN A</text>
<text x="460" y="201" text-anchor="middle" fill="#f8fafc" font-family="system-ui, sans-serif" font-size="13" font-weight="bold">Developer Tool (SaaS)</text>
<text x="460" y="219" text-anchor="middle" fill="#94a3b8" font-family="system-ui, sans-serif" font-size="11">Self-serve PLG · Provenance data</text>
<!-- C feeds A arrow -->
<line x1="330" y1="190" x2="345" y2="190" stroke="#94a3b8" stroke-width="1.5" marker-end="url(#arr)"/>
<line x1="330" y1="195" x2="355" y2="195" stroke="#94a3b8" stroke-width="1.5" marker-end="url(#arr-b)"/>
<!-- A → B arrow -->
<line x1="420" y1="230" x2="420" y2="280" stroke="#10b981" stroke-width="2" marker-end="url(#arr-g)"/>
<line x1="460" y1="235" x2="460" y2="283" stroke="#10b981" stroke-width="2" marker-end="url(#arr-g)"/>
<!-- PLAN B -->
<rect x="175" y="285" width="250" height="80" rx="8" fill="#1e3a5f" stroke="#8b5cf6" stroke-width="2"/>
<text x="300" y="311" text-anchor="middle" fill="#8b5cf6" font-family="system-ui, sans-serif" font-size="15" font-weight="bold">PLAN B</text>
<text x="300" y="331" text-anchor="middle" fill="#f8fafc" font-family="system-ui, sans-serif" font-size="13" font-weight="bold">Compliance Infra (API)</text>
<text x="300" y="349" text-anchor="middle" fill="#94a3b8" font-family="system-ui, sans-serif" font-size="11">Feeds on SaaS data · Highest margin · Enterprise sticky</text>
<rect x="175" y="290" width="250" height="80" rx="8" fill="#1e3a5f" stroke="#8b5cf6" stroke-width="2"/>
<text x="300" y="316" text-anchor="middle" fill="#8b5cf6" font-family="system-ui, sans-serif" font-size="15" font-weight="bold">PLAN B</text>
<text x="300" y="336" text-anchor="middle" fill="#f8fafc" font-family="system-ui, sans-serif" font-size="13" font-weight="bold">Compliance Infra (API)</text>
<text x="300" y="354" text-anchor="middle" fill="#94a3b8" font-family="system-ui, sans-serif" font-size="11">Feeds on SaaS data · Highest margin · Enterprise sticky</text>
<!-- Flow label -->
<text x="300" y="400" text-anchor="middle" fill="#64748b" font-family="system-ui, sans-serif" font-size="12" font-style="italic">D → C → A → B: Standard builds credibility, consulting validates, SaaS scales, compliance monetizes</text>

Before

Width:  |  Height:  |  Size: 3.7 KiB

After

Width:  |  Height:  |  Size: 3.5 KiB

Before After
Before After