lee-spec-kit 0.6.12 → 0.6.14

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.
Files changed (32) hide show
  1. package/README.en.md +9 -6
  2. package/README.md +8 -5
  3. package/dist/index.js +709 -51
  4. package/package.json +1 -1
  5. package/templates/en/common/agents/agents.md +5 -3
  6. package/templates/en/common/agents/issue-template.md +1 -0
  7. package/templates/en/common/agents/pr-template.md +1 -0
  8. package/templates/en/common/agents/skills/create-feature.md +1 -0
  9. package/templates/en/common/agents/skills/create-issue.md +17 -10
  10. package/templates/en/common/agents/skills/create-pr.md +17 -9
  11. package/templates/en/common/agents/skills/execute-task.md +23 -11
  12. package/templates/en/common/features/README.md +17 -1
  13. package/templates/en/common/features/feature-base/decisions.md +18 -0
  14. package/templates/en/common/features/feature-base/issue.md +34 -0
  15. package/templates/en/common/features/feature-base/plan.md +1 -1
  16. package/templates/en/common/features/feature-base/pr.md +35 -0
  17. package/templates/en/common/features/feature-base/spec.md +1 -1
  18. package/templates/en/common/features/feature-base/tasks.md +8 -3
  19. package/templates/ko/common/agents/agents.md +5 -3
  20. package/templates/ko/common/agents/issue-template.md +1 -0
  21. package/templates/ko/common/agents/pr-template.md +1 -0
  22. package/templates/ko/common/agents/skills/create-feature.md +1 -0
  23. package/templates/ko/common/agents/skills/create-issue.md +17 -10
  24. package/templates/ko/common/agents/skills/create-pr.md +17 -9
  25. package/templates/ko/common/agents/skills/execute-task.md +14 -2
  26. package/templates/ko/common/features/README.md +17 -1
  27. package/templates/ko/common/features/feature-base/decisions.md +18 -0
  28. package/templates/ko/common/features/feature-base/issue.md +34 -0
  29. package/templates/ko/common/features/feature-base/plan.md +1 -1
  30. package/templates/ko/common/features/feature-base/pr.md +35 -0
  31. package/templates/ko/common/features/feature-base/spec.md +1 -1
  32. package/templates/ko/common/features/feature-base/tasks.md +8 -3
@@ -1,6 +1,7 @@
1
1
  # Pull Request 생성 프로세스
2
2
 
3
3
  Pull Request를 생성할 때 따르는 가이드입니다.
4
+ 실행 상태 SSOT는 Feature 폴더의 `pr.md`입니다.
4
5
 
5
6
  ---
6
7
 
@@ -15,14 +16,14 @@ Pull Request를 생성할 때 따르는 가이드입니다.
15
16
 
16
17
  ## 단계
17
18
 
18
- ### 1. PR 본문 템플릿 준비
19
+ ### 1. `pr.md` 본문 초안 준비
19
20
 
20
21
  > 📖 **이번 세션에 아직 읽지 않았다면 `docs get`으로 절차/템플릿을 읽고, 이미 읽은 동일 문서는 재호출하지 않은 채 본문 템플릿을 생성해 기준으로 사용하세요.**
21
22
 
22
23
  ```bash
23
24
  # 1) 절차/템플릿 정책 확인 (이번 세션 미확인 문서만)
24
25
  npx lee-spec-kit docs get create-pr --json
25
- npx lee-spec-kit docs get pr-template --json
26
+ npx lee-spec-kit docs get pr-doc --json
26
27
 
27
28
  # 2) 본문 템플릿 생성 (원격 작업 아님)
28
29
  npx lee-spec-kit github pr F001 --json
@@ -31,9 +32,9 @@ npx lee-spec-kit github pr F001 --json
31
32
  # - 자동 정책(기본): --screenshots auto --mermaid auto
32
33
  ```
33
34
 
34
- `docs get pr-template --json` 출력은 섹션 정책으로 보고,
35
- `github pr --json`의 `body`를 우선 PR 본문 템플릿으로 사용하세요.
36
- 필요하면 `bodyFile` 경로 파일을 함께 참고하세요.
35
+ `docs get pr-doc --json` 출력은 문서 구조 정책으로 보고,
36
+ `github pr --json`의 `body`를 참고해 `pr.md` 초안을 보완하세요.
37
+ 실제 진행 상태는 `pr.md`의 `상태(Draft | Ready)`를 사용합니다.
37
38
 
