@eventmodelers/cli 1.0.36 → 1.0.38

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.
Files changed (71) hide show
  1. package/package.json +1 -1
  2. package/shared/skills/learn-eventmodelers-api/SKILL.md +22 -13
  3. package/stacks/modeling-kit/templates/.claude/skills/add-next-slice/SKILL.md +2 -23
  4. package/stacks/modeling-kit/templates/.claude/skills/add-next-slice/references/api-fallback.md +11 -0
  5. package/stacks/modeling-kit/templates/.claude/skills/analyze-existing-model/SKILL.md +6 -57
  6. package/stacks/modeling-kit/templates/.claude/skills/analyze-existing-model/references/api-fallback.md +68 -0
  7. package/stacks/modeling-kit/templates/.claude/skills/attributes/SKILL.md +4 -61
  8. package/stacks/modeling-kit/templates/.claude/skills/attributes/references/api-fallback.md +39 -0
  9. package/stacks/modeling-kit/templates/.claude/skills/discover-storyboard/SKILL.md +9 -53
  10. package/stacks/modeling-kit/templates/.claude/skills/discover-storyboard/references/api-fallback.md +63 -0
  11. package/stacks/modeling-kit/templates/.claude/skills/eventmodeling-applying-conways-law/SKILL.md +12 -380
  12. package/stacks/modeling-kit/templates/.claude/skills/eventmodeling-applying-conways-law/references/examples.md +329 -0
  13. package/stacks/modeling-kit/templates/.claude/skills/eventmodeling-brainstorming-events/SKILL.md +45 -290
  14. package/stacks/modeling-kit/templates/.claude/skills/eventmodeling-brainstorming-events/references/api-fallback.md +97 -0
  15. package/stacks/modeling-kit/templates/.claude/skills/eventmodeling-brainstorming-events/references/examples.md +35 -0
  16. package/stacks/modeling-kit/templates/.claude/skills/eventmodeling-checking-completeness/SKILL.md +15 -410
  17. package/stacks/modeling-kit/templates/.claude/skills/eventmodeling-checking-completeness/references/api-fallback.md +22 -0
  18. package/stacks/modeling-kit/templates/.claude/skills/eventmodeling-checking-completeness/references/examples.md +397 -0
  19. package/stacks/modeling-kit/templates/.claude/skills/eventmodeling-core-rules/SKILL.md +182 -0
  20. package/stacks/modeling-kit/templates/.claude/skills/eventmodeling-designing-automation-chains/SKILL.md +148 -0
  21. package/stacks/modeling-kit/templates/.claude/skills/eventmodeling-designing-automation-chains/references/api-fallback.md +21 -0
  22. package/stacks/modeling-kit/templates/.claude/skills/eventmodeling-designing-event-models/SKILL.md +48 -448
  23. package/stacks/modeling-kit/templates/.claude/skills/eventmodeling-designing-event-models/references/examples.md +167 -0
  24. package/stacks/modeling-kit/templates/.claude/skills/eventmodeling-elaborating-scenarios/SKILL.md +31 -380
  25. package/stacks/modeling-kit/templates/.claude/skills/eventmodeling-elaborating-scenarios/references/api-fallback.md +31 -0
  26. package/stacks/modeling-kit/templates/.claude/skills/eventmodeling-elaborating-scenarios/references/examples.md +216 -0
  27. package/stacks/modeling-kit/templates/.claude/skills/eventmodeling-identifying-inputs/SKILL.md +33 -393
  28. package/stacks/modeling-kit/templates/.claude/skills/eventmodeling-identifying-inputs/references/api-fallback.md +79 -0
  29. package/stacks/modeling-kit/templates/.claude/skills/eventmodeling-identifying-inputs/references/examples.md +282 -0
  30. package/stacks/modeling-kit/templates/.claude/skills/eventmodeling-identifying-outputs/SKILL.md +54 -454
  31. package/stacks/modeling-kit/templates/.claude/skills/eventmodeling-identifying-outputs/references/api-fallback.md +67 -0
  32. package/stacks/modeling-kit/templates/.claude/skills/eventmodeling-identifying-outputs/references/examples.md +273 -0
  33. package/stacks/modeling-kit/templates/.claude/skills/eventmodeling-interview-protocol/SKILL.md +31 -0
  34. package/stacks/modeling-kit/templates/.claude/skills/eventmodeling-optimizing-stream-design/SKILL.md +37 -184
  35. package/stacks/modeling-kit/templates/.claude/skills/eventmodeling-optimizing-stream-design/references/domain-patterns.md +58 -99
  36. package/stacks/modeling-kit/templates/.claude/skills/eventmodeling-optimizing-stream-design/references/patterns.md +82 -163
  37. package/stacks/modeling-kit/templates/.claude/skills/eventmodeling-orchestrating-event-modeling/SKILL.md +86 -78
  38. package/stacks/modeling-kit/templates/.claude/skills/eventmodeling-orchestrating-event-modeling/references/api-fallback.md +51 -0
  39. package/stacks/modeling-kit/templates/.claude/skills/eventmodeling-plotting-events/SKILL.md +5 -5
  40. package/stacks/modeling-kit/templates/.claude/skills/eventmodeling-plotting-events/references/api-fallback.md +10 -0
  41. package/stacks/modeling-kit/templates/.claude/skills/eventmodeling-slicing-event-models/SKILL.md +22 -51
  42. package/stacks/modeling-kit/templates/.claude/skills/eventmodeling-slicing-event-models/references/api-fallback.md +41 -0
  43. package/stacks/modeling-kit/templates/.claude/skills/eventmodeling-slicing-event-models/references/examples.md +12 -9
  44. package/stacks/modeling-kit/templates/.claude/skills/eventmodeling-slicing-event-models/references/patterns.md +1 -10
  45. package/stacks/modeling-kit/templates/.claude/skills/eventmodeling-storyboarding-events/SKILL.md +29 -382
  46. package/stacks/modeling-kit/templates/.claude/skills/eventmodeling-storyboarding-events/references/api-fallback.md +77 -0
  47. package/stacks/modeling-kit/templates/.claude/skills/eventmodeling-storyboarding-events/references/examples.md +271 -0
  48. package/stacks/modeling-kit/templates/.claude/skills/eventmodeling-translating-external-events/SKILL.md +12 -349
  49. package/stacks/modeling-kit/templates/.claude/skills/eventmodeling-translating-external-events/references/examples.md +306 -0
  50. package/stacks/modeling-kit/templates/.claude/skills/eventmodeling-validating-event-models/SKILL.md +69 -107
  51. package/stacks/modeling-kit/templates/.claude/skills/eventmodeling-validating-event-models/references/api-fallback.md +14 -0
  52. package/stacks/modeling-kit/templates/.claude/skills/eventmodeling-validating-event-models-checklist/SKILL.md +75 -160
  53. package/stacks/modeling-kit/templates/.claude/skills/eventmodeling-validating-event-models-checklist/references/api-fallback.md +14 -0
  54. package/stacks/modeling-kit/templates/.claude/skills/examples/SKILL.md +3 -110
  55. package/stacks/modeling-kit/templates/.claude/skills/examples/references/api-fallback.md +118 -0
  56. package/stacks/modeling-kit/templates/.claude/skills/handle-comment/SKILL.md +5 -25
  57. package/stacks/modeling-kit/templates/.claude/skills/handle-comment/references/api-fallback.md +35 -0
  58. package/stacks/modeling-kit/templates/.claude/skills/html-screen/SKILL.md +9 -44
  59. package/stacks/modeling-kit/templates/.claude/skills/html-screen/references/api-fallback.md +51 -0
  60. package/stacks/modeling-kit/templates/.claude/skills/place-element/SKILL.md +34 -180
  61. package/stacks/modeling-kit/templates/.claude/skills/place-element/references/api-fallback.md +203 -0
  62. package/stacks/modeling-kit/templates/.claude/skills/storyboard/SKILL.md +14 -81
  63. package/stacks/modeling-kit/templates/.claude/skills/storyboard/references/api-fallback.md +74 -0
  64. package/stacks/modeling-kit/templates/.claude/skills/storyboard-screen/SKILL.md +4 -45
  65. package/stacks/modeling-kit/templates/.claude/skills/storyboard-screen/references/api-fallback.md +44 -0
  66. package/stacks/modeling-kit/templates/.claude/skills/timeline/SKILL.md +19 -88
  67. package/stacks/modeling-kit/templates/.claude/skills/timeline/references/api-fallback.md +91 -0
  68. package/stacks/modeling-kit/templates/.claude/skills/update-prompt-status/SKILL.md +1 -9
  69. package/stacks/modeling-kit/templates/.claude/skills/update-prompt-status/references/api-fallback.md +14 -0
  70. package/stacks/modeling-kit/templates/.claude/skills/eventmodeling-integrating-legacy-systems/SKILL.md +0 -674
  71. package/stacks/modeling-kit/templates/.claude/skills/eventmodeling-optimizing-stream-design/references/snapshotting.md +0 -204
