@smartsoft001-mobilems/claude-plugins 2.67.0 → 2.69.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 (33) hide show
  1. package/.claude-plugin/marketplace.json +4 -0
  2. package/package.json +1 -1
  3. package/plugins/flow/.claude-plugin/plugin.json +1 -1
  4. package/plugins/flow-legacy/.claude-plugin/README.md +143 -0
  5. package/plugins/flow-legacy/.claude-plugin/merge-permissions.js +80 -0
  6. package/plugins/flow-legacy/.claude-plugin/plugin.json +5 -0
  7. package/plugins/flow-legacy/.claude-plugin/settings.template.json +75 -0
  8. package/plugins/flow-legacy/agents/angular-component-scaffolder.md +323 -0
  9. package/plugins/flow-legacy/agents/angular-directive-builder.md +258 -0
  10. package/plugins/flow-legacy/agents/angular-guard-builder.md +322 -0
  11. package/plugins/flow-legacy/agents/angular-pipe-builder.md +227 -0
  12. package/plugins/flow-legacy/agents/angular-resolver-builder.md +332 -0
  13. package/plugins/flow-legacy/agents/angular-service-builder.md +271 -0
  14. package/plugins/flow-legacy/agents/angular-state-builder.md +473 -0
  15. package/plugins/flow-legacy/agents/shared-impl-orchestrator.md +161 -0
  16. package/plugins/flow-legacy/agents/shared-impl-reporter.md +204 -0
  17. package/plugins/flow-legacy/agents/shared-linear-subtask-iterator.md +187 -0
  18. package/plugins/flow-legacy/agents/shared-tdd-developer.md +304 -0
  19. package/plugins/flow-legacy/agents/shared-test-runner.md +131 -0
  20. package/plugins/flow-legacy/agents/shared-ui-classifier.md +137 -0
  21. package/plugins/flow-legacy/commands/commit.md +162 -0
  22. package/plugins/flow-legacy/commands/impl.md +495 -0
  23. package/plugins/flow-legacy/commands/plan.md +488 -0
  24. package/plugins/flow-legacy/commands/push.md +470 -0
  25. package/plugins/flow-legacy/skills/a11y-audit/SKILL.md +214 -0
  26. package/plugins/flow-legacy/skills/angular-patterns/SKILL.md +361 -0
  27. package/plugins/flow-legacy/skills/browser-capture/SKILL.md +238 -0
  28. package/plugins/flow-legacy/skills/debug-helper/SKILL.md +387 -0
  29. package/plugins/flow-legacy/skills/linear-suggestion/SKILL.md +132 -0
  30. package/plugins/flow-legacy/skills/maia-files-delete/SKILL.md +59 -0
  31. package/plugins/flow-legacy/skills/maia-files-upload/SKILL.md +57 -0
  32. package/plugins/flow-legacy/skills/nx-conventions/SKILL.md +371 -0
  33. package/plugins/flow-legacy/skills/test-unit/SKILL.md +494 -0