38
39
  | 항목 | 형식 |
39
40
  | ------ | ---------------------------------- |
@@ -124,19 +125,20 @@ echo \"![](https://github.com/${REPO}/releases/download/${TAG}/ui-1.png)\"
124
125
 
125
126
  - PR 본문에 Mermaid **`sequenceDiagram`**을 작성하고, 생성된 본문 템플릿 형식과 일치하게 유지합니다.
126
127
 
127
- ### 4. 사용자 확인 요청
128
+ ### 4. 사용자 확인 요청 + `Ready` 전환
128
129
 
129
130
  > 🚨 **사용자 확인 필수**
130
131
 
131
132
  PR 생성 전 다음 내용을 **코드블록으로** 사용자에게 공유하고 **명시적 승인(OK)** 대기:
132
133
 
133
134
  - 제목
134
- - 본문 전체 템플릿 (`body` 기준)
135
+ - 본문 전체 템플릿 (`pr.md` 기준)
135
136
  - 라벨(최소 1개, 비워둘 수 없음)
136
137
 
137
- 승인/생성 전에 생성된 본문 템플릿의 변경 사항/테스트 섹션을 실제 작업 기준으로 보완하세요.
138
+ 승인/생성 전에 `pr.md`의 변경 사항/테스트 섹션을 실제 작업 기준으로 보완하세요.
139
+ 승인 후 `pr.md` 상태를 `Ready`로 변경하세요.
138
140
 
139
- ### 5. PR 생성
141
+ ### 5. PR 생성 (`pr.md`가 `Ready`일 때)
140
142
 
141
143
  ```bash
142
144
  gh pr create \
@@ -150,6 +152,11 @@ gh pr create \
150
152
  npx lee-spec-kit github pr F001 --create --confirm OK --labels enhancement
151
153
  ```
152
154
 
155
+ 생성 후:
156
+ - 생성된 PR 링크를 `pr.md`와 `tasks.md`에 기록
157
+ - PR 상태를 `Review`로 기록/유지
158
+ - `pr.md` 상태는 `Ready`로 유지 (생성/머지 상태는 PR 링크 + `PR 상태`로 관리)
159
+
153
160
  ---
154
161
 
155
162
  ## 주의사항
@@ -191,3 +198,4 @@ PR 본문의 파일 링크는 **현재 브랜치명**을 사용:
191
198
 
192
199
  - **본문 템플릿 생성기**: `npx lee-spec-kit github pr <feature-name>`
193
200
  - **승인 규칙**: 제목/본문/라벨 공유 후 `--create --confirm OK` 실행
201
+ - **실행 상태 SSOT**: `docs/features/.../<feature>/pr.md`
@@ -25,6 +25,7 @@ CLI가 가리키는 **Active Task** 또는 **`👉 Next Options (Atomic)`의 단
25
25
  - 태스크 상태 전환/승인 규칙은 `tasks.md`의 **"태스크 규칙"** 섹션을 SSOT로 따릅니다. (예: `[TODO]→[DOING]`, `[DOING]→[DONE]` 시점의 OK)
26
26
  - CLI가 명령어를 출력하면 **그대로 복사해 실행**합니다. (standalone 환경에서도 레포 경로가 포함될 수 있습니다)
27
27
  - 사용자 응답 포맷(매 응답 말미의 상태/라벨 표시 포함)은 `agents.md`의 **"라벨 응답 계약 (SSOT)"** 을 따릅니다.
28
+ - 승인된 command 옵션 실행은 `npx lee-spec-kit flow <slug|F001|F001-slug> --approve <LABEL> --execute`를 기본으로 사용하고, `context --approve`와 `context --execute --ticket` 분리 실행은 지양합니다.
28
29
 
29
30
  ### 3단계: 기록 및 반복 (Record & Loop)
30
31
 
@@ -42,13 +43,24 @@ CLI가 가리키는 **Active Task** 또는 **`👉 Next Options (Atomic)`의 단
42
43
  - 데이터 구조/파일 구조/CLI 출력 규칙이 바뀌었다
