sad-mcp 1.0.0 → 1.0.2

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 CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "sad-mcp",
3
- "version": "1.0.0",
3
+ "version": "1.0.2",
4
4
  "description": "MCP server for Software Analysis and Design course materials at BGU",
5
5
  "type": "module",
6
6
  "bin": {
@@ -27,6 +27,8 @@ You have an approved structural model (the JSON below). Render it as a single se
27
27
 
28
28
  ## Gateway Marker Styling
29
29
 
30
+ **CRITICAL: The marker MUST match the gateway `type` field from the JSON model.** XOR → X marker (amber). AND → + marker (green). OR → O marker (blue). If the JSON says `"type": "XOR"`, the diamond MUST show an X, NOT a +. Getting this wrong makes the diagram factually incorrect.
31
+
30
32
  Gateway markers must be clean and visually prominent. Use SVG paths, not text characters:
31
33
 
32
34
  ### XOR Gateway — bold X
@@ -171,11 +173,24 @@ Plain double circle, NO icon inside:
171
173
 
172
174
  **Arrows must never be ambiguous.**
173
175
 
174
- - Orthogonal (right-angle) routing preferred
175
- - At least 30px between parallel flow lines
176
- - Cross-lane flows: clear vertical drops/rises
177
- - Labels (כן/לא) near the gateway, not at path end
178
- - Flow labels must not overlap other elements
176
+ ### Orthogonal lines ONLY
177
+ - **NO diagonal or straight-across lines.** Every arrow segment is either horizontal or vertical.
178
+ - Use SVG `polyline` or `path` with L commands (not straight lines between arbitrary points).
179
+ - Break the line as many times as needed to route around elements. A single arrow may have 3, 5, or more segments.
180
+ - Example: to go from a task on the right to a task below-left, route: horizontal right → vertical down → horizontal left.
181
+
182
+ ### No overlapping arrows
183
+ - **At least 30px between parallel flow lines.** If two arrows run side by side, offset them vertically or horizontally.
184
+ - When arrows must cross, make the crossing perpendicular (one horizontal, one vertical) so it's visually clear.
185
+
186
+ ### Separate connection points
187
+ - **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
+ - For gateways with multiple outgoing branches: use different edges of the diamond (top, bottom, left, right) OR spread multiple connections along one edge.
189
+ - 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
+
191
+ ### Labels
192
+ - Labels (כן/לא) near the gateway, not at path end.
193
+ - Flow labels must not overlap other elements.
179
194
 
180
195
  ## Typography & Hebrew
181
196
 
@@ -213,7 +228,8 @@ Single self-contained HTML file:
213
228
  - [ ] External participants are separate pools with message flows
214
229
  - [ ] Empty pools have NO elements inside — message flows connect to pool border
215
230
  - [ ] Every pool has complete flow (start → ... → end) — except empty external pools
216
- - [ ] Every gateway has the correct type marker (bold X/+/O via SVG paths) no text inside
231
+ - [ ] Every gateway marker matches its JSON `type`: XOR→X (amber), AND→+ (green), OR→O (blue). Verify each one individually.
232
+ - [ ] No text inside gateway diamonds
217
233
  - [ ] Every data store appears as a cylinder with data associations
218
234
  - [ ] Every message flow appears as dashed line between pools
219
235
  - [ ] Header pool/lane count matches actual diagram
@@ -223,5 +239,10 @@ Single self-contained HTML file:
223
239
  - [ ] Gateways show tooltips with decision question and branches
224
240
  - [ ] Data stores show tooltips with connected tasks
225
241
 
242
+ ## Arrow Routing
243
+ - [ ] All arrows use only horizontal and vertical segments — no diagonals
244
+ - [ ] No two arrows share the same connection point on any element
245
+ - [ ] No arrows overlapping or running on top of each other
246
+
226
247
  ## Hebrew Language
227
248
  - [ ] Male grammatical form used for all roles