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.
- package/README.en.md +9 -6
- package/README.md +8 -5
- package/dist/index.js +709 -51
- package/package.json +1 -1
- package/templates/en/common/agents/agents.md +5 -3
- package/templates/en/common/agents/issue-template.md +1 -0
- package/templates/en/common/agents/pr-template.md +1 -0
- package/templates/en/common/agents/skills/create-feature.md +1 -0
- package/templates/en/common/agents/skills/create-issue.md +17 -10
- package/templates/en/common/agents/skills/create-pr.md +17 -9
- package/templates/en/common/agents/skills/execute-task.md +23 -11
- package/templates/en/common/features/README.md +17 -1
- package/templates/en/common/features/feature-base/decisions.md +18 -0
- package/templates/en/common/features/feature-base/issue.md +34 -0
- package/templates/en/common/features/feature-base/plan.md +1 -1
- package/templates/en/common/features/feature-base/pr.md +35 -0
- package/templates/en/common/features/feature-base/spec.md +1 -1
- package/templates/en/common/features/feature-base/tasks.md +8 -3
- package/templates/ko/common/agents/agents.md +5 -3
- package/templates/ko/common/agents/issue-template.md +1 -0
- package/templates/ko/common/agents/pr-template.md +1 -0
- package/templates/ko/common/agents/skills/create-feature.md +1 -0
- package/templates/ko/common/agents/skills/create-issue.md +17 -10
- package/templates/ko/common/agents/skills/create-pr.md +17 -9
- package/templates/ko/common/agents/skills/execute-task.md +14 -2
- package/templates/ko/common/features/README.md +17 -1
- package/templates/ko/common/features/feature-base/decisions.md +18 -0
- package/templates/ko/common/features/feature-base/issue.md +34 -0
- package/templates/ko/common/features/feature-base/plan.md +1 -1
- package/templates/ko/common/features/feature-base/pr.md +35 -0
- package/templates/ko/common/features/feature-base/spec.md +1 -1
- 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.
|
|
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-
|
|
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-
|
|
35
|
-
`github pr --json`의 `body`를
|
|
36
|
-
|
|
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 \"\"
|
|
|
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
|
-
- 본문 전체 템플릿 (`
|
|
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
|
-
작성
|
|
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개 행만 유지하고, 같은 명령어 재실행 시
|
|
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
|
-
| `
|
|
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`
|
|
@@ -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`
|
|
@@ -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
|
|
61
|
+
> `마지막 실행`은 `YYYY-MM-DD` 형식(로컬 날짜)으로 기록하세요.
|
|
57
62
|
|
|
58
|
-
| 명령어 | 마지막 실행(로컬, YYYY-MM-DD
|
|
63
|
+
| 명령어 | 마지막 실행(로컬, YYYY-MM-DD) | 결과 |
|
|
59
64
|
| --- | --- | --- |
|
|
60
65
|
| `{실행한 테스트 명령어}` | `-` | `{PASS/FAIL 요약}` |
|