@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,268 @@
1
+ ---
2
+ name: angular-cli-conventions
3
+ description: Angular CLI project conventions for standalone Angular 6-11 projects. Build commands, project structure, and configuration patterns.
4
+ ---
5
+
6
+ # Angular CLI Conventions
7
+
8
+ This skill provides guidance on Angular CLI project patterns for standalone Angular 6-11 projects.
9
+
10
+ ## CRITICAL: Angular CLI (NOT Nx)
11
+
12
+ These projects use Angular CLI directly. Do NOT use Nx commands.
13
+
14
+ | Feature | CORRECT (Angular CLI) | WRONG (Nx) |
15
+ | -------- | --------------------- | -------------- |
16
+ | Serve | `ng serve` | `nx serve` |
17
+ | Build | `ng build --prod` | `nx build` |
18
+ | Lint | `ng lint` | `nx lint` |
19
+ | Generate | `ng generate` | `nx generate` |
20
+ | Config | `angular.json` | `project.json` |
21
+
22
+ ## 1. Project Structure
23
+
24
+ ### Standard Layout (most projects)
25
+
26
+ ```
27
+ project-root/
28
+ app/ # Frontend application directory
29
+ src/
30
+ app/
31
+ components/ # Shared/feature components
32
+ services/ # Services
33
+ pipes/ # Custom pipes
34
+ directives/ # Custom directives
35
+ interceptors/ # HTTP interceptors
36
+ guards/ # Route guards
37
+ state/ # NgRx store (if used)
38
+ models/ # TypeScript interfaces
39
+ app.module.ts # Root module
40
+ app.component.ts # Root component
41
+ app-routing.module.ts # Root routing
42
+ assets/ # Static assets
43
+ environments/ # Environment configs
44
+ environment.ts
45
+ environment.prod.ts
46
+ index.html
47
+ main.ts
48
+ polyfills.ts
49
+ styles.scss # Global styles
50
+ angular.json # Angular CLI config
51
+ package.json
52
+ tsconfig.json
53
+ tsconfig.app.json
54
+ karma.conf.js # Karma test config
55
+ .env # Environment variables
56
+ cli/ # CLI scripts
57
+ frontend-cli
58
+ complete
59
+ help
60
+ utils
61
+ docker/ # Docker configuration
62
+ Dockerfile
63
+ supervisord/
64
+ .env # Root env (Docker registry, tokens)
65
+ ```
66
+
67
+ ### Root-Level Layout (older projects)
68
+
69
+ ```
70
+ project-root/
71
+ src/
72
+ app/
73
+ ...
74
+ angular.json
75
+ package.json
76
+ ...
77
+ ```
78
+
79
+ ## 2. Common Commands
80
+
81
+ ### Development
82
+
83
+ ```bash
84
+ # Start dev server
85
+ npm start
86
+ # OR
87
+ ng serve
88
+
89
+ # Start with specific port
90
+ ng serve --port 4201
91
+
92
+ # Start with proxy
93
+ ng serve --proxy-config proxy.conf.json
94
+ ```
95
+
96
+ ### Building
97
+
98
+ ```bash
99
+ # Development build
100
+ ng build
101
+
102
+ # Production build
103
+ ng build --prod
104
+
105
+ # Production with specific config
106
+ ng build --configuration=production
107
+ ```
108
+
109
+ ### Linting
110
+
111
+ ```bash
112
+ ng lint
113
+ ```
114
+
115
+ ### Code Generation
116
+
117
+ ```bash
118
+ # Generate component
119
+ ng generate component components/feature-name
120
+
121
+ # Generate service
122
+ ng generate service services/feature-name
123
+
124
+ # Generate module
125
+ ng generate module feature-name
126
+
127
+ # Generate pipe
128
+ ng generate pipe pipes/feature-name
129
+
130
+ # Generate directive
131
+ ng generate directive directives/feature-name
132
+
133
+ # Generate guard
134
+ ng generate guard guards/auth
135
+
136
+ # Dry run (preview)
137
+ ng generate component feature-name --dry-run
138
+ ```
139
+
140
+ ## 3. Configuration Files
141
+
142
+ ### angular.json
143
+
144
+ Key sections:
145
+
146
+ - `projects.<name>.architect.build` - Build configuration
147
+ - `projects.<name>.architect.serve` - Dev server configuration
148
+ - `projects.<name>.architect.lint` - Lint configuration
149
+
150
+ ### Environment Files
151
+
152
+ ```typescript
153
+ // environments/environment.ts (development)
154
+ export const environment = {
155
+ production: false,
156
+ apiUrl: 'http://localhost:3000/api',
157
+ };
158
+
159
+ // environments/environment.prod.ts (production)
160
+ export const environment = {
161
+ production: true,
162
+ apiUrl: '/api',
163
+ };
164
+ ```
165
+
166
+ ### Dynamic Environment (setEnv.ts pattern)
167
+
168
+ Many projects use a `setEnv.ts` script to generate environment from `.env`:
169
+
170
+ ```bash
171
+ # Build process often includes:
172
+ npm run config # Generates environment.ts from .env
173
+ ng build --prod
174
+ ```
175
+
176
+ ## 4. Proxy Configuration
177
+
178
+ ```json
179
+ // proxy.conf.json
180
+ {
181
+ "/api/*": {
182
+ "target": "http://localhost:3000",
183
+ "secure": false,
184
+ "changeOrigin": true
185
+ }
186
+ }
187
+ ```
188
+
189
+ ## 5. Dependencies
190
+
191
+ ### Common dependencies across projects
192
+
193
+ | Package | Purpose |
194
+ | ---------------------------- | ------------------------------------------- |
195
+ | `@angular/*` | Angular framework (6-11) |
196
+ | `@ngrx/*` | State management |
197
+ | `@ngx-translate/*` | Internationalization |
198
+ | `bootstrap` | CSS framework (when present) |
199
+ | `@ng-bootstrap/ng-bootstrap` | Angular Bootstrap components (when present) |
200
+ | `ngrx-store-localstorage` | NgRx localStorage sync |
201
+ | `@localize-router/*` | Localized routing |
202
+ | `ngx-swiper-wrapper` | Image swipers |
203
+
204
+ ### Common dev dependencies
205
+
206
+ | Package | Purpose |
207
+ | -------------------- | ---------------------- |
208
+ | `@angular/cli` | Angular CLI |
209
+ | `karma` | Test runner |
210
+ | `jasmine` | Test framework |
211
+ | `protractor` | E2E tests (deprecated) |
212
+ | `tslint` or `eslint` | Linting |
213
+
214
+ ## 6. Module Organization
215
+
216
+ ```typescript
217
+ // app.module.ts - Root module
218
+ @NgModule({
219
+ declarations: [AppComponent],
220
+ imports: [
221
+ BrowserModule,
222
+ AppRoutingModule,
223
+ HttpClientModule,
224
+ TranslateModule.forRoot({...}),
225
+ StoreModule.forRoot(reducers, { metaReducers }),
226
+ EffectsModule.forRoot([]),
227
+ FeatureModule,
228
+ ],
229
+ providers: [
230
+ { provide: HTTP_INTERCEPTORS, useClass: LanguageInterceptor, multi: true },
231
+ { provide: HTTP_INTERCEPTORS, useClass: CacheInterceptor, multi: true },
232
+ ],
233
+ bootstrap: [AppComponent],
234
+ })
235
+ export class AppModule {}
236
+ ```
237
+
238
+ ## 7. i18n Pattern (ngx-translate)
239
+
240
+ ```typescript
241
+ // app.module.ts
242
+ TranslateModule.forRoot({
243
+ loader: {
244
+ provide: TranslateLoader,
245
+ useFactory: HttpLoaderFactory,
246
+ deps: [HttpClient],
247
+ },
248
+ defaultLanguage: 'pl',
249
+ })
250
+
251
+ // Usage in templates
252
+ {{ 'HEADER.title' | translate }}
253
+
254
+ // Usage in code
255
+ constructor(private translate: TranslateService) {
256
+ this.translate.use('pl');
257
+ }
258
+ ```
259
+
260
+ ## 8. Best Practices
261
+
262
+ 1. **Use `ng generate`** for scaffolding new code
263
+ 2. **Always register in NgModule** - declarations, imports, exports
264
+ 3. **Use environment files** for config - never hardcode URLs
265
+ 4. **Use proxy.conf.json** for development API proxy
266
+ 5. **Check angular.json location** - may be in `app/` subdirectory
267
+ 6. **Use `--prod` flag** for production builds
268
+ 7. **Follow existing file organization** - don't introduce new folder structures
@@ -0,0 +1,182 @@
1
+ ---
2
+ name: angular-patterns
3
+ description: Angular 6-11 legacy patterns including *ngIf/*ngFor directives, constructor DI, @Input/@Output decorators, and NgRx state management
4
+ ---
5
+
6
+ # Angular 6-11 Patterns
7
+
8
+ This skill provides guidance on Angular 6-11 patterns for standalone projects.
9
+
10
+ ## CRITICAL: Use Legacy Patterns ONLY
11
+
12
+ **DO NOT use modern Angular features (Angular 14+):**
13
+
14
+ | Feature | CORRECT (Angular 6-11) | WRONG (Modern) |
15
+ | ------------ | ------------------------------- | ------------------------ |
16
+ | Control flow | `*ngIf`, `*ngFor`, `[ngSwitch]` | `@if`, `@for`, `@switch` |
17
+ | DI | Constructor injection | `inject()` |
18
+ | Inputs | `@Input()` decorator | `input()` function |
19
+ | Outputs | `@Output()` decorator | `output()` function |
20
+ | Two-way | `@Input()` + `@Output()` | `model()` |
21
+ | State | BehaviorSubject, NgRx | signals, `signal()` |
22
+ | Derived | `pipe(map())`, getters | `computed()` |
23
+ | Side effects | `subscribe()`, NgRx effects | `effect()` |
24
+ | Components | NgModule-based | standalone |
25
+
26
+ ## 1. Control Flow
27
+
28
+ ```html
29
+ <!-- *ngIf with else -->
30
+ <div *ngIf="isLoading; else content">
31
+ <app-spinner></app-spinner>
32
+ </div>
33
+ <ng-template #content>
34
+ <ul>
35
+ <li *ngFor="let item of items; trackBy: trackById">{{ item.name }}</li>
36
+ </ul>
37
+ </ng-template>
38
+ ```
39
+
40
+ ```typescript
41
+ trackById(index: number, item: Item): string {
42
+ return item.id;
43
+ }
44
+ ```
45
+
46
+ ## 2. BehaviorSubject State Management
47
+
48
+ ```typescript
49
+ @Injectable({ providedIn: 'root' })
50
+ export class StateService {
51
+ private readonly _items = new BehaviorSubject<Item[]>([]);
52
+ readonly items$ = this._items.asObservable();
53
+
54
+ readonly count$ = this._items.pipe(map((items) => items.length));
55
+
56
+ setItems(items: Item[]): void {
57
+ this._items.next(items);
58
+ }
59
+ }
60
+ ```
61
+
62
+ ## 3. Constructor Injection
63
+
64
+ ```typescript
65
+ @Component({
66
+ selector: 'app-feature',
67
+ templateUrl: './feature.component.html',
68
+ })
69
+ export class FeatureComponent implements OnInit, OnDestroy {
70
+ private readonly destroy$ = new Subject<void>();
71
+
72
+ constructor(
73
+ private readonly service: FeatureService,
74
+ private readonly router: Router,
75
+ ) {}
76
+
77
+ ngOnInit(): void {
78
+ this.service.items$
79
+ .pipe(takeUntil(this.destroy$))
80
+ .subscribe((items) => (this.items = items));
81
+ }
82
+
83
+ ngOnDestroy(): void {
84
+ this.destroy$.next();
85
+ this.destroy$.complete();
86
+ }
87
+ }
88
+ ```
89
+
90
+ ## 4. Input/Output Decorators
91
+
92
+ ```typescript
93
+ @Component({
94
+ selector: 'app-card',
95
+ templateUrl: './card.component.html',
96
+ })
97
+ export class CardComponent {
98
+ @Input() item!: Item;
99
+ @Input() showActions = true;
100
+ @Output() selected = new EventEmitter<Item>();
101
+
102
+ // Two-way binding
103
+ @Input() value = '';
104
+ @Output() valueChange = new EventEmitter<string>();
105
+ }
106
+ ```
107
+
108
+ ## 5. NgModule
109
+
110
+ ```typescript
111
+ @NgModule({
112
+ declarations: [FeatureComponent, CardComponent],
113
+ imports: [CommonModule, TranslateModule, NgbModule],
114
+ exports: [FeatureComponent],
115
+ })
116
+ export class FeatureModule {}
117
+ ```
118
+
119
+ ## 6. NgRx Patterns
120
+
121
+ ```typescript
122
+ // Actions
123
+ export const loadItems = createAction('[Items] Load');
124
+ export const loadItemsSuccess = createAction(
125
+ '[Items] Load Success',
126
+ props<{ items: Item[] }>(),
127
+ );
128
+
129
+ // Reducer
130
+ export const reducer = createReducer(
131
+ initialState,
132
+ on(loadItems, (state) => ({ ...state, loading: true })),
133
+ on(loadItemsSuccess, (state, { items }) => ({
134
+ ...state,
135
+ items,
136
+ loading: false,
137
+ })),
138
+ );
139
+
140
+ // Effects
141
+ @Injectable()
142
+ export class ItemEffects {
143
+ constructor(
144
+ private actions$: Actions,
145
+ private service: ItemService,
146
+ ) {}
147
+
148
+ load$ = createEffect(() =>
149
+ this.actions$.pipe(
150
+ ofType(loadItems),
151
+ mergeMap(() =>
152
+ this.service.getAll().pipe(
153
+ map((items) => loadItemsSuccess({ items })),
154
+ catchError((error) => of(loadItemsFailure({ error: error.message }))),
155
+ ),
156
+ ),
157
+ ),
158
+ );
159
+ }
160
+ ```
161
+
162
+ ## 7. Async Pipe
163
+
164
+ ```html
165
+ <div *ngIf="isLoading$ | async; else content">Loading...</div>
166
+ <ng-template #content>
167
+ <li *ngFor="let item of items$ | async; trackBy: trackById">
168
+ {{ item.name }}
169
+ </li>
170
+ </ng-template>
171
+ ```
172
+
173
+ ## 8. PR Checklist
174
+
175
+ - [ ] Using `*ngIf`/`*ngFor` (NOT `@if`/`@for`)
176
+ - [ ] Every `*ngFor` has `trackBy`
177
+ - [ ] Using constructor DI (NOT `inject()`)
178
+ - [ ] Using `@Input()`/`@Output()` (NOT `input()`/`output()`)
179
+ - [ ] Using BehaviorSubject/NgRx for state (NOT signals)
180
+ - [ ] Component declared in NgModule
181
+ - [ ] Using `async` pipe in templates
182
+ - [ ] `OnDestroy` with `takeUntil` pattern
@@ -0,0 +1,74 @@
1
+ ---
2
+ name: browser-capture
3
+ description: Manage browser sessions and capture screenshots. Ensures dev server is running, navigates to pages, and captures responsive screenshots.
4
+ allowed-tools:
5
+ - Bash
6
+ - Read
7
+ - Glob
8
+ - mcp__playwright__browser_navigate
9
+ - mcp__playwright__browser_snapshot
10
+ - mcp__playwright__browser_take_screenshot
11
+ - mcp__playwright__browser_resize
12
+ - mcp__playwright__browser_close
13
+ ---
14
+
15
+ # Browser Capture Skill
16
+
17
+ Capture screenshots of web pages at multiple viewport sizes.
18
+
19
+ ## Server Management
20
+
21
+ ### Detect Port
22
+
23
+ ```bash
24
+ # Check angular.json location and read port
25
+ if [ -f "angular.json" ]; then
26
+ grep -o '"port":[^,}]*' angular.json | head -1
27
+ elif [ -f "app/angular.json" ]; then
28
+ grep -o '"port":[^,}]*' app/angular.json | head -1
29
+ fi
30
+ # Default: 4200
31
+ ```
32
+
33
+ ### Start Server if Needed
34
+
35
+ ```bash
36
+ lsof -i :4200 -t || (npm start & for i in {1..15}; do curl -s http://localhost:4200 > /dev/null && break; sleep 2; done)
37
+ ```
38
+
39
+ ## Capture Process
40
+
41
+ 1. Ensure server is running
42
+ 2. Navigate to URL with `mcp__playwright__browser_navigate`
43
+ 3. For each viewport:
44
+ - `mcp__playwright__browser_resize` → set dimensions
45
+ - `mcp__playwright__browser_take_screenshot` → capture
46
+
47
+ ### Viewport Sizes
48
+
49
+ | Name | Width | Height |
50
+ | ------- | ----- | ------ |
51
+ | Desktop | 1920 | 1080 |
52
+ | Tablet | 768 | 1024 |
53
+ | Mobile | 375 | 667 |
54
+
55
+ ## Upload
56
+
57
+ Delegate to `maia-api` agent for upload to temporary storage.
58
+
59
+ ## Output
60
+
61
+ ```json
62
+ {
63
+ "screenshots": [
64
+ {
65
+ "viewport": "desktop",
66
+ "url": "https://maia-ai-api.smartsoft.biz.pl/files/abc123"
67
+ },
68
+ {
69
+ "viewport": "mobile",
70
+ "url": "https://maia-ai-api.smartsoft.biz.pl/files/def456"
71
+ }
72
+ ]
73
+ }
74
+ ```
@@ -0,0 +1,114 @@
1
+ ---
2
+ name: commit
3
+ description: Create a conventional commit message based on Linear task and staged changes. Fetches task details, analyzes changes, and generates commit message.
4
+ allowed-tools:
5
+ - Bash
6
+ - Read
7
+ - Glob
8
+ - Grep
9
+ - AskUserQuestion
10
+ - mcp__linear__get_issue
11
+ - mcp__linear__list_comments
12
+ ---
13
+
14
+ # Commit Skill
15
+
16
+ Create a conventional commit message based on Linear task and staged changes.
17
+
18
+ ## Usage
19
+
20
+ ```
21
+ /commit [linearTaskId]
22
+ ```
23
+
24
+ ## Parameters
25
+
26
+ - `linearTaskId` - Linear task ID (e.g., FRA-123)
27
+
28
+ ## Execution Checklist
29
+
30
+ - [ ] **1. Fetch Linear task** — get title, description, labels/type from MCP Linear server
31
+ - [ ] **2. Analyze staged changes** — run `git diff --cached` to understand scope
32
+ - [ ] **3. Verify completeness** — compare task requirements with staged changes; if incomplete, ask user whether to continue or stop
33
+ - [ ] **4. Determine commit type and scope** — based on changes and task type
34
+ - [ ] **5. Generate commit message** — draft `<type>(<scope>): <subject>` with body and `Refs: <linearTaskId>`
35
+ - [ ] **6. Show message to user** — present commit message for approval before proceeding
36
+ - [ ] **7. Create commit** — execute `git commit` with the approved message
37
+
38
+ ## Commit Message Format
39
+
40
+ ```
41
+ <type>(<scope>): <subject>
42
+
43
+ <body>
44
+
45
+ Refs: <linearTaskId>
46
+ ```
47
+
48
+ ### Type
49
+
50
+ | Type | Use when |
51
+ | ---------- | ------------------------------------------ |
52
+ | `feat` | New feature or functionality |
53
+ | `fix` | Bug fix |
54
+ | `refactor` | Code restructuring without behavior change |
55
+ | `style` | Styling/CSS changes only |
56
+ | `docs` | Documentation changes |
57
+ | `chore` | Maintenance, config, dependencies |
58
+ | `perf` | Performance improvements |
59
+
60
+ ### Scope
61
+
62
+ Determine scope from the changed files and project structure. Common scopes for external projects:
63
+
64
+ - Component name (e.g., `gallery`, `articles`, `navigation`)
65
+ - Feature area (e.g., `wcag`, `i18n`, `auth`)
66
+ - Infrastructure (e.g., `config`, `docker`)
67
+
68
+ ### Subject
69
+
70
+ - Imperative mood ("add feature" not "added feature")
71
+ - Lowercase first letter
72
+ - No period at end
73
+ - Max 72 characters
74
+
75
+ ### Body
76
+
77
+ - Explain WHAT changed and WHY
78
+ - Reference Linear task
79
+ - List affected files if helpful
80
+
81
+ ## Example
82
+
83
+ ```
84
+ feat(gallery): add lightbox for exhibition photos
85
+
86
+ Add lightbox modal for viewing gallery photos in full screen.
87
+ Uses ng-bootstrap modal with keyboard navigation support.
88
+
89
+ Refs: FRA-548
90
+ ```
91
+
92
+ ## Error Handling
93
+
94
+ ### No Staged Changes
95
+
96
+ ```markdown
97
+ ## No staged changes
98
+
99
+ Run `git add` to stage your changes before committing.
100
+ ```
101
+
102
+ ### Linear Task Not Found
103
+
104
+ If linearTaskId is not provided or task not found:
105
+
106
+ - Try to detect from branch name
107
+ - If still not found, proceed without Linear context
108
+
109
+ ## Guidelines
110
+
111
+ 1. **Always show commit message for approval** before creating the commit
112
+ 2. **Use Polish branch naming** if branch follows FRA-XXX pattern
113
+ 3. **Include Refs:** with Linear task ID when available
114
+ 4. **Keep subject line under 72 characters**