lee-spec-kit 0.4.14 → 0.5.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/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,30 @@ 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
+ | `--json` | JSON 출력 (`featureId`, `featurePath`, `component`) | `false` |
170
+
129
171
  ### Context 확인 (AI 에이전트 가이드)
130
172
 
131
173
  현재 작업 중인 Feature의 상태와 다음 할 일을 확인합니다. 특히 AI 에이전트가 프로세스를 준수하는 데 유용합니다.
174
+ 단일 Feature 상세에서는 다음 작업을 항상 `A/B/C` 옵션으로 표시합니다.
132
175
 
133
176
  ```bash
134
177
  # 자동 감지 (Git 브랜치 기준)
@@ -141,18 +184,115 @@ npx lee-spec-kit context user-auth
141
184
  npx lee-spec-kit context F001
142
185
  npx lee-spec-kit context F001-user-auth
143
186
 
187
+ # multi에서 컴포넌트 지정
188
+ npx lee-spec-kit context --repo fe
189
+ npx lee-spec-kit context --repo worker
190
+
191
+ # 전체/완료 Feature 포함
192
+ npx lee-spec-kit context --all
193
+ npx lee-spec-kit context --done
194
+
144
195
  # 에이전트용 JSON 출력
145
196
  npx lee-spec-kit context --json
197
+
198
+ # 라벨 승인 선택 (검증만)
199
+ npx lee-spec-kit context F001 --approve A
200
+
201
+ # 라벨 승인 + 단일 명령 실행
202
+ npx lee-spec-kit context F001 --approve "A OK" --execute
203
+
204
+ # 승인 라벨이 instruction-only면 실패 처리
205
+ npx lee-spec-kit context F001 --approve A --execute --execute-strict
146
206
  ```
147
207
 
208
+ **옵션:**
209
+
210
+ | 옵션 | 설명 |
211
+ | --------------- | ----------------------------------------------- |
212
+ | `--json` | 에이전트용 JSON 출력 |
213
+ | `--repo <repo>` | multi에서 대상 컴포넌트 지정 (예: `fe`, `be`, `worker`) |
214
+ | `--all` | 자동 감지 실패 시 완료된 Feature까지 포함해서 표시 |
215
+ | `--done` | 완료(workflow-done) Feature만 표시 |
216
+ | `--approve <reply>` | 라벨 승인 응답 (`A` 또는 `A OK`)으로 단일 옵션 선택 |
217
+ | `--execute` | `--approve`로 선택한 옵션이 command일 때 1개만 실행 |
218
+ | `--execute-strict` | `--execute`와 함께 사용 시 instruction-only 옵션이면 실패 |
219
+
148
220
  `--json` 출력에는 다음 액션이 `actions` 배열로 포함됩니다.
149
221
 
222
+ - `reasonCode`: 상태 이유 코드 (`SINGLE_MATCHED`, `MULTIPLE_ACTIVE_FEATURES` 등)
150
223
  - `type: "command"`: `scope`(project|docs), `cwd`, `cmd` 제공 (복사하여 붙여넣기 가능한 형태로 `cd ... && git ...` 형태로 출력)
151
224
  - `type: "instruction"`: 사람이 수행해야 하는 안내 메시지
225
+ - `actionOptions`: `label`(`A`, `B`, `C`...)과 해당 `action` 매핑 + `summary`/`approvalPrompt`(라벨 설명 템플릿)
152
226
  - `category`: 액션 분류 (자동화/반자동용 `approval.mode: "category"`에서 사용)
