Connectors
Three types, one steel color, distinguished by line style. Never by hue.- triggers — solid, filled arrowhead
- reads — dashed 7 5, open arrowhead on the reader
- publishes to — dotted, open arrowhead
- rest — 1.5px steel
- hover — 2px steel-700
- selected — 2.5px + endpoint squares
- dimmed — 25% while a sticky drags
- label chip, centred on the runIF RISK IS HIGH
- merged — mono multiplier×2
Routing & states
Window scheduled
EVENT · E-014 MK
Whenever a window is set, freeze conflicting changes
POLICY · P-003 MK
Implement change
COMMAND · C-017 MK
Freeze calendar
READ MODEL · R-04 MK
orthogonal routing · 8px grid · single 0px-radius elbowrest 1.5px steel | hover 2px steel-700 | selected 2.5px steel-900 + endpoint squareslabel chip: paper fill, hairline border, mono 10px, centred on the run
CN-18 runs C-017 → R-04 in the model — reader to read model — and the head lands on C-017, because §04 points a reads arrow at the reader
Rules
- Sequence is implicit. Left-to-right order on the timeline already means "then". Never draw an arrow between two adjacent events.
- Arrows are for the jumps. Explicit connectors exist to cross lanes, to loop back, and to leave the boundary — the relationships a wall of paper can't show.
- Cross-lane arrows survive collapse. When a lane is collapsed its arrows dock to the lane header as a stub with a count, so nothing silently disappears.
- One arrow per pair per type. Duplicates merge; a merged connector shows a mono multiplier.
- Behind, never over. Connectors paint under stickies and above the ground; they dim to 25% while a sticky is dragged.