<?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="Controls run at event boundaries" 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="Client events" 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="55" width="360" height="38" /></mxCell><mxCell id="4" value="SessionStart&#10;Banner + selfheal&#10;Role card* + show mail*" 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="105" width="360" height="105" /></mxCell><mxCell id="5" value="UserPromptSubmit&#10;Announce" 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="242" width="360" height="90" /></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="PreToolUse&#10;Worktree + collision gates&#10;Stage guard* + API guard*&#10;Steering context*" 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="364" width="360" height="125" /></mxCell><mxCell id="8" value="" edge="1" parent="1" source="5" target="7" 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="9" value="PreCompact&#10;Restore seat declaration&#10;and held-state context*" 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="521" width="360" height="90" /></mxCell><mxCell id="10" value="" edge="1" parent="1" source="7" target="9" 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="11" value="Stop&#10;Consume displayed mail*" 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="643" width="360" height="80" /></mxCell><mxCell id="12" value="" edge="1" parent="1" source="9" 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="Git events" 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="400" y="55" width="360" height="38" /></mxCell><mxCell id="14" value="pre-commit&#10;Sequence check*&#10;Before commit" 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="400" y="105" width="360" height="95" /></mxCell><mxCell id="15" value="commit-msg&#10;Claim check&#10;Checks the subject" 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="400" y="232" width="360" height="90" /></mxCell><mxCell id="16" value="" edge="1" parent="1" source="14" target="15" 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="17" value="pre-push&#10;Protected-ref push guard&#10;Before push" 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="400" y="354" width="360" height="90" /></mxCell><mxCell id="18" value="" edge="1" parent="1" source="15" target="17" 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="19" value="Doctor: separate verification&#10;Run before and after install" 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="400" y="488" width="360" height="85" /></mxCell><mxCell id="20" value="* Requires manual wiring.&#10;Source files alone enable nothing." 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="400" y="593" width="360" height="75" /></mxCell><mxCell id="21" value="Event order, not elapsed time.&#10;Client events can repeat; compaction&#10;and tool calls depend on the session." 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="765" width="760" height="88" /></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="Controls run at event boundaries" 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="Client events" 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="55" width="300" height="38" /></mxCell><mxCell id="4" value="SessionStart&#10;Banner + selfheal&#10;Role card* + show mail*" 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="105" width="300" height="105" /></mxCell><mxCell id="5" value="UserPromptSubmit&#10;Announce" 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="242" width="300" height="90" /></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="PreToolUse&#10;Worktree + collision gates&#10;Stage guard* + API guard*&#10;Steering context*" 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="364" width="300" height="125" /></mxCell><mxCell id="8" value="" edge="1" parent="1" source="5" target="7" 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="9" value="PreCompact&#10;Restore seat declaration&#10;and held-state context*" 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="521" width="300" height="90" /></mxCell><mxCell id="10" value="" edge="1" parent="1" source="7" target="9" 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="11" value="Stop&#10;Consume displayed mail*" 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="643" width="300" height="80" /></mxCell><mxCell id="12" value="" edge="1" parent="1" source="9" 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="Git events" 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="800" width="300" height="38" /></mxCell><mxCell id="14" value="pre-commit&#10;Sequence check*&#10;Before commit" 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="95" /></mxCell><mxCell id="15" value="commit-msg&#10;Claim check&#10;Checks the subject" 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="977" width="300" height="90" /></mxCell><mxCell id="16" value="" edge="1" parent="1" source="14" target="15" 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="17" value="pre-push&#10;Protected-ref push guard&#10;Before push" 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="1099" width="300" height="90" /></mxCell><mxCell id="18" value="" edge="1" parent="1" source="15" target="17" 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="19" value="Doctor: separate verification&#10;Run before and after install" 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="1233" width="300" height="85" /></mxCell><mxCell id="20" value="* Requires manual wiring.&#10;Source files alone enable nothing." 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="1338" width="300" height="75" /></mxCell><mxCell id="21" value="Event order, not elapsed time.&#10;Client events can repeat;&#10;compaction&#10;and tool calls depend on the&#10;session." 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="1433" width="300" height="88" /></mxCell></root></mxGraphModel></diagram></mxfile>