@lenne.tech/cli 1.10.0 → 1.11.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.
- package/README.md +5 -3
- package/build/commands/config/validate.js +2 -0
- package/build/commands/frontend/convert-mode.js +198 -0
- package/build/commands/fullstack/convert-mode.js +368 -0
- package/build/commands/fullstack/init.js +44 -2
- package/build/commands/fullstack/update.js +49 -1
- package/build/commands/server/convert-mode.js +197 -0
- package/build/commands/status.js +81 -2
- package/build/config/vendor-frontend-runtime-deps.json +4 -0
- package/build/extensions/frontend-helper.js +652 -0
- package/build/extensions/server.js +515 -68
- package/build/lib/frontend-framework-detection.js +129 -0
- package/docs/LT-ECOSYSTEM-GUIDE.md +973 -0
- package/docs/VENDOR-MODE-WORKFLOW.md +471 -0
- package/docs/commands.md +196 -0
- package/docs/lt.config.md +9 -7
- package/package.json +2 -1
- package/build/templates/vendor-scripts/check-vendor-freshness.mjs +0 -131
- package/build/templates/vendor-scripts/propose-upstream-pr.ts +0 -269
- package/build/templates/vendor-scripts/sync-from-upstream.ts +0 -250
|
@@ -0,0 +1,973 @@
|
|
|
1
|
+
# lenne.tech Fullstack-Ecosystem: CLI & lt-dev Plugin
|
|
2
|
+
|
|
3
|
+
Umfassender Leitfaden für `lt CLI` und das `lt-dev` Claude-Code-Plugin mit Fokus auf **Vendor-Mode-Workflows** für `@lenne.tech/nest-server` und `@lenne.tech/nuxt-extensions`.
|
|
4
|
+
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
## Inhaltsverzeichnis
|
|
8
|
+
|
|
9
|
+
- [Überblick](#überblick)
|
|
10
|
+
- [Architekturdiagramm](#architekturdiagramm)
|
|
11
|
+
- [lt CLI — Funktionen](#lt-cli--funktionen)
|
|
12
|
+
- [Projekt-Scaffolding](#projekt-scaffolding)
|
|
13
|
+
- [Server-Entwicklung](#server-entwicklung)
|
|
14
|
+
- [Frontend-Entwicklung](#frontend-entwicklung)
|
|
15
|
+
- [Fullstack-Workflows](#fullstack-workflows)
|
|
16
|
+
- [Vendor-Mode-Konvertierung](#vendor-mode-konvertierung)
|
|
17
|
+
- [Status & Diagnose](#status--diagnose)
|
|
18
|
+
- [Weitere Tools](#weitere-tools)
|
|
19
|
+
- [lt-dev Plugin — Funktionen](#lt-dev-plugin--funktionen)
|
|
20
|
+
- [Commands](#commands)
|
|
21
|
+
- [Autonomous Agents](#autonomous-agents)
|
|
22
|
+
- [Skills (Wissensbasis)](#skills-wissensbasis)
|
|
23
|
+
- [Vendor-Mode-Prozesse](#vendor-mode-prozesse)
|
|
24
|
+
- [Neues Projekt im Vendor-Mode erstellen](#1-neues-projekt-im-vendor-mode-erstellen)
|
|
25
|
+
- [npm → Vendor überführen (Backend)](#2-backend-npm--vendor-überführen)
|
|
26
|
+
- [npm → Vendor überführen (Frontend)](#3-frontend-npm--vendor-überführen)
|
|
27
|
+
- [Vendor → npm zurückführen (Backend)](#4-backend-vendor--npm-rückführung)
|
|
28
|
+
- [Vendor → npm zurückführen (Frontend)](#5-frontend-vendor--npm-rückführung)
|
|
29
|
+
- [Update-Workflows](#6-update-workflows)
|
|
30
|
+
- [Upstream-Contribution](#7-upstream-contribution)
|
|
31
|
+
- [Entscheidungsmatrix](#entscheidungsmatrix)
|
|
32
|
+
- [Glossar](#glossar)
|
|
33
|
+
|
|
34
|
+
---
|
|
35
|
+
|
|
36
|
+
## Überblick
|
|
37
|
+
|
|
38
|
+
Das lenne.tech-Ecosystem besteht aus zwei komplementären Werkzeugen:
|
|
39
|
+
|
|
40
|
+
- **`lt CLI`** (`@lenne.tech/cli`) — Terminal-Tool für Scaffolding, Generierung, Status und Mode-Konvertierung
|
|
41
|
+
- **`lt-dev` Plugin** — Claude-Code-Plugin mit Commands, autonomen Agents und Skills für intelligente Entwicklungs-Workflows
|
|
42
|
+
|
|
43
|
+
Beide Werkzeuge unterstützen den **Vendor-Mode** als Pilot für `@lenne.tech/nest-server` (Backend) und `@lenne.tech/nuxt-extensions` (Frontend). Im Vendor-Mode wird der Framework-Code direkt als Projekt-Source in `src/core/` (Backend) bzw. `app/core/` (Frontend) kopiert — ohne npm-Dependency.
|
|
44
|
+
|
|
45
|
+
---
|
|
46
|
+
|
|
47
|
+
## Architekturdiagramm
|
|
48
|
+
|
|
49
|
+
```
|
|
50
|
+
┌─────────────────────────────────────────────────────────────────────┐
|
|
51
|
+
│ Entwickler / Claude Code │
|
|
52
|
+
└─────────┬────────────────────────────────────────────────┬──────────┘
|
|
53
|
+
│ │
|
|
54
|
+
│ Terminal │ Slash-Commands
|
|
55
|
+
▼ ▼
|
|
56
|
+
┌──────────────────────┐ ┌────────────────────────┐
|
|
57
|
+
│ lt CLI │ │ lt-dev Plugin │
|
|
58
|
+
│ │ │ │
|
|
59
|
+
│ • Scaffolding │ │ • Commands │
|
|
60
|
+
│ • Mode-Conversion │◄─── invoked by ──────┤ • Agents │
|
|
61
|
+
│ • Code-Generation │ │ • Skills │
|
|
62
|
+
│ • Status/Diagnose │ │ │
|
|
63
|
+
└──────────┬───────────┘ └────────────┬───────────┘
|
|
64
|
+
│ │
|
|
65
|
+
│ writes to │ operates on
|
|
66
|
+
▼ ▼
|
|
67
|
+
┌──────────────────────────────────────────────────────────────────────┐
|
|
68
|
+
│ Fullstack-Projekt │
|
|
69
|
+
│ │
|
|
70
|
+
│ projects/api (Backend — NestJS) projects/app (Frontend) │
|
|
71
|
+
│ ├── npm mode: @lenne.tech/nest-server ├── npm mode: @lenne.tech/ │
|
|
72
|
+
│ │ in package.json │ nuxt-extensions │
|
|
73
|
+
│ └── vendor mode: src/core/ + VENDOR.md └── vendor mode: app/core/ │
|
|
74
|
+
│ + VENDOR.md │
|
|
75
|
+
└──────────────────────────────────────────────────────────────────────┘
|
|
76
|
+
▲ ▲
|
|
77
|
+
│ syncs from │ syncs from
|
|
78
|
+
│ │
|
|
79
|
+
┌──────────┴──────────────┐ ┌───────────┴────────────┐
|
|
80
|
+
│ github.com/lenneTech/ │ │ github.com/lenneTech/ │
|
|
81
|
+
│ nest-server │ │ nuxt-extensions │
|
|
82
|
+
│ nest-server-starter │ │ nuxt-base-starter │
|
|
83
|
+
└─────────────────────────┘ └────────────────────────┘
|
|
84
|
+
```
|
|
85
|
+
|
|
86
|
+
---
|
|
87
|
+
|
|
88
|
+
## lt CLI — Funktionen
|
|
89
|
+
|
|
90
|
+
### Projekt-Scaffolding
|
|
91
|
+
|
|
92
|
+
| Command | Zweck |
|
|
93
|
+
|---------|-------|
|
|
94
|
+
| `lt fullstack init` | Erstellt ein neues Monorepo mit API + Frontend. Unterstützt npm- und vendor-Mode für beide Seiten |
|
|
95
|
+
| `lt frontend nuxt` | Standalone Nuxt-4-Projekt aus `nuxt-base-starter` |
|
|
96
|
+
| `lt frontend angular` | Standalone Angular-Projekt aus `ng-base-starter` |
|
|
97
|
+
| `lt server create` | Standalone NestJS-Projekt aus `nest-server-starter` |
|
|
98
|
+
| `lt starter chrome-extension` | Chrome-Extension-Starter |
|
|
99
|
+
| `lt cli create` | Neues CLI-Projekt via Gluegun |
|
|
100
|
+
| `lt typescript create` | TypeScript-Library-Starter |
|
|
101
|
+
|
|
102
|
+
**Fullstack-Init mit Vendor-Modes:**
|
|
103
|
+
|
|
104
|
+
```bash
|
|
105
|
+
lt fullstack init \
|
|
106
|
+
--name my-project \
|
|
107
|
+
--frontend nuxt \
|
|
108
|
+
--api-mode Rest \
|
|
109
|
+
--framework-mode vendor \
|
|
110
|
+
--frontend-framework-mode vendor \
|
|
111
|
+
--framework-upstream-branch 11.24.3 \
|
|
112
|
+
--noConfirm
|
|
113
|
+
```
|
|
114
|
+
|
|
115
|
+
Flags:
|
|
116
|
+
- `--framework-mode npm|vendor` — Backend-Modus
|
|
117
|
+
- `--frontend-framework-mode npm|vendor` — Frontend-Modus
|
|
118
|
+
- `--framework-upstream-branch <tag>` — Spezifische nest-server Version für Vendor
|
|
119
|
+
- `--dry-run` — Plan anzeigen ohne Änderungen
|
|
120
|
+
|
|
121
|
+
---
|
|
122
|
+
|
|
123
|
+
### Server-Entwicklung
|
|
124
|
+
|
|
125
|
+
| Command | Zweck |
|
|
126
|
+
|---------|-------|
|
|
127
|
+
| `lt server module` | Generiert ein NestJS-Modul (Model, Service, Controller, Resolver, Tests) |
|
|
128
|
+
| `lt server object` | Generiert einen Input/Output-Typ |
|
|
129
|
+
| `lt server add-property` | Fügt einem existierenden Modul ein Property hinzu |
|
|
130
|
+
| `lt server test` | Generiert E2E-Tests für ein Modul |
|
|
131
|
+
| `lt server permissions` | Analysiert alle `@Roles`/`@Restricted` Decoratoren, erzeugt Report (md/json/html) |
|
|
132
|
+
| `lt server create-secret` | Generiert sichere Secrets für `.env` |
|
|
133
|
+
| `lt server set-secrets` | Setzt Secrets im Projekt |
|
|
134
|
+
| **`lt server convert-mode`** | **Konvertiert Backend zwischen npm und vendor Mode** |
|
|
135
|
+
|
|
136
|
+
Alle Code-Generatoren sind **mode-aware**: Im Vendor-Mode nutzen sie relative Pfade zu `src/core/`, im npm-Mode den bare specifier `@lenne.tech/nest-server`.
|
|
137
|
+
|
|
138
|
+
---
|
|
139
|
+
|
|
140
|
+
### Frontend-Entwicklung
|
|
141
|
+
|
|
142
|
+
| Command | Zweck |
|
|
143
|
+
|---------|-------|
|
|
144
|
+
| `lt frontend nuxt` | Nuxt-Projekt aus Starter erstellen |
|
|
145
|
+
| `lt frontend angular` | Angular-Projekt aus Starter erstellen |
|
|
146
|
+
| **`lt frontend convert-mode`** | **Konvertiert Frontend zwischen npm und vendor Mode** |
|
|
147
|
+
|
|
148
|
+
---
|
|
149
|
+
|
|
150
|
+
### Fullstack-Workflows
|
|
151
|
+
|
|
152
|
+
| Command | Zweck |
|
|
153
|
+
|---------|-------|
|
|
154
|
+
| `lt fullstack init` | Fullstack-Monorepo erstellen (siehe oben) |
|
|
155
|
+
| `lt fullstack update` | Zeigt mode-spezifische Update-Anweisungen für Backend UND Frontend |
|
|
156
|
+
| **`lt fullstack convert-mode`** | **Konvertiert Backend UND Frontend in einem Schritt zwischen npm und vendor Mode** |
|
|
157
|
+
|
|
158
|
+
**Fullstack Mode-Konvertierung in einem Command:**
|
|
159
|
+
|
|
160
|
+
```bash
|
|
161
|
+
# Beide Subprojekte in vendor mode
|
|
162
|
+
lt fullstack convert-mode --to vendor --noConfirm
|
|
163
|
+
|
|
164
|
+
# Mit spezifischen Upstream-Versionen
|
|
165
|
+
lt fullstack convert-mode --to vendor \
|
|
166
|
+
--framework-upstream-branch 11.24.3 \
|
|
167
|
+
--frontend-framework-upstream-branch 1.5.3 \
|
|
168
|
+
--noConfirm
|
|
169
|
+
|
|
170
|
+
# Beide zurück zu npm
|
|
171
|
+
lt fullstack convert-mode --to npm --noConfirm
|
|
172
|
+
|
|
173
|
+
# Nur Backend konvertieren
|
|
174
|
+
lt fullstack convert-mode --to vendor --skip-frontend --noConfirm
|
|
175
|
+
|
|
176
|
+
# Nur Frontend konvertieren
|
|
177
|
+
lt fullstack convert-mode --to vendor --skip-backend --noConfirm
|
|
178
|
+
|
|
179
|
+
# Dry-run (Plan ohne Änderungen)
|
|
180
|
+
lt fullstack convert-mode --to vendor --dry-run
|
|
181
|
+
```
|
|
182
|
+
|
|
183
|
+
Der Command findet automatisch `projects/api/` und `projects/app/` (oder `packages/api` / `packages/app`), erkennt die aktuellen Modi, zeigt einen Plan an und orchestriert dann die Konvertierung beider Seiten mit den passenden Helper-Methoden.
|
|
184
|
+
|
|
185
|
+
---
|
|
186
|
+
|
|
187
|
+
### Vendor-Mode-Konvertierung
|
|
188
|
+
|
|
189
|
+
**Backend**: `lt server convert-mode`
|
|
190
|
+
|
|
191
|
+
```bash
|
|
192
|
+
# npm → vendor
|
|
193
|
+
cd projects/api
|
|
194
|
+
lt server convert-mode --to vendor --upstream-branch 11.24.3 --noConfirm
|
|
195
|
+
|
|
196
|
+
# vendor → npm
|
|
197
|
+
lt server convert-mode --to npm --version 11.24.3 --noConfirm
|
|
198
|
+
|
|
199
|
+
# Dry-run (Plan ohne Änderungen)
|
|
200
|
+
lt server convert-mode --to vendor --dry-run
|
|
201
|
+
```
|
|
202
|
+
|
|
203
|
+
**Frontend**: `lt frontend convert-mode`
|
|
204
|
+
|
|
205
|
+
```bash
|
|
206
|
+
# npm → vendor
|
|
207
|
+
cd projects/app
|
|
208
|
+
lt frontend convert-mode --to vendor --upstream-branch 1.5.3 --noConfirm
|
|
209
|
+
|
|
210
|
+
# vendor → npm
|
|
211
|
+
lt frontend convert-mode --to npm --version 1.5.3 --noConfirm
|
|
212
|
+
|
|
213
|
+
# Dry-run
|
|
214
|
+
lt frontend convert-mode --to vendor --dry-run
|
|
215
|
+
```
|
|
216
|
+
|
|
217
|
+
Beide Commands klonen das jeweilige Upstream-Repo nach `/tmp/`, führen die Code-Transformation durch und räumen am Ende auf. Es werden **keine lokalen Pfade** benötigt.
|
|
218
|
+
|
|
219
|
+
---
|
|
220
|
+
|
|
221
|
+
### Status & Diagnose
|
|
222
|
+
|
|
223
|
+
| Command | Zweck |
|
|
224
|
+
|---------|-------|
|
|
225
|
+
| `lt status` | Zeigt Projekt-Typ, Framework-Modus (Backend + Frontend), Config, Git-Branch, Versionen. Im Monorepo-Root werden beide Subprojekte automatisch gescannt |
|
|
226
|
+
| `lt doctor` | Prüft Umgebung, Versionen, Abhängigkeiten |
|
|
227
|
+
| `lt history` | Zeigt CLI-Command-Verlauf |
|
|
228
|
+
|
|
229
|
+
**Beispiel im IMO-Monorepo-Root:**
|
|
230
|
+
|
|
231
|
+
```
|
|
232
|
+
Monorepo Subprojects:
|
|
233
|
+
Backend: projects/api → vendor (src/core/, VENDOR.md)
|
|
234
|
+
Frontend: projects/app → vendor (app/core/, VENDOR.md)
|
|
235
|
+
```
|
|
236
|
+
|
|
237
|
+
---
|
|
238
|
+
|
|
239
|
+
### Weitere Tools
|
|
240
|
+
|
|
241
|
+
| Bereich | Commands |
|
|
242
|
+
|---------|----------|
|
|
243
|
+
| **Config** | `lt config init`, `lt config validate`, `lt config show`, `lt config help` |
|
|
244
|
+
| **Git** | `lt git create`, `git get`, `git update`, `git clean`, `git squash`, `git rebase`, `git rename`, `git reset`, `git undo`, `git clear`, `git force-pull` |
|
|
245
|
+
| **NPM** | `lt npm reinit` |
|
|
246
|
+
| **MongoDB** | `lt mongodb collection-export`, `mongodb s3-restore` |
|
|
247
|
+
| **Qdrant** | `lt qdrant stats`, `qdrant delete` |
|
|
248
|
+
| **Directus** | `lt directus docker-setup`, `directus typegen`, `directus remove` |
|
|
249
|
+
| **Deployment** | `lt deployment create` (GitHub/GitLab Pipelines) |
|
|
250
|
+
| **Blocks/Components** | `lt blocks add`, `lt components add` |
|
|
251
|
+
| **Tools** | `lt tools regex`, `tools sha256`, `tools jwt-read`, `tools crypt`, `tools install-scripts` |
|
|
252
|
+
| **Docs** | `lt docs open` |
|
|
253
|
+
| **Claude** | `lt claude shortcuts`, `lt claude plugins` |
|
|
254
|
+
| **Templates** | `lt templates llm` |
|
|
255
|
+
|
|
256
|
+
---
|
|
257
|
+
|
|
258
|
+
## lt-dev Plugin — Funktionen
|
|
259
|
+
|
|
260
|
+
Das `lt-dev` Claude-Code-Plugin enthält **Commands** (User-invocable), **Agents** (autonome Execution) und **Skills** (Wissensbasen).
|
|
261
|
+
|
|
262
|
+
### Commands
|
|
263
|
+
|
|
264
|
+
#### Backend
|
|
265
|
+
|
|
266
|
+
| Command | Zweck |
|
|
267
|
+
|---------|-------|
|
|
268
|
+
| `/lt-dev:backend:update-nest-server` | Aktualisiert `@lenne.tech/nest-server` im npm-Mode mit Migration-Guides |
|
|
269
|
+
| `/lt-dev:backend:update-nest-server-core` | Synct vendored `src/core/` mit Upstream (Vendor-Mode) |
|
|
270
|
+
| `/lt-dev:backend:convert-to-vendor` | Konvertiert bestehendes Projekt von npm → vendor (inkl. Migration-Guides) |
|
|
271
|
+
| `/lt-dev:backend:convert-to-npm` | Konvertiert vendored Projekt zurück zu npm |
|
|
272
|
+
| `/lt-dev:backend:contribute-nest-server-core` | Bereitet lokale Patches als Upstream-PR für nest-server vor |
|
|
273
|
+
| `/lt-dev:backend:sec-audit` | Security-Audit des Backend-Codes |
|
|
274
|
+
| `/lt-dev:backend:sec-review` | Security-Review eines spezifischen Code-Bereichs |
|
|
275
|
+
| `/lt-dev:backend:test-generate` | Generiert E2E-Tests |
|
|
276
|
+
| `/lt-dev:backend:code-cleanup` | Räumt Code auf (imports, formatting) |
|
|
277
|
+
|
|
278
|
+
#### Frontend
|
|
279
|
+
|
|
280
|
+
| Command | Zweck |
|
|
281
|
+
|---------|-------|
|
|
282
|
+
| `/lt-dev:frontend:update-nuxt-extensions-core` | Synct vendored `app/core/` mit Upstream |
|
|
283
|
+
| `/lt-dev:frontend:convert-to-vendor` | Konvertiert Frontend-Projekt von npm → vendor |
|
|
284
|
+
| `/lt-dev:frontend:convert-to-npm` | Konvertiert vendored Frontend zurück zu npm |
|
|
285
|
+
| `/lt-dev:frontend:contribute-nuxt-extensions-core` | Bereitet lokale Patches als Upstream-PR für nuxt-extensions vor |
|
|
286
|
+
| `/lt-dev:frontend:figma-init` | Initialisiert Figma-Code-Connect Setup |
|
|
287
|
+
| `/lt-dev:frontend:figma-research` | Analysiert Figma-Designs für Implementierung |
|
|
288
|
+
| `/lt-dev:frontend:figma-to-code` | Übersetzt Figma-Design in Vue/Nuxt-Code |
|
|
289
|
+
| `/lt-dev:frontend:env-migrate` | Migriert `.env` von alten Standards |
|
|
290
|
+
| `/lt-dev:frontend:init-conventions` | Initialisiert Frontend-Konventionen |
|
|
291
|
+
|
|
292
|
+
#### Fullstack
|
|
293
|
+
|
|
294
|
+
| Command | Zweck |
|
|
295
|
+
|---------|-------|
|
|
296
|
+
| **`/lt-dev:fullstack:update-all`** | **Comprehensive Update**: Backend + Frontend (mode-aware) + Package-Maintenance + CLAUDE.md-Sync + Validation |
|
|
297
|
+
| `/lt-dev:fullstack:update` | Einfacher Backend + Frontend Update (legacy, weniger umfassend) |
|
|
298
|
+
| `/lt-dev:fullstack:sync-claude-md` | Synct `CLAUDE.md` aus Upstream-Starter-Templates |
|
|
299
|
+
|
|
300
|
+
#### Maintenance
|
|
301
|
+
|
|
302
|
+
| Command | Zweck |
|
|
303
|
+
|---------|-------|
|
|
304
|
+
| `/lt-dev:maintenance:maintain` | FULL MODE: Package-Update + Audit + Security + Deduplication |
|
|
305
|
+
| `/lt-dev:maintenance:maintain-check` | DRY-RUN: Analyse ohne Änderungen |
|
|
306
|
+
| `/lt-dev:maintenance:maintain-security` | Nur Security-Patches |
|
|
307
|
+
| `/lt-dev:maintenance:maintain-pre-release` | Conservative Patch-only vor Release |
|
|
308
|
+
| `/lt-dev:maintenance:maintain-post-feature` | Post-Feature-Cleanup |
|
|
309
|
+
|
|
310
|
+
#### Git
|
|
311
|
+
|
|
312
|
+
| Command | Zweck |
|
|
313
|
+
|---------|-------|
|
|
314
|
+
| `/lt-dev:git:commit-message` | Generiert Conventional-Commit-Message aus Staging |
|
|
315
|
+
| `/lt-dev:git:create-request` | Erstellt Merge-Request mit beschreibendem Body |
|
|
316
|
+
| `/lt-dev:git:mr-description` | Generiert MR-Description aus Commits |
|
|
317
|
+
| `/lt-dev:git:mr-description-clipboard` | Dito, kopiert ins Clipboard |
|
|
318
|
+
| `/lt-dev:git:rebase` | Rebase auf development-Branch mit Conflict-Resolution |
|
|
319
|
+
| `/lt-dev:git:rebase-mrs` | Rebased mehrere MRs hintereinander |
|
|
320
|
+
|
|
321
|
+
#### Docker
|
|
322
|
+
|
|
323
|
+
| Command | Zweck |
|
|
324
|
+
|---------|-------|
|
|
325
|
+
| `/lt-dev:docker:gen-setup` | Generiert Docker-Konfiguration (Dockerfile + compose + .env) |
|
|
326
|
+
|
|
327
|
+
#### Plugin
|
|
328
|
+
|
|
329
|
+
| Command | Zweck |
|
|
330
|
+
|---------|-------|
|
|
331
|
+
| `/lt-dev:plugin:check` | Validiert das Plugin-Setup nach Context-Loss |
|
|
332
|
+
| `/lt-dev:plugin:element` | Interaktives Erstellen neuer Plugin-Elemente |
|
|
333
|
+
|
|
334
|
+
#### Vibe (Spec-Driven Development)
|
|
335
|
+
|
|
336
|
+
| Command | Zweck |
|
|
337
|
+
|---------|-------|
|
|
338
|
+
| `/lt-dev:vibe:plan` | Erstellt Implementierungsplan aus Requirement |
|
|
339
|
+
| `/lt-dev:vibe:build` | Implementiert nach Plan |
|
|
340
|
+
| `/lt-dev:vibe:build-plan` | Plan + Build in einem Flow |
|
|
341
|
+
|
|
342
|
+
#### Standalone
|
|
343
|
+
|
|
344
|
+
| Command | Zweck |
|
|
345
|
+
|---------|-------|
|
|
346
|
+
| `/lt-dev:debug` | Structured Debugging Session |
|
|
347
|
+
| `/lt-dev:review` | Code-Review mit mehreren Reviewer-Perspektiven |
|
|
348
|
+
| `/lt-dev:refactor-frontend` | Frontend-Refactoring-Helfer |
|
|
349
|
+
| `/lt-dev:resolve-ticket` | Linear-Ticket implementieren |
|
|
350
|
+
| `/lt-dev:create-ticket` | Linear-Ticket erstellen |
|
|
351
|
+
| `/lt-dev:create-story` | User-Story erstellen (DE) |
|
|
352
|
+
| `/lt-dev:create-task` | Linear-Task erstellen |
|
|
353
|
+
| `/lt-dev:create-bug` | Linear-Bug erstellen |
|
|
354
|
+
| `/lt-dev:linear-comment` | Linear-Kommentar erstellen |
|
|
355
|
+
| `/lt-dev:dev-submit` | Dev-Submit-Workflow (commit + push + MR) |
|
|
356
|
+
| `/lt-dev:interview` | Struktur-Interview für Requirements |
|
|
357
|
+
| `/lt-dev:skill-optimize` | Optimiert eine Plugin-Skill |
|
|
358
|
+
| `/lt-dev:spec-to-tasks` | Spec → Aufgaben-Liste |
|
|
359
|
+
|
|
360
|
+
---
|
|
361
|
+
|
|
362
|
+
### Autonomous Agents
|
|
363
|
+
|
|
364
|
+
Autonome Agents führen mehrschrittige Aufgaben ohne Interaktion aus. Sie werden via Commands oder Agent-Tool gespawnt.
|
|
365
|
+
|
|
366
|
+
#### Vendor-Mode Agents
|
|
367
|
+
|
|
368
|
+
| Agent | Zweck | Gespawnt von |
|
|
369
|
+
|-------|-------|--------------|
|
|
370
|
+
| `vendor-mode-converter` | Backend npm → vendor Konvertierung inkl. Migration-Guides | `/lt-dev:backend:convert-to-vendor` |
|
|
371
|
+
| `vendor-mode-converter-frontend` | Frontend npm → vendor Konvertierung inkl. Changelog | `/lt-dev:frontend:convert-to-vendor` |
|
|
372
|
+
| `nest-server-core-updater` | Upstream-Sync für vendored nest-server core | `/lt-dev:backend:update-nest-server-core` |
|
|
373
|
+
| `nuxt-extensions-core-updater` | Upstream-Sync für vendored nuxt-extensions core | `/lt-dev:frontend:update-nuxt-extensions-core` |
|
|
374
|
+
| `nest-server-core-contributor` | Upstream-PR-Drafts aus lokalen Backend-Patches | `/lt-dev:backend:contribute-nest-server-core` |
|
|
375
|
+
| `nuxt-extensions-core-contributor` | Upstream-PR-Drafts aus lokalen Frontend-Patches | `/lt-dev:frontend:contribute-nuxt-extensions-core` |
|
|
376
|
+
|
|
377
|
+
#### Update-Agents
|
|
378
|
+
|
|
379
|
+
| Agent | Zweck |
|
|
380
|
+
|-------|-------|
|
|
381
|
+
| `nest-server-updater` | npm-Mode Update von nest-server inkl. Migration-Guides |
|
|
382
|
+
| `fullstack-updater` | Coordinated Backend + Frontend Update (legacy) |
|
|
383
|
+
| `npm-package-maintainer` | Package-Optimierung (5 Modes) |
|
|
384
|
+
| `branch-rebaser` | Rebase-Automation mit Conflict-Resolution |
|
|
385
|
+
|
|
386
|
+
#### Development Agents
|
|
387
|
+
|
|
388
|
+
| Agent | Zweck |
|
|
389
|
+
|-------|-------|
|
|
390
|
+
| `backend-dev` | Autonomous NestJS-Entwicklung |
|
|
391
|
+
| `frontend-dev` | Autonomous Nuxt-4-Entwicklung |
|
|
392
|
+
| `architect` | Architektur-Planung mit Stack-Enforcement |
|
|
393
|
+
| `devops` | Docker, CI/CD, Environment |
|
|
394
|
+
|
|
395
|
+
#### Reviewer-Agents
|
|
396
|
+
|
|
397
|
+
| Agent | Zweck |
|
|
398
|
+
|-------|-------|
|
|
399
|
+
| `code-reviewer` | 6-Dimensionen Code-Review |
|
|
400
|
+
| `backend-reviewer` | NestJS-spezifisch |
|
|
401
|
+
| `frontend-reviewer` | Vue/Nuxt-spezifisch |
|
|
402
|
+
| `security-reviewer` | OWASP-aligned |
|
|
403
|
+
| `a11y-reviewer` | Accessibility + Lighthouse |
|
|
404
|
+
| `ux-reviewer` | UX-Patterns |
|
|
405
|
+
| `performance-reviewer` | Bundle, Queries, Caching |
|
|
406
|
+
| `devops-reviewer` | Docker, CI/CD Security |
|
|
407
|
+
| `docs-reviewer` | README, JSDoc, Migration-Guides |
|
|
408
|
+
| `test-reviewer` | Test-Coverage + Quality |
|
|
409
|
+
|
|
410
|
+
---
|
|
411
|
+
|
|
412
|
+
### Skills (Wissensbasis)
|
|
413
|
+
|
|
414
|
+
Skills enthalten strukturiertes Wissen und werden automatisch aktiviert bei passenden Anfragen.
|
|
415
|
+
|
|
416
|
+
| Skill | Zweck |
|
|
417
|
+
|-------|-------|
|
|
418
|
+
| **`nest-server-core-vendoring`** | Backend-Vendoring-Pattern, flatten-fix, Sync-Workflows |
|
|
419
|
+
| **`nuxt-extensions-core-vendoring`** | Frontend-Vendoring-Pattern, nuxt.config-Rewrite, Sync |
|
|
420
|
+
| `nest-server-updating` | npm-Mode Update-Prozesse, Migration-Guides, Error-Patterns |
|
|
421
|
+
| `generating-nest-servers` | NestJS-Module/Services/Controller generieren |
|
|
422
|
+
| `developing-lt-frontend` | Nuxt-4-Development, Composables, Forms, Auth |
|
|
423
|
+
| `maintaining-npm-packages` | Dependency-Optimierung (5 Modes) |
|
|
424
|
+
| `using-lt-cli` | lt CLI Reference, Konventionen |
|
|
425
|
+
| `developing-claude-plugins` | Plugin-Development (Skills, Commands, Agents) |
|
|
426
|
+
| `coordinating-agent-teams` | Agent-Team-Coordination, Parallelism |
|
|
427
|
+
| `building-stories-with-tdd` | TDD-Workflow für User-Stories |
|
|
428
|
+
| `rebasing-branches` | Rebase-Strategien mit Conflict-Resolution |
|
|
429
|
+
| `general-frontend-security` | OWASP Frontend Security |
|
|
430
|
+
|
|
431
|
+
---
|
|
432
|
+
|
|
433
|
+
## Vendor-Mode-Prozesse
|
|
434
|
+
|
|
435
|
+
### 1. Neues Projekt im Vendor-Mode erstellen
|
|
436
|
+
|
|
437
|
+
```
|
|
438
|
+
┌────────────────────────────────────────────────────────────────┐
|
|
439
|
+
│ ENTWICKLER │
|
|
440
|
+
│ │
|
|
441
|
+
│ lt fullstack init │
|
|
442
|
+
│ --name my-project │
|
|
443
|
+
│ --frontend nuxt │
|
|
444
|
+
│ --api-mode Rest │
|
|
445
|
+
│ --framework-mode vendor ← Backend vendored │
|
|
446
|
+
│ --frontend-framework-mode vendor ← Frontend vendored │
|
|
447
|
+
│ --framework-upstream-branch 11.24.3 │
|
|
448
|
+
│ --noConfirm │
|
|
449
|
+
│ │
|
|
450
|
+
└───────────────────────┬────────────────────────────────────────┘
|
|
451
|
+
│
|
|
452
|
+
▼
|
|
453
|
+
┌────────────────────────────────────────────────────────────────┐
|
|
454
|
+
│ lt CLI macht: │
|
|
455
|
+
│ │
|
|
456
|
+
│ 1. git clone lt-monorepo │
|
|
457
|
+
│ 2. setup frontend (nuxt-base-starter) │
|
|
458
|
+
│ 3. setup backend (nest-server-starter) │
|
|
459
|
+
│ 4. convertCloneToVendored (backend): │
|
|
460
|
+
│ - clone nest-server 11.24.3 → /tmp │
|
|
461
|
+
│ - copy src/core/, index.ts, core.module.ts, etc. │
|
|
462
|
+
│ - apply flatten-fix (4 edge cases) │
|
|
463
|
+
│ - rewrite consumer imports (@lenne.tech/nest-server → ../) │
|
|
464
|
+
│ - merge upstream deps dynamically │
|
|
465
|
+
│ - apply express type-imports fix │
|
|
466
|
+
│ - create src/core/VENDOR.md │
|
|
467
|
+
│ - prepend vendor notice to CLAUDE.md │
|
|
468
|
+
│ 5. convertAppCloneToVendored (frontend): │
|
|
469
|
+
│ - clone nuxt-extensions 1.5.3 → /tmp │
|
|
470
|
+
│ - copy src/module.ts + src/runtime/ │
|
|
471
|
+
│ - rewrite nuxt.config.ts modules[] entry │
|
|
472
|
+
│ - rewrite consumer imports (4 files) │
|
|
473
|
+
│ - remove @lenne.tech/nuxt-extensions dep │
|
|
474
|
+
│ - create app/core/VENDOR.md │
|
|
475
|
+
│ - prepend vendor notice to CLAUDE.md │
|
|
476
|
+
│ 6. pnpm install (monorepo) │
|
|
477
|
+
│ 7. git init + initial commit │
|
|
478
|
+
│ │
|
|
479
|
+
└────────────────────────────────────────────────────────────────┘
|
|
480
|
+
│
|
|
481
|
+
▼
|
|
482
|
+
┌────────────────────────────────────────────────────────────────┐
|
|
483
|
+
│ PROJEKT BEREIT │
|
|
484
|
+
│ │
|
|
485
|
+
│ my-project/ │
|
|
486
|
+
│ ├── projects/ │
|
|
487
|
+
│ │ ├── api/ │
|
|
488
|
+
│ │ │ ├── src/ │
|
|
489
|
+
│ │ │ │ ├── core/ ← Vendored nest-server │
|
|
490
|
+
│ │ │ │ │ └── VENDOR.md │
|
|
491
|
+
│ │ │ │ ├── server/ ← Projekt-Code │
|
|
492
|
+
│ │ │ │ └── main.ts │
|
|
493
|
+
│ │ │ ├── bin/migrate.js │
|
|
494
|
+
│ │ │ └── package.json (ohne @lenne.tech/nest-server) │
|
|
495
|
+
│ │ └── app/ │
|
|
496
|
+
│ │ ├── app/ │
|
|
497
|
+
│ │ │ ├── core/ ← Vendored nuxt-extensions │
|
|
498
|
+
│ │ │ │ ├── module.ts │
|
|
499
|
+
│ │ │ │ ├── runtime/ │
|
|
500
|
+
│ │ │ │ └── VENDOR.md │
|
|
501
|
+
│ │ │ └── ... │
|
|
502
|
+
│ │ ├── nuxt.config.ts (modules: ['./app/core/module']) │
|
|
503
|
+
│ │ └── package.json (ohne @lenne.tech/nuxt-extensions) │
|
|
504
|
+
│ └── CLAUDE.md │
|
|
505
|
+
└────────────────────────────────────────────────────────────────┘
|
|
506
|
+
```
|
|
507
|
+
|
|
508
|
+
**Alternative**: Nur Backend ODER nur Frontend vendored. Flags weglassen:
|
|
509
|
+
|
|
510
|
+
```bash
|
|
511
|
+
# Nur Backend vendored, Frontend bleibt npm
|
|
512
|
+
lt fullstack init --name my-project --frontend nuxt --api-mode Rest \
|
|
513
|
+
--framework-mode vendor --framework-upstream-branch 11.24.3 --noConfirm
|
|
514
|
+
|
|
515
|
+
# Nur Frontend vendored, Backend bleibt npm
|
|
516
|
+
lt fullstack init --name my-project --frontend nuxt --api-mode Rest \
|
|
517
|
+
--frontend-framework-mode vendor --noConfirm
|
|
518
|
+
```
|
|
519
|
+
|
|
520
|
+
---
|
|
521
|
+
|
|
522
|
+
### 2. Backend: npm → Vendor überführen
|
|
523
|
+
|
|
524
|
+
**Ausgangslage**: Existierendes Projekt im npm-Mode (`@lenne.tech/nest-server` in `package.json`).
|
|
525
|
+
|
|
526
|
+
```
|
|
527
|
+
┌──────────────────────────────────────────────────────────┐
|
|
528
|
+
│ ENTWICKLER in projects/api/ │
|
|
529
|
+
│ │
|
|
530
|
+
│ Option A — Via Claude Code (mit Migration-Guides): │
|
|
531
|
+
│ /lt-dev:backend:convert-to-vendor │
|
|
532
|
+
│ │
|
|
533
|
+
│ Option B — Direkt via CLI (ohne Migration-Guides): │
|
|
534
|
+
│ lt server convert-mode --to vendor │
|
|
535
|
+
│ │
|
|
536
|
+
│ Option C — Dry-Run (Plan ohne Änderungen): │
|
|
537
|
+
│ lt server convert-mode --to vendor --dry-run │
|
|
538
|
+
└─────────────┬────────────────────────────────────────────┘
|
|
539
|
+
│
|
|
540
|
+
▼ Option A nutzt Agent
|
|
541
|
+
┌──────────────────────────────────────────────────────────┐
|
|
542
|
+
│ vendor-mode-converter Agent │
|
|
543
|
+
│ │
|
|
544
|
+
│ Phase 0: Prerequisites │
|
|
545
|
+
│ - Verify npm mode │
|
|
546
|
+
│ - Verify NOT already vendored │
|
|
547
|
+
│ - Verify lt CLI available │
|
|
548
|
+
│ │
|
|
549
|
+
│ Phase 1: Version Detection │
|
|
550
|
+
│ - SOURCE = current @lenne.tech/nest-server version │
|
|
551
|
+
│ - TARGET = latest (or specified) │
|
|
552
|
+
│ - Calculate version gap │
|
|
553
|
+
│ │
|
|
554
|
+
│ Phase 2: Migration-Guide Discovery │
|
|
555
|
+
│ - gh api lenneTech/nest-server/contents/migration- │
|
|
556
|
+
│ guides │
|
|
557
|
+
│ - Filter by from-version >= SOURCE, < TARGET │
|
|
558
|
+
│ - Build ordered migration plan │
|
|
559
|
+
│ │
|
|
560
|
+
│ Phase 3: CLI Conversion │
|
|
561
|
+
│ - lt server convert-mode --to vendor │
|
|
562
|
+
│ --upstream-branch <TARGET> │
|
|
563
|
+
│ - Applies all transformations: │
|
|
564
|
+
│ • clone nest-server │
|
|
565
|
+
│ • copy + flatten-fix │
|
|
566
|
+
│ • rewrite imports │
|
|
567
|
+
│ • merge deps │
|
|
568
|
+
│ • express type-imports fix │
|
|
569
|
+
│ • VENDOR.md │
|
|
570
|
+
│ │
|
|
571
|
+
│ Phase 4: Migration Application │
|
|
572
|
+
│ - Apply each migration guide in version order │
|
|
573
|
+
│ - Translate @lenne.tech/nest-server refs to relative │
|
|
574
|
+
│ paths │
|
|
575
|
+
│ │
|
|
576
|
+
│ Phase 5: Validation Loop │
|
|
577
|
+
│ - tsc --noEmit │
|
|
578
|
+
│ - pnpm lint │
|
|
579
|
+
│ - pnpm test │
|
|
580
|
+
│ - Fix until green │
|
|
581
|
+
│ │
|
|
582
|
+
│ Phase 6: Report │
|
|
583
|
+
└──────────────────────────────────────────────────────────┘
|
|
584
|
+
```
|
|
585
|
+
|
|
586
|
+
---
|
|
587
|
+
|
|
588
|
+
### 3. Frontend: npm → Vendor überführen
|
|
589
|
+
|
|
590
|
+
**Ausgangslage**: Existierendes Nuxt-Projekt im npm-Mode.
|
|
591
|
+
|
|
592
|
+
```
|
|
593
|
+
┌──────────────────────────────────────────────────────────┐
|
|
594
|
+
│ ENTWICKLER in projects/app/ │
|
|
595
|
+
│ │
|
|
596
|
+
│ Option A — Via Claude Code (mit Changelog): │
|
|
597
|
+
│ /lt-dev:frontend:convert-to-vendor │
|
|
598
|
+
│ │
|
|
599
|
+
│ Option B — Direkt via CLI: │
|
|
600
|
+
│ lt frontend convert-mode --to vendor │
|
|
601
|
+
│ │
|
|
602
|
+
│ Option C — Dry-Run: │
|
|
603
|
+
│ lt frontend convert-mode --to vendor --dry-run │
|
|
604
|
+
└─────────────┬────────────────────────────────────────────┘
|
|
605
|
+
│
|
|
606
|
+
▼
|
|
607
|
+
┌──────────────────────────────────────────────────────────┐
|
|
608
|
+
│ vendor-mode-converter-frontend Agent (Option A) │
|
|
609
|
+
│ │
|
|
610
|
+
│ Phase 0: Prerequisites │
|
|
611
|
+
│ Phase 1: Version Detection │
|
|
612
|
+
│ - SOURCE = current @lenne.tech/nuxt-extensions │
|
|
613
|
+
│ - TARGET = latest │
|
|
614
|
+
│ │
|
|
615
|
+
│ Phase 2: Changelog Discovery │
|
|
616
|
+
│ - Fetch CHANGELOG.md from nuxt-extensions repo │
|
|
617
|
+
│ - Fetch GitHub releases for version gap │
|
|
618
|
+
│ │
|
|
619
|
+
│ Phase 3: CLI Conversion │
|
|
620
|
+
│ - lt frontend convert-mode --to vendor │
|
|
621
|
+
│ --upstream-branch <TARGET> │
|
|
622
|
+
│ - Transformations: │
|
|
623
|
+
│ • clone nuxt-extensions │
|
|
624
|
+
│ • copy src/module.ts + src/runtime/ │
|
|
625
|
+
│ • rewrite nuxt.config.ts │
|
|
626
|
+
│ • rewrite 4 explicit consumer imports │
|
|
627
|
+
│ • remove @lenne.tech/nuxt-extensions dep │
|
|
628
|
+
│ • VENDOR.md │
|
|
629
|
+
│ │
|
|
630
|
+
│ Phase 4: Changelog Application │
|
|
631
|
+
│ - Apply breaking changes from changelog │
|
|
632
|
+
│ │
|
|
633
|
+
│ Phase 5: Validation │
|
|
634
|
+
│ - nuxt build │
|
|
635
|
+
│ - pnpm lint │
|
|
636
|
+
│ │
|
|
637
|
+
│ Phase 6: Report │
|
|
638
|
+
└──────────────────────────────────────────────────────────┘
|
|
639
|
+
```
|
|
640
|
+
|
|
641
|
+
---
|
|
642
|
+
|
|
643
|
+
### 4. Backend: Vendor → npm Rückführung
|
|
644
|
+
|
|
645
|
+
**Ausgangslage**: Projekt im Vendor-Mode (`src/core/VENDOR.md` existiert).
|
|
646
|
+
|
|
647
|
+
```
|
|
648
|
+
┌──────────────────────────────────────────────────────────┐
|
|
649
|
+
│ ENTWICKLER in projects/api/ │
|
|
650
|
+
│ │
|
|
651
|
+
│ Option A — Via Claude Code: │
|
|
652
|
+
│ /lt-dev:backend:convert-to-npm │
|
|
653
|
+
│ │
|
|
654
|
+
│ Option B — Direkt via CLI: │
|
|
655
|
+
│ lt server convert-mode --to npm │
|
|
656
|
+
│ │
|
|
657
|
+
│ Mit spezifischer Version: │
|
|
658
|
+
│ lt server convert-mode --to npm --version 11.24.3 │
|
|
659
|
+
└─────────────┬────────────────────────────────────────────┘
|
|
660
|
+
│
|
|
661
|
+
▼
|
|
662
|
+
┌──────────────────────────────────────────────────────────┐
|
|
663
|
+
│ lt CLI macht: │
|
|
664
|
+
│ │
|
|
665
|
+
│ 1. Read baseline version from src/core/VENDOR.md │
|
|
666
|
+
│ 2. Warn if local patches exist in VENDOR.md │
|
|
667
|
+
│ → Hint: /lt-dev:backend:contribute-nest-server-core │
|
|
668
|
+
│ should be run FIRST to upstream them │
|
|
669
|
+
│ 3. Rewrite consumer imports: │
|
|
670
|
+
│ relative paths → @lenne.tech/nest-server │
|
|
671
|
+
│ 4. Delete src/core/ │
|
|
672
|
+
│ 5. Restore @lenne.tech/nest-server dep │
|
|
673
|
+
│ 6. Restore migrate:* scripts to node_modules paths │
|
|
674
|
+
│ 7. Remove vendor artifacts: │
|
|
675
|
+
│ - bin/migrate.js │
|
|
676
|
+
│ - migrations-utils/ts-compiler.js │
|
|
677
|
+
│ - migration-guides/ │
|
|
678
|
+
│ 8. Remove CLAUDE.md vendor marker block │
|
|
679
|
+
│ 9. Post-verification: scan for stale relative imports │
|
|
680
|
+
└──────────────────────────────────────────────────────────┘
|
|
681
|
+
```
|
|
682
|
+
|
|
683
|
+
**⚠️ Warnung vor Rückführung:**
|
|
684
|
+
Vor einem `convert-to-npm` sollten alle substantiellen lokalen Patches im vendored core über `/lt-dev:backend:contribute-nest-server-core` **upstream beigetragen** werden — sonst gehen sie verloren.
|
|
685
|
+
|
|
686
|
+
---
|
|
687
|
+
|
|
688
|
+
### 5. Frontend: Vendor → npm Rückführung
|
|
689
|
+
|
|
690
|
+
```
|
|
691
|
+
┌──────────────────────────────────────────────────────────┐
|
|
692
|
+
│ ENTWICKLER in projects/app/ │
|
|
693
|
+
│ │
|
|
694
|
+
│ Option A — Via Claude Code: │
|
|
695
|
+
│ /lt-dev:frontend:convert-to-npm │
|
|
696
|
+
│ │
|
|
697
|
+
│ Option B — Direkt via CLI: │
|
|
698
|
+
│ lt frontend convert-mode --to npm │
|
|
699
|
+
│ │
|
|
700
|
+
│ Mit spezifischer Version: │
|
|
701
|
+
│ lt frontend convert-mode --to npm --version 1.5.3 │
|
|
702
|
+
└─────────────┬────────────────────────────────────────────┘
|
|
703
|
+
│
|
|
704
|
+
▼
|
|
705
|
+
┌──────────────────────────────────────────────────────────┐
|
|
706
|
+
│ lt CLI macht: │
|
|
707
|
+
│ │
|
|
708
|
+
│ 1. Read baseline version from app/core/VENDOR.md │
|
|
709
|
+
│ 2. Warn if local patches exist in VENDOR.md │
|
|
710
|
+
│ 3. Rewrite consumer imports: │
|
|
711
|
+
│ relative paths → @lenne.tech/nuxt-extensions │
|
|
712
|
+
│ 4. Delete app/core/ │
|
|
713
|
+
│ 5. Restore @lenne.tech/nuxt-extensions dep │
|
|
714
|
+
│ 6. Rewrite nuxt.config.ts: │
|
|
715
|
+
│ './app/core/module' → '@lenne.tech/nuxt-extensions' │
|
|
716
|
+
│ 7. Remove vendor-freshness script │
|
|
717
|
+
│ 8. Remove CLAUDE.md vendor marker block │
|
|
718
|
+
│ 9. Post-verification │
|
|
719
|
+
└──────────────────────────────────────────────────────────┘
|
|
720
|
+
```
|
|
721
|
+
|
|
722
|
+
---
|
|
723
|
+
|
|
724
|
+
### 6. Update-Workflows
|
|
725
|
+
|
|
726
|
+
Der **empfohlene** Weg für alle Updates ist `/lt-dev:fullstack:update-all`. Er ist mode-aware und orchestriert die passenden Agents automatisch.
|
|
727
|
+
|
|
728
|
+
```
|
|
729
|
+
┌──────────────────────────────────────────────────────────────────┐
|
|
730
|
+
│ /lt-dev:fullstack:update-all │
|
|
731
|
+
│ │
|
|
732
|
+
│ Phase 1: Detect project structure + framework modes │
|
|
733
|
+
│ Backend: test -f <api>/src/core/VENDOR.md → vendor | npm │
|
|
734
|
+
│ Frontend: test -f <app>/app/core/VENDOR.md → vendor | npm │
|
|
735
|
+
│ │
|
|
736
|
+
│ Phase 2: Version analysis + UPDATE_PLAN.md + User Approval │
|
|
737
|
+
│ │
|
|
738
|
+
│ Phase 3: Backend Framework Update │
|
|
739
|
+
│ IF npm: spawn lt-dev:nest-server-updater │
|
|
740
|
+
│ IF vendor: spawn lt-dev:nest-server-core-updater │
|
|
741
|
+
│ │
|
|
742
|
+
│ Phase 4: Frontend Framework Update │
|
|
743
|
+
│ IF npm: spawn lt-dev:fullstack-updater --skip-backend │
|
|
744
|
+
│ IF vendor: spawn lt-dev:nuxt-extensions-core-updater │
|
|
745
|
+
│ │
|
|
746
|
+
│ Phase 5: Package Maintenance │
|
|
747
|
+
│ → spawn lt-dev:npm-package-maintainer (FULL MODE) │
|
|
748
|
+
│ (für Backend UND Frontend package.json) │
|
|
749
|
+
│ │
|
|
750
|
+
│ Phase 6: CLAUDE.md Sync aus Upstream Starters │
|
|
751
|
+
│ │
|
|
752
|
+
│ Phase 7: Cross-Validation (Build + Lint + Tests) │
|
|
753
|
+
│ │
|
|
754
|
+
│ Phase 8: Final Report │
|
|
755
|
+
└──────────────────────────────────────────────────────────────────┘
|
|
756
|
+
```
|
|
757
|
+
|
|
758
|
+
**Alle 4 Modus-Kombinationen werden unterstützt:**
|
|
759
|
+
|
|
760
|
+
| Backend | Frontend | Backend Agent | Frontend Agent |
|
|
761
|
+
|---------|----------|---------------|----------------|
|
|
762
|
+
| npm | npm | `nest-server-updater` | `fullstack-updater --skip-backend` |
|
|
763
|
+
| npm | vendor | `nest-server-updater` | `nuxt-extensions-core-updater` |
|
|
764
|
+
| vendor | npm | `nest-server-core-updater` | `fullstack-updater --skip-backend` |
|
|
765
|
+
| vendor | vendor | `nest-server-core-updater` | `nuxt-extensions-core-updater` |
|
|
766
|
+
|
|
767
|
+
**Skip-Flags:**
|
|
768
|
+
|
|
769
|
+
```bash
|
|
770
|
+
/lt-dev:fullstack:update-all --dry-run # Nur Plan
|
|
771
|
+
/lt-dev:fullstack:update-all --skip-backend # Nur Frontend
|
|
772
|
+
/lt-dev:fullstack:update-all --skip-frontend # Nur Backend
|
|
773
|
+
/lt-dev:fullstack:update-all --skip-packages # Nur Framework, keine Package-Maintenance
|
|
774
|
+
```
|
|
775
|
+
|
|
776
|
+
**Einzelne Updates** (wenn du nur einen Teil brauchst):
|
|
777
|
+
|
|
778
|
+
```bash
|
|
779
|
+
# Backend npm-Mode
|
|
780
|
+
/lt-dev:backend:update-nest-server
|
|
781
|
+
|
|
782
|
+
# Backend vendor-Mode
|
|
783
|
+
/lt-dev:backend:update-nest-server-core
|
|
784
|
+
|
|
785
|
+
# Frontend vendor-Mode
|
|
786
|
+
/lt-dev:frontend:update-nuxt-extensions-core
|
|
787
|
+
|
|
788
|
+
# Nur Packages optimieren
|
|
789
|
+
/lt-dev:maintenance:maintain
|
|
790
|
+
```
|
|
791
|
+
|
|
792
|
+
---
|
|
793
|
+
|
|
794
|
+
### 7. Upstream-Contribution
|
|
795
|
+
|
|
796
|
+
Wenn du im vendored core **generell nützliche** Änderungen gemacht hast (Bugfixes, Features), können diese als Pull-Request an das Upstream-Repo beigetragen werden.
|
|
797
|
+
|
|
798
|
+
```
|
|
799
|
+
┌────────────────────────────────────────────────────────────┐
|
|
800
|
+
│ BACKEND: /lt-dev:backend:contribute-nest-server-core │
|
|
801
|
+
│ FRONTEND: /lt-dev:frontend:contribute-nuxt-extensions-core│
|
|
802
|
+
│ │
|
|
803
|
+
│ Phase 1: git log seit VENDOR.md baseline │
|
|
804
|
+
│ Phase 2: Filter cosmetic commits (format, lint) │
|
|
805
|
+
│ Phase 3: Categorize: │
|
|
806
|
+
│ - upstream-candidate: generic bugfix, framework │
|
|
807
|
+
│ enhancement, type correction │
|
|
808
|
+
│ - project-specific: business rules, branding │
|
|
809
|
+
│ Phase 4: Clone upstream fresh + cherry-pick candidates │
|
|
810
|
+
│ Phase 5: Generate PR draft with motivation │
|
|
811
|
+
│ Phase 6: Present summary for human review │
|
|
812
|
+
│ │
|
|
813
|
+
│ Human: reviews + pushes PR via normal GitHub flow │
|
|
814
|
+
└────────────────────────────────────────────────────────────┘
|
|
815
|
+
```
|
|
816
|
+
|
|
817
|
+
Nach Merge des PR wird beim nächsten `/lt-dev:backend:update-nest-server-core` bzw. `/lt-dev:frontend:update-nuxt-extensions-core` der Patch als "upstream-delivered" erkannt und aus dem VENDOR.md Local-Changes-Log entfernt.
|
|
818
|
+
|
|
819
|
+
---
|
|
820
|
+
|
|
821
|
+
## Entscheidungsmatrix
|
|
822
|
+
|
|
823
|
+
### Wann npm-Mode?
|
|
824
|
+
|
|
825
|
+
- ✅ Standard-Projekt ohne lokale Framework-Anpassungen
|
|
826
|
+
- ✅ Schnelle Updates via `pnpm update`
|
|
827
|
+
- ✅ Weniger komplexe CI/CD
|
|
828
|
+
- ✅ Weniger Speicher-Footprint im Repo
|
|
829
|
+
|
|
830
|
+
### Wann Vendor-Mode?
|
|
831
|
+
|
|
832
|
+
- ✅ Claude Code soll den Framework-Code **verstehen** (besseres Kontextverständnis)
|
|
833
|
+
- ✅ Lokale Patches am Framework sind erforderlich
|
|
834
|
+
- ✅ Upstream-Beiträge sollen aus echter Entwicklung entstehen
|
|
835
|
+
- ✅ Debugging in Framework-Code mit Source-Maps / Originalcode
|
|
836
|
+
- ✅ Framework-Änderungen sofort testbar ohne npm-Release-Cycle
|
|
837
|
+
- ⚠️ Erfordert gelegentliche Merge-Konflikte beim Sync
|
|
838
|
+
- ⚠️ Längere Test-Import-Phase (TypeScript source)
|
|
839
|
+
|
|
840
|
+
---
|
|
841
|
+
|
|
842
|
+
## Glossar
|
|
843
|
+
|
|
844
|
+
| Begriff | Bedeutung |
|
|
845
|
+
|---------|-----------|
|
|
846
|
+
| **npm-Mode** | Framework als `@lenne.tech/nest-server` / `@lenne.tech/nuxt-extensions` npm-Dependency |
|
|
847
|
+
| **Vendor-Mode** | Framework-Source kopiert in `src/core/` (Backend) bzw. `app/core/` (Frontend) |
|
|
848
|
+
| **VENDOR.md** | Marker-Datei im vendored core mit Baseline-Version, Sync-Historie, Local-Patches |
|
|
849
|
+
| **Flatten-Fix** | Import-Path-Rewrites in 4 Backend-Dateien nach dem Kopieren (nur Backend) |
|
|
850
|
+
| **Consumer-Import-Codemod** | Rewrite von `@lenne.tech/nest-server` zu relativen Pfaden in Projekt-Code |
|
|
851
|
+
| **Upstream-Sync** | Pull von Upstream-Änderungen ins vendored core |
|
|
852
|
+
| **Upstream-Contribution** | Push von lokalen Patches als PR zum Upstream-Repo |
|
|
853
|
+
| **Mode-aware** | Code der automatisch korrekte Pfade für npm oder vendor wählt |
|
|
854
|
+
| **Starter** | `nest-server-starter` / `nuxt-base-starter` — Template-Repo mit Standard-Config |
|
|
855
|
+
|
|
856
|
+
---
|
|
857
|
+
|
|
858
|
+
## Quellen & Referenzen
|
|
859
|
+
|
|
860
|
+
### GitHub-Repos
|
|
861
|
+
|
|
862
|
+
| Repo | URL |
|
|
863
|
+
|------|-----|
|
|
864
|
+
| lt CLI | https://github.com/lenneTech/cli |
|
|
865
|
+
| lt-dev Plugin | https://github.com/lenneTech/claude-code |
|
|
866
|
+
| nest-server Framework | https://github.com/lenneTech/nest-server |
|
|
867
|
+
| nest-server Starter | https://github.com/lenneTech/nest-server-starter |
|
|
868
|
+
| nuxt-extensions Module | https://github.com/lenneTech/nuxt-extensions |
|
|
869
|
+
| nuxt-base Starter | https://github.com/lenneTech/nuxt-base-starter |
|
|
870
|
+
| lt-monorepo Template | https://github.com/lenneTech/lt-monorepo |
|
|
871
|
+
|
|
872
|
+
### Lokale Dokumentation
|
|
873
|
+
|
|
874
|
+
- `cli/CLAUDE.md` — CLI-interne Dokumentation + Vendor-Touchpoints-Tabelle
|
|
875
|
+
- `cli/docs/commands.md` — CLI Command-Reference
|
|
876
|
+
- `cli/docs/lt.config.md` — CLI Config-Reference
|
|
877
|
+
- `cli/scripts/test-vendor-init.sh` — Backend-Vendor-Integration-Tests (4 Szenarien × ~22 Assertions)
|
|
878
|
+
- `cli/scripts/test-frontend-vendor-init.sh` — Frontend-Vendor-Integration-Tests (4 Szenarien)
|
|
879
|
+
- `framework-vendoring-pilot-plan.md` — Original Vendor-Mode Blueprint
|
|
880
|
+
|
|
881
|
+
---
|
|
882
|
+
|
|
883
|
+
## Schnellreferenz — Die wichtigsten Commands
|
|
884
|
+
|
|
885
|
+
```bash
|
|
886
|
+
# ═══════════════════════════════════════════════════════════════
|
|
887
|
+
# PROJEKT-SETUP
|
|
888
|
+
# ═══════════════════════════════════════════════════════════════
|
|
889
|
+
|
|
890
|
+
# Neues Projekt (beide im vendor mode)
|
|
891
|
+
lt fullstack init --name <n> --frontend nuxt --api-mode Rest \
|
|
892
|
+
--framework-mode vendor --frontend-framework-mode vendor --noConfirm
|
|
893
|
+
|
|
894
|
+
# Neues Projekt (npm mode, Standard)
|
|
895
|
+
lt fullstack init --name <n> --frontend nuxt --api-mode Rest --noConfirm
|
|
896
|
+
|
|
897
|
+
# Status checken (zeigt beide Modi im Monorepo-Root)
|
|
898
|
+
lt status
|
|
899
|
+
|
|
900
|
+
# ═══════════════════════════════════════════════════════════════
|
|
901
|
+
# KONVERTIERUNG — Fullstack (beide Subprojekte in einem Schritt)
|
|
902
|
+
# ═══════════════════════════════════════════════════════════════
|
|
903
|
+
|
|
904
|
+
# Beide Subprojekte: npm → vendor (vom Monorepo-Root)
|
|
905
|
+
lt fullstack convert-mode --to vendor --noConfirm
|
|
906
|
+
|
|
907
|
+
# Beide Subprojekte: vendor → npm (Rückführung)
|
|
908
|
+
lt fullstack convert-mode --to npm --noConfirm
|
|
909
|
+
|
|
910
|
+
# Mit spezifischen Upstream-Versionen
|
|
911
|
+
lt fullstack convert-mode --to vendor \
|
|
912
|
+
--framework-upstream-branch 11.24.3 \
|
|
913
|
+
--frontend-framework-upstream-branch 1.5.3 \
|
|
914
|
+
--noConfirm
|
|
915
|
+
|
|
916
|
+
# Nur Backend bzw. nur Frontend
|
|
917
|
+
lt fullstack convert-mode --to vendor --skip-frontend --noConfirm
|
|
918
|
+
lt fullstack convert-mode --to vendor --skip-backend --noConfirm
|
|
919
|
+
|
|
920
|
+
# Dry-run (Plan ohne Änderungen)
|
|
921
|
+
lt fullstack convert-mode --to vendor --dry-run
|
|
922
|
+
|
|
923
|
+
# ═══════════════════════════════════════════════════════════════
|
|
924
|
+
# KONVERTIERUNG — Einzeln (in den jeweiligen Subprojekten)
|
|
925
|
+
# ═══════════════════════════════════════════════════════════════
|
|
926
|
+
|
|
927
|
+
# Backend: npm → vendor (mit Migrations via Claude Code)
|
|
928
|
+
/lt-dev:backend:convert-to-vendor
|
|
929
|
+
|
|
930
|
+
# Backend: npm → vendor (direkt via CLI)
|
|
931
|
+
cd projects/api && lt server convert-mode --to vendor
|
|
932
|
+
|
|
933
|
+
# Frontend: npm → vendor (mit Changelog via Claude Code)
|
|
934
|
+
/lt-dev:frontend:convert-to-vendor
|
|
935
|
+
|
|
936
|
+
# Frontend: npm → vendor (direkt via CLI)
|
|
937
|
+
cd projects/app && lt frontend convert-mode --to vendor
|
|
938
|
+
|
|
939
|
+
# Rückführung einzeln
|
|
940
|
+
cd projects/api && lt server convert-mode --to npm
|
|
941
|
+
cd projects/app && lt frontend convert-mode --to npm
|
|
942
|
+
|
|
943
|
+
# ═══════════════════════════════════════════════════════════════
|
|
944
|
+
# UPDATES
|
|
945
|
+
# ═══════════════════════════════════════════════════════════════
|
|
946
|
+
|
|
947
|
+
# Comprehensive Fullstack Update (empfohlen, mode-aware)
|
|
948
|
+
/lt-dev:fullstack:update-all
|
|
949
|
+
|
|
950
|
+
# Nur Backend
|
|
951
|
+
/lt-dev:backend:update-nest-server # npm mode
|
|
952
|
+
/lt-dev:backend:update-nest-server-core # vendor mode
|
|
953
|
+
|
|
954
|
+
# Nur Frontend
|
|
955
|
+
/lt-dev:frontend:update-nuxt-extensions-core # vendor mode
|
|
956
|
+
|
|
957
|
+
# Nur Packages
|
|
958
|
+
/lt-dev:maintenance:maintain
|
|
959
|
+
|
|
960
|
+
# ═══════════════════════════════════════════════════════════════
|
|
961
|
+
# UPSTREAM CONTRIBUTION
|
|
962
|
+
# ═══════════════════════════════════════════════════════════════
|
|
963
|
+
|
|
964
|
+
# Backend: Lokale Patches als PR vorbereiten
|
|
965
|
+
/lt-dev:backend:contribute-nest-server-core
|
|
966
|
+
|
|
967
|
+
# Frontend: Lokale Patches als PR vorbereiten
|
|
968
|
+
/lt-dev:frontend:contribute-nuxt-extensions-core
|
|
969
|
+
```
|
|
970
|
+
|
|
971
|
+
---
|
|
972
|
+
|
|
973
|
+
*Diese Datei ist als lebende Dokumentation gedacht. Bei neuen Funktionen im lt-CLI oder lt-dev Plugin sollte sie aktualisiert werden.*
|