@@ -0,0 +1,216 @@
1
+ # Elaborating Scenarios — Worked Examples
2
+
3
+ Full worked Given-When-Then examples for each scenario category, all drawn from one Order/Payment domain so the shapes are easy to compare. The main SKILL.md keeps one compact example per category — this file has the complete set.
4
+
5
+ ## 1. Command Scenarios (Given-When-Then)
6
+
7
+ ```
8
+ Feature: Order Creation
9
+
10
+ Scenario: Create order successfully
11
+ Given a customer with ID "cust-123"
12
+ And products exist with IDs ["prod-1", "prod-2"]
13
+ And customer has valid shipping address
14
+ When the customer creates an order with items:
15
+ | productId | quantity | unitPrice |
16
+ | prod-1 | 2 | 50.00 |
17
+ | prod-2 | 1 | 30.00 |
18
+ Then the order should be created with status "Draft"
19
+ And the total should be calculated as 130.00
20
+ And an "OrderCreated" event is produced with:
21
+ | field | value |
22
+ | orderId | {uuid} |
23
+ | customerId | cust-123 |
24
+ | items | [...] |
25
+ | total | 130.00 |
26
+ | status | Draft |
27
+
28
+ Scenario: Reject order with invalid customer
29
+ Given a customer ID "invalid-cust"
30
+ And no customer exists with that ID
31
+ When the customer tries to create an order
32
+ Then the command should be rejected
33
+ And the rejection reason is "Customer not found"
34
+ And no event is produced
35
+
36
+ Scenario: Reject order with empty items
37
+ Given a customer with ID "cust-123"
38
+ And an empty items list []
39
+ When the customer tries to create an order
40
+ Then the command should be rejected
41
+ And the rejection reason is "Order must contain items"
42
+ And no event is produced
43
+
44
+ Scenario: Reject order with invalid address
45
+ Given a customer with ID "cust-123"
46
+ And an incomplete shipping address (missing city)
47
+ When the customer tries to create an order
48
+ Then the command should be rejected
49
+ And the rejection reason is "Invalid shipping address"
50
+ And no event is produced
51
+ ```
52
+
53
+ ## 2. Command Scenarios — State Validation
54
+
55
+ ```
56
+ Feature: Order Confirmation
57
+
58
+ Scenario: Confirm order in Draft state
59
+ Given an order "order-456" in Draft state
60
+ And OrderCreated event exists
61
+ And no OrderConfirmed event exists
62
+ When the customer confirms the order with payment method "card"
63
+ Then the order should be confirmed
64
+ And an "OrderConfirmed" event is produced with:
65
+ | field | value |
66
+ | orderId | order-456 |
67
+ | paymentMethod | card |
68
+ | confirmedAt | {timestamp} |
69
+
70
+ Scenario: Reject confirming already-confirmed order
71
+ Given an order "order-456" in Confirmed state
72
+ And OrderConfirmed event already exists
73
+ When the customer tries to confirm the order again
74
+ Then the command should be rejected
75
+ And the rejection reason is "Order already confirmed"
76
+ And no OrderConfirmed event is produced
77
+
78
+ Scenario: Reject confirming cancelled order
79
+ Given an order "order-456" in Cancelled state
80
+ And OrderCancelled event exists
81
+ When the customer tries to confirm the order
82
+ Then the command should be rejected
83
+ And the rejection reason is "Cannot confirm cancelled order"
84
+ And no event is produced
85
+ ```
86
+
87
+ ## 3. View Scenarios (Given-When-Then)
88
+
89
+ ```
90
+ Feature: Order Status View
91
+
92
+ Scenario: Display order after creation
93
+ Given an OrderCreated event with:
94
+ | field | value |
95
+ | orderId | order-789 |
96
+ | customerId | cust-123 |
97
+ | items | [{...}] |
98
+ | total | 150.00 |
99
+ When the OrderStatusView processes this event
100
+ Then the view should display:
101
+ | field | value |
102
+ | Order ID | order-789 |
103
+ | Status | Draft |
104
+ | Total | $150.00 |
105
+ | Items | 3 products |
106
+ | Created | {date} |
107
+
108
+ Scenario: Update status after confirmation
109
+ Given an OrderCreated event already processed
110
+ And OrderStatusView showing status "Draft"
111
+ When an OrderConfirmed event is received with:
112
+ | field | value |
113
+ | orderId | order-789 |
114
+ | confirmedAt | 2024-12-31T10:00:00Z |
115
+ Then the view should update to display:
116
+ | field | value |
117
+ | Status | Confirmed |
118
+ | Confirmed Date | 12/31/2024 10:00 AM |
119
+
120
+ Scenario: Accumulate payment information
121
+ Given OrderConfirmed event processed (status=Confirmed)
122
+ When a PaymentAuthorized event arrives with:
123
+ | field | value |
124
+ | orderId | order-789 |
125
+ | paymentId | pay-123 |
126
+ | authCode | AUTH-456 |
127
+ Then the view should accumulate:
128
+ | field | value |
129
+ | Payment ID | pay-123 |
130
+ | Auth Code | AUTH-456 |
131
+ | Payment Status | Authorized |
132
+ ```
133
+
134
+ ## 3b. List-type Read Model Scenarios
135
+
136
+ Expected rows and empty-list intent when the THEN readmodel is a list (`listElement: true`):
137
+
138
+ ```
139
+ Feature: Product Catalog
140
+
141
+ Scenario: Products list shows all created products
142
+ Given a ProductCreated event with name "Shoes", index "0", family_id "22222..."
143
+ And a ProductCreated event with name "Clothing", index "1", family_id "33333..."
144
+ When the ProductList view processes these events
145
+ Then the list should contain:
146
+ | name | index | family_id |
147
+ | Shoes | 0 | 22222... |
148
+ | Clothing | 1 | 33333... |
149
+
150
+ Scenario: Products list is empty after last item is deleted
151
+ Given a ProductDeleted event for the last remaining item
152
+ When the ProductList view processes this event
153
+ Then the list should be empty
154
+ ```
155
+
156
+ ## 4. Error Path Scenarios
157
+
158
+ ```
159
+ Feature: Payment Authorization Failure
160
+
161
+ Scenario: Handle declined payment
162
+ Given an order "order-001" in Confirmed state
163
+ And customer initiates payment
164
+ When the payment gateway declines the card
165
+ Then a PaymentFailed event is produced with:
166
+ | field | value |
167
+ | orderId | order-001 |
168
+ | reason | Card declined |
169
+ | timestamp | {now} |
170
+
171
+ Scenario: Update order view on payment failure
172
+ Given OrderStatusView shows status "Confirmed"
173
+ When PaymentFailed event arrives for order-001
174
+ Then the view should update:
175
+ | field | value |
176
+ | Payment Status | Failed |
177
+ | Failure Reason | Card declined |
178
+ | Retry Available | Yes |
179
+
180
+ Scenario: Allow retry after payment failure
181
+ Given a PaymentFailed event exists
182
+ And order status is still "Confirmed"
183
+ When customer retries payment
184
+ Then the new AuthorizePayment command is accepted
185
+ And can produce new PaymentAuthorized event
186
+ ```
187
+
188
+ ## 5. Compensation Scenarios
189
+
190
+ ```
191
+ Feature: Order Cancellation
192
+
193
+ Scenario: Cancel order in Draft state
194
+ Given an order "order-555" in Draft state
195
+ And only OrderCreated event exists
196
+ When customer cancels the order with reason "Changed mind"
197
+ Then an OrderCancelled event is produced with:
198
+ | field | value |
199
+ | orderId | order-555 |
200
+ | reason | Changed mind |
201
+ | cancelledAt | {timestamp} |
202
+
203
+ Scenario: Cannot cancel completed order
204
+ Given an order "order-555" in Delivered state
205
+ And DeliveryConfirmed event exists
206
+ When customer tries to cancel
207
+ Then the command should be rejected
208
+ And the rejection reason is "Cannot cancel delivered order"
209
+
210
+ Scenario: Trigger compensation on cancellation
211
+ Given an order in Confirmed state
212
+ And PaymentAuthorized event exists
213
+ When OrderCancelled event is produced
214
+ Then a RefundPayment command should be automatically triggered
215
+ And RefundInitiated event should follow
216
+ ```