@yeongjaeyou/claude-code-config 0.4.0 → 0.5.1
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/.claude/commands/ask-codex.md +131 -345
- package/.claude/commands/ask-deepwiki.md +15 -15
- package/.claude/commands/ask-gemini.md +134 -352
- package/.claude/commands/code-review.md +41 -40
- package/.claude/commands/commit-and-push.md +35 -36
- package/.claude/commands/council.md +318 -0
- package/.claude/commands/edit-notebook.md +34 -33
- package/.claude/commands/gh/create-issue-label.md +19 -17
- package/.claude/commands/gh/decompose-issue.md +66 -65
- package/.claude/commands/gh/init-project.md +46 -52
- package/.claude/commands/gh/post-merge.md +74 -79
- package/.claude/commands/gh/resolve-issue.md +38 -46
- package/.claude/commands/plan.md +15 -14
- package/.claude/commands/tm/convert-prd.md +53 -53
- package/.claude/commands/tm/post-merge.md +92 -112
- package/.claude/commands/tm/resolve-issue.md +148 -154
- package/.claude/commands/tm/review-prd-with-codex.md +272 -279
- package/.claude/commands/tm/sync-to-github.md +189 -212
- package/.claude/guidelines/cv-guidelines.md +30 -0
- package/.claude/guidelines/id-reference.md +34 -0
- package/.claude/guidelines/work-guidelines.md +17 -0
- package/.claude/skills/notion-md-uploader/SKILL.md +252 -0
- package/.claude/skills/notion-md-uploader/references/notion_block_types.md +323 -0
- package/.claude/skills/notion-md-uploader/references/setup_guide.md +156 -0
- package/.claude/skills/notion-md-uploader/scripts/__pycache__/markdown_parser.cpython-311.pyc +0 -0
- package/.claude/skills/notion-md-uploader/scripts/__pycache__/notion_client.cpython-311.pyc +0 -0
- package/.claude/skills/notion-md-uploader/scripts/__pycache__/notion_converter.cpython-311.pyc +0 -0
- package/.claude/skills/notion-md-uploader/scripts/markdown_parser.py +607 -0
- package/.claude/skills/notion-md-uploader/scripts/notion_client.py +337 -0
- package/.claude/skills/notion-md-uploader/scripts/notion_converter.py +477 -0
- package/.claude/skills/notion-md-uploader/scripts/upload_md.py +298 -0
- package/.claude/skills/skill-creator/LICENSE.txt +202 -0
- package/.claude/skills/skill-creator/SKILL.md +209 -0
- package/.claude/skills/skill-creator/scripts/init_skill.py +303 -0
- package/.claude/skills/skill-creator/scripts/package_skill.py +110 -0
- package/.claude/skills/skill-creator/scripts/quick_validate.py +65 -0
- package/README.md +159 -129
- package/package.json +1 -1
|
@@ -1,23 +1,23 @@
|
|
|
1
|
-
# TaskMaster -> GitHub Issue
|
|
1
|
+
# TaskMaster -> GitHub Issue Sync
|
|
2
2
|
|
|
3
|
-
TaskMaster
|
|
3
|
+
Reads TaskMaster's tasks.json and automatically creates GitHub Issues and Milestones.
|
|
4
4
|
|
|
5
|
-
|
|
6
|
-
- **GitHub Issue**: `#1`, `#2` (
|
|
7
|
-
- **TaskMaster Task ID**: `task 1`, `task 2` (tasks.json
|
|
8
|
-
-
|
|
5
|
+
**Important - ID Distinction:**
|
|
6
|
+
- **GitHub Issue**: `#1`, `#2` (auto-assigned by GitHub, sequential)
|
|
7
|
+
- **TaskMaster Task ID**: `task 1`, `task 2` (based on tasks.json)
|
|
8
|
+
- **After sync**: Issue body contains `Task Master Reference: task N` for mapping
|
|
9
9
|
|
|
10
|
-
`@CLAUDE.md
|
|
10
|
+
Follow the project guidelines in `@CLAUDE.md`.
|
|
11
11
|
|
|
12
12
|
---
|
|
13
13
|
|
|
14
|
-
##
|
|
14
|
+
## Structure Design
|
|
15
15
|
|
|
16
16
|
```
|
|
17
17
|
GitHub TaskMaster
|
|
18
18
|
────── ──────────
|
|
19
19
|
Milestone: Phase 1 MVP ←── PRD Phase 1 (Task 1-4)
|
|
20
|
-
├── Issue #1 ←── task 1 (
|
|
20
|
+
├── Issue #1 ←── task 1 (main task)
|
|
21
21
|
├── Issue #2 ←── task 2
|
|
22
22
|
├── Issue #3 ←── task 3
|
|
23
23
|
└── Issue #4 ←── task 4
|
|
@@ -27,355 +27,332 @@ Milestone: Phase 2 Core ←── PRD Phase 2 (Task 5-7)
|
|
|
27
27
|
...
|
|
28
28
|
```
|
|
29
29
|
|
|
30
|
-
|
|
31
|
-
- **Milestone** = PRD Phase
|
|
32
|
-
- **Issue** =
|
|
33
|
-
- **Subtask** =
|
|
34
|
-
- **done
|
|
30
|
+
**Principles:**
|
|
31
|
+
- **Milestone** = PRD Phase unit (count varies by PRD)
|
|
32
|
+
- **Issue** = Main task unit (pending/in-progress status only)
|
|
33
|
+
- **Subtask** = Checkbox in Issue + TaskMaster internal management
|
|
34
|
+
- **done status tasks** = Excluded from sync
|
|
35
35
|
|
|
36
36
|
---
|
|
37
37
|
|
|
38
|
-
##
|
|
38
|
+
## Workflow Steps
|
|
39
39
|
|
|
40
|
-
### 1.
|
|
40
|
+
### 1. Pre-checks
|
|
41
41
|
|
|
42
42
|
```bash
|
|
43
|
-
# tasks.json
|
|
43
|
+
# Verify tasks.json exists
|
|
44
44
|
ls .taskmaster/tasks/tasks.json
|
|
45
45
|
|
|
46
|
-
#
|
|
46
|
+
# Check repository labels
|
|
47
47
|
gh label list
|
|
48
48
|
|
|
49
|
-
#
|
|
49
|
+
# Check existing milestones
|
|
50
50
|
gh milestone list
|
|
51
51
|
|
|
52
|
-
#
|
|
52
|
+
# Check existing Issues (for number prediction)
|
|
53
53
|
gh issue list --state all --limit 1 --json number
|
|
54
|
-
#
|
|
54
|
+
# Example: [{"number": 5}] → Next Issue starts from #6
|
|
55
55
|
|
|
56
|
-
#
|
|
57
|
-
gh issue list --search "in:body \"Task Master
|
|
56
|
+
# Check if TaskMaster-related Issues already exist
|
|
57
|
+
gh issue list --search "in:body \"Task Master Reference\"" --state all --json number,title
|
|
58
58
|
```
|
|
59
59
|
|
|
60
|
-
**Issue
|
|
60
|
+
**Issue Number Prediction:**
|
|
61
61
|
```
|
|
62
|
-
|
|
62
|
+
Current max Issue number: #5
|
|
63
63
|
→ task 1 = Issue #6
|
|
64
64
|
→ task 2 = Issue #7
|
|
65
65
|
→ ...
|
|
66
66
|
→ task 12 = Issue #17
|
|
67
67
|
|
|
68
|
-
(
|
|
68
|
+
(Note: PRs use same number pool, so creating PR in between shifts numbers)
|
|
69
69
|
```
|
|
70
70
|
|
|
71
|
-
### 2. tasks.json
|
|
71
|
+
### 2. Analyze tasks.json and PRD
|
|
72
72
|
|
|
73
73
|
```bash
|
|
74
|
-
#
|
|
74
|
+
# Check task list
|
|
75
75
|
task-master list
|
|
76
76
|
```
|
|
77
77
|
|
|
78
|
-
**PRD Phase
|
|
78
|
+
**PRD Phase Mapping (requires dynamic verification):**
|
|
79
79
|
|
|
80
|
-
|
|
80
|
+
Before execution, verify sync target tasks with these commands:
|
|
81
81
|
|
|
82
82
|
```bash
|
|
83
|
-
# pending/in-progress
|
|
83
|
+
# Query only pending/in-progress tasks (exclude done)
|
|
84
84
|
task-master list --status pending
|
|
85
85
|
task-master list --status in-progress
|
|
86
86
|
|
|
87
|
-
#
|
|
87
|
+
# Or check status from full list
|
|
88
88
|
task-master list
|
|
89
89
|
```
|
|
90
90
|
|
|
91
|
-
**Phase
|
|
92
|
-
1.
|
|
93
|
-
2. `task-master list`
|
|
94
|
-
3.
|
|
91
|
+
**Phase Mapping Method:**
|
|
92
|
+
1. Check Phase structure from the relevant PRD file (`.taskmaster/docs/`)
|
|
93
|
+
2. Verify actual Task ID range from `task-master list` results
|
|
94
|
+
3. Create mapping table using template below
|
|
95
95
|
|
|
96
|
-
| Phase | TaskMaster Task IDs |
|
|
97
|
-
|
|
98
|
-
| [PRD Phase
|
|
96
|
+
| Phase | TaskMaster Task IDs | Description |
|
|
97
|
+
|-------|---------------------|-------------|
|
|
98
|
+
| [PRD Phase name] | task N, N+1, ... | [From PRD] |
|
|
99
99
|
| ... | ... | ... |
|
|
100
100
|
|
|
101
|
-
|
|
102
|
-
-
|
|
103
|
-
- v2
|
|
101
|
+
**Note - Version-based Milestone Prefix:**
|
|
102
|
+
- Existing v1 PRD tasks: `Phase 1: MVP`, `Phase 2: Core`, etc.
|
|
103
|
+
- v2+ PRD tasks: Recommended to differentiate with `V2 Phase 1: ...`, `V3 Phase 1: ...`
|
|
104
104
|
|
|
105
|
-
### 3.
|
|
105
|
+
### 3. Establish Conversion Plan and Get User Confirmation
|
|
106
106
|
|
|
107
|
-
|
|
107
|
+
Output conversion plan in this format and **require user confirmation**:
|
|
108
108
|
|
|
109
109
|
```
|
|
110
|
-
[PRD
|
|
111
|
-
-
|
|
112
|
-
-
|
|
110
|
+
[PRD Information]
|
|
111
|
+
- File: .taskmaster/docs/<prd-filename>.md
|
|
112
|
+
- Version: V2 (or applicable version)
|
|
113
113
|
|
|
114
|
-
[
|
|
115
|
-
- Task ID
|
|
116
|
-
-
|
|
114
|
+
[Sync Target Tasks]
|
|
115
|
+
- Task ID Range: N ~ M (pending/in-progress status)
|
|
116
|
+
- Total Tasks: X
|
|
117
117
|
|
|
118
|
-
[Milestone
|
|
119
|
-
- [
|
|
120
|
-
- [
|
|
118
|
+
[Milestone Creation Plan] (by Phase count)
|
|
119
|
+
- [Version] Phase 1: [Name] (includes task N-M)
|
|
120
|
+
- [Version] Phase 2: [Name] (includes task N-M)
|
|
121
121
|
- ...
|
|
122
122
|
|
|
123
|
-
[Issue
|
|
124
|
-
[
|
|
125
|
-
- Issue: [
|
|
126
|
-
- Issue: [
|
|
123
|
+
[Issue Creation Plan] (by task count)
|
|
124
|
+
[Version] Phase 1 children:
|
|
125
|
+
- Issue: [type] task N - [task title]
|
|
126
|
+
- Issue: [type] task N+1 - [task title]
|
|
127
127
|
...
|
|
128
128
|
```
|
|
129
129
|
|
|
130
|
-
### 4.
|
|
130
|
+
### 4. Create Milestones
|
|
131
131
|
|
|
132
|
-
|
|
132
|
+
Create Milestones by Phase:
|
|
133
133
|
|
|
134
134
|
```bash
|
|
135
135
|
# Phase 1
|
|
136
136
|
gh api repos/:owner/:repo/milestones \
|
|
137
137
|
-f title="Phase 1: MVP" \
|
|
138
|
-
-f description="
|
|
138
|
+
-f description="Initial setup, design system, layout, auth implementation (task 1-4)"
|
|
139
139
|
|
|
140
140
|
# Phase 2
|
|
141
141
|
gh api repos/:owner/:repo/milestones \
|
|
142
142
|
-f title="Phase 2: Core Features" \
|
|
143
|
-
-f description="
|
|
143
|
+
-f description="Dashboard, VLM analysis, VLM-CoT analysis implementation (task 5-7)"
|
|
144
144
|
|
|
145
|
-
# Phase 3, 4
|
|
145
|
+
# Phase 3, 4 similarly...
|
|
146
146
|
```
|
|
147
147
|
|
|
148
|
-
### 5.
|
|
148
|
+
### 5. Create Issues
|
|
149
149
|
|
|
150
|
-
|
|
150
|
+
Convert main Tasks to Issues:
|
|
151
151
|
|
|
152
|
-
####
|
|
153
|
-
`[
|
|
152
|
+
#### Title Format
|
|
153
|
+
`[Type] Concise work description`
|
|
154
154
|
|
|
155
|
-
####
|
|
156
|
-
|
|
155
|
+
#### Label Selection (use actual repository labels)
|
|
156
|
+
**Note**: Only use labels that actually exist from `gh label list` results
|
|
157
157
|
|
|
158
|
-
|
|
159
|
-
-
|
|
160
|
-
-
|
|
161
|
-
-
|
|
158
|
+
Examples (varies by project):
|
|
159
|
+
- **Type**: `type: feature`, `type: enhancement`, `type: bug`, `type: refactor`
|
|
160
|
+
- **Area**: `frontend`, `backend`, `api`, `ai`, `infrastructure`
|
|
161
|
+
- **Complexity**: `complexity: easy`, `complexity: medium`, `complexity: hard`
|
|
162
162
|
|
|
163
|
-
####
|
|
163
|
+
#### Body Template
|
|
164
164
|
|
|
165
|
-
|
|
165
|
+
**Important**: `Task Master Reference` section must be included (used for mapping in resolve-issue)
|
|
166
166
|
|
|
167
167
|
```markdown
|
|
168
|
-
##
|
|
169
|
-
[Task description
|
|
168
|
+
## Purpose
|
|
169
|
+
[Extract from Task description]
|
|
170
170
|
|
|
171
|
-
##
|
|
172
|
-
[details
|
|
173
|
-
- [ ]
|
|
174
|
-
- [ ]
|
|
175
|
-
- [ ]
|
|
171
|
+
## Work Items
|
|
172
|
+
[Convert details field to checkboxes]
|
|
173
|
+
- [ ] Specific requirement 1
|
|
174
|
+
- [ ] Specific requirement 2
|
|
175
|
+
- [ ] Specific requirement 3
|
|
176
176
|
|
|
177
|
-
##
|
|
178
|
-
[
|
|
179
|
-
-
|
|
177
|
+
## Files to Modify
|
|
178
|
+
[Extract file paths from details field, or "TBD during implementation"]
|
|
179
|
+
- `path/filename` - Change description
|
|
180
180
|
|
|
181
|
-
##
|
|
182
|
-
[
|
|
181
|
+
## Technical Details
|
|
182
|
+
[Code examples or detailed content from details field]
|
|
183
183
|
|
|
184
|
-
##
|
|
185
|
-
[testStrategy
|
|
186
|
-
- [ ]
|
|
187
|
-
- [ ]
|
|
184
|
+
## Completion Criteria
|
|
185
|
+
[Extract from testStrategy field]
|
|
186
|
+
- [ ] Test condition 1
|
|
187
|
+
- [ ] Test condition 2
|
|
188
188
|
|
|
189
|
-
##
|
|
190
|
-
[dependencies
|
|
191
|
-
-
|
|
189
|
+
## Dependencies
|
|
190
|
+
[Convert dependencies field → GitHub Issue numbers]
|
|
191
|
+
- Prerequisites: #N (task M) or "None"
|
|
192
192
|
|
|
193
|
-
##
|
|
194
|
-
[
|
|
195
|
-
-
|
|
196
|
-
-
|
|
193
|
+
## References (optional)
|
|
194
|
+
[Add related PRs or docs if any, otherwise omit section]
|
|
195
|
+
- Related PR: #N - description
|
|
196
|
+
- Documentation: [link]
|
|
197
197
|
|
|
198
198
|
---
|
|
199
|
-
**Task Master
|
|
199
|
+
**Task Master Reference**: task [TASK_ID]
|
|
200
200
|
```
|
|
201
201
|
|
|
202
|
-
|
|
202
|
+
**Example (for task 1):**
|
|
203
203
|
```markdown
|
|
204
|
-
##
|
|
205
|
-
|
|
206
|
-
|
|
207
|
-
##
|
|
208
|
-
- [ ] create-next-app
|
|
209
|
-
- [ ] Shadcn/ui
|
|
210
|
-
- [ ]
|
|
211
|
-
- [ ] Pretendard
|
|
212
|
-
- [ ] tailwind.config.ts
|
|
213
|
-
- [ ] ESLint/Prettier
|
|
214
|
-
|
|
215
|
-
##
|
|
216
|
-
- `frontend/` -
|
|
217
|
-
- `frontend/tailwind.config.ts` -
|
|
218
|
-
- `frontend/app/layout.tsx` - Pretendard
|
|
219
|
-
|
|
220
|
-
##
|
|
221
|
-
- [ ] npm run dev
|
|
222
|
-
- [ ] npm run build
|
|
223
|
-
- [ ] localhost:3000
|
|
224
|
-
|
|
225
|
-
##
|
|
226
|
-
-
|
|
204
|
+
## Purpose
|
|
205
|
+
Create Next.js 15 App Router based project in frontend/ directory and set up core dependencies.
|
|
206
|
+
|
|
207
|
+
## Work Items
|
|
208
|
+
- [ ] Create project with create-next-app
|
|
209
|
+
- [ ] Initialize Shadcn/ui
|
|
210
|
+
- [ ] Install required dependencies (next-themes, framer-motion, etc.)
|
|
211
|
+
- [ ] Configure Pretendard font
|
|
212
|
+
- [ ] Customize tailwind.config.ts
|
|
213
|
+
- [ ] Set up ESLint/Prettier
|
|
214
|
+
|
|
215
|
+
## Files to Modify
|
|
216
|
+
- `frontend/` - New directory creation
|
|
217
|
+
- `frontend/tailwind.config.ts` - Custom settings
|
|
218
|
+
- `frontend/app/layout.tsx` - Pretendard font configuration
|
|
219
|
+
|
|
220
|
+
## Completion Criteria
|
|
221
|
+
- [ ] npm run dev runs successfully
|
|
222
|
+
- [ ] npm run build succeeds
|
|
223
|
+
- [ ] localhost:3000 accessible
|
|
224
|
+
|
|
225
|
+
## Dependencies
|
|
226
|
+
- None
|
|
227
227
|
|
|
228
228
|
---
|
|
229
|
-
**Task Master
|
|
229
|
+
**Task Master Reference**: task 1
|
|
230
230
|
```
|
|
231
231
|
|
|
232
|
-
#### Issue
|
|
232
|
+
#### Issue Creation Command
|
|
233
233
|
```bash
|
|
234
234
|
gh issue create \
|
|
235
|
-
--title "[
|
|
236
|
-
--body "
|
|
237
|
-
--label "
|
|
238
|
-
--milestone "
|
|
235
|
+
--title "[type] title" \
|
|
236
|
+
--body "body content" \
|
|
237
|
+
--label "label1,label2" \
|
|
238
|
+
--milestone "milestone-name"
|
|
239
239
|
```
|
|
240
240
|
|
|
241
|
-
### 6.
|
|
241
|
+
### 6. Connect Dependencies and Record ID Mapping
|
|
242
242
|
|
|
243
|
-
**Issue
|
|
243
|
+
**Issue Creation Order**: Create sequentially starting from lowest ID among sync target tasks
|
|
244
244
|
|
|
245
|
-
| TaskMaster ID | GitHub Issue |
|
|
246
|
-
|
|
247
|
-
| task N | #X | [
|
|
248
|
-
| task N+1 | #X+1 | [
|
|
245
|
+
| TaskMaster ID | GitHub Issue | Title |
|
|
246
|
+
|---------------|--------------|-------|
|
|
247
|
+
| task N | #X | [task title] |
|
|
248
|
+
| task N+1 | #X+1 | [task title] |
|
|
249
249
|
| ... | ... | ... |
|
|
250
250
|
|
|
251
|
-
|
|
252
|
-
-
|
|
253
|
-
-
|
|
251
|
+
**Dependency Conversion:**
|
|
252
|
+
- Dependencies within sync targets: "Prerequisites: #X (task N)" in Issue body
|
|
253
|
+
- Dependencies on done status tasks: "Prerequisites: task N (completed)" in Issue body - no GitHub Issue
|
|
254
254
|
|
|
255
|
-
### 7.
|
|
255
|
+
### 7. Report Results and Output Mapping Table
|
|
256
256
|
|
|
257
|
-
|
|
257
|
+
**Important**: Create mapping table with actual Issue numbers created (based on numbers predicted in pre-check)
|
|
258
258
|
|
|
259
259
|
```
|
|
260
|
-
[
|
|
260
|
+
[Sync Complete]
|
|
261
261
|
|
|
262
|
-
PRD: .taskmaster/docs
|
|
263
|
-
|
|
262
|
+
PRD: .taskmaster/docs/<filename>.md
|
|
263
|
+
Version: [V1/V2/...]
|
|
264
264
|
|
|
265
|
-
Milestones ([
|
|
266
|
-
- [
|
|
267
|
-
- [
|
|
265
|
+
Milestones ([count]):
|
|
266
|
+
- [Version] Phase 1: [Name]
|
|
267
|
+
- [Version] Phase 2: [Name]
|
|
268
268
|
- ...
|
|
269
269
|
|
|
270
|
-
Issues ([
|
|
271
|
-
| GitHub Issue | TaskMaster |
|
|
272
|
-
|
|
273
|
-
| #X | task N | [
|
|
274
|
-
| #X+1 | task N+1 | [
|
|
270
|
+
Issues ([count]):
|
|
271
|
+
| GitHub Issue | TaskMaster | Title | Milestone |
|
|
272
|
+
|--------------|------------|-------|-----------|
|
|
273
|
+
| #X | task N | [task title] | [Version] Phase 1: [Name] |
|
|
274
|
+
| #X+1 | task N+1 | [task title] | [Version] Phase 1: [Name] |
|
|
275
275
|
| ... | ... | ... | ... |
|
|
276
276
|
|
|
277
|
-
(X =
|
|
277
|
+
(X = existing max Issue/PR number + 1, N = starting Task ID of sync targets)
|
|
278
278
|
```
|
|
279
279
|
|
|
280
|
-
|
|
280
|
+
**Post-creation Verification:**
|
|
281
281
|
```bash
|
|
282
|
-
#
|
|
282
|
+
# Check actually created Issues
|
|
283
283
|
gh issue list --state open --json number,title --limit 20
|
|
284
284
|
|
|
285
|
-
#
|
|
286
|
-
gh issue view
|
|
285
|
+
# Verify mapping
|
|
286
|
+
gh issue view <number> --json body | grep "Task Master Reference"
|
|
287
287
|
```
|
|
288
288
|
|
|
289
|
-
|
|
289
|
+
**Next Step Guide:**
|
|
290
290
|
```
|
|
291
|
-
|
|
291
|
+
Next step: /tm:resolve-issue <GitHub Issue number> or /tm:resolve-issue task 1
|
|
292
292
|
```
|
|
293
293
|
|
|
294
294
|
---
|
|
295
295
|
|
|
296
|
-
##
|
|
296
|
+
## Option Handling
|
|
297
297
|
|
|
298
|
-
###
|
|
299
|
-
- ARGUMENTS
|
|
300
|
-
- ARGUMENTS
|
|
301
|
-
- ARGUMENTS
|
|
298
|
+
### Arguments
|
|
299
|
+
- ARGUMENTS empty: All sync target Tasks (pending/in-progress status)
|
|
300
|
+
- ARGUMENTS is Phase number: That Phase only (e.g., phase1, 1, v2-phase1)
|
|
301
|
+
- ARGUMENTS is Task ID: Those Tasks only (e.g., task 11, 11,12,13)
|
|
302
302
|
|
|
303
|
-
###
|
|
304
|
-
- pending, in-progress
|
|
305
|
-
- done, cancelled
|
|
303
|
+
### Status Filter
|
|
304
|
+
- Only sync pending, in-progress status
|
|
305
|
+
- Skip done, cancelled
|
|
306
306
|
|
|
307
307
|
---
|
|
308
308
|
|
|
309
|
-
|
|
309
|
+
> See [Work Guidelines](../guidelines/work-guidelines.md)
|
|
310
310
|
|
|
311
|
-
|
|
312
|
-
- 코드나 문서 작성 시 이모지 사용 금지
|
|
313
|
-
- 불명확한 사항은 추측하지 말고 AskUserQuestion 도구로 질문
|
|
314
|
-
- 커밋, PR, 이슈에 'Generated with Claude', 'Co-Authored-By: Claude' 등 Claude attribution 금지
|
|
311
|
+
### Korean Encoding Notes
|
|
315
312
|
|
|
316
|
-
|
|
313
|
+
**Issue**: Korean characters in `gh issue create --title` command sometimes break into `\uXXXX` unicode escapes
|
|
317
314
|
|
|
318
|
-
|
|
319
|
-
|
|
320
|
-
**대응 방법**: Issue 생성 완료 후 제목이 깨졌는지 확인하고, 깨진 경우 `gh issue edit`로 수정
|
|
315
|
+
**Workaround**: After Issue creation, check if title is broken, and fix with `gh issue edit` if so
|
|
321
316
|
|
|
322
317
|
```bash
|
|
323
|
-
#
|
|
318
|
+
# Check title after Issue creation
|
|
324
319
|
gh issue list --state open --limit 10 --json number,title
|
|
325
320
|
|
|
326
|
-
#
|
|
327
|
-
gh issue edit
|
|
321
|
+
# Fix if title is broken
|
|
322
|
+
gh issue edit <number> --title "[bugfix] Fix dark mode video play button color"
|
|
328
323
|
```
|
|
329
324
|
|
|
330
|
-
|
|
325
|
+
**Checkpoint**: Must verify titles with `gh issue list` after all Issues are created
|
|
331
326
|
|
|
332
327
|
---
|
|
333
328
|
|
|
334
|
-
##
|
|
329
|
+
## Cautions
|
|
335
330
|
|
|
336
|
-
1.
|
|
331
|
+
1. **Prevent Duplicate Creation**
|
|
337
332
|
|
|
338
|
-
|
|
333
|
+
Always check existing Issues before sync:
|
|
339
334
|
|
|
340
335
|
```bash
|
|
341
|
-
#
|
|
336
|
+
# Check full Issue list
|
|
342
337
|
gh issue list --state all --limit 100
|
|
343
338
|
|
|
344
|
-
#
|
|
345
|
-
gh issue list --search "Task Master
|
|
339
|
+
# Search if specific task already has Issue
|
|
340
|
+
gh issue list --search "Task Master Reference: task 1" --state all
|
|
346
341
|
|
|
347
|
-
#
|
|
348
|
-
gh issue list --search "in:body \"Task Master
|
|
342
|
+
# Or search by body content
|
|
343
|
+
gh issue list --search "in:body \"Task Master Reference\"" --state all
|
|
349
344
|
```
|
|
350
345
|
|
|
351
|
-
|
|
346
|
+
**If already exists**: Skip that task and notify user
|
|
352
347
|
|
|
353
|
-
2.
|
|
354
|
-
-
|
|
355
|
-
-
|
|
348
|
+
2. **User Confirmation Required**
|
|
349
|
+
- Must confirm plan before Milestone/Issue creation
|
|
350
|
+
- Ask about label creation if labels don't exist
|
|
356
351
|
|
|
357
|
-
3. **ID
|
|
358
|
-
-
|
|
359
|
-
-
|
|
352
|
+
3. **Maintain ID Mapping Records**
|
|
353
|
+
- Output mapping table after sync completion
|
|
354
|
+
- Referenced in resolve-issue later
|
|
360
355
|
|
|
361
356
|
---
|
|
362
357
|
|
|
363
|
-
|
|
364
|
-
|
|
365
|
-
```
|
|
366
|
-
[ID 형식 구분]
|
|
367
|
-
|
|
368
|
-
GitHub:
|
|
369
|
-
- Issue: #1, #2, #12 (# 접두어)
|
|
370
|
-
- PR: #13, #14 (Issue와 동일 네임스페이스)
|
|
371
|
-
- Milestone: "Phase 1: MVP" (이름으로 참조)
|
|
372
|
-
|
|
373
|
-
TaskMaster:
|
|
374
|
-
- 메인 태스크: task 1, task 2, task 12
|
|
375
|
-
- Subtask: task 1.1, task 1.2, task 2.1
|
|
376
|
-
- 상태: pending, in-progress, done
|
|
377
|
-
|
|
378
|
-
매핑:
|
|
379
|
-
- GitHub Issue #N ←→ TaskMaster task N (sync-to-github 실행 후)
|
|
380
|
-
- Issue 본문의 "Task Master 참조: task N"으로 연결
|
|
381
|
-
```
|
|
358
|
+
> See [ID Reference](../guidelines/id-reference.md)
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
# CV Guidelines
|
|
2
|
+
|
|
3
|
+
Computer Vision 작업 시 주의사항.
|
|
4
|
+
|
|
5
|
+
## BGR vs RGB 색상 형식
|
|
6
|
+
|
|
7
|
+
**핵심**: OpenCV는 BGR, matplotlib은 RGB 형식을 사용한다. supervision 등 OpenCV 기반 라이브러리로 annotation할 때는 BGR 상태를 유지하고, matplotlib 표시 직전에만 RGB로 변환한다.
|
|
8
|
+
|
|
9
|
+
```python
|
|
10
|
+
# 올바른 패턴
|
|
11
|
+
img = cv2.imread(path) # BGR
|
|
12
|
+
img = annotator.annotate(img, detections) # BGR 유지
|
|
13
|
+
img = cv2.cvtColor(img, cv2.COLOR_BGR2RGB) # 표시 직전 변환
|
|
14
|
+
plt.imshow(img)
|
|
15
|
+
|
|
16
|
+
# 잘못된 패턴 (색상 반전 발생)
|
|
17
|
+
img = cv2.imread(path)
|
|
18
|
+
img = cv2.cvtColor(img, cv2.COLOR_BGR2RGB) # 너무 일찍 변환
|
|
19
|
+
img = annotator.annotate(img, detections) # RGB에 BGR 색상 적용 -> 색상 반전
|
|
20
|
+
plt.imshow(img)
|
|
21
|
+
```
|
|
22
|
+
|
|
23
|
+
## Ultralytics WandB 연동
|
|
24
|
+
|
|
25
|
+
Ultralytics YOLO는 WandB가 기본적으로 비활성화되어 있다.
|
|
26
|
+
|
|
27
|
+
```bash
|
|
28
|
+
yolo settings wandb=True # 활성화
|
|
29
|
+
yolo settings wandb=False # 비활성화
|
|
30
|
+
```
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
# ID Reference Guide
|
|
2
|
+
|
|
3
|
+
Reference for different ID formats used across GitHub and TaskMaster.
|
|
4
|
+
|
|
5
|
+
## GitHub IDs
|
|
6
|
+
|
|
7
|
+
| Type | Format | Example |
|
|
8
|
+
|------|--------|---------|
|
|
9
|
+
| PR/Issue number | `#N` | `#1`, `#13` |
|
|
10
|
+
| Branch | `issue-N` | `issue-1`, `feature-auth` |
|
|
11
|
+
|
|
12
|
+
> Note: PRs and Issues share the same namespace in GitHub.
|
|
13
|
+
|
|
14
|
+
## TaskMaster IDs
|
|
15
|
+
|
|
16
|
+
| Type | Format | Example |
|
|
17
|
+
|------|--------|---------|
|
|
18
|
+
| Main task | `task N` | `task 1`, `task 2` |
|
|
19
|
+
| Subtask | `task N.M` | `task 1.1`, `task 1.2` |
|
|
20
|
+
|
|
21
|
+
## Linking GitHub and TaskMaster
|
|
22
|
+
|
|
23
|
+
- PR body: `Task Master 참조: task N` or `TaskMaster: task N`
|
|
24
|
+
- Issue closing: `Closes #N` (GitHub Issue)
|
|
25
|
+
|
|
26
|
+
## Example
|
|
27
|
+
|
|
28
|
+
```
|
|
29
|
+
PR #13: "feat: Add authentication"
|
|
30
|
+
├── Closes #1 (GitHub Issue)
|
|
31
|
+
└── Task Master 참조: task 1
|
|
32
|
+
├── task 1.1 (subtask)
|
|
33
|
+
└── task 1.2 (subtask)
|
|
34
|
+
```
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
# Work Guidelines
|
|
2
|
+
|
|
3
|
+
Common guidelines for all Claude Code commands.
|
|
4
|
+
|
|
5
|
+
## Response Rules
|
|
6
|
+
|
|
7
|
+
- Follow the instructions in `@CLAUDE.md`
|
|
8
|
+
- Do not use emoji in code or documentation
|
|
9
|
+
- If anything is unclear, use the `AskUserQuestion` tool instead of guessing
|
|
10
|
+
- Never add Claude attribution (e.g., "Generated with Claude", "Co-Authored-By: Claude") to commits, PRs, or issues
|
|
11
|
+
|
|
12
|
+
## User Confirmation Required
|
|
13
|
+
|
|
14
|
+
Always confirm with the user before:
|
|
15
|
+
- Irreversible operations (branch deletion, status changes)
|
|
16
|
+
- Modifying CLAUDE.md
|
|
17
|
+
- Making architectural decisions
|