sad-mcp 2.2.2 → 2.2.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 CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "sad-mcp",
3
- "version": "2.2.2",
3
+ "version": "2.2.3",
4
4
  "description": "MCP server for Software Analysis and Design course materials at BGU",
5
5
  "type": "module",
6
6
  "bin": {
@@ -31,7 +31,7 @@ The shared files prepended to this prompt define the layout recipes, model shape
31
31
  8. **UC labels describe actions WITH the information system, not physical real-world actions.** See §3 for the full rule and verb list.
32
32
  9. **Every system-time / cron actor association MUST carry a timing label** (e.g., "פעם ביום", "כל 5 דקות"). See §2 and §8 for rendering.
33
33
  10. **No "send-only" use cases.** If a UC's entire behavior is sending a message / notification / alert / email / SMS, it is not a UC — it is a step inside the UC that *decided* to send it. See §3.
34
- 11. **All narrative UC documentation must be in Hebrew.** Description, preconditions, postconditions, every scenario flow-step text and extension text, user stories (role / want / so), assumptions, and open questions must all contain Hebrew. Identifier strings (`id`, `primaryActor: 'customer'`) stay ASCII. The validator (§12) rejects narrative fields that contain zero Hebrew characters.
34
+ 11. **All narrative UC documentation must be in Hebrew.** Description, preconditions, postconditions, every scenario flow-step text and extension text, user stories (`role` / `want` / `so` fields), assumptions, and open questions must all be written in Hebrew. User stories are rendered as "בתור [role], אני רוצה [want], כדי ש[so]" — write the field values in Hebrew accordingly. Identifier strings (`id`, `primaryActor: 'customer'`) stay ASCII. The validator (§12) rejects narrative fields that contain zero Hebrew characters.
35
35
 
36
36
  ---
37
37
 
@@ -162,20 +162,28 @@ UC documentation: [uc-id]
162
162
  - ___________________
163
163
 
164
164
  scenarios:
165
- - id: sc-happy, name: "מסלול מרכזי (Happy Path)"
165
+ - id: sc-happy, name: "מסלול מרכזי"
166
166
  flow:
167
167
  1. [actor:primaryActor] ___________________
168
168
  2. [system] ___________________
169
169
  3. [include:uc-xxx] ___________________ (only if §4.2 gate passed)
170
170
  4. [actor:secondary] ___________________
171
- extensions:
172
- 2a. if ___________ then ___________
173
- 4a. if ___________ then ___________
174
- - id: sc-alt-1, name: "מסלול חלופי: ___" (optional additional scenarios)
171
+ extensions: (error/exception handling — one per step where failure is realistic)
172
+ 2a. אם ___________ המערכת ___________ (e.g. wrong input, not found, timeout)
173
+ 4a. אם ___________ המערכת ___________
174
+
175
+ Additional scenarios — add one when the SAME GOAL is achieved via a meaningfully different PATH or TRIGGER.
176
+ Rule: same "what", different "how" or different starting condition → new scenario.
177
+ Examples: "רישום רגיל" vs "רישום מאוחר עם קנס"; "תשלום בכרטיס" vs "תשלום בקופון".
178
+ Do NOT add a scenario just for a different error outcome — that belongs in extensions of the main scenario.
179
+
180
+ - id: sc-alt-1, name: "מסלול חלופי: ___"
181
+ flow: ...
182
+ extensions: ...
175
183
 
176
184
  userStories: (as many as the UC warrants — one per distinct stakeholder need; not a fixed number)
177
- - As a [role], I want [want], so that [benefit].
178
- - As a [different role OR same role different goal], I want [...], so that [...].
185
+ - בתור [תפקיד], אני רוצה [מה], כדי ש[למה].
186
+ - בתור [תפקיד שונה או אותו תפקיד עם מטרה שונה], אני רוצה [...], כדי ש[...].
179
187
  - ... (keep adding until every user-facing goal tied to this UC is represented)
180
188
 
181
189
  wireframe?: (optional — only where the UC benefits from a UI mock; see §WF)
@@ -541,8 +549,8 @@ const useCaseDocs = {
541
549
  }
542
550
  ],
543
551
  userStories: [
544
- { role: 'לקוח', want: 'להזמין מוצר במהירות', so: 'שאקבל אותו תוך 48 שעות.' }
545
- ],
552
+ { role: 'לקוח', want: 'להזמין מוצר במהירות', so: 'שאקבל אותו תוך 48 שעות' }
553
+ ], // rendered as: "בתור לקוח, אני רוצה להזמין מוצר במהירות, כדי ששאקבל אותו תוך 48 שעות"
546
554
  wireframe: '' // optional per §WF
547
555
  }
548
556
  // ... one entry per UC