sad-mcp 0.1.21 → 0.1.22

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": "0.1.21",
3
+ "version": "0.1.22",
4
4
  "description": "MCP server for Software Analysis and Design course materials at BGU",
5
5
  "type": "module",
6
6
  "bin": {
@@ -73,6 +73,11 @@ STRUCTURAL ANALYSIS:
73
73
  - Putting a customer/patient/citizen as a lane when they act independently — they need a separate pool with message flows, not sequence flows
74
74
  - Using sequence flows between independent participants instead of message flows between separate pools
75
75
  - Forgetting that external companies (e.g., חברת אשראי, ספק, קבלן) also need their own pool — they are not part of the organization
76
+ - Omitting a participant entirely — if the process description mentions a customer/patient/citizen, they MUST appear in the diagram as a pool with their own flow
77
+
78
+ ### Element Placement — CRITICAL
79
+
80
+ **Every BPMN element (task, gateway, event) must be fully contained within a single lane or pool.** No element may overlap a lane divider line or sit on the boundary between two lanes. If an element belongs to a lane, it must be clearly centered vertically within that lane's area, with visible spacing from the lane borders above and below.
76
81
 
77
82
  ### Color Scheme by Participant Type
78
83
 
@@ -109,13 +114,28 @@ Example: If a Resident interacts with both a Delivery Company and a Development
109
114
 
110
115
  ### Gateways — CRITICAL RULE
111
116
 
112
- **Every gateway both split AND merge/joinMUST display the X marker (for XOR) or + marker (for AND/parallel).** Merge gateways are never left as blank diamonds. This is a non-negotiable requirement.
117
+ **Gateway diamonds must contain ONLY the marker symbol NEVER text.** No labels, descriptions, or questions inside the diamond shape. Gateway labels go ABOVE or BESIDE the diamond, never inside it.
118
+
119
+ - XOR (exclusive): **X** marker inside the diamond
120
+ - AND (parallel): **+** marker inside the diamond
121
+ - OR (inclusive): **O** marker inside the diamond
122
+
123
+ **Every gateway — both split AND merge/join — MUST display its marker symbol.** Merge gateways are never left as blank diamonds. This is a non-negotiable requirement.
124
+
125
+ **Anti-pattern — NEVER do this:**
126
+ ```svg
127
+ <!-- WRONG: text inside gateway diamond -->
128
+ <polygon points="..." fill="..." stroke="..."/>
129
+ <text x="CX" y="CY">כמה ימים?</text> <!-- FORBIDDEN -->
130
+ ```
113
131
 
132
+ **Correct pattern:**
114
133
  ```svg
115
- <!-- XOR Gateway template (both split and merge) -->
134
+ <!-- RIGHT: X marker inside, label outside -->
116
135
  <rect x="X" y="Y" width="34" height="34" class="gateway" transform="rotate(45, CX, CY)"/>
117
136
  <line x1="CX-7" y1="CY-10" x2="CX+7" y2="CY+10" class="gateway-x"/>
118
137
  <line x1="CX+7" y1="CY-10" x2="CX-7" y2="CY+10" class="gateway-x"/>
138
+ <text x="CX" y="CY-25" text-anchor="middle">כמה ימים?</text> <!-- label ABOVE -->
119
139
  ```
120
140
 
121
141
  ### Intermediate Events (Waiting/Catching)
@@ -225,9 +245,12 @@ Output a single self-contained HTML file with:
225
245
 
226
246
  **STOP before delivering the diagram. Verify EVERY item below. If any item fails, you MUST fix it before delivering. Do NOT skip this step.**
227
247
 
228
- - [ ] Every gateway (split AND merge) has an X or + symbol
248
+ - [ ] Every gateway (split AND merge) has ONLY an X/+/O marker inside — no text inside the diamond
249
+ - [ ] Gateway labels (questions, conditions) are positioned ABOVE or BESIDE the diamond, never inside
250
+ - [ ] Every element (task, gateway, event) is fully inside a single lane — nothing sits on a lane boundary
229
251
  - [ ] No arrow paths overlap or cross ambiguously
230
252
  - [ ] Data objects (📄) and data stores (🗄️) use different icons
253
+ - [ ] Every participant mentioned in the process description appears in the diagram — none are omitted
231
254
  - [ ] External participants are in separate pools with message flows
232
255
  - [ ] Passive waiting uses intermediate events, not regular tasks
233
256
  - [ ] Flow labels (כן/לא) are clearly positioned near their gateway