43
44
  - “나중에 보면 헷갈릴 것 같은” 결정이 있었다
44
45
 
45
- 작성 형식은 Feature의 `decisions.md` 템플릿을 따르세요. (Context/Options/Decision/Rationale/Consequences)
46
+ 작성 시점 규칙:
47
+
48
+ - 태스크를 `[DOING]`으로 전환할 때 `Context/Constraints`와 `Trace(초기 가설)`를 1~3줄로 먼저 기록합니다.
49
+ - 태스크를 `[DONE]`으로 전환하기 전에 `Options/Decision/Rationale`를 최종화하고 `Trace(확정 근거)`를 보강합니다.
50
+ - PR 머지 후 `Trace(머지 후 확인)`에 실제 결과/영향을 1~2줄로 추가합니다.
51
+
52
+ 증거 링크 규칙:
53
+
54
+ - 모든 ADR에는 최소 1개 이상의 Evidence 링크(커밋/PR/테스트 로그 중 하나 이상)를 남깁니다.
55
+ - 가능하면 `Commit`, `PR`, `Test/Log` 3가지를 모두 채우고, 미해당 항목은 `N/A`로 명시합니다.
56
+
57
+ 최종 형식은 Feature의 `decisions.md` 템플릿을 따릅니다. (Context/Constraints/Options/Decision/Rationale/Trace/Evidence/Consequences)
46
58
 
47
59
  #### 3-2) 태스크/체크리스트 업데이트 + 커밋
48
60
 
49
61
  1. 작업이 끝나면 결과/검증을 사용자에게 공유해 승인(OK)을 받은 뒤, 해당 태스크의 상태를 `[DONE]`으로 변경하고 `Acceptance/Checklist` 항목을 `[x]`로 체크합니다.
50
62
  2. **한 번에 하나의 태스크만** `[DONE]` 처리합니다. (태스크 2개 이상을 한 번에 완료/커밋으로 묶지 않기)
51
- 3. `tasks.md`의 테스트 실행 기록은 명령어별 1개 행만 유지하고, 같은 명령어 재실행 시 시간/결과를 갱신합니다. (중복 누적 금지, 시간 형식: 로컬 `YYYY-MM-DD HH-MM`)
63
+ 3. `tasks.md`의 테스트 실행 기록은 명령어별 1개 행만 유지하고, 같은 명령어 재실행 시 날짜/결과를 갱신합니다. (중복 누적 금지, 날짜 형식: 로컬 `YYYY-MM-DD`)
52
64
  4. 커밋을 생성합니다 (코드 커밋 + 문서 커밋). 태스크 단위로 커밋이 남아야 합니다.
53
65
  - `context`에 `[확인 필요]`가 보이면, **커밋/푸시 같은 원격 작업은 사용자에게 커밋 메시지/포함 파일을 공유하고 OK를 받은 뒤** 실행합니다.
54
66
  5. 모든 태스크가 `[DONE]`가 되면, "완료 조건" 체크리스트를 사용자에게 공유하고 **최종 승인(OK)** 을 받은 뒤 체크합니다. (특히 **최종 사용자 승인(OK) 완료** 항목)
@@ -13,6 +13,8 @@ features/
13
13
  │ ├── spec.md
14
14
  │ ├── plan.md
15
15
  │ ├── tasks.md
16
+ │ ├── issue.md
17
+ │ ├── pr.md
16
18
  │ └── decisions.md
17
19
  ├── (single) F00X-{name}/
18
20
  └── (multi) {component}/F00X-{name}/
@@ -58,6 +60,18 @@ npx lee-spec-kit status --write
58
60
 
59
61
  ---
60
62
 
63
+ ## 상태 용어 정리
64
+
65
+ | 구분 | 필드 | 값 |
66
+ | --- | --- | --- |
67
+ | 문서 상태 | `spec.md`/`plan.md`의 `상태`, `tasks.md`의 `문서 상태` | `Draft` \| `Review` \| `Approved` |
68
+ | 이슈 문서 상태 | `issue.md`의 `상태` | `Draft` \| `Ready` |
69
+ | PR 문서 상태 | `pr.md`의 `상태` | `Draft` \| `Ready` |
70
+ | PR 리뷰 상태 | `tasks.md`/`pr.md`의 `PR 상태` | `Review` \| `Approved` |
71
+ | Pre-PR 리뷰 상태 | `tasks.md`의 `PR 전 리뷰` | `Pending` \| `Done` |
72
+
73
+ ---
74
+
61
75
  ## 각 파일 역할
