@sun-asterisk/sungen 2.0.3 → 2.1.1

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 (86) hide show
  1. package/README.md +2 -2
  2. package/dist/cli/commands/init.d.ts.map +1 -1
  3. package/dist/cli/commands/init.js +3 -2
  4. package/dist/cli/commands/init.js.map +1 -1
  5. package/dist/cli/index.js +1 -1
  6. package/dist/generators/test-generator/adapters/adapter-interface.d.ts +6 -1
  7. package/dist/generators/test-generator/adapters/adapter-interface.d.ts.map +1 -1
  8. package/dist/generators/test-generator/adapters/playwright/templates/scenario.hbs +0 -4
  9. package/dist/generators/test-generator/adapters/playwright/templates/steps/actions/drag-action.hbs +1 -0
  10. package/dist/generators/test-generator/adapters/playwright/templates/steps/actions/expand-action.hbs +11 -0
  11. package/dist/generators/test-generator/adapters/playwright/templates/steps/actions/toggle-action.hbs +1 -0
  12. package/dist/generators/test-generator/adapters/playwright/templates/steps/assertions/loading-assertion.hbs +2 -0
  13. package/dist/generators/test-generator/adapters/playwright/templates/steps/assertions/selected-assertion.hbs +2 -0
  14. package/dist/generators/test-generator/adapters/playwright/templates/steps/assertions/sorted-assertion.hbs +2 -0
  15. package/dist/generators/test-generator/adapters/playwright/templates/test-file.hbs +25 -0
  16. package/dist/generators/test-generator/code-generator.d.ts.map +1 -1
  17. package/dist/generators/test-generator/code-generator.js +41 -3
  18. package/dist/generators/test-generator/code-generator.js.map +1 -1
  19. package/dist/generators/test-generator/patterns/assertion-patterns.d.ts.map +1 -1
  20. package/dist/generators/test-generator/patterns/assertion-patterns.js +58 -6
  21. package/dist/generators/test-generator/patterns/assertion-patterns.js.map +1 -1
  22. package/dist/generators/test-generator/patterns/form-patterns.js +3 -3
  23. package/dist/generators/test-generator/patterns/form-patterns.js.map +1 -1
  24. package/dist/generators/test-generator/patterns/interaction-patterns.d.ts.map +1 -1
  25. package/dist/generators/test-generator/patterns/interaction-patterns.js +86 -1
  26. package/dist/generators/test-generator/patterns/interaction-patterns.js.map +1 -1
  27. package/dist/generators/test-generator/template-engine.d.ts +6 -0
  28. package/dist/generators/test-generator/template-engine.d.ts.map +1 -1
  29. package/dist/generators/test-generator/template-engine.js +1 -0
  30. package/dist/generators/test-generator/template-engine.js.map +1 -1
  31. package/dist/orchestrator/project-initializer.d.ts +3 -6
  32. package/dist/orchestrator/project-initializer.d.ts.map +1 -1
  33. package/dist/orchestrator/project-initializer.js +62 -58
  34. package/dist/orchestrator/project-initializer.js.map +1 -1
  35. package/dist/orchestrator/templates/ai-instructions/claude-cmd-add-screen.md +42 -0
  36. package/dist/orchestrator/templates/ai-instructions/claude-cmd-make-tc.md +60 -0
  37. package/dist/orchestrator/templates/ai-instructions/claude-cmd-make-test.md +59 -0
  38. package/dist/orchestrator/templates/ai-instructions/claude-config.md +90 -0
  39. package/dist/orchestrator/templates/ai-instructions/claude-skill-error-mapping.md +27 -0
  40. package/dist/orchestrator/templates/ai-instructions/claude-skill-gherkin-syntax.md +127 -0
  41. package/dist/orchestrator/templates/ai-instructions/claude-skill-selector-keys.md +94 -0
  42. package/dist/orchestrator/templates/ai-instructions/copilot-cmd-add-screen.md +41 -0
  43. package/dist/orchestrator/templates/ai-instructions/copilot-cmd-make-tc.md +59 -0
  44. package/dist/orchestrator/templates/ai-instructions/copilot-cmd-make-test.md +58 -0
  45. package/dist/orchestrator/templates/ai-instructions/copilot-config.md +90 -0
  46. package/dist/orchestrator/templates/ai-instructions/copilot-skill-error-mapping.md +27 -0
  47. package/dist/orchestrator/templates/ai-instructions/copilot-skill-gherkin-syntax.md +127 -0
  48. package/dist/orchestrator/templates/ai-instructions/copilot-skill-selector-keys.md +94 -0
  49. package/dist/orchestrator/templates/readme.md +42 -38
  50. package/docs/gherkin standards/gherkin-core-standard.md +141 -90
  51. package/docs/gherkin standards/gherkin-core-standard.vi.md +264 -54
  52. package/package.json +2 -2
  53. package/src/cli/commands/init.ts +3 -2
  54. package/src/cli/index.ts +1 -1
  55. package/src/generators/test-generator/adapters/adapter-interface.ts +7 -1
  56. package/src/generators/test-generator/adapters/playwright/templates/scenario.hbs +0 -4
  57. package/src/generators/test-generator/adapters/playwright/templates/steps/actions/drag-action.hbs +1 -0
  58. package/src/generators/test-generator/adapters/playwright/templates/steps/actions/expand-action.hbs +11 -0
  59. package/src/generators/test-generator/adapters/playwright/templates/steps/actions/toggle-action.hbs +1 -0
  60. package/src/generators/test-generator/adapters/playwright/templates/steps/assertions/loading-assertion.hbs +2 -0
  61. package/src/generators/test-generator/adapters/playwright/templates/steps/assertions/selected-assertion.hbs +2 -0
  62. package/src/generators/test-generator/adapters/playwright/templates/steps/assertions/sorted-assertion.hbs +2 -0
  63. package/src/generators/test-generator/adapters/playwright/templates/test-file.hbs +25 -0
  64. package/src/generators/test-generator/code-generator.ts +50 -8
  65. package/src/generators/test-generator/patterns/assertion-patterns.ts +62 -6
  66. package/src/generators/test-generator/patterns/form-patterns.ts +3 -3
  67. package/src/generators/test-generator/patterns/interaction-patterns.ts +93 -1
  68. package/src/generators/test-generator/template-engine.ts +4 -0
  69. package/src/orchestrator/project-initializer.ts +74 -58
  70. package/src/orchestrator/templates/ai-instructions/claude-cmd-add-screen.md +42 -0
  71. package/src/orchestrator/templates/ai-instructions/claude-cmd-make-tc.md +60 -0
  72. package/src/orchestrator/templates/ai-instructions/claude-cmd-make-test.md +59 -0
  73. package/src/orchestrator/templates/ai-instructions/claude-config.md +90 -0
  74. package/src/orchestrator/templates/ai-instructions/claude-skill-error-mapping.md +27 -0
  75. package/src/orchestrator/templates/ai-instructions/claude-skill-gherkin-syntax.md +127 -0
  76. package/src/orchestrator/templates/ai-instructions/claude-skill-selector-keys.md +94 -0
  77. package/src/orchestrator/templates/ai-instructions/copilot-cmd-add-screen.md +41 -0
  78. package/src/orchestrator/templates/ai-instructions/copilot-cmd-make-tc.md +59 -0
  79. package/src/orchestrator/templates/ai-instructions/copilot-cmd-make-test.md +58 -0
  80. package/src/orchestrator/templates/ai-instructions/copilot-config.md +90 -0
  81. package/src/orchestrator/templates/ai-instructions/copilot-skill-error-mapping.md +27 -0
  82. package/src/orchestrator/templates/ai-instructions/copilot-skill-gherkin-syntax.md +127 -0
  83. package/src/orchestrator/templates/ai-instructions/copilot-skill-selector-keys.md +94 -0
  84. package/src/orchestrator/templates/readme.md +42 -38
  85. package/dist/orchestrator/templates/ai-rules.md +0 -189
  86. package/src/orchestrator/templates/ai-rules.md +0 -189
