lee-spec-kit 0.4.13 → 0.5.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.en.md +246 -17
- package/README.md +246 -26
- package/dist/index.js +3200 -978
- package/package.json +2 -1
- package/templates/en/common/agents/pr-template.md +18 -6
- package/templates/en/common/agents/skills/create-feature.md +5 -18
- package/templates/en/common/agents/skills/create-pr.md +10 -7
- package/templates/en/common/agents/skills/execute-task.md +2 -3
- package/templates/en/fullstack/README.md +1 -1
- package/templates/en/fullstack/agents/agents.md +1 -1
- package/templates/en/single/README.md +1 -1
- package/templates/en/single/agents/agents.md +1 -1
- package/templates/ko/common/agents/pr-template.md +18 -6
- package/templates/ko/common/agents/skills/create-feature.md +5 -18
- package/templates/ko/common/agents/skills/create-pr.md +10 -7
- package/templates/ko/common/agents/skills/execute-task.md +3 -11
- package/templates/ko/fullstack/README.md +1 -1
- package/templates/ko/fullstack/agents/agents.md +1 -1
- package/templates/ko/single/README.md +1 -1
- package/templates/ko/single/agents/agents.md +1 -1
package/README.md
CHANGED
|
@@ -40,6 +40,7 @@
|
|
|
40
40
|
- [주요 기능](#주요-기능)
|
|
41
41
|
- [사용법](#사용법)
|
|
42
42
|
- [설정 파일](#설정-파일)
|
|
43
|
+
- [오류 코드](#오류-코드)
|
|
43
44
|
- [생성되는 구조](#생성되는-구조)
|
|
44
45
|
- [Feature 워크플로우](#feature-워크플로우)
|
|
45
46
|
- [문제 해결](#문제-해결)
|
|
@@ -58,10 +59,13 @@ npx lee-spec-kit feature user-auth
|
|
|
58
59
|
# 3. 진행 상황 및 다음 단계 확인 (AI 에이전트용)
|
|
59
60
|
npx lee-spec-kit context
|
|
60
61
|
|
|
61
|
-
# 4.
|
|
62
|
+
# 4. 워크플로우 대시보드 확인
|
|
63
|
+
npx lee-spec-kit view
|
|
64
|
+
|
|
65
|
+
# 5. 전체 상태 확인
|
|
62
66
|
npx lee-spec-kit status
|
|
63
67
|
|
|
64
|
-
#
|
|
68
|
+
# 6. 문서/Feature 진단
|
|
65
69
|
npx lee-spec-kit doctor
|
|
66
70
|
```
|
|
67
71
|
|
|
@@ -70,7 +74,7 @@ npx lee-spec-kit doctor
|
|
|
70
74
|
### 📁 프로젝트 초기화
|
|
71
75
|
|
|
72
76
|
- 대화형 모드 또는 CLI 옵션으로 프로젝트 설정
|
|
73
|
-
- Single(단일 레포) /
|
|
77
|
+
- Single(단일 레포) / Multi(멀티 컴포넌트) 프로젝트 타입 지원 (`fullstack`는 하위호환 alias)
|
|
74
78
|
- 한국어/영어 템플릿 선택
|
|
75
79
|
|
|
76
80
|
### 🚀 Feature 생성
|
|
@@ -84,6 +88,16 @@ npx lee-spec-kit doctor
|
|
|
84
88
|
- 전체 Feature 진행 상태 한눈에 확인
|
|
85
89
|
- 터미널 출력 또는 마크다운 파일로 저장
|
|
86
90
|
|
|
91
|
+
### 👀 View 대시보드
|
|
92
|
+
|
|
93
|
+
- Context 기반 워크플로우 현황을 한 번에 확인
|
|
94
|
+
- 단일 Feature/전체 Feature 모두 조회 가능
|
|
95
|
+
|
|
96
|
+
### 🔁 Flow 오케스트레이션
|
|
97
|
+
|
|
98
|
+
- `context + status + doctor`를 한 번에 실행/요약
|
|
99
|
+
- 승인/실행 옵션을 그대로 전달해 원자 액션 자동화 가능
|
|
100
|
+
|
|
87
101
|
### 🩺 문서 진단 (Doctor)
|
|
88
102
|
|
|
89
103
|
- docs 구조/설정/Feature 메타데이터를 점검하여 잠재 문제를 빠르게 탐지
|
|
@@ -102,18 +116,31 @@ npx lee-spec-kit doctor
|
|
|
102
116
|
npx lee-spec-kit init
|
|
103
117
|
|
|
104
118
|
# 옵션 지정
|
|
105
|
-
npx lee-spec-kit init --name my-project --type
|
|
119
|
+
npx lee-spec-kit init --name my-project --type multi
|
|
120
|
+
npx lee-spec-kit init --name my-project --type fullstack # alias
|
|
106
121
|
```
|
|
107
122
|
|
|
108
123
|
**옵션:**
|
|
109
124
|
|
|
110
|
-
| 옵션 | 설명
|
|
111
|
-
| ------------------- |
|
|
112
|
-
| `-n, --name <name>` | 프로젝트 이름
|
|
113
|
-
| `-t, --type <type>` | `single` 또는 `fullstack`
|
|
114
|
-
|
|
|
115
|
-
| `-
|
|
116
|
-
|
|
|
125
|
+
| 옵션 | 설명 | 기본값 |
|
|
126
|
+
| ------------------- | -------------------------------------------------------------------- | ------------------------- |
|
|
127
|
+
| `-n, --name <name>` | 프로젝트 이름 | 현재 폴더명 |
|
|
128
|
+
| `-t, --type <type>` | `single` 또는 `multi` (`fullstack` alias 지원) | 대화형 선택 (`--yes`/`--non-interactive`면 `single`) |
|
|
129
|
+
| `--components <list>` | multi 컴포넌트 목록 (쉼표 구분, 예: `fe,be,worker`) | `fe,be` |
|
|
130
|
+
| `-l, --lang <lang>` | `ko` (한국어) 또는 `en` (영어) | `en` |
|
|
131
|
+
| `--workflow <mode>` | 워크플로우 모드: `github`(issue/PR/review 포함) 또는 `local`(로컬 중심) | `github` |
|
|
132
|
+
| `-d, --dir <dir>` | 설치 디렉토리 | `./docs` |
|
|
133
|
+
| `--docs-repo <mode>` | docs 레포 모드 (`embedded` 또는 `standalone`) | `embedded` |
|
|
134
|
+
| `--project-root <path>` | standalone(single) 프로젝트 레포 경로 | - |
|
|
135
|
+
| `--fe-project-root <path>` | standalone(multi) FE 레포 경로 | - |
|
|
136
|
+
| `--be-project-root <path>` | standalone(multi) BE 레포 경로 | - |
|
|
137
|
+
| `--push-docs` | standalone docs 원격 push 사용 (`--docs-remote`와 함께 사용) | `false` |
|
|
138
|
+
| `--docs-remote <url>` | standalone docs 원격 URL (`--push-docs`와 함께 사용) | - |
|
|
139
|
+
| `-y, --yes` | 대화형 입력을 대부분 스킵 (단, 대상 디렉토리가 비어있지 않으면 덮어쓰기 확인은 표시) | - |
|
|
140
|
+
| `-f, --force` | 대상 디렉토리가 비어있지 않아도 확인 없이 덮어쓰기 | `false` |
|
|
141
|
+
| `--non-interactive` | 사용자 입력이 필요하면 프롬프트 대신 즉시 실패 | `false` |
|
|
142
|
+
|
|
143
|
+
> `init`은 docs 생성 후 Git 초기화/커밋(`git init`, `git add`, `git commit`)을 자동 시도합니다. 환경에 따라 자동 커밋이 생략될 수 있습니다.
|
|
117
144
|
|
|
118
145
|
### 새 기능 생성
|
|
119
146
|
|
|
@@ -121,14 +148,29 @@ npx lee-spec-kit init --name my-project --type fullstack
|
|
|
121
148
|
# Single 프로젝트
|
|
122
149
|
npx lee-spec-kit feature user-auth
|
|
123
150
|
|
|
124
|
-
#
|
|
151
|
+
# Multi 프로젝트
|
|
125
152
|
npx lee-spec-kit feature --repo be user-auth
|
|
126
153
|
npx lee-spec-kit feature --repo fe user-profile
|
|
154
|
+
npx lee-spec-kit feature --component worker queue-jobs
|
|
155
|
+
|
|
156
|
+
# Feature ID/설명 지정
|
|
157
|
+
npx lee-spec-kit feature payment --id F123 --desc "결제 플로우 개선"
|
|
127
158
|
```
|
|
128
159
|
|
|
160
|
+
**옵션:**
|
|
161
|
+
|
|
162
|
+
| 옵션 | 설명 | 기본값 |
|
|
163
|
+
| ------------------- | -------------------------------------------- | ----------- |
|
|
164
|
+
| `-r, --repo <repo>` | multi 대상 컴포넌트 (하위호환 alias) | 대화형 선택 |
|
|
165
|
+
| `--component <id>` | multi 대상 컴포넌트 | 대화형 선택 |
|
|
166
|
+
| `--id <id>` | Feature ID (`F001` 형식) | 자동 생성 |
|
|
167
|
+
| `-d, --desc <desc>` | `spec.md`의 목적(설명) 기본 문구 | 빈 문자열 |
|
|
168
|
+
| `--non-interactive` | 사용자 입력이 필요하면 프롬프트 대신 즉시 실패 | `false` |
|
|
169
|
+
|
|
129
170
|
### Context 확인 (AI 에이전트 가이드)
|
|
130
171
|
|
|
131
172
|
현재 작업 중인 Feature의 상태와 다음 할 일을 확인합니다. 특히 AI 에이전트가 프로세스를 준수하는 데 유용합니다.
|
|
173
|
+
단일 Feature 상세에서는 다음 작업을 항상 `A/B/C` 옵션으로 표시합니다.
|
|
132
174
|
|
|
133
175
|
```bash
|
|
134
176
|
# 자동 감지 (Git 브랜치 기준)
|
|
@@ -141,18 +183,93 @@ npx lee-spec-kit context user-auth
|
|
|
141
183
|
npx lee-spec-kit context F001
|
|
142
184
|
npx lee-spec-kit context F001-user-auth
|
|
143
185
|
|
|
186
|
+
# multi에서 컴포넌트 지정
|
|
187
|
+
npx lee-spec-kit context --repo fe
|
|
188
|
+
npx lee-spec-kit context --repo worker
|
|
189
|
+
|
|
190
|
+
# 전체/완료 Feature 포함
|
|
191
|
+
npx lee-spec-kit context --all
|
|
192
|
+
npx lee-spec-kit context --done
|
|
193
|
+
|
|
144
194
|
# 에이전트용 JSON 출력
|
|
145
195
|
npx lee-spec-kit context --json
|
|
196
|
+
|
|
197
|
+
# 라벨 승인 선택 (검증만)
|
|
198
|
+
npx lee-spec-kit context F001 --approve A
|
|
199
|
+
|
|
200
|
+
# 라벨 승인 + 단일 명령 실행
|
|
201
|
+
npx lee-spec-kit context F001 --approve "A OK" --execute
|
|
202
|
+
|
|
203
|
+
# 승인 라벨이 instruction-only면 실패 처리
|
|
204
|
+
npx lee-spec-kit context F001 --approve A --execute --execute-strict
|
|
146
205
|
```
|
|
147
206
|
|
|
207
|
+
**옵션:**
|
|
208
|
+
|
|
209
|
+
| 옵션 | 설명 |
|
|
210
|
+
| --------------- | ----------------------------------------------- |
|
|
211
|
+
| `--json` | 에이전트용 JSON 출력 |
|
|
212
|
+
| `--repo <repo>` | multi에서 대상 컴포넌트 지정 (예: `fe`, `be`, `worker`) |
|
|
213
|
+
| `--all` | 자동 감지 실패 시 완료된 Feature까지 포함해서 표시 |
|
|
214
|
+
| `--done` | 완료(workflow-done) Feature만 표시 |
|
|
215
|
+
| `--approve <reply>` | 라벨 승인 응답 (`A` 또는 `A OK`)으로 단일 옵션 선택 |
|
|
216
|
+
| `--execute` | `--approve`로 선택한 옵션이 command일 때 1개만 실행 |
|
|
217
|
+
| `--execute-strict` | `--execute`와 함께 사용 시 instruction-only 옵션이면 실패 |
|
|
218
|
+
|
|
148
219
|
`--json` 출력에는 다음 액션이 `actions` 배열로 포함됩니다.
|
|
149
220
|
|
|
221
|
+
- `reasonCode`: 상태 이유 코드 (`SINGLE_MATCHED`, `MULTIPLE_ACTIVE_FEATURES` 등)
|
|
150
222
|
- `type: "command"`: `scope`(project|docs), `cwd`, `cmd` 제공 (복사하여 붙여넣기 가능한 형태로 `cd ... && git ...` 형태로 출력)
|
|
151
223
|
- `type: "instruction"`: 사람이 수행해야 하는 안내 메시지
|
|
224
|
+
- `actionOptions`: `label`(`A`, `B`, `C`...)과 해당 `action` 매핑
|
|
152
225
|
- `category`: 액션 분류 (자동화/반자동용 `approval.mode: "category"`에서 사용)
|
|
153
|
-
- `requiresUserCheck`: 사용자 확인 필요 여부 (에이전트는 **사용자 응답을
|
|
226
|
+
- `requiresUserCheck`: 사용자 확인 필요 여부 (에이전트는 **사용자 응답을 `<라벨>` 또는 `<라벨> OK` 형식(예: `A`, `A OK`)으로 제한**하는 것을 권장 / 설정의 `approval`로 오버라이드 가능)
|
|
227
|
+
- `workflowPolicy`: 현재 완료 조건 정책 (`mode`, `requireIssue`, `requireBranch`, `requirePr`, `requireReview`)
|
|
154
228
|
|
|
155
|
-
또한 `checkPolicy`가 포함되어, 에이전트가 사용자 확인 정책을 적용할 때 참고할 수 있습니다. (`docPath`, `hint`, `token: "
|
|
229
|
+
또한 `checkPolicy`가 포함되어, 에이전트가 사용자 확인 정책을 적용할 때 참고할 수 있습니다. (`docPath`, `hint`, `token: "<LABEL>"`, `acceptedTokens`, `tokenPattern`, `validLabels`, `contextVersion`, `config`)
|
|
230
|
+
|
|
231
|
+
오류 응답(`status: "error"`)에는 `reasonCode`와 `suggestions`(라벨형 다음 동작: `A/B/C`)가 포함됩니다. (예: `INVALID_APPROVAL`, `CONTEXT_STALE`, `EXECUTION_FAILED`, `EXECUTION_NOT_COMMAND`)
|
|
232
|
+
|
|
233
|
+
### View 대시보드
|
|
234
|
+
|
|
235
|
+
```bash
|
|
236
|
+
npx lee-spec-kit view
|
|
237
|
+
npx lee-spec-kit view F001
|
|
238
|
+
npx lee-spec-kit view --all
|
|
239
|
+
npx lee-spec-kit view --json
|
|
240
|
+
```
|
|
241
|
+
|
|
242
|
+
**옵션:**
|
|
243
|
+
|
|
244
|
+
| 옵션 | 설명 |
|
|
245
|
+
| --------------- | ----------------------------------------------- |
|
|
246
|
+
| `--json` | 에이전트용 JSON 출력 |
|
|
247
|
+
| `--repo <repo>` | multi에서 대상 컴포넌트 지정 (예: `fe`, `be`, `worker`) |
|
|
248
|
+
| `--all` | 자동 감지 실패 시 완료된 Feature까지 포함해서 표시 |
|
|
249
|
+
| `--done` | 완료(workflow-done) Feature만 표시 |
|
|
250
|
+
|
|
251
|
+
### Flow 오케스트레이션
|
|
252
|
+
|
|
253
|
+
```bash
|
|
254
|
+
npx lee-spec-kit flow
|
|
255
|
+
npx lee-spec-kit flow F001 --approve A
|
|
256
|
+
npx lee-spec-kit flow F001 --approve "A OK" --execute
|
|
257
|
+
npx lee-spec-kit flow --strict
|
|
258
|
+
npx lee-spec-kit flow --json
|
|
259
|
+
```
|
|
260
|
+
|
|
261
|
+
**옵션:**
|
|
262
|
+
|
|
263
|
+
| 옵션 | 설명 |
|
|
264
|
+
| ------------------ | ---- |
|
|
265
|
+
| `--json` | 에이전트용 JSON 출력 |
|
|
266
|
+
| `--repo <repo>` | multi에서 대상 컴포넌트 지정 (예: `fe`, `be`, `worker`) |
|
|
267
|
+
| `--all` | 자동 감지 실패 시 완료된 Feature까지 포함해서 표시 |
|
|
268
|
+
| `--done` | 완료(workflow-done) Feature만 표시 |
|
|
269
|
+
| `--approve <reply>`| context 라벨 승인 응답 전달 (`A` 또는 `A OK`) |
|
|
270
|
+
| `--execute` | 승인한 옵션이 command일 때 실행 |
|
|
271
|
+
| `--execute-strict` | `--execute`와 함께 사용 시 instruction-only 옵션이면 실패 |
|
|
272
|
+
| `--strict` | `status --strict`, `doctor --strict`까지 함께 검사 |
|
|
156
273
|
|
|
157
274
|
### 상태 확인
|
|
158
275
|
|
|
@@ -160,10 +277,37 @@ npx lee-spec-kit context --json
|
|
|
160
277
|
# 터미널에 출력
|
|
161
278
|
npx lee-spec-kit status
|
|
162
279
|
|
|
280
|
+
# 에이전트용 JSON 출력
|
|
281
|
+
npx lee-spec-kit status --json
|
|
282
|
+
|
|
163
283
|
# 파일로 저장
|
|
164
284
|
npx lee-spec-kit status --write
|
|
285
|
+
|
|
286
|
+
# 중복/누락 ID가 있으면 실패 코드로 종료
|
|
287
|
+
npx lee-spec-kit status --strict
|
|
165
288
|
```
|
|
166
289
|
|
|
290
|
+
**옵션:**
|
|
291
|
+
|
|
292
|
+
| 옵션 | 설명 |
|
|
293
|
+
| -------------- | --------------------------------------------- |
|
|
294
|
+
| `--json` | 에이전트용 JSON 출력 |
|
|
295
|
+
| `-w, --write` | `features/status.md` 파일 생성 |
|
|
296
|
+
| `-s, --strict` | 중복/누락 Feature ID 발견 시 종료 코드 1 반환 |
|
|
297
|
+
|
|
298
|
+
상태값은 구현 완료와 워크플로우 완료를 구분합니다.
|
|
299
|
+
- `DONE`: 태스크는 모두 완료됐지만 워크플로우 요구사항이 완전히 충족되진 않음
|
|
300
|
+
- `WORKFLOW_DONE`: 구현 + 워크플로우 요구사항까지 모두 충족
|
|
301
|
+
|
|
302
|
+
### 공통 옵션
|
|
303
|
+
|
|
304
|
+
```bash
|
|
305
|
+
# 도움말 배너 숨김
|
|
306
|
+
npx lee-spec-kit --no-banner --help
|
|
307
|
+
```
|
|
308
|
+
|
|
309
|
+
또는 환경변수 `LEE_SPEC_KIT_NO_BANNER=1`로 배너 출력을 비활성화할 수 있습니다.
|
|
310
|
+
|
|
167
311
|
### 문서 진단 (Doctor)
|
|
168
312
|
|
|
169
313
|
docs 구조 및 Feature 메타데이터(중복 ID, 누락된 파일/상태, 플레이스홀더 잔존 등)를 점검합니다.
|
|
@@ -177,6 +321,12 @@ npx lee-spec-kit doctor --strict
|
|
|
177
321
|
|
|
178
322
|
# 에이전트용 JSON 출력
|
|
179
323
|
npx lee-spec-kit doctor --json
|
|
324
|
+
|
|
325
|
+
# 안전한 자동 수정 적용
|
|
326
|
+
npx lee-spec-kit doctor --fix
|
|
327
|
+
|
|
328
|
+
# 수정 예정 항목만 미리 확인 (파일 미변경)
|
|
329
|
+
npx lee-spec-kit doctor --fix --dry-run
|
|
180
330
|
```
|
|
181
331
|
|
|
182
332
|
### 템플릿 업데이트
|
|
@@ -214,6 +364,8 @@ npx lee-spec-kit update --force
|
|
|
214
364
|
"lang": "ko",
|
|
215
365
|
"createdAt": "YYYY-MM-DD",
|
|
216
366
|
"docsRepo": "embedded",
|
|
367
|
+
"workflow": { "mode": "github" },
|
|
368
|
+
"pr": { "screenshots": { "upload": false } },
|
|
217
369
|
"approval": { "mode": "builtin" }
|
|
218
370
|
}
|
|
219
371
|
```
|
|
@@ -221,13 +373,16 @@ npx lee-spec-kit update --force
|
|
|
221
373
|
| 필드 | 설명 |
|
|
222
374
|
| ------------- | --------------------------------------- |
|
|
223
375
|
| `projectName` | 프로젝트 이름 |
|
|
224
|
-
| `projectType` | `single` 또는 `fullstack`
|
|
376
|
+
| `projectType` | `single` 또는 `multi` (`fullstack` alias 지원) |
|
|
377
|
+
| `components` | (multi만) 컴포넌트 목록 (예: `["fe","be","worker"]`) |
|
|
225
378
|
| `lang` | `ko` 또는 `en` |
|
|
226
379
|
| `createdAt` | 생성 날짜 |
|
|
227
380
|
| `docsRepo` | `embedded` 또는 `standalone` |
|
|
228
381
|
| `pushDocs` | (standalone만) docs 레포를 별도 Git으로 관리/푸시할지 여부 |
|
|
229
382
|
| `docsRemote` | (standalone+pushDocs) docs 레포 remote URL |
|
|
230
|
-
| `projectRoot` | (standalone만) 프로젝트 레포지토리 경로 (single: string,
|
|
383
|
+
| `projectRoot` | (standalone만) 프로젝트 레포지토리 경로 (single: string, multi: `{ [component]: path }`) |
|
|
384
|
+
| `workflow` | (선택) 워크플로우 요구사항 정책 (`github`/`local`) |
|
|
385
|
+
| `pr` | (선택) PR 결과물 정책 (예: 스크린샷 업로드 여부) |
|
|
231
386
|
| `approval` | (선택) `context` 출력의 `[확인 필요]`/`requiresUserCheck` 정책 오버라이드 (자동화/반자동용) |
|
|
232
387
|
|
|
233
388
|
> `docsRepo: "standalone"`을 선택하면 `pushDocs`, `docsRemote`, `projectRoot`가 추가됩니다.
|
|
@@ -241,11 +396,29 @@ npx lee-spec-kit update --force
|
|
|
241
396
|
|
|
242
397
|
- 텍스트 출력의 `[확인 필요]` 표시
|
|
243
398
|
- `context --json`의 `actions[].requiresUserCheck`
|
|
244
|
-
- `checkPolicy.token` (`context --json`): 승인 토큰 (
|
|
399
|
+
- `checkPolicy.token` (`context --json`): 승인 토큰 형식 (`<LABEL>`)
|
|
400
|
+
- `checkPolicy.acceptedTokens`: 허용되는 승인 응답 템플릿 (예: `["<LABEL>", "<LABEL> OK"]`)
|
|
401
|
+
- `checkPolicy.tokenPattern`: 승인 응답 검증용 정규식
|
|
402
|
+
- `checkPolicy.validLabels`: 현재 선택 가능한 라벨 목록 (`A`, `B`, `C`...)
|
|
403
|
+
- `checkPolicy.contextVersion`: stale context 검증용 스냅샷 해시
|
|
245
404
|
|
|
246
405
|
> 실제 명령 실행을 강제/차단하는 기능은 아닙니다. (에이전트가 참고하도록 신호를 제공)
|
|
247
406
|
> 기존 설정에 `approval`이 없으면 `builtin`으로 동작합니다. (마이그레이션 불필요)
|
|
248
|
-
> `requiresUserCheck: true`인 액션은 에이전트가 사용자로부터 **정확히 `OK`
|
|
407
|
+
> `requiresUserCheck: true`인 액션은 에이전트가 사용자로부터 **정확히 `<라벨>` 또는 `<라벨> OK` 응답(예: `A`, `A OK`)**을 받은 뒤 진행하는 것을 권장합니다.
|
|
408
|
+
|
|
409
|
+
### workflow (완료 조건 정책)
|
|
410
|
+
|
|
411
|
+
- `workflow.mode: "github"` (기본): Issue/브랜치/PR/리뷰 단계를 포함한 전체 워크플로우를 완료 조건으로 사용
|
|
412
|
+
- `workflow.mode: "local"`: 로컬 중심 워크플로우로 동작하며 Issue/브랜치/PR/리뷰 단계를 필수로 요구하지 않음
|
|
413
|
+
- local 모드로 생성한 Feature 템플릿은 기본적으로 Issue/PR 중심 섹션을 축소합니다.
|
|
414
|
+
|
|
415
|
+
예시:
|
|
416
|
+
|
|
417
|
+
```json
|
|
418
|
+
{
|
|
419
|
+
"workflow": { "mode": "local" }
|
|
420
|
+
}
|
|
421
|
+
```
|
|
249
422
|
|
|
250
423
|
#### 모드
|
|
251
424
|
|
|
@@ -280,6 +453,10 @@ npx lee-spec-kit update --force
|
|
|
280
453
|
|
|
281
454
|
> 사용 가능한 `category` 값은 `context --json`의 `actions[].category`로 확인하는 것을 권장합니다.
|
|
282
455
|
|
|
456
|
+
### pr (PR 결과물 정책)
|
|
457
|
+
|
|
458
|
+
- `pr.screenshots.upload` (기본: `false`): `true`면 스크린샷을 업로드(예: GitHub Release assets)하고 PR 본문에 URL을 포함할 수 있습니다. `false`면 업로드/URL 포함을 하지 않으며 PR 본문에서도 스크린샷 섹션을 만들지 않는 것을 권장합니다.
|
|
459
|
+
|
|
283
460
|
### Standalone 프로젝트 설정 예시
|
|
284
461
|
|
|
285
462
|
**Single 프로젝트:**
|
|
@@ -296,12 +473,12 @@ npx lee-spec-kit update --force
|
|
|
296
473
|
}
|
|
297
474
|
```
|
|
298
475
|
|
|
299
|
-
**
|
|
476
|
+
**Multi 프로젝트:**
|
|
300
477
|
|
|
301
478
|
```json
|
|
302
479
|
{
|
|
303
480
|
"projectName": "my-project",
|
|
304
|
-
"projectType": "
|
|
481
|
+
"projectType": "multi",
|
|
305
482
|
"lang": "ko",
|
|
306
483
|
"createdAt": "YYYY-MM-DD",
|
|
307
484
|
"docsRepo": "standalone",
|
|
@@ -319,14 +496,49 @@ npx lee-spec-kit update --force
|
|
|
319
496
|
# 현재 설정 확인
|
|
320
497
|
npx lee-spec-kit config
|
|
321
498
|
|
|
499
|
+
# 여러 docs 경로가 있을 때 대상 지정
|
|
500
|
+
npx lee-spec-kit config --dir ./docs2
|
|
501
|
+
|
|
322
502
|
# projectRoot 수정 (Single)
|
|
323
503
|
npx lee-spec-kit config --project-root /new/path
|
|
504
|
+
npx lee-spec-kit config --dir ./docs2 --project-root /new/path
|
|
324
505
|
|
|
325
|
-
# projectRoot 수정 (
|
|
506
|
+
# projectRoot 수정 (Multi)
|
|
326
507
|
npx lee-spec-kit config --project-root /new/fe/path --repo fe
|
|
327
508
|
npx lee-spec-kit config --project-root /new/be/path --repo be
|
|
509
|
+
npx lee-spec-kit config --project-root /new/worker/path --component worker
|
|
510
|
+
|
|
511
|
+
# 비대화형 모드 (필수 옵션 누락 시 즉시 실패)
|
|
512
|
+
npx lee-spec-kit config --project-root /new/fe/path --repo fe --non-interactive
|
|
328
513
|
```
|
|
329
514
|
|
|
515
|
+
**옵션:**
|
|
516
|
+
|
|
517
|
+
| 옵션 | 설명 |
|
|
518
|
+
| -------------------- | ---- |
|
|
519
|
+
| `--dir <dir>` | 대상 docs 디렉터리 또는 프로젝트 경로 지정 |
|
|
520
|
+
| `--project-root <path>` | projectRoot 경로 설정 |
|
|
521
|
+
| `--repo <repo>` | multi 대상 컴포넌트(하위호환 alias) |
|
|
522
|
+
| `--component <id>` | multi 대상 컴포넌트 |
|
|
523
|
+
| `--non-interactive` | 사용자 입력이 필요하면 프롬프트 대신 즉시 실패 |
|
|
524
|
+
|
|
525
|
+
> `--non-interactive`는 `init`, `feature`, `config`에서 지원됩니다.
|
|
526
|
+
> 오류 시 출력되는 `[REASON_CODE]` 형식(`PROMPT_BLOCKED`, `CONFIG_NOT_FOUND` 등)은 자동화 분기용으로 사용할 수 있습니다.
|
|
527
|
+
> 또한 텍스트 모드 오류에는 `👉 Next Options (Error)`로 `A/B/C` 제안이 함께 출력됩니다.
|
|
528
|
+
|
|
529
|
+
## 오류 코드
|
|
530
|
+
|
|
531
|
+
- 이 CLI는 자동화 분기를 위해 에러에 `reasonCode`(JSON) 또는 `[REASON_CODE]`(텍스트)를 제공합니다.
|
|
532
|
+
- 오류 시 다음 동작 제안이 `A/B/C` 라벨로 함께 제공됩니다. (JSON: `suggestions`, 텍스트: `👉 Next Options (Error)`)
|
|
533
|
+
- 대표 코드:
|
|
534
|
+
- `PROMPT_BLOCKED`: 비대화형 모드에서 사용자 입력이 필요함
|
|
535
|
+
- `CONFIG_NOT_FOUND`: `.lee-spec-kit.json`을 찾지 못함
|
|
536
|
+
- `DOCS_NOT_FOUND`: docs 구조를 찾지 못함
|
|
537
|
+
- `LOCK_WAIT_TIMEOUT` / `LOCK_ACQUIRE_TIMEOUT`: 락 대기/획득 타임아웃
|
|
538
|
+
- `INVALID_APPROVAL`, `CONTEXT_STALE`, `EXECUTION_FAILED`, `EXECUTION_NOT_COMMAND`: `context --approve/--execute` 흐름 오류
|
|
539
|
+
|
|
540
|
+
상세 코드 목록과 의미는 `errors.md`(한국어), `errors.en.md`(English)를 참고하세요.
|
|
541
|
+
|
|
330
542
|
## 생성되는 구조
|
|
331
543
|
|
|
332
544
|
### Fullstack (FE/BE 분리)
|
|
@@ -337,13 +549,17 @@ docs/
|
|
|
337
549
|
├── agents/
|
|
338
550
|
│ ├── agents.md # 에이전트 운영 규칙
|
|
339
551
|
│ ├── constitution.md # 프로젝트 원칙
|
|
552
|
+
│ ├── custom.md # 프로젝트별 추가 규칙
|
|
340
553
|
│ ├── git-workflow.md # Git 자동화 규칙
|
|
341
554
|
│ ├── issue-template.md
|
|
342
|
-
│
|
|
555
|
+
│ ├── pr-template.md
|
|
556
|
+
│ └── skills/ # 에이전트 실행 가이드
|
|
343
557
|
├── designs/ # 디자인 참고 자료
|
|
344
558
|
├── ideas/ # 아이디어/To-do (Feature 승격 전)
|
|
345
559
|
├── prd/
|
|
346
560
|
│ └── README.md
|
|
561
|
+
├── scripts/
|
|
562
|
+
│ └── README.md
|
|
347
563
|
└── features/
|
|
348
564
|
├── README.md
|
|
349
565
|
├── feature-base/ # 공용 템플릿
|
|
@@ -357,9 +573,12 @@ docs/
|
|
|
357
573
|
docs/
|
|
358
574
|
├── README.md
|
|
359
575
|
├── agents/
|
|
576
|
+
│ ├── custom.md
|
|
577
|
+
│ └── skills/
|
|
360
578
|
├── designs/
|
|
361
579
|
├── ideas/
|
|
362
580
|
├── prd/
|
|
581
|
+
├── scripts/
|
|
363
582
|
└── features/
|
|
364
583
|
├── feature-base/
|
|
365
584
|
└── F001-feature/ # 개별 기능
|
|
@@ -385,7 +604,8 @@ flowchart LR
|
|
|
385
604
|
| 프로젝트 타입 | 설명 |
|
|
386
605
|
| ------------- | -------------------------------------------- |
|
|
387
606
|
| `single` | 단일 레포 프로젝트 (모노레포 또는 단일 스택) |
|
|
388
|
-
| `
|
|
607
|
+
| `multi` | 멀티 컴포넌트 프로젝트 (예: FE/BE/worker) |
|
|
608
|
+
| `fullstack` | `multi`의 하위호환 alias |
|
|
389
609
|
|
|
390
610
|
## 문제 해결
|
|
391
611
|
|
|
@@ -408,10 +628,10 @@ flowchart LR
|
|
|
408
628
|
</details>
|
|
409
629
|
|
|
410
630
|
<details>
|
|
411
|
-
<summary><strong>
|
|
631
|
+
<summary><strong>Multi 프로젝트에서 --repo/--component 옵션이 동작하지 않습니다</strong></summary>
|
|
412
632
|
|
|
413
|
-
- `.lee-spec-kit.json`의 `projectType`이 `fullstack
|
|
414
|
-
-
|
|
633
|
+
- `.lee-spec-kit.json`의 `projectType`이 `multi`(또는 구버전 `fullstack`)인지 확인하세요
|
|
634
|
+
- `.lee-spec-kit.json`의 `components` 목록에 해당 값이 포함되어 있는지 확인하세요
|
|
415
635
|
|
|
416
636
|
</details>
|
|
417
637
|
|