lee-spec-kit 0.6.26 β†’ 0.6.27

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/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "lee-spec-kit",
3
- "version": "0.6.26",
3
+ "version": "0.6.27",
4
4
  "description": "Project documentation structure generator for AI-assisted development",
5
5
  "type": "module",
6
6
  "bin": {
@@ -33,14 +33,17 @@ Prohibited:
33
33
  ## 🧾 Label Response Contract (SSOT)
34
34
 
35
35
  - End **every user-facing reply** with current status + available labels.
36
- - Use the latest `npx lee-spec-kit context --json-compact` as the default source (fallback: `context --json` or `flow --json` when full detail is required).
37
- - When using auto results from `flow --json`, treat `autoRun.resume.flowCommand` as SSOT for resume (including after context compression/reset).
38
- - Treat `AUTO_MANUAL_REQUIRED` as an automation boundary, not an immediate failure. Re-check `context --json`, then decide stop/report by `approvalRequest.required`.
36
+ - Use the latest `npx lee-spec-kit context --json-compact` as the default source (fallback: `context --json` or `flow --json` when full detail is required; prefer `flow --json-compact` for default flow output).
37
+ - When using auto results from `flow --json-compact` (or `flow --json`), treat `autoRun.resume.flowCommand` as SSOT for resume (including after context compression/reset).
38
+ - Treat `AUTO_MANUAL_REQUIRED` as an automation boundary, not an immediate failure. Re-check `context --json-compact`, then decide stop/report by `approvalRequest.required` (`context --json` only for full-detail debugging fields).
39
39
  - Use `actionOptions[].detail` or command `cmd` **verbatim**. Do not paraphrase.
40
40
  - Even when the user asks something else, append the same label block at the end if executable labels exist.
41
41
  - If no executable labels exist, print `Available labels: none` and guide re-check with `npx lee-spec-kit context`.
42
42
  - If user input does not contain a valid label, do not execute; request label selection again.
43
43
  - For approved command options, prefer one-shot `flow --approve <LABEL> --execute`; do not split `context --approve` and `context --execute --ticket` across turns/sessions.
44
+ - If `agentOrchestration.currentActionShouldDelegate=true` and the selected option is `actionType="command"`, delegation is mandatory: call `spawn_agent` first. Do not execute that command directly from the main agent.
45
+ - Main-agent fallback is allowed only when sub-agent execution is unavailable (for example: tool not available, spawn failed, or sub-agent failed before command execution).
46
+ - When fallback is used, report a one-line fallback reason to the user before running the command in the main agent.
44
47
 
45
48
  Output format:
46
49
 
@@ -21,15 +21,16 @@ Execute exactly one option from `πŸ‘‰ Next Options (Atomic)` as printed by the C
21
21
 
22
22
  - If the CLI points to an active task, focus on that task only.
23
23
  - Treat task state transitions in `tasks.md` **"Task Rules"** as SSOT.
24
- - Treat `approvalRequest.required` from `context --json` as SSOT for approval waiting.
24
+ - Treat `approvalRequest.required` from `context --json-compact` as SSOT for approval waiting (`--json` only when full-detail debugging fields are required).
25
25
  - `false`: continue without label approval.
26
26
  - `true`: wait for label-token approval (`A`, `A OK`) before execution.
27
27
  - Default execution model is **main-agent orchestration + selective sub-agent execution**. Keep short steps (spec/plan/tasks approvals, issue/PR metadata sync) in the main agent, and delegate long-running loops (`task_execute`, `code_review`, `review_fix_commit`, `pre_pr_review`, auto-run) to a sub-agent.
28
- - If sub-agent execution is unavailable, the main agent must run the same loop directly with the same approval/gate rules (degrade by skipping delegation only).
29
- - If `context --json` exposes `autoRun.available=true`, you may use `autoRun.command` to continue automatically until approval-required categories are reached.
30
- - For long-running auto execution, start with `flow <feature> --auto-... --start-auto --json` and prefer `autoRun.run.resumeCommand` (`flow --resume <RUN_ID>`) after interruption/compression.
31
- - If auto execution stops, treat `autoRun.resume` from `flow --json` as SSOT. After interruption/compression, resume with `autoRun.resume.flowCommand`; if needed, check current state first with `autoRun.resume.contextCommand`.
32
- - Treat `AUTO_MANUAL_REQUIRED` as an automation boundary (instruction-only segment), not an immediate crash. Re-check `context --json` and report whether `approvalRequest.required` is now true.
28
+ - When `agentOrchestration.currentActionShouldDelegate=true` and the selected option is `actionType="command"`, delegation is mandatory: call `spawn_agent` first and do not execute the command directly from the main agent.
29
+ - Main-agent fallback is allowed only when sub-agent execution is unavailable (for example: tool not available, spawn failed, or sub-agent failed before command execution). Before fallback execution, report a one-line fallback reason to the user.
30
+ - If `context --json-compact` exposes `autoRun.available=true`, you may use `autoRun.command` to continue automatically until approval-required categories are reached.
31
+ - For long-running auto execution, start with `flow <feature> --auto-... --start-auto --json-compact` and prefer `autoRun.run.resumeCommand` (`flow --resume <RUN_ID>`) after interruption/compression (`--json` only when full-detail debugging fields are required).
32
+ - If auto execution stops, treat `autoRun.resume` from `flow --json-compact` (or `flow --json`) as SSOT. After interruption/compression, resume with `autoRun.resume.flowCommand`; if needed, check current state first with `autoRun.resume.contextCommand`.
33
+ - Treat `AUTO_MANUAL_REQUIRED` as an automation boundary (instruction-only segment), not an immediate crash. Re-check `context --json-compact` and report whether `approvalRequest.required` is now true.
33
34
  - If the CLI prints commands, copy/paste them. (In standalone setups commands may include `git -C ...` and scopes like `project`/`docs`.)
34
35
  - Follow user-facing response format (including the final status/label block in every reply) from `agents.md` **"Label Response Contract (SSOT)"**.
35
36
  - For approved command options, default to `npx lee-spec-kit flow <slug|F001|F001-slug> --approve <LABEL> --execute` and avoid split `context --approve` / `context --execute --ticket` runs across turns.
@@ -33,14 +33,17 @@
33
33
  ## 🧾 라벨 응닡 계약 (SSOT)
34
34
 
35
35
  - μ‚¬μš©μžμ—κ²Œ λ³΄λ‚΄λŠ” **λͺ¨λ“  μ‘λ‹΅μ˜ λ§ˆμ§€λ§‰**에 ν˜„μž¬ μƒνƒœ + 선택 κ°€λŠ₯ν•œ 라벨을 ν‘œμ‹œν•©λ‹ˆλ‹€.
36
- - κΈ°μ€€ λ°μ΄ν„°λŠ” μ΅œμ‹  `npx lee-spec-kit context --json-compact`λ₯Ό 기본으둜 μ‚¬μš©ν•˜κ³ , 상세 ν•„λ“œκ°€ ν•„μš”ν•  λ•Œλ§Œ `context --json`(λ˜λŠ” `flow --json`)을 μ‚¬μš©ν•©λ‹ˆλ‹€.
37
- - `flow --json`의 auto κ²°κ³Όλ₯Ό μ‚¬μš©ν•  λ•ŒλŠ” `autoRun.resume.flowCommand`λ₯Ό 재개 SSOT둜 μ‚¬μš©ν•©λ‹ˆλ‹€. (μ»¨ν…μŠ€νŠΈ μ••μΆ•/리셋 ν›„ 동일 κ·œμΉ™ 적용)
38
- - `AUTO_MANUAL_REQUIRED`λŠ” μžλ™ν™” 경계 μƒνƒœμ΄λ©° μ‹€νŒ¨ 단정 μ‹ ν˜Έκ°€ μ•„λ‹™λ‹ˆλ‹€. `context --json` μž¬ν™•μΈ ν›„ `approvalRequest.required` κΈ°μ€€μœΌλ‘œ 멈좀/보고λ₯Ό νŒλ‹¨ν•©λ‹ˆλ‹€.
36
+ - κΈ°μ€€ λ°μ΄ν„°λŠ” μ΅œμ‹  `npx lee-spec-kit context --json-compact`λ₯Ό 기본으둜 μ‚¬μš©ν•˜κ³ , 상세 ν•„λ“œκ°€ ν•„μš”ν•  λ•Œλ§Œ `context --json` λ˜λŠ” `flow --json`을 μ‚¬μš©ν•©λ‹ˆλ‹€. (`flow`λŠ” 기본적으둜 `--json-compact` μš°μ„ )
37
+ - `flow --json-compact`(λ˜λŠ” `flow --json`)의 auto κ²°κ³Όλ₯Ό μ‚¬μš©ν•  λ•ŒλŠ” `autoRun.resume.flowCommand`λ₯Ό 재개 SSOT둜 μ‚¬μš©ν•©λ‹ˆλ‹€. (μ»¨ν…μŠ€νŠΈ μ••μΆ•/리셋 ν›„ 동일 κ·œμΉ™ 적용)
38
+ - `AUTO_MANUAL_REQUIRED`λŠ” μžλ™ν™” 경계 μƒνƒœμ΄λ©° μ‹€νŒ¨ 단정 μ‹ ν˜Έκ°€ μ•„λ‹™λ‹ˆλ‹€. `context --json-compact` μž¬ν™•μΈ ν›„ `approvalRequest.required` κΈ°μ€€μœΌλ‘œ 멈좀/보고λ₯Ό νŒλ‹¨ν•©λ‹ˆλ‹€. (상세 디버깅 ν•„λ“œκ°€ ν•„μš”ν•  λ•Œλ§Œ `context --json`)
39
39
  - 라벨 μ„€λͺ…은 `actionOptions[].detail` λ˜λŠ” command `cmd`λ₯Ό **원문 κ·ΈλŒ€λ‘œ** μ‚¬μš©ν•©λ‹ˆλ‹€. (μš”μ•½/μ˜μ—­ κΈˆμ§€)
40
40
  - μ‚¬μš©μžκ°€ λ‹€λ₯Έ μ§ˆλ¬Έμ„ ν•˜λ”λΌλ„, μ‹€ν–‰ κ°€λŠ₯ν•œ 라벨이 있으면 응닡 λ§ˆμ§€λ§‰μ— 동일 블둝을 λ‹€μ‹œ ν‘œμ‹œν•©λ‹ˆλ‹€.
41
41
  - μ‹€ν–‰ κ°€λŠ₯ν•œ 라벨이 μ—†μœΌλ©΄ `선택 κ°€λŠ₯: μ—†μŒ` + `npx lee-spec-kit context` μž¬ν™•μΈμ„ μ•ˆλ‚΄ν•©λ‹ˆλ‹€.
42
42
  - μ‚¬μš©μž μž…λ ₯에 유효 라벨이 μ—†μœΌλ©΄ μ‹€ν–‰ν•˜μ§€ 말고 라벨 선택을 λ‹€μ‹œ μš”μ²­ν•©λ‹ˆλ‹€.
43
43
  - 승인된 command μ˜΅μ…˜ 싀행은 `flow --approve <LABEL> --execute` 1회 ν˜ΈμΆœμ„ 기본으둜 ν•˜λ©°, `context --approve`와 `context --execute --ticket`λ₯Ό ν„΄/μ„Έμ…˜ μ‚¬μ΄λ‘œ λΆ„λ¦¬ν•˜μ§€ μ•ŠμŠ΅λ‹ˆλ‹€.
44
+ - `agentOrchestration.currentActionShouldDelegate=true`이고 μ„ νƒν•œ μ˜΅μ…˜μ΄ `actionType="command"`λ©΄ μœ„μž„μ΄ ν•„μˆ˜μž…λ‹ˆλ‹€. λ¨Όμ € `spawn_agent`λ₯Ό ν˜ΈμΆœν•˜κ³ , ν•΄λ‹Ή λͺ…령을 메인 μ—μ΄μ „νŠΈμ—μ„œ 직접 μ‹€ν–‰ν•˜μ§€ μ•ŠμŠ΅λ‹ˆλ‹€.
45
+ - 메인 μ—μ΄μ „νŠΈ fallback은 μ„œλΈŒ μ—μ΄μ „νŠΈ 싀행이 λΆˆκ°€λŠ₯ν•œ 경우(예: 도ꡬ 미지원, spawn μ‹€νŒ¨, λͺ…λ Ή μ‹€ν–‰ μ „ μ„œλΈŒ μ—μ΄μ „νŠΈ μ‹€νŒ¨)μ—λ§Œ ν—ˆμš©ν•©λ‹ˆλ‹€.
46
+ - fallback을 μ‚¬μš©ν•  λ•ŒλŠ” 메인 μ‹€ν–‰ 전에 fallback μ‚¬μœ λ₯Ό μ‚¬μš©μžμ—κ²Œ ν•œ μ€„λ‘œ λ¨Όμ € μ•Œλ¦½λ‹ˆλ‹€.
44
47
 
45
48
  좜λ ₯ ν˜•μ‹:
46
49
 
@@ -23,13 +23,14 @@ CLIκ°€ κ°€λ¦¬ν‚€λŠ” **Active Task** λ˜λŠ” **`πŸ‘‰ Next Options (Atomic)`의 단
23
23
 
24
24
  - **[DOING] μƒνƒœμΈ νƒœμŠ€ν¬κ°€ μžˆλ‹€λ©΄**: ν•΄λ‹Ή νƒœμŠ€ν¬λ₯Ό μ΅œμš°μ„ μœΌλ‘œ μ™„λ£Œν•˜μ„Έμš”.
25
25
  - νƒœμŠ€ν¬ μƒνƒœ μ „ν™˜ κ·œμΉ™μ€ `tasks.md`의 **"νƒœμŠ€ν¬ κ·œμΉ™"** μ„Ήμ…˜μ„ SSOT둜 λ”°λ¦…λ‹ˆλ‹€.
26
- - 승인 λŒ€κΈ° μ—¬λΆ€λŠ” `context --json`의 `approvalRequest.required`λ₯Ό SSOT둜 λ”°λ¦…λ‹ˆλ‹€. `false`λ©΄ 라벨 승인 없이 μ§„ν–‰ν•˜κ³ , `true`λ©΄ 라벨 κ·œμΉ™(`A`, `A OK`)으둜 승인 ν›„ μ§„ν–‰ν•©λ‹ˆλ‹€.
26
+ - 승인 λŒ€κΈ° μ—¬λΆ€λŠ” `context --json-compact`의 `approvalRequest.required`λ₯Ό SSOT둜 λ”°λ¦…λ‹ˆλ‹€. (`--json`은 상세 디버깅이 ν•„μš”ν•  λ•Œλ§Œ μ‚¬μš©) `false`λ©΄ 라벨 승인 없이 μ§„ν–‰ν•˜κ³ , `true`λ©΄ 라벨 κ·œμΉ™(`A`, `A OK`)으둜 승인 ν›„ μ§„ν–‰ν•©λ‹ˆλ‹€.
27
27
  - κΈ°λ³Έ μ‹€ν–‰ λͺ¨λΈμ€ **메인 μ—μ΄μ „νŠΈ μ˜€μΌ€μŠ€νŠΈλ ˆμ΄μ…˜ + 선택적 μ„œλΈŒ μ—μ΄μ „νŠΈ μ‹€ν–‰**μž…λ‹ˆλ‹€. 짧은 단계(spec/plan/tasks 승인, 이슈/PR 메타 동기화 λ“±)λŠ” 메인 μ—μ΄μ „νŠΈκ°€ 직접 μ²˜λ¦¬ν•˜κ³ , μž₯μ‹œκ°„ 루프(`task_execute`, `code_review`, `review_fix_commit`, `pre_pr_review`, auto-run)λŠ” μ„œλΈŒ μ—μ΄μ „νŠΈμ— μœ„μž„ν•©λ‹ˆλ‹€.
28
- - 단, μ„œλΈŒ μ—μ΄μ „νŠΈλ₯Ό μ‚¬μš©ν•  수 μ—†λŠ” ν™˜κ²½μ΄λ©΄ 메인 μ—μ΄μ „νŠΈκ°€ 같은 κ·œμΉ™/게이트λ₯Ό μœ μ§€ν•œ 채 직접 μ‹€ν–‰ν•©λ‹ˆλ‹€. (λ™μž‘ κ°•λ“±: μœ„μž„λ§Œ μƒλž΅)
29
- - `context --json`에 `autoRun.available=true`κ°€ 있으면 `autoRun.command`λ₯Ό μ‚¬μš©ν•΄ 승인 ν•„μš” μΉ΄ν…Œκ³ λ¦¬ μ „κΉŒμ§€ μžλ™ μ§„ν–‰ν•  수 μžˆμŠ΅λ‹ˆλ‹€.
30
- - μž₯μ‹œκ°„ μžλ™ 싀행이 ν•„μš”ν•˜λ©΄ `flow <feature> --auto-... --start-auto --json`으둜 run idλ₯Ό μƒμ„±ν•˜κ³ , 쀑단/μ••μΆ• ν›„μ—λŠ” `autoRun.run.resumeCommand`(`flow --resume <RUN_ID>`)λ₯Ό μš°μ„  μ‚¬μš©ν•΄ μž¬κ°œν•©λ‹ˆλ‹€.
31
- - auto 싀행이 μ€‘λ‹¨λ˜λ©΄ `flow --json`의 `autoRun.resume`λ₯Ό SSOT둜 λ”°λ¦…λ‹ˆλ‹€. μ»¨ν…μŠ€νŠΈ μ••μΆ•/리셋 ν›„μ—λŠ” `autoRun.resume.flowCommand`둜 μž¬κ°œν•˜κ³ , ν•„μš” μ‹œ `autoRun.resume.contextCommand`둜 μƒνƒœλ₯Ό λ¨Όμ € ν™•μΈν•©λ‹ˆλ‹€.
32
- - `AUTO_MANUAL_REQUIRED`λŠ” μ‹€νŒ¨κ°€ μ•„λ‹ˆλΌ μžλ™ν™” 경계(ν˜„μž¬ instruction-only ꡬ간)μž…λ‹ˆλ‹€. μ¦‰μ‹œ 였λ₯˜λ‘œ λ‹¨μ •ν•˜μ§€ 말고 ν˜„μž¬ `context --json`을 λ‹€μ‹œ ν™•μΈν•œ λ’€ 승인 ν•„μš” μ—¬λΆ€(`approvalRequest.required`)λ₯Ό λ³΄κ³ ν•©λ‹ˆλ‹€.
28
+ - `agentOrchestration.currentActionShouldDelegate=true`이고 μ„ νƒν•œ μ˜΅μ…˜μ΄ `actionType="command"`λ©΄ μœ„μž„μ΄ ν•„μˆ˜μž…λ‹ˆλ‹€. λ¨Όμ € `spawn_agent`λ₯Ό ν˜ΈμΆœν•˜κ³ , ν•΄λ‹Ή λͺ…령을 메인 μ—μ΄μ „νŠΈμ—μ„œ 직접 μ‹€ν–‰ν•˜μ§€ μ•ŠμŠ΅λ‹ˆλ‹€.
29
+ - 메인 μ—μ΄μ „νŠΈ fallback은 μ„œλΈŒ μ—μ΄μ „νŠΈ 싀행이 λΆˆκ°€λŠ₯ν•œ 경우(예: 도ꡬ 미지원, spawn μ‹€νŒ¨, λͺ…λ Ή μ‹€ν–‰ μ „ μ„œλΈŒ μ—μ΄μ „νŠΈ μ‹€νŒ¨)μ—λ§Œ ν—ˆμš©ν•©λ‹ˆλ‹€. fallback μ‹€ν–‰ μ „μ—λŠ” μ‚¬μœ λ₯Ό μ‚¬μš©μžμ—κ²Œ ν•œ μ€„λ‘œ λ¨Όμ € μ•Œλ¦½λ‹ˆλ‹€.
30
+ - `context --json-compact`에 `autoRun.available=true`κ°€ 있으면 `autoRun.command`λ₯Ό μ‚¬μš©ν•΄ 승인 ν•„μš” μΉ΄ν…Œκ³ λ¦¬ μ „κΉŒμ§€ μžλ™ μ§„ν–‰ν•  수 μžˆμŠ΅λ‹ˆλ‹€.
31
+ - μž₯μ‹œκ°„ μžλ™ 싀행이 ν•„μš”ν•˜λ©΄ `flow <feature> --auto-... --start-auto --json-compact`으둜 run idλ₯Ό μƒμ„±ν•˜κ³ , 쀑단/μ••μΆ• ν›„μ—λŠ” `autoRun.run.resumeCommand`(`flow --resume <RUN_ID>`)λ₯Ό μš°μ„  μ‚¬μš©ν•΄ μž¬κ°œν•©λ‹ˆλ‹€. (상세 디버깅 ν•„λ“œκ°€ ν•„μš”ν•  λ•Œλ§Œ `--json`)
32
+ - auto 싀행이 μ€‘λ‹¨λ˜λ©΄ `flow --json-compact`(λ˜λŠ” `flow --json`)의 `autoRun.resume`λ₯Ό SSOT둜 λ”°λ¦…λ‹ˆλ‹€. μ»¨ν…μŠ€νŠΈ μ••μΆ•/리셋 ν›„μ—λŠ” `autoRun.resume.flowCommand`둜 μž¬κ°œν•˜κ³ , ν•„μš” μ‹œ `autoRun.resume.contextCommand`둜 μƒνƒœλ₯Ό λ¨Όμ € ν™•μΈν•©λ‹ˆλ‹€.
33
+ - `AUTO_MANUAL_REQUIRED`λŠ” μ‹€νŒ¨κ°€ μ•„λ‹ˆλΌ μžλ™ν™” 경계(ν˜„μž¬ instruction-only ꡬ간)μž…λ‹ˆλ‹€. μ¦‰μ‹œ 였λ₯˜λ‘œ λ‹¨μ •ν•˜μ§€ 말고 ν˜„μž¬ `context --json-compact`λ₯Ό λ‹€μ‹œ ν™•μΈν•œ λ’€ 승인 ν•„μš” μ—¬λΆ€(`approvalRequest.required`)λ₯Ό λ³΄κ³ ν•©λ‹ˆλ‹€.
33
34
  - CLIκ°€ λͺ…λ Ήμ–΄λ₯Ό 좜λ ₯ν•˜λ©΄ **κ·ΈλŒ€λ‘œ 볡사해 μ‹€ν–‰**ν•©λ‹ˆλ‹€. (standalone ν™˜κ²½μ—μ„œλ„ 레포 κ²½λ‘œκ°€ 포함될 수 μžˆμŠ΅λ‹ˆλ‹€)
34
35
  - μ‚¬μš©μž 응닡 포맷(λ§€ 응닡 말미의 μƒνƒœ/라벨 ν‘œμ‹œ 포함)은 `agents.md`의 **"라벨 응닡 계약 (SSOT)"** 을 λ”°λ¦…λ‹ˆλ‹€.
35
36
  - 승인된 command μ˜΅μ…˜ 싀행은 `npx lee-spec-kit flow <slug|F001|F001-slug> --approve <LABEL> --execute`λ₯Ό 기본으둜 μ‚¬μš©ν•˜κ³ , `context --approve`와 `context --execute --ticket` 뢄리 싀행은 μ§€μ–‘ν•©λ‹ˆλ‹€.