lee-spec-kit 0.1.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/LICENSE +21 -0
- package/README.md +112 -0
- package/dist/index.js +461 -0
- package/package.json +60 -0
- package/templates/en/fullstack/README.md +12 -0
- package/templates/en/fullstack/agents/agents.md +88 -0
- package/templates/en/fullstack/agents/constitution.md +75 -0
- package/templates/en/fullstack/agents/git-workflow.md +112 -0
- package/templates/en/fullstack/agents/issue-template.md +58 -0
- package/templates/en/fullstack/agents/pr-template.md +57 -0
- package/templates/en/fullstack/features/README.md +76 -0
- package/templates/en/fullstack/features/be/README.md +5 -0
- package/templates/en/fullstack/features/fe/README.md +5 -0
- package/templates/en/fullstack/features/feature-base/decisions.md +15 -0
- package/templates/en/fullstack/features/feature-base/plan.md +49 -0
- package/templates/en/fullstack/features/feature-base/spec.md +55 -0
- package/templates/en/fullstack/features/feature-base/tasks.md +33 -0
- package/templates/en/fullstack/prd/README.md +15 -0
- package/templates/en/single/README.md +11 -0
- package/templates/en/single/agents/agents.md +74 -0
- package/templates/en/single/agents/constitution.md +75 -0
- package/templates/en/single/agents/git-workflow.md +157 -0
- package/templates/en/single/agents/issue-template.md +60 -0
- package/templates/en/single/agents/pr-template.md +71 -0
- package/templates/en/single/features/README.md +56 -0
- package/templates/en/single/features/feature-base/decisions.md +15 -0
- package/templates/en/single/features/feature-base/plan.md +48 -0
- package/templates/en/single/features/feature-base/spec.md +55 -0
- package/templates/en/single/features/feature-base/tasks.md +33 -0
- package/templates/en/single/prd/README.md +15 -0
- package/templates/ko/fullstack/README.md +12 -0
- package/templates/ko/fullstack/agents/agents.md +125 -0
- package/templates/ko/fullstack/agents/constitution.md +75 -0
- package/templates/ko/fullstack/agents/git-workflow.md +157 -0
- package/templates/ko/fullstack/agents/issue-template.md +60 -0
- package/templates/ko/fullstack/agents/pr-template.md +71 -0
- package/templates/ko/fullstack/features/README.md +98 -0
- package/templates/ko/fullstack/features/be/README.md +5 -0
- package/templates/ko/fullstack/features/fe/README.md +5 -0
- package/templates/ko/fullstack/features/feature-base/decisions.md +15 -0
- package/templates/ko/fullstack/features/feature-base/plan.md +49 -0
- package/templates/ko/fullstack/features/feature-base/spec.md +55 -0
- package/templates/ko/fullstack/features/feature-base/tasks.md +33 -0
- package/templates/ko/fullstack/prd/README.md +15 -0
- package/templates/ko/single/README.md +11 -0
- package/templates/ko/single/agents/agents.md +87 -0
- package/templates/ko/single/agents/constitution.md +75 -0
- package/templates/ko/single/agents/git-workflow.md +157 -0
- package/templates/ko/single/agents/issue-template.md +60 -0
- package/templates/ko/single/agents/pr-template.md +71 -0
- package/templates/ko/single/features/README.md +56 -0
- package/templates/ko/single/features/feature-base/decisions.md +15 -0
- package/templates/ko/single/features/feature-base/plan.md +48 -0
- package/templates/ko/single/features/feature-base/spec.md +55 -0
- package/templates/ko/single/features/feature-base/tasks.md +33 -0
- package/templates/ko/single/prd/README.md +15 -0
|
@@ -0,0 +1,125 @@
|
|
|
1
|
+
# Agents Guide
|
|
2
|
+
|
|
3
|
+
코드 어시스턴트/에이전트가 일관된 코드 생성·리팩토링을 수행하도록 돕는 운영 규칙입니다.
|
|
4
|
+
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
## 참조 문서
|
|
8
|
+
|
|
9
|
+
### 핵심 문서
|
|
10
|
+
|
|
11
|
+
- **프로젝트 원칙**: `/docs/agents/constitution.md`
|
|
12
|
+
- **Git 워크플로우**: `/docs/agents/git-workflow.md`
|
|
13
|
+
- **이슈 템플릿**: `/docs/agents/issue-template.md`
|
|
14
|
+
- **PR 템플릿**: `/docs/agents/pr-template.md`
|
|
15
|
+
|
|
16
|
+
### PRD
|
|
17
|
+
|
|
18
|
+
- **제품 요구사항**: `/docs/prd/`
|
|
19
|
+
|
|
20
|
+
### Feature (기능별 문서)
|
|
21
|
+
|
|
22
|
+
- **BE 기능**: `/docs/features/be/{feature-id}/`
|
|
23
|
+
- **FE 기능**: `/docs/features/fe/{feature-id}/`
|
|
24
|
+
- **템플릿 (SSOT)**: `/docs/features/feature-base/` (spec, plan, tasks, decisions)
|
|
25
|
+
|
|
26
|
+
---
|
|
27
|
+
|
|
28
|
+
## 📁 docs 표준 구조
|
|
29
|
+
|
|
30
|
+
```
|
|
31
|
+
docs/
|
|
32
|
+
├── README.md # 문서 안내
|
|
33
|
+
├── agents/ # 에이전트 운영 규칙
|
|
34
|
+
│ ├── agents.md # 메인 규칙 (이 파일)
|
|
35
|
+
│ ├── constitution.md # 프로젝트 원칙
|
|
36
|
+
│ ├── git-workflow.md # Git 자동화
|
|
37
|
+
│ ├── issue-template.md
|
|
38
|
+
│ └── pr-template.md
|
|
39
|
+
├── prd/ # 제품 요구사항
|
|
40
|
+
├── features/ # 기능별 문서
|
|
41
|
+
│ ├── be/ # Backend Features
|
|
42
|
+
│ │ └── F00X-{name}/
|
|
43
|
+
│ └── fe/ # Frontend Features
|
|
44
|
+
│ └── F00X-{name}/
|
|
45
|
+
└── scripts/ # 유틸리티
|
|
46
|
+
```
|
|
47
|
+
|
|
48
|
+
### 규칙
|
|
49
|
+
|
|
50
|
+
- **기술 결정**: Feature의 `decisions.md`에 기록 (ADR 스타일)
|
|
51
|
+
|
|
52
|
+
---
|
|
53
|
+
|
|
54
|
+
## 언어/코드 규칙
|
|
55
|
+
|
|
56
|
+
- 답변: 한국어
|
|
57
|
+
- 코드/파일명: 영어
|
|
58
|
+
- 주석/커밋메시지: 한국어
|
|
59
|
+
- Issue/PR 제목·본문: 한국어
|
|
60
|
+
- **날짜/시간: 사용자 PC의 시스템 시간 사용** (예: `2025-12-27`)
|
|
61
|
+
|
|
62
|
+
---
|
|
63
|
+
|
|
64
|
+
## 요청 유형별 프로세스
|
|
65
|
+
|
|
66
|
+
### 1. 새 기능 추가 요청
|
|
67
|
+
|
|
68
|
+
1. 대상 레포 확인 (BE 또는 FE)
|
|
69
|
+
2. 새 기능 폴더 생성: `lee-spec-kit feature <name>` 또는 `docs/features/README.md` 참조
|
|
70
|
+
3. `spec.md` 작성 - 무엇을, 왜 만드는지 (기술 스택 X)
|
|
71
|
+
4. 사용자에게 스펙 초안 확인 요청
|
|
72
|
+
5. GitHub Issue 생성 (`agents/issue-template.md` 참조)
|
|
73
|
+
|
|
74
|
+
### 2. 기능 스펙 → 계획 수립
|
|
75
|
+
|
|
76
|
+
1. 스펙이 명확한지 확인
|
|
77
|
+
2. `plan.md` 작성 - 기술 스택, 아키텍처, 파일 구조
|
|
78
|
+
3. **`decisions.md`에 주요 기술 결정 기록** (필수)
|
|
79
|
+
4. 사용자 승인 후 태스크 분해
|
|
80
|
+
|
|
81
|
+
### 3. 태스크 실행 및 관리
|
|
82
|
+
|
|
83
|
+
1. `tasks.md`에 태스크 작성 (Acceptance/Checklist 필수)
|
|
84
|
+
2. 사용자 승인 후 실행
|
|
85
|
+
3. **진행 전/후 상태 확인 및 즉시 전환**: `[TODO]` → `[DOING]` → `[DONE]`
|
|
86
|
+
4. 상태 전환 시 날짜 기록 (YYYY-MM-DD)
|
|
87
|
+
5. 태스크를 [DONE]으로 전환할 때 Checklist를 모두 체크
|
|
88
|
+
6. **태스크 완료 직후 상태/날짜 갱신** → 커밋 메시지 제안
|
|
89
|
+
|
|
90
|
+
### 4. 분석/검토 요청
|
|
91
|
+
|
|
92
|
+
1. 분석 리포트 작성 (현재 상태, 문제점, 제안, 영향)
|
|
93
|
+
2. 변경 필요시 새 기능/태스크 생성 권장
|
|
94
|
+
|
|
95
|
+
---
|
|
96
|
+
|
|
97
|
+
## 📋 ADR (Architecture Decision Records) 규칙
|
|
98
|
+
|
|
99
|
+
> `decisions.md`는 기술 결정과 그 이유를 기록하는 **필수** 문서입니다.
|
|
100
|
+
|
|
101
|
+
### 언제 기록하는가?
|
|
102
|
+
|
|
103
|
+
1. **기술/라이브러리 선택 시** (예: Prisma vs TypeORM)
|
|
104
|
+
2. **아키텍처 결정 시** (예: 단일 테이블 + JSON vs 정규화)
|
|
105
|
+
3. **설계 트레이드오프 시** (예: 성능 vs 가독성)
|
|
106
|
+
4. **코드 리뷰 피드백 반영 시**
|
|
107
|
+
5. **문제 해결 시** (예: 에러 핸들링 방식 변경)
|
|
108
|
+
|
|
109
|
+
### 기록 형식
|
|
110
|
+
|
|
111
|
+
```markdown
|
|
112
|
+
## D{번호}: {결정 제목} ({YYYY-MM-DD})
|
|
113
|
+
|
|
114
|
+
- **Context**: 문제 상황 또는 배경
|
|
115
|
+
- **Options**: 고려한 대안들
|
|
116
|
+
- **Decision**: 최종 선택
|
|
117
|
+
- **Rationale**: 선택 이유
|
|
118
|
+
- **Consequences**: 결과 및 영향 (선택사항)
|
|
119
|
+
```
|
|
120
|
+
|
|
121
|
+
### 에이전트 행동 규칙
|
|
122
|
+
|
|
123
|
+
- 태스크 진행 중 **기술 결정이 발생하면 즉시 `decisions.md`에 기록**
|
|
124
|
+
- 코드 리뷰 피드백으로 **접근 방식이 변경되면 새 결정으로 추가**
|
|
125
|
+
- **암묵적인 결정도 명시적으로 기록**
|
|
@@ -0,0 +1,75 @@
|
|
|
1
|
+
# {{projectName}} Constitution
|
|
2
|
+
|
|
3
|
+
프로젝트의 핵심 원칙과 기술 결정 가이드라인입니다.
|
|
4
|
+
모든 개발 결정은 이 문서를 기준으로 합니다.
|
|
5
|
+
|
|
6
|
+
---
|
|
7
|
+
|
|
8
|
+
## 프로젝트 미션
|
|
9
|
+
|
|
10
|
+
> (프로젝트의 미션을 작성하세요)
|
|
11
|
+
|
|
12
|
+
---
|
|
13
|
+
|
|
14
|
+
## 기술 스택
|
|
15
|
+
|
|
16
|
+
### Backend
|
|
17
|
+
|
|
18
|
+
| 기술 | 버전 | 이유 |
|
|
19
|
+
| ------------ | ------ | ----------- |
|
|
20
|
+
| (예: NestJS) | (버전) | (선택 이유) |
|
|
21
|
+
|
|
22
|
+
### Frontend
|
|
23
|
+
|
|
24
|
+
| 기술 | 버전 | 이유 |
|
|
25
|
+
| ----------- | ------ | ----------- |
|
|
26
|
+
| (예: React) | (버전) | (선택 이유) |
|
|
27
|
+
|
|
28
|
+
### 공통
|
|
29
|
+
|
|
30
|
+
| 기술 | 버전 | 이유 |
|
|
31
|
+
| ----------------- | ------ | ----------- |
|
|
32
|
+
| TypeScript | strict | 타입 안전성 |
|
|
33
|
+
| ESLint + Prettier | - | 코드 품질 |
|
|
34
|
+
| pnpm | - | 패키지 관리 |
|
|
35
|
+
|
|
36
|
+
---
|
|
37
|
+
|
|
38
|
+
## 아키텍처 원칙
|
|
39
|
+
|
|
40
|
+
### 1. Feature 중심 관리
|
|
41
|
+
|
|
42
|
+
- 새 기능은 `docs/features/F00X/` 구조로 관리
|
|
43
|
+
- FE/BE 분리하여 **기능 단위**로 개발
|
|
44
|
+
- spec → plan → tasks → decisions 워크플로우
|
|
45
|
+
|
|
46
|
+
### 2. (추가 원칙)
|
|
47
|
+
|
|
48
|
+
(프로젝트별 아키텍처 원칙을 작성하세요)
|
|
49
|
+
|
|
50
|
+
---
|
|
51
|
+
|
|
52
|
+
## 코드 품질 기준
|
|
53
|
+
|
|
54
|
+
- TypeScript strict mode 필수
|
|
55
|
+
- ESLint + Prettier 필수
|
|
56
|
+
- 주요 비즈니스 로직 테스트 커버리지 **80%+**
|
|
57
|
+
- 컴포넌트는 **단일 책임 원칙**
|
|
58
|
+
- 중복 코드 최소화
|
|
59
|
+
|
|
60
|
+
---
|
|
61
|
+
|
|
62
|
+
## 보안 원칙
|
|
63
|
+
|
|
64
|
+
- 환경 변수로 시크릿 관리 (저장소 커밋 금지)
|
|
65
|
+
- 사용자 데이터 **최소 수집**
|
|
66
|
+
- CORS는 허용 오리진만 설정
|
|
67
|
+
|
|
68
|
+
---
|
|
69
|
+
|
|
70
|
+
## 언어/코드 규칙
|
|
71
|
+
|
|
72
|
+
- **답변**: 한국어
|
|
73
|
+
- **코드/파일명**: 영어
|
|
74
|
+
- **주석/커밋**: 한국어
|
|
75
|
+
- **날짜/시간**: 사용자 PC 시스템 시간 기준 (예: `{{date}}`)
|
|
@@ -0,0 +1,157 @@
|
|
|
1
|
+
# Git 워크플로우 가이드
|
|
2
|
+
|
|
3
|
+
에이전트가 Git/GitHub 작업을 자동화하기 위한 규칙입니다.
|
|
4
|
+
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
## 핵심 개념
|
|
8
|
+
|
|
9
|
+
| 개념 | GitHub 매핑 | 설명 |
|
|
10
|
+
| --------- | ------------ | ----------------------- |
|
|
11
|
+
| Feature | GitHub Issue | 기능 단위 작업 |
|
|
12
|
+
| 태스크 | Commit | 개별 구현 단위 |
|
|
13
|
+
| 기능 완료 | Pull Request | Feature 완료 시 PR 생성 |
|
|
14
|
+
|
|
15
|
+
---
|
|
16
|
+
|
|
17
|
+
## 브랜치 전략
|
|
18
|
+
|
|
19
|
+
```
|
|
20
|
+
main
|
|
21
|
+
└── feat/123-feature-name # Issue #123 기반 브랜치
|
|
22
|
+
├── commit 1: feat(#123): 기능 구현
|
|
23
|
+
├── commit 2: test(#123): 테스트 작성
|
|
24
|
+
└── commit 3: docs(#123): 문서 업데이트
|
|
25
|
+
```
|
|
26
|
+
|
|
27
|
+
### 브랜치 네이밍
|
|
28
|
+
|
|
29
|
+
```
|
|
30
|
+
{type}/{issue-number}-{feature-name}
|
|
31
|
+
```
|
|
32
|
+
|
|
33
|
+
| Type | 설명 |
|
|
34
|
+
| ---------- | --------- |
|
|
35
|
+
| `feat` | 새 기능 |
|
|
36
|
+
| `fix` | 버그 수정 |
|
|
37
|
+
| `refactor` | 리팩토링 |
|
|
38
|
+
| `docs` | 문서 |
|
|
39
|
+
|
|
40
|
+
**예시:**
|
|
41
|
+
|
|
42
|
+
- `feat/123-user-auth`
|
|
43
|
+
- `fix/456-login-error`
|
|
44
|
+
|
|
45
|
+
---
|
|
46
|
+
|
|
47
|
+
## 커밋 컨벤션
|
|
48
|
+
|
|
49
|
+
### 형식
|
|
50
|
+
|
|
51
|
+
```
|
|
52
|
+
{type}(#{issue}): {description}
|
|
53
|
+
```
|
|
54
|
+
|
|
55
|
+
### Type 목록
|
|
56
|
+
|
|
57
|
+
| Type | 설명 | 예시 |
|
|
58
|
+
| ---------- | ----------- | ----------------------------------- |
|
|
59
|
+
| `feat` | 새 기능 | `feat(#123): 사용자 인증 구현` |
|
|
60
|
+
| `fix` | 버그 수정 | `fix(#123): 로그인 오류 수정` |
|
|
61
|
+
| `refactor` | 리팩토링 | `refactor(#123): 인증 로직 분리` |
|
|
62
|
+
| `test` | 테스트 | `test(#123): 인증 단위 테스트 추가` |
|
|
63
|
+
| `docs` | 문서 | `docs(#123): 스펙 명확화` |
|
|
64
|
+
| `style` | 코드 스타일 | `style(#123): 린트 오류 수정` |
|
|
65
|
+
| `chore` | 기타 | `chore(#123): 의존성 업데이트` |
|
|
66
|
+
|
|
67
|
+
---
|
|
68
|
+
|
|
69
|
+
## 자동화 워크플로우
|
|
70
|
+
|
|
71
|
+
### 1. Feature 시작
|
|
72
|
+
|
|
73
|
+
```bash
|
|
74
|
+
# 1. GitHub Issue 생성 (Feature = Issue)
|
|
75
|
+
# 2. 브랜치 생성
|
|
76
|
+
git checkout -b feat/{issue-number}-{feature-name}
|
|
77
|
+
```
|
|
78
|
+
|
|
79
|
+
> `gh`로 이슈/PR 생성·수정 시 작성할 제목/본문/라벨을 먼저 공유하고 **반드시** 사용자 확인(OK) 후 진행합니다.
|
|
80
|
+
|
|
81
|
+
### 2. 태스크 완료 시 자동 커밋
|
|
82
|
+
|
|
83
|
+
태스크 하나가 완료되면:
|
|
84
|
+
|
|
85
|
+
```bash
|
|
86
|
+
git add .
|
|
87
|
+
git commit -m "{type}(#{issue}): {task-description}"
|
|
88
|
+
```
|
|
89
|
+
|
|
90
|
+
> `git commit` 실행 전 커밋 메시지와 포함될 파일 목록을 먼저 공유하고 **반드시** 사용자 확인(OK) 후 진행합니다.
|
|
91
|
+
|
|
92
|
+
### 3. Feature 완료 시 PR 생성
|
|
93
|
+
|
|
94
|
+
모든 태스크 완료 시:
|
|
95
|
+
|
|
96
|
+
```bash
|
|
97
|
+
git push origin feat/{issue-number}-{feature-name}
|
|
98
|
+
gh pr create --title "feat(#{issue}): {feature-title}" \
|
|
99
|
+
--body "Closes #{issue}" \
|
|
100
|
+
--base main
|
|
101
|
+
```
|
|
102
|
+
|
|
103
|
+
### 4. 머지
|
|
104
|
+
|
|
105
|
+
모든 리뷰 해결 시:
|
|
106
|
+
|
|
107
|
+
```bash
|
|
108
|
+
# 머지 전 main 최신화
|
|
109
|
+
git checkout main
|
|
110
|
+
git pull
|
|
111
|
+
|
|
112
|
+
# Squash and Merge
|
|
113
|
+
gh pr merge --squash --delete-branch
|
|
114
|
+
|
|
115
|
+
# 머지 후 main 최신화
|
|
116
|
+
git pull
|
|
117
|
+
```
|
|
118
|
+
|
|
119
|
+
---
|
|
120
|
+
|
|
121
|
+
## 에이전트 자동화 규칙
|
|
122
|
+
|
|
123
|
+
### 태스크 완료 시
|
|
124
|
+
|
|
125
|
+
```
|
|
126
|
+
1. 코드 변경 완료
|
|
127
|
+
2. tasks.md 상태 [DOING] → [DONE] 업데이트 (docs)
|
|
128
|
+
3. git add .
|
|
129
|
+
4. git commit -m "{type}(#{issue}): {description}"
|
|
130
|
+
5. 다음 태스크 진행
|
|
131
|
+
```
|
|
132
|
+
|
|
133
|
+
### Feature 완료 시
|
|
134
|
+
|
|
135
|
+
```
|
|
136
|
+
1. 모든 태스크 [DONE] 확인
|
|
137
|
+
2. git push origin {branch}
|
|
138
|
+
3. gh pr create
|
|
139
|
+
4. 리뷰 대기
|
|
140
|
+
5. 리뷰 코멘트 수정
|
|
141
|
+
6. gh pr merge --squash
|
|
142
|
+
```
|
|
143
|
+
|
|
144
|
+
---
|
|
145
|
+
|
|
146
|
+
## GitHub 설정 요구사항
|
|
147
|
+
|
|
148
|
+
### 필수
|
|
149
|
+
|
|
150
|
+
- [ ] GitHub CLI (`gh`) 설치 및 인증
|
|
151
|
+
- [ ] Branch protection rules (main)
|
|
152
|
+
- Require PR before merging
|
|
153
|
+
|
|
154
|
+
### 권장
|
|
155
|
+
|
|
156
|
+
- [ ] Auto-delete head branches
|
|
157
|
+
- [ ] Squash merging only
|
|
@@ -0,0 +1,60 @@
|
|
|
1
|
+
# GitHub Issue 템플릿 가이드
|
|
2
|
+
|
|
3
|
+
에이전트가 GitHub Issue를 생성할 때 참조하는 템플릿입니다.
|
|
4
|
+
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
## 이슈 생성 규칙
|
|
8
|
+
|
|
9
|
+
### 제목 형식
|
|
10
|
+
|
|
11
|
+
```text
|
|
12
|
+
F{번호}: {기능명} ({짧은 설명})
|
|
13
|
+
```
|
|
14
|
+
|
|
15
|
+
예: `F001: user-auth (사용자 인증 기능)`
|
|
16
|
+
|
|
17
|
+
> "짧은 설명"은 한 줄로 의도를 전달할 수 있을 정도로만 작성합니다.
|
|
18
|
+
|
|
19
|
+
---
|
|
20
|
+
|
|
21
|
+
## 이슈 본문 템플릿
|
|
22
|
+
|
|
23
|
+
```markdown
|
|
24
|
+
## 개요
|
|
25
|
+
|
|
26
|
+
{기능에 대한 간략한 설명}
|
|
27
|
+
|
|
28
|
+
## 목표
|
|
29
|
+
|
|
30
|
+
- {목표 1}
|
|
31
|
+
- {목표 2}
|
|
32
|
+
|
|
33
|
+
## 완료 조건
|
|
34
|
+
|
|
35
|
+
- [ ] {조건 1}
|
|
36
|
+
- [ ] {조건 2}
|
|
37
|
+
|
|
38
|
+
## 관련 문서
|
|
39
|
+
|
|
40
|
+
- Spec: `docs/features/{be|fe}/F{번호}-{기능명}/spec.md`
|
|
41
|
+
|
|
42
|
+
## 라벨
|
|
43
|
+
|
|
44
|
+
- `enhancement` (새 기능)
|
|
45
|
+
- `bug` (버그 수정)
|
|
46
|
+
- `documentation` (문서)
|
|
47
|
+
```
|
|
48
|
+
|
|
49
|
+
---
|
|
50
|
+
|
|
51
|
+
## 라벨 규칙
|
|
52
|
+
|
|
53
|
+
| 라벨 | 용도 |
|
|
54
|
+
| --------------- | ------------- |
|
|
55
|
+
| `enhancement` | 새 기능 |
|
|
56
|
+
| `bug` | 버그 수정 |
|
|
57
|
+
| `documentation` | 문서 작업 |
|
|
58
|
+
| `backend` | BE 관련 |
|
|
59
|
+
| `frontend` | FE 관련 |
|
|
60
|
+
| `priority:high` | 높은 우선순위 |
|
|
@@ -0,0 +1,71 @@
|
|
|
1
|
+
# GitHub PR 템플릿 가이드
|
|
2
|
+
|
|
3
|
+
에이전트가 Pull Request를 생성할 때 참조하는 템플릿입니다.
|
|
4
|
+
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
## PR 생성 규칙
|
|
8
|
+
|
|
9
|
+
### 제목 형식
|
|
10
|
+
|
|
11
|
+
```text
|
|
12
|
+
feat(#{이슈번호}): {기능명}
|
|
13
|
+
```
|
|
14
|
+
|
|
15
|
+
예: `feat(#1): 사용자 인증 구현`
|
|
16
|
+
|
|
17
|
+
---
|
|
18
|
+
|
|
19
|
+
## PR 본문 템플릿
|
|
20
|
+
|
|
21
|
+
```markdown
|
|
22
|
+
## 개요
|
|
23
|
+
|
|
24
|
+
{변경 사항에 대한 간략한 설명}
|
|
25
|
+
|
|
26
|
+
## 변경 사항
|
|
27
|
+
|
|
28
|
+
- {변경 1}
|
|
29
|
+
- {변경 2}
|
|
30
|
+
- {변경 3}
|
|
31
|
+
|
|
32
|
+
## 테스트
|
|
33
|
+
|
|
34
|
+
- [ ] 유닛 테스트 통과
|
|
35
|
+
- [ ] 통합 테스트 완료
|
|
36
|
+
|
|
37
|
+
## 스크린샷 (UI 변경 시)
|
|
38
|
+
|
|
39
|
+
{있으면 첨부}
|
|
40
|
+
|
|
41
|
+
## 관련 문서
|
|
42
|
+
|
|
43
|
+
- Spec: `docs/features/{be|fe}/F{번호}-{기능명}/spec.md`
|
|
44
|
+
- Tasks: `docs/features/{be|fe}/F{번호}-{기능명}/tasks.md`
|
|
45
|
+
|
|
46
|
+
Closes #{이슈번호}
|
|
47
|
+
```
|
|
48
|
+
|
|
49
|
+
---
|
|
50
|
+
|
|
51
|
+
## PR 생성 명령어
|
|
52
|
+
|
|
53
|
+
```bash
|
|
54
|
+
# 현재 브랜치명 확인
|
|
55
|
+
BRANCH=$(git branch --show-current)
|
|
56
|
+
|
|
57
|
+
gh pr create \
|
|
58
|
+
--title "feat(#{issue}): {기능명}" \
|
|
59
|
+
--body-file /tmp/pr-body.md \
|
|
60
|
+
--base main
|
|
61
|
+
```
|
|
62
|
+
|
|
63
|
+
---
|
|
64
|
+
|
|
65
|
+
## 머지 규칙
|
|
66
|
+
|
|
67
|
+
| 상황 | 머지 방식 |
|
|
68
|
+
| ------------ | ----------------- |
|
|
69
|
+
| 일반 Feature | Squash and Merge |
|
|
70
|
+
| 긴급 Hotfix | Merge 또는 Rebase |
|
|
71
|
+
| 문서 수정 | Squash and Merge |
|
|
@@ -0,0 +1,98 @@
|
|
|
1
|
+
# Features 가이드
|
|
2
|
+
|
|
3
|
+
기능별 스펙, 계획, 태스크를 관리하는 폴더입니다.
|
|
4
|
+
**FE/BE 레포가 분리되어 있으므로 Feature도 분리하여 관리합니다.**
|
|
5
|
+
|
|
6
|
+
---
|
|
7
|
+
|
|
8
|
+
## 폴더 구조
|
|
9
|
+
|
|
10
|
+
```
|
|
11
|
+
features/
|
|
12
|
+
├── README.md # 이 파일
|
|
13
|
+
├── feature-base/ # 공용 템플릿 (수정 시 한 곳만 수정)
|
|
14
|
+
│ ├── spec.md
|
|
15
|
+
│ ├── plan.md
|
|
16
|
+
│ ├── tasks.md
|
|
17
|
+
│ └── decisions.md
|
|
18
|
+
├── be/ # Backend Features
|
|
19
|
+
│ └── F00X-{name}/
|
|
20
|
+
└── fe/ # Frontend Features
|
|
21
|
+
└── F00X-{name}/
|
|
22
|
+
```
|
|
23
|
+
|
|
24
|
+
---
|
|
25
|
+
|
|
26
|
+
## 새 기능 생성
|
|
27
|
+
|
|
28
|
+
### CLI 사용 (권장)
|
|
29
|
+
|
|
30
|
+
```bash
|
|
31
|
+
# Backend Feature
|
|
32
|
+
lee-spec-kit feature --repo be user-auth
|
|
33
|
+
|
|
34
|
+
# Frontend Feature
|
|
35
|
+
lee-spec-kit feature --repo fe user-profile
|
|
36
|
+
```
|
|
37
|
+
|
|
38
|
+
> 💡 CLI는 `feature-base/`에서 템플릿을 복사하고 ID를 자동 채번합니다.
|
|
39
|
+
|
|
40
|
+
---
|
|
41
|
+
|
|
42
|
+
## 기능 ID 규칙
|
|
43
|
+
|
|
44
|
+
- `F{번호}-{기능명}` (예: F001-user-auth)
|
|
45
|
+
- 번호는 **최소 3자리 패딩** (001, 002, ...)
|
|
46
|
+
- 999를 초과하면 **4자리 이상으로 확장** (F1000, F1001, ...)
|
|
47
|
+
- 기능명은 kebab-case
|
|
48
|
+
- **BE/FE 공통으로 번호는 전역 유일** (중복 사용 금지)
|
|
49
|
+
- **Feature = Issue**: 각 Feature는 하나의 GitHub Issue에 대응됩니다.
|
|
50
|
+
|
|
51
|
+
---
|
|
52
|
+
|
|
53
|
+
## 상태 확인
|
|
54
|
+
|
|
55
|
+
Feature 진행 상태는 CLI로 한 번에 확인합니다.
|
|
56
|
+
|
|
57
|
+
```bash
|
|
58
|
+
lee-spec-kit status
|
|
59
|
+
```
|
|
60
|
+
|
|
61
|
+
파일로 저장:
|
|
62
|
+
|
|
63
|
+
```bash
|
|
64
|
+
lee-spec-kit status --write
|
|
65
|
+
```
|
|
66
|
+
|
|
67
|
+
---
|
|
68
|
+
|
|
69
|
+
## 각 파일 역할
|
|
70
|
+
|
|
71
|
+
| 파일 | 역할 | 작성 시점 |
|
|
72
|
+
| -------------- | -------------------------- | -------------- |
|
|
73
|
+
| `spec.md` | **무엇을, 왜** 만드는지 | 기능 정의 시 |
|
|
74
|
+
| `plan.md` | **어떻게** 만드는지 (기술) | 스펙 승인 후 |
|
|
75
|
+
| `tasks.md` | 구체적인 작업 목록 | 계획 승인 후 |
|
|
76
|
+
| `decisions.md` | 기술 결정 기록 (ADR) | 개발 중 수시로 |
|
|
77
|
+
|
|
78
|
+
---
|
|
79
|
+
|
|
80
|
+
## 워크플로우
|
|
81
|
+
|
|
82
|
+
### BE 작업
|
|
83
|
+
|
|
84
|
+
```
|
|
85
|
+
1. docs/features/be/FXXX-{name}/ 생성
|
|
86
|
+
2. spec.md → plan.md → tasks.md 작성
|
|
87
|
+
3. GitHub Issue 생성
|
|
88
|
+
4. 구현 → Commit → PR
|
|
89
|
+
```
|
|
90
|
+
|
|
91
|
+
### FE 작업
|
|
92
|
+
|
|
93
|
+
```
|
|
94
|
+
1. docs/features/fe/FXXX-{name}/ 생성
|
|
95
|
+
2. spec.md → plan.md → tasks.md 작성
|
|
96
|
+
3. GitHub Issue 생성
|
|
97
|
+
4. 구현 → Commit → PR
|
|
98
|
+
```
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
# Decisions Log
|
|
2
|
+
|
|
3
|
+
기술 결정과 그 이유를 기록합니다.
|
|
4
|
+
|
|
5
|
+
> 형식: `D{번호}: {결정 제목} ({YYYY-MM-DD})`
|
|
6
|
+
|
|
7
|
+
---
|
|
8
|
+
|
|
9
|
+
## D001: {결정 제목} ({YYYY-MM-DD})
|
|
10
|
+
|
|
11
|
+
- **Context**: 문제 상황 또는 배경
|
|
12
|
+
- **Options**: 고려한 대안들
|
|
13
|
+
- **Decision**: 최종 선택
|
|
14
|
+
- **Rationale**: 선택 이유
|
|
15
|
+
- **Consequences**: 결과 및 영향 (선택사항)
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
# Implementation Plan: {기능명}
|
|
2
|
+
|
|
3
|
+
> 스펙이 승인된 후 작성합니다.
|
|
4
|
+
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
## 개요
|
|
8
|
+
|
|
9
|
+
- **기능 ID**: F{번호}
|
|
10
|
+
- **대상 레포**: {{projectName}}-{be|fe}
|
|
11
|
+
- **작성일**: YYYY-MM-DD
|
|
12
|
+
- **상태**: Draft | Review | Approved
|
|
13
|
+
|
|
14
|
+
---
|
|
15
|
+
|
|
16
|
+
## 기술 스택
|
|
17
|
+
|
|
18
|
+
| 구분 | 선택 | 이유 |
|
|
19
|
+
| ---- | ---- | ---- |
|
|
20
|
+
|
|
21
|
+
---
|
|
22
|
+
|
|
23
|
+
## 아키텍처
|
|
24
|
+
|
|
25
|
+
(컴포넌트 구조, 데이터 흐름)
|
|
26
|
+
|
|
27
|
+
---
|
|
28
|
+
|
|
29
|
+
## 파일 구조
|
|
30
|
+
|
|
31
|
+
```
|
|
32
|
+
src/
|
|
33
|
+
├── ...
|
|
34
|
+
```
|
|
35
|
+
|
|
36
|
+
---
|
|
37
|
+
|
|
38
|
+
## 테스트 전략
|
|
39
|
+
|
|
40
|
+
- **단위 테스트**:
|
|
41
|
+
- **통합 테스트**:
|
|
42
|
+
- **E2E 테스트**:
|
|
43
|
+
|
|
44
|
+
---
|
|
45
|
+
|
|
46
|
+
## 관련 문서
|
|
47
|
+
|
|
48
|
+
- Spec: [spec.md](./spec.md)
|
|
49
|
+
- Decisions: [decisions.md](./decisions.md)
|