@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.
- package/README.md +73 -40
- package/dist/index.js +312 -127
- package/package.json +5 -5
- package/.claude-plugin/marketplace.json +0 -369
- package/packs/architect/CHANGELOG.md +0 -17
- package/packs/architect/README.md +0 -58
- package/packs/architect/agents/system-architect.md +0 -768
- package/packs/architect/commands/diagram-create.md +0 -300
- package/packs/better-auth/.mcp.json +0 -14
- package/packs/better-auth/CHANGELOG.md +0 -26
- package/packs/better-auth/README.md +0 -125
- package/packs/better-auth/agents/auth-architect.md +0 -278
- package/packs/better-auth/commands/auth-provider-add.md +0 -265
- package/packs/better-auth/commands/auth-setup.md +0 -298
- package/packs/better-auth/skills/auth-security/SKILL.md +0 -425
- package/packs/better-auth/skills/better-auth-patterns/SKILL.md +0 -455
- package/packs/dev-loop/CHANGELOG.md +0 -69
- package/packs/dev-loop/README.md +0 -155
- package/packs/dev-loop/commands/cancel-dev.md +0 -21
- package/packs/dev-loop/commands/dev-loop.md +0 -72
- package/packs/dev-loop/commands/dev-plan.md +0 -351
- package/packs/dev-loop/hooks/hooks.json +0 -15
- package/packs/dev-loop/hooks/stop-hook.sh +0 -178
- package/packs/dev-loop/scripts/setup-dev-loop.sh +0 -194
- package/packs/dev-loop/skills/tdd-planner/SKILL.md +0 -249
- package/packs/dev-loop/skills/tdd-planner/references/framework-patterns.md +0 -874
- package/packs/dev-loop/skills/tdd-planner/references/good-example.md +0 -260
- package/packs/dev-loop/skills/tdd-planner/references/plan-template.md +0 -275
- package/packs/django/CHANGELOG.md +0 -39
- package/packs/django/README.md +0 -92
- package/packs/django/agents/django-architect.md +0 -182
- package/packs/django/agents/django-builder.md +0 -250
- package/packs/django/agents/django-feature-based.md +0 -420
- package/packs/django/agents/django-reviewer.md +0 -253
- package/packs/django/agents/django-tester.md +0 -230
- package/packs/django/commands/api-endpoint.md +0 -285
- package/packs/django/commands/model-create.md +0 -178
- package/packs/django/commands/test-generate.md +0 -325
- package/packs/django/rules/migrations.md +0 -138
- package/packs/django/rules/models.md +0 -167
- package/packs/django/rules/serializers.md +0 -126
- package/packs/django/rules/services.md +0 -131
- package/packs/django/rules/tests.md +0 -140
- package/packs/django/rules/views.md +0 -102
- package/packs/django/skills/import-convention-enforcer/SKILL.md +0 -226
- package/packs/django/skills/import-convention-enforcer/patterns/django-imports.md +0 -343
- package/packs/django/skills/migration-safety-checker/SKILL.md +0 -375
- package/packs/django/skills/model-entity-validator/SKILL.md +0 -298
- package/packs/django/skills/performance-optimizer/SKILL.md +0 -447
- package/packs/django/skills/red-phase-verifier/SKILL.md +0 -180
- package/packs/django/skills/security-first-validator/SKILL.md +0 -435
- package/packs/django/skills/test-coverage-advisor/SKILL.md +0 -394
- package/packs/django/skills/test-validity-checker/SKILL.md +0 -194
- package/packs/failure-log/CHANGELOG.md +0 -20
- package/packs/failure-log/README.md +0 -168
- package/packs/failure-log/commands/failure-add.md +0 -106
- package/packs/failure-log/commands/failure-list.md +0 -89
- package/packs/failure-log/hooks/hooks.json +0 -16
- package/packs/failure-log/hooks/scripts/inject-failures.sh +0 -64
- package/packs/failure-log/skills/failure-log-manager/SKILL.md +0 -164
- package/packs/flutter/CHANGELOG.md +0 -19
- package/packs/flutter/README.md +0 -170
- package/packs/flutter/agents/flutter-architect.md +0 -166
- package/packs/flutter/agents/flutter-builder.md +0 -303
- package/packs/flutter/agents/release-manager.md +0 -355
- package/packs/flutter/commands/fastlane-setup.md +0 -188
- package/packs/flutter/commands/flutter-build.md +0 -90
- package/packs/flutter/commands/flutter-deploy.md +0 -133
- package/packs/flutter/commands/flutter-test.md +0 -117
- package/packs/flutter/commands/signing-setup.md +0 -209
- package/packs/flutter/hooks/hooks.json +0 -17
- package/packs/flutter/skills/fastlane-knowledge/SKILL.md +0 -193
- package/packs/flutter/skills/flutter-architecture/SKILL.md +0 -127
- package/packs/flutter/skills/store-publishing/SKILL.md +0 -163
- package/packs/hono/CHANGELOG.md +0 -19
- package/packs/hono/README.md +0 -143
- package/packs/hono/agents/hono-architect.md +0 -240
- package/packs/hono/agents/hono-builder.md +0 -285
- package/packs/hono/agents/hono-reviewer.md +0 -279
- package/packs/hono/agents/hono-tester.md +0 -346
- package/packs/hono/commands/middleware-create.md +0 -223
- package/packs/hono/commands/project-init.md +0 -306
- package/packs/hono/commands/route-create.md +0 -153
- package/packs/hono/commands/rpc-client.md +0 -263
- package/packs/hono/skills/cloudflare-bindings/SKILL.md +0 -408
- package/packs/hono/skills/hono-patterns/SKILL.md +0 -309
- package/packs/hono/skills/rpc-typesafe/SKILL.md +0 -388
- package/packs/hono/skills/zod-validation/SKILL.md +0 -332
- package/packs/nestjs/CHANGELOG.md +0 -29
- package/packs/nestjs/README.md +0 -75
- package/packs/nestjs/agents/nestjs-architect.md +0 -402
- package/packs/nestjs/agents/nestjs-builder.md +0 -301
- package/packs/nestjs/agents/nestjs-tester.md +0 -437
- package/packs/nestjs/commands/module-create.md +0 -369
- package/packs/nestjs/rules/controllers.md +0 -92
- package/packs/nestjs/rules/dto.md +0 -124
- package/packs/nestjs/rules/entities.md +0 -102
- package/packs/nestjs/rules/services.md +0 -106
- package/packs/nestjs/skills/barrel-export-manager/SKILL.md +0 -389
- package/packs/nestjs/skills/import-convention-enforcer/SKILL.md +0 -365
- package/packs/nextjs/CHANGELOG.md +0 -36
- package/packs/nextjs/README.md +0 -76
- package/packs/nextjs/agents/frontend-tester.md +0 -680
- package/packs/nextjs/agents/frontend-visual.md +0 -820
- package/packs/nextjs/agents/nextjs-architect.md +0 -331
- package/packs/nextjs/agents/nextjs-modular.md +0 -433
- package/packs/nextjs/commands/component-create.md +0 -398
- package/packs/nextjs/rules/api-routes.md +0 -129
- package/packs/nextjs/rules/components.md +0 -106
- package/packs/nextjs/rules/hooks.md +0 -132
- package/packs/nextjs/skills/accessibility-validator/SKILL.md +0 -445
- package/packs/nextjs/skills/import-convention-enforcer/SKILL.md +0 -399
- package/packs/nextjs/skills/react-form-validator/SKILL.md +0 -569
- package/packs/nuxtjs/CHANGELOG.md +0 -30
- package/packs/nuxtjs/README.md +0 -56
- package/packs/nuxtjs/agents/frontend-tester.md +0 -680
- package/packs/nuxtjs/agents/frontend-visual.md +0 -820
- package/packs/nuxtjs/agents/nuxtjs-architect.md +0 -537
- package/packs/nuxtjs/commands/component-create.md +0 -223
- package/packs/nuxtjs/rules/components.md +0 -101
- package/packs/nuxtjs/rules/composables.md +0 -118
- package/packs/nuxtjs/rules/server-routes.md +0 -127
- package/packs/nuxtjs/skills/accessibility-validator/SKILL.md +0 -183
- package/packs/nuxtjs/skills/import-convention-enforcer/SKILL.md +0 -196
- package/packs/nuxtjs/skills/veevalidate-form-validator/SKILL.md +0 -190
- package/packs/onboard/CHANGELOG.md +0 -22
- package/packs/onboard/README.md +0 -103
- package/packs/onboard/agents/onboard-guide.md +0 -118
- package/packs/onboard/commands/onboard.md +0 -313
- package/packs/onboard/skills/onboard-context-provider/SKILL.md +0 -98
- package/packs/tanstack-router/CHANGELOG.md +0 -30
- package/packs/tanstack-router/README.md +0 -113
- package/packs/tanstack-router/agents/tanstack-architect.md +0 -173
- package/packs/tanstack-router/agents/tanstack-builder.md +0 -360
- package/packs/tanstack-router/agents/tanstack-tester.md +0 -454
- package/packs/tanstack-router/commands/form-create.md +0 -313
- package/packs/tanstack-router/commands/query-create.md +0 -263
- package/packs/tanstack-router/commands/route-create.md +0 -190
- package/packs/tanstack-router/commands/table-create.md +0 -413
- package/packs/tanstack-router/skills/ai-patterns/SKILL.md +0 -370
- package/packs/tanstack-router/skills/db-patterns/SKILL.md +0 -346
- package/packs/tanstack-router/skills/devtools-patterns/SKILL.md +0 -415
- package/packs/tanstack-router/skills/form-patterns/SKILL.md +0 -425
- package/packs/tanstack-router/skills/pacer-patterns/SKILL.md +0 -341
- package/packs/tanstack-router/skills/query-patterns/SKILL.md +0 -359
- package/packs/tanstack-router/skills/router-patterns/SKILL.md +0 -285
- package/packs/tanstack-router/skills/store-patterns/SKILL.md +0 -351
- package/packs/tanstack-router/skills/table-patterns/SKILL.md +0 -531
- package/packs/tanstack-router/skills/tanstack-conventions/SKILL.md +0 -428
- package/packs/tanstack-router/skills/virtual-patterns/SKILL.md +0 -490
- package/packs/worktree/CHANGELOG.md +0 -45
- package/packs/worktree/README.md +0 -219
- package/packs/worktree/commands/wt.md +0 -93
- package/packs/worktree/scripts/wt.sh +0 -957
- package/packs/worktree/skills/worktree-manager/SKILL.md +0 -113
|
@@ -1,365 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
name: nestjs-import-enforcer
|
|
3
|
-
description: Automatically enforce absolute imports from barrel exports in NestJS. Use when writing imports, creating TypeScript files, or organizing NestJS module structure.
|
|
4
|
-
---
|
|
5
|
-
|
|
6
|
-
# Import Convention Enforcer (NestJS)
|
|
7
|
-
|
|
8
|
-
Auto-enforces absolute imports from barrel exports for clean, maintainable NestJS code.
|
|
9
|
-
|
|
10
|
-
## When This Skill Activates
|
|
11
|
-
|
|
12
|
-
I automatically run when:
|
|
13
|
-
- User writes or modifies TypeScript files
|
|
14
|
-
- User creates entities, DTOs, services, controllers
|
|
15
|
-
- User imports from other modules
|
|
16
|
-
- User mentions "import", "NestJS", "module"
|
|
17
|
-
- User organizes project structure
|
|
18
|
-
|
|
19
|
-
## Required Import Pattern (MANDATORY)
|
|
20
|
-
|
|
21
|
-
**✅ CORRECT - Absolute imports from barrel exports:**
|
|
22
|
-
```typescript
|
|
23
|
-
// Absolute path from src/
|
|
24
|
-
import { User, Profile } from 'src/users/entities'
|
|
25
|
-
import { UsersService } from 'src/users/services'
|
|
26
|
-
import { CreateUserDto, UpdateUserDto } from 'src/users/dto'
|
|
27
|
-
import { JwtAuthGuard } from 'src/auth/guards'
|
|
28
|
-
|
|
29
|
-
// NestJS/Third-party - standard imports
|
|
30
|
-
import { Injectable, NotFoundException } from '@nestjs/common'
|
|
31
|
-
import { InjectRepository } from '@nestjs/typeorm'
|
|
32
|
-
```
|
|
33
|
-
|
|
34
|
-
**❌ WRONG - Relative imports:**
|
|
35
|
-
```typescript
|
|
36
|
-
import { User } from './entities/user.entity'
|
|
37
|
-
import { UsersService } from '../services/users.service'
|
|
38
|
-
import { JwtAuthGuard } from '../../auth/guards/jwt-auth.guard'
|
|
39
|
-
```
|
|
40
|
-
|
|
41
|
-
**❌ WRONG - Import from specific files (not barrel):**
|
|
42
|
-
```typescript
|
|
43
|
-
import { User } from 'src/users/entities/user.entity'
|
|
44
|
-
```
|
|
45
|
-
|
|
46
|
-
## Auto-Fix Process
|
|
47
|
-
|
|
48
|
-
### Step 1: Detect Violations
|
|
49
|
-
|
|
50
|
-
```typescript
|
|
51
|
-
// ❌ User writes
|
|
52
|
-
import { User } from './entities/user.entity'
|
|
53
|
-
import { CreateUserDto } from '../dto/create-user.dto'
|
|
54
|
-
import { AuthService } from '../../auth/services/auth.service'
|
|
55
|
-
```
|
|
56
|
-
|
|
57
|
-
### Step 2: Convert to Absolute Barrel Imports
|
|
58
|
-
|
|
59
|
-
```typescript
|
|
60
|
-
// ✅ Auto-fixed to
|
|
61
|
-
import { User } from 'src/users/entities'
|
|
62
|
-
import { CreateUserDto } from 'src/users/dto'
|
|
63
|
-
import { AuthService } from 'src/auth/services'
|
|
64
|
-
```
|
|
65
|
-
|
|
66
|
-
### Step 3: Organize Import Order
|
|
67
|
-
|
|
68
|
-
```typescript
|
|
69
|
-
// ✅ Final organized imports
|
|
70
|
-
// 1. NestJS core
|
|
71
|
-
import { Injectable, NotFoundException } from '@nestjs/common'
|
|
72
|
-
import { InjectRepository } from '@nestjs/typeorm'
|
|
73
|
-
|
|
74
|
-
// 2. Third-party
|
|
75
|
-
import { Repository } from 'typeorm'
|
|
76
|
-
|
|
77
|
-
// 3. Project modules (absolute from src/)
|
|
78
|
-
import { User, Profile } from 'src/users/entities'
|
|
79
|
-
import { CreateUserDto, UpdateUserDto } from 'src/users/dto'
|
|
80
|
-
import { AuthService } from 'src/auth/services'
|
|
81
|
-
```
|
|
82
|
-
|
|
83
|
-
## Import Organization Rules
|
|
84
|
-
|
|
85
|
-
### 1. Import Categories (Top to Bottom)
|
|
86
|
-
|
|
87
|
-
```typescript
|
|
88
|
-
// 1. NestJS core
|
|
89
|
-
import { Module, Injectable, Controller } from '@nestjs/common'
|
|
90
|
-
import { TypeOrmModule } from '@nestjs/typeorm'
|
|
91
|
-
|
|
92
|
-
// 2. Third-party libraries
|
|
93
|
-
import { Repository } from 'typeorm'
|
|
94
|
-
import { ApiTags, ApiOperation } from '@nestjs/swagger'
|
|
95
|
-
|
|
96
|
-
// 3. Project modules (src/ absolute imports)
|
|
97
|
-
import { User } from 'src/users/entities'
|
|
98
|
-
import { UsersService } from 'src/users/services'
|
|
99
|
-
import { JwtAuthGuard } from 'src/auth/guards'
|
|
100
|
-
|
|
101
|
-
// 4. Local module imports (from barrel)
|
|
102
|
-
import { CreateUserDto } from './dto'
|
|
103
|
-
import { UserResponseDto } from './dto'
|
|
104
|
-
```
|
|
105
|
-
|
|
106
|
-
### 2. Named Imports (Alphabetical)
|
|
107
|
-
|
|
108
|
-
```typescript
|
|
109
|
-
// ✅ CORRECT
|
|
110
|
-
import { Injectable, Logger, NotFoundException } from '@nestjs/common'
|
|
111
|
-
|
|
112
|
-
// ❌ WRONG
|
|
113
|
-
import { NotFoundException, Injectable, Logger } from '@nestjs/common'
|
|
114
|
-
```
|
|
115
|
-
|
|
116
|
-
## Module Structure with Barrel Exports
|
|
117
|
-
|
|
118
|
-
```
|
|
119
|
-
users/
|
|
120
|
-
├── users.module.ts
|
|
121
|
-
├── entities/
|
|
122
|
-
│ ├── user.entity.ts
|
|
123
|
-
│ └── index.ts # export * from './user.entity'
|
|
124
|
-
├── dto/
|
|
125
|
-
│ ├── create-user.dto.ts
|
|
126
|
-
│ └── index.ts # export * from './create-user.dto'
|
|
127
|
-
├── services/
|
|
128
|
-
│ ├── users.service.ts
|
|
129
|
-
│ └── index.ts # export * from './users.service'
|
|
130
|
-
└── controllers/
|
|
131
|
-
├── users.controller.ts
|
|
132
|
-
└── index.ts # export * from './users.controller'
|
|
133
|
-
```
|
|
134
|
-
|
|
135
|
-
## Complete Service Example
|
|
136
|
-
|
|
137
|
-
```typescript
|
|
138
|
-
// users/services/users.service.ts
|
|
139
|
-
import { Injectable, NotFoundException } from '@nestjs/common'
|
|
140
|
-
import { InjectRepository } from '@nestjs/typeorm'
|
|
141
|
-
import { Repository } from 'typeorm'
|
|
142
|
-
|
|
143
|
-
// ✅ Absolute imports from barrels
|
|
144
|
-
import { User } from 'src/users/entities'
|
|
145
|
-
import { CreateUserDto, UpdateUserDto } from 'src/users/dto'
|
|
146
|
-
import { AuthService } from 'src/auth/services'
|
|
147
|
-
|
|
148
|
-
@Injectable()
|
|
149
|
-
export class UsersService {
|
|
150
|
-
constructor(
|
|
151
|
-
@InjectRepository(User)
|
|
152
|
-
private readonly userRepository: Repository<User>,
|
|
153
|
-
private readonly authService: AuthService,
|
|
154
|
-
) {}
|
|
155
|
-
|
|
156
|
-
async create(dto: CreateUserDto): Promise<User> {
|
|
157
|
-
const user = this.userRepository.create(dto)
|
|
158
|
-
return this.userRepository.save(user)
|
|
159
|
-
}
|
|
160
|
-
|
|
161
|
-
async findOne(id: string): Promise<User> {
|
|
162
|
-
const user = await this.userRepository.findOne({ where: { id } })
|
|
163
|
-
|
|
164
|
-
if (!user) {
|
|
165
|
-
throw new NotFoundException(`User with ID ${id} not found`)
|
|
166
|
-
}
|
|
167
|
-
|
|
168
|
-
return user
|
|
169
|
-
}
|
|
170
|
-
}
|
|
171
|
-
```
|
|
172
|
-
|
|
173
|
-
## Complete Controller Example
|
|
174
|
-
|
|
175
|
-
```typescript
|
|
176
|
-
// users/controllers/users.controller.ts
|
|
177
|
-
import {
|
|
178
|
-
Controller,
|
|
179
|
-
Get,
|
|
180
|
-
Post,
|
|
181
|
-
Body,
|
|
182
|
-
Param,
|
|
183
|
-
UseGuards,
|
|
184
|
-
} from '@nestjs/common'
|
|
185
|
-
import { ApiTags, ApiOperation, ApiBearerAuth } from '@nestjs/swagger'
|
|
186
|
-
|
|
187
|
-
// ✅ Absolute imports from barrels
|
|
188
|
-
import { UsersService } from 'src/users/services'
|
|
189
|
-
import { CreateUserDto, UpdateUserDto, UserResponseDto } from 'src/users/dto'
|
|
190
|
-
import { JwtAuthGuard } from 'src/auth/guards'
|
|
191
|
-
import { CurrentUser } from 'src/common/decorators'
|
|
192
|
-
import { User } from 'src/users/entities'
|
|
193
|
-
|
|
194
|
-
@ApiTags('users')
|
|
195
|
-
@Controller('users')
|
|
196
|
-
@UseGuards(JwtAuthGuard)
|
|
197
|
-
export class UsersController {
|
|
198
|
-
constructor(private readonly usersService: UsersService) {}
|
|
199
|
-
|
|
200
|
-
@Post()
|
|
201
|
-
@ApiOperation({ summary: 'Create new user' })
|
|
202
|
-
async create(@Body() dto: CreateUserDto): Promise<UserResponseDto> {
|
|
203
|
-
return this.usersService.create(dto)
|
|
204
|
-
}
|
|
205
|
-
|
|
206
|
-
@Get(':id')
|
|
207
|
-
@ApiBearerAuth()
|
|
208
|
-
@ApiOperation({ summary: 'Get user by ID' })
|
|
209
|
-
async findOne(@Param('id') id: string): Promise<UserResponseDto> {
|
|
210
|
-
return this.usersService.findOne(id)
|
|
211
|
-
}
|
|
212
|
-
}
|
|
213
|
-
```
|
|
214
|
-
|
|
215
|
-
## Cross-Module Imports
|
|
216
|
-
|
|
217
|
-
```typescript
|
|
218
|
-
// orders/services/orders.service.ts
|
|
219
|
-
import { Injectable } from '@nestjs/common'
|
|
220
|
-
|
|
221
|
-
// ✅ Import from other modules using absolute paths
|
|
222
|
-
import { User } from 'src/users/entities'
|
|
223
|
-
import { UsersService } from 'src/users/services'
|
|
224
|
-
import { Product } from 'src/products/entities'
|
|
225
|
-
import { ProductsService } from 'src/products/services'
|
|
226
|
-
|
|
227
|
-
@Injectable()
|
|
228
|
-
export class OrdersService {
|
|
229
|
-
constructor(
|
|
230
|
-
private readonly usersService: UsersService,
|
|
231
|
-
private readonly productsService: ProductsService,
|
|
232
|
-
) {}
|
|
233
|
-
|
|
234
|
-
async createOrder(userId: string, productId: string) {
|
|
235
|
-
const user = await this.usersService.findOne(userId)
|
|
236
|
-
const product = await this.productsService.findOne(productId)
|
|
237
|
-
// Create order...
|
|
238
|
-
}
|
|
239
|
-
}
|
|
240
|
-
```
|
|
241
|
-
|
|
242
|
-
## Local Module Imports
|
|
243
|
-
|
|
244
|
-
Within the same module, you can use local barrel imports:
|
|
245
|
-
|
|
246
|
-
```typescript
|
|
247
|
-
// users/services/users.service.ts
|
|
248
|
-
import { Injectable } from '@nestjs/common'
|
|
249
|
-
|
|
250
|
-
// ✅ Local barrel import (shorter)
|
|
251
|
-
import { User } from '../entities'
|
|
252
|
-
import { CreateUserDto } from '../dto'
|
|
253
|
-
|
|
254
|
-
// ✅ Also acceptable (explicit)
|
|
255
|
-
import { User } from 'src/users/entities'
|
|
256
|
-
import { CreateUserDto } from 'src/users/dto'
|
|
257
|
-
```
|
|
258
|
-
|
|
259
|
-
## TypeScript Configuration
|
|
260
|
-
|
|
261
|
-
Ensure `tsconfig.json` supports absolute imports:
|
|
262
|
-
|
|
263
|
-
```json
|
|
264
|
-
{
|
|
265
|
-
"compilerOptions": {
|
|
266
|
-
"baseUrl": "./",
|
|
267
|
-
"paths": {
|
|
268
|
-
"src/*": ["src/*"]
|
|
269
|
-
}
|
|
270
|
-
}
|
|
271
|
-
}
|
|
272
|
-
```
|
|
273
|
-
|
|
274
|
-
## Common Violations
|
|
275
|
-
|
|
276
|
-
### Violation 1: Relative Imports
|
|
277
|
-
|
|
278
|
-
```typescript
|
|
279
|
-
// ❌ WRONG
|
|
280
|
-
import { User } from './entities/user.entity'
|
|
281
|
-
import { UsersService } from '../services/users.service'
|
|
282
|
-
|
|
283
|
-
// ✅ CORRECT
|
|
284
|
-
import { User } from 'src/users/entities'
|
|
285
|
-
import { UsersService } from 'src/users/services'
|
|
286
|
-
```
|
|
287
|
-
|
|
288
|
-
### Violation 2: Importing from Specific Files
|
|
289
|
-
|
|
290
|
-
```typescript
|
|
291
|
-
// ❌ WRONG - Skip barrel
|
|
292
|
-
import { User } from 'src/users/entities/user.entity'
|
|
293
|
-
|
|
294
|
-
// ✅ CORRECT - Use barrel
|
|
295
|
-
import { User } from 'src/users/entities'
|
|
296
|
-
```
|
|
297
|
-
|
|
298
|
-
### Violation 3: Inconsistent Paths
|
|
299
|
-
|
|
300
|
-
```typescript
|
|
301
|
-
// ❌ WRONG - Mixing styles
|
|
302
|
-
import { User } from 'src/users/entities'
|
|
303
|
-
import { CreateUserDto } from './dto/create-user.dto'
|
|
304
|
-
|
|
305
|
-
// ✅ CORRECT - Consistent
|
|
306
|
-
import { User } from 'src/users/entities'
|
|
307
|
-
import { CreateUserDto } from 'src/users/dto'
|
|
308
|
-
```
|
|
309
|
-
|
|
310
|
-
## Module Pattern Best Practices
|
|
311
|
-
|
|
312
|
-
```typescript
|
|
313
|
-
// users/users.module.ts
|
|
314
|
-
import { Module } from '@nestjs/common'
|
|
315
|
-
import { TypeOrmModule } from '@nestjs/typeorm'
|
|
316
|
-
|
|
317
|
-
// ✅ Clean local imports from barrels
|
|
318
|
-
import { User, Profile } from './entities'
|
|
319
|
-
import { UsersService } from './services'
|
|
320
|
-
import { UsersController } from './controllers'
|
|
321
|
-
|
|
322
|
-
// ✅ Cross-module imports absolute
|
|
323
|
-
import { AuthModule } from 'src/auth/auth.module'
|
|
324
|
-
|
|
325
|
-
@Module({
|
|
326
|
-
imports: [
|
|
327
|
-
TypeOrmModule.forFeature([User, Profile]),
|
|
328
|
-
AuthModule,
|
|
329
|
-
],
|
|
330
|
-
controllers: [UsersController],
|
|
331
|
-
providers: [UsersService],
|
|
332
|
-
exports: [UsersService],
|
|
333
|
-
})
|
|
334
|
-
export class UsersModule {}
|
|
335
|
-
```
|
|
336
|
-
|
|
337
|
-
## Success Criteria
|
|
338
|
-
|
|
339
|
-
✅ ALL imports use absolute paths from `src/`
|
|
340
|
-
✅ ALL imports use barrel exports
|
|
341
|
-
✅ NO relative imports
|
|
342
|
-
✅ Imports organized by category
|
|
343
|
-
✅ Consistent import style across project
|
|
344
|
-
|
|
345
|
-
## Skill Behavior
|
|
346
|
-
|
|
347
|
-
**I am PROACTIVE:**
|
|
348
|
-
- I detect relative imports AUTOMATICALLY
|
|
349
|
-
- I convert to absolute barrel imports IMMEDIATELY
|
|
350
|
-
- I organize import order
|
|
351
|
-
- I ensure barrel exports exist
|
|
352
|
-
- I explain import patterns
|
|
353
|
-
|
|
354
|
-
**I do NOT:**
|
|
355
|
-
- Allow relative imports
|
|
356
|
-
- Allow imports from specific files (skip barrels)
|
|
357
|
-
- Accept inconsistent import styles
|
|
358
|
-
|
|
359
|
-
**I ALWAYS:**
|
|
360
|
-
- Use `src/` absolute paths
|
|
361
|
-
- Import from barrel exports (`index.ts`)
|
|
362
|
-
- Organize imports by category
|
|
363
|
-
- Keep imports clean and maintainable
|
|
364
|
-
|
|
365
|
-
This ensures clean, maintainable NestJS import structure from day one.
|
|
@@ -1,36 +0,0 @@
|
|
|
1
|
-
# Changelog
|
|
2
|
-
|
|
3
|
-
All notable changes to the smi-nextjs plugin will be documented in this file.
|
|
4
|
-
|
|
5
|
-
## [Unreleased]
|
|
6
|
-
|
|
7
|
-
### Changed
|
|
8
|
-
- Renamed from `smi-nextjs` to `nextjs` as part of ai-kit migration
|
|
9
|
-
- Moved from `plugins/smi-nextjs/` to `packs/nextjs/`
|
|
10
|
-
|
|
11
|
-
## [2.1.0] - 2025-01-02
|
|
12
|
-
|
|
13
|
-
### Added
|
|
14
|
-
- 3 auto-enforcing skills
|
|
15
|
-
- `accessibility-validator` - WCAG 2.1 AA compliance
|
|
16
|
-
- `react-form-validator` - React Hook Form + Zod
|
|
17
|
-
- `import-convention-enforcer` - @/ path alias
|
|
18
|
-
|
|
19
|
-
### Added
|
|
20
|
-
- `@frontend-visual` agent for Playwright + Figma MCP integration
|
|
21
|
-
|
|
22
|
-
## [2.0.0] - 2024-12-01
|
|
23
|
-
|
|
24
|
-
### Changed
|
|
25
|
-
- BREAKING: Standardized on TanStack Query for data fetching
|
|
26
|
-
- Updated component patterns for App Router
|
|
27
|
-
|
|
28
|
-
### Added
|
|
29
|
-
- `@nextjs-modular` agent for large-scale architecture
|
|
30
|
-
|
|
31
|
-
## [1.0.0] - 2024-10-01
|
|
32
|
-
|
|
33
|
-
### Added
|
|
34
|
-
- Initial stable release
|
|
35
|
-
- 4 agents: architect, modular, visual, tester
|
|
36
|
-
- 1 command: component-create
|
package/packs/nextjs/README.md
DELETED
|
@@ -1,76 +0,0 @@
|
|
|
1
|
-
# Next.js Development Standards Plugin
|
|
2
|
-
|
|
3
|
-
Smicolon company standards for Next.js/React projects.
|
|
4
|
-
|
|
5
|
-
## Installation
|
|
6
|
-
|
|
7
|
-
```bash
|
|
8
|
-
# Add Smicolon marketplace
|
|
9
|
-
/plugin marketplace add https://github.com/smicolon/ai-kit
|
|
10
|
-
|
|
11
|
-
# Install Next.js plugin
|
|
12
|
-
/plugin install nextjs
|
|
13
|
-
```
|
|
14
|
-
|
|
15
|
-
## What's Included
|
|
16
|
-
|
|
17
|
-
### 4 Specialized Agents
|
|
18
|
-
|
|
19
|
-
- `@nextjs-architect` - Next.js/React architecture design
|
|
20
|
-
- `@nextjs-modular` - Large-scale Next.js modular architecture
|
|
21
|
-
- `@frontend-visual` - Visual QA with Playwright + Figma MCP integration
|
|
22
|
-
- `@frontend-tester` - Frontend testing (unit, integration, E2E, accessibility)
|
|
23
|
-
|
|
24
|
-
### 3 Auto-Enforcing Skills (NEW!)
|
|
25
|
-
|
|
26
|
-
Skills automatically activate based on context - no manual invocation needed:
|
|
27
|
-
|
|
28
|
-
**Frontend Quality:**
|
|
29
|
-
- `accessibility-validator` - Auto-checks WCAG 2.1 AA compliance (keyboard nav, ARIA, contrast)
|
|
30
|
-
- `react-form-validator` - Auto-enforces React Hook Form + Zod for all forms
|
|
31
|
-
- `import-convention-enforcer` - Auto-fixes imports to use path aliases (@/ pattern)
|
|
32
|
-
|
|
33
|
-
**How Skills Work:**
|
|
34
|
-
- Auto-invoke when creating components, forms, or organizing imports
|
|
35
|
-
- Proactively fix violations (divs→buttons, add ARIA, convert to Zod)
|
|
36
|
-
- Explain WHY accessibility/validation matters
|
|
37
|
-
- Block inaccessible/unvalidated code
|
|
38
|
-
- Work alongside agents for complete quality assurance
|
|
39
|
-
|
|
40
|
-
### Automatic Convention Enforcement
|
|
41
|
-
|
|
42
|
-
**Required Standards:**
|
|
43
|
-
- TypeScript strict mode (no `any`)
|
|
44
|
-
- Zod validation for all forms
|
|
45
|
-
- TanStack Query for API calls
|
|
46
|
-
- Proper error and loading states
|
|
47
|
-
- Tailwind CSS
|
|
48
|
-
- WCAG 2.1 AA accessibility
|
|
49
|
-
|
|
50
|
-
### Visual QA Integration
|
|
51
|
-
|
|
52
|
-
The `@frontend-visual` agent integrates with:
|
|
53
|
-
- **Playwright MCP** for automated browser testing
|
|
54
|
-
- **Figma MCP** for design comparison
|
|
55
|
-
|
|
56
|
-
See [MCP_SETUP.md](../../MCP_SETUP.md) for configuration.
|
|
57
|
-
|
|
58
|
-
## Usage
|
|
59
|
-
|
|
60
|
-
```bash
|
|
61
|
-
# Design architecture
|
|
62
|
-
@nextjs-architect "Design a dashboard with real-time analytics"
|
|
63
|
-
|
|
64
|
-
# Large-scale architecture
|
|
65
|
-
@nextjs-modular "Design modular architecture for e-commerce platform"
|
|
66
|
-
|
|
67
|
-
# Write comprehensive tests
|
|
68
|
-
@frontend-tester "Write tests for authentication flow"
|
|
69
|
-
|
|
70
|
-
# Visual QA (requires Playwright + Figma MCP)
|
|
71
|
-
@frontend-visual "Verify dashboard matches Figma: https://figma.com/file/..."
|
|
72
|
-
```
|
|
73
|
-
|
|
74
|
-
## Documentation
|
|
75
|
-
|
|
76
|
-
See the main [Smicolon Claude Infra repository](https://github.com/smicolon/ai-kit) for complete documentation.
|