evizi-kit 1.0.0

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 (201) hide show
  1. package/README.md +506 -0
  2. package/kits/agent/.agent/skills/claude-code-subagent-creator/SKILL.md +292 -0
  3. package/kits/agent/.agent/skills/claude-code-subagent-creator/references/claude-code-subagent-configuration.md +158 -0
  4. package/kits/agent/.agent/skills/claude-code-subagent-creator/templates/subagent-profile.template.md +26 -0
  5. package/kits/agent/.agent/skills/skill-creator/LICENSE.txt +202 -0
  6. package/kits/agent/.agent/skills/skill-creator/SKILL.md +485 -0
  7. package/kits/agent/.agent/skills/skill-creator/agents/analyzer.md +274 -0
  8. package/kits/agent/.agent/skills/skill-creator/agents/comparator.md +202 -0
  9. package/kits/agent/.agent/skills/skill-creator/agents/grader.md +223 -0
  10. package/kits/agent/.agent/skills/skill-creator/assets/eval_review.html +146 -0
  11. package/kits/agent/.agent/skills/skill-creator/eval-viewer/generate_review.py +471 -0
  12. package/kits/agent/.agent/skills/skill-creator/eval-viewer/viewer.html +1325 -0
  13. package/kits/agent/.agent/skills/skill-creator/references/schemas.md +430 -0
  14. package/kits/agent/.agent/skills/skill-creator/scripts/__init__.py +0 -0
  15. package/kits/agent/.agent/skills/skill-creator/scripts/aggregate_benchmark.py +401 -0
  16. package/kits/agent/.agent/skills/skill-creator/scripts/generate_report.py +326 -0
  17. package/kits/agent/.agent/skills/skill-creator/scripts/improve_description.py +247 -0
  18. package/kits/agent/.agent/skills/skill-creator/scripts/package_skill.py +136 -0
  19. package/kits/agent/.agent/skills/skill-creator/scripts/quick_validate.py +103 -0
  20. package/kits/agent/.agent/skills/skill-creator/scripts/run_eval.py +310 -0
  21. package/kits/agent/.agent/skills/skill-creator/scripts/run_loop.py +328 -0
  22. package/kits/agent/.agent/skills/skill-creator/scripts/utils.py +47 -0
  23. package/kits/agent/manifest.json +10 -0
  24. package/kits/claude/.claude/agents/code-pusher.md +46 -0
  25. package/kits/claude/.claude/agents/feature-document-updater.md +37 -0
  26. package/kits/claude/.claude/agents/self-reviewer.md +32 -0
  27. package/kits/claude/.claude/agents/web-auto-agentic-workflow-initializer.md +42 -0
  28. package/kits/claude/.claude/agents/web-auto-assisted-fix-and-runner.md +36 -0
  29. package/kits/claude/.claude/agents/web-auto-chrome-devtools-selector-extractor.md +36 -0
  30. package/kits/claude/.claude/agents/web-auto-coder.md +33 -0
  31. package/kits/claude/.claude/agents/web-auto-fe-selector-extractor.md +31 -0
  32. package/kits/claude/.claude/agents/web-auto-fix-and-runner.md +35 -0
  33. package/kits/claude/.claude/agents/web-auto-lessons-learned-extractor.md +34 -0
  34. package/kits/claude/.claude/agents/web-auto-playwright-mcp-selector-extractor.md +37 -0
  35. package/kits/claude/.claude/agents/web-auto-source-instructions-updater.md +43 -0
  36. package/kits/claude/.claude/agents/web-auto-test-cases-generator.md +29 -0
  37. package/kits/claude/.claude/agents/web-auto-ticket-designer.md +35 -0
  38. package/kits/claude/.claude/agents/web-auto-ticket-playbook-planner.md +36 -0
  39. package/kits/claude/.claude/agents/web-auto.md +382 -0
  40. package/kits/claude/.claude/skills/claude-code-subagent-creator/SKILL.md +292 -0
  41. package/kits/claude/.claude/skills/claude-code-subagent-creator/references/claude-code-subagent-configuration.md +158 -0
  42. package/kits/claude/.claude/skills/claude-code-subagent-creator/templates/subagent-profile.template.md +26 -0
  43. package/kits/claude/.claude/skills/skill-creator/LICENSE.txt +202 -0
  44. package/kits/claude/.claude/skills/skill-creator/SKILL.md +485 -0
  45. package/kits/claude/.claude/skills/skill-creator/agents/analyzer.md +274 -0
  46. package/kits/claude/.claude/skills/skill-creator/agents/comparator.md +202 -0
  47. package/kits/claude/.claude/skills/skill-creator/agents/grader.md +223 -0
  48. package/kits/claude/.claude/skills/skill-creator/assets/eval_review.html +146 -0
  49. package/kits/claude/.claude/skills/skill-creator/eval-viewer/generate_review.py +471 -0
  50. package/kits/claude/.claude/skills/skill-creator/eval-viewer/viewer.html +1325 -0
  51. package/kits/claude/.claude/skills/skill-creator/references/schemas.md +430 -0
  52. package/kits/claude/.claude/skills/skill-creator/scripts/__init__.py +0 -0
  53. package/kits/claude/.claude/skills/skill-creator/scripts/aggregate_benchmark.py +401 -0
  54. package/kits/claude/.claude/skills/skill-creator/scripts/generate_report.py +326 -0
  55. package/kits/claude/.claude/skills/skill-creator/scripts/improve_description.py +247 -0
  56. package/kits/claude/.claude/skills/skill-creator/scripts/package_skill.py +136 -0
  57. package/kits/claude/.claude/skills/skill-creator/scripts/quick_validate.py +103 -0
  58. package/kits/claude/.claude/skills/skill-creator/scripts/run_eval.py +310 -0
  59. package/kits/claude/.claude/skills/skill-creator/scripts/run_loop.py +328 -0
  60. package/kits/claude/.claude/skills/skill-creator/scripts/utils.py +47 -0
  61. package/kits/claude/manifest.json +10 -0
  62. package/kits/cursor/.cursor/agents/code-pusher.agent.md +43 -0
  63. package/kits/cursor/.cursor/agents/feature-document-updater.agent.md +34 -0
  64. package/kits/cursor/.cursor/agents/self-reviewer.agent.md +29 -0
  65. package/kits/cursor/.cursor/agents/web-auto-agentic-workflow-initializer.agent.md +37 -0
  66. package/kits/cursor/.cursor/agents/web-auto-assisted-fix-and-runner.agent.md +33 -0
  67. package/kits/cursor/.cursor/agents/web-auto-chrome-devtools-selector-extractor.agent.md +31 -0
  68. package/kits/cursor/.cursor/agents/web-auto-coder.agent.md +30 -0
  69. package/kits/cursor/.cursor/agents/web-auto-fe-selector-extractor.agent.md +28 -0
  70. package/kits/cursor/.cursor/agents/web-auto-fix-and-runner.agent.md +32 -0
  71. package/kits/cursor/.cursor/agents/web-auto-lessons-learned-extractor.agent.md +31 -0
  72. package/kits/cursor/.cursor/agents/web-auto-playwright-mcp-selector-extractor.agent.md +32 -0
  73. package/kits/cursor/.cursor/agents/web-auto-source-instructions-updater.agent.md +40 -0
  74. package/kits/cursor/.cursor/agents/web-auto-test-cases-generator.agent.md +26 -0
  75. package/kits/cursor/.cursor/agents/web-auto-ticket-designer.agent.md +32 -0
  76. package/kits/cursor/.cursor/agents/web-auto-ticket-playbook-planner.agent.md +33 -0
  77. package/kits/cursor/.cursor/agents/web-auto.agent.md +379 -0
  78. package/kits/cursor/.cursor/skills/claude-code-subagent-creator/SKILL.md +292 -0
  79. package/kits/cursor/.cursor/skills/claude-code-subagent-creator/references/claude-code-subagent-configuration.md +158 -0
  80. package/kits/cursor/.cursor/skills/claude-code-subagent-creator/templates/subagent-profile.template.md +26 -0
  81. package/kits/cursor/.cursor/skills/skill-creator/LICENSE.txt +202 -0
  82. package/kits/cursor/.cursor/skills/skill-creator/SKILL.md +485 -0
  83. package/kits/cursor/.cursor/skills/skill-creator/agents/analyzer.md +274 -0
  84. package/kits/cursor/.cursor/skills/skill-creator/agents/comparator.md +202 -0
  85. package/kits/cursor/.cursor/skills/skill-creator/agents/grader.md +223 -0
  86. package/kits/cursor/.cursor/skills/skill-creator/assets/eval_review.html +146 -0
  87. package/kits/cursor/.cursor/skills/skill-creator/eval-viewer/generate_review.py +471 -0
  88. package/kits/cursor/.cursor/skills/skill-creator/eval-viewer/viewer.html +1325 -0
  89. package/kits/cursor/.cursor/skills/skill-creator/references/schemas.md +430 -0
  90. package/kits/cursor/.cursor/skills/skill-creator/scripts/__init__.py +0 -0
  91. package/kits/cursor/.cursor/skills/skill-creator/scripts/aggregate_benchmark.py +401 -0
  92. package/kits/cursor/.cursor/skills/skill-creator/scripts/generate_report.py +326 -0
  93. package/kits/cursor/.cursor/skills/skill-creator/scripts/improve_description.py +247 -0
  94. package/kits/cursor/.cursor/skills/skill-creator/scripts/package_skill.py +136 -0
  95. package/kits/cursor/.cursor/skills/skill-creator/scripts/quick_validate.py +103 -0
  96. package/kits/cursor/.cursor/skills/skill-creator/scripts/run_eval.py +310 -0
  97. package/kits/cursor/.cursor/skills/skill-creator/scripts/run_loop.py +328 -0
  98. package/kits/cursor/.cursor/skills/skill-creator/scripts/utils.py +47 -0
  99. package/kits/cursor/manifest.json +10 -0
  100. package/kits/github/.github/agents/code-pusher.agent.md +45 -0
  101. package/kits/github/.github/agents/feature-document-updater.agent.md +36 -0
  102. package/kits/github/.github/agents/self-reviewer.agent.md +31 -0
  103. package/kits/github/.github/agents/web-auto-agentic-workflow-initializer.agent.md +39 -0
  104. package/kits/github/.github/agents/web-auto-assisted-fix-and-runner.agent.md +35 -0
  105. package/kits/github/.github/agents/web-auto-chrome-devtools-selector-extractor.agent.md +33 -0
  106. package/kits/github/.github/agents/web-auto-coder.agent.md +32 -0
  107. package/kits/github/.github/agents/web-auto-fe-selector-extractor.agent.md +30 -0
  108. package/kits/github/.github/agents/web-auto-fix-and-runner.agent.md +34 -0
  109. package/kits/github/.github/agents/web-auto-lessons-learned-extractor.agent.md +33 -0
  110. package/kits/github/.github/agents/web-auto-playwright-mcp-selector-extractor.agent.md +34 -0
  111. package/kits/github/.github/agents/web-auto-source-instructions-updater.agent.md +42 -0
  112. package/kits/github/.github/agents/web-auto-test-cases-generator.agent.md +28 -0
  113. package/kits/github/.github/agents/web-auto-ticket-designer.agent.md +34 -0
  114. package/kits/github/.github/agents/web-auto-ticket-playbook-creator.agent.md +35 -0
  115. package/kits/github/.github/agents/web-auto.agent.md +382 -0
  116. package/kits/github/.github/skills/claude-code-subagent-creator/SKILL.md +310 -0
  117. package/kits/github/.github/skills/claude-code-subagent-creator/references/claude-code-subagent-configuration.md +158 -0
  118. package/kits/github/.github/skills/claude-code-subagent-creator/templates/subagent-profile.template.md +37 -0
  119. package/kits/github/.github/skills/skill-creator/LICENSE.txt +202 -0
  120. package/kits/github/.github/skills/skill-creator/SKILL.md +485 -0
  121. package/kits/github/.github/skills/skill-creator/agents/analyzer.md +274 -0
  122. package/kits/github/.github/skills/skill-creator/agents/comparator.md +202 -0
  123. package/kits/github/.github/skills/skill-creator/agents/grader.md +223 -0
  124. package/kits/github/.github/skills/skill-creator/assets/eval_review.html +146 -0
  125. package/kits/github/.github/skills/skill-creator/eval-viewer/generate_review.py +471 -0
  126. package/kits/github/.github/skills/skill-creator/eval-viewer/viewer.html +1325 -0
  127. package/kits/github/.github/skills/skill-creator/references/schemas.md +430 -0
  128. package/kits/github/.github/skills/skill-creator/scripts/__init__.py +0 -0
  129. package/kits/github/.github/skills/skill-creator/scripts/aggregate_benchmark.py +401 -0
  130. package/kits/github/.github/skills/skill-creator/scripts/generate_report.py +326 -0
  131. package/kits/github/.github/skills/skill-creator/scripts/improve_description.py +247 -0
  132. package/kits/github/.github/skills/skill-creator/scripts/package_skill.py +136 -0
  133. package/kits/github/.github/skills/skill-creator/scripts/quick_validate.py +103 -0
  134. package/kits/github/.github/skills/skill-creator/scripts/run_eval.py +310 -0
  135. package/kits/github/.github/skills/skill-creator/scripts/run_loop.py +328 -0
  136. package/kits/github/.github/skills/skill-creator/scripts/utils.py +47 -0
  137. package/kits/github/manifest.json +10 -0
  138. package/kits/shared/docs/ai-code-review.md +440 -0
  139. package/kits/shared/docs/increase-unit-test-coverage.md +77 -0
  140. package/kits/shared/docs/pr-review-agent.md +501 -0
  141. package/kits/shared/docs/self-review-agent.md +246 -0
  142. package/kits/shared/docs/web-auto-agentic-workflow.md +506 -0
  143. package/kits/shared/manifest.json +11 -0
  144. package/kits/shared/skills/fix-automation-tests/SKILL.md +280 -0
  145. package/kits/shared/skills/fix-automation-tests/scripts/fetch_pr_changes.py +300 -0
  146. package/kits/shared/skills/fix-automation-tests/templates/impact-report.template.md +42 -0
  147. package/kits/shared/skills/increase-unit-test-coverage/SKILL.md +117 -0
  148. package/kits/shared/skills/increase-unit-test-coverage/scripts/filter_low_coverage.py +447 -0
  149. package/kits/shared/skills/pr-review/SKILL.md +200 -0
  150. package/kits/shared/skills/pr-review/references/automation.md +62 -0
  151. package/kits/shared/skills/pr-review/references/backend.md +95 -0
  152. package/kits/shared/skills/pr-review/references/frontend.md +103 -0
  153. package/kits/shared/skills/pr-review/references/mobile.md +108 -0
  154. package/kits/shared/skills/pr-review/references/output-schema.md +130 -0
  155. package/kits/shared/skills/pr-review/scripts/post-review.py +1395 -0
  156. package/kits/shared/skills/push-code/SKILL.md +176 -0
  157. package/kits/shared/skills/self-review/SKILL.md +234 -0
  158. package/kits/shared/skills/self-review/evals/evals.json +23 -0
  159. package/kits/shared/skills/self-review/references/automation.md +62 -0
  160. package/kits/shared/skills/self-review/references/backend.md +95 -0
  161. package/kits/shared/skills/self-review/references/frontend.md +103 -0
  162. package/kits/shared/skills/self-review/references/mobile.md +108 -0
  163. package/kits/shared/skills/self-review/templates/issues.template.md +72 -0
  164. package/kits/shared/skills/update-feature-document/SKILL.md +156 -0
  165. package/kits/shared/skills/update-feature-document/templates/delta.template.yaml +58 -0
  166. package/kits/shared/skills/update-feature-document/templates/feature.template.md +25 -0
  167. package/kits/shared/skills/web-auto-assisted-fix-and-run/SKILL.md +130 -0
  168. package/kits/shared/skills/web-auto-assisted-fix-and-run/references/resolve-api-error.md +108 -0
  169. package/kits/shared/skills/web-auto-assisted-fix-and-run/references/resolve-selector.md +60 -0
  170. package/kits/shared/skills/web-auto-assisted-fix-and-run/templates/issues-resolution-report-append.template.md +54 -0
  171. package/kits/shared/skills/web-auto-chrome-devtools-mcp-extract-selectors/SKILL.md +284 -0
  172. package/kits/shared/skills/web-auto-coding/SKILL.md +152 -0
  173. package/kits/shared/skills/web-auto-extract-lessons-learned/SKILL.md +168 -0
  174. package/kits/shared/skills/web-auto-extract-lessons-learned/templates/lessons-learned.template.md +115 -0
  175. package/kits/shared/skills/web-auto-fe-extract-selectors/SKILL.md +282 -0
  176. package/kits/shared/skills/web-auto-fe-extract-selectors/evals/evals.json +23 -0
  177. package/kits/shared/skills/web-auto-fix-and-run-test/SKILL.md +183 -0
  178. package/kits/shared/skills/web-auto-fix-and-run-test/templates/issues-resolution-report.template.md +77 -0
  179. package/kits/shared/skills/web-auto-generate-best-practices/SKILL.md +123 -0
  180. package/kits/shared/skills/web-auto-generate-instructions/SKILL.md +200 -0
  181. package/kits/shared/skills/web-auto-generate-instructions/evals/evals.json +23 -0
  182. package/kits/shared/skills/web-auto-generate-instructions/references/analysis-guide.md +145 -0
  183. package/kits/shared/skills/web-auto-generate-instructions/templates/web-auto-instructions.template.md +184 -0
  184. package/kits/shared/skills/web-auto-generate-project-blueprint/SKILL.md +181 -0
  185. package/kits/shared/skills/web-auto-generate-project-blueprint/evals/evals.json +57 -0
  186. package/kits/shared/skills/web-auto-generate-project-blueprint/templates/web-auto-project-blueprint.template.md +161 -0
  187. package/kits/shared/skills/web-auto-playwright-mcp-extract-selectors/SKILL.md +293 -0
  188. package/kits/shared/skills/web-auto-test-cases/SKILL.md +138 -0
  189. package/kits/shared/skills/web-auto-test-cases/evals/evals.json +129 -0
  190. package/kits/shared/skills/web-auto-test-cases/templates/test-cases.template.md +53 -0
  191. package/kits/shared/skills/web-auto-ticket-design/SKILL.md +199 -0
  192. package/kits/shared/skills/web-auto-ticket-design/templates/ticket-design.template.md +138 -0
  193. package/kits/shared/skills/web-auto-ticket-playbook/SKILL.md +218 -0
  194. package/kits/shared/skills/web-auto-ticket-playbook/evals/evals.json +23 -0
  195. package/kits/shared/skills/web-auto-ticket-playbook/templates/ticket-playbook.template.md +148 -0
  196. package/kits/shared/skills/web-auto-update-source-instructions/SKILL.md +156 -0
  197. package/kits/shared/skills/web-auto-update-source-instructions/evals/evals.json +22 -0
  198. package/kits/shared/skills/workspace-ai-nav-creator/SKILL.md +168 -0
  199. package/kits/shared/skills/workspace-ai-nav-creator/templates/agents-md.template.md +112 -0
  200. package/kits/shared/skills/workspace-ai-nav-creator/templates/claude-md.template.md +86 -0
  201. package/package.json +16 -0
