@smicolon/ai-kit 0.3.2 → 0.4.1

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 (155) hide show
  1. package/README.md +73 -40
  2. package/dist/index.js +312 -127
  3. package/package.json +5 -5
  4. package/.claude-plugin/marketplace.json +0 -369
  5. package/packs/architect/CHANGELOG.md +0 -17
  6. package/packs/architect/README.md +0 -58
  7. package/packs/architect/agents/system-architect.md +0 -768
  8. package/packs/architect/commands/diagram-create.md +0 -300
  9. package/packs/better-auth/.mcp.json +0 -14
  10. package/packs/better-auth/CHANGELOG.md +0 -26
  11. package/packs/better-auth/README.md +0 -125
  12. package/packs/better-auth/agents/auth-architect.md +0 -278
  13. package/packs/better-auth/commands/auth-provider-add.md +0 -265
  14. package/packs/better-auth/commands/auth-setup.md +0 -298
  15. package/packs/better-auth/skills/auth-security/SKILL.md +0 -425
  16. package/packs/better-auth/skills/better-auth-patterns/SKILL.md +0 -455
  17. package/packs/dev-loop/CHANGELOG.md +0 -69
  18. package/packs/dev-loop/README.md +0 -155
  19. package/packs/dev-loop/commands/cancel-dev.md +0 -21
  20. package/packs/dev-loop/commands/dev-loop.md +0 -72
  21. package/packs/dev-loop/commands/dev-plan.md +0 -351
  22. package/packs/dev-loop/hooks/hooks.json +0 -15
  23. package/packs/dev-loop/hooks/stop-hook.sh +0 -178
  24. package/packs/dev-loop/scripts/setup-dev-loop.sh +0 -194
  25. package/packs/dev-loop/skills/tdd-planner/SKILL.md +0 -249
  26. package/packs/dev-loop/skills/tdd-planner/references/framework-patterns.md +0 -874
  27. package/packs/dev-loop/skills/tdd-planner/references/good-example.md +0 -260
  28. package/packs/dev-loop/skills/tdd-planner/references/plan-template.md +0 -275
  29. package/packs/django/CHANGELOG.md +0 -39
  30. package/packs/django/README.md +0 -92
  31. package/packs/django/agents/django-architect.md +0 -182
  32. package/packs/django/agents/django-builder.md +0 -250
  33. package/packs/django/agents/django-feature-based.md +0 -420
  34. package/packs/django/agents/django-reviewer.md +0 -253
  35. package/packs/django/agents/django-tester.md +0 -230
  36. package/packs/django/commands/api-endpoint.md +0 -285
  37. package/packs/django/commands/model-create.md +0 -178
  38. package/packs/django/commands/test-generate.md +0 -325
  39. package/packs/django/rules/migrations.md +0 -138
  40. package/packs/django/rules/models.md +0 -167
  41. package/packs/django/rules/serializers.md +0 -126
  42. package/packs/django/rules/services.md +0 -131
  43. package/packs/django/rules/tests.md +0 -140
  44. package/packs/django/rules/views.md +0 -102
  45. package/packs/django/skills/import-convention-enforcer/SKILL.md +0 -226
  46. package/packs/django/skills/import-convention-enforcer/patterns/django-imports.md +0 -343
  47. package/packs/django/skills/migration-safety-checker/SKILL.md +0 -375
  48. package/packs/django/skills/model-entity-validator/SKILL.md +0 -298
  49. package/packs/django/skills/performance-optimizer/SKILL.md +0 -447
  50. package/packs/django/skills/red-phase-verifier/SKILL.md +0 -180
  51. package/packs/django/skills/security-first-validator/SKILL.md +0 -435
  52. package/packs/django/skills/test-coverage-advisor/SKILL.md +0 -394
  53. package/packs/django/skills/test-validity-checker/SKILL.md +0 -194
  54. package/packs/failure-log/CHANGELOG.md +0 -20
  55. package/packs/failure-log/README.md +0 -168
  56. package/packs/failure-log/commands/failure-add.md +0 -106
  57. package/packs/failure-log/commands/failure-list.md +0 -89
  58. package/packs/failure-log/hooks/hooks.json +0 -16
  59. package/packs/failure-log/hooks/scripts/inject-failures.sh +0 -64
  60. package/packs/failure-log/skills/failure-log-manager/SKILL.md +0 -164
  61. package/packs/flutter/CHANGELOG.md +0 -19
  62. package/packs/flutter/README.md +0 -170
  63. package/packs/flutter/agents/flutter-architect.md +0 -166
  64. package/packs/flutter/agents/flutter-builder.md +0 -303
  65. package/packs/flutter/agents/release-manager.md +0 -355
  66. package/packs/flutter/commands/fastlane-setup.md +0 -188
  67. package/packs/flutter/commands/flutter-build.md +0 -90
  68. package/packs/flutter/commands/flutter-deploy.md +0 -133
  69. package/packs/flutter/commands/flutter-test.md +0 -117
  70. package/packs/flutter/commands/signing-setup.md +0 -209
  71. package/packs/flutter/hooks/hooks.json +0 -17
  72. package/packs/flutter/skills/fastlane-knowledge/SKILL.md +0 -193
  73. package/packs/flutter/skills/flutter-architecture/SKILL.md +0 -127
  74. package/packs/flutter/skills/store-publishing/SKILL.md +0 -163
  75. package/packs/hono/CHANGELOG.md +0 -19
  76. package/packs/hono/README.md +0 -143
  77. package/packs/hono/agents/hono-architect.md +0 -240
  78. package/packs/hono/agents/hono-builder.md +0 -285
  79. package/packs/hono/agents/hono-reviewer.md +0 -279
  80. package/packs/hono/agents/hono-tester.md +0 -346
  81. package/packs/hono/commands/middleware-create.md +0 -223
  82. package/packs/hono/commands/project-init.md +0 -306
  83. package/packs/hono/commands/route-create.md +0 -153
  84. package/packs/hono/commands/rpc-client.md +0 -263
  85. package/packs/hono/skills/cloudflare-bindings/SKILL.md +0 -408
  86. package/packs/hono/skills/hono-patterns/SKILL.md +0 -309
  87. package/packs/hono/skills/rpc-typesafe/SKILL.md +0 -388
  88. package/packs/hono/skills/zod-validation/SKILL.md +0 -332
  89. package/packs/nestjs/CHANGELOG.md +0 -29
  90. package/packs/nestjs/README.md +0 -75
  91. package/packs/nestjs/agents/nestjs-architect.md +0 -402
  92. package/packs/nestjs/agents/nestjs-builder.md +0 -301
  93. package/packs/nestjs/agents/nestjs-tester.md +0 -437
  94. package/packs/nestjs/commands/module-create.md +0 -369
  95. package/packs/nestjs/rules/controllers.md +0 -92
  96. package/packs/nestjs/rules/dto.md +0 -124
  97. package/packs/nestjs/rules/entities.md +0 -102
  98. package/packs/nestjs/rules/services.md +0 -106
  99. package/packs/nestjs/skills/barrel-export-manager/SKILL.md +0 -389
  100. package/packs/nestjs/skills/import-convention-enforcer/SKILL.md +0 -365
  101. package/packs/nextjs/CHANGELOG.md +0 -36
  102. package/packs/nextjs/README.md +0 -76
  103. package/packs/nextjs/agents/frontend-tester.md +0 -680
  104. package/packs/nextjs/agents/frontend-visual.md +0 -820
  105. package/packs/nextjs/agents/nextjs-architect.md +0 -331
  106. package/packs/nextjs/agents/nextjs-modular.md +0 -433
  107. package/packs/nextjs/commands/component-create.md +0 -398
  108. package/packs/nextjs/rules/api-routes.md +0 -129
  109. package/packs/nextjs/rules/components.md +0 -106
  110. package/packs/nextjs/rules/hooks.md +0 -132
  111. package/packs/nextjs/skills/accessibility-validator/SKILL.md +0 -445
  112. package/packs/nextjs/skills/import-convention-enforcer/SKILL.md +0 -399
  113. package/packs/nextjs/skills/react-form-validator/SKILL.md +0 -569
  114. package/packs/nuxtjs/CHANGELOG.md +0 -30
  115. package/packs/nuxtjs/README.md +0 -56
  116. package/packs/nuxtjs/agents/frontend-tester.md +0 -680
  117. package/packs/nuxtjs/agents/frontend-visual.md +0 -820
  118. package/packs/nuxtjs/agents/nuxtjs-architect.md +0 -537
  119. package/packs/nuxtjs/commands/component-create.md +0 -223
  120. package/packs/nuxtjs/rules/components.md +0 -101
  121. package/packs/nuxtjs/rules/composables.md +0 -118
  122. package/packs/nuxtjs/rules/server-routes.md +0 -127
  123. package/packs/nuxtjs/skills/accessibility-validator/SKILL.md +0 -183
  124. package/packs/nuxtjs/skills/import-convention-enforcer/SKILL.md +0 -196
  125. package/packs/nuxtjs/skills/veevalidate-form-validator/SKILL.md +0 -190
  126. package/packs/onboard/CHANGELOG.md +0 -22
  127. package/packs/onboard/README.md +0 -103
  128. package/packs/onboard/agents/onboard-guide.md +0 -118
  129. package/packs/onboard/commands/onboard.md +0 -313
  130. package/packs/onboard/skills/onboard-context-provider/SKILL.md +0 -98
  131. package/packs/tanstack-router/CHANGELOG.md +0 -30
  132. package/packs/tanstack-router/README.md +0 -113
  133. package/packs/tanstack-router/agents/tanstack-architect.md +0 -173
  134. package/packs/tanstack-router/agents/tanstack-builder.md +0 -360
  135. package/packs/tanstack-router/agents/tanstack-tester.md +0 -454
  136. package/packs/tanstack-router/commands/form-create.md +0 -313
  137. package/packs/tanstack-router/commands/query-create.md +0 -263
  138. package/packs/tanstack-router/commands/route-create.md +0 -190
  139. package/packs/tanstack-router/commands/table-create.md +0 -413
  140. package/packs/tanstack-router/skills/ai-patterns/SKILL.md +0 -370
  141. package/packs/tanstack-router/skills/db-patterns/SKILL.md +0 -346
  142. package/packs/tanstack-router/skills/devtools-patterns/SKILL.md +0 -415
  143. package/packs/tanstack-router/skills/form-patterns/SKILL.md +0 -425
  144. package/packs/tanstack-router/skills/pacer-patterns/SKILL.md +0 -341
  145. package/packs/tanstack-router/skills/query-patterns/SKILL.md +0 -359
  146. package/packs/tanstack-router/skills/router-patterns/SKILL.md +0 -285
  147. package/packs/tanstack-router/skills/store-patterns/SKILL.md +0 -351
  148. package/packs/tanstack-router/skills/table-patterns/SKILL.md +0 -531
  149. package/packs/tanstack-router/skills/tanstack-conventions/SKILL.md +0 -428
  150. package/packs/tanstack-router/skills/virtual-patterns/SKILL.md +0 -490
  151. package/packs/worktree/CHANGELOG.md +0 -45
  152. package/packs/worktree/README.md +0 -219
  153. package/packs/worktree/commands/wt.md +0 -93
  154. package/packs/worktree/scripts/wt.sh +0 -957
  155. package/packs/worktree/skills/worktree-manager/SKILL.md +0 -113