@@ -1,4 +1,4 @@
1
- # Gherkin Standard - Core (Final)
1
+ # Gherkin Standard - Core (v2)
2
2
 
3
3
  **Applies to: Manual Testing & Automation Testing**
4
4
 
@@ -36,13 +36,14 @@ Scenario: User logs in successfully with valid credentials
36
36
 
37
37
  ### Format
38
38
  ```
39
- <Actor> <Action> [<Target>] with {{<Value>}}
39
+ [Keyword] User <Action> [<Target>] <Target Type> <with {{Value}}> <is State>
40
40
  ```
41
41
 
42
42
  ### Rules
43
43
  - ✅ `Actor` + `Action` are **mandatory**
44
- - ✅ `Target` is **required** for most actions (except `open` / `wait for`)
44
+ - ✅ `Target` is **required** for most actions (except `wait for N seconds`)
45
45
  - ✅ `with {{Value}}` only used when action requires data
46
+ - ✅ `is State` only used for assertions and wait conditions
46
47
  - ❌ No free-text variations
47
48
  - ❌ No synonyms
48
49
 
@@ -54,6 +55,7 @@ Scenario: User logs in successfully with valid credentials
54
55
  | Action | ✅ Always | `click`, `fill`, `see` |
55
56
  | Target | ✅ Most cases | `[Login] button` |
