<mxfile host="app.diagrams.net" modified="2026-07-07T00:00:00.000Z" agent="Codex" version="26.0.0" type="device">
  <diagram id="charting-skill-sequential-flow" name="Charting Skill Sequential Flow">
    <mxGraphModel dx="1500" dy="900" grid="1" gridSize="10" guides="1" tooltips="1" connect="1" arrows="1" fold="1" page="1" pageScale="1" pageWidth="1500" pageHeight="900" math="0" shadow="0">
      <root>
        <mxCell id="0"/>
        <mxCell id="1" parent="0"/>
        <mxCell id="title" value="Charting Skill - Sequential Flow" style="text;html=1;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;fontStyle=1;fontSize=18;fontColor=#283342;" vertex="1" parent="1">
          <mxGeometry x="430" y="22" width="640" height="36" as="geometry"/>
        </mxCell>
        <mxCell id="loop1" value="&lt;b&gt;Loop 1: Intake&lt;/b&gt;&lt;br&gt;Freeze chart request + inputs" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#eaf3fb;strokeColor=#9bb9d2;fontSize=13;align=left;spacingLeft=10;fontColor=#1f2d3d;" vertex="1" parent="1">
          <mxGeometry x="48" y="158" width="228" height="56" as="geometry"/>
        </mxCell>
        <mxCell id="loop2" value="&lt;b&gt;Loop 2: Prepare &amp;amp; Render x2&lt;/b&gt;&lt;br&gt;Same chart brief, two candidate specs" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#fff4cc;strokeColor=#d8bd67;fontSize=13;align=left;spacingLeft=10;fontColor=#1f2d3d;" vertex="1" parent="1">
          <mxGeometry x="58" y="260" width="235" height="300" as="geometry"/>
        </mxCell>
        <mxCell id="worktree" value="Folder&lt;br&gt;or Worktree" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#ffffff;strokeColor=#111111;strokeWidth=2;fontSize=26;align=left;spacingLeft=12;fontColor=#202124;" vertex="1" parent="1">
          <mxGeometry x="68" y="420" width="170" height="88" as="geometry"/>
        </mxCell>
        <mxCell id="loop3" value="&lt;b&gt;Loop 3: QA &amp;amp; Approve&lt;/b&gt;&lt;br&gt;Readable, truthful, reproducible" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#fdeceb;strokeColor=#d59a9a;fontSize=13;align=left;spacingLeft=10;fontColor=#1f2d3d;" vertex="1" parent="1">
          <mxGeometry x="58" y="578" width="235" height="88" as="geometry"/>
        </mxCell>
        <mxCell id="loop4" value="&lt;b&gt;Loop 4: Deliver&lt;/b&gt;&lt;br&gt;Export chart + log rationale" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#eaf6df;strokeColor=#a9c995;fontSize=13;align=left;spacingLeft=10;fontColor=#1f2d3d;" vertex="1" parent="1">
          <mxGeometry x="58" y="698" width="235" height="82" as="geometry"/>
        </mxCell>

        <mxCell id="p_user" value="User" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#f7f7f7;strokeColor=#c6cbd1;fontStyle=1;fontSize=24;fontColor=#293241;" vertex="1" parent="1">
          <mxGeometry x="330" y="86" width="145" height="58" as="geometry"/>
        </mxCell>
        <mxCell id="p_llm" value="LLM" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#f7f7f7;strokeColor=#c6cbd1;fontStyle=1;fontSize=24;fontColor=#293241;" vertex="1" parent="1">
          <mxGeometry x="530" y="86" width="145" height="58" as="geometry"/>
        </mxCell>
        <mxCell id="p_skill" value="charting/&lt;br&gt;SKILL.md" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#f7f7f7;strokeColor=#c6cbd1;fontStyle=1;fontSize=24;fontColor=#293241;" vertex="1" parent="1">
          <mxGeometry x="730" y="86" width="145" height="58" as="geometry"/>
        </mxCell>
        <mxCell id="p_data" value="data source" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#f7f7f7;strokeColor=#c6cbd1;fontStyle=1;fontSize=24;fontColor=#293241;" vertex="1" parent="1">
          <mxGeometry x="930" y="86" width="145" height="58" as="geometry"/>
        </mxCell>
        <mxCell id="p_engine" value="chart engine" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#f7f7f7;strokeColor=#c6cbd1;fontStyle=1;fontSize=24;fontColor=#293241;" vertex="1" parent="1">
          <mxGeometry x="1130" y="86" width="145" height="58" as="geometry"/>
        </mxCell>
        <mxCell id="p_artifact" value="artifact/" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#f7f7f7;strokeColor=#c6cbd1;fontStyle=1;fontSize=24;fontColor=#293241;" vertex="1" parent="1">
          <mxGeometry x="1320" y="86" width="145" height="58" as="geometry"/>
        </mxCell>

        <mxCell id="life_user" value="" style="endArrow=none;dashed=1;html=1;rounded=0;strokeColor=#d6a15e;strokeWidth=1;" edge="1" parent="1">
          <mxGeometry width="50" height="50" relative="1" as="geometry">
            <mxPoint x="402.5" y="144" as="sourcePoint"/>
            <mxPoint x="402.5" y="805" as="targetPoint"/>
          </mxGeometry>
        </mxCell>
        <mxCell id="life_llm" value="" style="endArrow=none;dashed=1;html=1;rounded=0;strokeColor=#d6a15e;strokeWidth=1;" edge="1" parent="1">
          <mxGeometry width="50" height="50" relative="1" as="geometry">
            <mxPoint x="602.5" y="144" as="sourcePoint"/>
            <mxPoint x="602.5" y="805" as="targetPoint"/>
          </mxGeometry>
        </mxCell>
        <mxCell id="life_skill" value="" style="endArrow=none;dashed=1;html=1;rounded=0;strokeColor=#d6a15e;strokeWidth=1;" edge="1" parent="1">
          <mxGeometry width="50" height="50" relative="1" as="geometry">
            <mxPoint x="802.5" y="144" as="sourcePoint"/>
            <mxPoint x="802.5" y="805" as="targetPoint"/>
          </mxGeometry>
        </mxCell>
        <mxCell id="life_data" value="" style="endArrow=none;dashed=1;html=1;rounded=0;strokeColor=#d6a15e;strokeWidth=1;" edge="1" parent="1">
          <mxGeometry width="50" height="50" relative="1" as="geometry">
            <mxPoint x="1002.5" y="144" as="sourcePoint"/>
            <mxPoint x="1002.5" y="805" as="targetPoint"/>
          </mxGeometry>
        </mxCell>
        <mxCell id="life_engine" value="" style="endArrow=none;dashed=1;html=1;rounded=0;strokeColor=#d6a15e;strokeWidth=1;" edge="1" parent="1">
          <mxGeometry width="50" height="50" relative="1" as="geometry">
            <mxPoint x="1202.5" y="144" as="sourcePoint"/>
            <mxPoint x="1202.5" y="805" as="targetPoint"/>
          </mxGeometry>
        </mxCell>
        <mxCell id="life_artifact" value="" style="endArrow=none;dashed=1;html=1;rounded=0;strokeColor=#d6a15e;strokeWidth=1;" edge="1" parent="1">
          <mxGeometry width="50" height="50" relative="1" as="geometry">
            <mxPoint x="1392.5" y="144" as="sourcePoint"/>
            <mxPoint x="1392.5" y="805" as="targetPoint"/>
          </mxGeometry>
        </mxCell>

        <mxCell id="act_llm1" value="" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#58c4b6;strokeColor=#2b8d83;" vertex="1" parent="1">
          <mxGeometry x="596" y="170" width="13" height="42" as="geometry"/>
        </mxCell>
        <mxCell id="act_llm2" value="" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#58c4b6;strokeColor=#2b8d83;" vertex="1" parent="1">
          <mxGeometry x="596" y="244" width="13" height="164" as="geometry"/>
        </mxCell>
        <mxCell id="act_skill1" value="" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#58c4b6;strokeColor=#2b8d83;" vertex="1" parent="1">
          <mxGeometry x="796" y="252" width="13" height="84" as="geometry"/>
        </mxCell>
        <mxCell id="act_engine1" value="" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#58c4b6;strokeColor=#2b8d83;" vertex="1" parent="1">
          <mxGeometry x="1196" y="320" width="13" height="31" as="geometry"/>
        </mxCell>
        <mxCell id="act_llm3" value="" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#58c4b6;strokeColor=#2b8d83;" vertex="1" parent="1">
          <mxGeometry x="596" y="456" width="13" height="116" as="geometry"/>
        </mxCell>
        <mxCell id="act_data2" value="" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#58c4b6;strokeColor=#2b8d83;" vertex="1" parent="1">
          <mxGeometry x="996" y="464" width="13" height="48" as="geometry"/>
        </mxCell>
        <mxCell id="act_engine2" value="" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#58c4b6;strokeColor=#2b8d83;" vertex="1" parent="1">
          <mxGeometry x="1196" y="518" width="13" height="30" as="geometry"/>
        </mxCell>
        <mxCell id="act_llm4" value="" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#58c4b6;strokeColor=#2b8d83;" vertex="1" parent="1">
          <mxGeometry x="596" y="598" width="13" height="78" as="geometry"/>
        </mxCell>
        <mxCell id="act_skill2" value="" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#58c4b6;strokeColor=#2b8d83;" vertex="1" parent="1">
          <mxGeometry x="796" y="706" width="13" height="30" as="geometry"/>
        </mxCell>
        <mxCell id="act_artifact1" value="" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#58c4b6;strokeColor=#2b8d83;" vertex="1" parent="1">
          <mxGeometry x="1386" y="698" width="13" height="32" as="geometry"/>
        </mxCell>
        <mxCell id="act_artifact2" value="" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#58c4b6;strokeColor=#2b8d83;" vertex="1" parent="1">
          <mxGeometry x="1386" y="754" width="13" height="32" as="geometry"/>
        </mxCell>

        <mxCell id="e1" value="1: freeze brief / pick chart job" style="endArrow=block;html=1;rounded=0;fontSize=12;strokeColor=#333333;fontColor=#222222;" edge="1" parent="1">
          <mxGeometry relative="1" as="geometry">
            <mxPoint x="402.5" y="180" as="sourcePoint"/>
            <mxPoint x="596" y="180" as="targetPoint"/>
          </mxGeometry>
        </mxCell>
        <mxCell id="e2" value="&lt;font color=&quot;#5d8f2f&quot;&gt;Pass 1: baseline&lt;/font&gt;&amp;nbsp;&amp;nbsp; 2: load charting skill" style="endArrow=block;html=1;rounded=0;fontSize=12;strokeColor=#333333;fontColor=#222222;" edge="1" parent="1">
          <mxGeometry relative="1" as="geometry">
            <mxPoint x="609" y="255" as="sourcePoint"/>
            <mxPoint x="796" y="255" as="targetPoint"/>
          </mxGeometry>
        </mxCell>
        <mxCell id="e3" value="3: return chart rules" style="endArrow=open;startArrow=none;dashed=1;html=1;rounded=0;fontSize=12;strokeColor=#555555;fontColor=#222222;" edge="1" parent="1">
          <mxGeometry relative="1" as="geometry">
            <mxPoint x="796" y="286" as="sourcePoint"/>
            <mxPoint x="609" y="286" as="targetPoint"/>
          </mxGeometry>
        </mxCell>
        <mxCell id="e4" value="4: inspect + normalize source data" style="endArrow=block;html=1;rounded=0;fontSize=12;strokeColor=#333333;fontColor=#222222;" edge="1" parent="1">
          <mxGeometry relative="1" as="geometry">
            <mxPoint x="609" y="318" as="sourcePoint"/>
            <mxPoint x="996" y="318" as="targetPoint"/>
          </mxGeometry>
        </mxCell>
        <mxCell id="e5" value="5: profile fields / missing values" style="endArrow=open;startArrow=none;dashed=1;html=1;rounded=0;fontSize=12;strokeColor=#555555;fontColor=#222222;" edge="1" parent="1">
          <mxGeometry relative="1" as="geometry">
            <mxPoint x="996" y="346" as="sourcePoint"/>
            <mxPoint x="609" y="346" as="targetPoint"/>
          </mxGeometry>
        </mxCell>
        <mxCell id="e6" value="6: generate chart spec + render" style="endArrow=block;html=1;rounded=0;fontSize=12;strokeColor=#333333;fontColor=#222222;" edge="1" parent="1">
          <mxGeometry relative="1" as="geometry">
            <mxPoint x="609" y="376" as="sourcePoint"/>
            <mxPoint x="1196" y="376" as="targetPoint"/>
          </mxGeometry>
        </mxCell>
        <mxCell id="e7" value="7: ask feedback (optional)" style="endArrow=open;html=1;rounded=0;fontSize=12;strokeColor=#555555;fontColor=#222222;" edge="1" parent="1">
          <mxGeometry relative="1" as="geometry">
            <mxPoint x="596" y="396" as="sourcePoint"/>
            <mxPoint x="402.5" y="396" as="targetPoint"/>
          </mxGeometry>
        </mxCell>
        <mxCell id="e8" value="8: feedback (optional)" style="endArrow=block;dashed=1;html=1;rounded=0;fontSize=12;strokeColor=#555555;fontColor=#222222;" edge="1" parent="1">
          <mxGeometry relative="1" as="geometry">
            <mxPoint x="402.5" y="422" as="sourcePoint"/>
            <mxPoint x="596" y="422" as="targetPoint"/>
          </mxGeometry>
        </mxCell>

        <mxCell id="mutate" value="&lt;b&gt;Mutate&lt;/b&gt; - copy + tune - axes, labels, color, annotations, export path" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#f3e7fb;strokeColor=#aa7cc7;fontSize=13;fontColor=#222222;" vertex="1" parent="1">
          <mxGeometry x="415" y="435" width="985" height="34" as="geometry"/>
        </mxCell>
        <mxCell id="e9" value="&lt;font color=&quot;#d68120&quot;&gt;Pass 2: challenger&lt;/font&gt;&amp;nbsp;&amp;nbsp; 9: reread data slice" style="endArrow=block;html=1;rounded=0;fontSize=12;strokeColor=#333333;fontColor=#222222;" edge="1" parent="1">
          <mxGeometry relative="1" as="geometry">
            <mxPoint x="609" y="486" as="sourcePoint"/>
            <mxPoint x="996" y="486" as="targetPoint"/>
          </mxGeometry>
        </mxCell>
        <mxCell id="e10" value="10: return prepared frame" style="endArrow=open;startArrow=none;dashed=1;html=1;rounded=0;fontSize=12;strokeColor=#555555;fontColor=#222222;" edge="1" parent="1">
          <mxGeometry relative="1" as="geometry">
            <mxPoint x="996" y="516" as="sourcePoint"/>
            <mxPoint x="609" y="516" as="targetPoint"/>
          </mxGeometry>
        </mxCell>
        <mxCell id="e11" value="11: render candidate B + verify visual hypotheses" style="endArrow=block;html=1;rounded=0;fontSize=12;strokeColor=#333333;fontColor=#222222;" edge="1" parent="1">
          <mxGeometry relative="1" as="geometry">
            <mxPoint x="609" y="544" as="sourcePoint"/>
            <mxPoint x="1196" y="544" as="targetPoint"/>
          </mxGeometry>
        </mxCell>
        <mxCell id="e12" value="12: ask feedback (optional)" style="endArrow=open;html=1;rounded=0;fontSize=12;strokeColor=#555555;fontColor=#222222;" edge="1" parent="1">
          <mxGeometry relative="1" as="geometry">
            <mxPoint x="596" y="566" as="sourcePoint"/>
            <mxPoint x="402.5" y="566" as="targetPoint"/>
          </mxGeometry>
        </mxCell>
        <mxCell id="e13" value="13: feedback (optional)" style="endArrow=block;dashed=1;html=1;rounded=0;fontSize=12;strokeColor=#555555;fontColor=#222222;" edge="1" parent="1">
          <mxGeometry relative="1" as="geometry">
            <mxPoint x="402.5" y="592" as="sourcePoint"/>
            <mxPoint x="596" y="592" as="targetPoint"/>
          </mxGeometry>
        </mxCell>
        <mxCell id="e14" value="14: gate check - accurate? readable? no misleading scale?" style="endArrow=block;html=1;rounded=0;fontSize=12;strokeColor=#a64d4d;fontColor=#a64d4d;" edge="1" parent="1">
          <mxGeometry relative="1" as="geometry">
            <mxPoint x="609" y="628" as="sourcePoint"/>
            <mxPoint x="1196" y="628" as="targetPoint"/>
          </mxGeometry>
        </mxCell>
        <mxCell id="e15" value="15: [PASS] present chart + rationale" style="endArrow=open;html=1;rounded=0;fontSize=12;strokeColor=#333333;fontColor=#222222;" edge="1" parent="1">
          <mxGeometry relative="1" as="geometry">
            <mxPoint x="596" y="662" as="sourcePoint"/>
            <mxPoint x="402.5" y="662" as="targetPoint"/>
          </mxGeometry>
        </mxCell>
        <mxCell id="e16" value="16: approve" style="endArrow=block;dashed=1;html=1;rounded=0;fontSize=12;strokeColor=#333333;fontColor=#222222;" edge="1" parent="1">
          <mxGeometry relative="1" as="geometry">
            <mxPoint x="402.5" y="690" as="sourcePoint"/>
            <mxPoint x="596" y="690" as="targetPoint"/>
          </mxGeometry>
        </mxCell>
        <mxCell id="e17" value="17: write final chart artifact" style="endArrow=block;html=1;rounded=0;fontSize=12;strokeColor=#333333;fontColor=#222222;" edge="1" parent="1">
          <mxGeometry relative="1" as="geometry">
            <mxPoint x="609" y="716" as="sourcePoint"/>
            <mxPoint x="1386" y="716" as="targetPoint"/>
          </mxGeometry>
        </mxCell>
        <mxCell id="e18" value="18: update charting notes / reusable pattern" style="endArrow=block;html=1;rounded=0;fontSize=12;strokeColor=#333333;fontColor=#222222;" edge="1" parent="1">
          <mxGeometry relative="1" as="geometry">
            <mxPoint x="609" y="748" as="sourcePoint"/>
            <mxPoint x="796" y="748" as="targetPoint"/>
          </mxGeometry>
        </mxCell>
        <mxCell id="e19" value="19: log source, transform, export metadata" style="endArrow=block;html=1;rounded=0;fontSize=12;strokeColor=#333333;fontColor=#222222;" edge="1" parent="1">
          <mxGeometry relative="1" as="geometry">
            <mxPoint x="609" y="778" as="sourcePoint"/>
            <mxPoint x="1386" y="778" as="targetPoint"/>
          </mxGeometry>
        </mxCell>
        <mxCell id="e20" value="20: recurrence - approved style seeds next chart" style="endArrow=open;startArrow=none;dashed=1;html=1;rounded=0;fontSize=12;strokeColor=#2f6fb3;fontColor=#2f6fb3;" edge="1" parent="1">
          <mxGeometry relative="1" as="geometry">
            <mxPoint x="796" y="812" as="sourcePoint"/>
            <mxPoint x="609" y="812" as="targetPoint"/>
          </mxGeometry>
        </mxCell>
      </root>
    </mxGraphModel>
  </diagram>
</mxfile>
