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,103 @@
1
+ # Frontend Code Review Checklist
2
+
3
+ Use this checklist when reviewing Web Frontend code (React, Vue, Angular, Svelte, HTML/CSS).
4
+
5
+ > **Severity guide**: Each item is tagged with a default severity. Adjust based on context — a missing error boundary in a settings page is a warning, but in a payment flow it's critical.
6
+ > - ❌ = Critical (blocks PR)
7
+ > - ⚠️ = Warning (should fix)
8
+ > - 💡 = Suggestion (nice to have)
9
+
10
+ ## 🛡️ Security (review first)
11
+ - ❌ **XSS Prevention**: Is `dangerouslySetInnerHTML` avoided or input sanitized? Unsanitized user content renders directly into the DOM.
12
+ - ❌ **Sensitive Data Exposure**: Are tokens/passwords stored securely? (not in localStorage for auth tokens — use httpOnly cookies or secure session management)
13
+ - ⚠️ **CSRF Protection**: Are CSRF tokens included in state-changing forms?
14
+ - ⚠️ **Cookie Flags**: Are cookies set with `Secure`, `HttpOnly`, and `SameSite` flags?
15
+ - ⚠️ **Third-Party Scripts**: Are CDN scripts verified with Subresource Integrity (SRI)?
16
+ - 💡 **Content Security Policy**: Is CSP configured to limit script sources?
17
+
18
+ ## 🚨 Error Handling
19
+ - ❌ **Error Boundaries**: Are error boundaries in place to catch component crashes? An uncaught error in a child component can take down the entire app.
20
+ - ⚠️ **Fallback UI**: Is there graceful fallback for error states?
21
+ - ⚠️ **Network Errors**: Are API failures handled with user-facing feedback and retry/fallback?
22
+ - ⚠️ **Form Validation**: Are validation errors clearly displayed near the relevant fields?
23
+ - 💡 **Error Messages**: Are messages user-friendly (not raw error objects or stack traces)?
24
+
25
+ ## 🧩 Component Architecture
26
+ - ⚠️ **Component Size**: Are components too large (>200 lines)? Should they be split?
27
+ - ⚠️ **Single Responsibility**: Does each component do one thing well?
28
+ - ⚠️ **Prop Drilling**: Are props passed through many levels? (Consider context/state management)
29
+ - 💡 **Reusability**: Are common patterns extracted to shared components?
30
+
31
+ ## 🗄️ State Management
32
+ - ❌ **Effect Cleanups**: Do `useEffect` hooks clean up listeners/timers/subscriptions? Missing cleanups cause memory leaks and stale state bugs.
33
+ - ⚠️ **State Location**: Is state at the right level (not too high, not too low)?
34
+ - ⚠️ **Derived State**: Is redundant state avoided (computed from existing state)?
35
+ - ⚠️ **State Updates**: Are state updates immutable?
36
+ - 💡 **Global State**: Is global state (Redux/Zustand/Context) used only when needed?
37
+
38
+ ## ⚡ Performance & Rendering
39
+ - ⚠️ **Re-renders**: Are components re-rendering unnecessarily? (Check `useCallback`/`useMemo` in React, `computed` in Vue)
40
+ - ⚠️ **Bundle Size**: Are large libraries imported efficiently? (`import map from 'lodash/map'` vs `import _ from 'lodash'`)
41
+ - ⚠️ **Race Conditions**: Are stale requests cancelled (AbortController) to prevent rendering outdated data?
42
+ - 💡 **Image Optimization**: Are images lazy-loaded with explicit dimensions (prevent CLS)?
43
+ - 💡 **List Virtualization**: Are long lists (>100 items) virtualized?
44
+ - 💡 **Code Splitting**: Are routes and large components code-split?
45
+ - 💡 **Memoization**: Are expensive computations memoized?
46
+
47
+ ## ⏳ Loading & Async States
48
+ - ⚠️ **Loading Indicators**: Are loading states shown for async operations?
49
+ - ⚠️ **Optimistic Updates**: Are UI updates optimistic where appropriate?
50
+ - 💡 **Skeleton Screens**: Are skeleton loaders used instead of spinners for better UX?
51
+ - 💡 **Suspense / Streaming**: Is React Suspense, Vue async components, or framework streaming used appropriately?
52
+
53
+ ## 📝 Forms & User Input
54
+ - ⚠️ **Controlled Components**: Are form inputs properly controlled?
55
+ - ⚠️ **Validation**: Is client-side validation implemented for required fields and formats?
56
+ - ⚠️ **Submit Protection**: Are submit buttons disabled during API calls to prevent double submission?
57
+ - 💡 **Debouncing**: Are expensive operations (search, API calls) debounced/throttled?
58
+ - 💡 **Success Feedback**: Is user notified of successful actions?
59
+
60
+ ## 🔄 Data & API Integration
61
+ - ⚠️ **Error States**: Are API errors caught and displayed to user?
62
+ - ⚠️ **Request Cancellation**: Are pending requests cancelled on unmount?
63
+ - 💡 **Caching**: Are API responses cached (React Query, SWR, Apollo) to avoid redundant requests?
64
+ - 💡 **Retry Logic**: Are failed requests retried with backoff?
65
+
66
+ ## 📱 Responsiveness & CSS
67
+ - ⚠️ **Mobile Support**: Does the layout work on small screens (320px+)?
68
+ - ⚠️ **Design Tokens**: Are CSS variables/design tokens used instead of hardcoded values?
69
+ - 💡 **Touch Targets**: Are interactive elements at least 44x44px?
70
+ - 💡 **Animations**: Are animations performant (use `transform`/`opacity`, avoid layout thrashing)?
71
+ - 💡 **Dark Mode**: Is dark mode support considered?
72
+
73
+ ## ♿ Accessibility (a11y)
74
+ - ⚠️ **Semantic HTML**: Are proper elements used (`<button>`, `<nav>`, `<main>`, not `<div>` for everything)?
75
+ - ⚠️ **Alt Text**: Do all images have meaningful `alt` attributes?
76
+ - ⚠️ **Keyboard Navigation**: Are interactive elements reachable via Tab?
77
+ - ⚠️ **Focus Indicators**: Are focus styles visible (not `outline: none` without replacement)?
78
+ - 💡 **Color Contrast**: Does text meet WCAG contrast ratios (4.5:1 for normal text)?
79
+ - 💡 **ARIA Labels**: Are ARIA labels used where native semantics are insufficient?
80
+ - 💡 **Heading Hierarchy**: Are headings (h1-h6) used in logical order?
81
+
82
+ ## 🔒 Type Safety
83
+ - ⚠️ **TypeScript**: Are types defined for props, state, and functions?
84
+ - ⚠️ **Any Types**: Is `any` avoided? (use `unknown` or proper types)
85
+ - ⚠️ **Null Checks**: Are nullable values properly handled?
86
+ - 💡 **Type Inference**: Are types inferred where possible (avoid redundant annotations)?
87
+
88
+ ## 🧪 Testing & Quality
89
+ - ⚠️ **Unit Tests**: Are components tested for key behaviors?
90
+ - ⚠️ **Test IDs**: Are `data-testid` attributes added for E2E testing?
91
+ - 💡 **Accessibility Tests**: Are a11y rules tested (jest-axe, testing-library)?
92
+ - 💡 **Edge Cases**: Are loading/error states tested?
93
+
94
+ ## 🏗️ Code Quality
95
+ - ⚠️ **Console Logs**: Are debug `console.log` statements removed?
96
+ - ⚠️ **DRY Principle**: Is duplicated code refactored?
97
+ - 💡 **Magic Numbers**: Are hardcoded values extracted to constants?
98
+ - 💡 **Naming Conventions**: Are variables, functions, and components clearly named?
99
+
100
+ ## 🔍 SEO & Meta (if applicable)
101
+ - 💡 **Meta Tags**: Are title, description, and Open Graph tags set?
102
+ - 💡 **Semantic HTML**: Are heading tags used hierarchically?
103
+ - 💡 **Canonical URLs**: Are canonical tags set for duplicate content?
@@ -0,0 +1,108 @@
1
+ # Mobile Code Review Checklist
2
+
3
+ Use this checklist when reviewing iOS (Swift/SwiftUI) or Android (Kotlin/Jetpack Compose) code.
4
+
5
+ > **Severity guide**: Each item is tagged with a default severity. Adjust based on context — a missing loading indicator on a debug screen is a suggestion, but on a checkout flow it's a warning.
6
+ > - ❌ = Critical (blocks PR)
7
+ > - ⚠️ = Warning (should fix)
8
+ > - 💡 = Suggestion (nice to have)
9
+
10
+ ## 🔒 Security (review first)
11
+ - ❌ **No Hardcoded Secrets**: Are API keys, tokens, and credentials stored in config/env — not committed in source code?
12
+ - ❌ **Secure Storage**: Are sensitive credentials stored in Keychain (iOS) or Android Keystore — not SharedPreferences/UserDefaults?
13
+ - ❌ **Deep Link Validation**: Are deep link parameters validated and sanitized to prevent injection attacks?
14
+ - ⚠️ **Certificate Pinning**: Is SSL pinning implemented for sensitive API calls?
15
+ - ⚠️ **Biometric Auth**: Is biometric authentication implemented with proper fallback (passcode)?
16
+ - 💡 **Root/Jailbreak Detection**: Is rooted/jailbroken device detection implemented for sensitive flows?
17
+ - 💡 **Screenshot Protection**: Is sensitive data hidden when app enters background (recent apps view)?
18
+ - 💡 **Code Obfuscation**: Is ProGuard/R8 (Android) enabled for release builds?
19
+
20
+ ## 📱 Threading & Lifecycle
21
+ - ❌ **Main Thread Safety**: Is heavy work (DB, network, computation, image processing) off the UI thread? Main-thread blocking causes ANRs (Android) and UI freezes (iOS).
22
+ - ❌ **Lifecycle Cleanup**: Are observers, listeners, and subscriptions removed in `onDestroy`/`onDisappear`/`deinit`? Leaking these causes crashes and ghost updates.
23
+ - ⚠️ **Memory Management**: Are strong reference cycles avoided in closures/listeners? (Use `[weak self]` in Swift, `WeakReference` in Kotlin)
24
+ - ⚠️ **Configuration Changes**: Are configuration changes (rotation, dark mode, locale) handled without data loss?
25
+ - ⚠️ **State Restoration**: Is state saved/restored correctly on process death?
26
+ - 💡 **Permissions**: Are runtime permissions requested at appropriate times with clear explanation?
27
+
28
+ ## 🌐 Networking
29
+ - ⚠️ **Timeout Configuration**: Are network requests configured with explicit timeouts?
30
+ - ⚠️ **Error Handling**: Are network errors handled gracefully with user-friendly messages?
31
+ - ⚠️ **Offline Mode**: Does the app handle "No Internet" states without crashing?
32
+ - ⚠️ **Request Cancellation**: Are pending requests cancelled when leaving the screen?
33
+ - 💡 **Retry Logic**: Are failed requests retried with exponential backoff?
34
+ - 💡 **Response Validation**: Are API responses validated before use (null checks, type validation)?
35
+ - 💡 **Network Reachability**: Is network status checked before making API calls?
36
+
37
+ ## 💾 Memory & Resources
38
+ - ❌ **Memory Leaks**: Are retain cycles (iOS closures) and context leaks (Android activities in singletons) avoided?
39
+ - ⚠️ **Image Handling**: Are bitmaps scaled/compressed before loading into memory? Full-resolution images in lists cause OOM.
40
+ - ⚠️ **Image Caching**: Are images cached appropriately (Glide/Coil for Android, SDWebImage/Kingfisher for iOS)?
41
+ - 💡 **Resource Files**: Are strings, colors, and dimensions in resource files (not hardcoded)?
42
+ - 💡 **Memory Warnings**: Are memory warnings handled (iOS `didReceiveMemoryWarning`)?
43
+
44
+ ## ⚡ Performance
45
+ - ⚠️ **List Recycling**: Are RecyclerView (Android) / LazyColumn (Compose) / List (SwiftUI) used for scrollable lists?
46
+ - ⚠️ **Lazy Loading**: Are heavy resources loaded only when needed?
47
+ - 💡 **App Launch Time**: Is cold start optimized? (Defer non-essential initialization)
48
+ - 💡 **Smooth Animations**: Are animations smooth (avoid layout passes during animation)?
49
+ - 💡 **Background Work**: Is WorkManager (Android) or BGTaskScheduler (iOS) used for background tasks?
50
+ - 💡 **App Size**: Are unused resources and large assets optimized?
51
+
52
+ ## 🧭 Navigation & Architecture
53
+ - ⚠️ **Navigation Patterns**: Is navigation consistent? (Navigation Component / Compose Navigation on Android, NavigationStack / Coordinator on iOS)
54
+ - ⚠️ **Back Stack**: Is back navigation handled properly without stack corruption?
55
+ - ⚠️ **Architecture Pattern**: Is MVVM / MVI followed consistently? Business logic should not live in Views.
56
+ - 💡 **Dependency Injection**: Are dependencies injected (Hilt/Koin for Android, manual DI or Swinject for iOS)?
57
+ - 💡 **Deep Linking**: Do deep links route to the correct screens?
58
+
59
+ ## 📱 UI/UX
60
+ - ⚠️ **Safe Areas**: Does content respect notches, dynamic islands, and status bars?
61
+ - ⚠️ **Loading States**: Are loading indicators shown for async operations?
62
+ - ⚠️ **Error States**: Are error messages user-friendly with retry options?
63
+ - ⚠️ **Keyboard Handling**: Does the keyboard not cover input fields? (Insets, scroll adjustment)
64
+ - 💡 **Touch Feedback**: Do interactive elements show visual feedback when pressed?
65
+ - 💡 **Empty States**: Are empty states designed with helpful messages?
66
+ - 💡 **Pull to Refresh**: Is pull-to-refresh implemented where appropriate?
67
+
68
+ ## ♿ Accessibility
69
+ - ⚠️ **Screen Reader**: Is content accessible to VoiceOver (iOS) / TalkBack (Android)?
70
+ - ⚠️ **Content Descriptions**: Do images/icons have content descriptions?
71
+ - ⚠️ **Touch Targets**: Are touch targets at least 44x44 points?
72
+ - 💡 **Font Scaling**: Does UI support dynamic font sizes?
73
+ - 💡 **Color Contrast**: Does text meet WCAG contrast requirements?
74
+
75
+ ## 🌍 Localization
76
+ - ⚠️ **Hardcoded Strings**: Are all user-facing strings in resource files (Localizable.strings / strings.xml)?
77
+ - 💡 **RTL Support**: Does layout support right-to-left languages?
78
+ - 💡 **Date/Number Formatting**: Are dates/numbers formatted for locale?
79
+ - 💡 **Plurals**: Are plural strings handled correctly?
80
+
81
+ ## 💾 Data Persistence
82
+ - ⚠️ **Database**: Is Room (Android) or Core Data / SwiftData (iOS) used correctly?
83
+ - ⚠️ **Migrations**: Are database migrations handled safely without data loss?
84
+ - 💡 **Cache Management**: Is cached data invalidated when stale?
85
+ - 💡 **Preferences**: Are SharedPreferences/UserDefaults used only for simple key-value data?
86
+
87
+ ## 🧪 Testing
88
+ - ⚠️ **Unit Tests**: Are business logic and ViewModels tested?
89
+ - 💡 **UI Tests**: Are critical user flows tested (Espresso/Compose Testing / XCUITest)?
90
+ - 💡 **Mock Data**: Are network calls mocked for testing?
91
+ - 💡 **Edge Cases**: Are error states and edge cases tested?
92
+
93
+ ## 📊 Analytics & Monitoring
94
+ - ⚠️ **Crash Reporting**: Is crash reporting configured (Firebase Crashlytics / Sentry)?
95
+ - 💡 **Analytics Events**: Are key user actions tracked?
96
+ - 💡 **Performance Monitoring**: Is app performance monitored (launch time, screen load)?
97
+ - 💡 **ANR Detection**: Are ANRs monitored (Android)?
98
+
99
+ ## 🏗️ Code Quality
100
+ - ⚠️ **Naming Conventions**: Are classes, functions, and variables clearly named per platform conventions?
101
+ - ⚠️ **DRY Principle**: Is duplicated code refactored?
102
+ - ⚠️ **Deprecated APIs**: Are deprecated APIs replaced with modern alternatives?
103
+ - 💡 **Magic Numbers**: Are hardcoded values extracted to constants?
104
+
105
+ ## 🛠️ Build & CI/CD
106
+ - ⚠️ **Signing**: Are signing configs secure (not committed to repo)?
107
+ - 💡 **Build Variants**: Are debug/release builds configured properly?
108
+ - 💡 **Version Code/Number**: Are version codes incremented?
@@ -0,0 +1,72 @@
1
+ # Self Review Report
2
+
3
+ **Branch**: `[CURRENT_BRANCH]` → `[TARGET_BRANCH]`
4
+ **Reviewed**: [DATE]
5
+ **Tech Stack**: [DETECTED_STACKS]
6
+
7
+ ## 🎯 Verdict: [VERDICT_STATUS]
8
+
9
+ [VERDICT_MESSAGE]
10
+
11
+ > [DIVERGENCE_WARNING — include only if target branch has new commits since this branch diverged]
12
+ > ⚠️ Target branch has X new commit(s) since this branch diverged. This review covers your branch's changes only and cannot detect conflicts with new code on [TARGET_BRANCH]. Consider rebasing before PR.
13
+
14
+ > [PRIORITIZED_REVIEW_NOTE — include only if diff exceeded 30 files or 2000 lines]
15
+ > ℹ️ Large diff (X files / Y lines). Review was prioritized: security-sensitive and high-change files reviewed in depth. Generated/config/lock files received lighter review.
16
+
17
+ ## Summary
18
+
19
+ | Metric | Count |
20
+ |--------|-------|
21
+ | Files Reviewed | [FILES_COUNT] |
22
+ | Critical Issues | [CRITICAL_COUNT] ❌ |
23
+ | Warnings | [WARNING_COUNT] ⚠️ |
24
+ | Suggestions | [SUGGESTION_COUNT] 💡 |
25
+ | Guidelines Loaded | [GUIDELINES_LIST or "Domain checklists only"] |
26
+
27
+ ## Files Reviewed
28
+
29
+ | File | Status | Lines Changed | Issues |
30
+ |------|--------|---------------|--------|
31
+ | `[FILE_PATH]` | [STATUS_ICON] | +[ADDED] / -[REMOVED] | [ISSUE_COUNT] |
32
+
33
+ ## ❌ Critical Issues (Must Fix)
34
+
35
+ > Bugs, security vulnerabilities, breaking changes, data loss risks.
36
+
37
+ | # | File | Line | Category | Issue | Recommendation |
38
+ |---|------|------|----------|-------|----------------|
39
+ | [ISSUE_ID] | `[FILE_PATH]` | [LINE_NUMBER] | [CATEGORY] | [ISSUE_DESCRIPTION] | [FIX_RECOMMENDATION] |
40
+
41
+ _No critical issues found._ <!-- Remove this line if issues exist -->
42
+
43
+ ## ⚠️ Warnings (Should Fix)
44
+
45
+ > Code quality, readability, maintainability, missing error handling.
46
+
47
+ | # | File | Line | Category | Issue | Recommendation |
48
+ |---|------|------|----------|-------|----------------|
49
+ | [ISSUE_ID] | `[FILE_PATH]` | [LINE_NUMBER] | [CATEGORY] | [ISSUE_DESCRIPTION] | [FIX_RECOMMENDATION] |
50
+
51
+ _No warnings found._ <!-- Remove this line if issues exist -->
52
+
53
+ ## 💡 Suggestions (Nice to Have)
54
+
55
+ > Patterns, optimizations, naming improvements.
56
+
57
+ | # | File | Line | Category | Issue | Recommendation |
58
+ |---|------|------|----------|-------|----------------|
59
+ | [ISSUE_ID] | `[FILE_PATH]` | [LINE_NUMBER] | [CATEGORY] | [ISSUE_DESCRIPTION] | [FIX_RECOMMENDATION] |
60
+
61
+ _No suggestions found._ <!-- Remove this line if issues exist -->
62
+
63
+ <!-- Include only if project-specific guidelines were loaded -->
64
+ ## 📐 Project Convention Issues
65
+
66
+ > Violations of project blueprint, instructions, or best practices. Category shows which document the rule comes from.
67
+
68
+ | # | File | Line | Source | Issue | Recommendation |
69
+ |---|------|------|--------|-------|----------------|
70
+ | [ISSUE_ID] | `[FILE_PATH]` | [LINE_NUMBER] | [Blueprint / Instructions / Best Practices] | [ISSUE_DESCRIPTION] | [FIX_RECOMMENDATION] |
71
+
72
+ _No project convention issues found._ <!-- Remove this line if issues exist -->
@@ -0,0 +1,156 @@
1
+ ---
2
+ name: update-feature-document
3
+ description: Update feature documentation after successfully implementing a ticket. Updates feature.md (behavior specifications) and delta.yaml (ticket history log) in .documents-design/features/[PARENT_FEATURE]/[CHILD_FEATURE]/. ALWAYS use this skill when a ticket is done and the feature docs need to reflect the work — even if the user doesn't say "feature document" explicitly. Triggers on requests like "update feature document for ticket TKT-001", "log ticket ABC-123 to feature", "update feature after implementing fe-2026", "record ticket completion for feature", "sync docs after finishing ticket X", "document what was done for ticket Y", "update docs for the completed ticket", "log the work from ticket Z", or any mention of recording/logging a finished ticket into feature documentation.
4
+ ---
5
+
6
+ # Update Feature Document
7
+
8
+ Feature documentation is the living record of what a feature does and how it got there. `feature.md` captures the behavioral specification (what users can do), while `delta.yaml` tracks the ticket-by-ticket history of how the feature was built. Keeping these in sync after each ticket matters because they serve as the source of truth for anyone — human or AI — who needs to understand the feature's current state, what's already covered, and what's left to build.
9
+
10
+ This skill walks through reading the ticket artifacts, deciding what changed at the behavior level, and updating both files accordingly.
11
+
12
+ ## Input
13
+
14
+ | Parameter | Type | Required | Description |
15
+ |-----------|------|----------|-------------|
16
+ | `TICKET_ID` | string | Yes | The ticket identifier (e.g., AUTO-2611, MM-19) |
17
+
18
+ If `TICKET_ID` is not provided, ask the user before proceeding.
19
+
20
+ ## Workflow
21
+
22
+ ### Step 1: Locate the Ticket
23
+
24
+ Look for the ticket directory at `.tickets/{TICKET_ID}/`.
25
+
26
+ If not found, inform the user and stop — without ticket artifacts there is nothing to extract:
27
+
28
+ ```
29
+ Ticket directory not found for {TICKET_ID}. Check that .tickets/{TICKET_ID}/ exists.
30
+ ```
31
+
32
+ ### Step 2: Gather Ticket Context
33
+
34
+ Read available ticket artifacts. Not every ticket has all of these — read whichever exist, in this priority order (higher-priority files tend to have more concise, already-synthesized information):
35
+
36
+ 1. `lessons-learned.md` — summary, outcome, issues fixed
37
+ 2. `issues-resolution-report.md` — run status, files modified
38
+ 3. `ticket-playbook.md` — implementation tasks
39
+ 4. `ticket-design.md` — test steps and behaviors covered
40
+ 5. `test-cases.md` — BDD scenarios and behavior IDs
41
+
42
+ #### 2a — Identify the Feature Path
43
+
44
+ The feature path (`PARENT_FEATURE` / `CHILD_FEATURE`) tells you where to find the feature documents under `.documents-design/features/`. Try these sources in order until you get a match:
45
+
46
+ 1. **`test-cases.md`** — look for the `Feature:` line (format: `Feature: {PARENT_FEATURE} - {CHILD_FEATURE}`)
47
+ 2. **`ticket-design.md`** — look for a feature reference in the header or "Feature" field
48
+ 3. **`ticket-playbook.md`** — may reference the feature path in the task descriptions
49
+
50
+ If none of these yield a parseable feature path, ask the user to provide it.
51
+
52
+ #### 2b — Extract Ticket Data
53
+
54
+ Pull these fields from whichever artifacts are available:
55
+
56
+ | Field | Where to look | Fallback |
57
+ |-------|---------------|----------|
58
+ | **Summary** (1-2 sentences) | `lessons-learned.md` summary, or `ticket-design.md` overview | Compose from available context |
59
+ | **Ticket type** (`automation` / `feature` / `bugfix` / `refactor`) | Infer from content — automation tickets create test specs, feature tickets add product capabilities | `automation` if unclear |
60
+ | **Behaviors covered** (IDs like COM-1, COM-2) | `test-cases.md` scenario tags, `ticket-design.md` behavior list | List scenario names if no IDs exist |
61
+ | **Behaviors affected** (indirectly impacted IDs) | `lessons-learned.md` side effects, `issues-resolution-report.md` modified files touching other behaviors | `[]` if none apparent |
62
+ | **Files created** | `issues-resolution-report.md`, `lessons-learned.md` | `[]` |
63
+ | **Files modified** | `issues-resolution-report.md`, `lessons-learned.md` | `[]` |
64
+ | **Test result** (`passed` / `failed` / `skipped`) | `issues-resolution-report.md` run status, `lessons-learned.md` outcome | `unknown` |
65
+ | **Notes** | Anything notable — workarounds, flaky selectors, environment quirks | `""` |
66
+
67
+ ### Step 3: Update feature.md
68
+
69
+ Read the current feature file:
70
+
71
+ ```
72
+ .documents-design/features/{PARENT_FEATURE}/{CHILD_FEATURE}/feature.md
73
+ ```
74
+
75
+ **If the file doesn't exist:** This is the first time the feature is being documented. Create the directory `.documents-design/features/{PARENT_FEATURE}/{CHILD_FEATURE}/` if it doesn't exist, then create `feature.md` using the structure from [templates/feature.template.md](templates/feature.template.md), filling in the user story and behaviors from the ticket data. Let the user know you created a new feature.md rather than updating an existing one.
76
+
77
+ **If the file exists:** Decide whether it needs changes. The key question is: *did this ticket reveal anything about the feature's behavior that the current document doesn't capture?*
78
+
79
+ Update when you see concrete signals:
80
+ - The ticket's BDD scenarios describe behaviors (Given/When/Then steps) not present in `feature.md`
81
+ - Implementation revealed additional validation rules, error states, or edge cases that belong in the spec
82
+ - Existing behavior descriptions are contradicted by what the ticket actually implemented (e.g., steps are in the wrong order, a condition was different from what was documented)
83
+
84
+ Leave `feature.md` unchanged when:
85
+ - The ticket purely automated existing behaviors that are already accurately described — adding automation coverage doesn't change the behavioral spec
86
+ - The changes are code-level (refactored a helper, renamed a variable) with no visible impact on what users can do
87
+
88
+ When updating, preserve the existing structure. Feature documents follow a User Story + Behavior Details pattern in BDD format. Add or modify only the sections affected by the ticket.
89
+
90
+ ### Step 4: Update delta.yaml
91
+
92
+ Read the current delta file:
93
+
94
+ ```
95
+ .documents-design/features/{PARENT_FEATURE}/{CHILD_FEATURE}/delta.yaml
96
+ ```
97
+
98
+ #### If the file is empty or doesn't exist
99
+
100
+ Create the directory `.documents-design/features/{PARENT_FEATURE}/{CHILD_FEATURE}/` if it doesn't already exist, then initialize the file with this structure:
101
+
102
+ ```yaml
103
+ feature: "{CHILD_FEATURE}"
104
+ parent: "{PARENT_FEATURE}"
105
+ status: in-progress
106
+ last_updated: "{TODAY_YYYY-MM-DD}"
107
+ tickets:
108
+ - id: "{TICKET_ID}"
109
+ completed_at: "{TODAY_YYYY-MM-DD}"
110
+ type: "{TYPE}"
111
+ summary: "{SUMMARY}"
112
+ test_result: "{TEST_RESULT}"
113
+ behaviors_covered:
114
+ - "{BEHAVIOR_ID}"
115
+ behaviors_affected: []
116
+ files_created:
117
+ - "{FILE_PATH}"
118
+ files_modified: []
119
+ notes: ""
120
+ ```
121
+
122
+ #### If the file already has content
123
+
124
+ Append the new ticket entry to the `tickets` list. Never remove or reorder existing entries — this is an append-only log.
125
+
126
+ #### Status Calculation
127
+
128
+ The `status` field reflects how much of the feature's behavioral spec is covered by completed tickets. To calculate it, collect all `behaviors_covered` IDs across every ticket entry in delta.yaml, then compare against the behavior IDs defined in `feature.md`.
129
+
130
+ | Status | Meaning | When to use |
131
+ |--------|---------|-------------|
132
+ | `draft` | Spec exists, no work done | `feature.md` has behaviors but delta.yaml has zero tickets |
133
+ | `in-progress` | Partially built | Some behavior IDs from `feature.md` appear in ticket `behaviors_covered`, but not all |
134
+ | `complete` | Fully covered | Every behavior ID in `feature.md` has at least one ticket claiming coverage |
135
+
136
+ **Example:** If `feature.md` defines behaviors COM-1, COM-2, COM-3, and the tickets in delta.yaml collectively cover COM-1 and COM-2, the status is `in-progress`. Once a ticket claiming COM-3 is added, it becomes `complete`.
137
+
138
+ If `feature.md` doesn't use explicit behavior IDs (some features may not), compare at the scenario level — match ticket test scenarios against documented behaviors by name/description.
139
+
140
+ Always set `last_updated` to today's date.
141
+
142
+ ### Step 5: Summary
143
+
144
+ Display the result:
145
+
146
+ ```
147
+ Feature document updated for ticket {TICKET_ID}.
148
+
149
+ Feature: {PARENT_FEATURE}/{CHILD_FEATURE}
150
+ feature.md: {Created / Updated / No changes needed}
151
+ delta.yaml: Ticket {TICKET_ID} logged
152
+
153
+ Behaviors covered: {list}
154
+ Test result: {passed/failed/skipped/unknown}
155
+ Feature status: {draft/in-progress/complete}
156
+ ```
@@ -0,0 +1,58 @@
1
+ # delta.yaml Structure
2
+
3
+ Use this template to initialize or extend `delta.yaml` in a feature directory.
4
+
5
+ ## Empty Feature (initialization)
6
+
7
+ ```yaml
8
+ feature: "{CHILD_FEATURE}"
9
+ parent: "{PARENT_FEATURE}"
10
+ status: draft # draft | in-progress | complete
11
+ last_updated: "{YYYY-MM-DD}"
12
+ tickets: []
13
+ ```
14
+
15
+ ## After Adding a Ticket
16
+
17
+ ```yaml
18
+ feature: "companies"
19
+ parent: "companies"
20
+ status: in-progress
21
+ last_updated: "2026-02-26"
22
+ tickets:
23
+ - id: "auto-2611"
24
+ completed_at: "2026-02-26"
25
+ type: automation # automation | feature | bugfix | refactor
26
+ summary: "Implemented search, filter, and sort for companies list"
27
+ test_result: passed # passed | failed | skipped
28
+ behaviors_covered:
29
+ - "COM-1"
30
+ - "COM-2"
31
+ behaviors_affected: []
32
+ files_created:
33
+ - "tests/companies/companies-search.spec.ts"
34
+ - "pages/companies/companies-list.page.ts"
35
+ files_modified:
36
+ - "data/companies/test-data.ts"
37
+ notes: "" # optional additional context
38
+ ```
39
+
40
+ ## Field Reference
41
+
42
+ | Field | Type | Description |
43
+ |-------|------|-------------|
44
+ | `feature` | string | Child feature name (directory name) |
45
+ | `parent` | string | Parent feature name (parent directory name) |
46
+ | `status` | enum | `draft` = no tickets done, `in-progress` = partial coverage, `complete` = all behaviors covered |
47
+ | `last_updated` | date | ISO date of last update |
48
+ | `tickets` | list | Chronological log of all completed tickets |
49
+ | `tickets[].id` | string | Ticket identifier |
50
+ | `tickets[].completed_at` | date | ISO date when ticket was completed |
51
+ | `tickets[].type` | enum | `automation` \| `feature` \| `bugfix` \| `refactor` |
52
+ | `tickets[].summary` | string | 1-2 sentence description of what was done |
53
+ | `tickets[].test_result` | enum | `passed` \| `failed` \| `skipped` |
54
+ | `tickets[].behaviors_covered` | list | Behavior IDs directly implemented |
55
+ | `tickets[].behaviors_affected` | list | Behavior IDs indirectly impacted |
56
+ | `tickets[].files_created` | list | Paths of new files created |
57
+ | `tickets[].files_modified` | list | Paths of modified files |
58
+ | `tickets[].notes` | string | Optional additional context |
@@ -0,0 +1,25 @@
1
+ # Feature: {CHILD_FEATURE}
2
+
3
+ > **Parent feature:** {PARENT_FEATURE}
4
+
5
+ ## User Story
6
+
7
+ As a [role],
8
+ I want to [action],
9
+ so that [benefit].
10
+
11
+ ## Behavior Details
12
+
13
+ ### {BEHAVIOR_ID_1}: {Behavior Title}
14
+
15
+ **Given** [precondition]
16
+ **And** [additional precondition if needed]
17
+ **When** [action taken]
18
+ **Then** [expected outcome]
19
+ **And** [additional expected outcome if needed]
20
+
21
+ ### {BEHAVIOR_ID_2}: {Behavior Title}
22
+
23
+ **Given** [precondition]
24
+ **When** [action taken]
25
+ **Then** [expected outcome]
@@ -0,0 +1,130 @@
1
+ ---
2
+ name: web-auto-assisted-fix-and-run
3
+ description: Apply a user-provided hint to a failing test and run it once. Receives the failure summary and user hint from the master agent, applies the guidance, and runs the test. Appends the result to the existing issues-resolution-report.md and emits a structured ASSISTED-RUN RESULT block. The master agent decides how many times to invoke this skill and tracks attempt counts. Use when the autonomous fix attempt has been exhausted and user expertise is needed. Triggers when invoked by the master agent after a FIX-AND-RUN RESULT: FAILED or ASSISTED-RUN RESULT: FAILED block. Also use when someone says "apply the user's hint to the failing test", "user-assisted fix for ticket X", "run the test with this hint", "try the user's suggestion for the failing test", or any variation of applying external guidance to a test failure — even if they don't explicitly say "assisted fix and run".
4
+ ---
5
+
6
+ # Web Automation User-Assisted Fix
7
+
8
+ Apply a user-provided hint to a failing test, run it once, and return a structured result. The master agent handles user interaction, attempt counting, retry logic, and pipeline routing — this skill focuses entirely on applying the hint, running the test, and reporting the outcome.
9
+
10
+ ## Why This Skill Exists
11
+
12
+ When `web-auto-fix-and-run-test` runs and the test fails, the autonomous pipeline has exhausted its ability to self-correct. The runtime error often involves something the model can't resolve alone — a selector that changed in the live app, an API contract mismatch, a test environment quirk, or a timing issue only a human recognizes. The user provides a hint rooted in their knowledge of the application, and this skill bridges that human insight into the codebase. Getting this right saves the user from having to make the code change themselves.
13
+
14
+ ## Input Parameters
15
+
16
+ | Parameter | Type | Required | Description |
17
+ |-----------|------|----------|-------------|
18
+ | `TICKET_ID` | string | Yes | The ticket identifier (e.g., TKT-001, ABC-123) |
19
+ | `FAILURE_SUMMARY` | block | Yes | The structured `FIX-AND-RUN RESULT: FAILED` or `ASSISTED-RUN RESULT: FAILED` block from the previous attempt |
20
+ | `USER_HINT` | string | Yes | The hint or fix guidance provided by the user, collected by the master agent before invoking |
21
+
22
+ **If `TICKET_ID` is not provided:** Ask the user for it before proceeding.
23
+ **If `FAILURE_SUMMARY` is missing:** Read `.tickets/{TICKET_ID}/issues-resolution-report.md` to reconstruct the last known error.
24
+ **If `USER_HINT` is missing:** Stop and report the missing input to the master agent. The master agent is responsible for collecting the hint from the user before invoking this skill — prompting the user directly would break the pipeline's communication flow.
25
+
26
+ ## Workflow
27
+
28
+ ### Step 1: Build Full Context
29
+
30
+ Before touching any code, build a complete picture of what happened, what was already tried, and what the user is suggesting. Skipping this leads to repeating failed fixes or misinterpreting the hint.
31
+
32
+ **1.1 — Parse the failure summary**
33
+
34
+ Extract from the `FAILURE_SUMMARY` block:
35
+ - **Error Type** — determines which resolution reference to consult
36
+ - **Location** (file:line) — where to focus the fix
37
+ - **Message** — the exact error text
38
+ - **Issues Fixed Before Run** — what was already changed
39
+ - **Likely Cause** (if present) — the previous agent's diagnosis
40
+
41
+ **1.2 — Read the fix history**
42
+
43
+ Read `.tickets/{TICKET_ID}/issues-resolution-report.md` and look for:
44
+ - **What fixes were already applied** — avoid re-applying the same change or a variation that already failed
45
+ - **The progression of errors** — did the error type change between attempts? A changing error type means the previous fix had partial effect; a repeating error means the fix didn't address the root cause
46
+ - **Patterns across attempts** — if multiple attempts targeted the same area, the root cause might be elsewhere
47
+
48
+ **1.3 — Read implementation context**
49
+
50
+ - Read `.tickets/{TICKET_ID}/ticket-playbook.md` to understand what the code implements, its dependencies, and the expected behavior
51
+ - Read `.tickets/{TICKET_ID}/issues.md` to get the **run command** from the "Notes for Fix-and-Run" section
52
+
53
+ ### Step 2: Interpret the User Hint
54
+
55
+ The user hint is the most valuable input in this skill. Invest time understanding it before writing any code. Users express hints in different ways:
56
+
57
+ | Hint Pattern | What They Mean | How to Act |
58
+ |-------------|----------------|------------|
59
+ | Specific code change ("change the selector to `#submit-btn`") | Direct instruction — apply it literally | Apply the exact change, then verify it's syntactically valid |
60
+ | Diagnosis without a fix ("the login modal takes 3 seconds to load") | They know the root cause but need you to translate it into code | Use the diagnosis to locate the right part of the code and apply an appropriate fix (e.g., add a wait, increase timeout) |
61
+ | Context that wasn't available ("the API endpoint changed to `/v2/users`") | New information the autonomous run didn't have | Update the relevant code with the new value and check for other references to the old value |
62
+ | Broad direction ("try a different selector approach") | They want you to choose a different strategy | Consult `references/resolve-selector.md` or `references/resolve-api-error.md` and try the next path in the cascade |
63
+ | Combination ("the button text changed to 'Sign In' and the form needs 2s to load") | Multiple changes needed | Apply all changes together before running, since each alone might not be sufficient |
64
+
65
+ If the hint conflicts with what the failure summary suggests, trust the user — they have context you don't (access to the running application, knowledge of recent changes, understanding of business logic).
66
+
67
+ ### Step 3: Apply the Fix
68
+
69
+ **3.1 — Make the code change**
70
+
71
+ - For selector errors (`LocatorError`, element `TimeoutError`): follow `references/resolve-selector.md`. Guessing selectors leads to cascading failures — one wrong selector triggers a different error, which triggers another guess, and the test drifts further from working
72
+ - For API errors (wrong endpoint, wrong payload, 4xx/5xx HTTP status): follow `references/resolve-api-error.md`. API contracts are exact — a single wrong field name or path segment causes a failure that looks identical to many other issues
73
+ - For all other errors: apply the hint directly, using the failure location and message as your guide
74
+
75
+ **3.2 — Verify before running**
76
+
77
+ - Check for syntax errors in the modified file(s)
78
+ - If the fix touches an import, export, or method signature, verify that callers and importers are still compatible
79
+ - If a fix introduces a new syntax or lint error, revert it and try an alternative interpretation of the hint rather than stacking fixes on top of a broken change
80
+
81
+ ### Step 4: Run the Test
82
+
83
+ - Run the test **exactly once** — do not retry on failure. The master agent owns the retry decision.
84
+ - Use the run command from the "Notes for Fix-and-Run" section of `issues.md`
85
+ - Capture full output (stdout and stderr)
86
+ - **Success** → proceed to Step 5
87
+ - **Failure** → proceed to Step 6
88
+
89
+ ### Step 5: Success — Append to Resolution Report
90
+
91
+ Append the **User-Assisted Success section** to the existing `.tickets/{TICKET_ID}/issues-resolution-report.md` using the template from [templates/issues-resolution-report-append.template.md](templates/issues-resolution-report-append.template.md).
92
+
93
+ Emit the result block for the master agent:
94
+
95
+ ```
96
+ ASSISTED-RUN RESULT: PASSED
97
+ Ticket: {TICKET_ID}
98
+ Report updated: .tickets/{TICKET_ID}/issues-resolution-report.md
99
+ ```
100
+
101
+ ### Step 6: Failure — Append to Resolution Report
102
+
103
+ Append the **User-Assisted Failure section** to the existing `.tickets/{TICKET_ID}/issues-resolution-report.md` using the template from [templates/issues-resolution-report-append.template.md](templates/issues-resolution-report-append.template.md).
104
+
105
+ Emit the result block for the master agent:
106
+
107
+ ```
108
+ ASSISTED-RUN RESULT: FAILED
109
+ Ticket: {TICKET_ID}
110
+ Error Type: {error type}
111
+ Location: {file:line}
112
+ Message: {error message}
113
+ Report updated: .tickets/{TICKET_ID}/issues-resolution-report.md
114
+ ```
115
+
116
+ ## Guidelines
117
+
118
+ These aren't arbitrary rules — each exists because of how this skill fits into the pipeline.
119
+
120
+ - **One attempt per invocation.** The master agent orchestrates the retry loop and decides how many times to invoke this skill. Running multiple attempts here would bypass the master agent's control over the retry flow.
121
+
122
+ - **Don't prompt the user directly.** The master agent presents errors and collects hints from the user in a structured way. If this skill also started asking questions, the user would get duplicate prompts from different agents, which is confusing and breaks the pipeline's communication model.
123
+
124
+ - **Append to the resolution report, never overwrite it.** The report is a running log of everything that's been tried. Overwriting it loses the history that the next attempt (or the user) needs to understand what already failed and why.
125
+
126
+ - **Emit the `ASSISTED-RUN RESULT:` block on every outcome.** The master agent parses this block to decide what happens next — PASSED routes to push-code, FAILED routes to the next user-assisted attempt or pipeline stop. Without it, the pipeline stalls waiting for a signal that never comes.
127
+
128
+ - **Don't modify `issues.md`.** It's the original review output from `web-auto-self-reviewer` and serves as the source of truth for what was initially wrong. Fixes go into the implementation files; the resolution report tracks what changes were made.
129
+
130
+ - **Use the run command from `issues.md`.** The "Notes for Fix-and-Run" section contains the exact command that `web-auto-fix-and-run-test` used. Using a different command could produce different results for reasons unrelated to the fix, making it impossible to tell if the hint actually worked.