56
57
  | Value | ⚠️ When needed | `{{valid_email}}` |
58
+ | State | ⚠️ Assertions only | `is disabled` |
57
59
 
58
60
  ---
59
61
 
@@ -82,31 +84,41 @@ Scenario: User logs in successfully with valid credentials
82
84
 
83
85
  ## 4️⃣ Action
84
86
 
85
- ### Allowed Actions (7 only)
86
-
87
- | Action | Use Case | Example |
88
- |--------|----------|---------|
89
- | `is on` | Navigate to page (preferred) | `User is on [Login] page` |
90
- | `open` | Navigate to page/screen | `User open [Login] page` |
91
- | `click` | Click button/link/element | `User click [Submit] button` |
92
- | `fill` | Enter text in input field | `User fill [Email] field with {{email}}` |
93
- | `select` | Choose option from dropdown/radio | `User select [Country] dropdown with {{country}}` |
94
- | `wait for` | Wait for element/condition | `User wait for [Loader] icon` |
95
- | `see` | Verify element visibility | `User see [Error] message` |
96
-
97
- > **Note**: `is on` and `open` are interchangeable for navigation. `is on` is the preferred form for `Given` steps.
87
+ ### Allowed Actions
88
+
89
+ | Group | Action | Use Case | Example |
90
+ |-------|--------|----------|---------|
91
+ | **Setup** | `is on` | Navigate to page/dialog | `User is on [Login] page` |
92
+ | **Setup** | `navigate to` | Navigate with data | `User navigate to [Profile] page with {{user_id}}` |
93
+ | **Interaction** | `click` | Click button/link/element | `User click [Submit] button` |
94
+ | **Interaction** | `double click` | Double click element | `User double click [Cell] element` |
95
+ | **Interaction** | `hover` | Hover over element | `User hover [Info] icon` |
96
+ | **Interaction** | `drag` | Drag to destination | `User drag [Card] to [Column]` |
97
+ | **Form** | `fill` | Enter text in field | `User fill [Email] field with {{email}}` |
98
+ | **Form** | `clear` | Clear field content | `User clear [Search] field` |
99
+ | **Form** | `select` | Choose from dropdown | `User select [Country] dropdown with {{country}}` |
100
+ | **Form** | `check` | Check checkbox | `User check [Remember me] checkbox` |
101
+ | **Form** | `uncheck` | Uncheck checkbox | `User uncheck [Newsletter] checkbox` |
102
+ | **Form** | `toggle` | Toggle switch | `User toggle [Dark mode] switch` |
103
+ | **Form** | `upload` | Upload file | `User upload [Avatar] file with {{path}}` |
104
+ | **Keyboard** | `press` | Press key (global or on element) | `User press Enter on [Search] field` |
105
+ | **Scroll** | `scroll to` | Scroll element into view | `User scroll to [Footer] section` |
106
+ | **Frame** | `switch to` | Enter/exit iframe | `User switch to [Payment] frame` |
107
+ | **Expand** | `expand` / `collapse` | Expand/collapse row | `User expand [Row 1] row` |
108
+ | **Wait** | `wait for` | Wait for element/timeout | `User wait for [Loading] spinner is hidden` |
109
+ | **Assertion** | `see` | Verify visibility/state/text | `User see [Error] message` |
98
110
 
99
111
  ### Rules
100
112
  - ✅ Use **exact verbs** from the list above
101
- - ❌ No synonyms: `type`, `enter`, `input`, `press`, `check`, `verify`, `expect`, etc.
113
+ - ❌ No synonyms: `type`, `enter`, `input`, `verify`, `expect`, `open`, etc.
102
114
  - ❌ No compound actions: `click and wait`, `fill and submit`
103
115
 
104
116
  ### Anti-patterns
