@lenne.tech/cli 1.11.0 → 1.11.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/docs/LT-ECOSYSTEM-GUIDE.md +378 -379
- package/docs/VENDOR-MODE-WORKFLOW.md +150 -150
- package/package.json +1 -1
|
@@ -1,81 +1,81 @@
|
|
|
1
|
-
# lenne.tech Fullstack
|
|
1
|
+
# lenne.tech Fullstack Ecosystem: CLI & lt-dev Plugin
|
|
2
2
|
|
|
3
|
-
|
|
3
|
+
Comprehensive reference for the `lt` CLI and the `lt-dev` Claude Code plugin, with focus on **vendor-mode workflows** for `@lenne.tech/nest-server` and `@lenne.tech/nuxt-extensions`.
|
|
4
4
|
|
|
5
5
|
---
|
|
6
6
|
|
|
7
|
-
##
|
|
8
|
-
|
|
9
|
-
- [
|
|
10
|
-
- [
|
|
11
|
-
- [lt CLI —
|
|
12
|
-
- [
|
|
13
|
-
- [Server
|
|
14
|
-
- [Frontend
|
|
15
|
-
- [Fullstack
|
|
16
|
-
- [Vendor-Mode
|
|
17
|
-
- [Status &
|
|
18
|
-
- [
|
|
19
|
-
- [lt-dev Plugin —
|
|
7
|
+
## Table of Contents
|
|
8
|
+
|
|
9
|
+
- [Overview](#overview)
|
|
10
|
+
- [Architecture Diagram](#architecture-diagram)
|
|
11
|
+
- [lt CLI — Features](#lt-cli--features)
|
|
12
|
+
- [Project Scaffolding](#project-scaffolding)
|
|
13
|
+
- [Server Development](#server-development)
|
|
14
|
+
- [Frontend Development](#frontend-development)
|
|
15
|
+
- [Fullstack Workflows](#fullstack-workflows)
|
|
16
|
+
- [Vendor-Mode Conversion](#vendor-mode-conversion)
|
|
17
|
+
- [Status & Diagnostics](#status--diagnostics)
|
|
18
|
+
- [Additional Tools](#additional-tools)
|
|
19
|
+
- [lt-dev Plugin — Features](#lt-dev-plugin--features)
|
|
20
20
|
- [Commands](#commands)
|
|
21
21
|
- [Autonomous Agents](#autonomous-agents)
|
|
22
|
-
- [Skills (
|
|
23
|
-
- [Vendor-Mode
|
|
24
|
-
- [
|
|
25
|
-
- [npm →
|
|
26
|
-
- [npm →
|
|
27
|
-
- [
|
|
28
|
-
- [
|
|
29
|
-
- [Update
|
|
30
|
-
- [Upstream
|
|
31
|
-
- [
|
|
32
|
-
- [
|
|
22
|
+
- [Skills (Knowledge Base)](#skills-knowledge-base)
|
|
23
|
+
- [Vendor-Mode Processes](#vendor-mode-processes)
|
|
24
|
+
- [1. Create a new project in vendor mode](#1-create-a-new-project-in-vendor-mode)
|
|
25
|
+
- [2. Backend: convert npm → vendor](#2-backend-convert-npm--vendor)
|
|
26
|
+
- [3. Frontend: convert npm → vendor](#3-frontend-convert-npm--vendor)
|
|
27
|
+
- [4. Backend: vendor → npm rollback](#4-backend-vendor--npm-rollback)
|
|
28
|
+
- [5. Frontend: vendor → npm rollback](#5-frontend-vendor--npm-rollback)
|
|
29
|
+
- [6. Update workflows](#6-update-workflows)
|
|
30
|
+
- [7. Upstream contribution](#7-upstream-contribution)
|
|
31
|
+
- [Decision Matrix](#decision-matrix)
|
|
32
|
+
- [Glossary](#glossary)
|
|
33
33
|
|
|
34
34
|
---
|
|
35
35
|
|
|
36
|
-
##
|
|
36
|
+
## Overview
|
|
37
37
|
|
|
38
|
-
|
|
38
|
+
The lenne.tech ecosystem consists of two complementary tools:
|
|
39
39
|
|
|
40
|
-
- **`lt CLI`** (`@lenne.tech/cli`) — Terminal
|
|
41
|
-
- **`lt-dev` Plugin** — Claude
|
|
40
|
+
- **`lt CLI`** (`@lenne.tech/cli`) — Terminal tool for scaffolding, code generation, status, and mode conversion
|
|
41
|
+
- **`lt-dev` Plugin** — Claude Code plugin providing commands, autonomous agents, and skills for intelligent development workflows
|
|
42
42
|
|
|
43
|
-
|
|
43
|
+
Both tools support the **vendor mode** as a pilot for `@lenne.tech/nest-server` (backend) and `@lenne.tech/nuxt-extensions` (frontend). In vendor mode, the framework code is copied directly into the project as source code under `src/core/` (backend) or `app/core/` (frontend) — without an npm dependency.
|
|
44
44
|
|
|
45
45
|
---
|
|
46
46
|
|
|
47
|
-
##
|
|
47
|
+
## Architecture Diagram
|
|
48
48
|
|
|
49
49
|
```
|
|
50
50
|
┌─────────────────────────────────────────────────────────────────────┐
|
|
51
|
-
│
|
|
51
|
+
│ Developer / Claude Code │
|
|
52
52
|
└─────────┬────────────────────────────────────────────────┬──────────┘
|
|
53
53
|
│ │
|
|
54
|
-
│ Terminal │ Slash
|
|
54
|
+
│ Terminal │ Slash commands
|
|
55
55
|
▼ ▼
|
|
56
56
|
┌──────────────────────┐ ┌────────────────────────┐
|
|
57
57
|
│ lt CLI │ │ lt-dev Plugin │
|
|
58
58
|
│ │ │ │
|
|
59
59
|
│ • Scaffolding │ │ • Commands │
|
|
60
|
-
│ • Mode
|
|
61
|
-
│ • Code
|
|
62
|
-
│ • Status/
|
|
60
|
+
│ • Mode conversion │◄─── invoked by ──────┤ • Agents │
|
|
61
|
+
│ • Code generation │ │ • Skills │
|
|
62
|
+
│ • Status/diagnosis │ │ │
|
|
63
63
|
└──────────┬───────────┘ └────────────┬───────────┘
|
|
64
64
|
│ │
|
|
65
65
|
│ writes to │ operates on
|
|
66
66
|
▼ ▼
|
|
67
|
-
|
|
68
|
-
│ Fullstack
|
|
67
|
+
┌─────────────────────────────────────────────────────────────────────┐
|
|
68
|
+
│ Fullstack Project │
|
|
69
69
|
│ │
|
|
70
70
|
│ projects/api (Backend — NestJS) projects/app (Frontend) │
|
|
71
71
|
│ ├── npm mode: @lenne.tech/nest-server ├── npm mode: @lenne.tech/ │
|
|
72
72
|
│ │ in package.json │ nuxt-extensions │
|
|
73
73
|
│ └── vendor mode: src/core/ + VENDOR.md └── vendor mode: app/core/ │
|
|
74
74
|
│ + VENDOR.md │
|
|
75
|
-
|
|
76
|
-
▲
|
|
77
|
-
│ syncs from
|
|
78
|
-
│
|
|
75
|
+
└─────────────────────────────────────────────────────────────────────┘
|
|
76
|
+
▲ ▲
|
|
77
|
+
│ syncs from │ syncs from
|
|
78
|
+
│ │
|
|
79
79
|
┌──────────┴──────────────┐ ┌───────────┴────────────┐
|
|
80
80
|
│ github.com/lenneTech/ │ │ github.com/lenneTech/ │
|
|
81
81
|
│ nest-server │ │ nuxt-extensions │
|
|
@@ -85,21 +85,21 @@ Beide Werkzeuge unterstützen den **Vendor-Mode** als Pilot für `@lenne.tech/ne
|
|
|
85
85
|
|
|
86
86
|
---
|
|
87
87
|
|
|
88
|
-
## lt CLI —
|
|
88
|
+
## lt CLI — Features
|
|
89
89
|
|
|
90
|
-
###
|
|
90
|
+
### Project Scaffolding
|
|
91
91
|
|
|
92
|
-
| Command |
|
|
93
|
-
|
|
94
|
-
| `lt fullstack init` |
|
|
95
|
-
| `lt frontend nuxt` | Standalone Nuxt
|
|
96
|
-
| `lt frontend angular` | Standalone Angular
|
|
97
|
-
| `lt server create` | Standalone NestJS
|
|
98
|
-
| `lt starter chrome-extension` | Chrome
|
|
99
|
-
| `lt cli create` |
|
|
100
|
-
| `lt typescript create` | TypeScript
|
|
92
|
+
| Command | Purpose |
|
|
93
|
+
|---------|---------|
|
|
94
|
+
| `lt fullstack init` | Create a new monorepo with API + frontend. Supports npm and vendor mode for both sides |
|
|
95
|
+
| `lt frontend nuxt` | Standalone Nuxt 4 project from `nuxt-base-starter` |
|
|
96
|
+
| `lt frontend angular` | Standalone Angular project from `ng-base-starter` |
|
|
97
|
+
| `lt server create` | Standalone NestJS project from `nest-server-starter` |
|
|
98
|
+
| `lt starter chrome-extension` | Chrome extension starter |
|
|
99
|
+
| `lt cli create` | New CLI project via Gluegun |
|
|
100
|
+
| `lt typescript create` | TypeScript library starter |
|
|
101
101
|
|
|
102
|
-
**Fullstack
|
|
102
|
+
**Fullstack init with vendor modes:**
|
|
103
103
|
|
|
104
104
|
```bash
|
|
105
105
|
lt fullstack init \
|
|
@@ -113,78 +113,78 @@ lt fullstack init \
|
|
|
113
113
|
```
|
|
114
114
|
|
|
115
115
|
Flags:
|
|
116
|
-
- `--framework-mode npm|vendor` — Backend
|
|
117
|
-
- `--frontend-framework-mode npm|vendor` — Frontend
|
|
118
|
-
- `--framework-upstream-branch <tag>` —
|
|
119
|
-
- `--dry-run` —
|
|
116
|
+
- `--framework-mode npm|vendor` — Backend mode
|
|
117
|
+
- `--frontend-framework-mode npm|vendor` — Frontend mode
|
|
118
|
+
- `--framework-upstream-branch <tag>` — Specific nest-server version for vendor
|
|
119
|
+
- `--dry-run` — Show plan without making changes
|
|
120
120
|
|
|
121
121
|
---
|
|
122
122
|
|
|
123
|
-
### Server
|
|
123
|
+
### Server Development
|
|
124
124
|
|
|
125
|
-
| Command |
|
|
126
|
-
|
|
127
|
-
| `lt server module` |
|
|
128
|
-
| `lt server object` |
|
|
129
|
-
| `lt server add-property` |
|
|
130
|
-
| `lt server test` |
|
|
131
|
-
| `lt server permissions` |
|
|
132
|
-
| `lt server create-secret` |
|
|
133
|
-
| `lt server set-secrets` |
|
|
134
|
-
| **`lt server convert-mode`** | **
|
|
125
|
+
| Command | Purpose |
|
|
126
|
+
|---------|---------|
|
|
127
|
+
| `lt server module` | Generate a NestJS module (model, service, controller, resolver, tests) |
|
|
128
|
+
| `lt server object` | Generate an input/output type |
|
|
129
|
+
| `lt server add-property` | Add a property to an existing module |
|
|
130
|
+
| `lt server test` | Generate E2E tests for a module |
|
|
131
|
+
| `lt server permissions` | Analyze all `@Roles`/`@Restricted` decorators, generate report (md/json/html) |
|
|
132
|
+
| `lt server create-secret` | Generate secure secrets for `.env` |
|
|
133
|
+
| `lt server set-secrets` | Set secrets in the project |
|
|
134
|
+
| **`lt server convert-mode`** | **Convert backend between npm and vendor mode** |
|
|
135
135
|
|
|
136
|
-
|
|
136
|
+
All code generators are **mode-aware**: In vendor mode they use relative paths to `src/core/`; in npm mode they use the bare specifier `@lenne.tech/nest-server`.
|
|
137
137
|
|
|
138
138
|
---
|
|
139
139
|
|
|
140
|
-
### Frontend
|
|
140
|
+
### Frontend Development
|
|
141
141
|
|
|
142
|
-
| Command |
|
|
143
|
-
|
|
144
|
-
| `lt frontend nuxt` | Nuxt
|
|
145
|
-
| `lt frontend angular` | Angular
|
|
146
|
-
| **`lt frontend convert-mode`** | **
|
|
142
|
+
| Command | Purpose |
|
|
143
|
+
|---------|---------|
|
|
144
|
+
| `lt frontend nuxt` | Create Nuxt project from starter |
|
|
145
|
+
| `lt frontend angular` | Create Angular project from starter |
|
|
146
|
+
| **`lt frontend convert-mode`** | **Convert frontend between npm and vendor mode** |
|
|
147
147
|
|
|
148
148
|
---
|
|
149
149
|
|
|
150
|
-
### Fullstack
|
|
150
|
+
### Fullstack Workflows
|
|
151
151
|
|
|
152
|
-
| Command |
|
|
153
|
-
|
|
154
|
-
| `lt fullstack init` |
|
|
155
|
-
| `lt fullstack update` |
|
|
156
|
-
| **`lt fullstack convert-mode`** | **
|
|
152
|
+
| Command | Purpose |
|
|
153
|
+
|---------|---------|
|
|
154
|
+
| `lt fullstack init` | Create fullstack monorepo (see above) |
|
|
155
|
+
| `lt fullstack update` | Show mode-specific update instructions for backend AND frontend |
|
|
156
|
+
| **`lt fullstack convert-mode`** | **Convert backend AND frontend between npm and vendor mode in a single command** |
|
|
157
157
|
|
|
158
|
-
**Fullstack
|
|
158
|
+
**Fullstack mode conversion in one command:**
|
|
159
159
|
|
|
160
160
|
```bash
|
|
161
|
-
#
|
|
161
|
+
# Both subprojects to vendor mode
|
|
162
162
|
lt fullstack convert-mode --to vendor --noConfirm
|
|
163
163
|
|
|
164
|
-
#
|
|
164
|
+
# With specific upstream versions
|
|
165
165
|
lt fullstack convert-mode --to vendor \
|
|
166
166
|
--framework-upstream-branch 11.24.3 \
|
|
167
167
|
--frontend-framework-upstream-branch 1.5.3 \
|
|
168
168
|
--noConfirm
|
|
169
169
|
|
|
170
|
-
#
|
|
170
|
+
# Both back to npm
|
|
171
171
|
lt fullstack convert-mode --to npm --noConfirm
|
|
172
172
|
|
|
173
|
-
#
|
|
173
|
+
# Only convert backend
|
|
174
174
|
lt fullstack convert-mode --to vendor --skip-frontend --noConfirm
|
|
175
175
|
|
|
176
|
-
#
|
|
176
|
+
# Only convert frontend
|
|
177
177
|
lt fullstack convert-mode --to vendor --skip-backend --noConfirm
|
|
178
178
|
|
|
179
|
-
# Dry-run (
|
|
179
|
+
# Dry-run (plan without changes)
|
|
180
180
|
lt fullstack convert-mode --to vendor --dry-run
|
|
181
181
|
```
|
|
182
182
|
|
|
183
|
-
|
|
183
|
+
The command automatically locates `projects/api/` and `projects/app/` (or `packages/api` / `packages/app`), detects the current modes, shows a plan, and then orchestrates the conversion of both sides using the appropriate helper methods.
|
|
184
184
|
|
|
185
185
|
---
|
|
186
186
|
|
|
187
|
-
### Vendor-Mode
|
|
187
|
+
### Vendor-Mode Conversion
|
|
188
188
|
|
|
189
189
|
**Backend**: `lt server convert-mode`
|
|
190
190
|
|
|
@@ -196,7 +196,7 @@ lt server convert-mode --to vendor --upstream-branch 11.24.3 --noConfirm
|
|
|
196
196
|
# vendor → npm
|
|
197
197
|
lt server convert-mode --to npm --version 11.24.3 --noConfirm
|
|
198
198
|
|
|
199
|
-
# Dry-run (
|
|
199
|
+
# Dry-run (plan without changes)
|
|
200
200
|
lt server convert-mode --to vendor --dry-run
|
|
201
201
|
```
|
|
202
202
|
|
|
@@ -214,19 +214,19 @@ lt frontend convert-mode --to npm --version 1.5.3 --noConfirm
|
|
|
214
214
|
lt frontend convert-mode --to vendor --dry-run
|
|
215
215
|
```
|
|
216
216
|
|
|
217
|
-
|
|
217
|
+
Both commands clone the respective upstream repo into `/tmp/`, perform the code transformation, and clean up at the end. **No local paths** are required.
|
|
218
218
|
|
|
219
219
|
---
|
|
220
220
|
|
|
221
|
-
### Status &
|
|
221
|
+
### Status & Diagnostics
|
|
222
222
|
|
|
223
|
-
| Command |
|
|
224
|
-
|
|
225
|
-
| `lt status` |
|
|
226
|
-
| `lt doctor` |
|
|
227
|
-
| `lt history` |
|
|
223
|
+
| Command | Purpose |
|
|
224
|
+
|---------|---------|
|
|
225
|
+
| `lt status` | Shows project type, framework mode (backend + frontend), config, git branch, versions. At the monorepo root, both subprojects are automatically scanned |
|
|
226
|
+
| `lt doctor` | Checks environment, versions, dependencies |
|
|
227
|
+
| `lt history` | Shows CLI command history |
|
|
228
228
|
|
|
229
|
-
**
|
|
229
|
+
**Example at the monorepo root:**
|
|
230
230
|
|
|
231
231
|
```
|
|
232
232
|
Monorepo Subprojects:
|
|
@@ -236,17 +236,17 @@ Monorepo Subprojects:
|
|
|
236
236
|
|
|
237
237
|
---
|
|
238
238
|
|
|
239
|
-
###
|
|
239
|
+
### Additional Tools
|
|
240
240
|
|
|
241
|
-
|
|
|
242
|
-
|
|
241
|
+
| Area | Commands |
|
|
242
|
+
|------|----------|
|
|
243
243
|
| **Config** | `lt config init`, `lt config validate`, `lt config show`, `lt config help` |
|
|
244
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
245
|
| **NPM** | `lt npm reinit` |
|
|
246
246
|
| **MongoDB** | `lt mongodb collection-export`, `mongodb s3-restore` |
|
|
247
247
|
| **Qdrant** | `lt qdrant stats`, `qdrant delete` |
|
|
248
248
|
| **Directus** | `lt directus docker-setup`, `directus typegen`, `directus remove` |
|
|
249
|
-
| **Deployment** | `lt deployment create` (GitHub/GitLab
|
|
249
|
+
| **Deployment** | `lt deployment create` (GitHub/GitLab pipelines) |
|
|
250
250
|
| **Blocks/Components** | `lt blocks add`, `lt components add` |
|
|
251
251
|
| **Tools** | `lt tools regex`, `tools sha256`, `tools jwt-read`, `tools crypt`, `tools install-scripts` |
|
|
252
252
|
| **Docs** | `lt docs open` |
|
|
@@ -255,188 +255,188 @@ Monorepo Subprojects:
|
|
|
255
255
|
|
|
256
256
|
---
|
|
257
257
|
|
|
258
|
-
## lt-dev Plugin —
|
|
258
|
+
## lt-dev Plugin — Features
|
|
259
259
|
|
|
260
|
-
|
|
260
|
+
The `lt-dev` Claude Code plugin provides **Commands** (user-invocable), **Agents** (autonomous execution), and **Skills** (knowledge bases).
|
|
261
261
|
|
|
262
262
|
### Commands
|
|
263
263
|
|
|
264
264
|
#### Backend
|
|
265
265
|
|
|
266
|
-
| Command |
|
|
267
|
-
|
|
268
|
-
| `/lt-dev:backend:update-nest-server` |
|
|
269
|
-
| `/lt-dev:backend:update-nest-server-core` |
|
|
270
|
-
| `/lt-dev:backend:convert-to-vendor` |
|
|
271
|
-
| `/lt-dev:backend:convert-to-npm` |
|
|
272
|
-
| `/lt-dev:backend:contribute-nest-server-core` |
|
|
273
|
-
| `/lt-dev:backend:sec-audit` | Security
|
|
274
|
-
| `/lt-dev:backend:sec-review` | Security
|
|
275
|
-
| `/lt-dev:backend:test-generate` |
|
|
276
|
-
| `/lt-dev:backend:code-cleanup` |
|
|
266
|
+
| Command | Purpose |
|
|
267
|
+
|---------|---------|
|
|
268
|
+
| `/lt-dev:backend:update-nest-server` | Update `@lenne.tech/nest-server` in npm mode with migration guides |
|
|
269
|
+
| `/lt-dev:backend:update-nest-server-core` | Sync vendored `src/core/` with upstream (vendor mode) |
|
|
270
|
+
| `/lt-dev:backend:convert-to-vendor` | Convert existing project from npm → vendor (incl. migration guides) |
|
|
271
|
+
| `/lt-dev:backend:convert-to-npm` | Convert vendored project back to npm |
|
|
272
|
+
| `/lt-dev:backend:contribute-nest-server-core` | Prepare local patches as upstream PR for nest-server |
|
|
273
|
+
| `/lt-dev:backend:sec-audit` | Security audit of backend code |
|
|
274
|
+
| `/lt-dev:backend:sec-review` | Security review of a specific code area |
|
|
275
|
+
| `/lt-dev:backend:test-generate` | Generate E2E tests |
|
|
276
|
+
| `/lt-dev:backend:code-cleanup` | Clean up code (imports, formatting) |
|
|
277
277
|
|
|
278
278
|
#### Frontend
|
|
279
279
|
|
|
280
|
-
| Command |
|
|
281
|
-
|
|
282
|
-
| `/lt-dev:frontend:update-nuxt-extensions-core` |
|
|
283
|
-
| `/lt-dev:frontend:convert-to-vendor` |
|
|
284
|
-
| `/lt-dev:frontend:convert-to-npm` |
|
|
285
|
-
| `/lt-dev:frontend:contribute-nuxt-extensions-core` |
|
|
286
|
-
| `/lt-dev:frontend:figma-init` |
|
|
287
|
-
| `/lt-dev:frontend:figma-research` |
|
|
288
|
-
| `/lt-dev:frontend:figma-to-code` |
|
|
289
|
-
| `/lt-dev:frontend:env-migrate` |
|
|
290
|
-
| `/lt-dev:frontend:init-conventions` |
|
|
280
|
+
| Command | Purpose |
|
|
281
|
+
|---------|---------|
|
|
282
|
+
| `/lt-dev:frontend:update-nuxt-extensions-core` | Sync vendored `app/core/` with upstream |
|
|
283
|
+
| `/lt-dev:frontend:convert-to-vendor` | Convert frontend project from npm → vendor |
|
|
284
|
+
| `/lt-dev:frontend:convert-to-npm` | Convert vendored frontend back to npm |
|
|
285
|
+
| `/lt-dev:frontend:contribute-nuxt-extensions-core` | Prepare local patches as upstream PR for nuxt-extensions |
|
|
286
|
+
| `/lt-dev:frontend:figma-init` | Initialize Figma Code Connect setup |
|
|
287
|
+
| `/lt-dev:frontend:figma-research` | Analyze Figma designs for implementation |
|
|
288
|
+
| `/lt-dev:frontend:figma-to-code` | Translate Figma design into Vue/Nuxt code |
|
|
289
|
+
| `/lt-dev:frontend:env-migrate` | Migrate `.env` from old standards |
|
|
290
|
+
| `/lt-dev:frontend:init-conventions` | Initialize frontend conventions |
|
|
291
291
|
|
|
292
292
|
#### Fullstack
|
|
293
293
|
|
|
294
|
-
| Command |
|
|
295
|
-
|
|
296
|
-
| **`/lt-dev:fullstack:update-all`** | **Comprehensive
|
|
297
|
-
| `/lt-dev:fullstack:update` |
|
|
298
|
-
| `/lt-dev:fullstack:sync-claude-md` |
|
|
294
|
+
| Command | Purpose |
|
|
295
|
+
|---------|---------|
|
|
296
|
+
| **`/lt-dev:fullstack:update-all`** | **Comprehensive update**: backend + frontend (mode-aware) + package maintenance + CLAUDE.md sync + validation |
|
|
297
|
+
| `/lt-dev:fullstack:update` | Simple backend + frontend update (legacy, less comprehensive) |
|
|
298
|
+
| `/lt-dev:fullstack:sync-claude-md` | Sync `CLAUDE.md` from upstream starter templates |
|
|
299
299
|
|
|
300
300
|
#### Maintenance
|
|
301
301
|
|
|
302
|
-
| Command |
|
|
303
|
-
|
|
304
|
-
| `/lt-dev:maintenance:maintain` | FULL MODE:
|
|
305
|
-
| `/lt-dev:maintenance:maintain-check` | DRY-RUN:
|
|
306
|
-
| `/lt-dev:maintenance:maintain-security` |
|
|
307
|
-
| `/lt-dev:maintenance:maintain-pre-release` | Conservative
|
|
308
|
-
| `/lt-dev:maintenance:maintain-post-feature` | Post-
|
|
302
|
+
| Command | Purpose |
|
|
303
|
+
|---------|---------|
|
|
304
|
+
| `/lt-dev:maintenance:maintain` | FULL MODE: package update + audit + security + deduplication |
|
|
305
|
+
| `/lt-dev:maintenance:maintain-check` | DRY-RUN: analysis without changes |
|
|
306
|
+
| `/lt-dev:maintenance:maintain-security` | Security patches only |
|
|
307
|
+
| `/lt-dev:maintenance:maintain-pre-release` | Conservative patch-only before release |
|
|
308
|
+
| `/lt-dev:maintenance:maintain-post-feature` | Post-feature cleanup |
|
|
309
309
|
|
|
310
310
|
#### Git
|
|
311
311
|
|
|
312
|
-
| Command |
|
|
313
|
-
|
|
314
|
-
| `/lt-dev:git:commit-message` |
|
|
315
|
-
| `/lt-dev:git:create-request` |
|
|
316
|
-
| `/lt-dev:git:mr-description` |
|
|
317
|
-
| `/lt-dev:git:mr-description-clipboard` |
|
|
318
|
-
| `/lt-dev:git:rebase` | Rebase
|
|
319
|
-
| `/lt-dev:git:rebase-mrs` |
|
|
312
|
+
| Command | Purpose |
|
|
313
|
+
|---------|---------|
|
|
314
|
+
| `/lt-dev:git:commit-message` | Generate conventional commit message from staging |
|
|
315
|
+
| `/lt-dev:git:create-request` | Create merge request with descriptive body |
|
|
316
|
+
| `/lt-dev:git:mr-description` | Generate MR description from commits |
|
|
317
|
+
| `/lt-dev:git:mr-description-clipboard` | Same, copied to clipboard |
|
|
318
|
+
| `/lt-dev:git:rebase` | Rebase onto development branch with conflict resolution |
|
|
319
|
+
| `/lt-dev:git:rebase-mrs` | Rebase multiple MRs sequentially |
|
|
320
320
|
|
|
321
321
|
#### Docker
|
|
322
322
|
|
|
323
|
-
| Command |
|
|
324
|
-
|
|
325
|
-
| `/lt-dev:docker:gen-setup` |
|
|
323
|
+
| Command | Purpose |
|
|
324
|
+
|---------|---------|
|
|
325
|
+
| `/lt-dev:docker:gen-setup` | Generate Docker configuration (Dockerfile + compose + .env) |
|
|
326
326
|
|
|
327
327
|
#### Plugin
|
|
328
328
|
|
|
329
|
-
| Command |
|
|
330
|
-
|
|
331
|
-
| `/lt-dev:plugin:check` |
|
|
332
|
-
| `/lt-dev:plugin:element` |
|
|
329
|
+
| Command | Purpose |
|
|
330
|
+
|---------|---------|
|
|
331
|
+
| `/lt-dev:plugin:check` | Validate the plugin setup after context loss |
|
|
332
|
+
| `/lt-dev:plugin:element` | Interactive creation of new plugin elements |
|
|
333
333
|
|
|
334
334
|
#### Vibe (Spec-Driven Development)
|
|
335
335
|
|
|
336
|
-
| Command |
|
|
337
|
-
|
|
338
|
-
| `/lt-dev:vibe:plan` |
|
|
339
|
-
| `/lt-dev:vibe:build` |
|
|
340
|
-
| `/lt-dev:vibe:build-plan` | Plan +
|
|
336
|
+
| Command | Purpose |
|
|
337
|
+
|---------|---------|
|
|
338
|
+
| `/lt-dev:vibe:plan` | Create implementation plan from requirement |
|
|
339
|
+
| `/lt-dev:vibe:build` | Implement according to plan |
|
|
340
|
+
| `/lt-dev:vibe:build-plan` | Plan + build in one flow |
|
|
341
341
|
|
|
342
342
|
#### Standalone
|
|
343
343
|
|
|
344
|
-
| Command |
|
|
345
|
-
|
|
346
|
-
| `/lt-dev:debug` | Structured
|
|
347
|
-
| `/lt-dev:review` | Code
|
|
348
|
-
| `/lt-dev:refactor-frontend` | Frontend
|
|
349
|
-
| `/lt-dev:resolve-ticket` | Linear
|
|
350
|
-
| `/lt-dev:create-ticket` | Linear
|
|
351
|
-
| `/lt-dev:create-story` |
|
|
352
|
-
| `/lt-dev:create-task` | Linear
|
|
353
|
-
| `/lt-dev:create-bug` | Linear
|
|
354
|
-
| `/lt-dev:linear-comment` | Linear
|
|
355
|
-
| `/lt-dev:dev-submit` | Dev-
|
|
356
|
-
| `/lt-dev:interview` |
|
|
357
|
-
| `/lt-dev:skill-optimize` |
|
|
358
|
-
| `/lt-dev:spec-to-tasks` | Spec →
|
|
344
|
+
| Command | Purpose |
|
|
345
|
+
|---------|---------|
|
|
346
|
+
| `/lt-dev:debug` | Structured debugging session |
|
|
347
|
+
| `/lt-dev:review` | Code review with multiple reviewer perspectives |
|
|
348
|
+
| `/lt-dev:refactor-frontend` | Frontend refactoring helper |
|
|
349
|
+
| `/lt-dev:resolve-ticket` | Implement Linear ticket |
|
|
350
|
+
| `/lt-dev:create-ticket` | Create Linear ticket |
|
|
351
|
+
| `/lt-dev:create-story` | Create user story (German) |
|
|
352
|
+
| `/lt-dev:create-task` | Create Linear task |
|
|
353
|
+
| `/lt-dev:create-bug` | Create Linear bug |
|
|
354
|
+
| `/lt-dev:linear-comment` | Create Linear comment |
|
|
355
|
+
| `/lt-dev:dev-submit` | Dev-submit workflow (commit + push + MR) |
|
|
356
|
+
| `/lt-dev:interview` | Structured interview for requirements |
|
|
357
|
+
| `/lt-dev:skill-optimize` | Optimize a plugin skill |
|
|
358
|
+
| `/lt-dev:spec-to-tasks` | Spec → task list |
|
|
359
359
|
|
|
360
360
|
---
|
|
361
361
|
|
|
362
362
|
### Autonomous Agents
|
|
363
363
|
|
|
364
|
-
|
|
364
|
+
Autonomous agents perform multi-step tasks without interaction. They are spawned via commands or the Agent tool.
|
|
365
365
|
|
|
366
366
|
#### Vendor-Mode Agents
|
|
367
367
|
|
|
368
|
-
| Agent |
|
|
369
|
-
|
|
370
|
-
| `vendor-mode-converter` | Backend npm → vendor
|
|
371
|
-
| `vendor-mode-converter-frontend` | Frontend npm → vendor
|
|
372
|
-
| `nest-server-core-updater` | Upstream
|
|
373
|
-
| `nuxt-extensions-core-updater` | Upstream
|
|
374
|
-
| `nest-server-core-contributor` | Upstream
|
|
375
|
-
| `nuxt-extensions-core-contributor` | Upstream
|
|
368
|
+
| Agent | Purpose | Spawned by |
|
|
369
|
+
|-------|---------|------------|
|
|
370
|
+
| `vendor-mode-converter` | Backend npm → vendor conversion incl. migration guides | `/lt-dev:backend:convert-to-vendor` |
|
|
371
|
+
| `vendor-mode-converter-frontend` | Frontend npm → vendor conversion incl. changelog | `/lt-dev:frontend:convert-to-vendor` |
|
|
372
|
+
| `nest-server-core-updater` | Upstream sync for vendored nest-server core | `/lt-dev:backend:update-nest-server-core` |
|
|
373
|
+
| `nuxt-extensions-core-updater` | Upstream sync for vendored nuxt-extensions core | `/lt-dev:frontend:update-nuxt-extensions-core` |
|
|
374
|
+
| `nest-server-core-contributor` | Upstream PR drafts from local backend patches | `/lt-dev:backend:contribute-nest-server-core` |
|
|
375
|
+
| `nuxt-extensions-core-contributor` | Upstream PR drafts from local frontend patches | `/lt-dev:frontend:contribute-nuxt-extensions-core` |
|
|
376
376
|
|
|
377
|
-
#### Update
|
|
377
|
+
#### Update Agents
|
|
378
378
|
|
|
379
|
-
| Agent |
|
|
380
|
-
|
|
381
|
-
| `nest-server-updater` | npm-
|
|
382
|
-
| `fullstack-updater` | Coordinated
|
|
383
|
-
| `npm-package-maintainer` | Package
|
|
384
|
-
| `branch-rebaser` | Rebase
|
|
379
|
+
| Agent | Purpose |
|
|
380
|
+
|-------|---------|
|
|
381
|
+
| `nest-server-updater` | npm-mode update of nest-server incl. migration guides |
|
|
382
|
+
| `fullstack-updater` | Coordinated backend + frontend update (legacy) |
|
|
383
|
+
| `npm-package-maintainer` | Package optimization (5 modes) |
|
|
384
|
+
| `branch-rebaser` | Rebase automation with conflict resolution |
|
|
385
385
|
|
|
386
386
|
#### Development Agents
|
|
387
387
|
|
|
388
|
-
| Agent |
|
|
389
|
-
|
|
390
|
-
| `backend-dev` | Autonomous NestJS
|
|
391
|
-
| `frontend-dev` | Autonomous Nuxt
|
|
392
|
-
| `architect` |
|
|
393
|
-
| `devops` | Docker, CI/CD,
|
|
388
|
+
| Agent | Purpose |
|
|
389
|
+
|-------|---------|
|
|
390
|
+
| `backend-dev` | Autonomous NestJS development |
|
|
391
|
+
| `frontend-dev` | Autonomous Nuxt 4 development |
|
|
392
|
+
| `architect` | Architecture planning with stack enforcement |
|
|
393
|
+
| `devops` | Docker, CI/CD, environment |
|
|
394
394
|
|
|
395
|
-
#### Reviewer
|
|
395
|
+
#### Reviewer Agents
|
|
396
396
|
|
|
397
|
-
| Agent |
|
|
398
|
-
|
|
399
|
-
| `code-reviewer` | 6-
|
|
400
|
-
| `backend-reviewer` | NestJS-
|
|
401
|
-
| `frontend-reviewer` | Vue/Nuxt-
|
|
397
|
+
| Agent | Purpose |
|
|
398
|
+
|-------|---------|
|
|
399
|
+
| `code-reviewer` | 6-dimension code review |
|
|
400
|
+
| `backend-reviewer` | NestJS-specific |
|
|
401
|
+
| `frontend-reviewer` | Vue/Nuxt-specific |
|
|
402
402
|
| `security-reviewer` | OWASP-aligned |
|
|
403
403
|
| `a11y-reviewer` | Accessibility + Lighthouse |
|
|
404
|
-
| `ux-reviewer` | UX
|
|
405
|
-
| `performance-reviewer` | Bundle,
|
|
406
|
-
| `devops-reviewer` | Docker, CI/CD
|
|
407
|
-
| `docs-reviewer` | README, JSDoc,
|
|
408
|
-
| `test-reviewer` | Test
|
|
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
409
|
|
|
410
410
|
---
|
|
411
411
|
|
|
412
|
-
### Skills (
|
|
413
|
-
|
|
414
|
-
Skills
|
|
415
|
-
|
|
416
|
-
| Skill |
|
|
417
|
-
|
|
418
|
-
| **`nest-server-core-vendoring`** | Backend
|
|
419
|
-
| **`nuxt-extensions-core-vendoring`** | Frontend
|
|
420
|
-
| `nest-server-updating` | npm-
|
|
421
|
-
| `generating-nest-servers` | NestJS
|
|
422
|
-
| `developing-lt-frontend` | Nuxt
|
|
423
|
-
| `maintaining-npm-packages` | Dependency
|
|
424
|
-
| `using-lt-cli` | lt CLI
|
|
425
|
-
| `developing-claude-plugins` | Plugin
|
|
426
|
-
| `coordinating-agent-teams` | Agent
|
|
427
|
-
| `building-stories-with-tdd` | TDD
|
|
428
|
-
| `rebasing-branches` | Rebase
|
|
429
|
-
| `general-frontend-security` | OWASP
|
|
412
|
+
### Skills (Knowledge Base)
|
|
413
|
+
|
|
414
|
+
Skills contain structured knowledge and are automatically activated on matching queries.
|
|
415
|
+
|
|
416
|
+
| Skill | Purpose |
|
|
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 processes, migration guides, error patterns |
|
|
421
|
+
| `generating-nest-servers` | Generate NestJS modules/services/controllers |
|
|
422
|
+
| `developing-lt-frontend` | Nuxt 4 development, composables, forms, auth |
|
|
423
|
+
| `maintaining-npm-packages` | Dependency optimization (5 modes) |
|
|
424
|
+
| `using-lt-cli` | lt CLI reference, conventions |
|
|
425
|
+
| `developing-claude-plugins` | Plugin development (skills, commands, agents) |
|
|
426
|
+
| `coordinating-agent-teams` | Agent team coordination, parallelism |
|
|
427
|
+
| `building-stories-with-tdd` | TDD workflow for user stories |
|
|
428
|
+
| `rebasing-branches` | Rebase strategies with conflict resolution |
|
|
429
|
+
| `general-frontend-security` | OWASP frontend security |
|
|
430
430
|
|
|
431
431
|
---
|
|
432
432
|
|
|
433
|
-
## Vendor-Mode
|
|
433
|
+
## Vendor-Mode Processes
|
|
434
434
|
|
|
435
|
-
### 1.
|
|
435
|
+
### 1. Create a new project in vendor mode
|
|
436
436
|
|
|
437
437
|
```
|
|
438
438
|
┌────────────────────────────────────────────────────────────────┐
|
|
439
|
-
│
|
|
439
|
+
│ DEVELOPER │
|
|
440
440
|
│ │
|
|
441
441
|
│ lt fullstack init │
|
|
442
442
|
│ --name my-project │
|
|
@@ -451,7 +451,7 @@ Skills enthalten strukturiertes Wissen und werden automatisch aktiviert bei pass
|
|
|
451
451
|
│
|
|
452
452
|
▼
|
|
453
453
|
┌────────────────────────────────────────────────────────────────┐
|
|
454
|
-
│ lt CLI
|
|
454
|
+
│ lt CLI performs: │
|
|
455
455
|
│ │
|
|
456
456
|
│ 1. git clone lt-monorepo │
|
|
457
457
|
│ 2. setup frontend (nuxt-base-starter) │
|
|
@@ -480,7 +480,7 @@ Skills enthalten strukturiertes Wissen und werden automatisch aktiviert bei pass
|
|
|
480
480
|
│
|
|
481
481
|
▼
|
|
482
482
|
┌────────────────────────────────────────────────────────────────┐
|
|
483
|
-
│
|
|
483
|
+
│ PROJECT READY │
|
|
484
484
|
│ │
|
|
485
485
|
│ my-project/ │
|
|
486
486
|
│ ├── projects/ │
|
|
@@ -488,10 +488,10 @@ Skills enthalten strukturiertes Wissen und werden automatisch aktiviert bei pass
|
|
|
488
488
|
│ │ │ ├── src/ │
|
|
489
489
|
│ │ │ │ ├── core/ ← Vendored nest-server │
|
|
490
490
|
│ │ │ │ │ └── VENDOR.md │
|
|
491
|
-
│ │ │ │ ├── server/ ←
|
|
491
|
+
│ │ │ │ ├── server/ ← Project code │
|
|
492
492
|
│ │ │ │ └── main.ts │
|
|
493
493
|
│ │ │ ├── bin/migrate.js │
|
|
494
|
-
│ │ │ └── package.json (
|
|
494
|
+
│ │ │ └── package.json (no @lenne.tech/nest-server) │
|
|
495
495
|
│ │ └── app/ │
|
|
496
496
|
│ │ ├── app/ │
|
|
497
497
|
│ │ │ ├── core/ ← Vendored nuxt-extensions │
|
|
@@ -500,64 +500,64 @@ Skills enthalten strukturiertes Wissen und werden automatisch aktiviert bei pass
|
|
|
500
500
|
│ │ │ │ └── VENDOR.md │
|
|
501
501
|
│ │ │ └── ... │
|
|
502
502
|
│ │ ├── nuxt.config.ts (modules: ['./app/core/module']) │
|
|
503
|
-
│ │ └── package.json (
|
|
503
|
+
│ │ └── package.json (no @lenne.tech/nuxt-extensions) │
|
|
504
504
|
│ └── CLAUDE.md │
|
|
505
505
|
└────────────────────────────────────────────────────────────────┘
|
|
506
506
|
```
|
|
507
507
|
|
|
508
|
-
**Alternative**:
|
|
508
|
+
**Alternative**: Only backend OR only frontend vendored. Omit the respective flag:
|
|
509
509
|
|
|
510
510
|
```bash
|
|
511
|
-
#
|
|
511
|
+
# Only backend vendored, frontend stays npm
|
|
512
512
|
lt fullstack init --name my-project --frontend nuxt --api-mode Rest \
|
|
513
513
|
--framework-mode vendor --framework-upstream-branch 11.24.3 --noConfirm
|
|
514
514
|
|
|
515
|
-
#
|
|
515
|
+
# Only frontend vendored, backend stays npm
|
|
516
516
|
lt fullstack init --name my-project --frontend nuxt --api-mode Rest \
|
|
517
517
|
--frontend-framework-mode vendor --noConfirm
|
|
518
518
|
```
|
|
519
519
|
|
|
520
520
|
---
|
|
521
521
|
|
|
522
|
-
### 2. Backend: npm →
|
|
522
|
+
### 2. Backend: convert npm → vendor
|
|
523
523
|
|
|
524
|
-
**
|
|
524
|
+
**Starting point**: Existing project in npm mode (`@lenne.tech/nest-server` in `package.json`).
|
|
525
525
|
|
|
526
526
|
```
|
|
527
527
|
┌──────────────────────────────────────────────────────────┐
|
|
528
|
-
│
|
|
528
|
+
│ DEVELOPER in projects/api/ │
|
|
529
529
|
│ │
|
|
530
|
-
│ Option A — Via Claude Code (
|
|
530
|
+
│ Option A — Via Claude Code (with migration guides): │
|
|
531
531
|
│ /lt-dev:backend:convert-to-vendor │
|
|
532
532
|
│ │
|
|
533
|
-
│ Option B —
|
|
533
|
+
│ Option B — Directly via CLI (no migration guides): │
|
|
534
534
|
│ lt server convert-mode --to vendor │
|
|
535
535
|
│ │
|
|
536
|
-
│ Option C — Dry-
|
|
536
|
+
│ Option C — Dry-run (plan without changes): │
|
|
537
537
|
│ lt server convert-mode --to vendor --dry-run │
|
|
538
538
|
└─────────────┬────────────────────────────────────────────┘
|
|
539
539
|
│
|
|
540
|
-
▼ Option A
|
|
540
|
+
▼ Option A uses agent
|
|
541
541
|
┌──────────────────────────────────────────────────────────┐
|
|
542
|
-
│ vendor-mode-converter
|
|
542
|
+
│ vendor-mode-converter agent │
|
|
543
543
|
│ │
|
|
544
544
|
│ Phase 0: Prerequisites │
|
|
545
545
|
│ - Verify npm mode │
|
|
546
546
|
│ - Verify NOT already vendored │
|
|
547
547
|
│ - Verify lt CLI available │
|
|
548
548
|
│ │
|
|
549
|
-
│ Phase 1: Version
|
|
549
|
+
│ Phase 1: Version detection │
|
|
550
550
|
│ - SOURCE = current @lenne.tech/nest-server version │
|
|
551
551
|
│ - TARGET = latest (or specified) │
|
|
552
552
|
│ - Calculate version gap │
|
|
553
553
|
│ │
|
|
554
|
-
│ Phase 2: Migration-
|
|
554
|
+
│ Phase 2: Migration-guide discovery │
|
|
555
555
|
│ - gh api lenneTech/nest-server/contents/migration- │
|
|
556
556
|
│ guides │
|
|
557
557
|
│ - Filter by from-version >= SOURCE, < TARGET │
|
|
558
558
|
│ - Build ordered migration plan │
|
|
559
559
|
│ │
|
|
560
|
-
│ Phase 3: CLI
|
|
560
|
+
│ Phase 3: CLI conversion │
|
|
561
561
|
│ - lt server convert-mode --to vendor │
|
|
562
562
|
│ --upstream-branch <TARGET> │
|
|
563
563
|
│ - Applies all transformations: │
|
|
@@ -568,12 +568,12 @@ lt fullstack init --name my-project --frontend nuxt --api-mode Rest \
|
|
|
568
568
|
│ • express type-imports fix │
|
|
569
569
|
│ • VENDOR.md │
|
|
570
570
|
│ │
|
|
571
|
-
│ Phase 4: Migration
|
|
571
|
+
│ Phase 4: Migration application │
|
|
572
572
|
│ - Apply each migration guide in version order │
|
|
573
573
|
│ - Translate @lenne.tech/nest-server refs to relative │
|
|
574
574
|
│ paths │
|
|
575
575
|
│ │
|
|
576
|
-
│ Phase 5: Validation
|
|
576
|
+
│ Phase 5: Validation loop │
|
|
577
577
|
│ - tsc --noEmit │
|
|
578
578
|
│ - pnpm lint │
|
|
579
579
|
│ - pnpm test │
|
|
@@ -585,38 +585,38 @@ lt fullstack init --name my-project --frontend nuxt --api-mode Rest \
|
|
|
585
585
|
|
|
586
586
|
---
|
|
587
587
|
|
|
588
|
-
### 3. Frontend: npm →
|
|
588
|
+
### 3. Frontend: convert npm → vendor
|
|
589
589
|
|
|
590
|
-
**
|
|
590
|
+
**Starting point**: Existing Nuxt project in npm mode.
|
|
591
591
|
|
|
592
592
|
```
|
|
593
593
|
┌──────────────────────────────────────────────────────────┐
|
|
594
|
-
│
|
|
594
|
+
│ DEVELOPER in projects/app/ │
|
|
595
595
|
│ │
|
|
596
|
-
│ Option A — Via Claude Code (
|
|
596
|
+
│ Option A — Via Claude Code (with changelog): │
|
|
597
597
|
│ /lt-dev:frontend:convert-to-vendor │
|
|
598
598
|
│ │
|
|
599
|
-
│ Option B —
|
|
599
|
+
│ Option B — Directly via CLI: │
|
|
600
600
|
│ lt frontend convert-mode --to vendor │
|
|
601
601
|
│ │
|
|
602
|
-
│ Option C — Dry-
|
|
602
|
+
│ Option C — Dry-run: │
|
|
603
603
|
│ lt frontend convert-mode --to vendor --dry-run │
|
|
604
604
|
└─────────────┬────────────────────────────────────────────┘
|
|
605
605
|
│
|
|
606
606
|
▼
|
|
607
607
|
┌──────────────────────────────────────────────────────────┐
|
|
608
|
-
│ vendor-mode-converter-frontend
|
|
608
|
+
│ vendor-mode-converter-frontend agent (Option A) │
|
|
609
609
|
│ │
|
|
610
610
|
│ Phase 0: Prerequisites │
|
|
611
|
-
│ Phase 1: Version
|
|
611
|
+
│ Phase 1: Version detection │
|
|
612
612
|
│ - SOURCE = current @lenne.tech/nuxt-extensions │
|
|
613
613
|
│ - TARGET = latest │
|
|
614
614
|
│ │
|
|
615
|
-
│ Phase 2: Changelog
|
|
615
|
+
│ Phase 2: Changelog discovery │
|
|
616
616
|
│ - Fetch CHANGELOG.md from nuxt-extensions repo │
|
|
617
617
|
│ - Fetch GitHub releases for version gap │
|
|
618
618
|
│ │
|
|
619
|
-
│ Phase 3: CLI
|
|
619
|
+
│ Phase 3: CLI conversion │
|
|
620
620
|
│ - lt frontend convert-mode --to vendor │
|
|
621
621
|
│ --upstream-branch <TARGET> │
|
|
622
622
|
│ - Transformations: │
|
|
@@ -627,8 +627,8 @@ lt fullstack init --name my-project --frontend nuxt --api-mode Rest \
|
|
|
627
627
|
│ • remove @lenne.tech/nuxt-extensions dep │
|
|
628
628
|
│ • VENDOR.md │
|
|
629
629
|
│ │
|
|
630
|
-
│ Phase 4: Changelog
|
|
631
|
-
│ - Apply breaking changes from changelog
|
|
630
|
+
│ Phase 4: Changelog application │
|
|
631
|
+
│ - Apply breaking changes from changelog │
|
|
632
632
|
│ │
|
|
633
633
|
│ Phase 5: Validation │
|
|
634
634
|
│ - nuxt build │
|
|
@@ -640,27 +640,27 @@ lt fullstack init --name my-project --frontend nuxt --api-mode Rest \
|
|
|
640
640
|
|
|
641
641
|
---
|
|
642
642
|
|
|
643
|
-
### 4. Backend:
|
|
643
|
+
### 4. Backend: vendor → npm rollback
|
|
644
644
|
|
|
645
|
-
**
|
|
645
|
+
**Starting point**: Project in vendor mode (`src/core/VENDOR.md` exists).
|
|
646
646
|
|
|
647
647
|
```
|
|
648
648
|
┌──────────────────────────────────────────────────────────┐
|
|
649
|
-
│
|
|
649
|
+
│ DEVELOPER in projects/api/ │
|
|
650
650
|
│ │
|
|
651
651
|
│ Option A — Via Claude Code: │
|
|
652
652
|
│ /lt-dev:backend:convert-to-npm │
|
|
653
653
|
│ │
|
|
654
|
-
│ Option B —
|
|
654
|
+
│ Option B — Directly via CLI: │
|
|
655
655
|
│ lt server convert-mode --to npm │
|
|
656
656
|
│ │
|
|
657
|
-
│
|
|
657
|
+
│ With specific version: │
|
|
658
658
|
│ lt server convert-mode --to npm --version 11.24.3 │
|
|
659
659
|
└─────────────┬────────────────────────────────────────────┘
|
|
660
660
|
│
|
|
661
661
|
▼
|
|
662
662
|
┌──────────────────────────────────────────────────────────┐
|
|
663
|
-
│ lt CLI
|
|
663
|
+
│ lt CLI performs: │
|
|
664
664
|
│ │
|
|
665
665
|
│ 1. Read baseline version from src/core/VENDOR.md │
|
|
666
666
|
│ 2. Warn if local patches exist in VENDOR.md │
|
|
@@ -680,30 +680,30 @@ lt fullstack init --name my-project --frontend nuxt --api-mode Rest \
|
|
|
680
680
|
└──────────────────────────────────────────────────────────┘
|
|
681
681
|
```
|
|
682
682
|
|
|
683
|
-
**⚠️
|
|
684
|
-
|
|
683
|
+
**⚠️ Warning before rollback:**
|
|
684
|
+
Before a `convert-to-npm`, all substantial local patches in the vendored core should be **contributed upstream** via `/lt-dev:backend:contribute-nest-server-core` — otherwise they will be lost.
|
|
685
685
|
|
|
686
686
|
---
|
|
687
687
|
|
|
688
|
-
### 5. Frontend:
|
|
688
|
+
### 5. Frontend: vendor → npm rollback
|
|
689
689
|
|
|
690
690
|
```
|
|
691
691
|
┌──────────────────────────────────────────────────────────┐
|
|
692
|
-
│
|
|
692
|
+
│ DEVELOPER in projects/app/ │
|
|
693
693
|
│ │
|
|
694
694
|
│ Option A — Via Claude Code: │
|
|
695
695
|
│ /lt-dev:frontend:convert-to-npm │
|
|
696
696
|
│ │
|
|
697
|
-
│ Option B —
|
|
697
|
+
│ Option B — Directly via CLI: │
|
|
698
698
|
│ lt frontend convert-mode --to npm │
|
|
699
699
|
│ │
|
|
700
|
-
│
|
|
700
|
+
│ With specific version: │
|
|
701
701
|
│ lt frontend convert-mode --to npm --version 1.5.3 │
|
|
702
702
|
└─────────────┬────────────────────────────────────────────┘
|
|
703
703
|
│
|
|
704
704
|
▼
|
|
705
705
|
┌──────────────────────────────────────────────────────────┐
|
|
706
|
-
│ lt CLI
|
|
706
|
+
│ lt CLI performs: │
|
|
707
707
|
│ │
|
|
708
708
|
│ 1. Read baseline version from app/core/VENDOR.md │
|
|
709
709
|
│ 2. Warn if local patches exist in VENDOR.md │
|
|
@@ -721,9 +721,9 @@ Vor einem `convert-to-npm` sollten alle substantiellen lokalen Patches im vendor
|
|
|
721
721
|
|
|
722
722
|
---
|
|
723
723
|
|
|
724
|
-
### 6. Update
|
|
724
|
+
### 6. Update workflows
|
|
725
725
|
|
|
726
|
-
|
|
726
|
+
The **recommended** path for all updates is `/lt-dev:fullstack:update-all`. It is mode-aware and orchestrates the appropriate agents automatically.
|
|
727
727
|
|
|
728
728
|
```
|
|
729
729
|
┌──────────────────────────────────────────────────────────────────┐
|
|
@@ -733,29 +733,29 @@ Der **empfohlene** Weg für alle Updates ist `/lt-dev:fullstack:update-all`. Er
|
|
|
733
733
|
│ Backend: test -f <api>/src/core/VENDOR.md → vendor | npm │
|
|
734
734
|
│ Frontend: test -f <app>/app/core/VENDOR.md → vendor | npm │
|
|
735
735
|
│ │
|
|
736
|
-
│ Phase 2: Version analysis + UPDATE_PLAN.md +
|
|
736
|
+
│ Phase 2: Version analysis + UPDATE_PLAN.md + user approval │
|
|
737
737
|
│ │
|
|
738
|
-
│ Phase 3: Backend
|
|
738
|
+
│ Phase 3: Backend framework update │
|
|
739
739
|
│ IF npm: spawn lt-dev:nest-server-updater │
|
|
740
740
|
│ IF vendor: spawn lt-dev:nest-server-core-updater │
|
|
741
741
|
│ │
|
|
742
|
-
│ Phase 4: Frontend
|
|
742
|
+
│ Phase 4: Frontend framework update │
|
|
743
743
|
│ IF npm: spawn lt-dev:fullstack-updater --skip-backend │
|
|
744
744
|
│ IF vendor: spawn lt-dev:nuxt-extensions-core-updater │
|
|
745
745
|
│ │
|
|
746
|
-
│ Phase 5: Package
|
|
746
|
+
│ Phase 5: Package maintenance │
|
|
747
747
|
│ → spawn lt-dev:npm-package-maintainer (FULL MODE) │
|
|
748
|
-
│ (
|
|
748
|
+
│ (for backend AND frontend package.json) │
|
|
749
749
|
│ │
|
|
750
|
-
│ Phase 6: CLAUDE.md
|
|
750
|
+
│ Phase 6: CLAUDE.md sync from upstream starters │
|
|
751
751
|
│ │
|
|
752
|
-
│ Phase 7: Cross-
|
|
752
|
+
│ Phase 7: Cross-validation (build + lint + tests) │
|
|
753
753
|
│ │
|
|
754
|
-
│ Phase 8: Final
|
|
754
|
+
│ Phase 8: Final report │
|
|
755
755
|
└──────────────────────────────────────────────────────────────────┘
|
|
756
756
|
```
|
|
757
757
|
|
|
758
|
-
**
|
|
758
|
+
**All 4 mode combinations are supported:**
|
|
759
759
|
|
|
760
760
|
| Backend | Frontend | Backend Agent | Frontend Agent |
|
|
761
761
|
|---------|----------|---------------|----------------|
|
|
@@ -764,179 +764,178 @@ Der **empfohlene** Weg für alle Updates ist `/lt-dev:fullstack:update-all`. Er
|
|
|
764
764
|
| vendor | npm | `nest-server-core-updater` | `fullstack-updater --skip-backend` |
|
|
765
765
|
| vendor | vendor | `nest-server-core-updater` | `nuxt-extensions-core-updater` |
|
|
766
766
|
|
|
767
|
-
**Skip
|
|
767
|
+
**Skip flags:**
|
|
768
768
|
|
|
769
769
|
```bash
|
|
770
|
-
/lt-dev:fullstack:update-all --dry-run #
|
|
771
|
-
/lt-dev:fullstack:update-all --skip-backend #
|
|
772
|
-
/lt-dev:fullstack:update-all --skip-frontend #
|
|
773
|
-
/lt-dev:fullstack:update-all --skip-packages #
|
|
770
|
+
/lt-dev:fullstack:update-all --dry-run # Plan only
|
|
771
|
+
/lt-dev:fullstack:update-all --skip-backend # Frontend only
|
|
772
|
+
/lt-dev:fullstack:update-all --skip-frontend # Backend only
|
|
773
|
+
/lt-dev:fullstack:update-all --skip-packages # Framework only, no package maintenance
|
|
774
774
|
```
|
|
775
775
|
|
|
776
|
-
**
|
|
776
|
+
**Individual updates** (if you only need one part):
|
|
777
777
|
|
|
778
778
|
```bash
|
|
779
|
-
# Backend npm
|
|
779
|
+
# Backend npm mode
|
|
780
780
|
/lt-dev:backend:update-nest-server
|
|
781
781
|
|
|
782
|
-
# Backend vendor
|
|
782
|
+
# Backend vendor mode
|
|
783
783
|
/lt-dev:backend:update-nest-server-core
|
|
784
784
|
|
|
785
|
-
# Frontend vendor
|
|
785
|
+
# Frontend vendor mode
|
|
786
786
|
/lt-dev:frontend:update-nuxt-extensions-core
|
|
787
787
|
|
|
788
|
-
#
|
|
788
|
+
# Packages only
|
|
789
789
|
/lt-dev:maintenance:maintain
|
|
790
790
|
```
|
|
791
791
|
|
|
792
792
|
---
|
|
793
793
|
|
|
794
|
-
### 7. Upstream
|
|
794
|
+
### 7. Upstream contribution
|
|
795
795
|
|
|
796
|
-
|
|
796
|
+
If you have made **generally useful** changes to the vendored core (bug fixes, features), they can be contributed back as pull requests to the upstream repo.
|
|
797
797
|
|
|
798
798
|
```
|
|
799
|
-
|
|
800
|
-
│ BACKEND:
|
|
799
|
+
┌──────────────────────────────────────────────────────────┐
|
|
800
|
+
│ BACKEND: /lt-dev:backend:contribute-nest-server-core │
|
|
801
801
|
│ FRONTEND: /lt-dev:frontend:contribute-nuxt-extensions-core│
|
|
802
|
-
│
|
|
803
|
-
│ Phase 1: git log
|
|
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
|
-
|
|
802
|
+
│ │
|
|
803
|
+
│ Phase 1: git log since 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
815
|
```
|
|
816
816
|
|
|
817
|
-
|
|
817
|
+
After the PR is merged, the next `/lt-dev:backend:update-nest-server-core` or `/lt-dev:frontend:update-nuxt-extensions-core` run will recognize the patch as "upstream-delivered" and remove it from the VENDOR.md local-changes log.
|
|
818
818
|
|
|
819
819
|
---
|
|
820
820
|
|
|
821
|
-
##
|
|
821
|
+
## Decision Matrix
|
|
822
822
|
|
|
823
|
-
###
|
|
823
|
+
### When to use npm mode?
|
|
824
824
|
|
|
825
|
-
- ✅ Standard
|
|
826
|
-
- ✅
|
|
827
|
-
- ✅
|
|
828
|
-
- ✅
|
|
825
|
+
- ✅ Standard project without local framework modifications
|
|
826
|
+
- ✅ Fast updates via `pnpm update`
|
|
827
|
+
- ✅ Simpler CI/CD
|
|
828
|
+
- ✅ Smaller memory footprint in the repo
|
|
829
829
|
|
|
830
|
-
###
|
|
830
|
+
### When to use vendor mode?
|
|
831
831
|
|
|
832
|
-
- ✅ Claude Code
|
|
833
|
-
- ✅
|
|
834
|
-
- ✅ Upstream
|
|
835
|
-
- ✅ Debugging in
|
|
836
|
-
- ✅ Framework
|
|
837
|
-
- ⚠️
|
|
838
|
-
- ⚠️
|
|
832
|
+
- ✅ Claude Code should **understand** the framework code (better context comprehension)
|
|
833
|
+
- ✅ Local patches to the framework are required
|
|
834
|
+
- ✅ Upstream contributions should emerge from real development
|
|
835
|
+
- ✅ Debugging in framework code with source maps / original code
|
|
836
|
+
- ✅ Framework changes immediately testable without npm release cycle
|
|
837
|
+
- ⚠️ Requires occasional merge conflict handling during sync
|
|
838
|
+
- ⚠️ Longer test import phase (TypeScript source)
|
|
839
839
|
|
|
840
840
|
---
|
|
841
841
|
|
|
842
|
-
##
|
|
842
|
+
## Glossary
|
|
843
843
|
|
|
844
|
-
|
|
|
845
|
-
|
|
846
|
-
| **npm
|
|
847
|
-
| **Vendor
|
|
848
|
-
| **VENDOR.md** | Marker
|
|
849
|
-
| **Flatten-
|
|
850
|
-
| **Consumer-
|
|
851
|
-
| **Upstream
|
|
852
|
-
| **Upstream
|
|
853
|
-
| **Mode-aware** | Code
|
|
854
|
-
| **Starter** | `nest-server-starter` / `nuxt-base-starter` —
|
|
844
|
+
| Term | Meaning |
|
|
845
|
+
|------|---------|
|
|
846
|
+
| **npm mode** | Framework as `@lenne.tech/nest-server` / `@lenne.tech/nuxt-extensions` npm dependency |
|
|
847
|
+
| **Vendor mode** | Framework source copied into `src/core/` (backend) or `app/core/` (frontend) |
|
|
848
|
+
| **VENDOR.md** | Marker file in the vendored core with baseline version, sync history, local patches |
|
|
849
|
+
| **Flatten-fix** | Import path rewrites in 4 backend files after copying (backend only) |
|
|
850
|
+
| **Consumer-import codemod** | Rewrite of `@lenne.tech/nest-server` to relative paths in project code |
|
|
851
|
+
| **Upstream sync** | Pulling upstream changes into the vendored core |
|
|
852
|
+
| **Upstream contribution** | Pushing local patches as PR to the upstream repo |
|
|
853
|
+
| **Mode-aware** | Code that automatically chooses correct paths for npm or vendor |
|
|
854
|
+
| **Starter** | `nest-server-starter` / `nuxt-base-starter` — template repo with standard config |
|
|
855
855
|
|
|
856
856
|
---
|
|
857
857
|
|
|
858
|
-
##
|
|
858
|
+
## Sources & References
|
|
859
859
|
|
|
860
|
-
### GitHub
|
|
860
|
+
### GitHub repos
|
|
861
861
|
|
|
862
862
|
| Repo | URL |
|
|
863
863
|
|------|-----|
|
|
864
864
|
| lt CLI | https://github.com/lenneTech/cli |
|
|
865
865
|
| lt-dev Plugin | https://github.com/lenneTech/claude-code |
|
|
866
|
-
| nest-server
|
|
867
|
-
| nest-server
|
|
868
|
-
| nuxt-extensions
|
|
869
|
-
| nuxt-base
|
|
870
|
-
| lt-monorepo
|
|
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
871
|
|
|
872
|
-
###
|
|
872
|
+
### Local documentation
|
|
873
873
|
|
|
874
|
-
- `cli/CLAUDE.md` — CLI
|
|
875
|
-
- `cli/docs/commands.md` — CLI
|
|
876
|
-
- `cli/docs/lt.config.md` — CLI
|
|
877
|
-
- `cli/scripts/test-vendor-init.sh` — Backend
|
|
878
|
-
- `cli/scripts/test-frontend-vendor-init.sh` — Frontend
|
|
879
|
-
- `framework-vendoring-pilot-plan.md` — Original Vendor-Mode Blueprint
|
|
874
|
+
- `cli/CLAUDE.md` — CLI internal documentation + vendor touchpoints table
|
|
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 scenarios × ~22 assertions)
|
|
878
|
+
- `cli/scripts/test-frontend-vendor-init.sh` — Frontend vendor integration tests (4 scenarios)
|
|
880
879
|
|
|
881
880
|
---
|
|
882
881
|
|
|
883
|
-
##
|
|
882
|
+
## Quick Reference — The Most Important Commands
|
|
884
883
|
|
|
885
884
|
```bash
|
|
886
885
|
# ═══════════════════════════════════════════════════════════════
|
|
887
|
-
#
|
|
886
|
+
# PROJECT SETUP
|
|
888
887
|
# ═══════════════════════════════════════════════════════════════
|
|
889
888
|
|
|
890
|
-
#
|
|
889
|
+
# New project (both in vendor mode)
|
|
891
890
|
lt fullstack init --name <n> --frontend nuxt --api-mode Rest \
|
|
892
891
|
--framework-mode vendor --frontend-framework-mode vendor --noConfirm
|
|
893
892
|
|
|
894
|
-
#
|
|
893
|
+
# New project (npm mode, standard)
|
|
895
894
|
lt fullstack init --name <n> --frontend nuxt --api-mode Rest --noConfirm
|
|
896
895
|
|
|
897
|
-
#
|
|
896
|
+
# Check status (shows both modes at monorepo root)
|
|
898
897
|
lt status
|
|
899
898
|
|
|
900
899
|
# ═══════════════════════════════════════════════════════════════
|
|
901
|
-
#
|
|
900
|
+
# CONVERSION — Fullstack (both subprojects in one step)
|
|
902
901
|
# ═══════════════════════════════════════════════════════════════
|
|
903
902
|
|
|
904
|
-
#
|
|
903
|
+
# Both subprojects: npm → vendor (from monorepo root)
|
|
905
904
|
lt fullstack convert-mode --to vendor --noConfirm
|
|
906
905
|
|
|
907
|
-
#
|
|
906
|
+
# Both subprojects: vendor → npm (rollback)
|
|
908
907
|
lt fullstack convert-mode --to npm --noConfirm
|
|
909
908
|
|
|
910
|
-
#
|
|
909
|
+
# With specific upstream versions
|
|
911
910
|
lt fullstack convert-mode --to vendor \
|
|
912
911
|
--framework-upstream-branch 11.24.3 \
|
|
913
912
|
--frontend-framework-upstream-branch 1.5.3 \
|
|
914
913
|
--noConfirm
|
|
915
914
|
|
|
916
|
-
#
|
|
915
|
+
# Only backend or only frontend
|
|
917
916
|
lt fullstack convert-mode --to vendor --skip-frontend --noConfirm
|
|
918
917
|
lt fullstack convert-mode --to vendor --skip-backend --noConfirm
|
|
919
918
|
|
|
920
|
-
# Dry-run (
|
|
919
|
+
# Dry-run (plan without changes)
|
|
921
920
|
lt fullstack convert-mode --to vendor --dry-run
|
|
922
921
|
|
|
923
922
|
# ═══════════════════════════════════════════════════════════════
|
|
924
|
-
#
|
|
923
|
+
# CONVERSION — Individual (in the respective subprojects)
|
|
925
924
|
# ═══════════════════════════════════════════════════════════════
|
|
926
925
|
|
|
927
|
-
# Backend: npm → vendor (
|
|
926
|
+
# Backend: npm → vendor (with migrations via Claude Code)
|
|
928
927
|
/lt-dev:backend:convert-to-vendor
|
|
929
928
|
|
|
930
|
-
# Backend: npm → vendor (
|
|
929
|
+
# Backend: npm → vendor (directly via CLI)
|
|
931
930
|
cd projects/api && lt server convert-mode --to vendor
|
|
932
931
|
|
|
933
|
-
# Frontend: npm → vendor (
|
|
932
|
+
# Frontend: npm → vendor (with changelog via Claude Code)
|
|
934
933
|
/lt-dev:frontend:convert-to-vendor
|
|
935
934
|
|
|
936
|
-
# Frontend: npm → vendor (
|
|
935
|
+
# Frontend: npm → vendor (directly via CLI)
|
|
937
936
|
cd projects/app && lt frontend convert-mode --to vendor
|
|
938
937
|
|
|
939
|
-
#
|
|
938
|
+
# Rollback individually
|
|
940
939
|
cd projects/api && lt server convert-mode --to npm
|
|
941
940
|
cd projects/app && lt frontend convert-mode --to npm
|
|
942
941
|
|
|
@@ -944,30 +943,30 @@ cd projects/app && lt frontend convert-mode --to npm
|
|
|
944
943
|
# UPDATES
|
|
945
944
|
# ═══════════════════════════════════════════════════════════════
|
|
946
945
|
|
|
947
|
-
# Comprehensive
|
|
946
|
+
# Comprehensive fullstack update (recommended, mode-aware)
|
|
948
947
|
/lt-dev:fullstack:update-all
|
|
949
948
|
|
|
950
|
-
#
|
|
949
|
+
# Backend only
|
|
951
950
|
/lt-dev:backend:update-nest-server # npm mode
|
|
952
951
|
/lt-dev:backend:update-nest-server-core # vendor mode
|
|
953
952
|
|
|
954
|
-
#
|
|
953
|
+
# Frontend only
|
|
955
954
|
/lt-dev:frontend:update-nuxt-extensions-core # vendor mode
|
|
956
955
|
|
|
957
|
-
#
|
|
956
|
+
# Packages only
|
|
958
957
|
/lt-dev:maintenance:maintain
|
|
959
958
|
|
|
960
959
|
# ═══════════════════════════════════════════════════════════════
|
|
961
960
|
# UPSTREAM CONTRIBUTION
|
|
962
961
|
# ═══════════════════════════════════════════════════════════════
|
|
963
962
|
|
|
964
|
-
# Backend:
|
|
963
|
+
# Backend: prepare local patches as PR
|
|
965
964
|
/lt-dev:backend:contribute-nest-server-core
|
|
966
965
|
|
|
967
|
-
# Frontend:
|
|
966
|
+
# Frontend: prepare local patches as PR
|
|
968
967
|
/lt-dev:frontend:contribute-nuxt-extensions-core
|
|
969
968
|
```
|
|
970
969
|
|
|
971
970
|
---
|
|
972
971
|
|
|
973
|
-
*
|
|
972
|
+
*This file is intended as living documentation. It should be updated when new features are added to the lt CLI or lt-dev plugin.*
|