@smartsoft001/pro-claude-plugins 0.2.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 (198) hide show
  1. package/.claude-plugin/marketplace.json +26 -0
  2. package/README.md +56 -0
  3. package/package.json +14 -0
  4. package/plugins/flow/.claude-plugin/README.md +91 -0
  5. package/plugins/flow/.claude-plugin/merge-permissions.js +115 -0
  6. package/plugins/flow/.claude-plugin/plugin.json +5 -0
  7. package/plugins/flow/.claude-plugin/settings.template.json +86 -0
  8. package/plugins/flow/agents/angular-component-scaffolder.md +176 -0
  9. package/plugins/flow/agents/angular-directive-builder.md +154 -0
  10. package/plugins/flow/agents/angular-guard-builder.md +244 -0
  11. package/plugins/flow/agents/angular-jest-test-writer.md +475 -0
  12. package/plugins/flow/agents/angular-pipe-builder.md +170 -0
  13. package/plugins/flow/agents/angular-resolver-builder.md +287 -0
  14. package/plugins/flow/agents/angular-service-builder.md +162 -0
  15. package/plugins/flow/agents/angular-signal-state-builder.md +340 -0
  16. package/plugins/flow/agents/angular-test-diagnostician.md +279 -0
  17. package/plugins/flow/agents/angular-testbed-configurator.md +315 -0
  18. package/plugins/flow/agents/arch-scaffolder.md +278 -0
  19. package/plugins/flow/agents/e2e-data-testid-injector.md +195 -0
  20. package/plugins/flow/agents/e2e-project-scaffolder.md +194 -0
  21. package/plugins/flow/agents/e2e-test-writer.md +357 -0
  22. package/plugins/flow/agents/shared-agent-evolver.md +294 -0
  23. package/plugins/flow/agents/shared-build-verifier.md +160 -0
  24. package/plugins/flow/agents/shared-config-updater.md +310 -0
  25. package/plugins/flow/agents/shared-coverage-enforcer.md +184 -0
  26. package/plugins/flow/agents/shared-error-handler.md +217 -0
  27. package/plugins/flow/agents/shared-file-creator.md +344 -0
  28. package/plugins/flow/agents/shared-impl-orchestrator.md +312 -0
  29. package/plugins/flow/agents/shared-impl-reporter.md +368 -0
  30. package/plugins/flow/agents/shared-impl-teammate.md +201 -0
  31. package/plugins/flow/agents/shared-linear-subtask-iterator.md +337 -0
  32. package/plugins/flow/agents/shared-logic-implementer.md +244 -0
  33. package/plugins/flow/agents/shared-maia-api.md +26 -0
  34. package/plugins/flow/agents/shared-parallelization-analyzer.md +343 -0
  35. package/plugins/flow/agents/shared-performance-validator.md +168 -0
  36. package/plugins/flow/agents/shared-plan-perspective.md +271 -0
  37. package/plugins/flow/agents/shared-project-standardizer.md +205 -0
  38. package/plugins/flow/agents/shared-report-synthesizer.md +188 -0
  39. package/plugins/flow/agents/shared-review-teammate.md +189 -0
  40. package/plugins/flow/agents/shared-security-scanner.md +186 -0
  41. package/plugins/flow/agents/shared-style-enforcer.md +230 -0
  42. package/plugins/flow/agents/shared-subtask-dependency-analyzer.md +189 -0
  43. package/plugins/flow/agents/shared-tdd-developer.md +350 -0
  44. package/plugins/flow/agents/shared-team-coordinator.md +192 -0
  45. package/plugins/flow/agents/shared-test-fixer.md +186 -0
  46. package/plugins/flow/agents/shared-test-runner.md +191 -0
  47. package/plugins/flow/agents/shared-ui-classifier.md +263 -0
  48. package/plugins/flow/agents/shared-verification-orchestrator.md +194 -0
  49. package/plugins/flow/agents/shared-verification-runner.md +140 -0
  50. package/plugins/flow/agents/ui-a11y-validator.md +305 -0
  51. package/plugins/flow/agents/ui-screenshot-reporter.md +329 -0
  52. package/plugins/flow/agents/ui-web-designer.md +214 -0
  53. package/plugins/flow/scripts/compute-session-tokens.sh +39 -0
  54. package/plugins/flow/skills/a11y-audit/SKILL.md +214 -0
  55. package/plugins/flow/skills/angular-patterns/SKILL.md +191 -0
  56. package/plugins/flow/skills/browser-capture/SKILL.md +238 -0
  57. package/plugins/flow/skills/commit/SKILL.md +259 -0
  58. package/plugins/flow/skills/debug-helper/SKILL.md +375 -0
  59. package/plugins/flow/skills/impl/SKILL.md +992 -0
  60. package/plugins/flow/skills/karpathy-guidelines/SKILL.md +72 -0
  61. package/plugins/flow/skills/linear-suggestion/SKILL.md +132 -0
  62. package/plugins/flow/skills/maia-files-delete/SKILL.md +59 -0
  63. package/plugins/flow/skills/maia-files-upload/SKILL.md +57 -0
  64. package/plugins/flow/skills/nx-conventions/SKILL.md +326 -0
  65. package/plugins/flow/skills/plan/SKILL.md +1033 -0
  66. package/plugins/flow/skills/push/SKILL.md +759 -0
  67. package/plugins/flow/skills/review/SKILL.md +443 -0
  68. package/plugins/flow/skills/test-e2e/SKILL.md +164 -0
  69. package/plugins/flow/skills/test-unit/SKILL.md +456 -0
  70. package/plugins/flow-external/.claude-plugin/README.md +146 -0
  71. package/plugins/flow-external/.claude-plugin/merge-permissions.js +94 -0
  72. package/plugins/flow-external/.claude-plugin/plugin.json +5 -0
  73. package/plugins/flow-external/.claude-plugin/settings.template.json +78 -0
  74. package/plugins/flow-external/agents/angular-component-scaffolder.md +271 -0
  75. package/plugins/flow-external/agents/angular-directive-builder.md +134 -0
  76. package/plugins/flow-external/agents/angular-guard-builder.md +73 -0
  77. package/plugins/flow-external/agents/angular-pipe-builder.md +90 -0
  78. package/plugins/flow-external/agents/angular-resolver-builder.md +79 -0
  79. package/plugins/flow-external/agents/angular-service-builder.md +168 -0
  80. package/plugins/flow-external/agents/angular-state-builder.md +263 -0
  81. package/plugins/flow-external/agents/shared-build-verifier.md +67 -0
  82. package/plugins/flow-external/agents/shared-impl-orchestrator.md +90 -0
  83. package/plugins/flow-external/agents/shared-impl-reporter.md +135 -0
  84. package/plugins/flow-external/agents/shared-linear-subtask-iterator.md +70 -0
  85. package/plugins/flow-external/agents/shared-ui-classifier.md +38 -0
  86. package/plugins/flow-external/agents/ui-web-designer.md +203 -0
  87. package/plugins/flow-external/scripts/compute-session-tokens.sh +39 -0
  88. package/plugins/flow-external/skills/a11y-audit/SKILL.md +97 -0
  89. package/plugins/flow-external/skills/angular-cli-conventions/SKILL.md +268 -0
  90. package/plugins/flow-external/skills/angular-patterns/SKILL.md +182 -0
  91. package/plugins/flow-external/skills/browser-capture/SKILL.md +74 -0
  92. package/plugins/flow-external/skills/commit/SKILL.md +114 -0
  93. package/plugins/flow-external/skills/debug-helper/SKILL.md +135 -0
  94. package/plugins/flow-external/skills/impl/SKILL.md +218 -0
  95. package/plugins/flow-external/skills/karpathy-guidelines/SKILL.md +72 -0
  96. package/plugins/flow-external/skills/linear-suggestion/SKILL.md +62 -0
  97. package/plugins/flow-external/skills/maia-files-delete/SKILL.md +34 -0
  98. package/plugins/flow-external/skills/maia-files-upload/SKILL.md +41 -0
  99. package/plugins/flow-external/skills/plan/SKILL.md +334 -0
  100. package/plugins/flow-external/skills/push/SKILL.md +232 -0
  101. package/plugins/flow-legacy/.claude-plugin/README.md +143 -0
  102. package/plugins/flow-legacy/.claude-plugin/merge-permissions.js +94 -0
  103. package/plugins/flow-legacy/.claude-plugin/plugin.json +5 -0
  104. package/plugins/flow-legacy/.claude-plugin/settings.template.json +79 -0
  105. package/plugins/flow-legacy/agents/angular-component-scaffolder.md +327 -0
  106. package/plugins/flow-legacy/agents/angular-directive-builder.md +253 -0
  107. package/plugins/flow-legacy/agents/angular-guard-builder.md +326 -0
  108. package/plugins/flow-legacy/agents/angular-pipe-builder.md +238 -0
  109. package/plugins/flow-legacy/agents/angular-resolver-builder.md +339 -0
  110. package/plugins/flow-legacy/agents/angular-service-builder.md +271 -0
  111. package/plugins/flow-legacy/agents/angular-state-builder.md +480 -0
  112. package/plugins/flow-legacy/agents/shared-impl-orchestrator.md +174 -0
  113. package/plugins/flow-legacy/agents/shared-impl-reporter.md +232 -0
  114. package/plugins/flow-legacy/agents/shared-linear-subtask-iterator.md +198 -0
  115. package/plugins/flow-legacy/agents/shared-tdd-developer.md +307 -0
  116. package/plugins/flow-legacy/agents/shared-test-runner.md +133 -0
  117. package/plugins/flow-legacy/agents/shared-ui-classifier.md +145 -0
  118. package/plugins/flow-legacy/scripts/compute-session-tokens.sh +39 -0
  119. package/plugins/flow-legacy/skills/a11y-audit/SKILL.md +214 -0
  120. package/plugins/flow-legacy/skills/angular-patterns/SKILL.md +346 -0
  121. package/plugins/flow-legacy/skills/browser-capture/SKILL.md +238 -0
  122. package/plugins/flow-legacy/skills/commit/SKILL.md +215 -0
  123. package/plugins/flow-legacy/skills/debug-helper/SKILL.md +395 -0
  124. package/plugins/flow-legacy/skills/impl/SKILL.md +710 -0
  125. package/plugins/flow-legacy/skills/karpathy-guidelines/SKILL.md +72 -0
  126. package/plugins/flow-legacy/skills/linear-suggestion/SKILL.md +132 -0
  127. package/plugins/flow-legacy/skills/maia-files-delete/SKILL.md +59 -0
  128. package/plugins/flow-legacy/skills/maia-files-upload/SKILL.md +57 -0
  129. package/plugins/flow-legacy/skills/nx-conventions/SKILL.md +368 -0
  130. package/plugins/flow-legacy/skills/plan/SKILL.md +742 -0
  131. package/plugins/flow-legacy/skills/push/SKILL.md +645 -0
  132. package/plugins/flow-legacy/skills/test-unit/SKILL.md +500 -0
  133. package/plugins/smart-pro/.claude-plugin/README.md +115 -0
  134. package/plugins/smart-pro/.claude-plugin/merge-permissions.js +129 -0
  135. package/plugins/smart-pro/.claude-plugin/plugin.json +5 -0
  136. package/plugins/smart-pro/.claude-plugin/settings.template.json +94 -0
  137. package/plugins/smart-pro/agents/angular-components/AGENT.md +214 -0
  138. package/plugins/smart-pro/hooks/CONFIG.md +198 -0
  139. package/plugins/smart-pro/hooks/README.md +139 -0
  140. package/plugins/smart-pro/hooks/audit_logger.py +107 -0
  141. package/plugins/smart-pro/hooks/auto_format.sh +11 -0
  142. package/plugins/smart-pro/hooks/hooks.json +79 -0
  143. package/plugins/smart-pro/hooks/safety_validator.py +129 -0
  144. package/plugins/smart-pro/hooks/sensitive_file_blocker.py +58 -0
  145. package/plugins/smart-pro/hooks/skill_validator.py +220 -0
  146. package/plugins/smart-pro/skills/angular-components-action-panel/SKILL.md +159 -0
  147. package/plugins/smart-pro/skills/angular-components-avatar/SKILL.md +142 -0
  148. package/plugins/smart-pro/skills/angular-components-badge/SKILL.md +110 -0
  149. package/plugins/smart-pro/skills/angular-components-breadcrumbs/SKILL.md +91 -0
  150. package/plugins/smart-pro/skills/angular-components-button/SKILL.md +146 -0
  151. package/plugins/smart-pro/skills/angular-components-button-group/SKILL.md +121 -0
  152. package/plugins/smart-pro/skills/angular-components-calendar/SKILL.md +78 -0
  153. package/plugins/smart-pro/skills/angular-components-card/SKILL.md +110 -0
  154. package/plugins/smart-pro/skills/angular-components-card-heading/SKILL.md +105 -0
  155. package/plugins/smart-pro/skills/angular-components-command-palette/SKILL.md +168 -0
  156. package/plugins/smart-pro/skills/angular-components-container/SKILL.md +93 -0
  157. package/plugins/smart-pro/skills/angular-components-description-list/SKILL.md +102 -0
  158. package/plugins/smart-pro/skills/angular-components-details/SKILL.md +70 -0
  159. package/plugins/smart-pro/skills/angular-components-divider/SKILL.md +110 -0
  160. package/plugins/smart-pro/skills/angular-components-drawer/SKILL.md +136 -0
  161. package/plugins/smart-pro/skills/angular-components-dropdown/SKILL.md +131 -0
  162. package/plugins/smart-pro/skills/angular-components-empty-state/SKILL.md +103 -0
  163. package/plugins/smart-pro/skills/angular-components-feed/SKILL.md +110 -0
  164. package/plugins/smart-pro/skills/angular-components-form/SKILL.md +77 -0
  165. package/plugins/smart-pro/skills/angular-components-grid-list/SKILL.md +91 -0
  166. package/plugins/smart-pro/skills/angular-components-input/SKILL.md +118 -0
  167. package/plugins/smart-pro/skills/angular-components-list/SKILL.md +75 -0
  168. package/plugins/smart-pro/skills/angular-components-list-container/SKILL.md +106 -0
  169. package/plugins/smart-pro/skills/angular-components-media-object/SKILL.md +133 -0
  170. package/plugins/smart-pro/skills/angular-components-modal/SKILL.md +159 -0
  171. package/plugins/smart-pro/skills/angular-components-multi-column-layout/SKILL.md +84 -0
  172. package/plugins/smart-pro/skills/angular-components-navbar/SKILL.md +93 -0
  173. package/plugins/smart-pro/skills/angular-components-notification/SKILL.md +147 -0
  174. package/plugins/smart-pro/skills/angular-components-page/SKILL.md +162 -0
  175. package/plugins/smart-pro/skills/angular-components-page-heading/SKILL.md +96 -0
  176. package/plugins/smart-pro/skills/angular-components-paging/SKILL.md +86 -0
  177. package/plugins/smart-pro/skills/angular-components-progress-bars/SKILL.md +94 -0
  178. package/plugins/smart-pro/skills/angular-components-searchbar/SKILL.md +113 -0
  179. package/plugins/smart-pro/skills/angular-components-section-heading/SKILL.md +156 -0
  180. package/plugins/smart-pro/skills/angular-components-select-menu/SKILL.md +101 -0
  181. package/plugins/smart-pro/skills/angular-components-sidebar-layout/SKILL.md +121 -0
  182. package/plugins/smart-pro/skills/angular-components-sidebar-navigation/SKILL.md +80 -0
  183. package/plugins/smart-pro/skills/angular-components-sign-in-form/SKILL.md +91 -0
  184. package/plugins/smart-pro/skills/angular-components-stacked-layout/SKILL.md +114 -0
  185. package/plugins/smart-pro/skills/angular-components-stacked-list/SKILL.md +93 -0
  186. package/plugins/smart-pro/skills/angular-components-stats/SKILL.md +87 -0
  187. package/plugins/smart-pro/skills/angular-components-table/SKILL.md +98 -0
  188. package/plugins/smart-pro/skills/angular-components-tabs/SKILL.md +99 -0
  189. package/plugins/smart-pro/skills/angular-components-textarea/SKILL.md +111 -0
  190. package/plugins/smart-pro/skills/angular-components-toggle/SKILL.md +109 -0
  191. package/plugins/smart-pro/skills/angular-components-vertical-navigation/SKILL.md +139 -0
  192. package/plugins/smart-pro/skills/audit-log/SKILL.md +82 -0
  193. package/plugins/smart-pro/skills/format-code/SKILL.md +46 -0
  194. package/plugins/smart-pro/skills/project-conventions/SKILL.md +90 -0
  195. package/plugins/smart-pro/skills/safety-check/SKILL.md +0 -0
  196. package/src/index.d.ts +6 -0
  197. package/src/index.js +7 -0
  198. package/src/index.js.map +1 -0
