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.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
- # 5. 문서/Feature 진단
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(단일 레포) / Fullstack(FE/BE 분리) 프로젝트 타입 지원
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 fullstack
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
- | `-l, --lang <lang>` | `ko` (한국어) 또는 `en` (영어) | `en` |
115
- | `-d, --dir <dir>` | 설치 디렉토리 | `./docs` |
116
- | `-y, --yes` | 대화형 프롬프트 스킵 | - |
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
- # Fullstack 프로젝트
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`: 사용자 확인 필요 여부 (에이전트는 **사용자 응답을 정확히 `OK`로 제한**하는 것을 권장 / 설정의 `approval`로 오버라이드 가능)
226
+ - `requiresUserCheck`: 사용자 확인 필요 여부 (에이전트는 **사용자 응답을 `<라벨>` 또는 `<라벨> OK` 형식(예: `A`, `A OK`)으로 제한**하는 것을 권장 / 설정의 `approval`로 오버라이드 가능)
227
+ - `workflowPolicy`: 현재 완료 조건 정책 (`mode`, `requireIssue`, `requireBranch`, `requirePr`, `requireReview`)
154
228
 
155
- 또한 `checkPolicy`가 포함되어, 에이전트가 사용자 확인 정책을 적용할 때 참고할 수 있습니다. (`docPath`, `hint`, `token: "OK"`, `config`)
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, fullstack: {fe, be}) |
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`): 승인 토큰 (`OK`)
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
- **Fullstack 프로젝트:**
476
+ **Multi 프로젝트:**
300
477
 
301
478
  ```json
302
479
  {
303
480
  "projectName": "my-project",
304
- "projectType": "fullstack",
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 수정 (Fullstack)
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
- └── pr-template.md
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
- | `fullstack` | FE/BE 분리 프로젝트 |
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>Fullstack 프로젝트에서 --repo 옵션이 동작하지 않습니다</strong></summary>
631
+ <summary><strong>Multi 프로젝트에서 --repo/--component 옵션이 동작하지 않습니다</strong></summary>
412
632
 
413
- - `.lee-spec-kit.json`의 `projectType`이 `fullstack`인지 확인하세요
414
- - `--repo` 값은 `fe` 또는 `be`만 가능합니다
633
+ - `.lee-spec-kit.json`의 `projectType`이 `multi`(또는 구버전 `fullstack`)인지 확인하세요
634
+ - `.lee-spec-kit.json`의 `components` 목록에 해당 값이 포함되어 있는지 확인하세요
415
635
 
416
636
  </details>
417
637