@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.
- package/package.json +1 -1
- package/teams/fhr-neowise/commands/address-pr.md +120 -0
- package/teams/fhr-neowise/commands/ready-pr.md +70 -0
- package/teams/fhr-neowise/commands/review-pr.md +111 -0
- package/teams/fhr-neowise/commands/tdd-implementation.md +86 -0
- package/teams/fhr-neowise/commands/write-plan.md +23 -0
- package/teams/fhr-neowise/commands/write-pr.md +21 -0
- package/teams/fhr-neowise/commands/write-spec.md +25 -0
- package/teams/fhr-neowise/skills/agent-routing/SKILL.md +72 -0
- package/teams/fhr-neowise/skills/code-review/SKILL.md +83 -0
- package/teams/fhr-neowise/skills/code-review/review-template.md +90 -0
- package/teams/fhr-neowise/skills/mermaid-diagram/SKILL.md +94 -0
- package/teams/fhr-neowise/skills/mermaid-diagram/references/BEST_PRACTICES.md +96 -0
- package/teams/fhr-neowise/skills/mermaid-diagram/references/architecture.md +434 -0
- package/teams/fhr-neowise/skills/mermaid-diagram/references/block.md +753 -0
- package/teams/fhr-neowise/skills/mermaid-diagram/references/c4.md +619 -0
- package/teams/fhr-neowise/skills/mermaid-diagram/references/classDiagram.md +1186 -0
- package/teams/fhr-neowise/skills/mermaid-diagram/references/config-configuration.md +72 -0
- package/teams/fhr-neowise/skills/mermaid-diagram/references/config-directives.md +342 -0
- package/teams/fhr-neowise/skills/mermaid-diagram/references/config-layouts.md +40 -0
- package/teams/fhr-neowise/skills/mermaid-diagram/references/config-math.md +96 -0
- package/teams/fhr-neowise/skills/mermaid-diagram/references/config-theming.md +246 -0
- package/teams/fhr-neowise/skills/mermaid-diagram/references/config-tidy-tree.md +89 -0
- package/teams/fhr-neowise/skills/mermaid-diagram/references/cynefin.md +279 -0
- package/teams/fhr-neowise/skills/mermaid-diagram/references/entityRelationshipDiagram.md +670 -0
- package/teams/fhr-neowise/skills/mermaid-diagram/references/eventmodeling.md +475 -0
- package/teams/fhr-neowise/skills/mermaid-diagram/references/examples.md +301 -0
- package/teams/fhr-neowise/skills/mermaid-diagram/references/flowchart.md +2116 -0
- package/teams/fhr-neowise/skills/mermaid-diagram/references/gantt.md +725 -0
- package/teams/fhr-neowise/skills/mermaid-diagram/references/gitgraph.md +2138 -0
- package/teams/fhr-neowise/skills/mermaid-diagram/references/ishikawa.md +66 -0
- package/teams/fhr-neowise/skills/mermaid-diagram/references/kanban.md +161 -0
- package/teams/fhr-neowise/skills/mermaid-diagram/references/mindmap.md +335 -0
- package/teams/fhr-neowise/skills/mermaid-diagram/references/packet.md +153 -0
- package/teams/fhr-neowise/skills/mermaid-diagram/references/pie.md +93 -0
- package/teams/fhr-neowise/skills/mermaid-diagram/references/quadrantChart.md +267 -0
- package/teams/fhr-neowise/skills/mermaid-diagram/references/radar.md +269 -0
- package/teams/fhr-neowise/skills/mermaid-diagram/references/railroad.md +337 -0
- package/teams/fhr-neowise/skills/mermaid-diagram/references/requirementDiagram.md +495 -0
- package/teams/fhr-neowise/skills/mermaid-diagram/references/sankey.md +415 -0
- package/teams/fhr-neowise/skills/mermaid-diagram/references/sequenceDiagram.md +1195 -0
- package/teams/fhr-neowise/skills/mermaid-diagram/references/stateDiagram.md +670 -0
- package/teams/fhr-neowise/skills/mermaid-diagram/references/timeline.md +571 -0
- package/teams/fhr-neowise/skills/mermaid-diagram/references/treeView.md +321 -0
- package/teams/fhr-neowise/skills/mermaid-diagram/references/treemap.md +353 -0
- package/teams/fhr-neowise/skills/mermaid-diagram/references/userJourney.md +42 -0
- package/teams/fhr-neowise/skills/mermaid-diagram/references/venn.md +134 -0
- package/teams/fhr-neowise/skills/mermaid-diagram/references/wardley.md +732 -0
- package/teams/fhr-neowise/skills/mermaid-diagram/references/xyChart.md +312 -0
- package/teams/fhr-neowise/skills/mermaid-diagram/references/zenuml.md +474 -0
- package/teams/fhr-neowise/skills/mermaid-diagram/scripts/sync_docs.py +138 -0
- package/teams/fhr-neowise/skills/pull-request-authoring/COMPLEX.template.md +52 -0
- package/teams/fhr-neowise/skills/pull-request-authoring/NON-CODE.template.md +15 -0
- package/teams/fhr-neowise/skills/pull-request-authoring/SIMPLE.template.md +20 -0
- package/teams/fhr-neowise/skills/pull-request-authoring/SKILL.md +102 -0
- package/teams/fhr-neowise/skills/spec-investigation/SKILL.md +139 -0
- package/teams/fhr-neowise/skills/spec-investigation/TEMPLATE.spec.md +74 -0
- package/teams/fhr-neowise/skills/tdd-workflow/SKILL.md +137 -0
- package/teams/fhr-neowise/skills/write-plan/SKILL.md +285 -0
- package/teams/fhr-neowise/skills/write-plan/assets/TEMPLATE.checklist.json +79 -0
- package/teams/fhr-neowise/skills/write-plan/assets/TEMPLATE.plan.md +158 -0
|
@@ -0,0 +1,337 @@
|
|
|
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/railroad.md](../../packages/mermaid/src/docs/syntax/railroad.md).
|
|
6
|
+
|
|
7
|
+
# Railroad Diagrams (v\<MERMAID_RELEASE_VERSION>+)
|
|
8
|
+
|
|
9
|
+
> Railroad diagrams (also known as syntax diagrams or grammar diagrams) are a visual representation of context-free grammars using EBNF (Extended Backus-Naur Form) notation. They provide a graphical way to understand and document language syntax, making complex grammar rules easier to comprehend.
|
|
10
|
+
|
|
11
|
+
Railroad diagrams were first popularized by Niklaus Wirth in his "Pascal User Manual" (1974) and remain widely used today, notably on [JSON.org](https://www.json.org/) for documenting the JSON syntax.
|
|
12
|
+
|
|
13
|
+
Mermaid can render Railroad diagram visualizations from EBNF notation.
|
|
14
|
+
|
|
15
|
+
```mermaid-example
|
|
16
|
+
railroad-diagram
|
|
17
|
+
title "Digit Definition"
|
|
18
|
+
|
|
19
|
+
digit = "0" | "1" | "2" | "3" | "4" | "5" | "6" | "7" | "8" | "9" ;
|
|
20
|
+
```
|
|
21
|
+
|
|
22
|
+
```mermaid
|
|
23
|
+
railroad-diagram
|
|
24
|
+
title "Digit Definition"
|
|
25
|
+
|
|
26
|
+
digit = "0" | "1" | "2" | "3" | "4" | "5" | "6" | "7" | "8" | "9" ;
|
|
27
|
+
```
|
|
28
|
+
|
|
29
|
+
## Syntax
|
|
30
|
+
|
|
31
|
+
Railroad diagrams use EBNF (Extended Backus-Naur Form) notation to define grammar rules. Mermaid supports both W3C and ISO 14977 EBNF notation styles.
|
|
32
|
+
|
|
33
|
+
### Basic Structure
|
|
34
|
+
|
|
35
|
+
- Start with `railroad-diagram` keyword to begin the diagram
|
|
36
|
+
- Optionally add a `title` followed by a quoted string
|
|
37
|
+
- Define grammar rules using the format: `rule_name = definition ;`
|
|
38
|
+
- Each rule must end with a semicolon (`;`)
|
|
39
|
+
|
|
40
|
+
### EBNF Notation
|
|
41
|
+
|
|
42
|
+
#### Terminals and Non-terminals
|
|
43
|
+
|
|
44
|
+
Terminals are literal strings enclosed in quotes:
|
|
45
|
+
|
|
46
|
+
- `"text"` - double quotes
|
|
47
|
+
- `'text'` - single quotes
|
|
48
|
+
|
|
49
|
+
Non-terminals are identifiers that reference other rules:
|
|
50
|
+
|
|
51
|
+
- `identifier` - references another rule
|
|
52
|
+
|
|
53
|
+
```mermaid-example
|
|
54
|
+
railroad-diagram
|
|
55
|
+
letter = "a" | "b" | "c" ;
|
|
56
|
+
identifier = letter ;
|
|
57
|
+
```
|
|
58
|
+
|
|
59
|
+
```mermaid
|
|
60
|
+
railroad-diagram
|
|
61
|
+
letter = "a" | "b" | "c" ;
|
|
62
|
+
identifier = letter ;
|
|
63
|
+
```
|
|
64
|
+
|
|
65
|
+
#### Sequence (Concatenation)
|
|
66
|
+
|
|
67
|
+
Elements appearing one after another define a sequence:
|
|
68
|
+
|
|
69
|
+
- W3C notation: `A B C`
|
|
70
|
+
- ISO 14977 notation: `A , B , C`
|
|
71
|
+
|
|
72
|
+
```mermaid-example
|
|
73
|
+
railroad-diagram
|
|
74
|
+
greeting = "Hello" " " "World" ;
|
|
75
|
+
```
|
|
76
|
+
|
|
77
|
+
```mermaid
|
|
78
|
+
railroad-diagram
|
|
79
|
+
greeting = "Hello" " " "World" ;
|
|
80
|
+
```
|
|
81
|
+
|
|
82
|
+
#### Choice (Alternation)
|
|
83
|
+
|
|
84
|
+
The pipe symbol (`|`) indicates alternatives:
|
|
85
|
+
|
|
86
|
+
```mermaid-example
|
|
87
|
+
railroad-diagram
|
|
88
|
+
sign = "+" | "-" ;
|
|
89
|
+
```
|
|
90
|
+
|
|
91
|
+
```mermaid
|
|
92
|
+
railroad-diagram
|
|
93
|
+
sign = "+" | "-" ;
|
|
94
|
+
```
|
|
95
|
+
|
|
96
|
+
#### Optional Elements
|
|
97
|
+
|
|
98
|
+
Optional elements can appear zero or one time:
|
|
99
|
+
|
|
100
|
+
- W3C notation: `A?`
|
|
101
|
+
- ISO 14977 notation: `[ A ]`
|
|
102
|
+
|
|
103
|
+
```mermaid-example
|
|
104
|
+
railroad-diagram
|
|
105
|
+
title "Optional Sign"
|
|
106
|
+
|
|
107
|
+
sign = "+" | "-" ;
|
|
108
|
+
number = sign? digit+ ;
|
|
109
|
+
digit = "0" | "1" | "2" | "3" | "4" | "5" | "6" | "7" | "8" | "9" ;
|
|
110
|
+
```
|
|
111
|
+
|
|
112
|
+
```mermaid
|
|
113
|
+
railroad-diagram
|
|
114
|
+
title "Optional Sign"
|
|
115
|
+
|
|
116
|
+
sign = "+" | "-" ;
|
|
117
|
+
number = sign? digit+ ;
|
|
118
|
+
digit = "0" | "1" | "2" | "3" | "4" | "5" | "6" | "7" | "8" | "9" ;
|
|
119
|
+
```
|
|
120
|
+
|
|
121
|
+
#### Repetition
|
|
122
|
+
|
|
123
|
+
Zero or more repetitions:
|
|
124
|
+
|
|
125
|
+
- W3C notation: `A*`
|
|
126
|
+
- ISO 14977 notation: `{ A }`
|
|
127
|
+
|
|
128
|
+
One or more repetitions:
|
|
129
|
+
|
|
130
|
+
- W3C notation: `A+`
|
|
131
|
+
|
|
132
|
+
```mermaid-example
|
|
133
|
+
railroad-diagram
|
|
134
|
+
title "Identifier with Repetition"
|
|
135
|
+
|
|
136
|
+
identifier = letter ( letter | digit | "_" )* ;
|
|
137
|
+
letter = "a" | "b" | "c" | "d" | "e" ;
|
|
138
|
+
digit = "0" | "1" | "2" ;
|
|
139
|
+
```
|
|
140
|
+
|
|
141
|
+
```mermaid
|
|
142
|
+
railroad-diagram
|
|
143
|
+
title "Identifier with Repetition"
|
|
144
|
+
|
|
145
|
+
identifier = letter ( letter | digit | "_" )* ;
|
|
146
|
+
letter = "a" | "b" | "c" | "d" | "e" ;
|
|
147
|
+
digit = "0" | "1" | "2" ;
|
|
148
|
+
```
|
|
149
|
+
|
|
150
|
+
#### Grouping
|
|
151
|
+
|
|
152
|
+
Parentheses group elements together:
|
|
153
|
+
|
|
154
|
+
- `( A B )`
|
|
155
|
+
|
|
156
|
+
```mermaid-example
|
|
157
|
+
railroad-diagram
|
|
158
|
+
expression = term ( ( "+" | "-" ) term )* ;
|
|
159
|
+
term = "number" ;
|
|
160
|
+
```
|
|
161
|
+
|
|
162
|
+
```mermaid
|
|
163
|
+
railroad-diagram
|
|
164
|
+
expression = term ( ( "+" | "-" ) term )* ;
|
|
165
|
+
term = "number" ;
|
|
166
|
+
```
|
|
167
|
+
|
|
168
|
+
#### Comments
|
|
169
|
+
|
|
170
|
+
Comments can be added using either style:
|
|
171
|
+
|
|
172
|
+
- W3C notation: `/* comment */`
|
|
173
|
+
- ISO 14977 notation: `(* comment *)`
|
|
174
|
+
|
|
175
|
+
Comments are ignored during parsing and do not appear in the rendered diagram.
|
|
176
|
+
|
|
177
|
+
#### Special Sequences
|
|
178
|
+
|
|
179
|
+
Special sequences (ISO 14977 only) describe elements that cannot be easily expressed in EBNF:
|
|
180
|
+
|
|
181
|
+
- `? description ?`
|
|
182
|
+
|
|
183
|
+
#### Exception
|
|
184
|
+
|
|
185
|
+
The minus operator excludes certain alternatives:
|
|
186
|
+
|
|
187
|
+
- `A - B` (match A but not B)
|
|
188
|
+
|
|
189
|
+
## Examples
|
|
190
|
+
|
|
191
|
+
### Simple Number Grammar
|
|
192
|
+
|
|
193
|
+
```mermaid-example
|
|
194
|
+
railroad-diagram
|
|
195
|
+
title "Number Grammar"
|
|
196
|
+
|
|
197
|
+
sign = "+" | "-" ;
|
|
198
|
+
number = sign? digit+ ;
|
|
199
|
+
digit = "0" | "1" | "2" | "3" | "4" | "5" | "6" | "7" | "8" | "9" ;
|
|
200
|
+
```
|
|
201
|
+
|
|
202
|
+
```mermaid
|
|
203
|
+
railroad-diagram
|
|
204
|
+
title "Number Grammar"
|
|
205
|
+
|
|
206
|
+
sign = "+" | "-" ;
|
|
207
|
+
number = sign? digit+ ;
|
|
208
|
+
digit = "0" | "1" | "2" | "3" | "4" | "5" | "6" | "7" | "8" | "9" ;
|
|
209
|
+
```
|
|
210
|
+
|
|
211
|
+
### Expression Grammar
|
|
212
|
+
|
|
213
|
+
```mermaid-example
|
|
214
|
+
railroad-diagram
|
|
215
|
+
title "Arithmetic Expression Grammar"
|
|
216
|
+
|
|
217
|
+
expression = term ( ( "+" | "-" ) term )* ;
|
|
218
|
+
term = factor ( ( "*" | "/" ) factor )* ;
|
|
219
|
+
factor = number | "(" expression ")" ;
|
|
220
|
+
number = digit+ ;
|
|
221
|
+
digit = "0" | "1" | "2" | "3" | "4" | "5" | "6" | "7" | "8" | "9" ;
|
|
222
|
+
```
|
|
223
|
+
|
|
224
|
+
```mermaid
|
|
225
|
+
railroad-diagram
|
|
226
|
+
title "Arithmetic Expression Grammar"
|
|
227
|
+
|
|
228
|
+
expression = term ( ( "+" | "-" ) term )* ;
|
|
229
|
+
term = factor ( ( "*" | "/" ) factor )* ;
|
|
230
|
+
factor = number | "(" expression ")" ;
|
|
231
|
+
number = digit+ ;
|
|
232
|
+
digit = "0" | "1" | "2" | "3" | "4" | "5" | "6" | "7" | "8" | "9" ;
|
|
233
|
+
```
|
|
234
|
+
|
|
235
|
+
### JSON Grammar (Simplified)
|
|
236
|
+
|
|
237
|
+
```mermaid-example
|
|
238
|
+
railroad-diagram
|
|
239
|
+
title "JSON Grammar"
|
|
240
|
+
|
|
241
|
+
json = element ;
|
|
242
|
+
element = object | array | string | number | "true" | "false" | "null" ;
|
|
243
|
+
object = "{" [ member ( "," member )* ] "}" ;
|
|
244
|
+
array = "[" [ element ( "," element )* ] "]" ;
|
|
245
|
+
member = string ":" element ;
|
|
246
|
+
```
|
|
247
|
+
|
|
248
|
+
```mermaid
|
|
249
|
+
railroad-diagram
|
|
250
|
+
title "JSON Grammar"
|
|
251
|
+
|
|
252
|
+
json = element ;
|
|
253
|
+
element = object | array | string | number | "true" | "false" | "null" ;
|
|
254
|
+
object = "{" [ member ( "," member )* ] "}" ;
|
|
255
|
+
array = "[" [ element ( "," element )* ] "]" ;
|
|
256
|
+
member = string ":" element ;
|
|
257
|
+
```
|
|
258
|
+
|
|
259
|
+
### URL Grammar
|
|
260
|
+
|
|
261
|
+
```mermaid-example
|
|
262
|
+
railroad-diagram
|
|
263
|
+
title "URL Grammar"
|
|
264
|
+
|
|
265
|
+
url = protocol "://" domain path? ;
|
|
266
|
+
protocol = "http" | "https" | "ftp" ;
|
|
267
|
+
domain = label ( "." label )* ;
|
|
268
|
+
label = letter ( letter | digit | "-" )* ;
|
|
269
|
+
path = "/" segment ( "/" segment )* ;
|
|
270
|
+
letter = "a" | "b" | "c" ;
|
|
271
|
+
digit = "0" | "1" | "2" ;
|
|
272
|
+
segment = letter+ ;
|
|
273
|
+
```
|
|
274
|
+
|
|
275
|
+
```mermaid
|
|
276
|
+
railroad-diagram
|
|
277
|
+
title "URL Grammar"
|
|
278
|
+
|
|
279
|
+
url = protocol "://" domain path? ;
|
|
280
|
+
protocol = "http" | "https" | "ftp" ;
|
|
281
|
+
domain = label ( "." label )* ;
|
|
282
|
+
label = letter ( letter | digit | "-" )* ;
|
|
283
|
+
path = "/" segment ( "/" segment )* ;
|
|
284
|
+
letter = "a" | "b" | "c" ;
|
|
285
|
+
digit = "0" | "1" | "2" ;
|
|
286
|
+
segment = letter+ ;
|
|
287
|
+
```
|
|
288
|
+
|
|
289
|
+
## Visual Elements
|
|
290
|
+
|
|
291
|
+
Railroad diagrams use distinct visual elements to represent different grammar constructs:
|
|
292
|
+
|
|
293
|
+
- Terminals: Rounded rectangles that inherit the active Mermaid theme
|
|
294
|
+
- Non-terminals: Regular rectangles that inherit the active Mermaid theme
|
|
295
|
+
- Lines and Arrows: Theme-aware paths connecting elements
|
|
296
|
+
- Start/End Markers: Small circles at the beginning and end of rules
|
|
297
|
+
- Branches: Curved paths for choices
|
|
298
|
+
- Loops: Backward paths for repetition
|
|
299
|
+
|
|
300
|
+
## Theme Integration
|
|
301
|
+
|
|
302
|
+
Railroad diagrams inherit colors and typography from the active Mermaid theme by default. You can still override individual railroad styles through the `railroad` config block when you need diagram-specific adjustments.
|
|
303
|
+
|
|
304
|
+
## Limitations
|
|
305
|
+
|
|
306
|
+
- The hand-drawn look (`look: handDrawn`) is not currently supported for railroad diagrams.
|
|
307
|
+
|
|
308
|
+
## Notation Reference
|
|
309
|
+
|
|
310
|
+
| Feature | W3C Notation | ISO 14977 Notation | Description |
|
|
311
|
+
| --------------- | -------------------- | -------------------- | ---------------- |
|
|
312
|
+
| Terminal | `"text"` or `'text'` | `"text"` or `'text'` | Literal string |
|
|
313
|
+
| Non-terminal | `identifier` | `identifier` | Rule reference |
|
|
314
|
+
| Sequence | `A B` | `A , B` | Concatenation |
|
|
315
|
+
| Choice | `A \| B` | `A \| B` | Alternative |
|
|
316
|
+
| Optional | `A?` | `[ A ]` | Zero or one |
|
|
317
|
+
| Repetition (0+) | `A*` | `{ A }` | Zero or more |
|
|
318
|
+
| Repetition (1+) | `A+` | - | One or more |
|
|
319
|
+
| Grouping | `( A B )` | `( A B )` | Group elements |
|
|
320
|
+
| Comment | `/* text */` | `(* text *)` | Comment |
|
|
321
|
+
| Special | - | `? text ?` | Special sequence |
|
|
322
|
+
| Exception | `A - B` | `A - B` | Exclusion |
|
|
323
|
+
|
|
324
|
+
## Best Practices
|
|
325
|
+
|
|
326
|
+
1. Keep rules simple: Break complex rules into smaller, reusable components
|
|
327
|
+
2. Use meaningful names: Choose descriptive names for non-terminals
|
|
328
|
+
3. Add titles: Use the `title` keyword to provide context for the grammar
|
|
329
|
+
4. Group related rules: Define related grammar rules together
|
|
330
|
+
5. Use consistent notation: Stick to either W3C or ISO 14977 notation style throughout your diagram
|
|
331
|
+
|
|
332
|
+
## References
|
|
333
|
+
|
|
334
|
+
- [ISO/IEC 14977:1996 - EBNF Standard](https://www.cl.cam.ac.uk/~mgk25/iso-14977.pdf)
|
|
335
|
+
- [W3C EBNF Notation](https://www.w3.org/TR/xml/#sec-notation)
|
|
336
|
+
- [Wikipedia: Extended Backus-Naur Form](https://en.wikipedia.org/wiki/Extended_Backus%E2%80%93Naur_form)
|
|
337
|
+
- [Wikipedia: Syntax Diagram](https://en.wikipedia.org/wiki/Syntax_diagram)
|