105
117
  ```gherkin
106
- ❌ User types {{password}} into [Password] field
107
- ❌ User presses [Enter] key
108
- ❌ User checks [Terms] checkbox
109
- ❌ User verifies [Success] message appears
118
+ ❌ User types {{password}} into [Password] field → use "fill"
119
+ ❌ User opens [Home] page → use "is on"
120
+ ❌ User checks [Terms] checkbox → use "check" (no "s")
121
+ ❌ User verifies [Success] message appears → use "see"
110
122
  ```
111
123
 
112
124
  ---
@@ -122,16 +134,32 @@ Scenario: User logs in successfully with valid credentials
122
134
 
123
135
  | Element Type | When to Use | Example |
124
136
  |--------------|-------------|---------|
125
- | `field` | Text input, textarea | `[Email] field`, `[Password] field` |
126
- | `button` | Clickable button | `[Submit] button`, `[Cancel] button` |
137
+ | `page` | Entire screen/page | `[Login] page` |
138
+ | `button` | Clickable button | `[Submit] button` |
139
+ | `link` | Hyperlink | `[Forgot password] link` |
140
+ | `field` | Text input | `[Email] field` |
141
+ | `textarea` | Text area / rich editor | `[Message] textarea` |
142
+ | `heading` | Heading element | `[Welcome] heading` |
143
+ | `text` | Text content | `[Price] text` |
127
144
  | `checkbox` | Checkbox input | `[Remember me] checkbox` |
128
- | `dropdown` | Select element | `[Country] dropdown` |
129
145
  | `radio` | Radio button | `[Payment method] radio` |
130
- | `link` | Hyperlink | `[Forgot password] link` |
131
- | `message` | Alert/notification | `[Error] message`, `[Success] message` |
132
- | `page` | Entire screen/page | `[Login] page`, `[Dashboard] page` |
133
- | `icon` | Visual icon/image | `[Loader] icon`, `[Close] icon` |
134
- | `label` | Text label | `[Username] label` |
146
+ | `switch` | Toggle switch | `[Dark mode] switch` |
147
+ | `dropdown` | Select / combobox | `[Country] dropdown` |
148
+ | `dialog` / `modal` | Modal / dialog overlay | `[Confirm] dialog` |
149
+ | `menu` / `menuitem` | Menu elements | `[Write Kudos] menuitem` |
150
+ | `tab` / `tabpanel` | Tab elements | `[Settings] tab` |
151
+ | `table` / `row` / `cell` | Table elements | `[Users] table` |
152
+ | `list` / `listitem` | List elements | `[Results] list` |
153
+ | `icon` / `image` | Visual icon/image | `[Close] icon` |
154
+ | `alert` | Alert/notification | `[Error] alert` |
155
+ | `spinner` / `progressbar` | Loading indicators | `[Loading] spinner` |
156
+ | `section` / `region` / `nav` | Layout landmarks | `[Footer] section` |
157
+ | `frame` / `iframe` | Iframe elements | `[Payment] frame` |
158
+ | `uploader` / `file` | File upload | `[Avatar] uploader` |
159
+ | `columnheader` | Table column header | `[Name] columnheader` |
160
+ | `tooltip` | Tooltip | `[Help] tooltip` |
161
+ | `slider` | Slider/range | `[Volume] slider` |
162
+ | `tree` / `treeitem` | Tree elements | `[Folder] treeitem` |
135
163
 
136
164
  ### Rules
137
165
  - ✅ Use **business/UI meaningful names**, not technical selectors
@@ -144,8 +172,8 @@ Scenario: User logs in successfully with valid credentials
144
172
  ```gherkin
145
173
  ✅ User click [Login] button
146
174
  ✅ User fill [Email address] field with {{email}}
147
- ✅ User select [United States] dropdown
148
- ✅ User see [Welcome back] message
175
+ ✅ User select [Country] dropdown with {{country}}
176
+ ✅ User see [Welcome back] heading
149
177
 
150
178
  ❌ User click [#submit-btn] button
151
179
  ❌ User fill [input.email-field] field
@@ -209,8 +237,8 @@ expired_otp: "000000"
209
237
  ```gherkin
210
238
  ✅ Then User see [Error] message
211
239
  ✅ And User see [Dashboard] page
212
- ✅ And User see [Welcome] text
213
- ✅ And User see [Logout] button
240
+ ✅ And User see [Welcome] heading with {{username}}
241
+ ✅ And User see [Submit] button is disabled
214
242
 
215
243
  ❌ Then User verifies [Error] message
