<mxfile host="app.diagrams.net" version="24.7.17" type="device">
  <diagram id="04-tool-promotion" name="Tool risk-tier promotion workflow">
    <mxGraphModel dx="1200" dy="850" grid="1" gridSize="10" guides="1" tooltips="1" connect="1" arrows="1" fold="1" page="1" pageScale="1" pageWidth="1200" pageHeight="850" background="#F7F4EC">
      <root>
        <mxCell id="0" />
        <mxCell id="1" parent="0" />
        <mxCell id="title" value="Tool risk-tier promotion workflow" style="text;html=0;align=left;verticalAlign=middle;whiteSpace=wrap;strokeColor=none;fillColor=none;fontFamily=Helvetica;fontColor=#142B49;fontSize=28;fontStyle=1;" vertex="1" parent="1">
          <mxGeometry as="geometry" x="45" y="22" width="1110" height="45" />
        </mxCell>
        <mxCell id="subtitle" value="Promotion requires evidence of bounded authority, not just a working connection." style="text;html=0;align=left;verticalAlign=middle;whiteSpace=wrap;strokeColor=none;fillColor=none;fontFamily=Helvetica;fontColor=#142B49;fontSize=16;" vertex="1" parent="1">
          <mxGeometry as="geometry" x="45" y="70" width="1110" height="32" />
        </mxCell>
        <mxCell id="footer" value="Recommended release workflow. Sensitive reads may require the highest tier because impact determines risk." style="text;html=0;align=left;verticalAlign=middle;whiteSpace=wrap;strokeColor=none;fillColor=none;fontFamily=Helvetica;fontColor=#142B49;fontSize=13;" vertex="1" parent="1">
          <mxGeometry as="geometry" x="45" y="787" width="1110" height="40" />
        </mxCell>
        <mxCell id="edge0" value="" style="edgeStyle=none;rounded=0;html=0;endArrow=block;endFill=1;strokeWidth=2;strokeColor=#142B49;fontColor=#142B49;fontFamily=Helvetica;fontSize=12;labelBackgroundColor=#F7F4EC;exitX=1;exitY=0.5;exitDx=0;exitDy=0;entryX=0;entryY=0.5;entryDx=0;entryDy=0;" edge="1" parent="1" source="reg" target="tier">
          <mxGeometry as="geometry" relative="1" />
        </mxCell>
        <mxCell id="label0" value="register" style="text;html=0;align=left;verticalAlign=middle;whiteSpace=wrap;strokeColor=none;fillColor=none;fontFamily=Helvetica;fontColor=#142B49;align=center;fontSize=11;fillColor=#F7F4EC;" vertex="1" parent="1">
          <mxGeometry as="geometry" x="281.6" y="154" width="56.8" height="18" />
        </mxCell>
        <mxCell id="edge1" value="" style="edgeStyle=none;rounded=0;html=0;endArrow=block;endFill=1;strokeWidth=2;strokeColor=#142B49;fontColor=#142B49;fontFamily=Helvetica;fontSize=12;labelBackgroundColor=#F7F4EC;exitX=1;exitY=0.5;exitDx=0;exitDy=0;entryX=0;entryY=0.5;entryDx=0;entryDy=0;" edge="1" parent="1" source="tier" target="tests">
          <mxGeometry as="geometry" relative="1" />
        </mxCell>
        <mxCell id="label1" value="tier-specific proof" style="text;html=0;align=left;verticalAlign=middle;whiteSpace=wrap;strokeColor=none;fillColor=none;fontFamily=Helvetica;fontColor=#142B49;align=center;fontSize=11;fillColor=#F7F4EC;" vertex="1" parent="1">
          <mxGeometry as="geometry" x="540.8" y="154" width="118.39999999999999" height="18" />
        </mxCell>
        <mxCell id="edge2" value="" style="edgeStyle=none;rounded=0;html=0;endArrow=block;endFill=1;strokeWidth=2;strokeColor=#142B49;fontColor=#142B49;fontFamily=Helvetica;fontSize=12;labelBackgroundColor=#F7F4EC;exitX=1;exitY=0.5;exitDx=0;exitDy=0;entryX=0;entryY=0.5;entryDx=0;entryDy=0;" edge="1" parent="1" source="tests" target="review">
          <mxGeometry as="geometry" relative="1" />
        </mxCell>
        <mxCell id="label2" value="evidence" style="text;html=0;align=left;verticalAlign=middle;whiteSpace=wrap;strokeColor=none;fillColor=none;fontFamily=Helvetica;fontColor=#142B49;align=center;fontSize=11;fillColor=#F7F4EC;" vertex="1" parent="1">
          <mxGeometry as="geometry" x="861.6" y="154" width="56.8" height="18" />
        </mxCell>
        <mxCell id="edge3" value="" style="edgeStyle=none;rounded=0;html=0;endArrow=block;endFill=1;strokeWidth=2;strokeColor=#142B49;fontColor=#142B49;fontFamily=Helvetica;fontSize=12;labelBackgroundColor=#F7F4EC;exitX=0.5;exitY=1;exitDx=0;exitDy=0;entryX=0.5;entryY=0;entryDx=0;entryDy=0;" edge="1" parent="1" source="review" target="can">
          <mxGeometry as="geometry" relative="1" />
        </mxCell>
        <mxCell id="label3" value="approved" style="text;html=0;align=left;verticalAlign=middle;whiteSpace=wrap;strokeColor=none;fillColor=none;fontFamily=Helvetica;fontColor=#142B49;align=center;fontSize=11;fillColor=#F7F4EC;" vertex="1" parent="1">
          <mxGeometry as="geometry" x="1006.6" y="319.0" width="56.8" height="18" />
        </mxCell>
        <mxCell id="edge4" value="" style="edgeStyle=none;rounded=0;html=0;endArrow=block;endFill=1;strokeWidth=2;strokeColor=#142B49;fontColor=#142B49;fontFamily=Helvetica;fontSize=12;labelBackgroundColor=#F7F4EC;exitX=0.5;exitY=1;exitDx=0;exitDy=0;entryX=1;entryY=0.5;entryDx=0;entryDy=0;" edge="1" parent="1" source="can" target="prod">
          <mxGeometry as="geometry" relative="1">
            <Array as="points">
              <mxPoint x="1035" y="691" />
            </Array>
          </mxGeometry>
        </mxCell>
        <mxCell id="label4" value="gates pass" style="text;html=0;align=left;verticalAlign=middle;whiteSpace=wrap;strokeColor=none;fillColor=none;fontFamily=Helvetica;fontColor=#142B49;align=center;fontSize=11;fillColor=#F7F4EC;" vertex="1" parent="1">
          <mxGeometry as="geometry" x="1001.0" y="574.5" width="68.0" height="18" />
        </mxCell>
        <mxCell id="edge5" value="" style="edgeStyle=none;rounded=0;html=0;endArrow=block;endFill=1;strokeWidth=2;strokeColor=#E4A83A;fontColor=#142B49;fontFamily=Helvetica;fontSize=12;labelBackgroundColor=#F7F4EC;exitX=0.5;exitY=1;exitDx=0;exitDy=0;entryX=1;entryY=0.5;entryDx=0;entryDy=0;" edge="1" parent="1" source="tests" target="rem">
          <mxGeometry as="geometry" relative="1">
            <Array as="points">
              <mxPoint x="745" y="461" />
            </Array>
          </mxGeometry>
        </mxCell>
        <mxCell id="label5" value="failed tests" style="text;html=0;align=left;verticalAlign=middle;whiteSpace=wrap;strokeColor=none;fillColor=none;fontFamily=Helvetica;fontColor=#142B49;align=center;fontSize=11;fillColor=#F7F4EC;" vertex="1" parent="1">
          <mxGeometry as="geometry" x="705.4" y="339.5" width="79.19999999999999" height="18" />
        </mxCell>
        <mxCell id="edge6" value="" style="edgeStyle=none;rounded=0;html=0;endArrow=block;endFill=1;strokeWidth=2;strokeColor=#142B49;fontColor=#142B49;fontFamily=Helvetica;fontSize=12;labelBackgroundColor=#F7F4EC;exitX=0.5;exitY=0;exitDx=0;exitDy=0;entryX=0.5;entryY=1;entryDx=0;entryDy=0;" edge="1" parent="1" source="rem" target="tier">
          <mxGeometry as="geometry" relative="1" />
        </mxCell>
        <mxCell id="label6" value="retest" style="text;html=0;align=left;verticalAlign=middle;whiteSpace=wrap;strokeColor=none;fillColor=none;fontFamily=Helvetica;fontColor=#142B49;align=center;fontSize=11;fillColor=#F7F4EC;" vertex="1" parent="1">
          <mxGeometry as="geometry" x="432.2" y="319.0" width="45.599999999999994" height="18" />
        </mxCell>
        <mxCell id="edge7" value="" style="edgeStyle=none;rounded=0;html=0;endArrow=block;endFill=1;strokeWidth=2;strokeColor=#142B49;fontColor=#142B49;fontFamily=Helvetica;fontSize=12;labelBackgroundColor=#F7F4EC;exitX=0;exitY=0.5;exitDx=0;exitDy=0;entryX=1;entryY=0.5;entryDx=0;entryDy=0;" edge="1" parent="1" source="prod" target="change">
          <mxGeometry as="geometry" relative="1" />
        </mxCell>
        <mxCell id="label7" value="material change" style="text;html=0;align=left;verticalAlign=middle;whiteSpace=wrap;strokeColor=none;fillColor=none;fontFamily=Helvetica;fontColor=#142B49;align=center;fontSize=11;fillColor=#F7F4EC;" vertex="1" parent="1">
          <mxGeometry as="geometry" x="407.0" y="669.0" width="96.0" height="18" />
        </mxCell>
        <mxCell id="edge8" value="" style="edgeStyle=none;rounded=0;html=0;endArrow=block;endFill=1;strokeWidth=2;strokeColor=#142B49;fontColor=#142B49;fontFamily=Helvetica;fontSize=12;labelBackgroundColor=#F7F4EC;exitX=0.5;exitY=0;exitDx=0;exitDy=0;entryX=0.5;entryY=1;entryDx=0;entryDy=0;" edge="1" parent="1" source="change" target="reg">
          <mxGeometry as="geometry" relative="1" />
        </mxCell>
        <mxCell id="label8" value="new review" style="text;html=0;align=left;verticalAlign=middle;whiteSpace=wrap;strokeColor=none;fillColor=none;fontFamily=Helvetica;fontColor=#142B49;align=center;fontSize=11;fillColor=#F7F4EC;" vertex="1" parent="1">
          <mxGeometry as="geometry" x="131.0" y="434.0" width="68.0" height="18" />
        </mxCell>
        <mxCell id="reg" value="Register tool + owner&#10;Purpose / data / target" style="rounded=0;whiteSpace=wrap;html=0;fillColor=#F7F4EC;strokeColor=#142B49;strokeWidth=2;fontColor=#142B49;fontFamily=Helvetica;fontSize=15;align=center;verticalAlign=middle;spacing=10;" vertex="1" parent="1">
          <mxGeometry as="geometry" x="45" y="180" width="240" height="82" />
        </mxCell>
        <mxCell id="tier" value="Classify worst credible harm&#10;T0 · T1 · T2 · T3" style="rounded=0;whiteSpace=wrap;html=0;fillColor=#F7F4EC;strokeColor=#142B49;strokeWidth=2;fontColor=#142B49;fontFamily=Helvetica;fontSize=15;align=center;verticalAlign=middle;spacing=10;" vertex="1" parent="1">
          <mxGeometry as="geometry" x="335" y="180" width="240" height="82" />
        </mxCell>
        <mxCell id="tests" value="Schema + policy + isolation&#10;Positive / negative tests" style="rounded=0;whiteSpace=wrap;html=0;fillColor=#F7F4EC;strokeColor=#142B49;strokeWidth=2;fontColor=#142B49;fontFamily=Helvetica;fontSize=15;align=center;verticalAlign=middle;spacing=10;" vertex="1" parent="1">
          <mxGeometry as="geometry" x="625" y="180" width="240" height="82" />
        </mxCell>
        <mxCell id="review" value="Independent review&#10;Business + security" style="rounded=0;whiteSpace=wrap;html=0;fillColor=#E4A83A;strokeColor=#142B49;strokeWidth=2;fontColor=#142B49;fontFamily=Helvetica;fontSize=15;align=center;verticalAlign=middle;spacing=10;" vertex="1" parent="1">
          <mxGeometry as="geometry" x="915" y="180" width="240" height="82" />
        </mxCell>
        <mxCell id="rem" value="Remediate evidence gaps&#10;Narrow capability / fix code" style="rounded=0;whiteSpace=wrap;html=0;fillColor=#F7F4EC;strokeColor=#142B49;strokeWidth=2;fontColor=#142B49;fontFamily=Helvetica;fontSize=15;align=center;verticalAlign=middle;spacing=10;" vertex="1" parent="1">
          <mxGeometry as="geometry" x="335" y="420" width="240" height="82" />
        </mxCell>
        <mxCell id="can" value="Canary in ENFORCE&#10;Bounded tenant cohort" style="rounded=0;whiteSpace=wrap;html=0;fillColor=#142B49;strokeColor=#142B49;strokeWidth=2;fontColor=#F7F4EC;fontFamily=Helvetica;fontSize=15;align=center;verticalAlign=middle;spacing=10;" vertex="1" parent="1">
          <mxGeometry as="geometry" x="915" y="420" width="240" height="82" />
        </mxCell>
        <mxCell id="prod" value="Production catalogue&#10;Pinned release manifest" style="rounded=0;whiteSpace=wrap;html=0;fillColor=#F7F4EC;strokeColor=#142B49;strokeWidth=2;fontColor=#142B49;fontFamily=Helvetica;fontSize=15;align=center;verticalAlign=middle;spacing=10;" vertex="1" parent="1">
          <mxGeometry as="geometry" x="625" y="650" width="240" height="82" />
        </mxCell>
        <mxCell id="change" value="Authority-expanding change&#10;Reclassify before release" style="rounded=0;whiteSpace=wrap;html=0;fillColor=#E4A83A;strokeColor=#142B49;strokeWidth=2;fontColor=#142B49;fontFamily=Helvetica;fontSize=15;align=center;verticalAlign=middle;spacing=10;" vertex="1" parent="1">
          <mxGeometry as="geometry" x="45" y="650" width="240" height="82" />
        </mxCell>
      </root>
    </mxGraphModel>
  </diagram>
</mxfile>
