lee-spec-kit 0.1.8 → 0.2.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/dist/index.js +74 -48
- package/package.json +1 -1
- package/templates/en/{fullstack → common}/agents/git-workflow.md +26 -34
- package/templates/en/{single → common}/agents/issue-template.md +10 -5
- package/templates/en/{single → common}/agents/pr-template.md +9 -2
- package/templates/en/common/agents/skills/create-feature.md +53 -0
- package/templates/en/common/agents/skills/create-issue.md +52 -0
- package/templates/en/common/agents/skills/create-pr.md +97 -0
- package/templates/en/common/agents/skills/execute-task.md +86 -0
- package/templates/en/fullstack/agents/agents.md +11 -26
- package/templates/en/single/agents/agents.md +8 -21
- package/templates/ko/{fullstack → common}/agents/git-workflow.md +20 -73
- package/templates/ko/{fullstack → common}/agents/issue-template.md +10 -5
- package/templates/ko/{fullstack → common}/agents/pr-template.md +9 -2
- package/templates/ko/common/agents/skills/create-feature.md +53 -0
- package/templates/ko/common/agents/skills/create-issue.md +52 -0
- package/templates/ko/common/agents/skills/create-pr.md +97 -0
- package/templates/ko/common/agents/skills/execute-task.md +86 -0
- package/templates/ko/fullstack/agents/agents.md +11 -33
- package/templates/ko/single/agents/agents.md +13 -21
- package/templates/en/fullstack/agents/constitution.md +0 -80
- package/templates/en/fullstack/agents/issue-template.md +0 -110
- package/templates/en/fullstack/agents/pr-template.md +0 -96
- package/templates/en/single/agents/custom.md +0 -29
- package/templates/en/single/agents/git-workflow.md +0 -170
- package/templates/ko/single/agents/constitution.md +0 -80
- package/templates/ko/single/agents/custom.md +0 -29
- package/templates/ko/single/agents/git-workflow.md +0 -170
- package/templates/ko/single/agents/issue-template.md +0 -114
- package/templates/ko/single/agents/pr-template.md +0 -110
- /package/templates/en/{single → common}/agents/constitution.md +0 -0
- /package/templates/en/{fullstack → common}/agents/custom.md +0 -0
- /package/templates/ko/{fullstack → common}/agents/constitution.md +0 -0
- /package/templates/ko/{fullstack → common}/agents/custom.md +0 -0
|
@@ -0,0 +1,86 @@
|
|
|
1
|
+
# Task Execution Process
|
|
2
|
+
|
|
3
|
+
Guide for executing tasks from tasks.md.
|
|
4
|
+
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
## Steps
|
|
8
|
+
|
|
9
|
+
### 1. Check Task
|
|
10
|
+
|
|
11
|
+
- Find next task in `tasks.md`
|
|
12
|
+
- Select task with `[TODO]` status
|
|
13
|
+
- ⚠️ **Verify current branch matches Feature branch** (`feat/{issue-number}-{feature-name}`)
|
|
14
|
+
|
|
15
|
+
### 2. Share Execution Plan
|
|
16
|
+
|
|
17
|
+
> 🚨 **User Approval Required**
|
|
18
|
+
|
|
19
|
+
Share execution plan with user before starting and wait for approval
|
|
20
|
+
|
|
21
|
+
### 3. Update Status
|
|
22
|
+
|
|
23
|
+
| Timing | Status Transition |
|
|
24
|
+
| ----------- | -------------------- |
|
|
25
|
+
| On start | `[TODO]` → `[DOING]` |
|
|
26
|
+
| On complete | `[DOING]` → `[DONE]` |
|
|
27
|
+
|
|
28
|
+
Record date (YYYY-MM-DD) with each status change
|
|
29
|
+
|
|
30
|
+
### 4. Commit After Task Completion
|
|
31
|
+
|
|
32
|
+
> 🚨 **User Approval Required**
|
|
33
|
+
|
|
34
|
+
Before committing, share and wait for approval:
|
|
35
|
+
|
|
36
|
+
- Commit message
|
|
37
|
+
- Files to be included
|
|
38
|
+
|
|
39
|
+
```bash
|
|
40
|
+
git add .
|
|
41
|
+
git commit -m "{type}(#{issue-number}): {task description}"
|
|
42
|
+
```
|
|
43
|
+
|
|
44
|
+
---
|
|
45
|
+
|
|
46
|
+
## Handling Requests Outside tasks.md
|
|
47
|
+
|
|
48
|
+
When user requests work not in tasks.md:
|
|
49
|
+
|
|
50
|
+
1. Ask if it should be added to tasks.md
|
|
51
|
+
2. If approved: Add to tasks.md then execute
|
|
52
|
+
3. If declined: Proceed as temporary work (still included in commit)
|
|
53
|
+
|
|
54
|
+
---
|
|
55
|
+
|
|
56
|
+
## 🚨 Never Modify Completed Tasks
|
|
57
|
+
|
|
58
|
+
> ⚠️ **Tasks in `[DONE]` status must NEVER be modified.**
|
|
59
|
+
|
|
60
|
+
### Principle
|
|
61
|
+
|
|
62
|
+
- Completed tasks are preserved for **history/record purposes**
|
|
63
|
+
- If modifications are needed, **add a new task**
|
|
64
|
+
|
|
65
|
+
### When Modifications Are Needed
|
|
66
|
+
|
|
67
|
+
1. Keep the existing task as-is
|
|
68
|
+
2. Add new task: `T{next-number}: {modification description}`
|
|
69
|
+
3. Perform changes in the new task
|
|
70
|
+
|
|
71
|
+
**Example:**
|
|
72
|
+
|
|
73
|
+
```markdown
|
|
74
|
+
## Tasks
|
|
75
|
+
|
|
76
|
+
- [DONE] T001: Implement user authentication (2026-01-05)
|
|
77
|
+
- [DONE] T002: Create login page (2026-01-06)
|
|
78
|
+
- [TODO] T003: Fix T002 - Add password validation ← New task for modifications
|
|
79
|
+
```
|
|
80
|
+
|
|
81
|
+
---
|
|
82
|
+
|
|
83
|
+
## Reference Documents
|
|
84
|
+
|
|
85
|
+
- **Git Workflow**: `git-workflow.md`
|
|
86
|
+
- **Commit Convention**: `git-workflow.md` > "Commit Convention" section
|
|
@@ -75,35 +75,20 @@ docs/
|
|
|
75
75
|
|
|
76
76
|
## Request Type Processes
|
|
77
77
|
|
|
78
|
-
|
|
78
|
+
> 📖 Refer to `skills/` folder for detailed process guides.
|
|
79
79
|
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
80
|
+
| Process | Guide |
|
|
81
|
+
| -------------- | -------------------------- |
|
|
82
|
+
| New Feature | `skills/create-feature.md` |
|
|
83
|
+
| GitHub Issue | `skills/create-issue.md` |
|
|
84
|
+
| Pull Request | `skills/create-pr.md` |
|
|
85
|
+
| Task Execution | `skills/execute-task.md` |
|
|
85
86
|
|
|
86
|
-
###
|
|
87
|
+
### Additional Rules (Fullstack)
|
|
87
88
|
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
4. Decompose into tasks after user approval
|
|
92
|
-
|
|
93
|
-
### 3. Task Execution
|
|
94
|
-
|
|
95
|
-
1. Write tasks in `tasks.md`
|
|
96
|
-
2. Execute after user approval
|
|
97
|
-
3. Transition status: `[TODO]` → `[DOING]` → `[DONE]`
|
|
98
|
-
4. Commit immediately after task completion
|
|
99
|
-
|
|
100
|
-
### 4. Handling Requests Outside Tasks
|
|
101
|
-
|
|
102
|
-
> When user requests **work not in tasks.md**:
|
|
103
|
-
|
|
104
|
-
1. Ask user if this should be **added to tasks.md**
|
|
105
|
-
2. If approved: Add to tasks.md then execute
|
|
106
|
-
3. If declined: Proceed as temporary work (still included in commit)
|
|
89
|
+
- **Identify target repo**: Determine BE or FE before feature creation
|
|
90
|
+
- **Write plan.md**: Tech stack and architecture decisions after spec approval
|
|
91
|
+
- **Record in decisions.md**: Document all major technical decisions
|
|
107
92
|
|
|
108
93
|
---
|
|
109
94
|
|
|
@@ -70,27 +70,14 @@ docs/
|
|
|
70
70
|
|
|
71
71
|
## Request Type Processes
|
|
72
72
|
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
1. Write tasks in `tasks.md`
|
|
83
|
-
2. Execute after approval
|
|
84
|
-
3. Status transition: `[TODO]` → `[DOING]` → `[DONE]`
|
|
85
|
-
4. Commit on task completion
|
|
86
|
-
|
|
87
|
-
### 3. Handling Requests Outside Tasks
|
|
88
|
-
|
|
89
|
-
> When user requests **work not in tasks.md**:
|
|
90
|
-
|
|
91
|
-
1. Ask user if this should be **added to tasks.md**
|
|
92
|
-
2. If approved: Add to tasks.md then execute
|
|
93
|
-
3. If declined: Proceed as temporary work (still included in commit)
|
|
73
|
+
> 📖 Refer to `skills/` folder for detailed process guides.
|
|
74
|
+
|
|
75
|
+
| Process | Guide |
|
|
76
|
+
| -------------- | -------------------------- |
|
|
77
|
+
| New Feature | `skills/create-feature.md` |
|
|
78
|
+
| GitHub Issue | `skills/create-issue.md` |
|
|
79
|
+
| Pull Request | `skills/create-pr.md` |
|
|
80
|
+
| Task Execution | `skills/execute-task.md` |
|
|
94
81
|
|
|
95
82
|
---
|
|
96
83
|
|
|
@@ -70,89 +70,36 @@ main
|
|
|
70
70
|
|
|
71
71
|
## 자동화 워크플로우
|
|
72
72
|
|
|
73
|
-
|
|
73
|
+
> 📖 단계별 상세 가이드는 `skills/` 폴더를 참조하세요.
|
|
74
74
|
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
> `gh`로 이슈/PR 생성·수정 시 작성할 제목/본문/라벨을 먼저 공유하고 **반드시** 사용자 확인(OK) 후 진행합니다.
|
|
82
|
-
|
|
83
|
-
### 2. 문서 커밋 (docs 레포)
|
|
84
|
-
|
|
85
|
-
> 📌 docs 폴더는 별도 git으로 관리되므로 프로젝트와 분리된 커밋 전략을 사용합니다.
|
|
86
|
-
|
|
87
|
-
| # | 커밋 시점 | 포함 문서 | 커밋 메시지 예시 |
|
|
88
|
-
| --- | ------------------------------------------ | ----------------------------- | ------------------------------------ |
|
|
89
|
-
| 1 | **계획 완료 시** (spec+plan+tasks 승인 후) | spec.md, plan.md, tasks.md | `docs(#123): spec, plan, tasks 작성` |
|
|
90
|
-
| 2 | **Feature 완료 시** (모든 태스크 완료 후) | tasks.md (상태), decisions.md | `docs(#123): Feature 완료` |
|
|
91
|
-
|
|
92
|
-
> ⚠️ **Feature 폴더 생성 시점**에는 커밋하지 않습니다.
|
|
93
|
-
|
|
94
|
-
### 3. 태스크 완료 시 자동 커밋
|
|
95
|
-
|
|
96
|
-
태스크 하나가 완료되면:
|
|
97
|
-
|
|
98
|
-
```bash
|
|
99
|
-
git add .
|
|
100
|
-
git commit -m "{type}(#{issue}): {task-description}"
|
|
101
|
-
```
|
|
102
|
-
|
|
103
|
-
> `git commit` 실행 전 커밋 메시지와 포함될 파일 목록을 먼저 공유하고 **반드시** 사용자 확인(OK) 후 진행합니다.
|
|
104
|
-
|
|
105
|
-
### 4. Feature 완료 시 PR 생성
|
|
75
|
+
| 워크플로우 | 가이드 |
|
|
76
|
+
| ------------ | -------------------------- |
|
|
77
|
+
| Feature 시작 | `skills/create-feature.md` |
|
|
78
|
+
| Issue 생성 | `skills/create-issue.md` |
|
|
79
|
+
| 태스크 실행 | `skills/execute-task.md` |
|
|
80
|
+
| PR 생성 | `skills/create-pr.md` |
|
|
106
81
|
|
|
107
|
-
|
|
82
|
+
### 브랜치 생성
|
|
108
83
|
|
|
109
84
|
```bash
|
|
110
|
-
git
|
|
111
|
-
gh pr create --title "feat(#{issue}): {feature-title}" \
|
|
112
|
-
--body "Closes #{issue}" \
|
|
113
|
-
--base main
|
|
114
|
-
```
|
|
115
|
-
|
|
116
|
-
### 5. 머지
|
|
117
|
-
|
|
118
|
-
모든 리뷰 해결 시:
|
|
119
|
-
|
|
120
|
-
```bash
|
|
121
|
-
# 머지 전 main 최신화
|
|
122
|
-
git checkout main
|
|
123
|
-
git pull
|
|
124
|
-
|
|
125
|
-
# Squash and Merge
|
|
126
|
-
gh pr merge --squash --delete-branch
|
|
127
|
-
|
|
128
|
-
# 머지 후 main 최신화
|
|
129
|
-
git pull
|
|
85
|
+
git checkout -b feat/{issue-number}-{feature-name}
|
|
130
86
|
```
|
|
131
87
|
|
|
132
|
-
|
|
88
|
+
### 문서 커밋 시점 (docs 레포)
|
|
133
89
|
|
|
134
|
-
|
|
90
|
+
| 커밋 시점 | 포함 내용 | 커밋 메시지 예시 |
|
|
91
|
+
| -------------------------------------- | ---------------------------------- | ---------------------------------------------- |
|
|
92
|
+
| 계획 완료 시 (spec+plan+tasks 승인 후) | `F{번호}-{기능명}/` 폴더 전체 | `docs(#{이슈번호}): F{번호} spec, plan, tasks` |
|
|
93
|
+
| Feature 완료 시 (모든 태스크 완료 후) | `F{번호}-{기능명}/` 폴더 변경 사항 | `docs(#{이슈번호}): F{번호} Feature 완료` |
|
|
135
94
|
|
|
136
|
-
|
|
95
|
+
> ⚠️ Feature 폴더 생성 시점에는 커밋하지 않습니다.
|
|
137
96
|
|
|
138
|
-
|
|
139
|
-
1. 코드 변경 완료
|
|
140
|
-
2. tasks.md 상태 [DOING] → [DONE] 업데이트 (docs)
|
|
141
|
-
3. git add .
|
|
142
|
-
4. git commit -m "{type}(#{issue}): {description}"
|
|
143
|
-
5. 다음 태스크 진행
|
|
144
|
-
```
|
|
97
|
+
### 머지 전략
|
|
145
98
|
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
2. git push origin {branch}
|
|
151
|
-
3. gh pr create
|
|
152
|
-
4. 리뷰 대기
|
|
153
|
-
5. 리뷰 코멘트 수정
|
|
154
|
-
6. gh pr merge --squash
|
|
155
|
-
```
|
|
99
|
+
| 상황 | 머지 방식 |
|
|
100
|
+
| ------------ | ---------------- |
|
|
101
|
+
| 일반 Feature | Squash and Merge |
|
|
102
|
+
| 긴급 Hotfix | Squash and Merge |
|
|
156
103
|
|
|
157
104
|
---
|
|
158
105
|
|
|
@@ -36,12 +36,17 @@ GitHub Issue에서 링크는 **파일 위치에 따라** 다르게 작성:
|
|
|
36
36
|
[react-i18next](https://react.i18next.com/)
|
|
37
37
|
```
|
|
38
38
|
|
|
39
|
-
3.
|
|
40
|
-
|
|
41
|
-
|
|
39
|
+
3. **로컬 문서** (docs 레포 등, URL 없음): **프로젝트 루트 기준 경로**
|
|
40
|
+
|
|
41
|
+
> 📁 로컬 문서는 **프로젝트 루트 기준** 경로로 작성합니다.
|
|
42
|
+
> 형식: `- **{레이블}**: \`{경로}\``
|
|
43
|
+
|
|
44
|
+
```markdown
|
|
45
|
+
- **Spec**: `{{featurePath}}/F001-feature-name/spec.md`
|
|
46
|
+
- **Tasks**: `{{featurePath}}/F001-feature-name/tasks.md`
|
|
42
47
|
```
|
|
43
48
|
|
|
44
|
-
> ⚠️ 로컬 문서는 GitHub에서 클릭되지 않으므로, 링크 대신
|
|
49
|
+
> ⚠️ 로컬 문서는 GitHub에서 클릭되지 않으므로, 마크다운 링크 대신 **볼드 레이블 + 코드블록 경로** 형식을 사용합니다.
|
|
45
50
|
|
|
46
51
|
---
|
|
47
52
|
|
|
@@ -64,7 +69,7 @@ GitHub Issue에서 링크는 **파일 위치에 따라** 다르게 작성:
|
|
|
64
69
|
|
|
65
70
|
## 관련 문서
|
|
66
71
|
|
|
67
|
-
- Spec
|
|
72
|
+
- **Spec**: `{{featurePath}}/F{번호}-{기능명}/spec.md`
|
|
68
73
|
|
|
69
74
|
## 라벨
|
|
70
75
|
|
|
@@ -40,17 +40,24 @@ PR 본문에서 레포 내 파일 링크는 **반드시 현재 브랜치명을
|
|
|
40
40
|
|
|
41
41
|
## 테스트
|
|
42
42
|
|
|
43
|
+
> ⚠️ **실제 테스트 실행 후 체크하세요. 미실행 항목은 체크하지 마세요.**
|
|
44
|
+
|
|
43
45
|
- [ ] 유닛 테스트 통과
|
|
44
46
|
- [ ] 통합 테스트 완료
|
|
45
47
|
|
|
48
|
+
### 실행 결과
|
|
49
|
+
|
|
50
|
+
- 명령어: `{실행한 테스트 명령어}`
|
|
51
|
+
- 결과: `{PASS/FAIL 요약}`
|
|
52
|
+
|
|
46
53
|
## 스크린샷 (UI 변경 시)
|
|
47
54
|
|
|
48
55
|
{있으면 첨부}
|
|
49
56
|
|
|
50
57
|
## 관련 문서
|
|
51
58
|
|
|
52
|
-
- Spec
|
|
53
|
-
- Tasks
|
|
59
|
+
- **Spec**: `{{featurePath}}/F{번호}-{기능명}/spec.md`
|
|
60
|
+
- **Tasks**: `{{featurePath}}/F{번호}-{기능명}/tasks.md`
|
|
54
61
|
|
|
55
62
|
Closes #{이슈번호}
|
|
56
63
|
```
|
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
# 새 기능 추가 프로세스
|
|
2
|
+
|
|
3
|
+
새 기능(Feature)을 추가할 때 따르는 단계별 가이드입니다.
|
|
4
|
+
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
## 단계
|
|
8
|
+
|
|
9
|
+
### 1. Feature 폴더 생성
|
|
10
|
+
|
|
11
|
+
```bash
|
|
12
|
+
npx lee-spec-kit feature <name> -d "<설명>"
|
|
13
|
+
```
|
|
14
|
+
|
|
15
|
+
- `<name>`: 기능 이름 (영문, 하이픈 사용)
|
|
16
|
+
- `-d`: 기능 설명 (spec.md에 자동 반영)
|
|
17
|
+
|
|
18
|
+
**예시:**
|
|
19
|
+
|
|
20
|
+
```bash
|
|
21
|
+
npx lee-spec-kit feature user-auth -d "사용자 인증 및 세션 관리"
|
|
22
|
+
```
|
|
23
|
+
|
|
24
|
+
### 2. spec.md 작성
|
|
25
|
+
|
|
26
|
+
- **무엇을**: 기능이 무엇인지 명확히 기술
|
|
27
|
+
- **왜**: 이 기능이 필요한 이유
|
|
28
|
+
- ❌ 기술 스택은 작성하지 않음 (plan.md에서 다룸)
|
|
29
|
+
|
|
30
|
+
### 3. 사용자 확인 요청
|
|
31
|
+
|
|
32
|
+
> 🚨 **사용자 확인 필수**
|
|
33
|
+
|
|
34
|
+
spec.md 전문을 사용자에게 공유하고 **명시적 승인(OK)** 대기
|
|
35
|
+
|
|
36
|
+
### 4. GitHub Issue 생성
|
|
37
|
+
|
|
38
|
+
→ `skills/create-issue.md` 참조
|
|
39
|
+
|
|
40
|
+
### 5. 문서 커밋 전 확인
|
|
41
|
+
|
|
42
|
+
> ⚠️ **커밋 전 체크리스트**
|
|
43
|
+
|
|
44
|
+
- [ ] spec.md에 이슈번호 반영 (`- **이슈 번호**: #{이슈번호}`)
|
|
45
|
+
- [ ] tasks.md에 이슈번호 반영 (`- **Issue**: #{이슈번호}`)
|
|
46
|
+
- [ ] tasks.md에 브랜치명 반영 (`feat/{이슈번호}-{기능명}`)
|
|
47
|
+
|
|
48
|
+
---
|
|
49
|
+
|
|
50
|
+
## 참조 문서
|
|
51
|
+
|
|
52
|
+
- **Feature 템플릿**: `features/feature-base/`
|
|
53
|
+
- **Issue 생성 가이드**: `skills/create-issue.md`
|
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
# GitHub Issue 생성 프로세스
|
|
2
|
+
|
|
3
|
+
GitHub Issue를 생성할 때 따르는 가이드입니다.
|
|
4
|
+
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
## 사전 조건
|
|
8
|
+
|
|
9
|
+
- [ ] `spec.md` 작성 완료
|
|
10
|
+
- [ ] 사용자 승인 완료
|
|
11
|
+
|
|
12
|
+
---
|
|
13
|
+
|
|
14
|
+
## 단계
|
|
15
|
+
|
|
16
|
+
### 1. 이슈 내용 작성
|
|
17
|
+
|
|
18
|
+
> 📖 **`issue-template.md`를 반드시 참조하세요.**
|
|
19
|
+
|
|
20
|
+
| 항목 | 형식 |
|
|
21
|
+
| ------ | ---------------------------------------- |
|
|
22
|
+
| 제목 | `F{번호}: {기능명} ({짧은 설명})` |
|
|
23
|
+
| 본문 | 개요, 목표, 완료 조건, 관련 문서 |
|
|
24
|
+
| 라벨 | `enhancement`, `bug`, `documentation` 등 |
|
|
25
|
+
| 담당자 | `@me` (기본값) |
|
|
26
|
+
|
|
27
|
+
### 2. 사용자 확인 요청
|
|
28
|
+
|
|
29
|
+
> 🚨 **사용자 확인 필수**
|
|
30
|
+
|
|
31
|
+
이슈 생성 전 다음 내용을 공유하고 승인 대기:
|
|
32
|
+
|
|
33
|
+
- 제목
|
|
34
|
+
- 본문
|
|
35
|
+
- 라벨
|
|
36
|
+
|
|
37
|
+
### 3. 이슈 생성
|
|
38
|
+
|
|
39
|
+
```bash
|
|
40
|
+
gh issue create \
|
|
41
|
+
--title "F{번호}: {기능명} ({짧은 설명})" \
|
|
42
|
+
--body-file /tmp/issue-body.md \
|
|
43
|
+
--assignee @me \
|
|
44
|
+
--label enhancement
|
|
45
|
+
```
|
|
46
|
+
|
|
47
|
+
---
|
|
48
|
+
|
|
49
|
+
## 참조 문서
|
|
50
|
+
|
|
51
|
+
- **이슈 템플릿**: `issue-template.md`
|
|
52
|
+
- **링크 형식 규칙**: `issue-template.md` > "링크 형식" 섹션
|
|
@@ -0,0 +1,97 @@
|
|
|
1
|
+
# Pull Request 생성 프로세스
|
|
2
|
+
|
|
3
|
+
Pull Request를 생성할 때 따르는 가이드입니다.
|
|
4
|
+
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
## 사전 조건
|
|
8
|
+
|
|
9
|
+
- [ ] 모든 태스크 `[DONE]` 상태
|
|
10
|
+
- [ ] 변경 사항 커밋 완료
|
|
11
|
+
- [ ] 브랜치 푸시 완료
|
|
12
|
+
|
|
13
|
+
---
|
|
14
|
+
|
|
15
|
+
## 단계
|
|
16
|
+
|
|
17
|
+
### 1. PR 내용 작성
|
|
18
|
+
|
|
19
|
+
> 📖 **`pr-template.md`를 반드시 참조하세요.**
|
|
20
|
+
|
|
21
|
+
| 항목 | 형식 |
|
|
22
|
+
| ------ | ---------------------------------- |
|
|
23
|
+
| 제목 | `feat(#{이슈번호}): {기능명}` |
|
|
24
|
+
| 본문 | 개요, 변경 사항, 테스트, 관련 문서 |
|
|
25
|
+
| 라벨 | 적절한 라벨 지정 |
|
|
26
|
+
| 담당자 | `@me` (기본값) |
|
|
27
|
+
|
|
28
|
+
### 2. 테스트 검증
|
|
29
|
+
|
|
30
|
+
> 🚨 **테스트 미통과 시 PR 생성 불가**
|
|
31
|
+
|
|
32
|
+
1. 관련 테스트 명령어 실행 (예: `npm test`, `pnpm test`)
|
|
33
|
+
2. 결과 확인 (PASS/FAIL)
|
|
34
|
+
3. PR 본문 "테스트" 섹션에 **실행 결과** 기록
|
|
35
|
+
4. 체크박스는 **실제 통과한 항목만** 체크
|
|
36
|
+
|
|
37
|
+
### 3. 사용자 확인 요청
|
|
38
|
+
|
|
39
|
+
> 🚨 **사용자 확인 필수**
|
|
40
|
+
|
|
41
|
+
PR 생성 전 다음 내용을 공유하고 승인 대기:
|
|
42
|
+
|
|
43
|
+
- 제목
|
|
44
|
+
- 본문 (테스트 결과 포함)
|
|
45
|
+
- 라벨
|
|
46
|
+
|
|
47
|
+
### 4. PR 생성
|
|
48
|
+
|
|
49
|
+
```bash
|
|
50
|
+
gh pr create \
|
|
51
|
+
--title "feat(#{이슈번호}): {기능명}" \
|
|
52
|
+
--body-file /tmp/pr-body.md \
|
|
53
|
+
--assignee @me \
|
|
54
|
+
--base main
|
|
55
|
+
```
|
|
56
|
+
|
|
57
|
+
---
|
|
58
|
+
|
|
59
|
+
## 주의사항
|
|
60
|
+
|
|
61
|
+
### 링크 형식
|
|
62
|
+
|
|
63
|
+
PR 본문의 파일 링크는 **현재 브랜치명**을 사용:
|
|
64
|
+
|
|
65
|
+
```markdown
|
|
66
|
+
[파일명](https://github.com/{owner}/{repo}/blob/{브랜치명}/path/to/file)
|
|
67
|
+
```
|
|
68
|
+
|
|
69
|
+
> ⚠️ `main` 브랜치 링크는 머지 전까지 404 발생!
|
|
70
|
+
|
|
71
|
+
---
|
|
72
|
+
|
|
73
|
+
## 코드리뷰 수정 기준
|
|
74
|
+
|
|
75
|
+
> 📋 **리뷰 피드백으로 수정이 필요할 때 task 추가 여부 판단 기준**
|
|
76
|
+
|
|
77
|
+
### task 추가 불필요 (사소한 수정)
|
|
78
|
+
|
|
79
|
+
- 오타/코드 스타일 수정
|
|
80
|
+
- 변수명/함수명 변경
|
|
81
|
+
- 주석 추가/수정
|
|
82
|
+
- 린트 오류 수정
|
|
83
|
+
|
|
84
|
+
### task 추가 필요 (중요한 수정)
|
|
85
|
+
|
|
86
|
+
- 로직/알고리즘 변경
|
|
87
|
+
- 새 파일/함수 추가
|
|
88
|
+
- API 시그니처 변경
|
|
89
|
+
- 테스트 케이스 추가
|
|
90
|
+
- spec.md 또는 plan.md 변경이 필요한 경우
|
|
91
|
+
|
|
92
|
+
---
|
|
93
|
+
|
|
94
|
+
## 참조 문서
|
|
95
|
+
|
|
96
|
+
- **PR 템플릿**: `pr-template.md`
|
|
97
|
+
- **Git 워크플로우**: `git-workflow.md`
|
|
@@ -0,0 +1,86 @@
|
|
|
1
|
+
# 태스크 실행 프로세스
|
|
2
|
+
|
|
3
|
+
tasks.md의 태스크를 실행할 때 따르는 가이드입니다.
|
|
4
|
+
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
## 단계
|
|
8
|
+
|
|
9
|
+
### 1. 태스크 확인
|
|
10
|
+
|
|
11
|
+
- `tasks.md`에서 다음 실행할 태스크 확인
|
|
12
|
+
- 상태가 `[TODO]`인 태스크 선택
|
|
13
|
+
- ⚠️ **현재 브랜치가 해당 Feature 브랜치인지 확인** (`feat/{이슈번호}-{기능명}`)
|
|
14
|
+
|
|
15
|
+
### 2. 실행 계획 공유
|
|
16
|
+
|
|
17
|
+
> 🚨 **사용자 확인 필수**
|
|
18
|
+
|
|
19
|
+
태스크 시작 전 실행 계획을 사용자에게 공유하고 승인 대기
|
|
20
|
+
|
|
21
|
+
### 3. 상태 전환
|
|
22
|
+
|
|
23
|
+
| 시점 | 상태 전환 |
|
|
24
|
+
| ------- | -------------------- |
|
|
25
|
+
| 시작 시 | `[TODO]` → `[DOING]` |
|
|
26
|
+
| 완료 시 | `[DOING]` → `[DONE]` |
|
|
27
|
+
|
|
28
|
+
상태 전환 시 날짜도 함께 기록 (YYYY-MM-DD)
|
|
29
|
+
|
|
30
|
+
### 4. 태스크 완료 후 커밋
|
|
31
|
+
|
|
32
|
+
> 🚨 **사용자 확인 필수**
|
|
33
|
+
|
|
34
|
+
커밋 생성 전 다음 내용을 공유하고 승인 대기:
|
|
35
|
+
|
|
36
|
+
- 커밋 메시지
|
|
37
|
+
- 포함될 파일 목록
|
|
38
|
+
|
|
39
|
+
```bash
|
|
40
|
+
git add .
|
|
41
|
+
git commit -m "{type}(#{이슈번호}): {태스크 설명}"
|
|
42
|
+
```
|
|
43
|
+
|
|
44
|
+
---
|
|
45
|
+
|
|
46
|
+
## tasks.md에 없는 요청 처리
|
|
47
|
+
|
|
48
|
+
사용자가 tasks.md에 없는 작업을 요청하면:
|
|
49
|
+
|
|
50
|
+
1. tasks.md에 반영할지 사용자에게 확인
|
|
51
|
+
2. 승인 시: tasks.md에 추가 후 실행
|
|
52
|
+
3. 거부 시: 임시 작업으로 진행 (커밋에는 포함)
|
|
53
|
+
|
|
54
|
+
---
|
|
55
|
+
|
|
56
|
+
## 🚨 완료된 태스크 수정 금지
|
|
57
|
+
|
|
58
|
+
> ⚠️ **`[DONE]` 상태의 태스크는 절대 수정하지 않습니다.**
|
|
59
|
+
|
|
60
|
+
### 원칙
|
|
61
|
+
|
|
62
|
+
- 완료된 태스크는 **히스토리/기록 용도**로 보존
|
|
63
|
+
- 수정이 필요한 경우 **새 태스크를 추가**하여 진행
|
|
64
|
+
|
|
65
|
+
### 수정이 필요한 경우
|
|
66
|
+
|
|
67
|
+
1. 기존 태스크는 그대로 유지
|
|
68
|
+
2. 새 태스크를 추가: `T{다음번호}: {수정 내용}`
|
|
69
|
+
3. 새 태스크에서 변경 작업 진행
|
|
70
|
+
|
|
71
|
+
**예시:**
|
|
72
|
+
|
|
73
|
+
```markdown
|
|
74
|
+
## Tasks
|
|
75
|
+
|
|
76
|
+
- [DONE] T001: 사용자 인증 구현 (2026-01-05)
|
|
77
|
+
- [DONE] T002: 로그인 페이지 작성 (2026-01-06)
|
|
78
|
+
- [TODO] T003: T002 수정 - 비밀번호 유효성 검사 추가 ← 수정 필요 시 새 태스크 추가
|
|
79
|
+
```
|
|
80
|
+
|
|
81
|
+
---
|
|
82
|
+
|
|
83
|
+
## 참조 문서
|
|
84
|
+
|
|
85
|
+
- **Git 워크플로우**: `git-workflow.md`
|
|
86
|
+
- **커밋 컨벤션**: `git-workflow.md` > "커밋 컨벤션" 섹션
|
|
@@ -91,42 +91,20 @@ docs/
|
|
|
91
91
|
|
|
92
92
|
## 요청 유형별 프로세스
|
|
93
93
|
|
|
94
|
-
|
|
94
|
+
> 📖 각 프로세스의 상세 가이드는 `skills/` 폴더를 참조하세요.
|
|
95
95
|
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
96
|
+
| 프로세스 | 가이드 |
|
|
97
|
+
| ----------------- | -------------------------- |
|
|
98
|
+
| 새 기능 추가 | `skills/create-feature.md` |
|
|
99
|
+
| GitHub Issue 생성 | `skills/create-issue.md` |
|
|
100
|
+
| Pull Request 생성 | `skills/create-pr.md` |
|
|
101
|
+
| 태스크 실행 | `skills/execute-task.md` |
|
|
101
102
|
|
|
102
|
-
###
|
|
103
|
+
### 추가 규칙 (Fullstack)
|
|
103
104
|
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
4. 사용자 승인 후 태스크 분해
|
|
108
|
-
|
|
109
|
-
### 3. 태스크 실행 및 관리
|
|
110
|
-
|
|
111
|
-
1. `tasks.md`에 태스크 작성 (Acceptance/Checklist 필수)
|
|
112
|
-
2. 사용자 승인 후 실행
|
|
113
|
-
3. **진행 전/후 상태 확인 및 즉시 전환**: `[TODO]` → `[DOING]` → `[DONE]`
|
|
114
|
-
4. 상태 전환 시 날짜 기록 (YYYY-MM-DD)
|
|
115
|
-
5. 태스크를 [DONE]으로 전환할 때 Checklist를 모두 체크
|
|
116
|
-
6. **태스크 완료 직후 상태/날짜 갱신** → 커밋 메시지 제안
|
|
117
|
-
|
|
118
|
-
### 4. 분석/검토 요청
|
|
119
|
-
|
|
120
|
-
1. 분석 리포트 작성 (현재 상태, 문제점, 제안, 영향)
|
|
121
|
-
2. 변경 필요시 새 기능/태스크 생성 권장
|
|
122
|
-
|
|
123
|
-
### 5. 태스크 외 요청 처리
|
|
124
|
-
|
|
125
|
-
> 사용자가 **tasks.md에 없는 작업**을 요청하면:
|
|
126
|
-
|
|
127
|
-
1. 해당 작업을 **tasks.md에 반영할지** 사용자에게 확인
|
|
128
|
-
2. 승인 시: tasks.md에 추가 후 실행
|
|
129
|
-
3. 거부 시: 임시 작업으로 진행 (커밋에는 포함)
|
|
105
|
+
- **대상 레포 확인**: 기능 생성 전 BE 또는 FE 레포 확인
|
|
106
|
+
- **plan.md 작성**: 스펙 승인 후 기술 스택, 아키텍처 결정
|
|
107
|
+
- **decisions.md 기록**: 주요 기술 결정 필수 기록
|
|
130
108
|
|
|
131
109
|
---
|
|
132
110
|
|