216
244
  ❌ Then System displays [Dashboard] page
@@ -222,55 +250,41 @@ expired_otp: "000000"
222
250
  | Pattern | Use Case | Example |
223
251
  |---------|----------|---------|
224
252
  | Simple visibility | Element is visible | `User see [Login] button` |
225
- | Visibility with value | Element contains specific text | `User see [Welcome] text with {{username}}` |
226
- | Hidden state | Element is hidden | `User see [panel] dialog with {{title}} is hidden` |
227
- | Hidden (no value) | Element is hidden | `User see [Modal] dialog is hidden` |
228
- | Page/state verification | Confirm navigation | `User see [Dashboard] page` |
229
- | Message verification | Confirm feedback | `User see [Error] message` |
230
- | Wait for hidden | Wait until element disappears | `User wait for dialog with {{title}} is hidden` |
253
+ | Visibility with value | Element has specific text | `User see [Welcome] heading with {{username}}` |
254
+ | State assertion | Element state | `User see [Submit] button is disabled` |
255
+ | State with value | Element with text + state | `User see [Panel] dialog with {{title}} is hidden` |
256
+ | Text contains | Partial text match | `User see [Message] text contains {{partial}}` |
257
+ | Text has text | Exact text match | `User see [Counter] text has text {{count}}` |
258
+ | Has attribute | Attribute check | `User see [Avatar] image has {{avatar_url}}` |
231
259
 
232
260
  ### State Modifiers
233
261
 
234
- Append `is hidden` to any `see` or `wait for` step to assert/wait for an element to be hidden:
235
-
236
- ```gherkin
237
- Then User see [panel] dialog with {{title}} is hidden
238
- And User wait for dialog with {{title}} is hidden
239
- ```
240
-
241
- ---
242
-
243
- ## 📋 Complete Example
244
-
245
- ```gherkin
246
- Feature: User Authentication
247
- Path: /auth/login
248
-
249
- Scenario: User logs in successfully with valid credentials
250
- Given User is on [Login] page
251
- When User fill [Email] field with {{valid_email}}
252
- And User fill [Password] field with {{valid_password}}
253
- And User click [Remember me] checkbox
254
- And User click [Submit] button
255
- Then User see [Dashboard] page
256
- And User see [Welcome] message with {{username}}
257
-
258
- Scenario: User fails to login with invalid credentials
259
- Given User is on [Login] page
260
- When User fill [Email] field with {{invalid_email}}
261
- And User fill [Password] field with {{invalid_password}}
262
- And User click [Submit] button
263
- Then User see [Error] message
264
- And User see [Login] page
265
-
266
- Scenario: User selects preferred language during registration
267
- Given User is on [Registration] page
268
- When User fill [Email] field with {{new_email}}
269
- And User fill [Password] field with {{new_password}}
270
- And User select [Language] dropdown with {{preferred_language}}
271
- And User click [Sign up] button
272
- Then User see [Verification] page
273
- ```
262
+ | State | Assertion |
263
+ |-------|-----------|
264
+ | `hidden` | Element is not visible |
265
+ | `visible` | Element is visible |
266
+ | `disabled` | Element is disabled |
267
+ | `enabled` | Element is enabled |
268
+ | `checked` | Checkbox/radio is checked |
269
+ | `unchecked` | Checkbox/radio is unchecked |
270
+ | `focused` | Element has focus |
271
+ | `empty` | Element has no text |
272
+ | `loading` | Loading indicator is visible |
273
+ | `selected` | Element is selected |
274
+ | `sorted ascending` | Column sorted ascending |
275
+ | `sorted descending` | Column sorted descending |
276
+
277
+ ### Table Assertions
278
+
279
+ | Pattern | Example |
280
+ |---------|---------|
281
+ | Row exists | `User see [Users] table row with {{name}} has [Status] with {{status}}` |
282
+ | No row | `User see [Users] table has no row with {{name}}` |
283
+ | Row count | `User see [Users] table has {{count}} rows` |
284
+ | Column exists | `User see [Users] table has [Email] column` |
285
+ | Cell by index | `User see [Users] table row 1 [Name] cell with {{name}}` |
286
+ | Empty table | `User see [Users] table is empty` |
287
+ | Action in row | `User click [Edit] in [Users] table row with {{name}}` |
274
288
 
275
289
  ---
276
290
 
@@ -309,10 +323,8 @@ Scenario: User sends a thank you message
309
323
  And User fill [Search] field with {{teammate_name}}
