<?xml version="1.0" encoding="UTF-8"?>
<mxfile host="app.diagrams.net" modified="2026-09-02T00:00:00.000Z" agent="Codex" version="24.7.17"><diagram id="agent-friendly-control-surface" name="agent-friendly-control-surface"><mxGraphModel dx="1480" dy="860" grid="1" gridSize="10" guides="1" tooltips="1" connect="1" arrows="1" fold="1" page="1" pageScale="1" pageWidth="1400" pageHeight="800" math="0" shadow="0" background="#ffffff"><root>
<mxCell id="0"/><mxCell id="1" parent="0"/>
<mxCell id="hdr2" value="&lt;b&gt;What an agent actually needs to ship a site&lt;/b&gt;" style="rounded=1;whiteSpace=wrap;html=1;align=left;spacingLeft=20;fillColor=#0f172a;strokeColor=#0f172a;fontColor=#ffffff;fontSize=19;" vertex="1" parent="1"><mxGeometry x="40" y="30" width="1320" height="52" as="geometry"/></mxCell>
<mxCell id="e2_0" value="" style="edgeStyle=orthogonalEdgeStyle;rounded=1;html=1;strokeColor=#334155;strokeWidth=2;endArrow=classic;endFill=1;" edge="1" parent="1" source="you" target="agent"><mxGeometry relative="1" as="geometry"/></mxCell>
<mxCell id="e2_1" value="" style="edgeStyle=orthogonalEdgeStyle;rounded=1;html=1;strokeColor=#334155;strokeWidth=2;endArrow=classic;endFill=1;dashed=1;" edge="1" parent="1" source="agent" target="auth"><mxGeometry relative="1" as="geometry"/></mxCell>
<mxCell id="e2_2" value="" style="edgeStyle=orthogonalEdgeStyle;rounded=1;html=1;strokeColor=#334155;strokeWidth=2;endArrow=classic;endFill=1;" edge="1" parent="1" source="agent" target="cli"><mxGeometry relative="1" as="geometry"/></mxCell>
<mxCell id="e2_3" value="" style="edgeStyle=orthogonalEdgeStyle;rounded=1;html=1;strokeColor=#334155;strokeWidth=2;endArrow=classic;endFill=1;" edge="1" parent="1" source="agent" target="mcp"><mxGeometry relative="1" as="geometry"/></mxCell>
<mxCell id="e2_4" value="" style="edgeStyle=orthogonalEdgeStyle;rounded=1;html=1;strokeColor=#334155;strokeWidth=2;endArrow=classic;endFill=1;" edge="1" parent="1" source="agent" target="api"><mxGeometry relative="1" as="geometry"/></mxCell>
<mxCell id="e2_5" value="" style="edgeStyle=orthogonalEdgeStyle;rounded=1;html=1;strokeColor=#334155;strokeWidth=2;endArrow=classic;endFill=1;" edge="1" parent="1" source="cli" target="vendor"><mxGeometry relative="1" as="geometry"/></mxCell>
<mxCell id="e2_6" value="" style="edgeStyle=orthogonalEdgeStyle;rounded=1;html=1;strokeColor=#334155;strokeWidth=2;endArrow=classic;endFill=1;" edge="1" parent="1" source="mcp" target="vendor"><mxGeometry relative="1" as="geometry"/></mxCell>
<mxCell id="e2_7" value="" style="edgeStyle=orthogonalEdgeStyle;rounded=1;html=1;strokeColor=#334155;strokeWidth=2;endArrow=classic;endFill=1;" edge="1" parent="1" source="api" target="vendor"><mxGeometry relative="1" as="geometry"/></mxCell>
<mxCell id="e2_8" value="" style="edgeStyle=orthogonalEdgeStyle;rounded=1;html=1;strokeColor=#334155;strokeWidth=2;endArrow=classic;endFill=1;" edge="1" parent="1" source="vendor" target="vercel"><mxGeometry relative="1" as="geometry"/></mxCell>
<mxCell id="e2_9" value="" style="edgeStyle=orthogonalEdgeStyle;rounded=1;html=1;strokeColor=#334155;strokeWidth=2;endArrow=classic;endFill=1;dashed=1;" edge="1" parent="1" source="agent" target="log"><mxGeometry relative="1" as="geometry"/></mxCell>
<mxCell id="e2_10" value="" style="edgeStyle=orthogonalEdgeStyle;rounded=1;html=1;strokeColor=#334155;strokeWidth=2;endArrow=classic;endFill=1;dashed=1;" edge="1" parent="1" source="log" target="rollback"><mxGeometry relative="1" as="geometry"/></mxCell>
<mxCell id="you" value="&lt;b&gt;You&lt;/b&gt;&lt;br&gt;ask for a change or&lt;br&gt;a new deployment" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#ffffff;strokeColor=#0f172a;strokeWidth=2;fontSize=13;labelBackgroundColor=#ffffff;align=center;" vertex="1" parent="1"><mxGeometry x="40" y="130" width="220" height="110" as="geometry"/></mxCell>
<mxCell id="agent" value="&lt;b&gt;Coding agent&lt;/b&gt;&lt;br&gt;CLI · MCP · API&lt;br&gt;runs on your machine&lt;br&gt;or a cloud runner" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#ffffff;strokeColor=#2563eb;strokeWidth=2;fontSize=13;labelBackgroundColor=#ffffff;align=center;" vertex="1" parent="1"><mxGeometry x="340" y="130" width="260" height="140" as="geometry"/></mxCell>
<mxCell id="auth" value="&lt;b&gt;Auth token&lt;/b&gt;&lt;br&gt;scoped key, stored as an&lt;br&gt;environment variable&lt;br&gt;never committed to git" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#ffffff;strokeColor=#d97706;strokeWidth=2;fontSize=13;labelBackgroundColor=#ffffff;align=center;" vertex="1" parent="1"><mxGeometry x="340" y="360" width="260" height="120" as="geometry"/></mxCell>
<mxCell id="cli" value="&lt;b&gt;CLI&lt;/b&gt;&lt;br&gt;terminal commands&lt;br&gt;e.g. vercel deploy" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#ffffff;strokeColor=#7c3aed;strokeWidth=2;fontSize=13;labelBackgroundColor=#ffffff;align=center;" vertex="1" parent="1"><mxGeometry x="700" y="100" width="280" height="100" as="geometry"/></mxCell>
<mxCell id="mcp" value="&lt;b&gt;MCP server&lt;/b&gt;&lt;br&gt;a tool surface the agent&lt;br&gt;discovers and calls" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#ffffff;strokeColor=#7c3aed;strokeWidth=2;fontSize=13;labelBackgroundColor=#ffffff;align=center;" vertex="1" parent="1"><mxGeometry x="700" y="230" width="280" height="100" as="geometry"/></mxCell>
<mxCell id="api" value="&lt;b&gt;API&lt;/b&gt;&lt;br&gt;direct HTTPS calls&lt;br&gt;when no CLI or MCP exists" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#ffffff;strokeColor=#7c3aed;strokeWidth=2;fontSize=13;labelBackgroundColor=#ffffff;align=center;" vertex="1" parent="1"><mxGeometry x="700" y="360" width="280" height="100" as="geometry"/></mxCell>
<mxCell id="vendor" value="&lt;b&gt;Vendor&lt;/b&gt;&lt;br&gt;Vercel · Cloudflare ·&lt;br&gt;Hetzner · Coolify&lt;br&gt;the service doing the work" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#ffffff;strokeColor=#059669;strokeWidth=2;fontSize=13;labelBackgroundColor=#ffffff;align=center;" vertex="1" parent="1"><mxGeometry x="1070" y="100" width="280" height="120" as="geometry"/></mxCell>
<mxCell id="vercel" value="&lt;b&gt;Result&lt;/b&gt;&lt;br&gt;production URL&lt;br&gt;or preview URL" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#ffffff;strokeColor=#0d9488;strokeWidth=2;fontSize=13;labelBackgroundColor=#ffffff;align=center;" vertex="1" parent="1"><mxGeometry x="1070" y="260" width="280" height="110" as="geometry"/></mxCell>
<mxCell id="log" value="&lt;b&gt;Logs&lt;/b&gt;&lt;br&gt;what the agent reads&lt;br&gt;to know if it worked" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#ffffff;strokeColor=#0891b2;strokeWidth=2;fontSize=13;labelBackgroundColor=#ffffff;align=center;" vertex="1" parent="1"><mxGeometry x="40" y="360" width="220" height="120" as="geometry"/></mxCell>
<mxCell id="rollback" value="&lt;b&gt;Rollback&lt;/b&gt;&lt;br&gt;put the previous good&lt;br&gt;version back" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#ffffff;strokeColor=#dc2626;strokeWidth=2;fontSize=13;labelBackgroundColor=#ffffff;align=center;" vertex="1" parent="1"><mxGeometry x="40" y="560" width="220" height="110" as="geometry"/></mxCell>
<mxCell id="legend2" value="Solid arrows are the paths that make deployment work. Dashed arrows are the parts that keep it safe: the token is scoped and never committed, logs tell the agent whether the build succeeded, and rollback puts the previous good version back. · Evidence date: 2 Sep 2026" style="rounded=1;whiteSpace=wrap;html=1;align=center;fillColor=#f8fafc;strokeColor=#cbd5e1;fontSize=12;fontStyle=2;labelBackgroundColor=#f8fafc;" vertex="1" parent="1"><mxGeometry x="40" y="730" width="1320" height="46" as="geometry"/></mxCell>
</root></mxGraphModel></diagram></mxfile>