153
- - `requiresUserCheck`: 사용자 확인 필요 여부 (에이전트는 **사용자 응답을 정확히 `OK`로 제한**하는 것을 권장 / 설정의 `approval`로 오버라이드 가능)
227
+ - `requiresUserCheck`: 사용자 확인 필요 여부 (에이전트는 **사용자 응답을 `<라벨>` 또는 `<라벨> OK` 형식(예: `A`, `A OK`)으로 제한**하는 것을 권장 / 설정의 `approval`로 오버라이드 가능)
228
+ - `workflowPolicy`: 현재 완료 조건 정책 (`mode`, `requireIssue`, `requireBranch`, `requirePr`, `requireReview`)
229
+
230
+ 또한 `checkPolicy`가 포함되어, 에이전트가 사용자 확인 정책을 적용할 때 참고할 수 있습니다. (`docPath`, `hint`, `token: "<LABEL>"`, `acceptedTokens`, `tokenPattern`, `validLabels`, `requireExplanationBeforeApproval`, `requiredExplanationFields`, `contextVersion`, `config`)
231
+
232
+ 오류 응답(`status: "error"`)에는 `reasonCode`와 `suggestions`(라벨형 다음 동작: `A/B/C`)가 포함됩니다. (예: `INVALID_APPROVAL`, `CONTEXT_STALE`, `EXECUTION_FAILED`, `EXECUTION_NOT_COMMAND`)
233
+
234
+ ### View 대시보드
235
+
236
+ ```bash
237
+ npx lee-spec-kit view
238
+ npx lee-spec-kit view F001
239
+ npx lee-spec-kit view --all
240
+ npx lee-spec-kit view --json
241
+ ```
242
+
243
+ **옵션:**
244
+
245
+ | 옵션 | 설명 |
246
+ | --------------- | ----------------------------------------------- |
247
+ | `--json` | 에이전트용 JSON 출력 |
248
+ | `--repo <repo>` | multi에서 대상 컴포넌트 지정 (예: `fe`, `be`, `worker`) |
249
+ | `--all` | 자동 감지 실패 시 완료된 Feature까지 포함해서 표시 |
250
+ | `--done` | 완료(workflow-done) Feature만 표시 |
251
+
252
+ ### Flow 오케스트레이션
253
+
254
+ ```bash
255
+ npx lee-spec-kit flow
256
+ npx lee-spec-kit flow F001 --approve A
257
+ npx lee-spec-kit flow F001 --approve "A OK" --execute
258
+ npx lee-spec-kit flow --strict
259
+ npx lee-spec-kit flow --json
260
+ ```
261
+
262
+ **옵션:**
263
+
264
+ | 옵션 | 설명 |
265
+ | ------------------ | ---- |
266
+ | `--json` | 에이전트용 JSON 출력 |
267
+ | `--repo <repo>` | multi에서 대상 컴포넌트 지정 (예: `fe`, `be`, `worker`) |
268
+ | `--all` | 자동 감지 실패 시 완료된 Feature까지 포함해서 표시 |
269
+ | `--done` | 완료(workflow-done) Feature만 표시 |
270
+ | `--approve <reply>`| context 라벨 승인 응답 전달 (`A` 또는 `A OK`) |
271
+ | `--execute` | 승인한 옵션이 command일 때 실행 |
272
+ | `--execute-strict` | `--execute`와 함께 사용 시 instruction-only 옵션이면 실패 |
273
+ | `--strict` | `status --strict`, `doctor --strict`까지 함께 검사 |
274
+
275
+ ### GitHub helper
276
+
277
+ ```bash
278
+ # 선택된 Feature 기준 Issue 본문 생성
279
+ npx lee-spec-kit github issue F001
280
+
281
+ # Issue 본문 생성 + 실제 Issue 생성
282
+ npx lee-spec-kit github issue F001 --create --labels enhancement,frontend
154
283
 
155
- 또한 `checkPolicy`가 포함되어, 에이전트가 사용자 확인 정책을 적용할 때 참고할 수 있습니다. (`docPath`, `hint`, `token: "OK"`, `config`)
284
+ # PR 본문 생성
285
+ npx lee-spec-kit github pr F001
286
+
287
+ # PR 본문 생성 + PR 생성 + tasks.md 메타데이터 동기화 + merge 재시도
288
+ npx lee-spec-kit github pr F001 --create --merge --labels enhancement,frontend
289
+ ```
290
+
291
+ 핵심 동작:
292
+ - Issue/PR helper는 필수 섹션과 관련 문서 경로를 검증합니다.
293
+ - 라벨은 최소 1개 이상 필수입니다.
294
+ - PR helper는 기본적으로 `tasks.md`의 `PR`/`PR Status`를 동기화합니다. (`--no-sync-tasks`로 비활성화)
295
+ - merge 시 head 브랜치가 뒤쳐진 경우 fetch/rebase/force-push 후 재시도합니다.
156
296
 
