sad-mcp 0.1.21 → 0.1.23

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.23",
4
4
  "description": "MCP server for Software Analysis and Design course materials at BGU",
5
5
  "type": "module",
6
6
  "bin": {
@@ -5,7 +5,23 @@ description: Create BPMN (Business Process Model and Notation) diagrams as inter
5
5
 
6
6
  # BPMN Diagram Creation Skill
7
7
 
8
- This skill creates professional, standards-compliant BPMN diagrams rendered as interactive HTML files with embedded SVG. The diagrams support Hebrew (RTL) and English text, and follow BPMN 2.0 notation with BPMN 1.1-style intermediate events (plain double circles without internal icons).
8
+ This skill creates professional BPMN 1.1 diagrams rendered as interactive HTML files with embedded SVG. The diagrams support Hebrew (RTL) and English text.
9
+
10
+ ## NON-NEGOTIABLE RULES — READ BEFORE ANYTHING ELSE
11
+
12
+ These rules are violated most often. You MUST follow every one. No exceptions.
13
+
14
+ 1. **GATEWAYS**: The diamond shape contains ONLY a marker symbol: **X** (XOR), **+** (AND), or **O** (OR). NEVER put text/labels inside the diamond. Labels go ABOVE the diamond. Every gateway (split AND merge) must have its marker.
15
+
16
+ 2. **CUSTOMERS / EXTERNAL PARTIES get their own POOL**: If a customer, patient, citizen, or external company (e.g., חברת אשראי, ספק) acts independently — they are a SEPARATE POOL with message flows (dashed lines) between pools. They are NOT a lane. The only exception: if the organization fully controls the participant's actions within its system (e.g., customer using a bank app).
17
+
18
+ 3. **DATA STORES are mandatory**: If any task involves "block account", "generate invoice", "credit account", "update record", "register", "look up", or any read/write to persistent state — you MUST draw a Data Store (cylinder) with data associations connecting it to the relevant tasks.
19
+
20
+ 4. **NO ELEMENTS ON LANE BOUNDARIES**: Every task, gateway, and event must be fully inside one lane, centered vertically with clear spacing from lane borders.
21
+
22
+ 5. **EVERY PARTICIPANT MUST APPEAR**: If the process description mentions a customer/patient/company — they MUST appear in the diagram. Never omit a participant.
23
+
24
+ 6. **OUTPUT STRUCTURAL ANALYSIS FIRST**: Before writing ANY SVG, you must output the structural analysis (participants → pool/lane, data stores, message flows). The SVG must match this analysis.
9
25
 
10
26
  ## When to Use
11
27
 
@@ -73,6 +89,11 @@ STRUCTURAL ANALYSIS:
73
89
  - Putting a customer/patient/citizen as a lane when they act independently — they need a separate pool with message flows, not sequence flows
74
90
  - Using sequence flows between independent participants instead of message flows between separate pools
75
91
  - Forgetting that external companies (e.g., חברת אשראי, ספק, קבלן) also need their own pool — they are not part of the organization
92
+ - 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
93
+
94
+ ### Element Placement — CRITICAL
95
+
96
+ **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
97
 
77
98
  ### Color Scheme by Participant Type
78
99
 
@@ -109,13 +130,28 @@ Example: If a Resident interacts with both a Delivery Company and a Development
109
130
 
110
131
  ### Gateways — CRITICAL RULE
111
132
 
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.
133
+ **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.
134
+
135
+ - XOR (exclusive): **X** marker inside the diamond
136
+ - AND (parallel): **+** marker inside the diamond
137
+ - OR (inclusive): **O** marker inside the diamond
138
+
139
+ **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.
140
+
141
+ **Anti-pattern — NEVER do this:**
142
+ ```svg
143
+ <!-- WRONG: text inside gateway diamond -->
144
+ <polygon points="..." fill="..." stroke="..."/>
145
+ <text x="CX" y="CY">כמה ימים?</text> <!-- FORBIDDEN -->
146
+ ```
113
147
 
148
+ **Correct pattern:**
114
149
  ```svg
115
- <!-- XOR Gateway template (both split and merge) -->
150
+ <!-- RIGHT: X marker inside, label outside -->
116
151
  <rect x="X" y="Y" width="34" height="34" class="gateway" transform="rotate(45, CX, CY)"/>
117
152
  <line x1="CX-7" y1="CY-10" x2="CX+7" y2="CY+10" class="gateway-x"/>
118
153
  <line x1="CX+7" y1="CY-10" x2="CX-7" y2="CY+10" class="gateway-x"/>
154
+ <text x="CX" y="CY-25" text-anchor="middle">כמה ימים?</text> <!-- label ABOVE -->
119
155
  ```
120
156
 
121
157
  ### Intermediate Events (Waiting/Catching)
@@ -210,7 +246,7 @@ When a process includes an approval step where the participant can reject:
210
246
 
211
247
  Output a single self-contained HTML file with:
212
248
 
213
- 1. **Header bar**: Gradient background with process title in Hebrew + English subtitle
249
+ 1. **Header bar**: Gradient background with process title in Hebrew + English subtitle. Must say "BPMN 1.1" (NOT 2.0)
214
250
  2. **Legend**: Horizontal bar showing all BPMN symbols used in the diagram (start, end, task, XOR gateway, intermediate event, data object, data store, message flow)
215
251
  3. **SVG canvas**: The full BPMN diagram in a scrollable wrapper
216
252
  4. **SVG definitions**: Drop shadow filters, arrow markers (sequence, message, data association)
@@ -225,9 +261,12 @@ Output a single self-contained HTML file with:
225
261
 
226
262
  **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
263
 
228
- - [ ] Every gateway (split AND merge) has an X or + symbol
264
+ - [ ] Every gateway (split AND merge) has ONLY an X/+/O marker inside — no text inside the diamond
265
+ - [ ] Gateway labels (questions, conditions) are positioned ABOVE or BESIDE the diamond, never inside
266
+ - [ ] Every element (task, gateway, event) is fully inside a single lane — nothing sits on a lane boundary
229
267
  - [ ] No arrow paths overlap or cross ambiguously
230
268
  - [ ] Data objects (📄) and data stores (🗄️) use different icons
269
+ - [ ] Every participant mentioned in the process description appears in the diagram — none are omitted
231
270
  - [ ] External participants are in separate pools with message flows
232
271
  - [ ] Passive waiting uses intermediate events, not regular tasks
233
272
  - [ ] Flow labels (כן/לא) are clearly positioned near their gateway