@groupby/ai-dev 0.5.10 → 0.5.11

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 (61) hide show
  1. package/package.json +1 -1
  2. package/teams/fhr-neowise/commands/address-pr.md +120 -0
  3. package/teams/fhr-neowise/commands/ready-pr.md +70 -0
  4. package/teams/fhr-neowise/commands/review-pr.md +111 -0
  5. package/teams/fhr-neowise/commands/tdd-implementation.md +86 -0
  6. package/teams/fhr-neowise/commands/write-plan.md +23 -0
  7. package/teams/fhr-neowise/commands/write-pr.md +21 -0
  8. package/teams/fhr-neowise/commands/write-spec.md +25 -0
  9. package/teams/fhr-neowise/skills/agent-routing/SKILL.md +72 -0
  10. package/teams/fhr-neowise/skills/code-review/SKILL.md +83 -0
  11. package/teams/fhr-neowise/skills/code-review/review-template.md +90 -0
  12. package/teams/fhr-neowise/skills/mermaid-diagram/SKILL.md +94 -0
  13. package/teams/fhr-neowise/skills/mermaid-diagram/references/BEST_PRACTICES.md +96 -0
  14. package/teams/fhr-neowise/skills/mermaid-diagram/references/architecture.md +434 -0
  15. package/teams/fhr-neowise/skills/mermaid-diagram/references/block.md +753 -0
  16. package/teams/fhr-neowise/skills/mermaid-diagram/references/c4.md +619 -0
  17. package/teams/fhr-neowise/skills/mermaid-diagram/references/classDiagram.md +1186 -0
  18. package/teams/fhr-neowise/skills/mermaid-diagram/references/config-configuration.md +72 -0
  19. package/teams/fhr-neowise/skills/mermaid-diagram/references/config-directives.md +342 -0
  20. package/teams/fhr-neowise/skills/mermaid-diagram/references/config-layouts.md +40 -0
  21. package/teams/fhr-neowise/skills/mermaid-diagram/references/config-math.md +96 -0
  22. package/teams/fhr-neowise/skills/mermaid-diagram/references/config-theming.md +246 -0
  23. package/teams/fhr-neowise/skills/mermaid-diagram/references/config-tidy-tree.md +89 -0
  24. package/teams/fhr-neowise/skills/mermaid-diagram/references/cynefin.md +279 -0
  25. package/teams/fhr-neowise/skills/mermaid-diagram/references/entityRelationshipDiagram.md +670 -0
  26. package/teams/fhr-neowise/skills/mermaid-diagram/references/eventmodeling.md +475 -0
  27. package/teams/fhr-neowise/skills/mermaid-diagram/references/examples.md +301 -0
  28. package/teams/fhr-neowise/skills/mermaid-diagram/references/flowchart.md +2116 -0
  29. package/teams/fhr-neowise/skills/mermaid-diagram/references/gantt.md +725 -0
  30. package/teams/fhr-neowise/skills/mermaid-diagram/references/gitgraph.md +2138 -0
  31. package/teams/fhr-neowise/skills/mermaid-diagram/references/ishikawa.md +66 -0
  32. package/teams/fhr-neowise/skills/mermaid-diagram/references/kanban.md +161 -0
  33. package/teams/fhr-neowise/skills/mermaid-diagram/references/mindmap.md +335 -0
  34. package/teams/fhr-neowise/skills/mermaid-diagram/references/packet.md +153 -0
  35. package/teams/fhr-neowise/skills/mermaid-diagram/references/pie.md +93 -0
  36. package/teams/fhr-neowise/skills/mermaid-diagram/references/quadrantChart.md +267 -0
  37. package/teams/fhr-neowise/skills/mermaid-diagram/references/radar.md +269 -0
  38. package/teams/fhr-neowise/skills/mermaid-diagram/references/railroad.md +337 -0
  39. package/teams/fhr-neowise/skills/mermaid-diagram/references/requirementDiagram.md +495 -0
  40. package/teams/fhr-neowise/skills/mermaid-diagram/references/sankey.md +415 -0
  41. package/teams/fhr-neowise/skills/mermaid-diagram/references/sequenceDiagram.md +1195 -0
  42. package/teams/fhr-neowise/skills/mermaid-diagram/references/stateDiagram.md +670 -0
  43. package/teams/fhr-neowise/skills/mermaid-diagram/references/timeline.md +571 -0
  44. package/teams/fhr-neowise/skills/mermaid-diagram/references/treeView.md +321 -0
  45. package/teams/fhr-neowise/skills/mermaid-diagram/references/treemap.md +353 -0
  46. package/teams/fhr-neowise/skills/mermaid-diagram/references/userJourney.md +42 -0
  47. package/teams/fhr-neowise/skills/mermaid-diagram/references/venn.md +134 -0
  48. package/teams/fhr-neowise/skills/mermaid-diagram/references/wardley.md +732 -0
  49. package/teams/fhr-neowise/skills/mermaid-diagram/references/xyChart.md +312 -0
  50. package/teams/fhr-neowise/skills/mermaid-diagram/references/zenuml.md +474 -0
  51. package/teams/fhr-neowise/skills/mermaid-diagram/scripts/sync_docs.py +138 -0
  52. package/teams/fhr-neowise/skills/pull-request-authoring/COMPLEX.template.md +52 -0
  53. package/teams/fhr-neowise/skills/pull-request-authoring/NON-CODE.template.md +15 -0
  54. package/teams/fhr-neowise/skills/pull-request-authoring/SIMPLE.template.md +20 -0
  55. package/teams/fhr-neowise/skills/pull-request-authoring/SKILL.md +102 -0
  56. package/teams/fhr-neowise/skills/spec-investigation/SKILL.md +139 -0
  57. package/teams/fhr-neowise/skills/spec-investigation/TEMPLATE.spec.md +74 -0
  58. package/teams/fhr-neowise/skills/tdd-workflow/SKILL.md +137 -0
  59. package/teams/fhr-neowise/skills/write-plan/SKILL.md +285 -0
  60. package/teams/fhr-neowise/skills/write-plan/assets/TEMPLATE.checklist.json +79 -0
  61. package/teams/fhr-neowise/skills/write-plan/assets/TEMPLATE.plan.md +158 -0
