@lenne.tech/cli 1.0.0 → 1.0.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/build/commands/claude/install-commands.js +332 -0
- package/build/commands/claude/install-skills.js +5 -1
- package/build/commands/server/add-property.js +22 -41
- package/build/extensions/server.js +142 -46
- package/build/templates/claude-commands/code-cleanup.md +82 -0
- package/build/templates/claude-commands/mr-description-clipboard.md +48 -0
- package/build/templates/claude-commands/mr-description.md +33 -0
- package/build/templates/claude-commands/sec-review.md +62 -0
- package/build/templates/claude-commands/skill-optimize.md +140 -0
- package/build/templates/claude-commands/test-generate.md +45 -0
- package/build/templates/claude-skills/nest-server-generator/SKILL.md +372 -1314
- package/build/templates/claude-skills/nest-server-generator/configuration.md +279 -0
- package/build/templates/claude-skills/nest-server-generator/declare-keyword-warning.md +124 -0
- package/build/templates/claude-skills/nest-server-generator/description-management.md +217 -0
- package/build/templates/claude-skills/nest-server-generator/examples.md +131 -5
- package/build/templates/claude-skills/nest-server-generator/quality-review.md +855 -0
- package/build/templates/claude-skills/nest-server-generator/reference.md +67 -13
- package/build/templates/claude-skills/nest-server-generator/security-rules.md +358 -0
- package/build/templates/claude-skills/story-tdd/SKILL.md +1173 -0
- package/build/templates/claude-skills/story-tdd/code-quality.md +266 -0
- package/build/templates/claude-skills/story-tdd/database-indexes.md +173 -0
- package/build/templates/claude-skills/story-tdd/examples.md +1332 -0
- package/build/templates/claude-skills/story-tdd/reference.md +1180 -0
- package/build/templates/claude-skills/story-tdd/security-review.md +299 -0
- package/package.json +1 -1
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: nest-server-generator-examples
|
|
3
|
-
version: 1.0.
|
|
3
|
+
version: 1.0.1
|
|
4
4
|
description: Complete examples for generating NestJS server structures from specifications
|
|
5
5
|
---
|
|
6
6
|
|
|
@@ -209,18 +209,144 @@ Manually update `book.input.ts` and `book-create.input.ts`:
|
|
|
209
209
|
|
|
210
210
|
#### Step 5: Update Descriptions
|
|
211
211
|
|
|
212
|
-
|
|
212
|
+
**⚠️ CRITICAL STEP - Extract descriptions from original specification and apply EVERYWHERE!**
|
|
213
|
+
|
|
214
|
+
**Step 5.1: Extract from specification**
|
|
215
|
+
|
|
216
|
+
Go back to the original specification and identify ALL comments:
|
|
217
|
+
|
|
218
|
+
```
|
|
219
|
+
SubObject: Address
|
|
220
|
+
- street: string // Straße
|
|
221
|
+
- city: string // City name
|
|
222
|
+
- zipCode: string // Postleitzahl
|
|
223
|
+
|
|
224
|
+
Module: Book
|
|
225
|
+
Model: Book
|
|
226
|
+
Extends: BaseItem
|
|
227
|
+
- isbn: string // ISBN-Nummer
|
|
228
|
+
- author: string // Author name
|
|
229
|
+
- publisher?: string // Verlag
|
|
230
|
+
```
|
|
231
|
+
|
|
232
|
+
**Extracted mapping:**
|
|
233
|
+
- Address.street → "Straße" (German)
|
|
234
|
+
- Address.city → "City name" (English)
|
|
235
|
+
- Address.zipCode → "Postleitzahl" (German)
|
|
236
|
+
- Book.isbn → "ISBN-Nummer" (German)
|
|
237
|
+
- Book.author → "Author name" (English)
|
|
238
|
+
- Book.publisher → "Verlag" (German)
|
|
239
|
+
|
|
240
|
+
**Step 5.2: Format descriptions**
|
|
241
|
+
|
|
242
|
+
Apply format rules:
|
|
243
|
+
- German → Translate and add: `ENGLISH (DEUTSCH)`
|
|
244
|
+
- English → Keep as-is
|
|
245
|
+
- **Fix typos only, preserve original wording!**
|
|
246
|
+
|
|
247
|
+
```
|
|
248
|
+
Address.street → 'Street (Straße)' (preserve word "Straße", don't change to "Straßenname")
|
|
249
|
+
Address.city → 'City name'
|
|
250
|
+
Address.zipCode → 'Postal code (Postleitzahl)'
|
|
251
|
+
Book.isbn → 'ISBN number (ISBN-Nummer)'
|
|
252
|
+
Book.author → 'Author name'
|
|
253
|
+
Book.publisher → 'Publisher (Verlag)' (preserve word "Verlag", don't expand)
|
|
254
|
+
```
|
|
255
|
+
|
|
256
|
+
**⚠️ CRITICAL - Preserve Original Wording:**
|
|
257
|
+
|
|
258
|
+
User comments may be predefined terms or referenced by external systems.
|
|
259
|
+
|
|
260
|
+
**Examples of correct handling**:
|
|
261
|
+
```
|
|
262
|
+
✅ CORRECT:
|
|
263
|
+
// Straße → 'Street (Straße)' (just translate)
|
|
264
|
+
// Postleizahl → 'Postal code (Postleitzahl)' (fix typo, preserve word)
|
|
265
|
+
// Produkt → 'Product (Produkt)' (don't add "name")
|
|
266
|
+
// Status → 'Status (Status)' (same word)
|
|
267
|
+
|
|
268
|
+
❌ WRONG:
|
|
269
|
+
// Straße → 'Street name (Straßenname)' (changed word!)
|
|
270
|
+
// Produkt → 'Product name (Produktname)' (added word!)
|
|
271
|
+
// Titel → 'Product title (Produkttitel)' (changed "Titel"!)
|
|
272
|
+
```
|
|
273
|
+
|
|
274
|
+
**Step 5.3: Apply to ALL files**
|
|
275
|
+
|
|
276
|
+
For Address SubObject (3 files):
|
|
213
277
|
|
|
214
278
|
```typescript
|
|
215
|
-
//
|
|
216
|
-
@UnifiedField({ description: '
|
|
279
|
+
// File: src/server/common/objects/address/address.object.ts
|
|
280
|
+
@UnifiedField({ description: 'Street (Straße)' })
|
|
281
|
+
street: string;
|
|
282
|
+
|
|
283
|
+
@UnifiedField({ description: 'City name' })
|
|
284
|
+
city: string;
|
|
285
|
+
|
|
286
|
+
@UnifiedField({ description: 'Postal code (Postleitzahl)' })
|
|
287
|
+
zipCode: string;
|
|
288
|
+
|
|
289
|
+
// File: src/server/common/objects/address/address-create.input.ts
|
|
290
|
+
@UnifiedField({ description: 'Street (Straße)' })
|
|
291
|
+
street: string;
|
|
292
|
+
|
|
293
|
+
@UnifiedField({ description: 'City name' })
|
|
294
|
+
city: string;
|
|
295
|
+
|
|
296
|
+
@UnifiedField({ description: 'Postal code (Postleitzahl)' })
|
|
297
|
+
zipCode: string;
|
|
298
|
+
|
|
299
|
+
// File: src/server/common/objects/address/address.input.ts
|
|
300
|
+
@UnifiedField({ description: 'Street (Straße)' })
|
|
301
|
+
street?: string;
|
|
302
|
+
|
|
303
|
+
@UnifiedField({ description: 'City name' })
|
|
304
|
+
city?: string;
|
|
305
|
+
|
|
306
|
+
@UnifiedField({ description: 'Postal code (Postleitzahl)' })
|
|
307
|
+
zipCode?: string;
|
|
308
|
+
```
|
|
309
|
+
|
|
310
|
+
For Book Module (3 files):
|
|
311
|
+
|
|
312
|
+
```typescript
|
|
313
|
+
// File: src/server/modules/book/book.model.ts
|
|
314
|
+
@UnifiedField({ description: 'ISBN number (ISBN-Nummer)' })
|
|
217
315
|
isbn: string;
|
|
218
316
|
|
|
219
|
-
|
|
317
|
+
@UnifiedField({ description: 'Author name' })
|
|
318
|
+
author: string;
|
|
319
|
+
|
|
320
|
+
@UnifiedField({ description: 'Publisher (Verlag)' })
|
|
321
|
+
publisher?: string;
|
|
322
|
+
|
|
323
|
+
// File: src/server/modules/book/inputs/book-create.input.ts
|
|
220
324
|
@UnifiedField({ description: 'ISBN number (ISBN-Nummer)' })
|
|
221
325
|
isbn: string;
|
|
326
|
+
|
|
327
|
+
@UnifiedField({ description: 'Author name' })
|
|
328
|
+
author: string;
|
|
329
|
+
|
|
330
|
+
@UnifiedField({ description: 'Publisher (Verlag)' })
|
|
331
|
+
publisher?: string;
|
|
332
|
+
|
|
333
|
+
// File: src/server/modules/book/inputs/book.input.ts
|
|
334
|
+
@UnifiedField({ description: 'ISBN number (ISBN-Nummer)' })
|
|
335
|
+
isbn?: string;
|
|
336
|
+
|
|
337
|
+
@UnifiedField({ description: 'Author name' })
|
|
338
|
+
author?: string;
|
|
339
|
+
|
|
340
|
+
@UnifiedField({ description: 'Publisher (Verlag)' })
|
|
341
|
+
publisher?: string;
|
|
222
342
|
```
|
|
223
343
|
|
|
344
|
+
**Verification:**
|
|
345
|
+
- ✅ Same description in ALL 3 files for each property
|
|
346
|
+
- ✅ All German descriptions translated
|
|
347
|
+
- ✅ All user comments extracted and applied
|
|
348
|
+
- ✅ No inconsistencies
|
|
349
|
+
|
|
224
350
|
#### Step 6: Create Enum Files
|
|
225
351
|
|
|
226
352
|
```typescript
|