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,218 @@
1
+ ---
2
+ name: web-auto-ticket-playbook
3
+ description: Create a comprehensive implementation playbook from a ticket design document. Reads ticket-design.md, reads project/feature coding instructions, searches the codebase for reusable Page Objects and utilities, and generates a step-by-step implementation plan with tasks, dependencies, and reference patterns. Use this skill whenever someone asks to create a ticket playbook, generate an implementation plan, prepare coding tasks, plan implementation work, break down a ticket into tasks, or create a coding guide for a ticket — even casual requests like "plan the work for this ticket" or "what tasks do I need for TKT-001". Triggers on requests like "create playbook for ticket TKT-001", "generate implementation plan for ABC-123", "prepare coding tasks for ticket fe-2026", "break down ticket work", "plan the implementation".
4
+ ---
5
+
6
+ # Web Automation Ticket Playbook
7
+
8
+ Read a `ticket-design.md` file for a given ticket ID, search the codebase for reusable components, and generate a comprehensive implementation playbook saved as `ticket-playbook.md`.
9
+
10
+ The playbook is the bridge between design and code. The upstream ticket-design skill maps *what* needs to happen (test steps, selectors, expected results); this skill maps *how* to implement it (which files to create, what patterns to follow, which existing code to build on). The downstream coding skill then executes the playbook task by task. A well-crafted playbook gives the coding agent everything it needs — clear file paths, concrete reference patterns, explicit dependencies — so it can implement without guessing or re-searching.
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: Read the Ticket Design
23
+
24
+ Search for the ticket design file:
25
+
26
+ ```
27
+ .tickets/{TICKET_ID}/ticket-design.md
28
+ ```
29
+
30
+ **If not found:** Inform the user and stop:
31
+
32
+ ```
33
+ Error: ticket-design.md not found for ticket {TICKET_ID}.
34
+ Run the web-auto-ticket-design skill first to create it.
35
+ ```
36
+
37
+ **If found:** Extract and understand:
38
+ - **Feature / Child Feature** from the Ticket Information section
39
+ - **Related Feature** (if any) — often shares components worth reusing
40
+ - **Test Case IDs** from the section headers
41
+ - **Test Steps** including actions, elements, selectors, and expected results
42
+ - **Existing code references** — steps using Format 1 or Format 2 already point to specific Page Objects and methods. Catalog these — they tell you which files the coding agent will need to import
43
+ - **New implementations needed** — steps marked with "Note: New element/action - needs to be implemented" (Format 3) or "Note: New API action - needs to be implemented" (Format 4). These are the items that need new tasks in the playbook
44
+ - **Selectors** — both resolved selectors and any remaining `<-- Update selector for this element -->` placeholders
45
+
46
+ ### Step 2: Read Project and Feature Instructions
47
+
48
+ Read the coding instructions that define mandatory conventions. These files shape *how* the playbook structures its tasks — file paths, class names, method signatures, and coding patterns all come from here.
49
+
50
+ 1. `.documents-design/web-auto-project-blueprint.md` — project structure, framework, tech stack, directory layout, file naming conventions
51
+ 2. `.documents-design/web-auto-instructions.md` — concrete coding patterns with copy-paste templates from the actual codebase
52
+ 3. `.documents-design/web-auto-best-practices.md` — coding standards, anti-patterns to avoid, best practices
53
+
54
+ From these files, extract and note:
55
+ - **Directory structure** — where Page Objects, test scripts, fixtures, and utilities live
56
+ - **File naming conventions** — how files should be named (e.g., `feature.page.ts`, `feature.spec.ts`)
57
+ - **Page Object patterns** — base class to extend, how to define elements, how to write action methods
58
+ - **Test script patterns** — test structure, hooks, setup/teardown, assertion style
59
+ - **Test data patterns** — how test data is organized (fixtures, factories, inline, environment variables)
60
+ - **Import conventions** — barrel exports, relative vs. absolute paths
61
+ - **Anti-patterns** — things the coding agent must avoid
62
+
63
+ **If no instruction files are found:** Proceed without them, but note in the playbook output that no project instructions were available. The coding agent should then infer conventions from existing codebase patterns.
64
+
65
+ ### Step 3: Search and Catalog Existing Components
66
+
67
+ The ticket design already identified which Page Objects, methods, and elements exist for individual test steps. This step goes further — search for the *infrastructure* the coding agent will need: utilities, fixtures, test data helpers, configuration, and patterns for creating new components.
68
+
69
+ Complete all analysis internally — do not output search results to the user.
70
+
71
+ **3.1 — Verify and Expand Page Object Knowledge**
72
+
73
+ The ticket design referenced specific Page Objects. Read those files to understand their full structure:
74
+
75
+ | Search Target | Why |
76
+ |---------------|-----|
77
+ | Feature Page Objects referenced in the design | Understand imports, base class, existing methods — the coding agent will extend these |
78
+ | Related Feature Page Objects | May share patterns or elements worth reusing |
79
+ | Base / Shared Page Objects | Understand the base class API — methods the coding agent can call or override |
80
+
81
+ For Page Objects that need new methods (from Format 3/4 steps), identify the exact insertion point — which file, after which existing method.
82
+
83
+ **3.2 — Utilities and Helpers**
84
+
85
+ Search for reusable utilities the ticket design wouldn't have covered:
86
+
87
+ | Search Target | Patterns |
88
+ |---------------|----------|
89
+ | Assertion helpers | `expect`, `verify`, `assert`, `waitFor`, custom matchers |
90
+ | Navigation utilities | `goto`, `navigate`, `waitForNavigation`, `waitForURL` |
91
+ | Data generation | `faker`, `generate`, `random`, `factory`, `build` |
92
+ | File handling | `upload`, `download`, `readFile`, `writeFile` |
93
+ | API clients | `ApiClient`, `request`, `fetch` — for Format 4 (new API) tasks |
94
+ | Environment / Config | `env`, `config`, `baseURL`, `credentials` |
95
+
96
+ **3.3 — Test Data and Fixtures**
97
+
98
+ Search for existing test data patterns — how the project handles test data determines how the playbook structures data-related tasks:
99
+
100
+ | Search Target | Patterns |
101
+ |---------------|----------|
102
+ | Fixture files | `fixture`, `.fixture.ts`, `.data.ts`, `testData` |
103
+ | Factories | `factory`, `create`, `build`, `generate` |
104
+ | Seed data | `seed`, `mock`, `stub` |
105
+ | Environment data | `.env`, `config`, credentials handling |
106
+
107
+ **3.4 — Reference Pattern Candidates**
108
+
109
+ For each type of new component the ticket needs (new Page Object method, new test script, new API helper), find the best existing example to serve as a reference pattern. A good reference pattern:
110
+ - Is in the same feature area (or a closely related one)
111
+ - Uses the same base classes and conventions
112
+ - Is similar in complexity to what needs to be built
113
+ - Is a complete, working implementation (not a stub)
114
+
115
+ **3.5 — Build Internal Catalog**
116
+
117
+ Organize findings into numbered tables (the numbers become dependency references in tasks):
118
+
119
+ ```
120
+ Existing Components:
121
+ | # | Component | Type | Path | Key Methods/Elements |
122
+
123
+ New Components Needed:
124
+ | # | Component | Type | Planned Path | Purpose | Best Reference |
125
+
126
+ Utilities Available:
127
+ | # | Utility | Path | Relevant Methods |
128
+ ```
129
+
130
+ ### Step 4: Plan Implementation Tasks
131
+
132
+ This is where the playbook's value is created. Plan all tasks before generating the output. The goal: produce a task list that the coding agent can execute sequentially without needing to make architectural decisions.
133
+
134
+ #### 4.1 — Categorize Work
135
+
136
+ Group everything that needs to happen into categories. This ordering also defines the dependency flow:
137
+
138
+ | Order | Category | Examples |
139
+ |-------|----------|----------|
140
+ | 1 | Test Data & Fixtures | New fixture files, test data constants, environment setup |
141
+ | 2 | API Helpers | New API client methods for CRUD operations (from Format 4 steps) |
142
+ | 3 | Page Object Updates | New methods or elements added to *existing* Page Objects |
143
+ | 4 | New Page Objects | Brand new Page Object classes |
144
+ | 5 | Test Scripts | The actual test spec files |
145
+
146
+ #### 4.2 — Determine Task Granularity
147
+
148
+ Each task should represent a single coherent unit of work in one file. Use this guide:
149
+
150
+ - **One task per file** as the default — if a task touches multiple files, split it
151
+ - **Group related small changes** — adding 2-3 related methods to the same Page Object is one task, not three
152
+ - **Separate Page Object creation from test script creation** — even if they're for the same test case, they're different tasks with a dependency
153
+ - **One test script task per test case** — unless test cases share significant setup code, in which case shared setup can be its own task
154
+
155
+ #### 4.3 — Write Task Details
156
+
157
+ For each task, prepare:
158
+
159
+ - **Dependencies** — which task numbers must complete first. Think about: Does this task import from a file another task creates? Does it use test data another task defines?
160
+ - **Guidance** — the most important field. This tells the coding agent *what* to do and *how*, referencing conventions from the instruction files. Good guidance is specific and actionable (see examples in the template). Avoid vague guidance like "implement the page object" — instead say "Add a `clickSubmitButton()` method to `LoginPage` that clicks the submit button element and waits for navigation, following the action method pattern in the Reference Pattern."
161
+ - **File(s) to Modify** — exact file paths (for existing files) or planned paths following naming conventions (for new files)
162
+ - **Key Selector(s)** — selectors from the ticket design that this task uses. Include both resolved selectors and any remaining placeholders
163
+ - **Reference Pattern** — a specific existing file + class/method that the coding agent should use as a model. Not just "look at LoginPage" but "see `LoginPage.fillUsername()` in `pages/login.page.ts` for the method pattern"
164
+
165
+ #### 4.4 — Validate the Dependency Graph
166
+
167
+ Before generating output:
168
+ 1. Verify all dependencies reference valid task numbers
169
+ 2. Confirm no circular dependencies exist
170
+ 3. Check that dependency order follows the category order (data → API → Page Objects → tests)
171
+ 4. Ensure every task that imports from a new file depends on the task that creates that file
172
+
173
+ ### Step 5: Generate and Save the Playbook
174
+
175
+ Generate the playbook following the template at [templates/ticket-playbook.template.md](templates/ticket-playbook.template.md).
176
+
177
+ Save to the same directory as the ticket design:
178
+
179
+ ```
180
+ .tickets/{TICKET_ID}/ticket-playbook.md
181
+ ```
182
+
183
+ ### Step 6: Summary
184
+
185
+ Display the result:
186
+
187
+ ```
188
+ Ticket playbook created for ticket {TICKET_ID}.
189
+
190
+ Created:
191
+ - .tickets/{TICKET_ID}/ticket-playbook.md
192
+
193
+ Summary:
194
+ - Instructions used: [file path(s)]
195
+ - Total implementation tasks: {count}
196
+ - Existing components reused: {count}
197
+ - New components to create: {count}
198
+ ```
199
+
200
+ ## Guiding Principles
201
+
202
+ These explain the reasoning behind how the skill works — understanding them helps handle edge cases not explicitly covered above.
203
+
204
+ - **The playbook serves the coding agent** — every decision should make the coding agent's job easier. The coding agent reads the playbook and executes tasks sequentially. It shouldn't need to search the codebase itself, make architectural decisions, or guess file paths. If the coding agent needs to figure something out on its own, the playbook failed to communicate it.
205
+
206
+ - **Leverage the ticket design's work** — the ticket design already searched for Page Objects, elements, and actions. Don't redo that search from scratch. Instead, build on it: read the referenced files to understand their full API, then search for the additional things the design didn't cover (utilities, fixtures, data patterns, reference patterns for new components).
207
+
208
+ - **Explain the "what" and "how" in Guidance** — vague guidance like "implement the test" creates ambiguity. Specific guidance like "Create a test that navigates to the login page, fills credentials using `LoginPage.fillCredentials()`, submits the form, and verifies the dashboard loads using `DashboardPage.isLoaded()`" gives the coding agent a clear implementation path. Reference the instruction file conventions when relevant.
209
+
210
+ - **Reference patterns are concrete pointers** — "see `pages/login.page.ts`" is not a reference pattern. "`LoginPage.fillUsername()` in `pages/login.page.ts:42` — follow this pattern for the method signature, element access, and wait strategy" is a reference pattern. The coding agent should be able to open the file, find the exact code, and replicate the pattern.
211
+
212
+ - **Prioritize reuse because it saves time and ensures consistency** — every existing method the playbook references is one fewer method the coding agent has to write, test, and debug. It also means the new code follows established patterns automatically. When in doubt, search one more time before concluding something needs to be built from scratch.
213
+
214
+ - **Keep analysis internal** — the user sees only the final playbook and summary. Search results, catalogs, and planning tables are working artifacts that would clutter the output without adding value.
215
+
216
+ - **Handle missing instructions gracefully** — if instruction files don't exist, the playbook can still be generated. The coding agent should then infer conventions from the reference patterns provided in each task. Note the gap so the user knows.
217
+
218
+ - **File creation failure** — report the error and ask how to proceed.
@@ -0,0 +1,23 @@
1
+ {
2
+ "skill_name": "web-auto-ticket-playbook",
3
+ "evals": [
4
+ {
5
+ "id": 1,
6
+ "prompt": "Create a playbook for ticket fe-3000",
7
+ "expected_output": "A ticket-playbook.md with Pre-Implementation Analysis, Component Mapping, and Implementation Checklist with properly ordered tasks, dependencies, guidance, selectors, and reference patterns",
8
+ "files": [".tickets/fe-3000/ticket-design.md"]
9
+ },
10
+ {
11
+ "id": 2,
12
+ "prompt": "I've got the design ready for fe-3001, now plan out the implementation tasks",
13
+ "expected_output": "Skill triggers on casual phrasing and produces a well-structured playbook with tasks categorized by type (data, API, Page Objects, tests) and valid dependency graph",
14
+ "files": [".tickets/fe-3001/ticket-design.md"]
15
+ },
16
+ {
17
+ "id": 3,
18
+ "prompt": "Generate implementation plan for ticket XYZ-999",
19
+ "expected_output": "Error message indicating ticket-design.md not found, suggesting to run web-auto-ticket-design skill first",
20
+ "files": []
21
+ }
22
+ ]
23
+ }
@@ -0,0 +1,148 @@
1
+ # Ticket Playbook Template
2
+
3
+ Use this template as the output structure for `ticket-playbook.md`.
4
+
5
+ ## Output Structure
6
+
7
+ ```markdown
8
+ # Ticket Playbook
9
+
10
+ ## Ticket Information
11
+ - Ticket ID: [ticket-id]
12
+ - Feature: [main-feature - child-feature]
13
+
14
+ ## Pre-Implementation Analysis
15
+
16
+ ### Instructions Used
17
+ - Project Blueprint: [path or "Not available"]
18
+ - Coding Instructions: [path or "Not available"]
19
+ - Best Practices: [path or "Not available"]
20
+
21
+ ### Component Mapping
22
+
23
+ #### Existing Components (Reusable)
24
+ | # | Component | Type | Path | Key Methods/Elements |
25
+ |---|-----------|------|------|----------------------|
26
+ | 1 | [Name] | Page Object / Utility / Fixture / API Helper | [path] | [methods and elements the coding agent will use] |
27
+
28
+ #### New Components (To Create)
29
+ | # | Component | Type | Planned Path | Purpose | Reference |
30
+ |---|-----------|------|--------------|---------|-----------|
31
+ | 1 | [Name] | Page Object / Utility / Fixture / API Helper | [path following naming conventions] | [what it provides] | [existing file to use as model] |
32
+
33
+ ---
34
+
35
+ ## Implementation Checklist
36
+
37
+ ### [Category Name]
38
+
39
+ #### Task [N]: [Descriptive Task Title]
40
+ - **Dependencies**: [Task numbers or "None"]
41
+ - **Guidance**: [Specific, actionable instructions — what to do and how, referencing conventions]
42
+ - **File(s) to Modify**: [exact file path(s) — existing or planned]
43
+ - **Key Selector(s)**: [selectors from ticket-design, or "N/A" for non-UI tasks]
44
+ - **Reference Pattern**: [file:line — specific method/class to replicate]
45
+
46
+ #### Task [N+1]: [Descriptive Task Title]
47
+ ...
48
+ ```
49
+
50
+ ## Category Ordering
51
+
52
+ Tasks are organized into categories. This ordering also defines the dependency flow — earlier categories complete before later ones:
53
+
54
+ | Order | Category | What Goes Here |
55
+ |-------|----------|----------------|
56
+ | 1 | Test Data & Fixtures | New fixture files, test data constants, environment setup |
57
+ | 2 | API Helpers | New API client methods for CRUD operations |
58
+ | 3 | Page Object Updates | New methods or elements added to existing Page Objects |
59
+ | 4 | New Page Objects | Brand new Page Object classes |
60
+ | 5 | Test Scripts | The actual test specification files |
61
+
62
+ Not all categories will be present in every playbook — include only the categories that have tasks.
63
+
64
+ ## Field Descriptions
65
+
66
+ | Field | Good Example | Bad Example | Why |
67
+ |-------|-------------|-------------|-----|
68
+ | **Dependencies** | `Task 1, Task 3` or `None` | `Page Object task` | Must reference specific task numbers so the coding agent knows the exact order |
69
+ | **Guidance** | `Add a clickSubmitButton() method to LoginPage that clicks the submit button and waits for navigation. Follow the async action method pattern — see Reference Pattern. Use the selector from Key Selector(s).` | `Implement the page object` | The coding agent shouldn't have to figure out what "implement" means. Be specific about the method name, behavior, and pattern to follow |
70
+ | **File(s) to Modify** | `tests/pages/login.page.ts` | `the login page object` | Must be an exact file path the coding agent can open |
71
+ | **Key Selector(s)** | `[data-testid="submit-btn"]` or `N/A` | `the submit button` | Must be the actual selector string from ticket-design, or N/A for non-UI tasks (API helpers, fixtures) |
72
+ | **Reference Pattern** | `LoginPage.fillUsername() in tests/pages/login.page.ts — follow the method signature, element access via this.page.getByTestId(), and await pattern` | `see LoginPage` | Must point to a specific method/class with enough detail that the coding agent knows exactly what to replicate |
73
+
74
+ ## Dependency Rules
75
+
76
+ 1. Test Data & Fixture tasks have no dependencies (they come first)
77
+ 2. API Helper tasks may depend on fixture tasks (if they use test data)
78
+ 3. Page Object tasks may depend on fixture or API tasks (if methods need imported types)
79
+ 4. Test Script tasks depend on the Page Object and fixture tasks they import from
80
+ 5. All dependencies must reference valid task numbers — no circular references
81
+ 6. Every task that imports from a file created by another task must list that task as a dependency
82
+
83
+ ## Example
84
+
85
+ A complete playbook for a login feature ticket:
86
+
87
+ ```markdown
88
+ # Ticket Playbook
89
+
90
+ ## Ticket Information
91
+ - Ticket ID: fe-2026
92
+ - Feature: Authentication - Login
93
+
94
+ ## Pre-Implementation Analysis
95
+
96
+ ### Instructions Used
97
+ - Project Blueprint: .documents-design/web-auto-project-blueprint.md
98
+ - Coding Instructions: .documents-design/web-auto-instructions.md
99
+ - Best Practices: .documents-design/web-auto-best-practices.md
100
+
101
+ ### Component Mapping
102
+
103
+ #### Existing Components (Reusable)
104
+ | # | Component | Type | Path | Key Methods/Elements |
105
+ |---|-----------|------|------|----------------------|
106
+ | 1 | LoginPage | Page Object | tests/pages/login.page.ts | goto(), fillUsername(), fillPassword(), usernameInput, passwordInput |
107
+ | 2 | DashboardPage | Page Object | tests/pages/dashboard.page.ts | isLoaded(), welcomeMessage |
108
+ | 3 | UserApi | API Helper | tests/api/user.api.ts | create(), delete() |
109
+ | 4 | test-helpers | Utility | tests/utils/test-helpers.ts | generateEmail(), waitForNavigation() |
110
+
111
+ #### New Components (To Create)
112
+ | # | Component | Type | Planned Path | Purpose | Reference |
113
+ |---|-----------|------|--------------|---------|-----------|
114
+ | 1 | LoginPage.clickSubmitButton() | Page Object Method | tests/pages/login.page.ts | Click submit and wait for navigation | LoginPage.fillUsername() |
115
+ | 2 | LoginPage.errorMessage | Page Object Element | tests/pages/login.page.ts | Error message element for validation tests | LoginPage.usernameInput |
116
+ | 3 | login.spec.ts | Test Script | tests/specs/auth/login.spec.ts | Test cases TC042, TC043 | tests/specs/auth/register.spec.ts |
117
+
118
+ ---
119
+
120
+ ## Implementation Checklist
121
+
122
+ ### Page Object Updates
123
+
124
+ #### Task 1: Add submit button and error message to LoginPage
125
+ - **Dependencies**: None
126
+ - **Guidance**: Add two new members to LoginPage: (1) a `clickSubmitButton()` async method that clicks `[data-testid="login-submit"]` and waits for navigation using `this.page.waitForURL('**/dashboard')`, and (2) an `errorMessage` getter that returns `this.page.getByTestId('login-error')`. Follow the existing element getter pattern in LoginPage for the getter, and the async action pattern from `fillUsername()` for the method.
127
+ - **File(s) to Modify**: tests/pages/login.page.ts
128
+ - **Key Selector(s)**: `[data-testid="login-submit"]`, `[data-testid="login-error"]`
129
+ - **Reference Pattern**: `LoginPage.fillUsername()` in tests/pages/login.page.ts — follow the method signature (`async fillUsername(value: string)`), element access via `this.page.getByTestId()`, and await pattern
130
+
131
+ ### Test Scripts
132
+
133
+ #### Task 2: Create login test spec
134
+ - **Dependencies**: Task 1
135
+ - **Guidance**: Create the login test spec with two test cases. TC042: Navigate to login (LoginPage.goto()), fill credentials (fillUsername + fillPassword), click submit (clickSubmitButton), verify dashboard loads (DashboardPage.isLoaded()). TC043: Navigate to login, fill invalid credentials, click submit, verify error message is visible (LoginPage.errorMessage). Use `test.describe` for the suite, `test.beforeEach` for shared navigation, and the UserApi for test data setup in `test.beforeAll`. Follow the test structure pattern from the Reference Pattern.
136
+ - **File(s) to Modify**: tests/specs/auth/login.spec.ts (new file)
137
+ - **Key Selector(s)**: N/A (selectors are encapsulated in Page Objects)
138
+ - **Reference Pattern**: `tests/specs/auth/register.spec.ts` — follow the test structure (describe block, beforeAll/beforeEach hooks, test cases, assertion patterns)
139
+ ```
140
+
141
+ **What this example shows:**
142
+ - Ticket Information and Instructions Used provide context
143
+ - Component Mapping shows what exists and what's new, with references for new items
144
+ - Tasks are ordered by category (Page Object Updates before Test Scripts)
145
+ - Task 2 depends on Task 1 (test script imports from updated Page Object)
146
+ - Guidance is specific and actionable — names exact methods, explains behavior, references patterns
147
+ - Reference Pattern points to a specific method/file with what to replicate
148
+ - Key Selectors come from ticket-design; test scripts use N/A since selectors are in Page Objects
@@ -0,0 +1,156 @@
1
+ ---
2
+ name: web-auto-update-source-instructions
3
+ description: Update project source instruction files based on lessons learned from a completed ticket. Reads lessons-learned.md for a given ticket, extracts recommendations grouped by target document (Project Blueprint, Coding Instructions, Best Practices), deduplicates against existing content, resolves conflicts, then applies updates only to the source instructions that have new, non-redundant recommendations. ALWAYS use this skill when asked to update source instructions from lessons learned, apply lessons to project standards, improve source instruction files after a ticket, feed lessons back into project docs, close the feedback loop for a ticket, or propagate ticket learnings. Triggers on requests like "update source instructions for TKT-001", "apply lessons learned from ABC-123", "update best practices from ticket fe-2026", "feed back lessons from ticket X", "close the loop on ticket Y".
4
+ ---
5
+
6
+ # Web Automation Update Source Instructions
7
+
8
+ Every completed ticket produces lessons — gaps in the documentation that caused confusion, missing patterns that led to errors, anti-patterns that weren't explicitly warned against. This skill closes the feedback loop by taking those lessons and writing them back into the project's source instruction files, so the next ticket benefits from what was learned.
9
+
10
+ Without this step, the same mistakes recur: a wrong selector strategy gets re-used because the best practices file never captured the fix, an ambiguous instruction stays ambiguous because nobody updated it, a missing code example stays missing because the lesson was extracted but never applied.
11
+
12
+ ## Input
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 before proceeding.
19
+
20
+ ## Workflow
21
+
22
+ ### Step 1: Read the Lessons Learned Document
23
+
24
+ Read the lessons file at:
25
+
26
+ ```
27
+ .tickets/{TICKET_ID}/lessons-learned.md
28
+ ```
29
+
30
+ If not found, inform the user and stop — without the lessons file there is nothing to apply:
31
+
32
+ ```
33
+ lessons-learned.md not found for ticket {TICKET_ID}.
34
+ Run the web-auto-extract-lessons-learned skill first to create it.
35
+ ```
36
+
37
+ Extract all recommendations from **Section 4 (Recommendations)**. The document uses three priority tables:
38
+
39
+ - **High Priority** — columns: `#`, `Target Document`, `Instruction Gap / Issue`, `Problem`, `Impact`, `Recommended Action`
40
+ - **Medium Priority** — columns: `#`, `Target Document`, `Recommendation`
41
+ - **Examples Needed** — columns: `#`, `Target Document`, `Topic`, `What Example Would Help`
42
+
43
+ Each row's `Target Document` value will be one of: `Project Blueprint`, `Coding Instructions`, or `Best Practices`.
44
+
45
+ ### Step 2: Group and Filter Recommendations
46
+
47
+ Organize recommendations into three groups by their target document:
48
+
49
+ | Group | Target Document Value | Source Instruction File |
50
+ |-------|-----------------------|------------------------|
51
+ | Project Blueprint | `Project Blueprint` | `.documents-design/web-auto-project-blueprint.md` |
52
+ | Coding Instructions | `Coding Instructions` | `.documents-design/web-auto-instructions.md` |
53
+ | Best Practices | `Best Practices` | `.documents-design/web-auto-best-practices.md` |
54
+
55
+ Skip empty groups — only proceed with groups that have at least one recommendation.
56
+
57
+ If no recommendations exist in any group:
58
+
59
+ ```
60
+ No actionable recommendations found in lessons-learned.md for ticket {TICKET_ID}.
61
+ No source instruction files need updating.
62
+ ```
63
+
64
+ ### Step 3: Read Target Files and Deduplicate
65
+
66
+ For each non-empty group, locate and read the corresponding source instruction file.
67
+
68
+ If a target file is not found:
69
+ - Report it: `Warning: {Document} not found at {path}. Skipping updates for this document.`
70
+ - Skip that group and continue with the others.
71
+
72
+ **Deduplication is the most important quality gate in this step.** Source instruction files grow with every ticket. If recommendations are applied without checking for existing coverage, these files become bloated with repetitive or contradictory entries — which actually makes future implementations worse.
73
+
74
+ For each recommendation, check the current file content:
75
+
76
+ | Check | Action |
77
+ |-------|--------|
78
+ | **Already covered** — the same guidance exists, even in different wording | Drop the recommendation. It adds no value. |
79
+ | **Partially covered** — related guidance exists but misses the specific detail | Reframe as a **clarification** to the existing entry rather than a new addition. |
80
+ | **Contradicts existing content** — the recommendation conflicts with something already documented | Flag it for the user instead of applying it silently. Present both the existing content and the recommendation, and ask which is correct. |
81
+ | **Genuinely new** — nothing in the file addresses this topic | Keep it for application. |
82
+
83
+ After deduplication, if a group has no remaining recommendations, skip it.
84
+
85
+ ### Step 4: Apply Updates
86
+
87
+ For each target file with surviving recommendations, apply updates following the document-specific rules below. The general principles apply to all three:
88
+
89
+ - **Add, don't replace** — append new content to the relevant section. Never delete or rewrite existing entries.
90
+ - **Match the file's voice** — follow the existing formatting, heading levels, table structures, and tone. If the file uses terse one-liners, don't add paragraphs.
91
+ - **Place content near related entries** — new items should sit next to existing items on the same topic, not appended to the bottom of the file.
92
+ - **Keep it concise** — each addition should be the minimum needed to close the gap. One precise sentence or table row beats a paragraph of explanation.
93
+
94
+ #### 4a — Updating `web-auto-project-blueprint.md`
95
+
96
+ This file documents the project's architecture — tech stack, directory structure, naming conventions, selector strategy, and test execution commands. It is organized into sections with tables and bullet lists.
97
+
98
+ | Recommendation Type | How to Apply |
99
+ |--------------------|--------------|
100
+ | **High Priority** | Add missing patterns, naming conventions, or structural details to the relevant section. If no section fits, add a brief new subsection under the closest parent heading. |
101
+ | **Medium Priority** | Add a clarification or note to the relevant section — typically a new bullet point or table row. |
102
+ | **Examples Needed** | Add a short code snippet or file path example inline within the relevant section, using a fenced code block. |
103
+
104
+ #### 4b — Updating `web-auto-instructions.md`
105
+
106
+ This file contains copy-paste-ready code patterns organized into sections: Page Object Patterns, Test Structure & Patterns, Test Data Management, API & Backend Helpers, Common Workflow Patterns, and Implementation Checklist.
107
+
108
+ | Recommendation Type | How to Apply |
109
+ |--------------------|--------------|
110
+ | **High Priority** | Add a new pattern block to the relevant section — include both the code example and a one-line description of when to use it. Follow the existing pattern block format in the file. |
111
+ | **Medium Priority** | Add a note, caveat, or variation to an existing pattern block, or add a new checklist item to the Implementation Checklist section. |
112
+ | **Examples Needed** | Add a new named code example to the relevant section, using the same heading level and fenced code block style as neighboring examples. |
113
+
114
+ #### 4c — Updating `web-auto-best-practices.md`
115
+
116
+ This file has three sections: a **Do's** table (`| Practice | Reason |`), a **Don'ts** table (`| Anti-Pattern | Why to Avoid |`), and a **Code Examples** section with named subsections and code blocks.
117
+
118
+ | Recommendation Type | How to Apply |
119
+ |--------------------|--------------|
120
+ | **High Priority / Medium Priority** | Classify the recommendation as a Do or Don't, then add a new row to the appropriate table. Use one concise sentence per cell. Inline code snippets in cells are fine using backticks. |
121
+ | **Examples Needed** | Add a new named subsection under `## Code Examples` with a descriptive heading and a fenced code block. |
122
+
123
+ #### 4d — Verify Each File
124
+
125
+ After editing each file:
126
+ - Confirm no existing content was accidentally removed or altered
127
+ - Check that markdown formatting is intact (table alignment, heading levels, code fences)
128
+ - Verify new entries read naturally alongside existing content
129
+
130
+ ### Step 5: Summary
131
+
132
+ ```
133
+ Source instructions updated from lessons learned for ticket {TICKET_ID}.
134
+
135
+ Source:
136
+ - .tickets/{TICKET_ID}/lessons-learned.md
137
+
138
+ Updated Files:
139
+ - {path} — {count} updates applied ({X} high, {Y} medium, {Z} examples)
140
+ - {path} — {count} updates applied ({X} high, {Y} medium, {Z} examples)
141
+
142
+ Skipped:
143
+ - {Document Name} — {reason: no recommendations / file not found / all deduplicated}
144
+
145
+ Duplicates Filtered: {count}
146
+ Conflicts Flagged: {count}
147
+ ```
148
+
149
+ ## Key Principles
150
+
151
+ - **Deduplication is mandatory** — check before adding. The single most common failure mode is bloating source files with redundant entries.
152
+ - **Conflicts require human input** — never silently override existing content with a contradictory recommendation. Surface both versions and ask.
153
+ - **Smallest effective change** — two precise additions beat ten vague ones. If a recommendation is too general to act on ("improve selector strategy"), drop it — it won't help the next implementer.
154
+ - **Preserve existing content** — never delete, rewrite, or reorganize existing source instruction content.
155
+ - **Skip missing files** — report the gap but continue with other files.
156
+ - **Lessons file missing** — inform the user to run extract-lessons-learned first, then stop.
@@ -0,0 +1,22 @@
1
+ {
2
+ "skill_name": "web-auto-update-source-instructions",
3
+ "evals": [
4
+ {
5
+ "id": 1,
6
+ "prompt": "I just finished the lessons learned extraction for ticket fe-3050. The lessons-learned.md has 2 high-priority recommendations for Best Practices (one about using data-testid selectors instead of CSS classes, and one about adding explicit waits before assertions), 1 medium-priority for Coding Instructions (add a pattern for handling modal dialogs), and 1 example needed for Project Blueprint (directory structure for shared fixtures). The best practices file already has a row about preferring data-testid selectors. Update the source instructions.",
7
+ "expected_output": "Should deduplicate the data-testid recommendation (already exists in best practices), apply the remaining 3 recommendations to the correct files, add <!-- From ticket fe-3050 --> attribution comments, and report 1 duplicate filtered in the summary.",
8
+ "files": []
9
+ },
10
+ {
11
+ "id": 2,
12
+ "prompt": "Update source instructions for ticket ABC-789. The lessons learned recommend adding 'Never use page.waitForTimeout() for synchronization' as a best practice, but the existing best practices file already says 'Avoid hardcoded timeouts — use waitForSelector or waitForLoadState instead' in the Don'ts table. Also there's a high-priority recommendation for Coding Instructions that says 'Always use baseURL from config' but the instructions file currently says 'Construct full URLs in each test file'. Handle these conflicts and updates.",
13
+ "expected_output": "Should detect the waitForTimeout recommendation as partially covered (clarification to existing entry), flag the baseURL conflict (contradicts existing content about constructing full URLs) and ask the user which is correct instead of silently applying it.",
14
+ "files": []
15
+ },
16
+ {
17
+ "id": 3,
18
+ "prompt": "Apply lessons learned from ticket fe-2099 to the source instructions. The lessons-learned.md has recommendations targeting all three documents — project blueprint needs a new section on API mock configuration, coding instructions needs two new pattern blocks for intercepting network requests and for handling file uploads, and best practices needs both a new Do (verify API response status before asserting UI changes) and a new Don't (don't assert on auto-generated IDs). None of these exist in the current files.",
19
+ "expected_output": "Should apply all recommendations across all three files with proper formatting per document type, add attribution comments, and produce a summary showing updates to all three files with zero duplicates filtered."
20
+ }
21
+ ]
22
+ }