1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
|
<mxfile host="app.diagrams.net">
<diagram id="gemma-coder-flow" name="demos/gemma-coder — how the agent works">
<mxGraphModel dx="1200" dy="680" grid="1" gridSize="10" guides="1" tooltips="1" connect="1" arrows="1" fold="1" page="1" pageScale="1" pageWidth="1200" pageHeight="680" background="#F5F7FC" math="0" shadow="0">
<root>
<mxCell id="0"/>
<mxCell id="1" parent="0"/>
<mxCell id="title" value="<b style="font-size:25px;color:#1A237E">demos/gemma-coder — how the agent works</b><br><i style="font-size:14px;color:#546E7A">one request, one tool call per reply, done only when gopls, gofmt, the build and the tests agree</i>" style="text;html=1;align=center;verticalAlign=middle;strokeColor=none;fillColor=none;" vertex="1" parent="1"><mxGeometry x="150.0" y="12" width="900" height="56" as="geometry"/></mxCell>
<mxCell id="c12" value="" style="edgeStyle=none;rounded=0;html=1;strokeColor=#37474F;strokeWidth=2;endArrow=block;endFill=1;startArrow=none;" edge="1" parent="1"><mxGeometry relative="1" as="geometry"><mxPoint x="220" y="200" as="sourcePoint"/><mxPoint x="300" y="200" as="targetPoint"/></mxGeometry></mxCell>
<mxCell id="c14" value="" style="edgeStyle=none;rounded=0;html=1;strokeColor=#37474F;strokeWidth=2;endArrow=block;endFill=1;startArrow=none;" edge="1" parent="1"><mxGeometry relative="1" as="geometry"><mxPoint x="540" y="200" as="sourcePoint"/><mxPoint x="900" y="200" as="targetPoint"/></mxGeometry></mxCell>
<mxCell id="c16" value="" style="edgeStyle=none;rounded=0;html=1;strokeColor=#37474F;strokeWidth=2;endArrow=block;endFill=1;startArrow=none;" edge="1" parent="1"><mxGeometry relative="1" as="geometry"><mxPoint x="420" y="270" as="sourcePoint"/><mxPoint x="420" y="370" as="targetPoint"/></mxGeometry></mxCell>
<mxCell id="c18" value="" style="edgeStyle=none;rounded=0;html=1;strokeColor=#37474F;strokeWidth=2;endArrow=block;endFill=1;startArrow=none;" edge="1" parent="1"><mxGeometry relative="1" as="geometry"><mxPoint x="540" y="430" as="sourcePoint"/><mxPoint x="600" y="430" as="targetPoint"/></mxGeometry></mxCell>
<mxCell id="c19" value="" style="edgeStyle=none;rounded=0;html=1;strokeColor=#37474F;strokeWidth=2;endArrow=block;endFill=1;startArrow=none;" edge="1" parent="1"><mxGeometry relative="1" as="geometry"><mxPoint x="820" y="430" as="sourcePoint"/><mxPoint x="880" y="430" as="targetPoint"/></mxGeometry></mxCell>
<mxCell id="c20" value="" style="edgeStyle=none;rounded=0;html=1;strokeColor=#37474F;strokeWidth=2;endArrow=block;endFill=1;startArrow=none;" edge="1" parent="1"><mxGeometry relative="1" as="geometry"><mxPoint x="1030" y="330" as="sourcePoint"/><mxPoint x="1030" y="260" as="targetPoint"/></mxGeometry></mxCell>
<mxCell id="c22" value="" style="edgeStyle=none;rounded=0;html=1;strokeColor=#EF6C00;strokeWidth=2;endArrow=block;endFill=1;startArrow=none;dashed=1;" edge="1" parent="1"><mxGeometry relative="1" as="geometry"><mxPoint x="1030" y="600" as="sourcePoint"/><mxPoint x="710" y="490" as="targetPoint"/><Array as="points"><mxPoint x="1030" y="635"/><mxPoint x="710" y="635"/></Array></mxGeometry></mxCell>
<mxCell id="c24" value="" style="edgeStyle=none;rounded=0;html=1;strokeColor=#37474F;strokeWidth=2;endArrow=block;endFill=1;startArrow=none;" edge="1" parent="1"><mxGeometry relative="1" as="geometry"><mxPoint x="1030" y="140" as="sourcePoint"/><mxPoint x="130" y="140" as="targetPoint"/><Array as="points"><mxPoint x="1030" y="100"/><mxPoint x="130" y="100"/></Array></mxGeometry></mxCell>
<mxCell id="c1" value="🧑<br><b style="font-size:16px">User</b><br><span style="font-size:11.5px;font-weight:normal">describes what they want<br>terminal · -tui · editor</span>" style="rounded=1;arcSize=14;whiteSpace=wrap;html=1;fillColor=#E3F2FD;gradientColor=#BBDEFB;strokeColor=#1565C0;strokeWidth=2;shadow=1;fontSize=20;fontColor=#0D47A1;" vertex="1" parent="1"><mxGeometry x="40" y="140" width="180" height="120" as="geometry"/></mxCell>
<mxCell id="c2" value="⚖️<br><b style="font-size:16px">Directive or Inquiry?</b><br><span style="font-size:11.5px;font-weight:normal">Gemma 4 26B-A4B · thinking on<br>add / fix / create → act<br>explain / review → read only</span>" style="rounded=1;arcSize=14;whiteSpace=wrap;html=1;fillColor=#F3E5F5;gradientColor=#E1BEE7;strokeColor=#6A1B9A;strokeWidth=3;shadow=1;fontSize=20;fontColor=#4A148C;" vertex="1" parent="1"><mxGeometry x="300" y="140" width="240" height="130" as="geometry"/></mxCell>
<mxCell id="c3" value="<b>★ triage</b>" style="rounded=1;arcSize=50;html=1;fillColor=#6A1B9A;strokeColor=none;fontColor=#FFFFFF;fontSize=11;" vertex="1" parent="1"><mxGeometry x="478.4" y="128" width="71.6" height="24" as="geometry"/></mxCell>
<mxCell id="c4" value="💬<br><b style="font-size:16px">Final answer</b><br><span style="font-size:11.5px;font-weight:normal">files changed · go test: ok<br>how to run it · in your language</span>" style="rounded=1;arcSize=14;whiteSpace=wrap;html=1;fillColor=#E1F5FE;gradientColor=#B3E5FC;strokeColor=#0277BD;strokeWidth=2;shadow=1;fontSize=20;fontColor=#01579B;" vertex="1" parent="1"><mxGeometry x="900" y="140" width="260" height="120" as="geometry"/></mxCell>
<mxCell id="c5" value="🔍<br><b style="font-size:16px">Research</b><br><span style="font-size:11.5px;font-weight:normal">go.mod · git ls-files · read_file<br>lsp definition / references</span>" style="rounded=1;arcSize=14;whiteSpace=wrap;html=1;fillColor=#E1F5FE;gradientColor=#B3E5FC;strokeColor=#0277BD;strokeWidth=2;shadow=1;fontSize=20;fontColor=#01579B;" vertex="1" parent="1"><mxGeometry x="300" y="370" width="240" height="120" as="geometry"/></mxCell>
<mxCell id="c6" value="🔧<br><b style="font-size:16px">Act</b><br><span style="font-size:11.5px;font-weight:normal">edit_file / write_file<br>one file per call</span>" style="rounded=1;arcSize=14;whiteSpace=wrap;html=1;fillColor=#E1F5FE;gradientColor=#B3E5FC;strokeColor=#0277BD;strokeWidth=2;shadow=1;fontSize=20;fontColor=#01579B;" vertex="1" parent="1"><mxGeometry x="600" y="370" width="220" height="120" as="geometry"/></mxCell>
<mxCell id="c7" value="<i><b>Validate · asked after EVERY edit</b></i>" style="rounded=1;arcSize=3;html=1;dashed=1;dashPattern=7 5;fillColor=#FAFAFA;strokeColor=#90A4AE;strokeWidth=2;verticalAlign=top;fontColor=#607D8B;fontSize=13;" vertex="1" parent="1"><mxGeometry x="880" y="330" width="300" height="270" as="geometry"/></mxCell>
<mxCell id="c8" value="<b>1 · lsp diagnostics — 0/54 runs</b>" style="rounded=1;arcSize=20;whiteSpace=wrap;html=1;fillColor=#ECEFF1;gradientColor=#CFD8DC;strokeColor=#455A64;strokeWidth=2;shadow=1;fontSize=13;fontColor=#263238;" vertex="1" parent="1"><mxGeometry x="900" y="368" width="260" height="44" as="geometry"/></mxCell>
<mxCell id="c9" value="<b>2 · gofmt -l . — 3/18 runs</b>" style="rounded=1;arcSize=20;whiteSpace=wrap;html=1;fillColor=#ECEFF1;gradientColor=#CFD8DC;strokeColor=#455A64;strokeWidth=2;shadow=1;fontSize=13;fontColor=#263238;" vertex="1" parent="1"><mxGeometry x="900" y="422" width="260" height="44" as="geometry"/></mxCell>
<mxCell id="c10" value="<b>3 · go build ./...</b>" style="rounded=1;arcSize=20;whiteSpace=wrap;html=1;fillColor=#ECEFF1;gradientColor=#CFD8DC;strokeColor=#455A64;strokeWidth=2;shadow=1;fontSize=13;fontColor=#263238;" vertex="1" parent="1"><mxGeometry x="900" y="476" width="260" height="44" as="geometry"/></mxCell>
<mxCell id="c11" value="<b>4 · go test ./...</b>" style="rounded=1;arcSize=20;whiteSpace=wrap;html=1;fillColor=#ECEFF1;gradientColor=#CFD8DC;strokeColor=#455A64;strokeWidth=2;shadow=1;fontSize=13;fontColor=#263238;" vertex="1" parent="1"><mxGeometry x="900" y="530" width="260" height="44" as="geometry"/></mxCell>
<mxCell id="c13" value="<b style="font-size:12.5px;color:#263238">request</b>" style="text;html=1;align=center;verticalAlign=middle;fillColor=#FFFFFF;strokeColor=none;rounded=1;" vertex="1" parent="1"><mxGeometry x="227.0" y="216.0" width="66" height="24" as="geometry"/></mxCell>
<mxCell id="c15" value="<b style="font-size:12.5px;color:#263238">Inquiry</b><br><span style="font-size:10.5px;color:#78909C">read-only: no file changed</span>" style="text;html=1;align=center;verticalAlign=middle;fillColor=#FFFFFF;strokeColor=none;rounded=1;" vertex="1" parent="1"><mxGeometry x="628.1" y="180.0" width="183.79999999999998" height="40" as="geometry"/></mxCell>
<mxCell id="c17" value="<b style="font-size:12.5px;color:#263238">Directive</b>" style="text;html=1;align=center;verticalAlign=middle;fillColor=#FFFFFF;strokeColor=none;rounded=1;" vertex="1" parent="1"><mxGeometry x="380.0" y="308.0" width="80" height="24" as="geometry"/></mxCell>
<mxCell id="c21" value="<b style="font-size:12.5px;color:#263238">all green</b>" style="text;html=1;align=center;verticalAlign=middle;fillColor=#FFFFFF;strokeColor=none;rounded=1;" vertex="1" parent="1"><mxGeometry x="1060.0" y="283.0" width="80" height="24" as="geometry"/></mxCell>
<mxCell id="c23" value="<b style="font-size:12.5px;color:#263238">a step fails → fix the cause, run it again</b>" style="text;html=1;align=center;verticalAlign=middle;fillColor=#FFFFFF;strokeColor=none;rounded=1;" vertex="1" parent="1"><mxGeometry x="700.4" y="623.0" width="339.2" height="24" as="geometry"/></mxCell>
<mxCell id="c25" value="<b style="font-size:12.5px;color:#263238">the result, verified in this session</b>" style="text;html=1;align=center;verticalAlign=middle;fillColor=#FFFFFF;strokeColor=none;rounded=1;" vertex="1" parent="1"><mxGeometry x="433.20000000000005" y="88.0" width="293.59999999999997" height="24" as="geometry"/></mxCell>
<mxCell id="c26" value="same failure 3× → stop, re-read the request," style="text;html=1;align=center;verticalAlign=middle;strokeColor=none;fillColor=none;fontSize=12;fontColor=#455A64;fontStyle=2;" vertex="1" parent="1"><mxGeometry x="256.32" y="518" width="327.36" height="18" as="geometry"/></mxCell>
<mxCell id="c27" value="list the assumptions, change approach" style="text;html=1;align=center;verticalAlign=middle;strokeColor=none;fillColor=none;fontSize=12;fontColor=#455A64;fontStyle=2;" vertex="1" parent="1"><mxGeometry x="282.36" y="536" width="275.28" height="18" as="geometry"/></mxCell>
<mxCell id="c28" value="Commit only when asked — then without asking back" style="text;html=1;align=center;verticalAlign=middle;strokeColor=none;fillColor=none;fontSize=12;fontColor=#455A64;fontStyle=2;" vertex="1" parent="1"><mxGeometry x="237.72" y="578" width="364.56" height="18" as="geometry"/></mxCell>
<mxCell id="c29" value="(stage only the named files, own message, git status)" style="text;html=1;align=center;verticalAlign=middle;strokeColor=none;fillColor=none;fontSize=12;fontColor=#455A64;fontStyle=2;" vertex="1" parent="1"><mxGeometry x="222.84" y="596" width="394.32" height="18" as="geometry"/></mxCell>
</root>
</mxGraphModel>
</diagram>
</mxfile>
|