sad-mcp 1.0.2 → 1.0.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/package.json +1 -1
- package/skills/bpmn-render/SKILL.md +29 -8
package/package.json
CHANGED
|
@@ -171,26 +171,47 @@ Plain double circle, NO icon inside:
|
|
|
171
171
|
|
|
172
172
|
## Arrow Routing
|
|
173
173
|
|
|
174
|
-
**Arrows must never be ambiguous.**
|
|
174
|
+
**Arrows must never be ambiguous. This section is CRITICAL for diagram quality.**
|
|
175
175
|
|
|
176
|
-
### Orthogonal lines ONLY
|
|
177
|
-
- **
|
|
178
|
-
- Use SVG
|
|
179
|
-
-
|
|
180
|
-
|
|
176
|
+
### Orthogonal lines ONLY — NO exceptions
|
|
177
|
+
- **EVERY arrow is built from horizontal and vertical segments ONLY.** No diagonal lines anywhere.
|
|
178
|
+
- Use SVG `<polyline points="x1,y1 x2,y1 x2,y2 x3,y2">` — each point shares one coordinate with the next (same x = vertical, same y = horizontal).
|
|
179
|
+
- **Test**: For every two consecutive points in a polyline, either `x1==x2` (vertical segment) or `y1==y2` (horizontal segment). If neither — it's diagonal and WRONG.
|
|
180
|
+
|
|
181
|
+
### Routing algorithm for cross-lane flows
|
|
182
|
+
When a flow goes from one lane to another (e.g., gateway branch dropping to a lower lane):
|
|
183
|
+
1. Exit the source element horizontally (left or right)
|
|
184
|
+
2. Run horizontally to a clear vertical channel (at least 20px from any element)
|
|
185
|
+
3. Drop/rise vertically to the target lane's y-coordinate
|
|
186
|
+
4. Run horizontally to the target element
|
|
187
|
+
5. Connect to the target element
|
|
188
|
+
|
|
189
|
+
**Never draw a single straight line between elements in different lanes** — always use this H→V→H pattern (or V→H→V if needed).
|
|
190
|
+
|
|
191
|
+
### Vertical channels
|
|
192
|
+
- Reserve 2-3 vertical "channel" x-positions between task columns for routing cross-lane flows
|
|
193
|
+
- Each channel is a fixed x-coordinate used by vertical segments
|
|
194
|
+
- Offset parallel vertical flows by at least 30px so they don't overlap
|
|
181
195
|
|
|
182
196
|
### No overlapping arrows
|
|
183
|
-
- **At least 30px between parallel flow lines.** If two arrows run side by side, offset them
|
|
184
|
-
- When arrows must cross, make the crossing perpendicular (one horizontal, one vertical)
|
|
197
|
+
- **At least 30px between parallel flow lines.** If two arrows run side by side, offset them.
|
|
198
|
+
- When arrows must cross, make the crossing perpendicular (one horizontal, one vertical).
|
|
199
|
+
- **Data association lines** (dashed) must also be routed orthogonally and must not cross over sequence flow lines. Route them around tasks, not through the flow area.
|
|
185
200
|
|
|
186
201
|
### Separate connection points
|
|
187
202
|
- **NEVER attach two arrows to the exact same point.** Multiple arrows CAN connect to the same side/edge of a shape, but they must be spaced apart along that edge (e.g., 2-3 arrows on the top edge of a task, each at a different x-coordinate with at least 15px between them).
|
|
188
203
|
- For gateways with multiple outgoing branches: use different edges of the diamond (top, bottom, left, right) OR spread multiple connections along one edge.
|
|
189
204
|
- For tasks: use all 4 edges (top, bottom, left, right) and spread connections along each edge as needed. A single edge can have 2-3 connection points.
|
|
190
205
|
|
|
206
|
+
### Data store and data object placement
|
|
207
|
+
- Place data stores/objects **directly above or below** the task they connect to, in the gap between elements — NOT at the lane edges.
|
|
208
|
+
- Data association lines should be short and direct (ideally a single vertical segment).
|
|
209
|
+
- If a data store connects to multiple tasks, duplicate it near each task (see rule 4 above).
|
|
210
|
+
|
|
191
211
|
### Labels
|
|
192
212
|
- Labels (כן/לא) near the gateway, not at path end.
|
|
193
213
|
- Flow labels must not overlap other elements.
|
|
214
|
+
- Place labels on the horizontal segment of the arrow, not on the vertical drop.
|
|
194
215
|
|
|
195
216
|
## Typography & Hebrew
|
|
196
217
|
|