310
324
  And User click [teammate] row with {{teammate_name}}
311
325
  And User fill [Title] field with {{teammate_title}}
312
- And User fill [Message] textarea 2 with {{teammate_message}}
313
- And User click [Hashtag] tag with {{hashtag_1}}
314
326
  And User click [Send] button
315
- And User wait for dialog with {{kudo_title}} is hidden
327
+ And User wait for [panel] dialog with {{kudo_title}} is hidden
316
328
  Then User see [panel] modal with {{kudo_title}} is hidden
317
329
  ```
318
330
 
@@ -332,13 +344,51 @@ Scenario: User sends a thank you message
332
344
 
333
345
  ---
334
346
 
347
+ ## 📋 Complete Example
348
+
349
+ ```gherkin
350
+ @auth:user
351
+ Feature: User Authentication
352
+ Path: /auth/login
353
+
354
+ Scenario: User logs in successfully with valid credentials
355
+ Given User is on [Login] page
356
+ When User fill [Email] field with {{valid_email}}
357
+ And User fill [Password] field with {{valid_password}}
358
+ And User check [Remember me] checkbox
359
+ And User click [Submit] button
360
+ Then User see [Dashboard] page
361
+ And User see [Welcome] heading with {{username}}
362
+
363
+ Scenario: User fails to login with invalid credentials
364
+ Given User is on [Login] page
365
+ When User fill [Email] field with {{invalid_email}}
366
+ And User fill [Password] field with {{invalid_password}}
367
+ And User click [Submit] button
368
+ Then User see [Error] alert
369
+ And User see [Login] page
370
+ And User see [Submit] button is enabled
371
+
372
+ Scenario: User selects preferred language during registration
373
+ Given User is on [Registration] page
374
+ When User fill [Email] field with {{new_email}}
375
+ And User fill [Password] field with {{new_password}}
376
+ And User select [Language] dropdown with {{preferred_language}}
377
+ And User check [Terms] checkbox
378
+ And User click [Sign up] button
379
+ Then User see [Verification] page
380
+ ```
381
+
382
+ ---
383
+
335
384
  ## ✅ Quick Reference
336
385
 
337
386
  ### Do's ✅
338
- - Use **standard 6 actions**: open, click, fill, select, wait for, see
387
+ - Use **standard actions** from section 4
339
388
  - Use **`User`** as the only actor
340
389
  - Use **`[Target] <element type>`** format
341
390
  - Use **`{{snake_case}}`** for values
391
+ - Use **`is <state>`** for state assertions
342
392
  - **1 Scenario = 1 business flow**
343
393
  - **1 Step = 1 action or assertion**
344
394
 
@@ -349,6 +399,7 @@ Scenario: User sends a thank you message
349
399
  - No hard-coded data in steps
350
400
  - No compound actions
351
401
  - No `verify`/`check`/`expect` (use `see`)
402
+ - No `open` (use `is on`)
352
403
 
353
404
  ---
354
405
 
@@ -359,19 +410,19 @@ Scenario: User sends a thank you message
359
410
  | **Consistency** | Same patterns across all test cases |
360
411
  | **Readability** | Non-technical stakeholders can understand |
361
412
  | **Maintainability** | Easy to update when UI changes |
362
- | **Automation-Ready** | Direct mapping to code patterns |
413
+ | **Automation-Ready** | Direct mapping to Playwright code via 17 pattern shapes |
363
414
  | **No Ambiguity** | Single interpretation per step |
364
- | **Tool Support** | Compatible with Sungen framework |
415
+ | **Tool Support** | Compatible with Sungen v2 compiler |
365
416
 
366
417
  ---
367
418
 
368
419
  ## 📚 Related Documentation
369
- - [Selector Override Guide](selector-override.md) - Customize element selectors
370
- - [Validation Guide](validate.md) - Validate Gherkin files
371
- - [Auth Setup](makeauth.md) - Configure authentication states
420
+ - [Gherkin Dictionary](../gherkin-dictionary.md) Full grammar, all 17 patterns, compiler rules
421
+ - [Sungen GitHub](https://github.com/sun-asterisk/sungen)
422
+ - [Playwright Documentation](https://playwright.dev)
372
423
 
373
424
  ---
374
425
 
375
- **Version**: 1.1
426
+ **Version**: 2.0
376
427
  **Status**: Final
377
- **Last Updated**: March 11, 2026
428
+ **Last Updated**: March 19, 2026