62
76
 
63
77
  | 파일 | 역할 | 작성 시점 |
@@ -65,4 +79,6 @@ npx lee-spec-kit status --write
65
79
  | `spec.md` | **무엇을, 왜** 만드는지 | 기능 정의 시 |
66
80
  | `plan.md` | **어떻게** 만드는지 (기술) | 스펙 승인 후 |
67
81
  | `tasks.md` | 구체적인 작업 목록 | 계획 승인 후 |
68
- | `decisions.md` | 기술 결정 기록 (ADR) | 개발 수시로 |
82
+ | `issue.md` | 이슈 초안 + 이슈 상태(`Draft/Ready`) | 이슈 생성 전/생성 |
83
+ | `pr.md` | PR 초안 + PR 상태(`Draft/Ready`) | PR 생성 전/생성 시 |
84
+ | `decisions.md` | 기술 결정 + 판단 근거(Trace) + 증거 링크(ADR) | 개발 중 수시로 (DOING 시작 / DONE 직전 / 머지 후) |
@@ -7,12 +7,30 @@
7
7
 
8
8
  > 형식: `D{번호}: {결정 제목} ({YYYY-MM-DD})`
9
9
 
10
+ 기록 원칙:
11
+
12
+ - 모든 ADR은 **Decision(무엇을 선택했는가)** + **Trace(어떻게 고민했고 무엇을 확인했는가)** 를 함께 남깁니다.
13
+ - 작성 타이밍을 고정합니다.
14
+ - 태스크 시작(`[TODO] -> [DOING]`): `Context/Constraints`와 `Trace(초기 가설)`를 1~3줄로 먼저 기록
15
+ - 태스크 완료 직전(`[DOING] -> [DONE]`): `Options/Decision/Rationale`를 최종화하고 `Trace`를 보강
16
+ - PR 머지 후: 실제 결과/영향을 `Trace(머지 후 확인)`에 1~2줄 추가
17
+ - 모든 ADR에는 최소 1개 이상의 **Evidence 링크**(커밋/PR/테스트 로그 중 하나 이상)를 남깁니다.
18
+
10
19
  ---
11
20
 
12
21
  ## D001: {결정 제목} ({YYYY-MM-DD})
13
22
 
14
23
  - **Context**: 문제 상황 또는 배경
24
+ - **Constraints**: 제약 조건 (시간/기술/운영/호환성)
15
25
  - **Options**: 고려한 대안들
16
26
  - **Decision**: 최종 선택
17
27
  - **Rationale**: 선택 이유
28
+ - **Trace**:
29
+ - **DOING 시작 시점**: 초기 판단/가설
30
+ - **DONE 전 확정 시점**: 선택 근거 최종화
31
+ - **머지 후 확인**: 실제 결과/영향
32
+ - **Evidence**:
33
+ - **Commit**: 커밋 해시 또는 링크
34
+ - **PR**: PR 링크
35
+ - **Test/Log**: 테스트 결과/로그/스크린샷 경로
18
36
  - **Consequences**: 결과 및 영향 (선택사항)
@@ -0,0 +1,34 @@
1
+ # Issue Draft: {기능명}
2
+
3
+ ## 메타데이터
4
+
5
+ - **상태**: Draft | Ready
6
+ - **이슈 번호**: #{이슈번호}
7
+ - **제목**: {기능명}
8
+ - **라벨**: enhancement
9
+ - **작성일**: {YYYY-MM-DD}
10
+
11
+ ## 개요
12
+
13
+ - 문제/배경:
14
+ - 기대 효과:
15
+
16
+ ## 목표
17
+
18
+ - [ ] (목표 1)
19
+ - [ ] (목표 2)
20
+
21
+ ## 완료 기준
22
+
23
+ - [ ] (검증 가능한 완료 기준 1)
24
+ - [ ] (검증 가능한 완료 기준 2)
25
+
26
+ ## 제외 범위
27
+
28
+ - (이번 이슈에서 다루지 않는 내용)
29
+
30
+ ## 관련 문서
31
+
32
+ - Spec: `./spec.md`
33
+ - Plan: `./plan.md`
34
+ - Tasks: `./tasks.md`
@@ -9,7 +9,7 @@
9
9
  - **기능 ID**: F{번호}