@@ -0,0 +1,371 @@
1
+ ---
2
+ name: nx-conventions
3
+ description: Nx 14 monorepo patterns with @nrwl/* packages, workspace organization, and build conventions
4
+ ---
5
+
6
+ # Nx 14 Conventions (Legacy)
7
+
8
+ This skill provides guidance on Nx 14 monorepo patterns for legacy projects using `@nrwl/*` packages.
9
+
10
+ ## CRITICAL: Nx 14 vs Modern Nx
11
+
12
+ | Feature | Nx 14 (Legacy) | Nx 21+ (Modern) |
13
+ |---------|---------------|-----------------|
14
+ | Packages | `@nrwl/*` | `@nx/*` |
15
+ | Node.js | 18.x | 20.x / 22.x |
16
+ | Angular | 14.x | 20.x |
17
+ | Config | `workspace.json` or `project.json` | `project.json` |
18
+
19
+ ## 1. Workspace Structure
20
+
21
+ ```
22
+ /
23
+ ├── apps/
24
+ │ ├── web/ # Main Angular 14 application
25
+ │ └── web-e2e/ # Cypress E2E tests
26
+ ├── libs/
27
+ │ └── shared/
28
+ │ └── angular/ # Shared Angular library
29
+ ├── tools/
30
+ │ ├── specs/ # Project specifications
31
+ │ └── mockups/ # Design mockups
32
+ ├── nx.json # Nx workspace configuration
33
+ ├── tsconfig.base.json # Base TypeScript config
34
+ └── package.json
35
+ ```
36
+
37
+ ## 2. Project Naming
38
+
39
+ | Type | Pattern | Example |
40
+ | ------------------- | ------------------------ | ------------------------------ |
41
+ | Apps | `{name}` | `web`, `api` |
42
+ | E2E | `{app}-e2e` | `web-e2e` |
43
+ | Domain libs | `{domain}-domain` | `museum-objects-domain` |
44
+ | Angular libs | `{domain}-shell-angular` | `museum-objects-shell-angular` |
45
+ | Shared angular libs | `shared-angular` | `shared-angular` |
46
+
47
+ ## 3. Common Nx 14 Commands
48
+
49
+ ### Development
50
+
51
+ ```bash
52
+ # Serve application
53
+ nx serve web
54
+
55
+ # Serve with specific configuration
56
+ nx serve web --configuration=development
57
+
58
+ # Build application
59
+ nx build web
60
+
61
+ # Build for production
62
+ nx build web --configuration=production
63
+ ```
64
+
65
+ ### Testing
66
+
67
+ ```bash
68
+ # Run unit tests
69
+ nx test web
70
+ nx test shared-angular
71
+
72
+ # Run tests with coverage
73
+ nx test web --coverage
74
+
75
+ # Run tests in watch mode
76
+ nx test web --watch
77
+
78
+ # Run E2E tests
79
+ nx e2e web-e2e
80
+
81
+ # Open Cypress
82
+ nx open-cypress web-e2e
83
+ ```
84
+
85
+ ### Linting
86
+
87
+ ```bash
88
+ # Lint project
89
+ nx lint web
90
+ nx lint shared-angular
91
+
92
+ # Lint all affected projects
93
+ nx affected --target=lint
94
+ ```
95
+
96
+ ### Building
97
+
98
+ ```bash
99
+ # Build single project
100
+ nx build web
101
+
102
+ # Build affected projects
103
+ nx affected --target=build
104
+
105
+ # Show dependency graph
106
+ nx graph
107
+ ```
108
+
109
+ ## 4. Affected Commands
110
+
111
+ Run tasks only on changed projects:
112
+
113
+ ```bash
114
+ # Test affected
115
+ nx affected --target=test
116
+
117
+ # Lint affected
118
+ nx affected --target=lint
119
+
120
+ # Build affected
121
+ nx affected --target=build
122
+
123
+ # Specify base branch
124
+ nx affected --target=test --base=main
125
+ ```
126
+
127
+ ## 5. Project Configuration (Nx 14)
128
+
129
+ ### project.json (Nx 14 format)
130
+
131
+ ```json
132
+ {
133
+ "name": "web",
134
+ "$schema": "../../node_modules/nx/schemas/project-schema.json",
135
+ "projectType": "application",
136
+ "sourceRoot": "apps/web/src",
137
+ "prefix": "app",
138
+ "targets": {
139
+ "build": {
140
+ "executor": "@angular-devkit/build-angular:browser",
141
+ "options": {
142
+ "outputPath": "dist/apps/web",
143
+ "index": "apps/web/src/index.html",
144
+ "main": "apps/web/src/main.ts",
145
+ "polyfills": "apps/web/src/polyfills.ts",
146
+ "tsConfig": "apps/web/tsconfig.app.json",
147
+ "assets": ["apps/web/src/favicon.ico", "apps/web/src/assets"],
148
+ "styles": ["apps/web/src/styles.scss"],
149
+ "scripts": []
150
+ },
151
+ "configurations": {
152
+ "production": {
153
+ "budgets": [
154
+ {
155
+ "type": "initial",
156
+ "maximumWarning": "2MB",
157
+ "maximumError": "4MB"
158
+ }
159
+ ],
160
+ "outputHashing": "all",
161
+ "optimization": true
162
+ },
163
+ "development": {
164
+ "buildOptimizer": false,
165
+ "optimization": false,
166
+ "vendorChunk": true,
167
+ "extractLicenses": false,
168
+ "sourceMap": true
169
+ }
170
+ },
171
+ "defaultConfiguration": "development"
172
+ },
173
+ "serve": {
174
+ "executor": "@angular-devkit/build-angular:dev-server",
175
+ "options": {
176
+ "browserTarget": "web:build",
177
+ "port": 4200
178
+ },
179
+ "configurations": {
180
+ "production": {
181
+ "browserTarget": "web:build:production"
182
+ },
183
+ "development": {
184
+ "browserTarget": "web:build:development"
185
+ }
186
+ },
187
+ "defaultConfiguration": "development"
188
+ },
189
+ "test": {
190
+ "executor": "@nrwl/jest:jest",
191
+ "options": {
192
+ "jestConfig": "apps/web/jest.config.ts",
193
+ "passWithNoTests": true
194
+ },
195
+ "outputs": ["{workspaceRoot}/coverage/apps/web"]
196
+ },
197
+ "lint": {
198
+ "executor": "@nrwl/linter:eslint",
199
+ "options": {
200
+ "lintFilePatterns": [
201
+ "apps/web/src/**/*.ts",
202
+ "apps/web/src/**/*.html"
203
+ ]
204
+ }
205
+ }
206
+ }
207
+ }
208
+ ```
209
+
210
+ ## 6. Path Mappings
211
+
212
+ In `tsconfig.base.json`:
213
+
214
+ ```json
215
+ {
216
+ "compilerOptions": {
217
+ "paths": {
218
+ "@shared/angular": ["libs/shared/angular/src/index.ts"],
219
+ "@shared/angular/*": ["libs/shared/angular/src/lib/*"]
220
+ }
221
+ }
222
+ }
223
+ ```
224
+
225
+ Usage:
226
+
227
+ ```typescript
228
+ import { SharedModule } from '@shared/angular';
229
+ import { MyService } from '@shared/angular/services';
230
+ ```
231
+
232
+ ## 7. Library Types
233
+
234
+ ### Feature Library
235
+
236
+ Contains smart components, routes, and business logic.
237
+
238
+ ```typescript
239
+ // libs/museum/feature-objects/src/index.ts
240
+ export * from './lib/objects.module';
241
+ export * from './lib/containers';
242
+ ```
243
+
244
+ ### UI Library
245
+
246
+ Contains presentational (dumb) components only.
247
+
248
+ ```typescript
249
+ // libs/shared/ui/src/index.ts
250
+ export * from './lib/button/button.component';
251
+ export * from './lib/card/card.component';
252
+ ```
253
+
254
+ ### Data Access Library
255
+
256
+ Contains services, state management, and API calls.
257
+
258
+ ```typescript
259
+ // libs/museum/data-access/src/index.ts
260
+ export * from './lib/services/objects.service';
261
+ export * from './lib/+state/objects.facade';
262
+ ```
263
+
264
+ ### Utility Library
265
+
266
+ Contains pure functions, helpers, and utilities.
267
+
268
+ ```typescript
269
+ // libs/shared/util-forms/src/index.ts
270
+ export * from './lib/validators';
271
+ export * from './lib/form-helpers';
272
+ ```
273
+
274
+ ## 8. Caching
275
+
276
+ Nx caches task results. Configure in `nx.json`:
277
+
278
+ ```json
279
+ {
280
+ "targetDefaults": {
281
+ "build": {
282
+ "cache": true,
283
+ "dependsOn": ["^build"]
284
+ },
285
+ "test": {
286
+ "cache": true
287
+ },
288
+ "lint": {
289
+ "cache": true
290
+ }
291
+ }
292
+ }
293
+ ```
294
+
295
+ ## 9. Task Dependencies
296
+
297
+ Define task execution order:
298
+
299
+ ```json
300
+ {
301
+ "targetDefaults": {
302
+ "build": {
303
+ "dependsOn": ["^build"]
304
+ },
305
+ "test": {
306
+ "dependsOn": ["build"]
307
+ }
308
+ }
309
+ }
310
+ ```
311
+
312
+ - `^build` means build dependencies first
313
+ - `build` means build this project first
314
+
315
+ ## 10. Generators (Nx 14 / @nrwl)
316
+
317
+ Create new code with generators:
318
+
319
+ ```bash
320
+ # Generate Angular component
321
+ nx g @nrwl/angular:component my-component --project=shared-angular
322
+
323
+ # Generate Angular service
324
+ nx g @nrwl/angular:service my-service --project=shared-angular
325
+
326
+ # Generate library
327
+ nx g @nrwl/angular:library my-lib --directory=shared
328
+
329
+ # Generate module
330
+ nx g @nrwl/angular:module my-module --project=shared-angular
331
+
332
+ # Dry run (preview changes)
333
+ nx g @nrwl/angular:component my-component --dry-run
334
+ ```
335
+
336
+ ## 11. CI/CD Integration
337
+
338
+ ```yaml
339
+ # Example GitHub Actions
340
+ - name: Install dependencies
341
+ run: npm ci
342
+
343
+ - name: Run affected lint
344
+ run: npx nx affected --target=lint --base=origin/main
345
+
346
+ - name: Run affected test
347
+ run: npx nx affected --target=test --base=origin/main
348
+
349
+ - name: Run affected build
350
+ run: npx nx affected --target=build --base=origin/main --configuration=production
351
+ ```
352
+
353
+ ## 12. Best Practices (Nx 14)
354
+
355
+ 1. **Keep apps thin** - Business logic in libraries
356
+ 2. **Use affected** - Only build/test what changed
357
+ 3. **Leverage caching** - Let Nx cache task results
358
+ 4. **Consistent naming** - Follow naming conventions
359
+ 5. **Define boundaries** - Use tags and constraints
360
+ 6. **Path aliases** - Use `@scope/lib` imports
361
+ 7. **Use @nrwl packages** - NOT @nx packages in Nx 14
362
+
363
+ ## 13. Package Differences
364
+
365
+ | Feature | @nrwl (Nx 14) | @nx (Modern) |
366
+ |---------|--------------|--------------|
367
+ | Jest | `@nrwl/jest:jest` | `@nx/jest:jest` |
368
+ | Linter | `@nrwl/linter:eslint` | `@nx/eslint:lint` |
369
+ | Angular | `@nrwl/angular:*` | `@nx/angular:*` |
370
+ | Node | `@nrwl/node:*` | `@nx/node:*` |
371
+ | Cypress | `@nrwl/cypress:*` | `@nx/cypress:*` |