lee-spec-kit 0.1.3 โ 0.1.7
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 +5 -5
- package/dist/index.js +108 -55
- package/package.json +1 -1
- package/templates/en/fullstack/agents/agents.md +9 -1
- package/templates/en/fullstack/agents/constitution.md +5 -0
- package/templates/en/fullstack/agents/git-workflow.md +17 -3
- package/templates/en/fullstack/agents/issue-template.md +44 -1
- package/templates/en/fullstack/agents/pr-template.md +31 -1
- package/templates/en/fullstack/features/README.md +4 -4
- package/templates/en/fullstack/features/be/README.md +1 -1
- package/templates/en/fullstack/features/fe/README.md +1 -1
- package/templates/en/fullstack/features/feature-base/plan.md +2 -2
- package/templates/en/fullstack/features/feature-base/spec.md +6 -4
- package/templates/en/fullstack/features/feature-base/tasks.md +4 -4
- package/templates/en/fullstack/prd/README.md +5 -0
- package/templates/en/single/agents/agents.md +9 -1
- package/templates/en/single/agents/constitution.md +44 -39
- package/templates/en/single/agents/git-workflow.md +74 -60
- package/templates/en/single/agents/issue-template.md +76 -29
- package/templates/en/single/agents/pr-template.md +63 -31
- package/templates/en/single/features/README.md +2 -2
- package/templates/en/single/features/feature-base/plan.md +2 -2
- package/templates/en/single/features/feature-base/spec.md +6 -4
- package/templates/en/single/features/feature-base/tasks.md +4 -4
- package/templates/en/single/prd/README.md +14 -9
- package/templates/ko/fullstack/agents/agents.md +9 -1
- package/templates/ko/fullstack/agents/constitution.md +5 -0
- package/templates/ko/fullstack/agents/git-workflow.md +17 -3
- package/templates/ko/fullstack/agents/issue-template.md +45 -0
- package/templates/ko/fullstack/agents/pr-template.md +31 -1
- package/templates/ko/fullstack/features/README.md +4 -4
- package/templates/ko/fullstack/features/be/README.md +1 -1
- package/templates/ko/fullstack/features/fe/README.md +1 -1
- package/templates/ko/fullstack/features/feature-base/spec.md +2 -0
- package/templates/ko/fullstack/prd/README.md +5 -0
- package/templates/ko/single/agents/agents.md +9 -1
- package/templates/ko/single/agents/constitution.md +5 -0
- package/templates/ko/single/agents/git-workflow.md +17 -3
- package/templates/ko/single/agents/issue-template.md +45 -0
- package/templates/ko/single/agents/pr-template.md +31 -1
- package/templates/ko/single/features/README.md +2 -2
- package/templates/ko/single/features/feature-base/spec.md +2 -0
- package/templates/ko/single/prd/README.md +5 -0
|
@@ -22,7 +22,7 @@ features/
|
|
|
22
22
|
## Creating New Features
|
|
23
23
|
|
|
24
24
|
```bash
|
|
25
|
-
lee-spec-kit feature user-auth
|
|
25
|
+
npx lee-spec-kit feature user-auth
|
|
26
26
|
```
|
|
27
27
|
|
|
28
28
|
> ๐ก CLI copies templates from `feature-base/` and auto-assigns IDs.
|
|
@@ -41,7 +41,7 @@ lee-spec-kit feature user-auth
|
|
|
41
41
|
## Status Check
|
|
42
42
|
|
|
43
43
|
```bash
|
|
44
|
-
lee-spec-kit status
|
|
44
|
+
npx lee-spec-kit status
|
|
45
45
|
```
|
|
46
46
|
|
|
47
47
|
---
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
# Implementation Plan: {
|
|
1
|
+
# Implementation Plan: {feature-name}
|
|
2
2
|
|
|
3
3
|
> Write after spec is approved.
|
|
4
4
|
|
|
@@ -6,7 +6,7 @@
|
|
|
6
6
|
|
|
7
7
|
## Overview
|
|
8
8
|
|
|
9
|
-
- **Feature ID**: F{
|
|
9
|
+
- **Feature ID**: F{number}
|
|
10
10
|
- **Target Repo**: {{projectName}}
|
|
11
11
|
- **Created**: YYYY-MM-DD
|
|
12
12
|
- **Status**: Draft | Review | Approved
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
# Feature Spec: {
|
|
1
|
+
# Feature Spec: {feature-name}
|
|
2
2
|
|
|
3
3
|
> Tech stack is covered in plan.md.
|
|
4
4
|
|
|
@@ -6,10 +6,10 @@
|
|
|
6
6
|
|
|
7
7
|
## Overview
|
|
8
8
|
|
|
9
|
-
- **Feature ID**: F{
|
|
10
|
-
- **Feature Name**: {
|
|
9
|
+
- **Feature ID**: F{number}
|
|
10
|
+
- **Feature Name**: {feature-name}
|
|
11
11
|
- **Target Repo**: {{projectName}}
|
|
12
|
-
- **Issue Number**: #{
|
|
12
|
+
- **Issue Number**: #{issue-number}
|
|
13
13
|
- **Created**: YYYY-MM-DD
|
|
14
14
|
- **Status**: Draft | Review | Approved
|
|
15
15
|
|
|
@@ -17,6 +17,8 @@
|
|
|
17
17
|
|
|
18
18
|
## Purpose
|
|
19
19
|
|
|
20
|
+
{{description}}
|
|
21
|
+
|
|
20
22
|
(Why is this feature needed? What problem does it solve?)
|
|
21
23
|
|
|
22
24
|
---
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
# Tasks: {
|
|
1
|
+
# Tasks: {feature-name}
|
|
2
2
|
|
|
3
3
|
## Task Rules
|
|
4
4
|
|
|
@@ -10,8 +10,8 @@
|
|
|
10
10
|
## GitHub Issue
|
|
11
11
|
|
|
12
12
|
- **Repo**: {{projectName}}
|
|
13
|
-
- **Issue**: #{
|
|
14
|
-
- **Branch**: `feat/{
|
|
13
|
+
- **Issue**: #{issue-number}
|
|
14
|
+
- **Branch**: `feat/{issue-number}-{feature-name}`
|
|
15
15
|
|
|
16
16
|
---
|
|
17
17
|
|
|
@@ -19,7 +19,7 @@
|
|
|
19
19
|
|
|
20
20
|
### Phase 1: {Phase Name}
|
|
21
21
|
|
|
22
|
-
- [TODO][P1] T-F{
|
|
22
|
+
- [TODO][P1] T-F{number}-01 {Task Title}
|
|
23
23
|
- Acceptance:
|
|
24
24
|
- (verification condition)
|
|
25
25
|
- Checklist:
|
|
@@ -1,15 +1,20 @@
|
|
|
1
1
|
# PRD (Product Requirements Document)
|
|
2
2
|
|
|
3
|
-
|
|
3
|
+
This folder contains product requirements documents.
|
|
4
4
|
|
|
5
|
-
|
|
5
|
+
> **๐ Document Scope**
|
|
6
|
+
>
|
|
7
|
+
> - **This folder**: Product requirements, business logic, user stories
|
|
8
|
+
> - **Constitution**: Tech stack, architecture principles, code quality, security principles โ `agents/constitution.md`
|
|
6
9
|
|
|
7
|
-
|
|
8
|
-
2. ์ฃผ์ ๊ธฐ๋ฅ๊ณผ ์ฌ์ฉ์ ์คํ ๋ฆฌ๋ฅผ ์์ฑํ์ธ์
|
|
9
|
-
3. ๊ธฐ์ ์ํคํ
์ฒ ๊ฐ์๋ฅผ ํฌํจํ์ธ์
|
|
10
|
+
## Writing Guide
|
|
10
11
|
|
|
11
|
-
|
|
12
|
+
1. Define project overview and goals
|
|
13
|
+
2. Write main features and user stories
|
|
14
|
+
3. Include technical architecture overview
|
|
12
15
|
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
- `
|
|
16
|
+
## Example Files
|
|
17
|
+
|
|
18
|
+
- `{project-name}-prd.md` - Main PRD document
|
|
19
|
+
- `backend-overview.md` - Backend architecture (optional)
|
|
20
|
+
- `frontend-overview.md` - Frontend architecture (optional)
|
|
@@ -66,7 +66,7 @@ docs/
|
|
|
66
66
|
### 1. ์ ๊ธฐ๋ฅ ์ถ๊ฐ ์์ฒญ
|
|
67
67
|
|
|
68
68
|
1. ๋์ ๋ ํฌ ํ์ธ (BE ๋๋ FE)
|
|
69
|
-
2. ์ ๊ธฐ๋ฅ ํด๋ ์์ฑ: `lee-spec-kit feature <name>` ๋๋ `docs/features/README.md` ์ฐธ์กฐ
|
|
69
|
+
2. ์ ๊ธฐ๋ฅ ํด๋ ์์ฑ: `npx lee-spec-kit feature <name>` ๋๋ `docs/features/README.md` ์ฐธ์กฐ
|
|
70
70
|
3. `spec.md` ์์ฑ - ๋ฌด์์, ์ ๋ง๋๋์ง (๊ธฐ์ ์คํ X)
|
|
71
71
|
4. ์ฌ์ฉ์์๊ฒ ์คํ ์ด์ ํ์ธ ์์ฒญ
|
|
72
72
|
5. GitHub Issue ์์ฑ (`agents/issue-template.md` ์ฐธ์กฐ)
|
|
@@ -92,6 +92,14 @@ docs/
|
|
|
92
92
|
1. ๋ถ์ ๋ฆฌํฌํธ ์์ฑ (ํ์ฌ ์ํ, ๋ฌธ์ ์ , ์ ์, ์ํฅ)
|
|
93
93
|
2. ๋ณ๊ฒฝ ํ์์ ์ ๊ธฐ๋ฅ/ํ์คํฌ ์์ฑ ๊ถ์ฅ
|
|
94
94
|
|
|
95
|
+
### 5. ํ์คํฌ ์ธ ์์ฒญ ์ฒ๋ฆฌ
|
|
96
|
+
|
|
97
|
+
> ์ฌ์ฉ์๊ฐ **tasks.md์ ์๋ ์์
**์ ์์ฒญํ๋ฉด:
|
|
98
|
+
|
|
99
|
+
1. ํด๋น ์์
์ **tasks.md์ ๋ฐ์ํ ์ง** ์ฌ์ฉ์์๊ฒ ํ์ธ
|
|
100
|
+
2. ์น์ธ ์: tasks.md์ ์ถ๊ฐ ํ ์คํ
|
|
101
|
+
3. ๊ฑฐ๋ถ ์: ์์ ์์
์ผ๋ก ์งํ (์ปค๋ฐ์๋ ํฌํจ)
|
|
102
|
+
|
|
95
103
|
---
|
|
96
104
|
|
|
97
105
|
## ๐ ADR (Architecture Decision Records) ๊ท์น
|
|
@@ -3,6 +3,11 @@
|
|
|
3
3
|
ํ๋ก์ ํธ์ ํต์ฌ ์์น๊ณผ ๊ธฐ์ ๊ฒฐ์ ๊ฐ์ด๋๋ผ์ธ์
๋๋ค.
|
|
4
4
|
๋ชจ๋ ๊ฐ๋ฐ ๊ฒฐ์ ์ ์ด ๋ฌธ์๋ฅผ ๊ธฐ์ค์ผ๋ก ํฉ๋๋ค.
|
|
5
5
|
|
|
6
|
+
> **๐ ๋ฌธ์ ๋ฒ์**
|
|
7
|
+
>
|
|
8
|
+
> - **์ด ๋ฌธ์**: ๊ธฐ์ ์คํ, ์ํคํ
์ฒ ์์น, ์ฝ๋ ํ์ง, ๋ณด์ ์์น
|
|
9
|
+
> - **PRD**: ์ ํ ์๊ตฌ์ฌํญ, ๋น์ฆ๋์ค ๋ก์ง, ์ฌ์ฉ์ ์คํ ๋ฆฌ โ `prd/*.md`
|
|
10
|
+
|
|
6
11
|
---
|
|
7
12
|
|
|
8
13
|
## ํ๋ก์ ํธ ๋ฏธ์
|
|
@@ -46,6 +46,8 @@ main
|
|
|
46
46
|
|
|
47
47
|
## ์ปค๋ฐ ์ปจ๋ฒค์
|
|
48
48
|
|
|
49
|
+
> ๐ Type๊ณผ Description์ [Udacity Git Commit Message Style Guide](https://udacity.github.io/git-styleguide/)๋ฅผ ๋ฐ๋ฆ
๋๋ค.
|
|
50
|
+
|
|
49
51
|
### ํ์
|
|
50
52
|
|
|
51
53
|
```
|
|
@@ -78,7 +80,19 @@ git checkout -b feat/{issue-number}-{feature-name}
|
|
|
78
80
|
|
|
79
81
|
> `gh`๋ก ์ด์/PR ์์ฑยท์์ ์ ์์ฑํ ์ ๋ชฉ/๋ณธ๋ฌธ/๋ผ๋ฒจ์ ๋จผ์ ๊ณต์ ํ๊ณ **๋ฐ๋์** ์ฌ์ฉ์ ํ์ธ(OK) ํ ์งํํฉ๋๋ค.
|
|
80
82
|
|
|
81
|
-
### 2.
|
|
83
|
+
### 2. ๋ฌธ์ ์์ฑ ๋ฐ ์ปค๋ฐ
|
|
84
|
+
|
|
85
|
+
| ๋ฌธ์ | ์ปค๋ฐ ์์ | ์ปค๋ฐ ๋ฉ์์ง ์์ |
|
|
86
|
+
| ------------ | ------------------ | ------------------------ |
|
|
87
|
+
| spec.md | ์ฌ์ฉ์ ์น์ธ ํ | `docs(#123): spec ์์ฑ` |
|
|
88
|
+
| plan.md | ์ฌ์ฉ์ ์น์ธ ํ | `docs(#123): plan ์์ฑ` |
|
|
89
|
+
| tasks.md | ์ฌ์ฉ์ ์น์ธ ํ | `docs(#123): tasks ๋ถํด` |
|
|
90
|
+
| decisions.md | ํ์คํฌ ์ปค๋ฐ์ ํฌํจ | (๋ณ๋ ์ปค๋ฐ ์์) |
|
|
91
|
+
|
|
92
|
+
> ๐ **Feature ํด๋ ์์ฑ ์์ **์๋ ์ปค๋ฐํ์ง ์์ต๋๋ค.
|
|
93
|
+
> ๊ฐ ๋ฌธ์๊ฐ **์ฌ์ฉ์ ์น์ธ**์ ๋ฐ์ ํ ๊ฐ๋ณ ์ปค๋ฐํฉ๋๋ค.
|
|
94
|
+
|
|
95
|
+
### 3. ํ์คํฌ ์๋ฃ ์ ์๋ ์ปค๋ฐ
|
|
82
96
|
|
|
83
97
|
ํ์คํฌ ํ๋๊ฐ ์๋ฃ๋๋ฉด:
|
|
84
98
|
|
|
@@ -89,7 +103,7 @@ git commit -m "{type}(#{issue}): {task-description}"
|
|
|
89
103
|
|
|
90
104
|
> `git commit` ์คํ ์ ์ปค๋ฐ ๋ฉ์์ง์ ํฌํจ๋ ํ์ผ ๋ชฉ๋ก์ ๋จผ์ ๊ณต์ ํ๊ณ **๋ฐ๋์** ์ฌ์ฉ์ ํ์ธ(OK) ํ ์งํํฉ๋๋ค.
|
|
91
105
|
|
|
92
|
-
###
|
|
106
|
+
### 4. Feature ์๋ฃ ์ PR ์์ฑ
|
|
93
107
|
|
|
94
108
|
๋ชจ๋ ํ์คํฌ ์๋ฃ ์:
|
|
95
109
|
|
|
@@ -100,7 +114,7 @@ gh pr create --title "feat(#{issue}): {feature-title}" \
|
|
|
100
114
|
--base main
|
|
101
115
|
```
|
|
102
116
|
|
|
103
|
-
###
|
|
117
|
+
### 5. ๋จธ์ง
|
|
104
118
|
|
|
105
119
|
๋ชจ๋ ๋ฆฌ๋ทฐ ํด๊ฒฐ ์:
|
|
106
120
|
|
|
@@ -16,6 +16,33 @@ F{๋ฒํธ}: {๊ธฐ๋ฅ๋ช
} ({์งง์ ์ค๋ช
})
|
|
|
16
16
|
|
|
17
17
|
> "์งง์ ์ค๋ช
"์ ํ ์ค๋ก ์๋๋ฅผ ์ ๋ฌํ ์ ์์ ์ ๋๋ก๋ง ์์ฑํฉ๋๋ค.
|
|
18
18
|
|
|
19
|
+
### ๋งํฌ ํ์ (์ค์!)
|
|
20
|
+
|
|
21
|
+
GitHub Issue์์ ๋งํฌ๋ **ํ์ผ ์์น์ ๋ฐ๋ผ** ๋ค๋ฅด๊ฒ ์์ฑ:
|
|
22
|
+
|
|
23
|
+
1. **ํ๋ก์ ํธ ๋ ํฌ ๋ด ํ์ผ**: ์ ์ฒด URL ์ฌ์ฉ (ํด๋ฆญ ๊ฐ๋ฅ)
|
|
24
|
+
- **์ผ๋ฐ ๋ฌธ์/์ฝ๋** (์ด๋ฏธ ๋จธ์ง๋จ): `main` ๋ธ๋์น
|
|
25
|
+
```markdown
|
|
26
|
+
[ํ์ผ๋ช
](https://github.com/{owner}/{repo}/blob/main/path/to/file)
|
|
27
|
+
```
|
|
28
|
+
- **๊ฐ๋ฐ ์ค์ธ ๋ฌธ์** (์์ง ๋จธ์ง ์ ๋จ): **Feature ๋ธ๋์น**
|
|
29
|
+
```markdown
|
|
30
|
+
[ํ์ผ๋ช
](https://github.com/{owner}/{repo}/blob/{feat-branch}/path/to/file)
|
|
31
|
+
```
|
|
32
|
+
|
|
33
|
+
2. **์ธ๋ถ ๋ฌธ์ (๊ณต๊ฐ URL ์์)**: **์ ๋ URL๋ก ๋งํฌ**
|
|
34
|
+
|
|
35
|
+
```markdown
|
|
36
|
+
[react-i18next](https://react.i18next.com/)
|
|
37
|
+
```
|
|
38
|
+
|
|
39
|
+
3. **์ธ๋ถ/๋ก์ปฌ ๋ฌธ์** (docs ๋ ํฌ ๋ฑ, URL ์์): **์๋ ๊ฒฝ๋ก ํ
์คํธ๋ก๋ง ํ๊ธฐ**
|
|
40
|
+
```text
|
|
41
|
+
../docs/features/F001-feature-name/spec.md
|
|
42
|
+
```
|
|
43
|
+
|
|
44
|
+
> โ ๏ธ ๋ก์ปฌ ๋ฌธ์๋ GitHub์์ ํด๋ฆญ๋์ง ์์ผ๋ฏ๋ก, ๋งํฌ ๋์ ๊ฒฝ๋ก ํ
์คํธ๋ง ์ ๊ณตํฉ๋๋ค.
|
|
45
|
+
|
|
19
46
|
---
|
|
20
47
|
|
|
21
48
|
## ์ด์ ๋ณธ๋ฌธ ํ
ํ๋ฆฟ
|
|
@@ -59,6 +86,24 @@ F{๋ฒํธ}: {๊ธฐ๋ฅ๋ช
} ({์งง์ ์ค๋ช
})
|
|
|
59
86
|
| `frontend` | FE ๊ด๋ จ |
|
|
60
87
|
| `priority:high` | ๋์ ์ฐ์ ์์ |
|
|
61
88
|
|
|
89
|
+
> โ ๏ธ ๋ผ๋ฒจ์ด ์กด์ฌํ์ง ์์ผ๋ฉด ๋จผ์ ์์ฑํฉ๋๋ค:
|
|
90
|
+
>
|
|
91
|
+
> ```bash
|
|
92
|
+
> gh label create "๋ผ๋ฒจ๋ช
" --description "์ค๋ช
" --color "์์์ฝ๋"
|
|
93
|
+
> ```
|
|
94
|
+
|
|
95
|
+
---
|
|
96
|
+
|
|
97
|
+
## Assignee ๊ท์น
|
|
98
|
+
|
|
99
|
+
- ๊ธฐ๋ณธ๊ฐ: ๋ณธ์ธ ํ ๋น (`--assignee @me`)
|
|
100
|
+
- ๋ค๋ฅธ ๋ด๋น์ ์ง์ ์ **์ฌ์ฉ์์๊ฒ ํ์ธ** ํ ์งํ
|
|
101
|
+
- ์์:
|
|
102
|
+
```bash
|
|
103
|
+
gh issue create --assignee @me ...
|
|
104
|
+
gh issue create --assignee username ...
|
|
105
|
+
```
|
|
106
|
+
|
|
62
107
|
---
|
|
63
108
|
|
|
64
109
|
## ๋ณธ๋ฌธ ์
๋ ฅ ๊ท์น (์
ธ ์คํ ๋ฐฉ์ง)
|
|
@@ -14,7 +14,16 @@ feat(#{์ด์๋ฒํธ}): {๊ธฐ๋ฅ๋ช
}
|
|
|
14
14
|
|
|
15
15
|
์: `feat(#1): ์ฌ์ฉ์ ์ธ์ฆ ๊ตฌํ`
|
|
16
16
|
|
|
17
|
-
|
|
17
|
+
### ๋งํฌ ํ์ (์ค์!)
|
|
18
|
+
|
|
19
|
+
PR ๋ณธ๋ฌธ์์ ๋ ํฌ ๋ด ํ์ผ ๋งํฌ๋ **๋ฐ๋์ ํ์ฌ ๋ธ๋์น๋ช
์ ์ฌ์ฉ**:
|
|
20
|
+
|
|
21
|
+
```markdown
|
|
22
|
+
[ํ์ผ๋ช
](https://github.com/{owner}/{repo}/blob/{๋ธ๋์น๋ช
}/docs/path/to/file.md)
|
|
23
|
+
```
|
|
24
|
+
|
|
25
|
+
> โ ๏ธ `main` ๋ธ๋์น ๋งํฌ๋ ๋จธ์ง ์ ๊น์ง 404๊ฐ ๋ฐ์ํฉ๋๋ค!
|
|
26
|
+
> ๋ฐ๋์ **ํ์ฌ ํผ์ฒ ๋ธ๋์น๋ช
** (์: `feat/5-feature-name`)์ ์ฌ์ฉํ์ธ์.
|
|
18
27
|
|
|
19
28
|
## PR ๋ณธ๋ฌธ ํ
ํ๋ฆฟ
|
|
20
29
|
|
|
@@ -72,6 +81,27 @@ gh pr create \
|
|
|
72
81
|
|
|
73
82
|
---
|
|
74
83
|
|
|
84
|
+
## ๋ผ๋ฒจ ๊ท์น
|
|
85
|
+
|
|
86
|
+
- PR ์์ฑ ์ ์ ์ ํ ๋ผ๋ฒจ ์ง์ (`--label`)
|
|
87
|
+
- ๋ผ๋ฒจ์ด ์กด์ฌํ์ง ์์ผ๋ฉด ๋จผ์ ์์ฑ:
|
|
88
|
+
```bash
|
|
89
|
+
gh label create "๋ผ๋ฒจ๋ช
" --description "์ค๋ช
" --color "์์์ฝ๋"
|
|
90
|
+
```
|
|
91
|
+
|
|
92
|
+
---
|
|
93
|
+
|
|
94
|
+
## Assignee ๊ท์น
|
|
95
|
+
|
|
96
|
+
- ๊ธฐ๋ณธ๊ฐ: ๋ณธ์ธ ํ ๋น (`--assignee @me`)
|
|
97
|
+
- ๋ฆฌ๋ทฐ์ด ์ง์ ์ `--reviewer` ์ต์
์ฌ์ฉ
|
|
98
|
+
- ์์:
|
|
99
|
+
```bash
|
|
100
|
+
gh pr create --assignee @me --reviewer reviewer-username ...
|
|
101
|
+
```
|
|
102
|
+
|
|
103
|
+
---
|
|
104
|
+
|
|
75
105
|
## ๋ณธ๋ฌธ ์
๋ ฅ ๊ท์น (์
ธ ์คํ ๋ฐฉ์ง)
|
|
76
106
|
|
|
77
107
|
- PR ๋ณธ๋ฌธ์ **`--body-file` ์ฌ์ฉ์ ๊ธฐ๋ณธ**์ผ๋ก ํ๋ค.
|
|
@@ -29,10 +29,10 @@ features/
|
|
|
29
29
|
|
|
30
30
|
```bash
|
|
31
31
|
# Backend Feature
|
|
32
|
-
lee-spec-kit feature --repo be user-auth
|
|
32
|
+
npx lee-spec-kit feature --repo be user-auth
|
|
33
33
|
|
|
34
34
|
# Frontend Feature
|
|
35
|
-
lee-spec-kit feature --repo fe user-profile
|
|
35
|
+
npx lee-spec-kit feature --repo fe user-profile
|
|
36
36
|
```
|
|
37
37
|
|
|
38
38
|
> ๐ก CLI๋ `feature-base/`์์ ํ
ํ๋ฆฟ์ ๋ณต์ฌํ๊ณ ID๋ฅผ ์๋ ์ฑ๋ฒํฉ๋๋ค.
|
|
@@ -55,13 +55,13 @@ lee-spec-kit feature --repo fe user-profile
|
|
|
55
55
|
Feature ์งํ ์ํ๋ CLI๋ก ํ ๋ฒ์ ํ์ธํฉ๋๋ค.
|
|
56
56
|
|
|
57
57
|
```bash
|
|
58
|
-
lee-spec-kit status
|
|
58
|
+
npx lee-spec-kit status
|
|
59
59
|
```
|
|
60
60
|
|
|
61
61
|
ํ์ผ๋ก ์ ์ฅ:
|
|
62
62
|
|
|
63
63
|
```bash
|
|
64
|
-
lee-spec-kit status --write
|
|
64
|
+
npx lee-spec-kit status --write
|
|
65
65
|
```
|
|
66
66
|
|
|
67
67
|
---
|
|
@@ -2,6 +2,11 @@
|
|
|
2
2
|
|
|
3
3
|
์ด ํด๋์๋ ์ ํ ์๊ตฌ์ฌํญ ๋ฌธ์๋ฅผ ์์ฑํฉ๋๋ค.
|
|
4
4
|
|
|
5
|
+
> **๐ ๋ฌธ์ ๋ฒ์**
|
|
6
|
+
>
|
|
7
|
+
> - **์ด ํด๋**: ์ ํ ์๊ตฌ์ฌํญ, ๋น์ฆ๋์ค ๋ก์ง, ์ฌ์ฉ์ ์คํ ๋ฆฌ
|
|
8
|
+
> - **Constitution**: ๊ธฐ์ ์คํ, ์ํคํ
์ฒ ์์น, ์ฝ๋ ํ์ง, ๋ณด์ ์์น โ `agents/constitution.md`
|
|
9
|
+
|
|
5
10
|
## ์์ฑ ๊ฐ์ด๋
|
|
6
11
|
|
|
7
12
|
1. ํ๋ก์ ํธ ๊ฐ์์ ๋ชฉํ๋ฅผ ์ ์ํ์ธ์
|
|
@@ -57,7 +57,7 @@ docs/
|
|
|
57
57
|
|
|
58
58
|
### 1. ์ ๊ธฐ๋ฅ ์ถ๊ฐ ์์ฒญ
|
|
59
59
|
|
|
60
|
-
1. ์ ๊ธฐ๋ฅ ํด๋ ์์ฑ: `lee-spec-kit feature <name>`
|
|
60
|
+
1. ์ ๊ธฐ๋ฅ ํด๋ ์์ฑ: `npx lee-spec-kit feature <name>`
|
|
61
61
|
2. `spec.md` ์์ฑ - ๋ฌด์์, ์ ๋ง๋๋์ง
|
|
62
62
|
3. ์ฌ์ฉ์์๊ฒ ์คํ ์ด์ ํ์ธ ์์ฒญ
|
|
63
63
|
4. GitHub Issue ์์ฑ
|
|
@@ -69,6 +69,14 @@ docs/
|
|
|
69
69
|
3. ์ํ ์ ํ: `[TODO]` โ `[DOING]` โ `[DONE]`
|
|
70
70
|
4. ํ์คํฌ ์๋ฃ ์งํ ์ปค๋ฐ
|
|
71
71
|
|
|
72
|
+
### 3. ํ์คํฌ ์ธ ์์ฒญ ์ฒ๋ฆฌ
|
|
73
|
+
|
|
74
|
+
> ์ฌ์ฉ์๊ฐ **tasks.md์ ์๋ ์์
**์ ์์ฒญํ๋ฉด:
|
|
75
|
+
|
|
76
|
+
1. ํด๋น ์์
์ **tasks.md์ ๋ฐ์ํ ์ง** ์ฌ์ฉ์์๊ฒ ํ์ธ
|
|
77
|
+
2. ์น์ธ ์: tasks.md์ ์ถ๊ฐ ํ ์คํ
|
|
78
|
+
3. ๊ฑฐ๋ถ ์: ์์ ์์
์ผ๋ก ์งํ (์ปค๋ฐ์๋ ํฌํจ)
|
|
79
|
+
|
|
72
80
|
---
|
|
73
81
|
|
|
74
82
|
## ๐ ADR (Architecture Decision Records) ๊ท์น
|
|
@@ -3,6 +3,11 @@
|
|
|
3
3
|
ํ๋ก์ ํธ์ ํต์ฌ ์์น๊ณผ ๊ธฐ์ ๊ฒฐ์ ๊ฐ์ด๋๋ผ์ธ์
๋๋ค.
|
|
4
4
|
๋ชจ๋ ๊ฐ๋ฐ ๊ฒฐ์ ์ ์ด ๋ฌธ์๋ฅผ ๊ธฐ์ค์ผ๋ก ํฉ๋๋ค.
|
|
5
5
|
|
|
6
|
+
> **๐ ๋ฌธ์ ๋ฒ์**
|
|
7
|
+
>
|
|
8
|
+
> - **์ด ๋ฌธ์**: ๊ธฐ์ ์คํ, ์ํคํ
์ฒ ์์น, ์ฝ๋ ํ์ง, ๋ณด์ ์์น
|
|
9
|
+
> - **PRD**: ์ ํ ์๊ตฌ์ฌํญ, ๋น์ฆ๋์ค ๋ก์ง, ์ฌ์ฉ์ ์คํ ๋ฆฌ โ `prd/*.md`
|
|
10
|
+
|
|
6
11
|
---
|
|
7
12
|
|
|
8
13
|
## ํ๋ก์ ํธ ๋ฏธ์
|
|
@@ -46,6 +46,8 @@ main
|
|
|
46
46
|
|
|
47
47
|
## ์ปค๋ฐ ์ปจ๋ฒค์
|
|
48
48
|
|
|
49
|
+
> ๐ Type๊ณผ Description์ [Udacity Git Commit Message Style Guide](https://udacity.github.io/git-styleguide/)๋ฅผ ๋ฐ๋ฆ
๋๋ค.
|
|
50
|
+
|
|
49
51
|
### ํ์
|
|
50
52
|
|
|
51
53
|
```
|
|
@@ -78,7 +80,19 @@ git checkout -b feat/{issue-number}-{feature-name}
|
|
|
78
80
|
|
|
79
81
|
> `gh`๋ก ์ด์/PR ์์ฑยท์์ ์ ์์ฑํ ์ ๋ชฉ/๋ณธ๋ฌธ/๋ผ๋ฒจ์ ๋จผ์ ๊ณต์ ํ๊ณ **๋ฐ๋์** ์ฌ์ฉ์ ํ์ธ(OK) ํ ์งํํฉ๋๋ค.
|
|
80
82
|
|
|
81
|
-
### 2.
|
|
83
|
+
### 2. ๋ฌธ์ ์์ฑ ๋ฐ ์ปค๋ฐ
|
|
84
|
+
|
|
85
|
+
| ๋ฌธ์ | ์ปค๋ฐ ์์ | ์ปค๋ฐ ๋ฉ์์ง ์์ |
|
|
86
|
+
| ------------ | ------------------ | ------------------------ |
|
|
87
|
+
| spec.md | ์ฌ์ฉ์ ์น์ธ ํ | `docs(#123): spec ์์ฑ` |
|
|
88
|
+
| plan.md | ์ฌ์ฉ์ ์น์ธ ํ | `docs(#123): plan ์์ฑ` |
|
|
89
|
+
| tasks.md | ์ฌ์ฉ์ ์น์ธ ํ | `docs(#123): tasks ๋ถํด` |
|
|
90
|
+
| decisions.md | ํ์คํฌ ์ปค๋ฐ์ ํฌํจ | (๋ณ๋ ์ปค๋ฐ ์์) |
|
|
91
|
+
|
|
92
|
+
> ๐ **Feature ํด๋ ์์ฑ ์์ **์๋ ์ปค๋ฐํ์ง ์์ต๋๋ค.
|
|
93
|
+
> ๊ฐ ๋ฌธ์๊ฐ **์ฌ์ฉ์ ์น์ธ**์ ๋ฐ์ ํ ๊ฐ๋ณ ์ปค๋ฐํฉ๋๋ค.
|
|
94
|
+
|
|
95
|
+
### 3. ํ์คํฌ ์๋ฃ ์ ์๋ ์ปค๋ฐ
|
|
82
96
|
|
|
83
97
|
ํ์คํฌ ํ๋๊ฐ ์๋ฃ๋๋ฉด:
|
|
84
98
|
|
|
@@ -89,7 +103,7 @@ git commit -m "{type}(#{issue}): {task-description}"
|
|
|
89
103
|
|
|
90
104
|
> `git commit` ์คํ ์ ์ปค๋ฐ ๋ฉ์์ง์ ํฌํจ๋ ํ์ผ ๋ชฉ๋ก์ ๋จผ์ ๊ณต์ ํ๊ณ **๋ฐ๋์** ์ฌ์ฉ์ ํ์ธ(OK) ํ ์งํํฉ๋๋ค.
|
|
91
105
|
|
|
92
|
-
###
|
|
106
|
+
### 4. Feature ์๋ฃ ์ PR ์์ฑ
|
|
93
107
|
|
|
94
108
|
๋ชจ๋ ํ์คํฌ ์๋ฃ ์:
|
|
95
109
|
|
|
@@ -100,7 +114,7 @@ gh pr create --title "feat(#{issue}): {feature-title}" \
|
|
|
100
114
|
--base main
|
|
101
115
|
```
|
|
102
116
|
|
|
103
|
-
###
|
|
117
|
+
### 5. ๋จธ์ง
|
|
104
118
|
|
|
105
119
|
๋ชจ๋ ๋ฆฌ๋ทฐ ํด๊ฒฐ ์:
|
|
106
120
|
|
|
@@ -16,6 +16,33 @@ F{๋ฒํธ}: {๊ธฐ๋ฅ๋ช
} ({์งง์ ์ค๋ช
})
|
|
|
16
16
|
|
|
17
17
|
> "์งง์ ์ค๋ช
"์ ํ ์ค๋ก ์๋๋ฅผ ์ ๋ฌํ ์ ์์ ์ ๋๋ก๋ง ์์ฑํฉ๋๋ค.
|
|
18
18
|
|
|
19
|
+
### ๋งํฌ ํ์ (์ค์!)
|
|
20
|
+
|
|
21
|
+
GitHub Issue์์ ๋งํฌ๋ **ํ์ผ ์์น์ ๋ฐ๋ผ** ๋ค๋ฅด๊ฒ ์์ฑ:
|
|
22
|
+
|
|
23
|
+
1. **ํ๋ก์ ํธ ๋ ํฌ ๋ด ํ์ผ**: ์ ์ฒด URL ์ฌ์ฉ (ํด๋ฆญ ๊ฐ๋ฅ)
|
|
24
|
+
- **์ผ๋ฐ ๋ฌธ์/์ฝ๋** (์ด๋ฏธ ๋จธ์ง๋จ): `main` ๋ธ๋์น
|
|
25
|
+
```markdown
|
|
26
|
+
[ํ์ผ๋ช
](https://github.com/{owner}/{repo}/blob/main/path/to/file)
|
|
27
|
+
```
|
|
28
|
+
- **๊ฐ๋ฐ ์ค์ธ ๋ฌธ์** (์์ง ๋จธ์ง ์ ๋จ): **Feature ๋ธ๋์น**
|
|
29
|
+
```markdown
|
|
30
|
+
[ํ์ผ๋ช
](https://github.com/{owner}/{repo}/blob/{feat-branch}/path/to/file)
|
|
31
|
+
```
|
|
32
|
+
|
|
33
|
+
2. **์ธ๋ถ ๋ฌธ์ (๊ณต๊ฐ URL ์์)**: **์ ๋ URL๋ก ๋งํฌ**
|
|
34
|
+
|
|
35
|
+
```markdown
|
|
36
|
+
[react-i18next](https://react.i18next.com/)
|
|
37
|
+
```
|
|
38
|
+
|
|
39
|
+
3. **์ธ๋ถ/๋ก์ปฌ ๋ฌธ์** (docs ๋ ํฌ ๋ฑ, URL ์์): **์๋ ๊ฒฝ๋ก ํ
์คํธ๋ก๋ง ํ๊ธฐ**
|
|
40
|
+
```text
|
|
41
|
+
../docs/features/F001-feature-name/spec.md
|
|
42
|
+
```
|
|
43
|
+
|
|
44
|
+
> โ ๏ธ ๋ก์ปฌ ๋ฌธ์๋ GitHub์์ ํด๋ฆญ๋์ง ์์ผ๋ฏ๋ก, ๋งํฌ ๋์ ๊ฒฝ๋ก ํ
์คํธ๋ง ์ ๊ณตํฉ๋๋ค.
|
|
45
|
+
|
|
19
46
|
---
|
|
20
47
|
|
|
21
48
|
## ์ด์ ๋ณธ๋ฌธ ํ
ํ๋ฆฟ
|
|
@@ -59,6 +86,24 @@ F{๋ฒํธ}: {๊ธฐ๋ฅ๋ช
} ({์งง์ ์ค๋ช
})
|
|
|
59
86
|
| `frontend` | FE ๊ด๋ จ |
|
|
60
87
|
| `priority:high` | ๋์ ์ฐ์ ์์ |
|
|
61
88
|
|
|
89
|
+
> โ ๏ธ ๋ผ๋ฒจ์ด ์กด์ฌํ์ง ์์ผ๋ฉด ๋จผ์ ์์ฑํฉ๋๋ค:
|
|
90
|
+
>
|
|
91
|
+
> ```bash
|
|
92
|
+
> gh label create "๋ผ๋ฒจ๋ช
" --description "์ค๋ช
" --color "์์์ฝ๋"
|
|
93
|
+
> ```
|
|
94
|
+
|
|
95
|
+
---
|
|
96
|
+
|
|
97
|
+
## Assignee ๊ท์น
|
|
98
|
+
|
|
99
|
+
- ๊ธฐ๋ณธ๊ฐ: ๋ณธ์ธ ํ ๋น (`--assignee @me`)
|
|
100
|
+
- ๋ค๋ฅธ ๋ด๋น์ ์ง์ ์ **์ฌ์ฉ์์๊ฒ ํ์ธ** ํ ์งํ
|
|
101
|
+
- ์์:
|
|
102
|
+
```bash
|
|
103
|
+
gh issue create --assignee @me ...
|
|
104
|
+
gh issue create --assignee username ...
|
|
105
|
+
```
|
|
106
|
+
|
|
62
107
|
---
|
|
63
108
|
|
|
64
109
|
## ๋ณธ๋ฌธ ์
๋ ฅ ๊ท์น (์
ธ ์คํ ๋ฐฉ์ง)
|
|
@@ -14,7 +14,16 @@ feat(#{์ด์๋ฒํธ}): {๊ธฐ๋ฅ๋ช
}
|
|
|
14
14
|
|
|
15
15
|
์: `feat(#1): ์ฌ์ฉ์ ์ธ์ฆ ๊ตฌํ`
|
|
16
16
|
|
|
17
|
-
|
|
17
|
+
### ๋งํฌ ํ์ (์ค์!)
|
|
18
|
+
|
|
19
|
+
PR ๋ณธ๋ฌธ์์ ๋ ํฌ ๋ด ํ์ผ ๋งํฌ๋ **๋ฐ๋์ ํ์ฌ ๋ธ๋์น๋ช
์ ์ฌ์ฉ**:
|
|
20
|
+
|
|
21
|
+
```markdown
|
|
22
|
+
[ํ์ผ๋ช
](https://github.com/{owner}/{repo}/blob/{๋ธ๋์น๋ช
}/docs/path/to/file.md)
|
|
23
|
+
```
|
|
24
|
+
|
|
25
|
+
> โ ๏ธ `main` ๋ธ๋์น ๋งํฌ๋ ๋จธ์ง ์ ๊น์ง 404๊ฐ ๋ฐ์ํฉ๋๋ค!
|
|
26
|
+
> ๋ฐ๋์ **ํ์ฌ ํผ์ฒ ๋ธ๋์น๋ช
** (์: `feat/5-feature-name`)์ ์ฌ์ฉํ์ธ์.
|
|
18
27
|
|
|
19
28
|
## PR ๋ณธ๋ฌธ ํ
ํ๋ฆฟ
|
|
20
29
|
|
|
@@ -72,6 +81,27 @@ gh pr create \
|
|
|
72
81
|
|
|
73
82
|
---
|
|
74
83
|
|
|
84
|
+
## ๋ผ๋ฒจ ๊ท์น
|
|
85
|
+
|
|
86
|
+
- PR ์์ฑ ์ ์ ์ ํ ๋ผ๋ฒจ ์ง์ (`--label`)
|
|
87
|
+
- ๋ผ๋ฒจ์ด ์กด์ฌํ์ง ์์ผ๋ฉด ๋จผ์ ์์ฑ:
|
|
88
|
+
```bash
|
|
89
|
+
gh label create "๋ผ๋ฒจ๋ช
" --description "์ค๋ช
" --color "์์์ฝ๋"
|
|
90
|
+
```
|
|
91
|
+
|
|
92
|
+
---
|
|
93
|
+
|
|
94
|
+
## Assignee ๊ท์น
|
|
95
|
+
|
|
96
|
+
- ๊ธฐ๋ณธ๊ฐ: ๋ณธ์ธ ํ ๋น (`--assignee @me`)
|
|
97
|
+
- ๋ฆฌ๋ทฐ์ด ์ง์ ์ `--reviewer` ์ต์
์ฌ์ฉ
|
|
98
|
+
- ์์:
|
|
99
|
+
```bash
|
|
100
|
+
gh pr create --assignee @me --reviewer reviewer-username ...
|
|
101
|
+
```
|
|
102
|
+
|
|
103
|
+
---
|
|
104
|
+
|
|
75
105
|
## ๋ณธ๋ฌธ ์
๋ ฅ ๊ท์น (์
ธ ์คํ ๋ฐฉ์ง)
|
|
76
106
|
|
|
77
107
|
- PR ๋ณธ๋ฌธ์ **`--body-file` ์ฌ์ฉ์ ๊ธฐ๋ณธ**์ผ๋ก ํ๋ค.
|
|
@@ -22,7 +22,7 @@ features/
|
|
|
22
22
|
## ์ ๊ธฐ๋ฅ ์์ฑ
|
|
23
23
|
|
|
24
24
|
```bash
|
|
25
|
-
lee-spec-kit feature user-auth
|
|
25
|
+
npx lee-spec-kit feature user-auth
|
|
26
26
|
```
|
|
27
27
|
|
|
28
28
|
> ๐ก CLI๋ `feature-base/`์์ ํ
ํ๋ฆฟ์ ๋ณต์ฌํ๊ณ ID๋ฅผ ์๋ ์ฑ๋ฒํฉ๋๋ค.
|
|
@@ -41,7 +41,7 @@ lee-spec-kit feature user-auth
|
|
|
41
41
|
## ์ํ ํ์ธ
|
|
42
42
|
|
|
43
43
|
```bash
|
|
44
|
-
lee-spec-kit status
|
|
44
|
+
npx lee-spec-kit status
|
|
45
45
|
```
|
|
46
46
|
|
|
47
47
|
---
|
|
@@ -2,6 +2,11 @@
|
|
|
2
2
|
|
|
3
3
|
์ด ํด๋์๋ ์ ํ ์๊ตฌ์ฌํญ ๋ฌธ์๋ฅผ ์์ฑํฉ๋๋ค.
|
|
4
4
|
|
|
5
|
+
> **๐ ๋ฌธ์ ๋ฒ์**
|
|
6
|
+
>
|
|
7
|
+
> - **์ด ํด๋**: ์ ํ ์๊ตฌ์ฌํญ, ๋น์ฆ๋์ค ๋ก์ง, ์ฌ์ฉ์ ์คํ ๋ฆฌ
|
|
8
|
+
> - **Constitution**: ๊ธฐ์ ์คํ, ์ํคํ
์ฒ ์์น, ์ฝ๋ ํ์ง, ๋ณด์ ์์น โ `agents/constitution.md`
|
|
9
|
+
|
|
5
10
|
## ์์ฑ ๊ฐ์ด๋
|
|
6
11
|
|
|
7
12
|
1. ํ๋ก์ ํธ ๊ฐ์์ ๋ชฉํ๋ฅผ ์ ์ํ์ธ์
|