@@ -1,106 +0,0 @@
1
- ---
2
- paths:
3
- - "**/*.service.ts"
4
- ---
5
-
6
- # NestJS Service Standards
7
-
8
- ## Structure
9
-
10
- ```typescript
11
- import { Injectable, NotFoundException } from '@nestjs/common'
12
- import { InjectRepository } from '@nestjs/typeorm'
13
- import { Repository } from 'typeorm'
14
- import { User } from 'src/users/entities'
15
- import { CreateUserDto, UpdateUserDto } from 'src/users/dto'
16
-
17
- @Injectable()
18
- export class UsersService {
19
- constructor(
20
- @InjectRepository(User)
21
- private readonly usersRepository: Repository<User>,
22
- ) {}
23
-
24
- async findAll(): Promise<User[]> {
25
- return this.usersRepository.find()
26
- }
27
-
28
- async findOne(id: string): Promise<User> {
29
- const user = await this.usersRepository.findOne({ where: { id } })
30
- if (!user) {
31
- throw new NotFoundException(`User with ID ${id} not found`)
32
- }
33
- return user
34
- }
35
-
36
- async create(dto: CreateUserDto): Promise<User> {
37
- const user = this.usersRepository.create(dto)
38
- return this.usersRepository.save(user)
39
- }
40
-
41
- async update(id: string, dto: UpdateUserDto): Promise<User> {
42
- const user = await this.findOne(id)
43
- Object.assign(user, dto)
44
- return this.usersRepository.save(user)
45
- }
46
-
47
- async remove(id: string): Promise<void> {
48
- await this.usersRepository.softDelete(id)
49
- }
50
- }
51
- ```
52
-
53
- ## Requirements
54
-
55
- - @Injectable() decorator
56
- - Constructor injection for repositories
57
- - Proper error handling with NestJS exceptions
58
- - Soft delete using softDelete()
59
- - Absolute imports from barrel exports
60
-
61
- ## Import Pattern
62
-
63
- ```typescript
64
- // CORRECT
65
- import { User } from 'src/users/entities'
66
- import { CreateUserDto } from 'src/users/dto'
67
-
68
- // WRONG
69
- import { User } from './entities/user.entity'
70
- ```
71
-
72
- ## Transaction Support
73
-
74
- ```typescript
75
- import { DataSource } from 'typeorm'
76
-
77
- @Injectable()
78
- export class OrdersService {
79
- constructor(
80
- private readonly dataSource: DataSource,
81
- @InjectRepository(Order)
82
- private readonly ordersRepository: Repository<Order>,
83
- ) {}
84
-
85
- async createWithItems(dto: CreateOrderDto): Promise<Order> {
86
- return this.dataSource.transaction(async manager => {
87
- const order = manager.create(Order, { userId: dto.userId })
88
- await manager.save(order)
89
-
90
- for (const item of dto.items) {
91
- const orderItem = manager.create(OrderItem, { ...item, orderId: order.id })
92
- await manager.save(orderItem)
93
- }
94
-
95
- return order
96
- })
97
- }
98
- }
99
- ```
100
-
101
- ## Forbidden Patterns
102
-
103
- - Missing @Injectable() decorator
104
- - Direct database operations without repository
105
- - Catching exceptions without re-throwing
106
- - Hard deletes (use softDelete)
@@ -1,389 +0,0 @@
1
- ---
2
- name: barrel-export-manager
3
- description: This skill should be used when the user asks to "create barrel exports", "add index.ts", "organize exports", "create entity", "add DTO", "create service", or when adding files to NestJS module directories. Auto-maintains barrel exports.
4
- ---
5
-
6
- # Barrel Export Manager
7
-
8
- Auto-creates and maintains `index.ts` barrel export files in NestJS modules for clean, maintainable imports.
9
-
10
- ## Activation Triggers
11
-
12
- This skill activates when:
13
- - Creating new entity, DTO, service, controller, guard, decorator
14
- - Adding files to module directories
15
- - Organizing NestJS module structure
16
- - Mentioning "NestJS", "module", "create"
17
- - Importing from module directories
18
-
19
- ## Required Pattern (MANDATORY)
20
-
21
- Every NestJS module folder MUST have `index.ts` barrel exports:
22
-
23
- ```
24
- users/
25
- ├── entities/
26
- │ ├── user.entity.ts
27
- │ ├── profile.entity.ts
28
- │ └── index.ts # ✅ Barrel export
29
- ├── dto/
30
- │ ├── create-user.dto.ts
31
- │ ├── update-user.dto.ts
32
- │ └── index.ts # ✅ Barrel export
33
- ├── services/
34
- │ ├── users.service.ts
35
- │ └── index.ts # ✅ Barrel export
36
- └── controllers/
37
- ├── users.controller.ts
38
- └── index.ts # ✅ Barrel export
39
- ```
40
-
41
- ## Auto-Management Process
42
-
43
- ### Step 1: Detect New File
44
-
45
- When user creates:
46
- ```typescript
47
- // users/entities/user.entity.ts
48
- @Entity('users')
49
- export class User {
50
- @PrimaryGeneratedColumn('uuid')
51
- id: string
52
- // ...
53
- }
54
- ```
55
-
56
- ### Step 2: Auto-Create/Update index.ts
57
-
58
- Automatically create or update `users/entities/index.ts`:
59
-
60
- ```typescript
61
- // users/entities/index.ts
62
- export * from './user.entity'
63
- export * from './profile.entity'
64
- ```
65
-
66
- ### Step 3: Verify Imports Use Barrel
67
-
68
- Ensure other files import from barrel:
69
-
70
- ```typescript
71
- // ✅ CORRECT - Import from barrel
72
- import { User, Profile } from 'src/users/entities'
73
-
74
- // ❌ WRONG - Import from specific file
75
- import { User } from 'src/users/entities/user.entity'
76
- ```
77
-
78
- ### Step 4: Update on File Changes
79
-
80
- When files are added/removed/renamed, automatically update the barrel export:
81
-
82
- ```typescript
83
- // User adds: organization.entity.ts
84
- // Automatically update index.ts:
85
- export * from './user.entity'
86
- export * from './profile.entity'
87
- export * from './organization.entity' // ✅ Added automatically
88
- ```
89
-
90
- ## Barrel Export Patterns
91
-
92
- ### Entities Directory
93
-
94
- ```typescript
95
- // users/entities/index.ts
96
- export * from './user.entity'
97
- export * from './profile.entity'
98
- export * from './organization.entity'
99
-
100
- // Usage
101
- import { User, Profile, Organization } from 'src/users/entities'
102
- ```
103
-
104
- ### DTOs Directory
105
-
106
- ```typescript
107
- // users/dto/index.ts
108
- export * from './create-user.dto'
109
- export * from './update-user.dto'
110
- export * from './user-response.dto'
111
- export * from './filter-user.dto'
112
-
113
- // Usage
114
- import { CreateUserDto, UpdateUserDto, UserResponseDto } from 'src/users/dto'
115
- ```
116
-
117
- ### Services Directory
118
-
119
- ```typescript
120
- // users/services/index.ts
121
- export * from './users.service'
122
- export * from './auth.service'
123
- export * from './email.service'
124
-
125
- // Usage
126
- import { UsersService, AuthService } from 'src/users/services'
127
- ```
128
-
129
- ### Controllers Directory
130
-
131
- ```typescript
132
- // users/controllers/index.ts
133
- export * from './users.controller'
134
- export * from './auth.controller'
135
-
136
- // Usage
137
- import { UsersController, AuthController } from 'src/users/controllers'
138
- ```
139
-
140
- ### Guards Directory
141
-
142
- ```typescript
143
- // auth/guards/index.ts
144
- export * from './jwt-auth.guard'
145
- export * from './roles.guard'
146
- export * from './api-key.guard'
147
-
148
- // Usage
149
- import { JwtAuthGuard, RolesGuard } from 'src/auth/guards'
150
- ```
151
-
152
- ### Decorators Directory
153
-
154
- ```typescript
155
- // common/decorators/index.ts
156
- export * from './current-user.decorator'
157
- export * from './roles.decorator'
158
- export * from './api-paginated-response.decorator'
159
-
160
- // Usage
161
- import { CurrentUser, Roles } from 'src/common/decorators'
162
- ```
163
-
164
- ## Complete Module Example
165
-
166
- ```
167
- users/
168
- ├── users.module.ts
169
- ├── entities/
170
- │ ├── user.entity.ts
171
- │ ├── profile.entity.ts
172
- │ └── index.ts # export * from './user.entity'; export * from './profile.entity'
173
- ├── dto/
174
- │ ├── create-user.dto.ts
175
- │ ├── update-user.dto.ts
176
- │ └── index.ts # export * from './create-user.dto'; ...
177
- ├── services/
178
- │ ├── users.service.ts
179
- │ └── index.ts # export * from './users.service'
180
- ├── controllers/
181
- │ ├── users.controller.ts
182
- │ └── index.ts # export * from './users.controller'
183
- └── tests/
184
- └── users.service.spec.ts
185
- ```
186
-
187
- **Module file uses barrel exports:**
188
-
189
- ```typescript
190
- // users/users.module.ts
191
- import { Module } from '@nestjs/common'
192
- import { TypeOrmModule } from '@nestjs/typeorm'
193
-
194
- // ✅ Clean imports from barrels
195
- import { User, Profile } from './entities'
196
- import { UsersService } from './services'
197
- import { UsersController } from './controllers'
198
-
199
- @Module({
200
- imports: [TypeOrmModule.forFeature([User, Profile])],
201
- controllers: [UsersController],
202
- providers: [UsersService],
203
- exports: [UsersService],
204
- })
205
- export class UsersModule {}
206
- ```
207
-
208
- ## Benefits of Barrel Exports
209
-
210
- ### 1. Clean Imports
211
-
212
- ```typescript
213
- // ❌ WITHOUT barrels - Verbose
214
- import { User } from 'src/users/entities/user.entity'
215
- import { Profile } from 'src/users/entities/profile.entity'
216
- import { Organization } from 'src/users/entities/organization.entity'
217
- import { CreateUserDto } from 'src/users/dto/create-user.dto'
218
- import { UpdateUserDto } from 'src/users/dto/update-user.dto'
219
-
220
- // ✅ WITH barrels - Clean
221
- import { User, Profile, Organization } from 'src/users/entities'
222
- import { CreateUserDto, UpdateUserDto } from 'src/users/dto'
223
- ```
224
-
225
- ### 2. Easier Refactoring
226
-
227
- ```typescript
228
- // Rename user.entity.ts → user-account.entity.ts
229
- // Only update one file (index.ts):
230
- export * from './user-account.entity' // Updated filename
231
-
232
- // All imports still work:
233
- import { User } from 'src/users/entities' // ✅ No changes needed
234
- ```
235
-
236
- ### 3. Encapsulation
237
-
238
- ```typescript
239
- // Control what's exported
240
- // users/services/index.ts
241
- export { UsersService } from './users.service'
242
- // Don't export internal helpers
243
- // export { InternalHelper } from './internal-helper' // ❌ Keep private
244
- ```
245
-
246
- ## Auto-Barrel Creation Rules
247
-
248
- Automatically create `index.ts` when:
249
-
250
- 1. **2+ files in directory** (avoids unnecessary barrels)
251
- 2. **Files export classes/types** (entities, DTOs, services, etc.)
252
- 3. **Directory is part of module structure** (entities/, dto/, services/, etc.)
253
-
254
- ## Selective Exports
255
-
256
- For specific exports instead of `export *`:
257
-
258
- ```typescript
259
- // users/services/index.ts
260
-
261
- // ✅ Export public API
262
- export { UsersService } from './users.service'
263
- export { AuthService } from './auth.service'
264
-
265
- // ❌ Don't export internal utilities
266
- // export { InternalHelper } from './internal.helper'
267
- ```
268
-
269
- ## Integration with TypeORM
270
-
271
- ```typescript
272
- // users/entities/index.ts
273
- export { User } from './user.entity'
274
- export { Profile } from './profile.entity'
275
-
276
- // users.module.ts - Clean!
277
- import { User, Profile } from './entities'
278
-
279
- @Module({
280
- imports: [TypeOrmModule.forFeature([User, Profile])],
281
- // ...
282
- })
283
- ```
284
-
285
- ## Module Organization Best Practices
286
-
287
- ```typescript
288
- // ✅ CORRECT - Organized with barrels
289
- src/
290
- ├── users/
291
- │ ├── users.module.ts
292
- │ ├── entities/
293
- │ │ ├── user.entity.ts
294
- │ │ └── index.ts
295
- │ ├── dto/
296
- │ │ ├── create-user.dto.ts
297
- │ │ ├── update-user.dto.ts
298
- │ │ └── index.ts
299
- │ ├── services/
300
- │ │ ├── users.service.ts
301
- │ │ └── index.ts
302
- │ └── controllers/
303
- │ ├── users.controller.ts
304
- │ └── index.ts
305
- ```
306
-
307
- ## Auto-Update Scenarios
308
-
309
- ### Scenario 1: New Entity Added
310
-
311
- ```typescript
312
- // User creates: payment-method.entity.ts
313
-
314
- // Automatically update entities/index.ts:
315
- export * from './user.entity'
316
- export * from './profile.entity'
317
- export * from './payment-method.entity' // ✅ Auto-added
318
- ```
319
-
320
- ### Scenario 2: DTO Renamed
321
-
322
- ```typescript
323
- // User renames: update-user.dto.ts → modify-user.dto.ts
324
-
325
- // Automatically update dto/index.ts:
326
- export * from './create-user.dto'
327
- export * from './modify-user.dto' // ✅ Auto-updated
328
- ```
329
-
330
- ### Scenario 3: File Deleted
331
-
332
- ```typescript
333
- // User deletes: profile.entity.ts
334
-
335
- // Automatically update entities/index.ts:
336
- export * from './user.entity'
337
- // export * from './profile.entity' // ✅ Auto-removed
338
- ```
339
-
340
- ## Cross-Module Imports
341
-
342
- ```typescript
343
- // orders/services/orders.service.ts
344
- import { Injectable } from '@nestjs/common'
345
-
346
- // ✅ Import from other module's barrel
347
- import { User } from 'src/users/entities'
348
- import { UsersService } from 'src/users/services'
349
-
350
- @Injectable()
351
- export class OrdersService {
352
- constructor(private usersService: UsersService) {}
353
-
354
- async createOrder(userId: string) {
355
- const user = await this.usersService.findOne(userId)
356
- // ...
357
- }
358
- }
359
- ```
360
-
361
- ## Success Criteria
362
-
363
- ✅ Every module directory has barrel exports
364
- ✅ All imports use barrel exports (not specific files)
365
- ✅ Barrels auto-update when files change
366
- ✅ Clean, maintainable import structure
367
- ✅ Easy refactoring (rename/move files)
368
-
369
- ## Behavior
370
-
371
- **Proactive enforcement:**
372
- - Create barrels without being asked
373
- - Update barrels automatically when files change
374
- - Convert direct imports to barrel imports
375
- - Explain benefits of barrel exports
376
- - Maintain consistent structure
377
-
378
- **Never:**
379
- - Require explicit "create barrel export" request
380
- - Allow direct file imports when barrel exists
381
- - Wait for imports to break
382
-
383
- **Always:**
384
- - Create `index.ts` in module directories
385
- - Keep barrel exports up to date
386
- - Use `export *` for simplicity (unless selective needed)
387
- - Ensure imports use barrels
388
-
389
- This ensures clean, maintainable NestJS module structure from day one.