codingbuddy-rules 3.1.1 → 3.1.2
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/.ai-rules/adapters/antigravity.md +48 -0
- package/.ai-rules/adapters/claude-code.md +48 -0
- package/.ai-rules/adapters/codex.md +48 -0
- package/.ai-rules/adapters/cursor.md +48 -0
- package/.ai-rules/adapters/kiro.md +48 -0
- package/.ai-rules/adapters/q.md +48 -0
- package/.ai-rules/agents/accessibility-specialist.json +0 -4
- package/.ai-rules/agents/act-mode.json +0 -15
- package/.ai-rules/agents/agent-architect.json +0 -14
- package/.ai-rules/agents/ai-ml-engineer.json +0 -17
- package/.ai-rules/agents/architecture-specialist.json +0 -4
- package/.ai-rules/agents/backend-developer.json +0 -22
- package/.ai-rules/agents/code-quality-specialist.json +0 -4
- package/.ai-rules/agents/code-reviewer.json +0 -50
- package/.ai-rules/agents/data-engineer.json +0 -18
- package/.ai-rules/agents/devops-engineer.json +0 -14
- package/.ai-rules/agents/documentation-specialist.json +0 -4
- package/.ai-rules/agents/eval-mode.json +0 -15
- package/.ai-rules/agents/event-architecture-specialist.json +0 -4
- package/.ai-rules/agents/frontend-developer.json +0 -21
- package/.ai-rules/agents/i18n-specialist.json +0 -4
- package/.ai-rules/agents/integration-specialist.json +0 -4
- package/.ai-rules/agents/migration-specialist.json +0 -4
- package/.ai-rules/agents/mobile-developer.json +0 -18
- package/.ai-rules/agents/observability-specialist.json +0 -4
- package/.ai-rules/agents/performance-specialist.json +0 -4
- package/.ai-rules/agents/plan-mode.json +0 -13
- package/.ai-rules/agents/platform-engineer.json +0 -16
- package/.ai-rules/agents/security-specialist.json +0 -4
- package/.ai-rules/agents/seo-specialist.json +0 -4
- package/.ai-rules/agents/solution-architect.json +0 -14
- package/.ai-rules/agents/technical-planner.json +0 -15
- package/.ai-rules/agents/test-strategy-specialist.json +0 -4
- package/.ai-rules/agents/tooling-engineer.json +0 -13
- package/.ai-rules/agents/ui-ux-designer.json +0 -12
- package/.ai-rules/keyword-modes.json +18 -4
- package/.ai-rules/skills/README.md +6 -0
- package/.ai-rules/skills/pr-all-in-one/SKILL.md +364 -0
- package/.ai-rules/skills/pr-all-in-one/configuration-guide.md +316 -0
- package/.ai-rules/skills/pr-all-in-one/issue-patterns.md +40 -0
- package/.ai-rules/skills/pr-all-in-one/pr-templates.md +154 -0
- package/package.json +1 -1
|
@@ -0,0 +1,316 @@
|
|
|
1
|
+
# Configuration Guide
|
|
2
|
+
|
|
3
|
+
## Settings
|
|
4
|
+
|
|
5
|
+
| Setting | Type | Required | Default | Description |
|
|
6
|
+
|---------|------|----------|---------|-------------|
|
|
7
|
+
| `defaultTargetBranch` | string | ✅ | - | PR target branch |
|
|
8
|
+
| `issueTracker` | enum | ✅ | - | `jira`, `github`, `linear`, `gitlab`, `custom` |
|
|
9
|
+
| `issuePattern` | regex | ✅ | - | Issue ID matching pattern |
|
|
10
|
+
| `issueUrlTemplate` | string | ❌ | - | Issue URL template (`{id}` placeholder) |
|
|
11
|
+
| `prLanguage` | enum | ✅ | `en` | `en`, `ko`, `bilingual` |
|
|
12
|
+
| `commitLanguage` | enum | ❌ | `en` | Commit message language |
|
|
13
|
+
| `conventionalCommits` | boolean | ❌ | `true` | Use Conventional Commits |
|
|
14
|
+
| `branchNaming.pattern` | string | ❌ | `{type}/{description}` | Branch name pattern |
|
|
15
|
+
| `branchNaming.types` | array | ❌ | `["feat","fix","chore","docs","refactor","test"]` | Allowed types |
|
|
16
|
+
| `draftByDefault` | boolean | ❌ | `true` | Create PR as draft |
|
|
17
|
+
|
|
18
|
+
## Interactive Setup Flow
|
|
19
|
+
|
|
20
|
+
The skill uses an interactive 4-step configuration flow:
|
|
21
|
+
|
|
22
|
+
```
|
|
23
|
+
┌─────────────────────────────────────────────┐
|
|
24
|
+
│ PR All-in-One Configuration Setup │
|
|
25
|
+
└─────────────────────────────────────────────┘
|
|
26
|
+
⬇
|
|
27
|
+
[1/4] PR Target Branch
|
|
28
|
+
┌──────────────────────────┐
|
|
29
|
+
│ Select your default PR │
|
|
30
|
+
│ target branch │
|
|
31
|
+
│ [main] [master] [dev] │
|
|
32
|
+
└──────────────────────────┘
|
|
33
|
+
⬇
|
|
34
|
+
[2/4] Issue Tracker
|
|
35
|
+
┌──────────────────────────┐
|
|
36
|
+
│ Which issue tracker? │
|
|
37
|
+
│ [JIRA] [GitHub Issues] │
|
|
38
|
+
│ [Linear] [GitLab] │
|
|
39
|
+
│ [Custom] │
|
|
40
|
+
└──────────────────────────┘
|
|
41
|
+
⬇
|
|
42
|
+
[3/4] PR Language
|
|
43
|
+
┌──────────────────────────┐
|
|
44
|
+
│ PR description language │
|
|
45
|
+
│ [English] [한국어] │
|
|
46
|
+
│ [Bilingual] (EN + KO) │
|
|
47
|
+
└──────────────────────────┘
|
|
48
|
+
⬇
|
|
49
|
+
[4/4] Issue URL Template (Optional)
|
|
50
|
+
┌──────────────────────────┐
|
|
51
|
+
│ Issue URL template for │
|
|
52
|
+
│ linking in PR body │
|
|
53
|
+
│ e.g.: │
|
|
54
|
+
│ https://domain.net/{id} │
|
|
55
|
+
└──────────────────────────┘
|
|
56
|
+
⬇
|
|
57
|
+
✅ Configuration Complete
|
|
58
|
+
```
|
|
59
|
+
|
|
60
|
+
### Step Details
|
|
61
|
+
|
|
62
|
+
#### Step 1: PR Target Branch
|
|
63
|
+
Defines the default branch for pull requests. Common options:
|
|
64
|
+
- `main` - Modern default branch name
|
|
65
|
+
- `master` - Legacy default branch name
|
|
66
|
+
- `dev` - Development branch
|
|
67
|
+
- `develop` - Extended development branch
|
|
68
|
+
|
|
69
|
+
#### Step 2: Issue Tracker
|
|
70
|
+
Selects which issue tracking system is used:
|
|
71
|
+
- **JIRA**: Enterprise issue tracking
|
|
72
|
+
- **GitHub Issues**: GitHub's native issue system
|
|
73
|
+
- **Linear**: Modern issue tracking
|
|
74
|
+
- **GitLab**: GitLab's issue system
|
|
75
|
+
- **Custom**: For other trackers
|
|
76
|
+
|
|
77
|
+
#### Step 3: PR Language
|
|
78
|
+
|
|
79
|
+
Determines the language for PR descriptions:
|
|
80
|
+
- **English**: PRs written in English only
|
|
81
|
+
- **한국어**: PRs written in Korean only
|
|
82
|
+
- **Bilingual**: PRs include both English and Korean
|
|
83
|
+
|
|
84
|
+
##### Detailed Language Behavior
|
|
85
|
+
|
|
86
|
+
| Value | PR Title | PR Body | Use Case |
|
|
87
|
+
|-------|----------|---------|----------|
|
|
88
|
+
| `en` | English | English only | International teams, open source projects |
|
|
89
|
+
| `ko` | 한국어 | 한국어만 | Korean-only teams, internal projects |
|
|
90
|
+
| `bilingual` | English | English + Korean | Mixed teams, global + local collaboration |
|
|
91
|
+
|
|
92
|
+
##### Language Examples
|
|
93
|
+
|
|
94
|
+
**`en` (English)**:
|
|
95
|
+
- Title: `feat: add user authentication`
|
|
96
|
+
- Body: English-only description
|
|
97
|
+
- Best for: Open source, international collaboration
|
|
98
|
+
|
|
99
|
+
**`ko` (Korean)**:
|
|
100
|
+
- Title: `feat: 사용자 인증 추가`
|
|
101
|
+
- Body: 한국어만 사용한 설명
|
|
102
|
+
- Best for: 한국어 기반 팀, 내부 프로젝트
|
|
103
|
+
|
|
104
|
+
**`bilingual` (Both)**:
|
|
105
|
+
- Title: `feat: add user authentication` (English)
|
|
106
|
+
- Body: English description followed by Korean translation
|
|
107
|
+
- Best for: 글로벌 팀과 한국 팀이 함께 협업하는 프로젝트
|
|
108
|
+
|
|
109
|
+
#### Step 4: Issue URL Template
|
|
110
|
+
Optional template for auto-generating issue links in PR bodies. Use `{id}` placeholder for the issue ID.
|
|
111
|
+
|
|
112
|
+
## Configuration Examples
|
|
113
|
+
|
|
114
|
+
### JIRA Configuration
|
|
115
|
+
|
|
116
|
+
```json
|
|
117
|
+
{
|
|
118
|
+
"defaultTargetBranch": "main",
|
|
119
|
+
"issueTracker": "jira",
|
|
120
|
+
"issuePattern": "[A-Z]+-[0-9]+",
|
|
121
|
+
"issueUrlTemplate": "https://your-domain.atlassian.net/browse/{id}",
|
|
122
|
+
"prLanguage": "bilingual",
|
|
123
|
+
"commitLanguage": "en",
|
|
124
|
+
"conventionalCommits": true,
|
|
125
|
+
"branchNaming": {
|
|
126
|
+
"pattern": "{type}/{description}",
|
|
127
|
+
"types": ["feat", "fix", "chore", "docs", "refactor", "test"]
|
|
128
|
+
},
|
|
129
|
+
"draftByDefault": true
|
|
130
|
+
}
|
|
131
|
+
```
|
|
132
|
+
|
|
133
|
+
**Usage**: JIRA-101, PROJ-456
|
|
134
|
+
|
|
135
|
+
### GitHub Issues Configuration
|
|
136
|
+
|
|
137
|
+
```json
|
|
138
|
+
{
|
|
139
|
+
"defaultTargetBranch": "main",
|
|
140
|
+
"issueTracker": "github",
|
|
141
|
+
"issuePattern": "#[0-9]+",
|
|
142
|
+
"prLanguage": "en",
|
|
143
|
+
"commitLanguage": "en",
|
|
144
|
+
"conventionalCommits": true,
|
|
145
|
+
"branchNaming": {
|
|
146
|
+
"pattern": "{type}/{description}",
|
|
147
|
+
"types": ["feat", "fix", "chore", "docs", "refactor", "test"]
|
|
148
|
+
},
|
|
149
|
+
"draftByDefault": true
|
|
150
|
+
}
|
|
151
|
+
```
|
|
152
|
+
|
|
153
|
+
**Usage**: #123, #456
|
|
154
|
+
|
|
155
|
+
### Linear Configuration
|
|
156
|
+
|
|
157
|
+
```json
|
|
158
|
+
{
|
|
159
|
+
"defaultTargetBranch": "main",
|
|
160
|
+
"issueTracker": "linear",
|
|
161
|
+
"issuePattern": "[A-Z]+-[0-9]+",
|
|
162
|
+
"issueUrlTemplate": "https://linear.app/your-team/issue/{id}",
|
|
163
|
+
"prLanguage": "en",
|
|
164
|
+
"commitLanguage": "en",
|
|
165
|
+
"conventionalCommits": true,
|
|
166
|
+
"branchNaming": {
|
|
167
|
+
"pattern": "{type}/{description}",
|
|
168
|
+
"types": ["feat", "fix", "chore", "docs", "refactor", "test"]
|
|
169
|
+
},
|
|
170
|
+
"draftByDefault": false
|
|
171
|
+
}
|
|
172
|
+
```
|
|
173
|
+
|
|
174
|
+
**Usage**: ENG-123, PROJ-456
|
|
175
|
+
|
|
176
|
+
### GitLab Configuration
|
|
177
|
+
|
|
178
|
+
```json
|
|
179
|
+
{
|
|
180
|
+
"defaultTargetBranch": "master",
|
|
181
|
+
"issueTracker": "gitlab",
|
|
182
|
+
"issuePattern": "#[0-9]+",
|
|
183
|
+
"prLanguage": "en",
|
|
184
|
+
"commitLanguage": "en",
|
|
185
|
+
"conventionalCommits": true,
|
|
186
|
+
"branchNaming": {
|
|
187
|
+
"pattern": "{type}/{description}",
|
|
188
|
+
"types": ["feat", "fix", "chore", "docs", "refactor", "test"]
|
|
189
|
+
},
|
|
190
|
+
"draftByDefault": false
|
|
191
|
+
}
|
|
192
|
+
```
|
|
193
|
+
|
|
194
|
+
**Usage**: #123, #456
|
|
195
|
+
|
|
196
|
+
### Custom Issue Tracker Configuration
|
|
197
|
+
|
|
198
|
+
```json
|
|
199
|
+
{
|
|
200
|
+
"defaultTargetBranch": "develop",
|
|
201
|
+
"issueTracker": "custom",
|
|
202
|
+
"issuePattern": "CUSTOM-[0-9]{4,}",
|
|
203
|
+
"issueUrlTemplate": "https://internal.company.com/issues/{id}",
|
|
204
|
+
"prLanguage": "bilingual",
|
|
205
|
+
"commitLanguage": "ko",
|
|
206
|
+
"conventionalCommits": true,
|
|
207
|
+
"branchNaming": {
|
|
208
|
+
"pattern": "{type}/{description}",
|
|
209
|
+
"types": ["feat", "fix", "chore", "docs", "refactor", "test", "style", "perf"]
|
|
210
|
+
},
|
|
211
|
+
"draftByDefault": true
|
|
212
|
+
}
|
|
213
|
+
```
|
|
214
|
+
|
|
215
|
+
**Usage**: CUSTOM-0001, CUSTOM-1234
|
|
216
|
+
|
|
217
|
+
## Configuration File Location
|
|
218
|
+
|
|
219
|
+
Configuration is stored at project root:
|
|
220
|
+
```
|
|
221
|
+
.claude/pr-config.json
|
|
222
|
+
```
|
|
223
|
+
|
|
224
|
+
Example configuration file: `.claude/pr-config.example.json`
|
|
225
|
+
|
|
226
|
+
## Updating Configuration
|
|
227
|
+
|
|
228
|
+
To update an existing configuration:
|
|
229
|
+
1. Edit `.claude/pr-config.json` directly, or
|
|
230
|
+
2. Delete the file and run `/pr-all-in-one` to restart interactive setup
|
|
231
|
+
|
|
232
|
+
## Issue Pattern Reference
|
|
233
|
+
|
|
234
|
+
### Common Issue Patterns
|
|
235
|
+
|
|
236
|
+
| Tracker | Pattern | Example |
|
|
237
|
+
|---------|---------|---------|
|
|
238
|
+
| JIRA | `[A-Z]+-[0-9]+` | `PROJ-123`, `ENG-456` |
|
|
239
|
+
| GitHub | `#[0-9]+` | `#123`, `#456` |
|
|
240
|
+
| Linear | `[A-Z]+-[0-9]+` | `ENG-123`, `DES-456` |
|
|
241
|
+
| GitLab | `#[0-9]+` or `GL-[0-9]+` | `#123`, `GL-456` |
|
|
242
|
+
| Azure DevOps | `#[0-9]+` | `#123`, `#456` |
|
|
243
|
+
| YouTrack | `[A-Z]+-[0-9]+` | `PROJ-123`, `SUP-456` |
|
|
244
|
+
|
|
245
|
+
## Conventional Commits Format
|
|
246
|
+
|
|
247
|
+
When `conventionalCommits` is enabled, commit messages follow this format:
|
|
248
|
+
|
|
249
|
+
```
|
|
250
|
+
<type>[optional scope]: <description>
|
|
251
|
+
|
|
252
|
+
[optional body]
|
|
253
|
+
|
|
254
|
+
[optional footer(s)]
|
|
255
|
+
```
|
|
256
|
+
|
|
257
|
+
### Types
|
|
258
|
+
|
|
259
|
+
- `feat`: A new feature
|
|
260
|
+
- `fix`: A bug fix
|
|
261
|
+
- `chore`: Changes that don't modify code or test files
|
|
262
|
+
- `docs`: Documentation changes
|
|
263
|
+
- `refactor`: Code changes that don't fix bugs or add features
|
|
264
|
+
- `test`: Adding or updating tests
|
|
265
|
+
- `style`: Code style changes (formatting, missing semicolons, etc.)
|
|
266
|
+
- `perf`: Performance improvements
|
|
267
|
+
|
|
268
|
+
### Examples
|
|
269
|
+
|
|
270
|
+
```
|
|
271
|
+
feat(auth): add oauth2 provider integration
|
|
272
|
+
|
|
273
|
+
fix: prevent race condition in session handler
|
|
274
|
+
|
|
275
|
+
docs: update API documentation
|
|
276
|
+
|
|
277
|
+
refactor(core): simplify request handling logic
|
|
278
|
+
```
|
|
279
|
+
|
|
280
|
+
## Branch Naming Convention
|
|
281
|
+
|
|
282
|
+
The default branch naming pattern is: `{type}/{description}`
|
|
283
|
+
|
|
284
|
+
### Examples
|
|
285
|
+
|
|
286
|
+
```
|
|
287
|
+
feat/add-user-authentication
|
|
288
|
+
fix/resolve-memory-leak
|
|
289
|
+
chore/update-dependencies
|
|
290
|
+
docs/api-documentation
|
|
291
|
+
refactor/simplify-request-handler
|
|
292
|
+
test/add-integration-tests
|
|
293
|
+
```
|
|
294
|
+
|
|
295
|
+
### Pattern with Issue ID
|
|
296
|
+
|
|
297
|
+
You can include the issue ID in branch names using the `{issue}` placeholder:
|
|
298
|
+
|
|
299
|
+
**Pattern**: `{type}/{issue}-{description}`
|
|
300
|
+
|
|
301
|
+
**Examples**:
|
|
302
|
+
```
|
|
303
|
+
feat/PROJ-123-add-user-authentication
|
|
304
|
+
fix/BUG-456-resolve-memory-leak
|
|
305
|
+
chore/TASK-789-update-dependencies
|
|
306
|
+
```
|
|
307
|
+
|
|
308
|
+
**Note**: The `{issue}` placeholder is extracted from the issue ID argument or auto-detected from branch context.
|
|
309
|
+
|
|
310
|
+
## Notes
|
|
311
|
+
|
|
312
|
+
- All configuration is validated before being saved
|
|
313
|
+
- Issue patterns are compiled as regex patterns for matching
|
|
314
|
+
- URL templates support `{id}` placeholder for issue ID substitution
|
|
315
|
+
- Bilingual mode generates both English and Korean PR descriptions
|
|
316
|
+
- Draft PRs can be automatically marked as ready for review
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
# Issue Patterns Reference
|
|
2
|
+
|
|
3
|
+
## Supported Issue Trackers
|
|
4
|
+
|
|
5
|
+
| Tracker | Pattern | Example | URL Template |
|
|
6
|
+
|---------|---------|---------|--------------|
|
|
7
|
+
| **JIRA** | `[A-Z]+-[0-9]+` | `PROJ-12345`, `STUDIO-456` | `https://{domain}.atlassian.net/browse/{id}` |
|
|
8
|
+
| **GitHub Issues** | `#[0-9]+` | `#123`, `#4567` | `https://github.com/{owner}/{repo}/issues/{id}` |
|
|
9
|
+
| **Linear** | `[A-Z]+-[0-9]+` | `ENG-123`, `PROD-456` | `https://linear.app/{team}/issue/{id}` |
|
|
10
|
+
| **GitLab** | `#[0-9]+` | `#123` | `https://gitlab.com/{group}/{project}/-/issues/{id}` |
|
|
11
|
+
| **Azure DevOps** | `#[0-9]+` | `#12345` | `https://dev.azure.com/{org}/{project}/_workitems/edit/{id}` |
|
|
12
|
+
| **Shortcut** | `sc-[0-9]+` | `sc-12345` | `https://app.shortcut.com/{org}/story/{id}` |
|
|
13
|
+
|
|
14
|
+
## Extracting Issue ID from Branch Name
|
|
15
|
+
|
|
16
|
+
| Branch Name | Extracted ID | Tracker |
|
|
17
|
+
|-------------|--------------|---------|
|
|
18
|
+
| `feat/PROJ-123-add-login` | `PROJ-123` | JIRA |
|
|
19
|
+
| `fix/123-bug-fix` | `#123` | GitHub |
|
|
20
|
+
| `feature/ENG-456-new-feature` | `ENG-456` | Linear |
|
|
21
|
+
| `bugfix/STUDIO-789-fix-issue` | `STUDIO-789` | JIRA |
|
|
22
|
+
| `chore/sc-12345-cleanup` | `sc-12345` | Shortcut |
|
|
23
|
+
|
|
24
|
+
## Resolution Priority
|
|
25
|
+
|
|
26
|
+
1. **Explicit argument**: `/pr-all-in-one main PROJ-123`
|
|
27
|
+
2. **Branch name extraction**: Uses configured `issuePattern`
|
|
28
|
+
3. **N/A**: If not found, no issue linking
|
|
29
|
+
|
|
30
|
+
## Custom Patterns
|
|
31
|
+
|
|
32
|
+
For custom issue trackers, define in `pr-config.json`:
|
|
33
|
+
|
|
34
|
+
```json
|
|
35
|
+
{
|
|
36
|
+
"issueTracker": "custom",
|
|
37
|
+
"issuePattern": "CUSTOM-[0-9]+",
|
|
38
|
+
"issueUrlTemplate": "https://tracker.example.com/issues/{id}"
|
|
39
|
+
}
|
|
40
|
+
```
|
|
@@ -0,0 +1,154 @@
|
|
|
1
|
+
# PR Templates
|
|
2
|
+
|
|
3
|
+
## Template Selection Logic
|
|
4
|
+
|
|
5
|
+
PR templates are automatically selected based on the `prLanguage` setting:
|
|
6
|
+
|
|
7
|
+
(PR 템플릿은 `prLanguage` 설정에 따라 자동 선택됩니다)
|
|
8
|
+
|
|
9
|
+
| `prLanguage` | Template Used | PR Title | PR Body |
|
|
10
|
+
|--------------|---------------|----------|---------|
|
|
11
|
+
| `en` | English Template | English | English only |
|
|
12
|
+
| `ko` | Korean Template | 한국어 | 한국어만 |
|
|
13
|
+
| `bilingual` | Bilingual Template | English | English + Korean |
|
|
14
|
+
|
|
15
|
+
### Selection Flow
|
|
16
|
+
|
|
17
|
+
```
|
|
18
|
+
┌─────────────────────────────────┐
|
|
19
|
+
│ Read prLanguage from config │
|
|
20
|
+
└───────────────┬─────────────────┘
|
|
21
|
+
│
|
|
22
|
+
┌───────────┼───────────┐
|
|
23
|
+
│ │ │
|
|
24
|
+
▼ ▼ ▼
|
|
25
|
+
┌───────┐ ┌───────┐ ┌──────────┐
|
|
26
|
+
│ "en" │ │ "ko" │ │"bilingual"│
|
|
27
|
+
└───┬───┘ └───┬───┘ └────┬─────┘
|
|
28
|
+
│ │ │
|
|
29
|
+
▼ ▼ ▼
|
|
30
|
+
┌───────┐ ┌───────┐ ┌──────────┐
|
|
31
|
+
│English│ │Korean │ │ Both EN │
|
|
32
|
+
│Template│ │Template│ │ + KO │
|
|
33
|
+
└───────┘ └───────┘ └──────────┘
|
|
34
|
+
```
|
|
35
|
+
|
|
36
|
+
## Default Templates
|
|
37
|
+
|
|
38
|
+
### English Template
|
|
39
|
+
<!-- Used when `prLanguage: "en"` - for international teams and open source -->
|
|
40
|
+
```markdown
|
|
41
|
+
## Context
|
|
42
|
+
|
|
43
|
+
**Related Links:**
|
|
44
|
+
- Issue: [{issue_id}]({issue_url})
|
|
45
|
+
|
|
46
|
+
**Description Details:**
|
|
47
|
+
|
|
48
|
+
{description}
|
|
49
|
+
|
|
50
|
+
## Screenshots or Videos
|
|
51
|
+
|
|
52
|
+
{screenshots_section}
|
|
53
|
+
```
|
|
54
|
+
|
|
55
|
+
### Korean Template (한국어)
|
|
56
|
+
<!-- Used when `prLanguage: "ko"` - for Korean-only teams -->
|
|
57
|
+
```markdown
|
|
58
|
+
## 컨텍스트
|
|
59
|
+
|
|
60
|
+
**관련 링크:**
|
|
61
|
+
- 이슈: [{issue_id}]({issue_url})
|
|
62
|
+
|
|
63
|
+
**상세 설명:**
|
|
64
|
+
|
|
65
|
+
{description}
|
|
66
|
+
|
|
67
|
+
## 스크린샷 또는 비디오
|
|
68
|
+
|
|
69
|
+
{screenshots_section}
|
|
70
|
+
```
|
|
71
|
+
|
|
72
|
+
### Bilingual Template
|
|
73
|
+
<!-- Used when `prLanguage: "bilingual"` - for mixed teams -->
|
|
74
|
+
```markdown
|
|
75
|
+
## Context
|
|
76
|
+
|
|
77
|
+
**Related Links:**
|
|
78
|
+
- Issue: [{issue_id}]({issue_url})
|
|
79
|
+
|
|
80
|
+
**Description Details:**
|
|
81
|
+
|
|
82
|
+
{description_en}
|
|
83
|
+
|
|
84
|
+
---
|
|
85
|
+
|
|
86
|
+
**상세 설명:**
|
|
87
|
+
|
|
88
|
+
{description_ko}
|
|
89
|
+
|
|
90
|
+
## Screenshots or Videos
|
|
91
|
+
|
|
92
|
+
{screenshots_section}
|
|
93
|
+
```
|
|
94
|
+
|
|
95
|
+
## Project Template Integration
|
|
96
|
+
|
|
97
|
+
### Priority
|
|
98
|
+
1. Project template: `.github/pull_request_template.md` (if exists)
|
|
99
|
+
2. Default template based on `prLanguage` config
|
|
100
|
+
|
|
101
|
+
### Placeholder Replacement
|
|
102
|
+
When using project template, these placeholders are auto-filled:
|
|
103
|
+
|
|
104
|
+
| Placeholder | Replaced With |
|
|
105
|
+
|-------------|---------------|
|
|
106
|
+
| `{issue_id}` | Extracted issue ID |
|
|
107
|
+
| `{issue_url}` | Full issue URL |
|
|
108
|
+
| `{description}` | Auto-generated from commits |
|
|
109
|
+
| `{description_en}` | English description |
|
|
110
|
+
| `{description_ko}` | Korean description |
|
|
111
|
+
| `{screenshots_section}` | Screenshot guidance if UI changes detected |
|
|
112
|
+
|
|
113
|
+
### Example: Before and After
|
|
114
|
+
|
|
115
|
+
**Before (Template):**
|
|
116
|
+
```markdown
|
|
117
|
+
## Context
|
|
118
|
+
|
|
119
|
+
**Related Links:**
|
|
120
|
+
- Issue: [{issue_id}]({issue_url})
|
|
121
|
+
|
|
122
|
+
**Description Details:**
|
|
123
|
+
|
|
124
|
+
{description}
|
|
125
|
+
```
|
|
126
|
+
|
|
127
|
+
**After (Generated PR):**
|
|
128
|
+
```markdown
|
|
129
|
+
## Context
|
|
130
|
+
|
|
131
|
+
**Related Links:**
|
|
132
|
+
- Issue: [AUTH-123](https://jira.example.com/browse/AUTH-123)
|
|
133
|
+
|
|
134
|
+
**Description Details:**
|
|
135
|
+
|
|
136
|
+
Added JWT-based authentication with refresh token support. Includes:
|
|
137
|
+
- Login endpoint with credential validation
|
|
138
|
+
- Token generation and refresh logic
|
|
139
|
+
- Session middleware integration
|
|
140
|
+
```
|
|
141
|
+
|
|
142
|
+
## Title Format
|
|
143
|
+
|
|
144
|
+
- English: `{type}: {short description}` (max 70 chars)
|
|
145
|
+
- Korean: `{type}: {간단한 설명}` (max 70 chars)
|
|
146
|
+
|
|
147
|
+
Example: `feat: add user authentication flow`
|
|
148
|
+
|
|
149
|
+
## No AI Signatures
|
|
150
|
+
|
|
151
|
+
PR body does NOT include:
|
|
152
|
+
- Co-Authored-By
|
|
153
|
+
- Generated by AI
|
|
154
|
+
- Any AI attribution
|