lee-spec-kit 0.1.5 → 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/dist/index.js +3 -2
- package/package.json +1 -1
- package/templates/en/fullstack/agents/agents.md +8 -0
- package/templates/en/fullstack/agents/git-workflow.md +15 -3
- package/templates/en/fullstack/agents/issue-template.md +18 -0
- package/templates/en/fullstack/agents/pr-template.md +21 -0
- package/templates/en/fullstack/features/feature-base/spec.md +2 -0
- package/templates/en/single/agents/agents.md +8 -0
- package/templates/en/single/agents/git-workflow.md +15 -3
- package/templates/en/single/agents/issue-template.md +20 -0
- package/templates/en/single/agents/pr-template.md +21 -0
- package/templates/en/single/features/feature-base/spec.md +2 -0
- package/templates/ko/fullstack/agents/agents.md +8 -0
- package/templates/ko/fullstack/agents/git-workflow.md +15 -3
- package/templates/ko/fullstack/agents/issue-template.md +18 -0
- package/templates/ko/fullstack/agents/pr-template.md +21 -0
- package/templates/ko/fullstack/features/feature-base/spec.md +2 -0
- package/templates/ko/single/agents/agents.md +8 -0
- package/templates/ko/single/agents/git-workflow.md +15 -3
- package/templates/ko/single/agents/issue-template.md +18 -0
- package/templates/ko/single/agents/pr-template.md +21 -0
- package/templates/ko/single/features/feature-base/spec.md +2 -0
package/dist/index.js
CHANGED
|
@@ -330,7 +330,7 @@ async function getConfig(cwd) {
|
|
|
330
330
|
|
|
331
331
|
// src/commands/feature.ts
|
|
332
332
|
function featureCommand(program2) {
|
|
333
|
-
program2.command("feature <name>").description("Create a new feature folder").option("-r, --repo <repo>", "Repository type: be | fe (fullstack only)").option("--id <id>", "Feature ID (default: auto)").action(async (name, options) => {
|
|
333
|
+
program2.command("feature <name>").description("Create a new feature folder").option("-r, --repo <repo>", "Repository type: be | fe (fullstack only)").option("--id <id>", "Feature ID (default: auto)").option("-d, --desc <description>", "Feature description for spec.md").action(async (name, options) => {
|
|
334
334
|
try {
|
|
335
335
|
await runFeature(name, options);
|
|
336
336
|
} catch (error) {
|
|
@@ -410,7 +410,8 @@ async function runFeature(name, options) {
|
|
|
410
410
|
"YYYY-MM-DD": (/* @__PURE__ */ new Date()).toISOString().split("T")[0],
|
|
411
411
|
"{be|fe}": repo || "",
|
|
412
412
|
"git-dungeon-{be|fe}": repoName,
|
|
413
|
-
"{\uC774\uC288\uBC88\uD638}": ""
|
|
413
|
+
"{\uC774\uC288\uBC88\uD638}": "",
|
|
414
|
+
"{{description}}": options.desc || ""
|
|
414
415
|
};
|
|
415
416
|
if (lang === "en") {
|
|
416
417
|
replacements["\uAE30\uB2A5 ID"] = "Feature ID";
|
package/package.json
CHANGED
|
@@ -69,6 +69,14 @@ docs/
|
|
|
69
69
|
3. Transition status: `[TODO]` → `[DOING]` → `[DONE]`
|
|
70
70
|
4. Commit immediately after task completion
|
|
71
71
|
|
|
72
|
+
### 4. Handling Requests Outside Tasks
|
|
73
|
+
|
|
74
|
+
> When user requests **work not in tasks.md**:
|
|
75
|
+
|
|
76
|
+
1. Ask user if this should be **added to tasks.md**
|
|
77
|
+
2. If approved: Add to tasks.md then execute
|
|
78
|
+
3. If declined: Proceed as temporary work (still included in commit)
|
|
79
|
+
|
|
72
80
|
---
|
|
73
81
|
|
|
74
82
|
## 📋 ADR (Architecture Decision Records)
|
|
@@ -73,14 +73,26 @@ main
|
|
|
73
73
|
git checkout -b feat/{issue-number}-{feature-name}
|
|
74
74
|
```
|
|
75
75
|
|
|
76
|
-
### 2.
|
|
76
|
+
### 2. Document Writing and Commit
|
|
77
|
+
|
|
78
|
+
| Document | Commit Timing | Commit Message Example |
|
|
79
|
+
| ------------ | ----------------------- | ------------------------------ |
|
|
80
|
+
| spec.md | After user approval | `docs(#123): write spec` |
|
|
81
|
+
| plan.md | After user approval | `docs(#123): write plan` |
|
|
82
|
+
| tasks.md | After user approval | `docs(#123): break down tasks` |
|
|
83
|
+
| decisions.md | Included in task commit | (no separate commit) |
|
|
84
|
+
|
|
85
|
+
> 📌 **Do not commit when creating Feature folder.**
|
|
86
|
+
> Commit each document individually **after user approval**.
|
|
87
|
+
|
|
88
|
+
### 3. Auto Commit on Task Completion
|
|
77
89
|
|
|
78
90
|
```bash
|
|
79
91
|
git add .
|
|
80
92
|
git commit -m "{type}(#{issue}): {task-description}"
|
|
81
93
|
```
|
|
82
94
|
|
|
83
|
-
###
|
|
95
|
+
### 4. Create PR on Feature Completion
|
|
84
96
|
|
|
85
97
|
```bash
|
|
86
98
|
git push origin feat/{issue-number}-{feature-name}
|
|
@@ -89,7 +101,7 @@ gh pr create --title "feat(#{issue}): {feature-title}" \
|
|
|
89
101
|
--base main
|
|
90
102
|
```
|
|
91
103
|
|
|
92
|
-
###
|
|
104
|
+
### 5. Merge
|
|
93
105
|
|
|
94
106
|
```bash
|
|
95
107
|
git checkout main
|
|
@@ -82,6 +82,24 @@ In GitHub Issues, use different link formats **based on file location**:
|
|
|
82
82
|
| `frontend` | FE related |
|
|
83
83
|
| `priority:high` | High priority |
|
|
84
84
|
|
|
85
|
+
> ⚠️ If a label does not exist, create it first:
|
|
86
|
+
>
|
|
87
|
+
> ```bash
|
|
88
|
+
> gh label create "label-name" --description "description" --color "color-code"
|
|
89
|
+
> ```
|
|
90
|
+
|
|
91
|
+
---
|
|
92
|
+
|
|
93
|
+
## Assignee Rules
|
|
94
|
+
|
|
95
|
+
- Default: Self-assign (`--assignee @me`)
|
|
96
|
+
- When assigning others, **confirm with user** first
|
|
97
|
+
- Examples:
|
|
98
|
+
```bash
|
|
99
|
+
gh issue create --assignee @me ...
|
|
100
|
+
gh issue create --assignee username ...
|
|
101
|
+
```
|
|
102
|
+
|
|
85
103
|
---
|
|
86
104
|
|
|
87
105
|
## Body Input Rules (Shell Execution Prevention)
|
|
@@ -67,6 +67,27 @@ Closes #{issue-number}
|
|
|
67
67
|
|
|
68
68
|
---
|
|
69
69
|
|
|
70
|
+
## Label Rules
|
|
71
|
+
|
|
72
|
+
- Specify appropriate labels when creating PR (`--label`)
|
|
73
|
+
- If a label does not exist, create it first:
|
|
74
|
+
```bash
|
|
75
|
+
gh label create "label-name" --description "description" --color "color-code"
|
|
76
|
+
```
|
|
77
|
+
|
|
78
|
+
---
|
|
79
|
+
|
|
80
|
+
## Assignee Rules
|
|
81
|
+
|
|
82
|
+
- Default: Self-assign (`--assignee @me`)
|
|
83
|
+
- Use `--reviewer` option to specify reviewers
|
|
84
|
+
- Examples:
|
|
85
|
+
```bash
|
|
86
|
+
gh pr create --assignee @me --reviewer reviewer-username ...
|
|
87
|
+
```
|
|
88
|
+
|
|
89
|
+
---
|
|
90
|
+
|
|
70
91
|
## Body Input Rules (Shell Execution Prevention)
|
|
71
92
|
|
|
72
93
|
- PR body should use **`--body-file` by default**.
|
|
@@ -56,6 +56,14 @@ docs/
|
|
|
56
56
|
3. Status transition: `[TODO]` → `[DOING]` → `[DONE]`
|
|
57
57
|
4. Commit on task completion
|
|
58
58
|
|
|
59
|
+
### 3. Handling Requests Outside Tasks
|
|
60
|
+
|
|
61
|
+
> When user requests **work not in tasks.md**:
|
|
62
|
+
|
|
63
|
+
1. Ask user if this should be **added to tasks.md**
|
|
64
|
+
2. If approved: Add to tasks.md then execute
|
|
65
|
+
3. If declined: Proceed as temporary work (still included in commit)
|
|
66
|
+
|
|
59
67
|
---
|
|
60
68
|
|
|
61
69
|
## 📋 ADR (Architecture Decision Records)
|
|
@@ -80,7 +80,19 @@ git checkout -b feat/{issue-number}-{feature-name}
|
|
|
80
80
|
|
|
81
81
|
> When creating/modifying issues/PRs with `gh`, share the title/body/labels first and **wait for user confirmation (OK)** before proceeding.
|
|
82
82
|
|
|
83
|
-
### 2.
|
|
83
|
+
### 2. Document Writing and Commit
|
|
84
|
+
|
|
85
|
+
| Document | Commit Timing | Commit Message Example |
|
|
86
|
+
| ------------ | ----------------------- | ------------------------------ |
|
|
87
|
+
| spec.md | After user approval | `docs(#123): write spec` |
|
|
88
|
+
| plan.md | After user approval | `docs(#123): write plan` |
|
|
89
|
+
| tasks.md | After user approval | `docs(#123): break down tasks` |
|
|
90
|
+
| decisions.md | Included in task commit | (no separate commit) |
|
|
91
|
+
|
|
92
|
+
> 📌 **Do not commit when creating Feature folder.**
|
|
93
|
+
> Commit each document individually **after user approval**.
|
|
94
|
+
|
|
95
|
+
### 3. Auto Commit on Task Completion
|
|
84
96
|
|
|
85
97
|
When a task is completed:
|
|
86
98
|
|
|
@@ -91,7 +103,7 @@ git commit -m "{type}(#{issue}): {task-description}"
|
|
|
91
103
|
|
|
92
104
|
> Before running `git commit`, share the commit message and file list first and **wait for user confirmation (OK)** before proceeding.
|
|
93
105
|
|
|
94
|
-
###
|
|
106
|
+
### 4. Create PR on Feature Completion
|
|
95
107
|
|
|
96
108
|
When all tasks are completed:
|
|
97
109
|
|
|
@@ -102,7 +114,7 @@ gh pr create --title "feat(#{issue}): {feature-title}" \
|
|
|
102
114
|
--base main
|
|
103
115
|
```
|
|
104
116
|
|
|
105
|
-
###
|
|
117
|
+
### 5. Merge
|
|
106
118
|
|
|
107
119
|
When all reviews are resolved:
|
|
108
120
|
|
|
@@ -86,6 +86,24 @@ In GitHub Issues, use different link formats **based on file location**:
|
|
|
86
86
|
| `frontend` | FE related |
|
|
87
87
|
| `priority:high` | High priority |
|
|
88
88
|
|
|
89
|
+
> ⚠️ If a label does not exist, create it first:
|
|
90
|
+
>
|
|
91
|
+
> ```bash
|
|
92
|
+
> gh label create "label-name" --description "description" --color "color-code"
|
|
93
|
+
> ```
|
|
94
|
+
|
|
95
|
+
---
|
|
96
|
+
|
|
97
|
+
## Assignee Rules
|
|
98
|
+
|
|
99
|
+
- Default: Self-assign (`--assignee @me`)
|
|
100
|
+
- When assigning others, **confirm with user** first
|
|
101
|
+
- Examples:
|
|
102
|
+
```bash
|
|
103
|
+
gh issue create --assignee @me ...
|
|
104
|
+
gh issue create --assignee username ...
|
|
105
|
+
```
|
|
106
|
+
|
|
89
107
|
---
|
|
90
108
|
|
|
91
109
|
## Body Input Rules (Shell Execution Prevention)
|
|
@@ -94,3 +112,5 @@ In GitHub Issues, use different link formats **based on file location**:
|
|
|
94
112
|
- If the body contains backticks (`) or `$()`and is placed directly in`"..."`, it may be **interpreted by the shell**.
|
|
95
113
|
- For multi-line bodies, use **single-quoted heredoc** like `cat <<'EOF'`,
|
|
96
114
|
and handle variables via **placeholder → sed substitution**.
|
|
115
|
+
|
|
116
|
+
and handle variables via **placeholder → sed substitution**.
|
|
@@ -83,6 +83,27 @@ gh pr create \
|
|
|
83
83
|
|
|
84
84
|
---
|
|
85
85
|
|
|
86
|
+
## Label Rules
|
|
87
|
+
|
|
88
|
+
- Specify appropriate labels when creating PR (`--label`)
|
|
89
|
+
- If a label does not exist, create it first:
|
|
90
|
+
```bash
|
|
91
|
+
gh label create "label-name" --description "description" --color "color-code"
|
|
92
|
+
```
|
|
93
|
+
|
|
94
|
+
---
|
|
95
|
+
|
|
96
|
+
## Assignee Rules
|
|
97
|
+
|
|
98
|
+
- Default: Self-assign (`--assignee @me`)
|
|
99
|
+
- Use `--reviewer` option to specify reviewers
|
|
100
|
+
- Examples:
|
|
101
|
+
```bash
|
|
102
|
+
gh pr create --assignee @me --reviewer reviewer-username ...
|
|
103
|
+
```
|
|
104
|
+
|
|
105
|
+
---
|
|
106
|
+
|
|
86
107
|
## Body Input Rules (Shell Execution Prevention)
|
|
87
108
|
|
|
88
109
|
- PR body should use **`--body-file` by default**.
|
|
@@ -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) 규칙
|
|
@@ -80,7 +80,19 @@ git checkout -b feat/{issue-number}-{feature-name}
|
|
|
80
80
|
|
|
81
81
|
> `gh`로 이슈/PR 생성·수정 시 작성할 제목/본문/라벨을 먼저 공유하고 **반드시** 사용자 확인(OK) 후 진행합니다.
|
|
82
82
|
|
|
83
|
-
### 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. 태스크 완료 시 자동 커밋
|
|
84
96
|
|
|
85
97
|
태스크 하나가 완료되면:
|
|
86
98
|
|
|
@@ -91,7 +103,7 @@ git commit -m "{type}(#{issue}): {task-description}"
|
|
|
91
103
|
|
|
92
104
|
> `git commit` 실행 전 커밋 메시지와 포함될 파일 목록을 먼저 공유하고 **반드시** 사용자 확인(OK) 후 진행합니다.
|
|
93
105
|
|
|
94
|
-
###
|
|
106
|
+
### 4. Feature 완료 시 PR 생성
|
|
95
107
|
|
|
96
108
|
모든 태스크 완료 시:
|
|
97
109
|
|
|
@@ -102,7 +114,7 @@ gh pr create --title "feat(#{issue}): {feature-title}" \
|
|
|
102
114
|
--base main
|
|
103
115
|
```
|
|
104
116
|
|
|
105
|
-
###
|
|
117
|
+
### 5. 머지
|
|
106
118
|
|
|
107
119
|
모든 리뷰 해결 시:
|
|
108
120
|
|
|
@@ -86,6 +86,24 @@ GitHub Issue에서 링크는 **파일 위치에 따라** 다르게 작성:
|
|
|
86
86
|
| `frontend` | FE 관련 |
|
|
87
87
|
| `priority:high` | 높은 우선순위 |
|
|
88
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
|
+
|
|
89
107
|
---
|
|
90
108
|
|
|
91
109
|
## 본문 입력 규칙 (셸 실행 방지)
|
|
@@ -81,6 +81,27 @@ gh pr create \
|
|
|
81
81
|
|
|
82
82
|
---
|
|
83
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
|
+
|
|
84
105
|
## 본문 입력 규칙 (셸 실행 방지)
|
|
85
106
|
|
|
86
107
|
- PR 본문은 **`--body-file` 사용을 기본**으로 한다.
|
|
@@ -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) 규칙
|
|
@@ -80,7 +80,19 @@ git checkout -b feat/{issue-number}-{feature-name}
|
|
|
80
80
|
|
|
81
81
|
> `gh`로 이슈/PR 생성·수정 시 작성할 제목/본문/라벨을 먼저 공유하고 **반드시** 사용자 확인(OK) 후 진행합니다.
|
|
82
82
|
|
|
83
|
-
### 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. 태스크 완료 시 자동 커밋
|
|
84
96
|
|
|
85
97
|
태스크 하나가 완료되면:
|
|
86
98
|
|
|
@@ -91,7 +103,7 @@ git commit -m "{type}(#{issue}): {task-description}"
|
|
|
91
103
|
|
|
92
104
|
> `git commit` 실행 전 커밋 메시지와 포함될 파일 목록을 먼저 공유하고 **반드시** 사용자 확인(OK) 후 진행합니다.
|
|
93
105
|
|
|
94
|
-
###
|
|
106
|
+
### 4. Feature 완료 시 PR 생성
|
|
95
107
|
|
|
96
108
|
모든 태스크 완료 시:
|
|
97
109
|
|
|
@@ -102,7 +114,7 @@ gh pr create --title "feat(#{issue}): {feature-title}" \
|
|
|
102
114
|
--base main
|
|
103
115
|
```
|
|
104
116
|
|
|
105
|
-
###
|
|
117
|
+
### 5. 머지
|
|
106
118
|
|
|
107
119
|
모든 리뷰 해결 시:
|
|
108
120
|
|
|
@@ -86,6 +86,24 @@ GitHub Issue에서 링크는 **파일 위치에 따라** 다르게 작성:
|
|
|
86
86
|
| `frontend` | FE 관련 |
|
|
87
87
|
| `priority:high` | 높은 우선순위 |
|
|
88
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
|
+
|
|
89
107
|
---
|
|
90
108
|
|
|
91
109
|
## 본문 입력 규칙 (셸 실행 방지)
|
|
@@ -81,6 +81,27 @@ gh pr create \
|
|
|
81
81
|
|
|
82
82
|
---
|
|
83
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
|
+
|
|
84
105
|
## 본문 입력 규칙 (셸 실행 방지)
|
|
85
106
|
|
|
86
107
|
- PR 본문은 **`--body-file` 사용을 기본**으로 한다.
|