157
297
  ### 상태 확인
158
298
 
@@ -160,10 +300,37 @@ npx lee-spec-kit context --json
160
300
  # 터미널에 출력
161
301
  npx lee-spec-kit status
162
302
 
303
+ # 에이전트용 JSON 출력
304
+ npx lee-spec-kit status --json
305
+
163
306
  # 파일로 저장
164
307
  npx lee-spec-kit status --write
308
+
309
+ # 중복/누락 ID가 있으면 실패 코드로 종료
310
+ npx lee-spec-kit status --strict
165
311
  ```
166
312
 
313
+ **옵션:**
314
+
315
+ | 옵션 | 설명 |
316
+ | -------------- | --------------------------------------------- |
317
+ | `--json` | 에이전트용 JSON 출력 |
318
+ | `-w, --write` | `features/status.md` 파일 생성 |
319
+ | `-s, --strict` | 중복/누락 Feature ID 발견 시 종료 코드 1 반환 |
320
+
321
+ 상태값은 구현 완료와 워크플로우 완료를 구분합니다.
322
+ - `DONE`: 태스크는 모두 완료됐지만 워크플로우 요구사항이 완전히 충족되진 않음
323
+ - `WORKFLOW_DONE`: 구현 + 워크플로우 요구사항까지 모두 충족
324
+
325
+ ### 공통 옵션
326
+
327
+ ```bash
328
+ # 도움말 배너 숨김
329
+ npx lee-spec-kit --no-banner --help
330
+ ```
331
+
332
+ 또는 환경변수 `LEE_SPEC_KIT_NO_BANNER=1`로 배너 출력을 비활성화할 수 있습니다.
333
+
167
334
  ### 문서 진단 (Doctor)
168
335
 
169
336
  docs 구조 및 Feature 메타데이터(중복 ID, 누락된 파일/상태, 플레이스홀더 잔존 등)를 점검합니다.
@@ -177,8 +344,24 @@ npx lee-spec-kit doctor --strict
177
344
 
178
345
  # 에이전트용 JSON 출력
179
346
  npx lee-spec-kit doctor --json
347
+
348
+ # 안전한 자동 수정 적용
349
+ npx lee-spec-kit doctor --fix
350
+
351
+ # 수정 예정 항목만 미리 확인 (파일 미변경)
352
+ npx lee-spec-kit doctor --fix --dry-run
353
+
354
+ # decisions.md 플레이스홀더 진단 레벨 조정
355
+ npx lee-spec-kit doctor --decisions-placeholders off
356
+ npx lee-spec-kit doctor --decisions-placeholders info
357
+ npx lee-spec-kit doctor --decisions-placeholders warn
180
358
  ```
181
359
 
360
+ - `--decisions-placeholders <mode>`
361
+ - `off`: `decisions.md` 플레이스홀더를 진단에서 제외
362
+ - `info` (기본): 정보 레벨로만 보고 (strict 실패 대상 아님)
363
+ - `warn`: 경고로 보고
364
+
182
365
  ### 템플릿 업데이트
183
366
 
184
367
  기본 동작은 `docs/` 작업트리에 변경사항이 없을 때만 업데이트를 진행하며, 이 경우 변경된 파일은 확인 없이 덮어씁니다.
@@ -214,6 +397,7 @@ npx lee-spec-kit update --force
214
397
  "lang": "ko",
215
398
  "createdAt": "YYYY-MM-DD",
216
399
  "docsRepo": "embedded",
400
+ "workflow": { "mode": "github", "codeDirtyScope": "auto" },
217
401
  "pr": { "screenshots": { "upload": false } },
