sad-mcp 1.1.1 → 1.1.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.1.1",
3
+ "version": "1.1.2",
4
4
  "description": "MCP server for Software Analysis and Design course materials at BGU",
5
5
  "type": "module",
6
6
  "bin": {
@@ -75,27 +75,24 @@ The shared files prepended to this prompt define the layout recipes, model shape
75
75
  **Start with zero.** Add «include» or «extend» only when you can explicitly justify it against the tests below. When in doubt, leave it out.
76
76
 
77
77
  ### «include»
78
- Allowed only when **all four** hold:
79
- 1. The sub-behavior is **mandatory** every time the base UC runs
80
- 2. The sub-behavior is shared by **2 or more** base UCs there must be ≥2 incoming «include» arrows
81
- 3. The included UC has **no direct association to any actor** if any actor connects to it, it is a regular UC, not an included sub-behavior
82
- 4. Extracting it genuinely simplifies the diagram if the diagram becomes more complex, fold it back in
78
+ «include» means: every time the base UC runs, the included UC **always** runs as part of it — no exceptions, no conditions. It is not "if X happens, then Y" — that is «extend». It is "X always does Y as part of its execution."
79
+
80
+ However, **always-happens does not automatically mean extract**. A step that always happens inside a UC is usually just part of that UC. Only extract it when:
81
+ 1. It is shared by **2 or more** base UCsthere must be ≥2 incoming «include» arrows
82
+ 2. The included UC has **no direct association to any actor** actor-connected UCs are standalone UCs, not sub-behaviors
83
+ 3. Extracting it genuinely reduces duplication — not just because it feels like a "step"
83
84
 
84
85
  Arrow direction: Base UC → Included UC. Dashed line, open arrowhead.
85
86
 
86
- **Immediate disqualifiers — if any apply, do NOT use «include»:**
87
- - Only one base UC points to it → fold into the parent
88
- - An actor has an association line to it → it is a standalone UC
89
- - You added it just to avoid repeating a label wrong reason; keep behavior inside the UC
87
+ **Immediate disqualifiers:**
88
+ - Only one base UC points to it → fold it into the parent UC
89
+ - An actor connects to it → it is a regular standalone UC, not an «include» target
90
+ - It is conditional or optionalthat is «extend», not «include»
90
91
 
91
92
  ### «extend»
92
- Allowed only when:
93
- 1. The behavior is **genuinely optional or conditional** (not just infrequent)
94
- 2. The extension would clutter the base UC if included inside it
95
-
96
- Arrow direction: Extension UC → Base UC. Use at most once or twice per diagram.
93
+ «extend» means: sometimes, under a specific condition, an additional behavior fires. The base UC runs fine without it.
97
94
 
98
- **If you cannot articulate the exact condition under which the extension fires, do not add it.**
95
+ Arrow direction: Extension UC → Base UC. Use at most once or twice per diagram. If you cannot state the exact condition in one sentence, do not add it.
99
96
 
100
97
  ---
101
98