@@ -0,0 +1,129 @@
1
+ {
2
+ "skill_name": "web-auto-test-cases",
3
+ "evals": [
4
+ {
5
+ "id": 1,
6
+ "prompt": "Create test cases for ticket FE-2026. Here's the ticket content:\n\n- Feature: Administration - Users Monitors\n- Related Feature: None\n\n## Ticket Information\n\n### TC057\n**Summary:** Successfully add a new user with all required fields\n**Preconditions:** Admin user is logged in. Navigate to Administration > Users Monitors page.\n**Test Data:** Username: testuser01, Email: testuser01@example.com, Role: Viewer\n**Steps:**\n1. Click the 'Add User' button\n2. Fill in Username field with 'testuser01'\n3. Fill in Email field with 'testuser01@example.com'\n4. Select Role 'Viewer'\n5. Click 'Save'\n**Expected Results:**\n1. New user appears in the users list\n2. Success toast notification is shown\n**Post-conditions:** Delete the newly created user testuser01\n\n### TC058\n**Summary:** Show validation error when email is missing\n**Preconditions:** Admin user is logged in. Navigate to Administration > Users Monitors page. 'Add User' dialog is open.\n**Test Data:** Username: testuser02\n**Steps:**\n1. Fill in Username field with 'testuser02'\n2. Leave Email field empty\n3. Click 'Save'\n**Expected Results:**\n1. Error message 'Email is required' appears below the Email field\n2. User is not created\n**Post-conditions:** None",
7
+ "expected_output": "A test-cases.md file at .tickets/FE-2026/test-cases.md containing a Gherkin feature with @FE-2026 tag, exactly 2 scenarios tagged @TC057 and @TC058 respectively, @TC057 having @cleanup tag, @TC058 not having @cleanup, Background with the shared admin/navigation precondition, and all test data values in double quotes.",
8
+ "assertions": [
9
+ {
10
+ "id": "a1",
11
+ "name": "output file created at correct path",
12
+ "description": "The file .tickets/FE-2026/test-cases.md exists"
13
+ },
14
+ {
15
+ "id": "a2",
16
+ "name": "feature tag is exact ticket ID",
17
+ "description": "File contains @FE-2026 as a feature-level tag"
18
+ },
19
+ {
20
+ "id": "a3",
21
+ "name": "both test case IDs present as scenario tags",
22
+ "description": "File contains both @TC057 and @TC058 as scenario tags"
23
+ },
24
+ {
25
+ "id": "a4",
26
+ "name": "cleanup tag on TC057 only",
27
+ "description": "@cleanup tag appears on TC057 scenario; TC058 scenario does not have @cleanup"
28
+ },
29
+ {
30
+ "id": "a5",
31
+ "name": "no related feature tag",
32
+ "description": "No extra feature tag beyond @FE-2026 (since Related Feature is None)"
33
+ },
34
+ {
35
+ "id": "a6",
36
+ "name": "variable data in double quotes",
37
+ "description": "Test data values like testuser01, testuser01@example.com appear in double quotes in step text"
38
+ },
39
+ {
40
+ "id": "a7",
41
+ "name": "background contains shared precondition",
42
+ "description": "Background section includes admin login and navigation setup shared by both test cases"
43
+ }
44
+ ],
45
+ "files": []
46
+ },
47
+ {
48
+ "id": 2,
49
+ "prompt": "Generate BDD scenarios for ticket REPORT-014:\n\n- Feature: Reports - Monthly Sales\n- Related Feature: dashboard\n\n## Ticket Information\n\n### TC101\n**Summary:** Export monthly sales report as CSV\n**Preconditions:** User is logged in with Report Viewer role. Monthly sales data exists for January 2025.\n**Test Data:** Month: January 2025, Format: CSV\n**Steps:**\n1. Navigate to Reports > Monthly Sales\n2. Select 'January 2025' from the month picker\n3. Click 'Export' button\n4. Select 'CSV' format from dropdown\n5. Click 'Download'\n**Expected Results:**\n1. File download starts automatically\n2. Downloaded file name is 'monthly-sales-2025-01.csv'\n3. File contains correct sales data for January 2025\n**Post-conditions:** None\n\n### TC102\n**Summary:** Show empty state message when no data available\n**Preconditions:** User is logged in with Report Viewer role. No sales data exists for the selected period.\n**Test Data:** Month: February 2024\n**Steps:**\n1. Navigate to Reports > Monthly Sales\n2. Select 'February 2024' from the month picker\n**Expected Results:**\n1. Page displays message 'No sales data available for the selected period'\n2. Export button is disabled\n**Post-conditions:** None\n\n### TC103\n**Summary:** Filter report by sales region\n**Preconditions:** User is logged in with Report Viewer role. Monthly sales data exists with multiple regions.\n**Test Data:** Month: March 2025, Region: North America\n**Steps:**\n1. Navigate to Reports > Monthly Sales\n2. Select 'March 2025' from the month picker\n3. Apply filter 'North America' from Region dropdown\n**Expected Results:**\n1. Report data updates to show only North America sales\n2. Total sales figure reflects North America only\n**Post-conditions:** None",
50
+ "expected_output": "A test-cases.md file at .tickets/REPORT-014/test-cases.md with @REPORT-014 and @dashboard feature tags, feature line 'Feature: Reports - Monthly Sales', exactly 3 scenarios tagged @TC101, @TC102, @TC103, no @cleanup on any scenario, Background with the shared 'logged in with Report Viewer role' precondition, and test data values in double quotes.",
51
+ "assertions": [
52
+ {
53
+ "id": "a1",
54
+ "name": "output file at correct path",
55
+ "description": "File .tickets/REPORT-014/test-cases.md exists"
56
+ },
57
+ {
58
+ "id": "a2",
59
+ "name": "both feature tags present",
60
+ "description": "@REPORT-014 and @dashboard both appear as feature-level tags"
61
+ },
62
+ {
63
+ "id": "a3",
64
+ "name": "feature line correct",
65
+ "description": "Feature line reads 'Feature: Reports - Monthly Sales'"
66
+ },
67
+ {
68
+ "id": "a4",
69
+ "name": "all three scenario IDs present",
70
+ "description": "@TC101, @TC102, and @TC103 all appear as scenario tags"
71
+ },
72
+ {
73
+ "id": "a5",
74
+ "name": "no cleanup tag on any scenario",
75
+ "description": "@cleanup does not appear anywhere in the file (all Post-conditions are None)"
76
+ },
77
+ {
78
+ "id": "a6",
79
+ "name": "shared precondition in background",
80
+ "description": "Background contains the Report Viewer login precondition shared by all scenarios"
81
+ },
82
+ {
83
+ "id": "a7",
84
+ "name": "month/region values in double quotes",
85
+ "description": "Values like 'January 2025', 'North America', 'monthly-sales-2025-01.csv' appear in double quotes in step text"
86
+ }
87
+ ],
88
+ "files": []
89
+ },
90
+ {
91
+ "id": 3,
92
+ "prompt": "write gherkin test cases for ticket AUTH-007:\n\n- Feature: Authentication - Login\n- Related Feature: None\n\n## Ticket Information\n\n### TC201\n**Summary:** Successful login with valid credentials\n**Preconditions:** User account exists with username 'qa_tester' and password 'Test@1234'. User is on the login page.\n**Test Data:** Username: qa_tester, Password: Test@1234\n**Steps:**\n1. Enter 'qa_tester' in the Username field\n2. Enter 'Test@1234' in the Password field\n3. Click 'Login' button\n**Expected Results:**\n1. User is redirected to the dashboard\n2. Welcome message displays 'Welcome, qa_tester'\n**Post-conditions:** Log out the user\n\n### TC202\n**Summary:** Login fails with incorrect password\n**Preconditions:** User is on the login page.\n**Test Data:** Username: qa_tester, Password: WrongPass\n**Steps:**\n1. Enter 'qa_tester' in the Username field\n2. Enter 'WrongPass' in the Password field\n3. Click 'Login' button\n**Expected Results:**\n1. Error message 'Invalid username or password' is displayed\n2. User remains on the login page\n**Post-conditions:** None",
93
+ "expected_output": "A test-cases.md file at .tickets/AUTH-007/test-cases.md with @AUTH-007 feature tag, no related feature tag, exactly 2 scenarios @TC201 (with @cleanup) and @TC202 (without @cleanup), only the 'User is on the login page' precondition in Background (shared by both), with TC201's unique user-account precondition as a Given step inside its scenario, and credentials in double quotes.",
94
+ "assertions": [
95
+ {
96
+ "id": "a1",
97
+ "name": "output file at correct path",
98
+ "description": "File .tickets/AUTH-007/test-cases.md exists"
99
+ },
100
+ {
101
+ "id": "a2",
102
+ "name": "correct feature tag only",
103
+ "description": "@AUTH-007 present, no other feature-level tag (Related Feature is None)"
104
+ },
105
+ {
106
+ "id": "a3",
107
+ "name": "TC201 has cleanup, TC202 does not",
108
+ "description": "@TC201 scenario has @cleanup tag; @TC202 does not"
109
+ },
110
+ {
111
+ "id": "a4",
112
+ "name": "TC201 unique precondition in scenario Given",
113
+ "description": "The 'User account exists' precondition appears as a Given step inside TC201's scenario, not in Background"
114
+ },
115
+ {
116
+ "id": "a5",
117
+ "name": "shared login page precondition in background",
118
+ "description": "Background contains the 'User is on the login page' precondition"
119
+ },
120
+ {
121
+ "id": "a6",
122
+ "name": "credentials in double quotes",
123
+ "description": "Values like qa_tester, Test@1234, WrongPass appear in double quotes in step text"
124
+ }
125
+ ],
126
+ "files": []
127
+ }
128
+ ]
129
+ }
@@ -0,0 +1,53 @@
1
+ # Test Cases Template
2
+
3
+ Use this template as the output structure for `test-cases.md`.
4
+
5
+ ```gherkin
6
+ @{ticket-tag}
7
+ @{related-feature-tag-if-applicable}
8
+ Feature: {PARENT_FEATURE} - {CHILD_FEATURE}
9
+
10
+ Background:
11
+ Given {common precondition shared across all test cases}
12
+ And {additional setup}
13
+
14
+ @{exact-test-case-id} @cleanup
15
+ Scenario: {descriptive name from summary}
16
+ When {action from Steps section}
17
+ And {additional action}
18
+ Then {expected result from Expected Results section}
19
+ And {additional expectation}
20
+
21
+ @{exact-test-case-id-2}
22
+ Scenario: {descriptive name from summary}
23
+ Given {unique precondition for this scenario only}
24
+ When {action from Steps section}
25
+ Then {expected result}
26
+ ```
27
+
28
+ ## Feature Level
29
+
30
+ | Element | Rule |
31
+ |---------|------|
32
+ | Feature tag | `@{TICKET_ID}` — exact ticket ID |
33
+ | Related Feature tag | `@{related-feature}` — only if present and not "None" |
34
+ | Feature line | `Feature: {PARENT_FEATURE} - {CHILD_FEATURE}` — exact values from ticket instructions |
35
+ | Background | Common preconditions shared across all test cases |
36
+
37
+ ## Scenario Level
38
+
39
+ | Element | Rule |
40
+ |---------|------|
41
+ | Scenario tag | Exact Test Case ID (e.g., `@TC057`) — never generic tags |
42
+ | `@cleanup` tag | Only when that test case's Post-conditions require it |
43
+ | Scenario name | Derived from the test case's Summary |
44
+
45
+ ## Step Translation
46
+
47
+ | Source | Gherkin Keyword |
48
+ |--------|----------------|
49
+ | Steps section | `When` / `And` |
50
+ | Expected Results | `Then` / `And` |
51
+ | Unique preconditions | `Given` (within the scenario) |
52
+ | Test Data values | Enclosed in double quotes |
53
+ | Variable data (emails, names, messages) | Enclosed in double quotes |
@@ -0,0 +1,199 @@
1
+ ---
2
+ name: web-auto-ticket-design
3
+ description: Transform BDD Gherkin test cases into a comprehensive test design document with actionable test steps. Reads test-cases.md, deeply searches the codebase for reusable Page Objects, elements, and API helpers, then generates ticket-design.md mapping every Gherkin step to concrete actions. Use this skill whenever someone asks to create a ticket design, generate a test design, transform Gherkin into test steps, translate BDD scenarios into implementation-ready steps, or bridge test cases to code — even if the request is phrased casually like "design the test steps" or "what do I need to implement for this ticket". Triggers on requests like "create ticket design for TKT-001", "generate test design for ABC-123", "design test steps for ticket fe-2026", "turn these scenarios into test steps", or "map Gherkin to page objects".
4
+ ---
5
+
6
+ # Web Automation Ticket Design
7
+
8
+ Read a `test-cases.md` file for a given ticket ID, search the codebase for reusable Page Objects and elements, and transform Gherkin scenarios into a detailed test design document saved as `ticket-design.md`.
9
+
10
+ The purpose of this skill is to bridge the gap between BDD scenarios (what to test) and implementation (how to test it). A good ticket design tells the downstream Playbook and Coding skills exactly which existing code to reuse and where new code is needed — saving significant implementation time.
11
+
12
+ ## Input Parameters
13
+
14
+ | Parameter | Type | Required | Description |
15
+ |-----------|------|----------|-------------|
16
+ | `TICKET_ID` | string | Yes | The ticket identifier (e.g., TKT-001, ABC-123) |
17
+
18
+ **If `TICKET_ID` is not provided:** Ask the user for the ticket ID before proceeding.
19
+
20
+ ## Workflow
21
+
22
+ ### Step 1: Locate and Read Test Cases
23
+
24
+ Search for the test cases file using this glob pattern:
25
+
26
+ ```
27
+ .tickets/{TICKET_ID}/test-cases.md
28
+ ```
29
+
30
+ **If not found:** Inform the user and stop:
31
+
32
+ ```
33
+ Error: test-cases.md not found for ticket {TICKET_ID}.
34
+ Run the web-auto-test-cases skill first to create it.
35
+ ```
36
+
37
+ **If found:** Read the entire file and extract:
38
+ - **Feature / Child Feature** from the Feature line
39
+ - **Related Feature** from the related feature tag (if not "None")
40
+ - **Test Case IDs** from scenario tags (e.g., `@TC001`, `@TC057`)
41
+ - **Background steps** — shared preconditions that apply to all scenarios
42
+ - **Key actions** mentioned in Gherkin steps (navigate, click, enter, verify, select, toggle, etc.)
43
+ - **Key elements** mentioned (buttons, fields, dropdowns, tables, modals, etc.)
44
+ - **Quoted test data** — all values in double quotes (emails, usernames, amounts, dates, etc.), since these will appear as parameters in the design steps
45
+ - **Cleanup tags** — scenarios tagged with `@cleanup` need teardown steps
46
+
47
+ ### Step 2: Search and Catalog Source Code
48
+
49
+ Search the test automation codebase for existing Page Objects, actions, and elements. Complete all analysis internally — do not output to the user.
50
+
51
+ The goal here is maximizing code reuse. Every existing method or element you find means one fewer thing the implementer needs to build from scratch. Invest the time in thorough searching — it pays off significantly downstream.
52
+
53
+ **2.1 — Search for Page Objects**
54
+
55
+ Start broad, then narrow down. Search in this order:
56
+
57
+ | Priority | Search Target | Patterns |
58
+ |----------|---------------|----------|
59
+ | 1 | Feature Page Objects | `class [Feature]Page`, `[feature].page.ts`, `[feature]-page.ts`, `[feature].po.ts` |
60
+ | 2 | Related Feature Page Objects | Classes for the Related Feature (if applicable) — these often share elements |
61
+ | 3 | Shared / Base Page Objects | `BasePage`, `CommonPage`, `SharedPage`, navigation helpers, header/footer components |
62
+ | 4 | API / Data Helpers | `Api`, `Helper`, `Factory`, `Service`, `Client` — classes for CRUD operations and data setup |
63
+
64
+ Read discovered Page Object files to understand their full API (methods and elements), not just that they exist.
65
+
66
+ **2.2 — Search for Elements and Actions**
67
+
68
+ For each key element and action identified in Step 1, search for:
69
+ - Element locators: `getByTestId`, `getByRole`, `getByLabel`, `getByText`, `locator`, `readonly`
70
+ - Action methods: method signatures matching the action (e.g., `async fill`, `async click`, `async select`, `async navigate`)
71
+ - Selectors: `[data-testid="..."]`, `#element-id`, `.class-name`
72
+ - API methods: `async create`, `async delete`, `async update`, `async get` — for CRUD operations in Background/Given steps
73
+
74
+ **2.3 — Catalog Findings**
75
+
76
+ Build internal reference tables (these help ensure consistent mapping in Step 3):
77
+
78
+ ```
79
+ Available Actions:
80
+ | Action | Method | Source File |
81
+ |--------|--------|-------------|
82
+
83
+ Available Elements:
84
+ | Element | Reference | Source File |
85
+ |---------|-----------|-------------|
86
+
87
+ Available API Helpers:
88
+ | Operation | Method | Source File |
89
+ |-----------|--------|-------------|
90
+ ```
91
+
92
+ **2.4 — Plan Transformations**
93
+
94
+ For each Gherkin step, determine:
95
+ - Which existing resources (actions/elements/API helpers) to use
96
+ - Which step format (1, 2, 3, or 4) applies — see the format selection guide below
97
+
98
+ Do not proceed to Step 3 until planning is complete for every step.
99
+
100
+ ### Step 3: Transform Gherkin Steps
101
+
102
+ Transform each Gherkin step using the appropriate format from the template at [templates/ticket-design.template.md](templates/ticket-design.template.md).
103
+
104
+ #### Format Selection Guide
105
+
106
+ Use this decision tree to pick the right format for each step:
107
+
108
+ ```
109
+ Is this step an API/data operation (CRUD, setup, teardown, service call)?
110
+ ├── Yes → Does a matching API method exist?
111
+ │ ├── Yes → Format 1 (existing API action)
112
+ │ └── No → Format 4 (new API action needed)
113
+ └── No (it's a UI interaction) → Does a matching action method exist?
114
+ ├── Yes → Format 1 (existing UI action)
115
+ └── No → Does the element exist (locator defined)?
116
+ ├── Yes → Format 2 (element exists, no action method)
117
+ └── No → Format 3 (new UI implementation needed)
118
+ ```
119
+
120
+ Quick summary of the four formats:
121
+ - **Format 1** — Complete action method found (UI or API). No Element/Selector lines needed.
122
+ - **Format 2** — Element locator exists but no dedicated action method. UI interactions only.
123
+ - **Format 3** — Nothing found — new UI implementation needed. Uses `<-- Update selector for this element -->` placeholder.
124
+ - **Format 4** — No existing API method — new API implementation needed. No Element/Selector lines.
125
+
126
+ #### Background and Precondition Steps
127
+
128
+ When test cases include `Background` or precondition (`Given`) steps, categorize each step before transforming.
129
+
130
+ The reason for this categorization: Background steps set up the state needed for the test, but not all setup steps are equally important to include. CRUD actions (creating a user, setting up data) change system state and must always be designed — otherwise the test will fail. Data verifications in preconditions ("ensure the user exists") are only worth including if you already have a function that can do the check; building a new verification just for a precondition adds complexity with little value, since the CRUD step itself guarantees the state.
131
+
132
+ | Step Type | Existing Function Found? | Action |
133
+ |-----------|--------------------------|--------|
134
+ | CRUD action (create, read, update, delete) | Yes | Include — use the found function (Format 1 or 2) |
135
+ | CRUD action (create, read, update, delete) | No | Include — mark as new implementation needed (Format 3 for UI, Format 4 for API) |
136
+ | Data verification / assertion | Yes | Include — use the found function (Format 1 or 2) |
137
+ | Data verification / assertion | No | **Skip** — omit from the design |
138
+
139
+ #### Consolidating Gherkin Steps
140
+
141
+ Multiple consecutive Gherkin `And` steps that target the same UI element or form should be evaluated together:
142
+ - If a single existing method handles the combined action (e.g., a `fillLoginForm(user, pass)` method covers both "enter username" and "enter password"), consolidate into one design step using Format 1.
143
+ - Otherwise, keep them as separate design steps — each `And` step becomes its own numbered step.
144
+
145
+ #### Handling Cleanup Steps
146
+
147
+ Scenarios tagged with `@cleanup` require teardown steps at the end. Transform cleanup steps the same way as regular steps (using the format selection guide), and add them as the final numbered steps for that test case. Label these clearly so the implementer knows they run after the main test flow.
148
+
149
+ #### Carrying Test Data Forward
150
+
151
+ The upstream test-cases.md encloses variable data in double quotes (e.g., `"admin@example.com"`, `"2025-01-15"`, `"$500.00"`). Preserve these quoted values in your design steps — they appear as parameters in action calls (e.g., `LoginPage.fillEmail("admin@example.com")`) and make the test data explicit and traceable.
152
+
153
+ #### Verification Steps
154
+
155
+ `Then` / assertion steps in the Gherkin map to verification actions in the design. Search for existing assertion helpers (e.g., `expectVisible`, `expectText`, `expectCount`, `verifyTableRow`) before falling back to Format 3. Verification steps always need an Expected Result line that precisely states what should be true.
156
+
157
+ ### Step 4: Save
158
+
159
+ Generate the ticket design document using the output structure from the template and save it:
160
+
161
+ ```
162
+ .tickets/{TICKET_ID}/ticket-design.md
163
+ ```
164
+
165
+ ### Step 5: Summary
166
+
167
+ Display the result to the user:
168
+
169
+ ```
170
+ Ticket design created for ticket {TICKET_ID}.
171
+
172
+ Created:
173
+ - .tickets/{TICKET_ID}/ticket-design.md
174
+
175
+ Summary:
176
+ - Existing actions reused: {count}
177
+ - Existing elements reused: {count}
178
+ - New elements/actions needed: {count}
179
+
180
+ Note: You need to update the missing selectors; you can use the FE source code or the MCP server.
181
+ ```
182
+
183
+ Include the "Note" line when any steps use Format 3, so the user knows there are placeholders requiring attention.
184
+
185
+ ## Guiding Principles
186
+
187
+ These principles explain the reasoning behind how the skill works — understanding them helps handle edge cases not explicitly covered above.
188
+
189
+ - **Search thoroughly before defaulting to "new"** — the Format 3/4 placeholder is easy to write but expensive downstream. A few extra search queries now can save significant implementation effort. When in doubt, try one more search with variant naming patterns before concluding something doesn't exist.
190
+
191
+ - **Complete all analysis before generating** — transforming steps one at a time without the full catalog leads to inconsistencies (e.g., using Format 3 for an element that a later search would have found). Finish Step 2 entirely before starting Step 3.
192
+
193
+ - **Keep planning internal** — the catalog tables and search results are working artifacts. The user only needs the final ticket-design.md document and the summary.
194
+
195
+ - **API actions are Element-free** — API calls operate at the service layer, not the UI. Attaching Element or Selector lines to an API action would confuse the implementer about where the code should live.
196
+
197
+ - **Skip unverifiable preconditions** — converting a data verification precondition to Format 3 would force the implementer to build a verification helper just for setup, which adds complexity without improving test reliability. The CRUD action that creates the data already guarantees the state.
198
+
199
+ - **File creation failure** — report the error and ask the user how to proceed.
@@ -0,0 +1,138 @@
1
+ # Ticket Design Template
2
+
3
+ Use this template as the output structure for `ticket-design.md`.
4
+
5
+ ## Output Structure
6
+
7
+ ```markdown
8
+ # Ticket Design
9
+
10
+ ## Ticket Information
11
+ - Ticket ID: [ticket-id]
12
+ - Feature: [main-feature - child-feature]
13
+ - Related Feature: [related-feature or "None"]
14
+
15
+ ## [Test Case ID]: [Test Case Description]
16
+ ### Test Steps:
17
+ [numbered test steps using formats 1, 2, 3, or 4]
18
+ [if @cleanup: cleanup steps as final numbered steps]
19
+
20
+ ## [Next Test Case ID]: [Test Case Description]
21
+ ### Test Steps:
22
+ [numbered test steps using formats 1, 2, 3, or 4]
23
+ ```
24
+
25
+ **Notes on structure:**
26
+ - Background/precondition steps appear first in the numbered sequence for each test case
27
+ - Cleanup steps (from `@cleanup` tagged scenarios) appear last
28
+ - Step numbering is sequential within each test case, starting at 1
29
+
30
+ ## Step Formats
31
+
32
+ Choose the format based on what exists in the codebase.
33
+
34
+ ### Format 1 — Action method exists (API or UI action)
35
+
36
+ Use for steps where a complete action method already exists. This includes API actions (e.g., CRUD helpers, data setup functions) and UI actions with a dedicated method. **Do not include Element or Selector lines** — the method encapsulates the full action.
37
+
38
+ ```
39
+ [Step Number]. [Natural language description]
40
+ - Action: [Description] - [PageObject].[methodName]([parameters])
41
+ - Expected Result: [Expected outcome]
42
+ ```
43
+
44
+ ### Format 2 — Element exists but no specific action method
45
+
46
+ Use for UI interactions where the element is defined but no dedicated action method exists. **Not applicable to API actions.**
47
+
48
+ ```
49
+ [Step Number]. [Natural language description]
50
+ - Element: [Description of element]
51
+ - Action: [Action to perform] - [PageObject].[elementName]([parameters])
52
+ - Expected Result: [Expected outcome]
53
+ ```
54
+
55
+ ### Format 3 — Neither exists (new UI implementation needed)
56
+
57
+ Use for UI interactions where neither the element nor the action exists. **Not applicable to API actions.**
58
+
59
+ ```
60
+ [Step Number]. [Natural language description]
61
+ - Element: [Descriptive element name]
62
+ - Selector: <-- Update selector for this element -->
63
+ - Action: [Action to perform]
64
+ - Expected Result: [Expected outcome]
65
+ - Note: New element/action - needs to be implemented
66
+ ```
67
+
68
+ ### Format 4 — API action does not exist (new API implementation needed)
69
+
70
+ Use for API actions (CRUD helpers, data setup/teardown, service calls) where no existing method is found. **Do not include Element or Selector lines.**
71
+
72
+ ```
73
+ [Step Number]. [Natural language description]
74
+ - Action: [Action to perform]
75
+ - Expected Result: [Expected outcome]
76
+ - Note: New API action - needs to be implemented
77
+ ```
78
+
79
+ ## Example
80
+
81
+ All four formats in a single test case, including background setup and cleanup:
82
+
83
+ ```markdown
84
+ ## TC042: Verify admin can create and delete a user
85
+ ### Test Steps:
86
+ 1. Create test organization via API
87
+ - Action: Create organization "Acme Corp" - OrganizationApi.create("Acme Corp")
88
+ - Expected Result: Organization is created successfully
89
+
90
+ 2. Navigate to the login page
91
+ - Action: Open login page - LoginPage.goto()
92
+ - Expected Result: Login page displays with username and password fields
93
+
94
+ 3. Enter valid credentials
95
+ - Element: Username input field
96
+ - Action: Enter username - LoginPage.usernameInput.fill("admin@example.com")
97
+ - Expected Result: Username appears in the input field
98
+
99
+ 4. Click login button
100
+ - Element: Login button
101
+ - Selector: <-- Update selector for this element -->
102
+ - Action: Click the login button
103
+ - Expected Result: User is redirected to the dashboard
104
+ - Note: New element/action - needs to be implemented
105
+
106
+ 5. Verify dashboard displays admin panel
107
+ - Element: Admin panel section
108
+ - Action: Check visibility - DashboardPage.adminPanel.isVisible()
109
+ - Expected Result: Admin panel is visible on the dashboard
110
+
111
+ 6. Delete test organization via API (Cleanup)
112
+ - Action: Delete organization "Acme Corp"
113
+ - Expected Result: Organization is deleted successfully
114
+ - Note: New API action - needs to be implemented
115
+ ```
116
+
117
+ **What this example shows:**
118
+ - Step 1: Format 1 — existing API action for background setup
119
+ - Steps 2-3: Format 1 and 2 — existing UI actions
120
+ - Step 4: Format 3 — new UI element needed
121
+ - Step 5: Format 2 — existing element used for verification
122
+ - Step 6: Format 4 — cleanup step (new API action needed)
123
+
124
+ ## Transformation Rules
125
+
126
+ - Number all steps sequentially within each test case, starting at 1
127
+ - Background/precondition steps come first in the sequence
128
+ - Cleanup steps (from `@cleanup` tags) come last, with "(Cleanup)" appended to the description
129
+ - Include both action and expected result for every step
130
+ - Preserve quoted test data from Gherkin (e.g., `"admin@example.com"`, `"$500.00"`) as parameters in action calls
131
+ - Include verification steps for all Gherkin `Then` statements — search for existing assertion helpers first
132
+ - Use `Description - PageObject.methodName(parameters)` for function references
133
+ - Include parameters for dynamic elements: `PageObject.elementName(parameters)`
134
+ - When multiple Gherkin `And` steps are handled by a single method, consolidate into one design step
135
+ - Mark new UI implementations with `Note: New element/action - needs to be implemented`
136
+ - Mark new API implementations with `Note: New API action - needs to be implemented`
137
+ - Use `<-- Update selector for this element -->` as the selector placeholder for Format 3
138
+ - **API actions never include Element or Selector** — API calls (CRUD helpers, data setup/teardown, service calls) use Format 1 or Format 4 only