218
402
  "approval": { "mode": "builtin" }
219
403
  }
@@ -222,13 +406,15 @@ npx lee-spec-kit update --force
222
406
  | 필드 | 설명 |
223
407
  | ------------- | --------------------------------------- |
224
408
  | `projectName` | 프로젝트 이름 |
225
- | `projectType` | `single` 또는 `fullstack` |
409
+ | `projectType` | `single` 또는 `multi` (`fullstack` alias 지원) |
410
+ | `components` | (multi만) 컴포넌트 목록 (예: `["fe","be","worker"]`) |
226
411
  | `lang` | `ko` 또는 `en` |
227
412
  | `createdAt` | 생성 날짜 |
228
413
  | `docsRepo` | `embedded` 또는 `standalone` |
229
414
  | `pushDocs` | (standalone만) docs 레포를 별도 Git으로 관리/푸시할지 여부 |
230
415
  | `docsRemote` | (standalone+pushDocs) docs 레포 remote URL |
231
- | `projectRoot` | (standalone만) 프로젝트 레포지토리 경로 (single: string, fullstack: {fe, be}) |
416
+ | `projectRoot` | (standalone만) 프로젝트 레포지토리 경로 (single: string, multi: `{ [component]: path }`) |
417
+ | `workflow` | (선택) 워크플로우 요구사항 정책 (`github`/`local`, `codeDirtyScope`) |
232
418
  | `pr` | (선택) PR 결과물 정책 (예: 스크린샷 업로드 여부) |
233
419
  | `approval` | (선택) `context` 출력의 `[확인 필요]`/`requiresUserCheck` 정책 오버라이드 (자동화/반자동용) |
234
420
 
@@ -243,11 +429,37 @@ npx lee-spec-kit update --force
243
429
 
244
430
  - 텍스트 출력의 `[확인 필요]` 표시
245
431
  - `context --json`의 `actions[].requiresUserCheck`
246
- - `checkPolicy.token` (`context --json`): 승인 토큰 (`OK`)
432
+ - `checkPolicy.token` (`context --json`): 승인 토큰 형식 (`<LABEL>`)
433
+ - `checkPolicy.acceptedTokens`: 허용되는 승인 응답 템플릿 (예: `["<LABEL>", "<LABEL> OK"]`)
434
+ - `checkPolicy.tokenPattern`: 승인 응답 검증용 정규식
435
+ - `checkPolicy.validLabels`: 현재 선택 가능한 라벨 목록 (`A`, `B`, `C`...)
436
+ - `checkPolicy.requireExplanationBeforeApproval`: 승인 요청 전에 라벨별 설명을 포함해야 함
437
+ - `checkPolicy.requiredExplanationFields`: 라벨 설명에 사용할 필드 목록 (예: `actionOptions[].summary`)
438
+ - `checkPolicy.contextVersion`: stale context 검증용 스냅샷 해시
247
439
 
248
440
  > 실제 명령 실행을 강제/차단하는 기능은 아닙니다. (에이전트가 참고하도록 신호를 제공)
249
441
  > 기존 설정에 `approval`이 없으면 `builtin`으로 동작합니다. (마이그레이션 불필요)
