<?xml version='1.0' encoding='ascii'?>
<mxfile host="Electron" type="device"><diagram name="Desktop" id="desktop"><mxGraphModel grid="0" page="0" background="#ffffff" adaptiveColors="none"><root><mxCell id="0" /><mxCell id="1" parent="0" /><mxCell id="2" value="One example, four different answers" style="whiteSpace=nowrap;html=0;fontFamily=Arial;fontSize=16;fontColor=#242424;fillColor=#eef5fc;strokeColor=#0f6cbd;strokeWidth=2;spacing=8;shape=label;fillColor=#ffffff;strokeColor=none;" vertex="1" parent="1"><mxGeometry as="geometry" x="0" y="0" width="760" height="48" /></mxCell><mxCell id="3" value="A builds CSV import in worktree A.&#10;B starts in worktree B of the same clone." style="whiteSpace=nowrap;html=0;fontFamily=Arial;fontSize=16;fontColor=#242424;fillColor=#eef5fc;strokeColor=#0f6cbd;strokeWidth=2;spacing=8;rounded=1;arcSize=8;" vertex="1" parent="1"><mxGeometry as="geometry" x="0" y="55" width="760" height="75" /></mxCell><mxCell id="4" value="Presence&#10;Who is here?" style="whiteSpace=nowrap;html=0;fontFamily=Arial;fontSize=16;fontColor=#242424;fillColor=#eef5fc;strokeColor=#0f6cbd;strokeWidth=2;spacing=8;rounded=1;arcSize=8;" vertex="1" parent="1"><mxGeometry as="geometry" x="0" y="160" width="240" height="85" /></mxCell><mxCell id="5" value="A is live in worktree A.&#10;Observation, not ownership." style="whiteSpace=nowrap;html=0;fontFamily=Arial;fontSize=16;fontColor=#242424;fillColor=#eef5fc;strokeColor=#0f6cbd;strokeWidth=2;spacing=8;rounded=1;arcSize=8;" vertex="1" parent="1"><mxGeometry as="geometry" x="330" y="160" width="430" height="85" /></mxCell><mxCell id="6" value="answers" edge="1" parent="1" source="4" target="5" style="edgeStyle=orthogonalEdgeStyle;rounded=0;html=0;fontFamily=Arial;fontSize=16;fontColor=#242424;labelBackgroundColor=#ffffff;strokeColor=#0f6cbd;strokeWidth=2;endArrow=block;"><mxGeometry as="geometry" relative="1" /></mxCell><mxCell id="7" value="Overlap&#10;Which files?" style="whiteSpace=nowrap;html=0;fontFamily=Arial;fontSize=16;fontColor=#242424;fillColor=#eef5fc;strokeColor=#0f6cbd;strokeWidth=2;spacing=8;rounded=1;arcSize=8;" vertex="1" parent="1"><mxGeometry as="geometry" x="0" y="280" width="240" height="85" /></mxCell><mxCell id="8" value="A changed csv.py.&#10;B can inspect that overlap." style="whiteSpace=nowrap;html=0;fontFamily=Arial;fontSize=16;fontColor=#242424;fillColor=#eef5fc;strokeColor=#0f6cbd;strokeWidth=2;spacing=8;rounded=1;arcSize=8;" vertex="1" parent="1"><mxGeometry as="geometry" x="330" y="280" width="430" height="85" /></mxCell><mxCell id="9" value="answers" edge="1" parent="1" source="7" target="8" style="edgeStyle=orthogonalEdgeStyle;rounded=0;html=0;fontFamily=Arial;fontSize=16;fontColor=#242424;labelBackgroundColor=#ffffff;strokeColor=#0f6cbd;strokeWidth=2;endArrow=block;"><mxGeometry as="geometry" relative="1" /></mxCell><mxCell id="10" value="Claim&#10;Who plans the work?" style="whiteSpace=nowrap;html=0;fontFamily=Arial;fontSize=16;fontColor=#242424;fillColor=#eef5fc;strokeColor=#0f6cbd;strokeWidth=2;spacing=8;rounded=1;arcSize=8;" vertex="1" parent="1"><mxGeometry as="geometry" x="0" y="400" width="240" height="85" /></mxCell><mxCell id="11" value="A holds key 12: CSV import.&#10;B cannot take that key." style="whiteSpace=nowrap;html=0;fontFamily=Arial;fontSize=16;fontColor=#242424;fillColor=#eef5fc;strokeColor=#0f6cbd;strokeWidth=2;spacing=8;rounded=1;arcSize=8;" vertex="1" parent="1"><mxGeometry as="geometry" x="330" y="400" width="430" height="85" /></mxCell><mxCell id="12" value="answers" edge="1" parent="1" source="10" target="11" style="edgeStyle=orthogonalEdgeStyle;rounded=0;html=0;fontFamily=Arial;fontSize=16;fontColor=#242424;labelBackgroundColor=#ffffff;strokeColor=#0f6cbd;strokeWidth=2;endArrow=block;"><mxGeometry as="geometry" relative="1" /></mxCell><mxCell id="13" value="Lock&#10;Who runs this operation?" style="whiteSpace=nowrap;html=0;fontFamily=Arial;fontSize=16;fontColor=#242424;fillColor=#eef5fc;strokeColor=#0f6cbd;strokeWidth=2;spacing=8;rounded=1;arcSize=8;" vertex="1" parent="1"><mxGeometry as="geometry" x="0" y="520" width="240" height="85" /></mxCell><mxCell id="14" value="A holds worktree-add.&#10;B retries until release or timeout." style="whiteSpace=nowrap;html=0;fontFamily=Arial;fontSize=16;fontColor=#242424;fillColor=#eef5fc;strokeColor=#0f6cbd;strokeWidth=2;spacing=8;rounded=1;arcSize=8;" vertex="1" parent="1"><mxGeometry as="geometry" x="330" y="520" width="430" height="85" /></mxCell><mxCell id="15" value="answers" edge="1" parent="1" source="13" target="14" style="edgeStyle=orthogonalEdgeStyle;rounded=0;html=0;fontFamily=Arial;fontSize=16;fontColor=#242424;labelBackgroundColor=#ffffff;strokeColor=#0f6cbd;strokeWidth=2;endArrow=block;"><mxGeometry as="geometry" relative="1" /></mxCell><mxCell id="16" value="Claims declare intent; they do not lock files.&#10;Numbered claims can gate commit subjects.&#10;Locks cover only the wrapped operation." style="whiteSpace=nowrap;html=0;fontFamily=Arial;fontSize=16;fontColor=#835b00;fillColor=#fff4ce;strokeColor=#835b00;strokeWidth=2;spacing=8;rounded=1;arcSize=8;" vertex="1" parent="1"><mxGeometry as="geometry" x="0" y="640" width="760" height="110" /></mxCell></root></mxGraphModel></diagram><diagram name="Mobile" id="mobile"><mxGraphModel grid="0" page="0" background="#ffffff" adaptiveColors="none"><root><mxCell id="0" /><mxCell id="1" parent="0" /><mxCell id="2" value="One example, four different answers" style="whiteSpace=nowrap;html=0;fontFamily=Arial;fontSize=16;fontColor=#242424;fillColor=#eef5fc;strokeColor=#0f6cbd;strokeWidth=2;spacing=8;shape=label;fillColor=#ffffff;strokeColor=none;" vertex="1" parent="1"><mxGeometry as="geometry" x="0" y="0" width="300" height="48" /></mxCell><mxCell id="3" value="A builds CSV import in worktree A.&#10;B starts in worktree B of the same&#10;clone." style="whiteSpace=nowrap;html=0;fontFamily=Arial;fontSize=16;fontColor=#242424;fillColor=#eef5fc;strokeColor=#0f6cbd;strokeWidth=2;spacing=8;rounded=1;arcSize=8;" vertex="1" parent="1"><mxGeometry as="geometry" x="0" y="55" width="300" height="75" /></mxCell><mxCell id="4" value="Presence&#10;Who is here?" style="whiteSpace=nowrap;html=0;fontFamily=Arial;fontSize=16;fontColor=#242424;fillColor=#eef5fc;strokeColor=#0f6cbd;strokeWidth=2;spacing=8;rounded=1;arcSize=8;" vertex="1" parent="1"><mxGeometry as="geometry" x="0" y="160" width="300" height="65" /></mxCell><mxCell id="5" value="A is live in worktree A.&#10;Observation, not ownership." style="whiteSpace=nowrap;html=0;fontFamily=Arial;fontSize=16;fontColor=#242424;fillColor=#eef5fc;strokeColor=#0f6cbd;strokeWidth=2;spacing=8;rounded=1;arcSize=8;" vertex="1" parent="1"><mxGeometry as="geometry" x="0" y="260" width="300" height="95" /></mxCell><mxCell id="6" value="" edge="1" parent="1" source="4" target="5" style="edgeStyle=orthogonalEdgeStyle;rounded=0;html=0;fontFamily=Arial;fontSize=16;fontColor=#242424;labelBackgroundColor=#ffffff;strokeColor=#0f6cbd;strokeWidth=2;endArrow=block;"><mxGeometry as="geometry" relative="1" /></mxCell><mxCell id="7" value="Overlap&#10;Which files?" style="whiteSpace=nowrap;html=0;fontFamily=Arial;fontSize=16;fontColor=#242424;fillColor=#eef5fc;strokeColor=#0f6cbd;strokeWidth=2;spacing=8;rounded=1;arcSize=8;" vertex="1" parent="1"><mxGeometry as="geometry" x="0" y="390" width="300" height="65" /></mxCell><mxCell id="8" value="A changed csv.py.&#10;B can inspect that overlap." style="whiteSpace=nowrap;html=0;fontFamily=Arial;fontSize=16;fontColor=#242424;fillColor=#eef5fc;strokeColor=#0f6cbd;strokeWidth=2;spacing=8;rounded=1;arcSize=8;" vertex="1" parent="1"><mxGeometry as="geometry" x="0" y="490" width="300" height="95" /></mxCell><mxCell id="9" value="" edge="1" parent="1" source="7" target="8" style="edgeStyle=orthogonalEdgeStyle;rounded=0;html=0;fontFamily=Arial;fontSize=16;fontColor=#242424;labelBackgroundColor=#ffffff;strokeColor=#0f6cbd;strokeWidth=2;endArrow=block;"><mxGeometry as="geometry" relative="1" /></mxCell><mxCell id="10" value="Claim&#10;Who plans the work?" style="whiteSpace=nowrap;html=0;fontFamily=Arial;fontSize=16;fontColor=#242424;fillColor=#eef5fc;strokeColor=#0f6cbd;strokeWidth=2;spacing=8;rounded=1;arcSize=8;" vertex="1" parent="1"><mxGeometry as="geometry" x="0" y="620" width="300" height="65" /></mxCell><mxCell id="11" value="A holds key 12: CSV import.&#10;B cannot take that key." style="whiteSpace=nowrap;html=0;fontFamily=Arial;fontSize=16;fontColor=#242424;fillColor=#eef5fc;strokeColor=#0f6cbd;strokeWidth=2;spacing=8;rounded=1;arcSize=8;" vertex="1" parent="1"><mxGeometry as="geometry" x="0" y="720" width="300" height="95" /></mxCell><mxCell id="12" value="" edge="1" parent="1" source="10" target="11" style="edgeStyle=orthogonalEdgeStyle;rounded=0;html=0;fontFamily=Arial;fontSize=16;fontColor=#242424;labelBackgroundColor=#ffffff;strokeColor=#0f6cbd;strokeWidth=2;endArrow=block;"><mxGeometry as="geometry" relative="1" /></mxCell><mxCell id="13" value="Lock&#10;Who runs this operation?" style="whiteSpace=nowrap;html=0;fontFamily=Arial;fontSize=16;fontColor=#242424;fillColor=#eef5fc;strokeColor=#0f6cbd;strokeWidth=2;spacing=8;rounded=1;arcSize=8;" vertex="1" parent="1"><mxGeometry as="geometry" x="0" y="850" width="300" height="65" /></mxCell><mxCell id="14" value="A holds worktree-add.&#10;B retries until release or timeout." style="whiteSpace=nowrap;html=0;fontFamily=Arial;fontSize=16;fontColor=#242424;fillColor=#eef5fc;strokeColor=#0f6cbd;strokeWidth=2;spacing=8;rounded=1;arcSize=8;" vertex="1" parent="1"><mxGeometry as="geometry" x="0" y="950" width="300" height="95" /></mxCell><mxCell id="15" value="" edge="1" parent="1" source="13" target="14" style="edgeStyle=orthogonalEdgeStyle;rounded=0;html=0;fontFamily=Arial;fontSize=16;fontColor=#242424;labelBackgroundColor=#ffffff;strokeColor=#0f6cbd;strokeWidth=2;endArrow=block;"><mxGeometry as="geometry" relative="1" /></mxCell><mxCell id="16" value="Claims declare intent; they do not&#10;lock files.&#10;Numbered claims can gate commit&#10;subjects.&#10;Locks cover only the wrapped&#10;operation." style="whiteSpace=nowrap;html=0;fontFamily=Arial;fontSize=16;fontColor=#835b00;fillColor=#fff4ce;strokeColor=#835b00;strokeWidth=2;spacing=8;rounded=1;arcSize=8;" vertex="1" parent="1"><mxGeometry as="geometry" x="0" y="1080" width="300" height="150" /></mxCell></root></mxGraphModel></diagram></mxfile>