@@ -0,0 +1,475 @@
1
+ > **Warning**
2
+ >
3
+ > ## THIS IS AN AUTOGENERATED FILE. DO NOT EDIT.
4
+ >
5
+ > ## Please edit the corresponding file in [/packages/mermaid/src/docs/syntax/eventmodeling.md](../../packages/mermaid/src/docs/syntax/eventmodeling.md).
6
+
7
+ # Event Modeling Diagram (v11.15.0+)
8
+
9
+ ## Introduction
10
+
11
+ > **Event Modeling** (EM) is a method of describing systems using an example of how information has changed within them over time. Event Modeling specifically omits transient details and looks at what the information flow is and what the user sees at any particular point in time.
12
+
13
+ You can read more at [Event Modeling web page](https://eventmodeling.org/).
14
+
15
+ Event Modeling diagram is composed of a few main entities:
16
+
17
+ - Trigger - UI and Processor
18
+ - Command
19
+ - View / Read Model
20
+ - Event
21
+
22
+ Entities are organized in swimlanes forming a timeline usually based on the following patterns:
23
+
24
+ - State View
25
+ - State Change
26
+ - Translation
27
+ - Automation
28
+
29
+ You can find more details in the [cheat sheet](https://eventmodeling.org/posts/event-modeling-cheatsheet/).
30
+
31
+ The purpose of the Domain Specific Language (DSL) supporting the drawing of the Event Modeling diagram is the rapid creation. Relations among the entities are inferred by default, so the distraction while you design is limited. Further detail to the entities can be added gradually.
32
+
33
+ The grammar for the DSL is also maintained in a [separate project](https://github.com/lgazo/event-modeling-dsl) with the intention to provide also different types of output, VS Code (and potentially other) IDEs, etc.
34
+
35
+ ## Basic Syntax
36
+
37
+ The DSL supports two types of syntaxes - compact and relaxed one. Both will be mentioned in the examples and both can be used interchangeably.
38
+
39
+ ### Timeline
40
+
41
+ The timeline is the key part of the diagram and it is composed of **Time Frame** definitions. Speedy Time Frame typing is the key of the compact notation. For compact notation you type the `tf` token. For the relaxed notation you type `timeframe` token.
42
+
43
+ ```md
44
+ eventmodeling
45
+
46
+ tf 01 ui CartUI
47
+ tf 02 cmd AddItem
48
+ tf 03 evt ItemAdded
49
+ ```
50
+
51
+ rendering to
52
+
53
+ ```mermaid-example
54
+ eventmodeling
55
+
56
+ tf 01 ui CartUI
57
+ tf 02 cmd AddItem
58
+ tf 03 evt ItemAdded
59
+ ```
60
+
61
+ ```mermaid
62
+ eventmodeling
63
+
64
+ tf 01 ui CartUI
65
+ tf 02 cmd AddItem
66
+ tf 03 evt ItemAdded
67
+ ```
68
+
69
+ Each Time Frame is referenced by a **unique number** in order to distinguish one from another and also to be able to reference it when needed. Depending on the complexity of the diagram it should be enough to have just two digit number or more. Imagine you are typing a BASIC program on your ZX Spectrum always starting with a two digit number, but the order of the numbers does not matter, just the uniqueness in the whole timeline.
70
+
71
+ The Time Frame also contains an **Entity Identifier**, e.g. in case of `01` Time Frame it is `CartUI`. One Entity Identifier can be used multiple times in the timeline for example when you want to express invocations of the same event in different points in time.
72
+
73
+ Relaxed notation would look like this:
74
+
75
+ ```md
76
+ eventmodeling
77
+
78
+ timeframe 01 ui CartUI
79
+ timeframe 02 command AddItem
80
+ timeframe 03 event ItemAdded
81
+ ```
82
+
83
+ ### Inline data
84
+
85
+ It is possible to provide data examples for individual Time Frames. An Inline Data is wrapped in curly brackets on the same line as the Time Frame.
86
+
87
+ Compact version:
88
+
89
+ ```mermaid-example
90
+ eventmodeling
91
+
92
+ tf 01 ui CartUI
93
+ tf 02 cmd AddItem { description: string }
94
+ tf 03 evt ItemAdded { description: string }
95
+ ```
96
+
97
+ ```mermaid
98
+ eventmodeling
99
+
100
+ tf 01 ui CartUI
101
+ tf 02 cmd AddItem { description: string }
102
+ tf 03 evt ItemAdded { description: string }
103
+ ```
104
+
105
+ Relaxed version:
106
+
107
+ ```mermaid-example
108
+ eventmodeling
109
+
110
+ timeframe 01 ui CartUI
111
+ timeframe 02 command AddItem { description: string }
112
+ timeframe 03 event ItemAdded { description: string }
113
+ ```
114
+
115
+ ```mermaid
116
+ eventmodeling
117
+
118
+ timeframe 01 ui CartUI
119
+ timeframe 02 command AddItem { description: string }
120
+ timeframe 03 event ItemAdded { description: string }
121
+ ```
122
+
123
+ ### Data block
124
+
125
+ If you need to provide more complex data description, you can define the **Data Block** separately. Data Block is referenced from a Time Frame by providing the identifier inside of double-square brackets `[[identifier]]`, similar to wiki links convention in Markdown.
126
+
127
+ In case the same entity is repeated you need to uniquely identify the data blocks, therefore the Data Block identifier is suffixed with a number.
128
+
129
+ Compact version:
130
+
131
+ ```mermaid-example
132
+ eventmodeling
133
+
134
+ tf 01 ui CartUI
135
+ tf 02 cmd AddItem [[AddItem01]]
136
+ tf 03 evt ItemAdded [[ItemAdded]]
137
+ tf 04 cmd AddItem [[AddItem02]]
138
+ tf 05 evt ItemAdded [[ItemAdded]]
139
+
140
+ data AddItem01 {
141
+ description: 'john'
142
+ image: 'avatar_john'
143
+ price: 20.4
144
+ }
145
+
146
+ data AddItem02 {
147
+ description: 'jack'
148
+ image: 'avatar_jack'
149
+ price: 12.5
150
+ }
151
+
152
+ data ItemAdded {
153
+ description: string
154
+ image: string
155
+ price: number
156
+ }
157
+ ```
158
+
159
+ ```mermaid
160
+ eventmodeling
161
+
162
+ tf 01 ui CartUI
163
+ tf 02 cmd AddItem [[AddItem01]]
164
+ tf 03 evt ItemAdded [[ItemAdded]]
165
+ tf 04 cmd AddItem [[AddItem02]]
166
+ tf 05 evt ItemAdded [[ItemAdded]]
167
+
168
+ data AddItem01 {
169
+ description: 'john'
170
+ image: 'avatar_john'
171
+ price: 20.4
172
+ }
173
+
174
+ data AddItem02 {
175
+ description: 'jack'
176
+ image: 'avatar_jack'
177
+ price: 12.5
178
+ }
179
+
180
+ data ItemAdded {
181
+ description: string
182
+ image: string
183
+ price: number
184
+ }
185
+ ```
186
+
187
+ Relaxed version:
188
+
189
+ ```mermaid-example
190
+ eventmodeling
191
+
192
+ timeframe 01 ui CartUI
193
+ timeframe 02 command AddItem [[AddItem01]]
194
+ timeframe 03 event ItemAdded [[ItemAdded]]
195
+ timeframe 04 command AddItem [[AddItem02]]
196
+ timeframe 05 event ItemAdded [[ItemAdded]]
197
+
198
+ data AddItem01 {
199
+ description: 'john'
200
+ image: 'avatar_john'
201
+ price: 20.4
202
+ }
203
+
204
+ data AddItem02 {
205
+ description: 'jack'
206
+ image: 'avatar_jack'
207
+ price: 12.5
208
+ }
209
+
210
+ data ItemAdded {
211
+ description: string
212
+ image: string
213
+ price: number
214
+ }
215
+ ```
216
+
217
+ ```mermaid
218
+ eventmodeling
219
+
220
+ timeframe 01 ui CartUI
221
+ timeframe 02 command AddItem [[AddItem01]]
222
+ timeframe 03 event ItemAdded [[ItemAdded]]
223
+ timeframe 04 command AddItem [[AddItem02]]
224
+ timeframe 05 event ItemAdded [[ItemAdded]]
225
+
226
+ data AddItem01 {
227
+ description: 'john'
228
+ image: 'avatar_john'
229
+ price: 20.4
230
+ }
231
+
232
+ data AddItem02 {
233
+ description: 'jack'
234
+ image: 'avatar_jack'
235
+ price: 12.5
236
+ }
237
+
238
+ data ItemAdded {
239
+ description: string
240
+ image: string
241
+ price: number
242
+ }
243
+ ```
244
+
245
+ ### Resetting the flow
246
+
247
+ By default the diagram builds the relations based on the inference. But modeling a more complex business flow requires to break such inference from time to time. For that you can use a different type of Time Frame called **Reset Frame**. It is represented by a `rf` / `resetframe` token.
248
+
249
+ Compact version:
250
+
251
+ ```mermaid-example
252
+ eventmodeling
253
+
254
+ tf 01 ui CartUI
255
+ tf 02 cmd AddItem
256
+ tf 03 evt ItemAdded
257
+
258
+ rf 04 evt External.InventoryChanged
259
+ tf 05 pcr InventoryProcessor
260
+ tf 06 cmd ChangeInventory
261
+ tf 07 evt Cart.InventoryChanged
262
+ ```
263
+
264
+ ```mermaid
265
+ eventmodeling
266
+
267
+ tf 01 ui CartUI
268
+ tf 02 cmd AddItem
269
+ tf 03 evt ItemAdded
270
+
271
+ rf 04 evt External.InventoryChanged
272
+ tf 05 pcr InventoryProcessor
273
+ tf 06 cmd ChangeInventory
274
+ tf 07 evt Cart.InventoryChanged
275
+ ```
276
+
277
+ Relaxed version:
278
+
279
+ ```mermaid-example
280
+ eventmodeling
281
+
282
+ timeframe 01 ui CartUI
283
+ timeframe 02 command AddItem
284
+ timeframe 03 event ItemAdded
285
+
286
+ resetframe 04 event External.InventoryChanged
287
+ timeframe 05 processor InventoryProcessor
288
+ timeframe 06 command ChangeInventory
289
+ timeframe 07 event Cart.InventoryChanged
290
+ ```
291
+
292
+ ```mermaid
293
+ eventmodeling
294
+
295
+ timeframe 01 ui CartUI
296
+ timeframe 02 command AddItem
297
+ timeframe 03 event ItemAdded
298
+
299
+ resetframe 04 event External.InventoryChanged
300
+ timeframe 05 processor InventoryProcessor
301
+ timeframe 06 command ChangeInventory
302
+ timeframe 07 event Cart.InventoryChanged
303
+ ```
304
+
305
+ ### Multiple relations
306
+
307
+ There are situations where you need to specify multiple relations for an entity. For example when a **Read Model** is built of multiple **Events**. You can use `->>` token for that.
308
+
309
+ ```mermaid-example
310
+ eventmodeling
311
+
312
+ rf 02 evt CartCreated
313
+ rf 03 evt ItemAdded
314
+ rf 04 evt ItemRemoved
315
+ rf 05 evt CartCleared
316
+ tf 01 rmo CartUI ->> 02 ->> 03 ->> 04 ->> 05
317
+ ```
318
+
319
+ ```mermaid
320
+ eventmodeling
321
+
322
+ rf 02 evt CartCreated
323
+ rf 03 evt ItemAdded
324
+ rf 04 evt ItemRemoved
325
+ rf 05 evt CartCleared
326
+ tf 01 rmo CartUI ->> 02 ->> 03 ->> 04 ->> 05
327
+ ```
328
+
329
+ ## Event Modeling patterns
330
+
331
+ This chapter briefly summarizes each Event Modeling pattern.
332
+
333
+ ### State Change
334
+
335
+ ```mermaid-example
336
+ eventmodeling
337
+
338
+ tf 01 ui CartUI
339
+ tf 02 cmd AddItem
340
+ tf 03 evt ItemAdded
341
+ ```
342
+
343
+ ```mermaid
344
+ eventmodeling
345
+
346
+ tf 01 ui CartUI
347
+ tf 02 cmd AddItem
348
+ tf 03 evt ItemAdded
349
+ ```
350
+
351
+ ### State View
352
+
353
+ ```mermaid-example
354
+ eventmodeling
355
+
356
+ tf 03 evt ItemAdded
357
+ tf 02 rmo CartItems
358
+ tf 04 ui CartUI
359
+ ```
360
+
361
+ ```mermaid
362
+ eventmodeling
363
+
364
+ tf 03 evt ItemAdded
365
+ tf 02 rmo CartItems
366
+ tf 04 ui CartUI
367
+ ```
368
+
369
+ ### Translation
370
+
371
+ ```mermaid-example
372
+ eventmodeling
373
+
374
+ tf 03 evt External.InventoryChanged
375
+ tf 02 pcr InventoryProcessor
376
+ tf 04 cmd ChangeInventory
377
+ tf 05 evt Cart.InventoryChanged
378
+ ```
379
+
380
+ ```mermaid
381
+ eventmodeling
382
+
383
+ tf 03 evt External.InventoryChanged
384
+ tf 02 pcr InventoryProcessor
385
+ tf 04 cmd ChangeInventory
386
+ tf 05 evt Cart.InventoryChanged
387
+ ```
388
+
389
+ ## Details of the Syntax
390
+
391
+ ### Entity types
392
+
393
+ Entity type is determined by the third column in the Time Frame grammar.
394
+
395
+ Compact version:
396
+
397
+ ```md
398
+ tf 01 pcr InventoryProcessor
399
+ ```
400
+
401
+ Relaxed version:
402
+
403
+ ```md
404
+ timeframe 01 processor InventoryProcessor
405
+ ```
406
+
407
+ Entities are assigned to default swimlanes unless a **Namespace** is specified in the Entity Identifier.
408
+
409
+ There are the following types available:
410
+
411
+ - `ui`: UI - belongs to UI/Automation swimlane
412
+ - `pcr` / `processor`: Processor - belongs to UI/Automation swimlane
413
+ - `cmd` / `command`: Command - belongs to Command/Read Model swimlane
414
+ - `rmo` / `readmodel`: Read Model - belongs to Command/Read Model swimlane
415
+ - `evt` / `event`: Event - belongs to Events swimlane
416
+
417
+ ### Swimlanes and Namespaces
418
+
419
+ There are three basic **Swimlanes** inferred from the Entity Type.
420
+
421
+ - UI/Automation
422
+ - Command/Read Model
423
+ - Events
424
+
425
+ As your diagram grows and you explore the depths of a particular software system, you want to categorize your Entities as well. In order to do that, you can use **Namespace** identifier as part of the Entity Identifier.
426
+
427
+ ```md
428
+ Inventory.InventoryChanged
429
+ ```
430
+
431
+ **Namespace** is the first part before the `.` of the Entity Identifier. Each combination of the Namespace and Entity type forms new Swimlane. The order how they are specified in the text definition specifies the order of the Swimlanes in the diagram.
432
+
433
+ ```mermaid-example
434
+ eventmodeling
435
+
436
+ rf 01 evt Inventory.InventoryChanged
437
+ rf 02 evt External.InventoryChanged
438
+ ```
439
+
440
+ ```mermaid
441
+ eventmodeling
442
+
443
+ rf 01 evt Inventory.InventoryChanged
444
+ rf 02 evt External.InventoryChanged
445
+ ```
446
+
447
+ ### Data block data types
448
+
449
+ A **Data** is always wrapped in curly brackets. It can be prepended by a data type in backticks. The pattern applies for **Inline Data** as well as for **Data Block**.
450
+
451
+ ```md
452
+ tf 01 rmo UserAdded `json`{ "name": "foo" }
453
+ ```
454
+
455
+ or for Data Block
456
+
457
+ ```md
458
+ data UserAdded01 `json`{
459
+ "name": "foo"
460
+ }
461
+ ```
462
+
463
+ > **Warning**
464
+ > There is no special treatment in the diagram renderer at the moment for a specific data type.
465
+
466
+ Supported types are:
467
+
468
+ - `json`
469
+ - `jsobj`
470
+ - `figma`
471
+ - `salt`
472
+ - `uri`
473
+ - `md`
474
+ - `html`
475
+ - `text`