250
- > `requiresUserCheck: true`인 액션은 에이전트가 사용자로부터 **정확히 `OK` 응답**을 받은 뒤 진행하는 것을 권장합니다.
442
+ > `requiresUserCheck: true`인 액션은 에이전트가 사용자로부터 **정확히 `<라벨>` 또는 `<라벨> OK` 응답(예: `A`, `A OK`)**을 받은 뒤 진행하는 것을 권장합니다.
443
+
444
+ ### workflow (완료 조건 정책)
445
+
446
+ - `workflow.mode: "github"` (기본): Issue/브랜치/PR/리뷰 단계를 포함한 전체 워크플로우를 완료 조건으로 사용
447
+ - `workflow.mode: "local"`: 로컬 중심 워크플로우로 동작하며 Issue/브랜치/PR/리뷰 단계를 필수로 요구하지 않음
448
+ - local 모드로 생성한 Feature 템플릿은 기본적으로 Issue/PR 중심 섹션을 축소합니다.
449
+ - `workflow.codeDirtyScope`:
450
+ - `repo`: 프로젝트 레포 전체 변경으로 코드 미커밋 여부를 판정
451
+ - `component`: 현재 Feature 컴포넌트 경로 변경만 판정 (multi 권장)
452
+ - `auto`: `single => repo`, `multi => component`
453
+ - `workflow.componentPaths`(선택): component 판정 경로를 컴포넌트별로 명시 (예: `"web": ["apps/web", "packages/web-ui"]`)
454
+ - 하위 호환: 값이 없으면 기존 동작인 `repo`로 처리
455
+
456
+ 예시:
457
+
458
+ ```json
459
+ {
460
+ "workflow": { "mode": "local", "codeDirtyScope": "auto" }
461
+ }
462
+ ```
251
463
 
252
464
  #### 모드
253
465
 
@@ -302,12 +514,12 @@ npx lee-spec-kit update --force
302
514
  }
303
515
  ```
304
516
 
305
- **Fullstack 프로젝트:**
517
+ **Multi 프로젝트:**
306
518
 
307
519
  ```json