@@ -0,0 +1,443 @@
1
+ ---
2
+ name: review
3
+ description: Run parallel multi-dimensional code review using Agent Teams. Spawns specialized reviewers for quality, tests, security, and accessibility/performance.
4
+ allowed-tools:
5
+ - Bash
6
+ - Read
7
+ - Glob
8
+ - Grep
9
+ - Task
10
+ - TaskCreate
11
+ - TaskUpdate
12
+ - TaskList
13
+ - TaskGet
14
+ - AskUserQuestion
15
+ - mcp__linear__get_issue
16
+ - mcp__linear__list_comments
17
+ - mcp__linear__save_comment
18
+ ---
19
+
20
+ # Review Skill
21
+
22
+ Run parallel multi-dimensional code review using Agent Teams. Spawns specialized reviewers for quality, tests, security, and accessibility/performance.
23
+
24
+ ## Execution Checklist
25
+
26
+ Execute each step in order. Do not skip any step marked as MANDATORY.
27
+
28
+ - [ ] **1. Determine review scope** — analyze git diff for changed files + affected projects
29
+ - [ ] **2. Check team prerequisites** — verify `CLAUDE_CODE_EXPERIMENTAL_AGENT_TEAMS=1`
30
+ - [ ] **3. Create Review Board team** — spawn 4 specialized reviewer teammates
31
+ - [ ] **4. Monitor reviews** — track task completions, handle questions between reviewers
32
+ - [ ] **5. Synthesize findings** — delegate to `shared-report-synthesizer`
33
+ - [ ] **6. Post to Linear** — create single review comment in Polish
34
+ - [ ] **7. Present to user** — show findings with severity ratings
35
+ - [ ] **8. Cleanup team**
36
+
37
+ ### Task Progress Tracking
38
+
39
+ **MANDATORY**: Use Claude Code's built-in task tracking to provide real-time progress visibility.
40
+
41
+ **Task naming convention**: Every task subject MUST be prefixed with the Linear task ID (or scope):
42
+
43
+ ```
44
+ [REVIEW] <linearTaskId> <step description>
45
+ ```
46
+
47
+ **At skill start**: Create tasks for each review dimension:
48
+
49
+ ```
50
+ TaskCreate({
51
+ subject: "[REVIEW] MM-123 Quality review",
52
+ description: "Lint, type-check, code style, import ordering",
53
+ activeForm: "[REVIEW] MM-123 Running quality review"
54
+ })
55
+ ```
56
+
57
+ ## Role
58
+
59
+ **You are an experienced code review lead** with:
60
+
61
+ - Over 10 years of reviewing production code
62
+ - Deep knowledge of TypeScript, Angular, NestJS security patterns
63
+ - WCAG 2.1 accessibility expertise
64
+ - Performance optimization and bundle analysis skills
65
+ - Ability to coordinate multiple review perspectives
66
+
67
+ You produce reviews that are:
68
+
69
+ - **Thorough**: covering quality, tests, security, and accessibility
70
+ - **Actionable**: each finding has a clear severity and fix recommendation
71
+ - **Balanced**: acknowledging good patterns alongside issues
72
+ - **Prioritized**: critical issues first, minor suggestions last
73
+
74
+ ## Usage
75
+
76
+ ```
77
+ /review [linearTaskId] # Review changes for a Linear task
78
+ /review --staged # Review all staged changes
79
+ /review --diff=main # Review diff against main branch
80
+ ```
81
+
82
+ ## Parameters
83
+
84
+ - `linearTaskId` - Linear task ID (e.g., ENG-123)
85
+ - `--staged` - Review all staged changes (no Linear task required)
86
+ - `--diff=<branch>` - Review diff against specified branch
87
+
88
+ ## Instructions
89
+
90
+ ### Step 1: Determine Review Scope
91
+
92
+ Analyze the changes to review:
93
+
94
+ **If `linearTaskId` provided:**
95
+
96
+ 1. Fetch task from Linear via MCP
97
+ 2. Find related branch/commits via `git log --all --grep="<taskId>"`
98
+ 3. Determine changed files via `git diff main...<branch>`
99
+
100
+ **If `--staged` provided:**
101
+
102
+ 1. Use `git diff --cached --name-only` to find staged files
103
+ 2. Use `git diff --cached` for full diff
104
+
105
+ **If `--diff=<branch>` provided:**
106
+
107
+ 1. Use `git diff <branch>...HEAD --name-only` for changed files
108
+ 2. Use `git diff <branch>...HEAD` for full diff
109
+
110
+ **Extract:**
111
+
112
+ - List of changed files with change type (added/modified/deleted)
113
+ - Affected Nx projects (from file paths)
114
+ - Change statistics (lines added/removed per file)
115
+
116
+ ### Step 2: Check Team Prerequisites
117
+
118
+ **Check `CLAUDE_CODE_EXPERIMENTAL_AGENT_TEAMS=1`**:
119
+
120
+ If env var is NOT set:
121
+
122
+ → Fall back to sequential review using `shared-verification-orchestrator` agent.
123
+
124
+ ```
125
+ Tryb zespołowy niedostępny — brak CLAUDE_CODE_EXPERIMENTAL_AGENT_TEAMS=1.
126
+ Uruchamiam sekwencyjną weryfikację...
127
+ ```
128
+
129
+ Run the `shared-verification-orchestrator` pipeline and present results. Stop here.
130
+
131
+ **If env var IS set** → Continue to Step 3.
132
+
133
+ ### Step 3: Create Review Board Team
134
+
135
+ Create 4 specialized reviewer tasks and spawn teammates:
136
+
137
+ #### Reviewer 1: Quality Reviewer
138
+
139
+ ```
140
+ TaskCreate({
141
+ subject: "[REVIEW] <taskId> Quality review: lint and type-check",
142
+ description: "Check lint errors, TypeScript type safety, code style, import ordering",
143
+ activeForm: "[REVIEW] <taskId> Running quality review"
144
+ })
145
+ ```
146
+
147
+ **Spawn prompt:**
148
+
149
+ ```
150
+ You are the Quality Reviewer in a Review Board for [scope description].
151
+
152
+ Changed files:
153
+ [list of changed files with diffs]
154
+
155
+ YOUR FOCUS:
156
+ - Run linting: `nx lint [project]` for each affected project
157
+ - Run type-check: `npx tsc --noEmit` for affected projects
158
+ - Check code style: naming conventions, function length, complexity
159
+ - Verify import ordering matches ESLint rules
160
+ - Check for unused imports, dead code, TODO comments
161
+ - Verify Angular modern APIs (signals, @if/@for, inject())
162
+
163
+ DELEGATE TO existing agents as needed:
164
+ - `shared-style-enforcer` for detailed style analysis
165
+ - `shared-verification-runner` for running lint/type-check commands
166
+
167
+ OUTPUT FORMAT:
168
+ ## Quality Review Report
169
+
170
+ ### Critical Issues
171
+ - [issue] — severity: CRITICAL — file: path/to/file.ts:line
172
+
173
+ ### Warnings
174
+ - [warning] — severity: MEDIUM — file: path/to/file.ts:line
175
+
176
+ ### Passed Checks
177
+ - [x] Check passed
178
+
179
+ ### Summary
180
+ Issues found: X critical, Y medium, Z low
181
+ Recommendation: PASS / PASS_WITH_WARNINGS / BLOCK
182
+ ```
183
+
184
+ #### Reviewer 2: Test Reviewer
185
+
186
+ ```
187
+ TaskCreate({
188
+ subject: "[REVIEW] <taskId> Test review: coverage and quality",
189
+ description: "Unit test coverage, test quality, AAA pattern compliance",
190
+ activeForm: "[REVIEW] <taskId> Running test review"
191
+ })
192
+ ```
193
+
194
+ **Spawn prompt:**
195
+
196
+ ```
197
+ You are the Test Reviewer in a Review Board for [scope description].
198
+
199
+ Changed files:
200
+ [list of changed files with diffs]
201
+
202
+ YOUR FOCUS:
203
+ - Run unit tests: `nx test [project] --coverage` for affected projects
204
+ - Check coverage meets 90% minimum for new code
205
+ - Verify AAA pattern (Arrange-Act-Assert) in all test files
206
+ - Check test naming: describe('@smartsoft001/pro-...'), it('should...')
207
+ - Verify mock patterns match project conventions
208
+ - Check for missing edge case tests
209
+ - Verify no skipped tests (xit, xdescribe)
210
+
211
+ DELEGATE TO existing agents as needed:
212
+ - `shared-coverage-enforcer` for coverage analysis
213
+ - `shared-test-runner` for test execution
214
+
215
+ OUTPUT FORMAT:
216
+ ## Test Review Report
217
+
218
+ ### Critical Issues
219
+ - [issue] — severity: CRITICAL — file: path/to/file.spec.ts:line
220
+
221
+ ### Warnings
222
+ - [warning] — severity: MEDIUM — file: path/to/file.spec.ts:line
223
+
224
+ ### Coverage Report
225
+ | Project | Coverage | Required | Status |
226
+ | --- | --- | --- | --- |
227
+ | [project] | 85% | 90% | ❌ BELOW |
228
+
229
+ ### Passed Checks
230
+ - [x] Check passed
231
+
232
+ ### Summary
233
+ Issues found: X critical, Y medium, Z low
234
+ Recommendation: PASS / PASS_WITH_WARNINGS / BLOCK
235
+ ```
236
+
237
+ #### Reviewer 3: Security Reviewer
238
+
239
+ ```
240
+ TaskCreate({
241
+ subject: "[REVIEW] <taskId> Security review: OWASP and deps",
242
+ description: "OWASP top 10, dependency audit, secrets detection",
243
+ activeForm: "[REVIEW] <taskId> Running security review"
244
+ })
245
+ ```
246
+
247
+ **Spawn prompt:**
248
+
249
+ ```
250
+ You are the Security Reviewer in a Review Board for [scope description].
251
+
252
+ Changed files:
253
+ [list of changed files with diffs]
254
+
255
+ YOUR FOCUS:
256
+ - Check for OWASP Top 10 vulnerabilities in changed code:
257
+ - XSS (innerHTML, bypassSecurityTrust*, template injection)
258
+ - SQL/NoSQL injection (unsanitized query parameters)
259
+ - Broken authentication (token handling, session management)
260
+ - Sensitive data exposure (logging secrets, hardcoded credentials)
261
+ - CSRF protection
262
+ - Run dependency audit: `npm audit --audit-level=moderate`
263
+ - Check for hardcoded secrets, API keys, tokens
264
+ - Verify input validation at system boundaries
265
+ - Check for insecure HTTP calls (http:// vs https://)
266
+ - Review authorization checks in backend code
267
+
268
+ DELEGATE TO existing agents as needed:
269
+ - `shared-security-scanner` for automated security scanning
270
+
271
+ OUTPUT FORMAT:
272
+ ## Security Review Report
273
+
274
+ ### Critical Issues
275
+ - [issue] — severity: CRITICAL — file: path/to/file.ts:line — OWASP: [category]
276
+
277
+ ### Warnings
278
+ - [warning] — severity: MEDIUM — file: path/to/file.ts:line
279
+
280
+ ### Dependency Audit
281
+ - Vulnerabilities found: [count by severity]
282
+
283
+ ### Passed Checks
284
+ - [x] Check passed
285
+
286
+ ### Summary
287
+ Issues found: X critical, Y medium, Z low
288
+ Recommendation: PASS / PASS_WITH_WARNINGS / BLOCK
289
+ ```
290
+
291
+ #### Reviewer 4: A11y + Performance Reviewer
292
+
293
+ ```
294
+ TaskCreate({
295
+ subject: "[REVIEW] <taskId> A11y + Performance review",
296
+ description: "WCAG 2.1 accessibility, bundle sizes, performance patterns",
297
+ activeForm: "[REVIEW] <taskId> Running a11y + performance review"
298
+ })
299
+ ```
300
+
301
+ **Spawn prompt:**
302
+
303
+ ```
304
+ You are the Accessibility & Performance Reviewer in a Review Board for [scope description].
305
+
306
+ Changed files:
307
+ [list of changed files with diffs]
308
+
309
+ YOUR FOCUS (Accessibility):
310
+ - WCAG 2.1 compliance in templates:
311
+ - Alt text for images
312
+ - ARIA labels for interactive elements
313
+ - Keyboard navigation support
314
+ - Color contrast (check Tailwind classes)
315
+ - Focus management
316
+ - Semantic HTML usage
317
+ - Screen reader compatibility
318
+
319
+ YOUR FOCUS (Performance):
320
+ - Bundle size impact (new imports, lazy loading)
321
+ - Change detection optimization (OnPush, signals)
322
+ - Template performance (trackBy/@for track, computed signals)
323
+ - Memory leaks (unsubscribed observables, event listeners)
324
+ - Unnecessary re-renders
325
+
326
+ DELEGATE TO existing agents as needed:
327
+ - `ui-a11y-validator` for accessibility scanning
328
+ - `shared-performance-validator` for performance analysis
329
+
330
+ OUTPUT FORMAT:
331
+ ## A11y + Performance Review Report
332
+
333
+ ### Critical Issues
334
+ - [issue] — severity: CRITICAL — file: path/to/file.ts:line — type: A11Y/PERF
335
+
336
+ ### Warnings
337
+ - [warning] — severity: MEDIUM — file: path/to/file.ts:line
338
+
339
+ ### Accessibility Audit
340
+ - WCAG violations: [count]
341
+ - Missing ARIA labels: [count]
342
+
343
+ ### Performance Impact
344
+ - New dependencies added: [list]
345
+ - Bundle size estimate: [impact]
346
+
347
+ ### Passed Checks
348
+ - [x] Check passed
349
+
350
+ ### Summary
351
+ Issues found: X critical, Y medium, Z low
352
+ Recommendation: PASS / PASS_WITH_WARNINGS / BLOCK
353
+ ```
354
+
355
+ ### Step 4: Monitor Reviews
356
+
357
+ While teammates are working:
358
+
359
+ 1. **Track progress** via `TaskList` — check which reviewers have completed
360
+ 2. **Handle cross-reviewer communication**:
361
+ - When a reviewer finishes with CRITICAL or HIGH findings, broadcast to other reviewers
362
+ - Example: Security reviewer finds XSS → notify Quality reviewer to check sanitization
363
+ 3. **Wait for all reviewers** to complete (or timeout after reasonable period)
364
+
365
+ **Cross-reviewer broadcast logic:**
366
+
367
+ ```
368
+ When reviewer finishes:
369
+ IF findings contain CRITICAL or HIGH severity:
370
+ FOR each other active reviewer:
371
+ Send broadcast: "[Reviewer] found [severity] issue: [summary]"
372
+ Ask them to check related areas
373
+ ```
374
+
375
+ ### Step 5: Synthesize Findings
376
+
377
+ After all 4 reviewers complete:
378
+
379
+ 1. **Collect all reports** from reviewer tasks
380
+ 2. **Delegate to `shared-report-synthesizer`** with:
381
+ - Team type: REVIEW
382
+ - All 4 reviewer reports
383
+ - Linear task ID (if available)
384
+
385
+ The synthesizer will:
386
+
387
+ - Merge findings by category
388
+ - Deduplicate identical issues
389
+ - Flag conflicts between reviewers
390
+ - Produce single Polish-language report
391
+
392
+ ### Step 6: Post to Linear
393
+
394
+ **If `linearTaskId` was provided:**
395
+
396
+ Post the synthesized review report as a comment on the Linear task via MCP.
397
+
398
+ **If `--staged` or `--diff`:**
399
+
400
+ Skip Linear posting (no task to attach to).
401
+
402
+ ### Step 7: Present to User
403
+
404
+ Show the synthesized review results to the user:
405
+
406
+ 1. **Overall verdict**: PASS / PASS_WITH_WARNINGS / BLOCK
407
+ 2. **Summary table** with per-dimension results
408
+ 3. **Critical issues** requiring immediate attention
409
+ 4. **Warnings** for consideration
410
+ 5. **Passed checks** for confidence
411
+
412
+ ### Step 8: Cleanup Team
413
+
414
+ Mark all review tasks as completed and clean up team resources.
415
+
416
+ ## Fallback: Sequential Review
417
+
418
+ When `CLAUDE_CODE_EXPERIMENTAL_AGENT_TEAMS=1` is NOT set, run a sequential review:
419
+
420
+ 1. Delegate to `shared-verification-orchestrator` for the full 5-stage pipeline
421
+ 2. Present results to user
422
+ 3. Post to Linear if task ID provided
423
+
424
+ This provides the same verification coverage, just without the parallelism and specialization.
425
+
426
+ ## Guidelines
427
+
428
+ 1. **All Linear comments in Polish** — review reports posted to Linear must be in Polish
429
+ 2. **User-facing output can be in user's language** — terminal output matches user's language
430
+ 3. **Severity ratings are mandatory** — every finding must have CRITICAL/HIGH/MEDIUM/LOW
431
+ 4. **Recommendations must be actionable** — don't just flag issues, suggest fixes
432
+ 5. **Respect existing patterns** — don't flag patterns that are established conventions
433
+ 6. **Consider context** — new code vs modified code may have different standards
434
+ 7. **Be constructive** — balance criticism with positive observations
435
+ 8. **Track everything** — use TaskCreate/TaskUpdate for visibility into review progress
436
+
437
+ ## Agent Team Mode (Experimental)
438
+
439
+ **Prerequisite**: `CLAUDE_CODE_EXPERIMENTAL_AGENT_TEAMS=1` in settings.
440
+
441
+ **Activation**: Automatic when env var is set.
442
+
443
+ **Fallback**: If env var not set, skill runs in standard sequential mode via `shared-verification-orchestrator`.
@@ -0,0 +1,164 @@
1
+ ---
2
+ name: test-e2e
3
+ description: Orchestrate E2E Playwright test creation — scaffold project, inject data-testid attributes, write Page Objects and test specs, and run tests.
4
+ allowed-tools:
5
+ - Bash
6
+ - Read
7
+ - Write
8
+ - Edit
9
+ - Glob
10
+ - Grep
11
+ - Task
12
+ ---
13
+
14
+ # E2E Test Skill
15
+
16
+ Orchestrate the full E2E Playwright testing workflow: ensure project infrastructure exists, inject `data-testid` attributes into changed component templates, write Page Objects and test specs, and run tests.
17
+
18
+ ## Usage
19
+
20
+ ```
21
+ /test-e2e [component-paths or 'changed']
22
+ ```
23
+
24
+ ### Parameters
25
+
26
+ - **component-paths**: Explicit paths to component files (e.g., `libs/shared/angular/src/lib/components/contact-form/contact-form.component.ts`)
27
+ - **`changed`**: Automatically detect changed component templates from `git diff`
28
+
29
+ ## Workflow
30
+
31
+ Execute each step in order:
32
+
33
+ ### Step 1: Identify Target Components
34
+
35
+ **If `changed` is specified:**
36
+
37
+ ```bash
38
+ # Find changed component templates
39
+ git diff --name-only HEAD | grep -E "\.component\.(html|ts)$"
40
+ ```
41
+
42
+ **If explicit paths are provided:**
43
+
44
+ Use the provided paths directly.
45
+
46
+ **Output:** List of component files to process.
47
+
48
+ ### Step 2: Scaffold E2E Project
49
+
50
+ **Delegate to `e2e-project-scaffolder` agent:**
51
+
52
+ ```
53
+ Check if E2E Playwright project exists for the target application.
54
+ If not, scaffold one with Nx generator, multi-browser config, and base Page Object.
55
+ ```
56
+
57
+ The agent will:
58
+
59
+ 1. Check for existing E2E project (idempotent)
60
+ 2. Scaffold if missing: Playwright config, directory structure, base page
61
+ 3. Report status
62
+
63
+ **If project already exists:** Continue to Step 3.
64
+ **If scaffolded:** Continue to Step 3.
65
+
66
+ ### Step 3: Inject `data-testid` Attributes
67
+
68
+ **Delegate to `e2e-data-testid-injector` agent:**
69
+
70
+ ```
71
+ Scan the following changed component templates and inject data-testid attributes:
72
+
73
+ Components:
74
+ - [list of component files from Step 1]
75
+
76
+ Rules:
77
+ - Naming convention: {component-name}-{element-type}-{identifier}
78
+ - Target interactive elements only
79
+ - NEVER overwrite existing data-testid attributes
80
+ - Preserve template formatting
81
+ ```
82
+
83
+ The agent will:
84
+
85
+ 1. Read each component template
86
+ 2. Identify interactive elements without `data-testid`
87
+ 3. Inject attributes following naming convention
88
+ 4. Report injection summary
89
+
90
+ ### Step 4: Write E2E Tests
91
+
92
+ **Delegate to `e2e-test-writer` agent:**
93
+
94
+ ```
95
+ Write Playwright E2E tests for the following components:
96
+
97
+ Components:
98
+ - [list of component files from Step 1]
99
+
100
+ E2E project location: [path from Step 2]
101
+
102
+ Requirements:
103
+ - Create Page Object per component extending BasePage
104
+ - Create test spec per component
105
+ - Use data-testid selectors exclusively
106
+ - Cover: visibility, interactions, form submissions, navigation, error states
107
+ - Use Playwright auto-waiting (no manual sleeps)
108
+ - Cross-reference all selectors against template data-testid values
109
+ ```
110
+
111
+ The agent will:
112
+
113
+ 1. Read component `.ts` and `.html` files
114
+ 2. Create Page Objects in `e2e/src/pages/`
115
+ 3. Create test specs in `e2e/src/specs/`
116
+ 4. Cross-reference selectors against templates
117
+
118
+ ### Step 5: Run E2E Tests
119
+
120
+ ```bash
121
+ # Run E2E tests
122
+ npx nx e2e {app-name}-e2e
123
+ ```
124
+
125
+ **If tests pass:** Report success.
126
+ **If tests fail:** Analyze failures and fix — delegate back to `e2e-test-writer` if needed.
127
+
128
+ ### Step 6: Report Results
129
+
130
+ Generate a summary report:
131
+
132
+ ```markdown
133
+ ## E2E Test Report
134
+
135
+ ### Components Processed
136
+
137
+ | Component | Testids Injected | Tests Written | Status |
138
+ | -------------------- | ---------------- | ------------- | ------ |
139
+ | ContactFormComponent | 5 | 6 | PASS |
140
+ | ArticleListComponent | 3 | 4 | PASS |
141
+
142
+ ### Summary
143
+
144
+ - **E2E Project**: [existed / scaffolded]
145
+ - **Testids injected**: [total count]
146
+ - **Tests created**: [total count]
147
+ - **Test execution**: [PASS / FAIL with details]
148
+
149
+ ### Files Modified
150
+
151
+ | File | Change |
152
+ | ------------------------------------ | ------------------------------ |
153
+ | `contact-form.component.html` | Added 5 data-testid attributes |
154
+ | `e2e/src/pages/contact-form.page.ts` | New Page Object |
155
+ | `e2e/src/specs/contact-form.spec.ts` | New test spec (6 tests) |
156
+ ```
157
+
158
+ ## Rules
159
+
160
+ 1. **Always scaffold first** — ensure E2E project exists before writing tests
161
+ 2. **Always inject testids first** — ensure selectors exist before writing Page Objects
162
+ 3. **Use agents for specialized work** — delegate to the right agent for each step
163
+ 4. **Run tests after writing** — verify tests pass before reporting success
164
+ 5. **Report comprehensively** — include injection summary, tests created, and execution status