fabro/docs/images/ensemble-workflow.svg
Bryan Helmkamp 598b5b7d19 Update docs: fill in administration, agents, execution, and reference pages; remove placeholder pages
Remove stub pages (bring-your-own-key, costs, monitoring, usage, artifacts,
ai-tools, extensions, hooks, llms) and flesh out remaining pages with real
content covering advanced setup, security, permissions, MCP, observability,
interviews, environments, CLI reference, architecture, and workflow stages.
Add permission-flow diagram and tutorials section.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-05 20:25:23 -05:00

121 lines
6.8 KiB
XML

<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"
"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<!-- Generated by graphviz version 14.1.2 (20260124.0452)
-->
<!-- Title: Ensemble Pages: 1 -->
<svg width="587pt" height="98pt"
viewBox="0.00 0.00 587.00 98.00" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
<style>
@media (prefers-color-scheme: dark) {
[fill="#1a1a1a"] { fill: #e5e5e5; }
[fill="#666666"] { fill: #aaaaaa; }
[stroke="#666666"] { stroke: #aaaaaa; }
[stroke="#999999"] { stroke: #777777; }
}
</style>
<g id="graph0" class="graph" transform="scale(1 1) rotate(0) translate(4 94)">
<title>Ensemble</title>
<!-- start -->
<g id="node1" class="node">
<title>start</title>
<polygon fill="none" stroke="#357f9e" points="35.26,-63 0,-45 35.26,-27 70.52,-45 35.26,-63"/>
<polyline fill="none" stroke="#357f9e" points="10.69,-50.46 10.69,-39.54"/>
<polyline fill="none" stroke="#357f9e" points="24.57,-32.46 45.95,-32.46"/>
<polyline fill="none" stroke="#357f9e" points="59.83,-39.54 59.83,-50.46"/>
<polyline fill="none" stroke="#357f9e" points="45.95,-57.54 24.57,-57.54"/>
<text xml:space="preserve" text-anchor="middle" x="35.26" y="-39.98" font-family="Helvetica,sans-Serif" font-size="12.00" fill="#1a1a1a">Start</text>
</g>
<!-- fork -->
<g id="node3" class="node">
<title>fork</title>
<polygon fill="none" stroke="#357f9e" points="165.27,-63 106.52,-63 106.52,-59 102.52,-59 102.52,-55 106.52,-55 106.52,-35 102.52,-35 102.52,-31 106.52,-31 106.52,-27 165.27,-27 165.27,-63"/>
<polyline fill="none" stroke="#357f9e" points="106.52,-59 110.52,-59 110.52,-55 106.52,-55"/>
<polyline fill="none" stroke="#357f9e" points="106.52,-35 110.52,-35 110.52,-31 106.52,-31"/>
<text xml:space="preserve" text-anchor="middle" x="135.9" y="-39.98" font-family="Helvetica,sans-Serif" font-size="12.00" fill="#1a1a1a">Fan Out</text>
</g>
<!-- start&#45;&gt;fork -->
<g id="edge1" class="edge">
<title>start&#45;&gt;fork</title>
<path fill="none" stroke="#666666" d="M71.59,-45C79.15,-45 87.19,-45 94.92,-45"/>
<polygon fill="#666666" stroke="#666666" points="94.78,-48.5 104.78,-45 94.78,-41.5 94.78,-48.5"/>
</g>
<!-- exit -->
<g id="node2" class="node">
<title>exit</title>
<polygon fill="none" stroke="#357f9e" points="578.67,-63.12 542.42,-63.12 542.42,-26.88 578.67,-26.88 578.67,-63.12"/>
<polyline fill="none" stroke="#357f9e" points="554.42,-63.12 542.42,-51.12"/>
<polyline fill="none" stroke="#357f9e" points="542.42,-38.88 554.42,-26.88"/>
<polyline fill="none" stroke="#357f9e" points="566.67,-26.88 578.67,-38.88"/>
<polyline fill="none" stroke="#357f9e" points="578.67,-51.12 566.67,-63.12"/>
<text xml:space="preserve" text-anchor="middle" x="560.54" y="-39.98" font-family="Helvetica,sans-Serif" font-size="12.00" fill="#1a1a1a">Exit</text>
</g>
<!-- opus -->
<g id="node4" class="node">
<title>opus</title>
<polygon fill="none" stroke="#357f9e" points="276.52,-90 214.02,-90 214.02,-94 202.02,-94 202.02,-54 276.52,-54 276.52,-90"/>
<polyline fill="none" stroke="#357f9e" points="202.02,-90 214.02,-90"/>
<text xml:space="preserve" text-anchor="middle" x="239.27" y="-73.35" font-family="Helvetica,sans-Serif" font-size="12.00" fill="#1a1a1a">Opus</text>
<text xml:space="preserve" text-anchor="middle" x="239.27" y="-60.6" font-family="Helvetica,sans-Serif" font-size="12.00" fill="#1a1a1a">(Anthropic)</text>
</g>
<!-- fork&#45;&gt;opus -->
<g id="edge2" class="edge">
<title>fork&#45;&gt;opus</title>
<path fill="none" stroke="#666666" d="M165.68,-52.66C173.49,-54.75 182.17,-57.06 190.72,-59.34"/>
<polygon fill="#666666" stroke="#666666" points="189.79,-62.71 200.35,-61.9 191.59,-55.95 189.79,-62.71"/>
</g>
<!-- gemini -->
<g id="node5" class="node">
<title>gemini</title>
<polygon fill="none" stroke="#357f9e" points="277.27,-36 213.27,-36 213.27,-40 201.27,-40 201.27,0 277.27,0 277.27,-36"/>
<polyline fill="none" stroke="#357f9e" points="201.27,-36 213.27,-36"/>
<text xml:space="preserve" text-anchor="middle" x="239.27" y="-19.35" font-family="Helvetica,sans-Serif" font-size="12.00" fill="#1a1a1a">Gemini Pro</text>
<text xml:space="preserve" text-anchor="middle" x="239.27" y="-6.6" font-family="Helvetica,sans-Serif" font-size="12.00" fill="#1a1a1a">(Google)</text>
</g>
<!-- fork&#45;&gt;gemini -->
<g id="edge3" class="edge">
<title>fork&#45;&gt;gemini</title>
<path fill="none" stroke="#666666" d="M165.68,-37.34C173.33,-35.3 181.8,-33.04 190.19,-30.81"/>
<polygon fill="#666666" stroke="#666666" points="190.85,-34.25 199.61,-28.3 189.05,-27.49 190.85,-34.25"/>
</g>
<!-- merge -->
<g id="node6" class="node">
<title>merge</title>
<polygon fill="none" stroke="#357f9e" points="387.17,-37.54 387.17,-52.46 367.87,-63 340.57,-63 321.27,-52.46 321.27,-37.54 340.57,-27 367.87,-27 387.17,-37.54"/>
<polygon fill="none" stroke="#357f9e" points="391.17,-35.17 391.17,-54.83 368.89,-67 339.55,-67 317.27,-54.83 317.27,-35.17 339.55,-23 368.89,-23 391.17,-35.17"/>
<polygon fill="none" stroke="#357f9e" points="395.17,-32.8 395.17,-57.2 369.91,-71 338.53,-71 313.27,-57.2 313.27,-32.8 338.53,-19 369.91,-19 395.17,-32.8"/>
<text xml:space="preserve" text-anchor="middle" x="354.22" y="-39.98" font-family="Helvetica,sans-Serif" font-size="12.00" fill="#1a1a1a">Merge</text>
</g>
<!-- opus&#45;&gt;merge -->
<g id="edge4" class="edge">
<title>opus&#45;&gt;merge</title>
<path fill="none" stroke="#666666" d="M276.94,-63.23C284.92,-61.33 293.49,-59.28 301.91,-57.27"/>
<polygon fill="#666666" stroke="#666666" points="302.44,-60.74 311.36,-55.01 300.82,-53.93 302.44,-60.74"/>
</g>
<!-- gemini&#45;&gt;merge -->
<g id="edge5" class="edge">
<title>gemini&#45;&gt;merge</title>
<path fill="none" stroke="#666666" d="M277.57,-26.92C285.34,-28.77 293.67,-30.76 301.85,-32.72"/>
<polygon fill="#666666" stroke="#666666" points="300.84,-36.08 311.38,-35 302.47,-29.27 300.84,-36.08"/>
</g>
<!-- synth -->
<g id="node7" class="node">
<title>synth</title>
<polygon fill="none" stroke="#357f9e" points="506.42,-63 443.17,-63 443.17,-67 431.17,-67 431.17,-27 506.42,-27 506.42,-63"/>
<polyline fill="none" stroke="#357f9e" points="431.17,-63 443.17,-63"/>
<text xml:space="preserve" text-anchor="middle" x="468.79" y="-39.98" font-family="Helvetica,sans-Serif" font-size="12.00" fill="#1a1a1a">Synthesize</text>
</g>
<!-- merge&#45;&gt;synth -->
<g id="edge6" class="edge">
<title>merge&#45;&gt;synth</title>
<path fill="none" stroke="#666666" d="M395.54,-45C403.26,-45 411.41,-45 419.35,-45"/>
<polygon fill="#666666" stroke="#666666" points="419.24,-48.5 429.24,-45 419.24,-41.5 419.24,-48.5"/>
</g>
<!-- synth&#45;&gt;exit -->
<g id="edge7" class="edge">
<title>synth&#45;&gt;exit</title>
<path fill="none" stroke="#666666" d="M506.82,-45C514.71,-45 522.93,-45 530.47,-45"/>
<polygon fill="#666666" stroke="#666666" points="530.46,-48.5 540.46,-45 530.46,-41.5 530.46,-48.5"/>
</g>
</g>
</svg>