308
520
  {
309
521
  "projectName": "my-project",
310
- "projectType": "fullstack",
522
+ "projectType": "multi",
311
523
  "lang": "ko",
312
524
  "createdAt": "YYYY-MM-DD",
313
525
  "docsRepo": "standalone",
@@ -325,14 +537,49 @@ npx lee-spec-kit update --force
325
537
  # 현재 설정 확인
326
538
  npx lee-spec-kit config
327
539
 
540
+ # 여러 docs 경로가 있을 때 대상 지정
541
+ npx lee-spec-kit config --dir ./docs2
542
+
328
543
  # projectRoot 수정 (Single)
329
544
  npx lee-spec-kit config --project-root /new/path
545
+ npx lee-spec-kit config --dir ./docs2 --project-root /new/path
330
546
 
331
- # projectRoot 수정 (Fullstack)
547
+ # projectRoot 수정 (Multi)
332
548
  npx lee-spec-kit config --project-root /new/fe/path --repo fe
333
549
  npx lee-spec-kit config --project-root /new/be/path --repo be
550
+ npx lee-spec-kit config --project-root /new/worker/path --component worker
551
+
552
+ # 비대화형 모드 (필수 옵션 누락 시 즉시 실패)
553
+ npx lee-spec-kit config --project-root /new/fe/path --repo fe --non-interactive
334
554
  ```
335
555
 
556
+ **옵션:**
557
+
558
+ | 옵션 | 설명 |
559
+ | -------------------- | ---- |
560
+ | `--dir <dir>` | 대상 docs 디렉터리 또는 프로젝트 경로 지정 |
561
+ | `--project-root <path>` | projectRoot 경로 설정 |
562
+ | `--repo <repo>` | multi 대상 컴포넌트(하위호환 alias) |
563
+ | `--component <id>` | multi 대상 컴포넌트 |
564
+ | `--non-interactive` | 사용자 입력이 필요하면 프롬프트 대신 즉시 실패 |
565
+
566
+ > `--non-interactive`는 `init`, `feature`, `config`에서 지원됩니다.
567
+ > 오류 시 출력되는 `[REASON_CODE]` 형식(`PROMPT_BLOCKED`, `CONFIG_NOT_FOUND` 등)은 자동화 분기용으로 사용할 수 있습니다.
568
+ > 또한 텍스트 모드 오류에는 `👉 Next Options (Error)`로 `A/B/C` 제안이 함께 출력됩니다.
569
+
570
+ ## 오류 코드
571
+
572
+ - 이 CLI는 자동화 분기를 위해 에러에 `reasonCode`(JSON) 또는 `[REASON_CODE]`(텍스트)를 제공합니다.
573
+ - 오류 시 다음 동작 제안이 `A/B/C` 라벨로 함께 제공됩니다. (JSON: `suggestions`, 텍스트: `👉 Next Options (Error)`)
574
+ - 대표 코드:
575
+ - `PROMPT_BLOCKED`: 비대화형 모드에서 사용자 입력이 필요함
576
+ - `CONFIG_NOT_FOUND`: `.lee-spec-kit.json`을 찾지 못함
577
+ - `DOCS_NOT_FOUND`: docs 구조를 찾지 못함
578
+ - `LOCK_WAIT_TIMEOUT` / `LOCK_ACQUIRE_TIMEOUT`: 락 대기/획득 타임아웃
579
+ - `INVALID_APPROVAL`, `CONTEXT_STALE`, `EXECUTION_FAILED`, `EXECUTION_NOT_COMMAND`: `context --approve/--execute` 흐름 오류
580
+
581
+ 상세 코드 목록과 의미는 `errors.md`(한국어), `errors.en.md`(English)를 참고하세요.
582
+
336
583
  ## 생성되는 구조
337
584
 
338
585
  ### Fullstack (FE/BE 분리)
@@ -343,13 +590,17 @@ docs/
343
590
  ├── agents/
344
591
  │ ├── agents.md # 에이전트 운영 규칙
345
592
  │ ├── constitution.md # 프로젝트 원칙
593
+ │ ├── custom.md # 프로젝트별 추가 규칙
346
594
  │ ├── git-workflow.md # Git 자동화 규칙
347
595
  │ ├── issue-template.md
348
- └── pr-template.md
596
+ ├── pr-template.md
597
+ │ └── skills/ # 에이전트 실행 가이드
349
598
  ├── designs/ # 디자인 참고 자료
350
599
  ├── ideas/ # 아이디어/To-do (Feature 승격 전)
351
600
  ├── prd/
352
601
  │ └── README.md
602
+ ├── scripts/
603
+ │ └── README.md
353
604
  └── features/
354
605
  ├── README.md
355
606
  ├── feature-base/ # 공용 템플릿
@@ -363,9 +614,12 @@ docs/
363
614
  docs/
364
615
  ├── README.md
365
616
  ├── agents/
617
+ │ ├── custom.md
618
+ │ └── skills/
366
619
  ├── designs/
367
620
  ├── ideas/
368
621
  ├── prd/
622
+ ├── scripts/
369
623
  └── features/
370
624
  ├── feature-base/
371
625
  └── F001-feature/ # 개별 기능
@@ -391,7 +645,8 @@ flowchart LR
391
645
  | 프로젝트 타입 | 설명 |
392
646
  | ------------- | -------------------------------------------- |
393
647
  | `single` | 단일 레포 프로젝트 (모노레포 또는 단일 스택) |
394
- | `fullstack` | FE/BE 분리 프로젝트 |
648
+ | `multi` | 멀티 컴포넌트 프로젝트 (예: FE/BE/worker) |
649
+ | `fullstack` | `multi`의 하위호환 alias |
395
650
 
396
651
  ## 문제 해결
397
652
 
@@ -414,10 +669,10 @@ flowchart LR
414
669
  </details>
415
670
 
416
671
  <details>
417
- <summary><strong>Fullstack 프로젝트에서 --repo 옵션이 동작하지 않습니다</strong></summary>
672
+ <summary><strong>Multi 프로젝트에서 --repo/--component 옵션이 동작하지 않습니다</strong></summary>
418
673
 
419
- - `.lee-spec-kit.json`의 `projectType`이 `fullstack`인지 확인하세요
420
- - `--repo` 값은 `fe` 또는 `be`만 가능합니다
674
+ - `.lee-spec-kit.json`의 `projectType`이 `multi`(또는 구버전 `fullstack`)인지 확인하세요
675
+ - `.lee-spec-kit.json`의 `components` 목록에 해당 값이 포함되어 있는지 확인하세요
421
676
 
422
677
  </details>
423
678