10
10
  - **대상 레포**: {{projectName}}-{component}
11
11
  - **작성일**: {YYYY-MM-DD}
12
- - **상태**: Review | Approved
12
+ - **상태**: Draft | Review | Approved
13
13
 
14
14
  ---
15
15
 
@@ -0,0 +1,35 @@
1
+ # PR Draft: {기능명}
2
+
3
+ ## 메타데이터
4
+
5
+ - **상태**: Draft | Ready
6
+ - **PR**: -
7
+ - **PR 상태**: -
8
+ - 값: Review | Approved
9
+ - **Base**: main
10
+ - **작성일**: {YYYY-MM-DD}
11
+
12
+ ## 개요
13
+
14
+ - 변경 목적:
15
+ - 사용자 영향:
16
+
17
+ ## 변경 사항
18
+
19
+ - [ ] (핵심 변경 1)
20
+ - [ ] (핵심 변경 2)
21
+
22
+ ## 테스트
23
+
24
+ - [ ] (실행한 테스트 1)
25
+ - [ ] (실행한 테스트 2)
26
+
27
+ ## 스크린샷 / 다이어그램
28
+
29
+ - (필요 시 첨부)
30
+
31
+ ## 관련 문서
32
+
33
+ - Spec: `./spec.md`
34
+ - Tasks: `./tasks.md`
35
+ - Decisions: `./decisions.md`
@@ -11,7 +11,7 @@
11
11
  - **대상 레포**: {{projectName}}-{component}
12
12
  - **이슈 번호**: #{이슈번호}
13
13
  - **작성일**: {YYYY-MM-DD}
14
- - **상태**: Review | Approved
14
+ - **상태**: Draft | Review | Approved
15
15
 
16
16
  ---
17
17
 
@@ -12,7 +12,7 @@
12
12
 
13
13
  ## GitHub Issue
14
14
 
15
- - **문서 상태**: Review | Approved
15
+ - **문서 상태**: Draft | Review | Approved
16
16
  - **레포**: {{projectName}}-{component}
17
17
  - **Issue**: #{이슈번호}
18
18
  - **브랜치**: `feat/{이슈번호}-{기능명}`
@@ -22,6 +22,10 @@
22
22
  - 값: Review | Approved
23
23
  - **PR 전 리뷰**: Pending | Done
24
24
  - 사전 코드리뷰 완료 후 `Done`으로 변경
25
+ - **PR 전 리뷰 Findings**: major=0, minor=0
26
+ - 사전 리뷰 최종 결과에 맞게 major/minor 건수를 갱신
27
+ - **PR 전 리뷰 Evidence**: -
28
+ - 예: 리뷰 노트 링크, 로그 경로, 문서 경로
25
29
 
26
30
  ---
27
31
 
@@ -34,6 +38,7 @@
34
38
 
35
39
  ```markdown
36
40
  - [TODO][P1] T-F{번호}-01 {태스크 제목}
41
+ - Date: YYYY-MM-DD
37
42
  - Acceptance:
38
43
  - (검증 조건)
39
44
  - Checklist:
@@ -53,8 +58,8 @@
53
58
  ### 테스트 실행 기록
54
59
 
55
60
  > 명령어당 1개 행만 유지합니다. 같은 명령어를 다시 실행하면 새 행 추가 대신 기존 행의 시간/결과를 갱신하세요.
56
- > `마지막 실행`은 `YYYY-MM-DD HH-MM` 형식(로컬 시간)으로 기록하세요.
61
+ > `마지막 실행`은 `YYYY-MM-DD` 형식(로컬 날짜)으로 기록하세요.
57
62
 
58
- | 명령어 | 마지막 실행(로컬, YYYY-MM-DD HH-MM) | 결과 |
63
+ | 명령어 | 마지막 실행(로컬, YYYY-MM-DD) | 결과 |
59
64
  | --- | --- | --- |
60
65
  | `{실행한 테스트 명령어}` | `-` | `{PASS/FAIL 요약}` |