@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.
Files changed (25) hide show
  1. package/build/commands/claude/install-commands.js +332 -0
  2. package/build/commands/claude/install-skills.js +5 -1
  3. package/build/commands/server/add-property.js +22 -41
  4. package/build/extensions/server.js +142 -46
  5. package/build/templates/claude-commands/code-cleanup.md +82 -0
  6. package/build/templates/claude-commands/mr-description-clipboard.md +48 -0
  7. package/build/templates/claude-commands/mr-description.md +33 -0
  8. package/build/templates/claude-commands/sec-review.md +62 -0
  9. package/build/templates/claude-commands/skill-optimize.md +140 -0
  10. package/build/templates/claude-commands/test-generate.md +45 -0
  11. package/build/templates/claude-skills/nest-server-generator/SKILL.md +372 -1314
  12. package/build/templates/claude-skills/nest-server-generator/configuration.md +279 -0
  13. package/build/templates/claude-skills/nest-server-generator/declare-keyword-warning.md +124 -0
  14. package/build/templates/claude-skills/nest-server-generator/description-management.md +217 -0
  15. package/build/templates/claude-skills/nest-server-generator/examples.md +131 -5
  16. package/build/templates/claude-skills/nest-server-generator/quality-review.md +855 -0
  17. package/build/templates/claude-skills/nest-server-generator/reference.md +67 -13
  18. package/build/templates/claude-skills/nest-server-generator/security-rules.md +358 -0
  19. package/build/templates/claude-skills/story-tdd/SKILL.md +1173 -0
  20. package/build/templates/claude-skills/story-tdd/code-quality.md +266 -0
  21. package/build/templates/claude-skills/story-tdd/database-indexes.md +173 -0
  22. package/build/templates/claude-skills/story-tdd/examples.md +1332 -0
  23. package/build/templates/claude-skills/story-tdd/reference.md +1180 -0
  24. package/build/templates/claude-skills/story-tdd/security-review.md +299 -0
  25. package/package.json +1 -1
@@ -1,6 +1,6 @@
1
1
  ---
2
2
  name: nest-server-generator-examples
3
- version: 1.0.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
- Update all generated files to follow pattern: `"ENGLISH (DEUTSCH)"`:
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
- // Before:
216
- @UnifiedField({ description: 'ISBN number' })
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
- // After:
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