@yeongjaeyou/claude-code-config 0.1.2 → 0.2.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.
@@ -21,6 +21,73 @@ model: sonnet
21
21
  | **arXiv** | 학술 논문 | WebSearch |
22
22
  | **일반 웹** | 블로그, 튜토리얼 | WebSearch / Firecrawl |
23
23
 
24
+ ## 검색 품질 원칙 (필수)
25
+
26
+ ### 1. 현재 날짜 확인
27
+
28
+ 검색 시작 전 **반드시** 실행:
29
+ ```bash
30
+ date +%Y-%m-%d
31
+ ```
32
+ - 아래 예시의 연도(2024 등)는 참고용임
33
+ - 실제 검색 시 **위에서 확인한 현재 연도** 사용
34
+
35
+ ### 2. 키워드 vs 시맨틱 검색 이해
36
+
37
+ | 유형 | 특징 | 적합한 경우 |
38
+ |------|------|-------------|
39
+ | **키워드 검색** | 정확한 단어 매칭 | 에러 메시지, 함수명, 모델명 |
40
+ | **시맨틱 검색** | 의미/의도 기반 | 개념 질문, 방법론, 비교 분석 |
41
+
42
+ **적용:**
43
+ - 정확한 용어가 있으면 키워드 검색 (`"Qwen2VL"`, `"RuntimeError"`)
44
+ - 개념/방법을 찾으면 시맨틱하게 다양한 표현으로 검색
45
+
46
+ ### 3. Long-tail Keywords 적용
47
+
48
+ 아래 예시의 Short-tail 키워드를 그대로 쓰지 말고, **구체적인 Long-tail로 확장**:
49
+
50
+ | Short-tail (예시 그대로) | Long-tail (실제 검색 시) |
51
+ |--------------------------|--------------------------|
52
+ | `object detection` | `best lightweight object detection model for edge deployment {현재연도}` |
53
+ | `pytorch serving` | `how to deploy pytorch model with TorchServe in production` |
54
+ | `gradio app` | `gradio demo with image upload real-time inference example` |
55
+
56
+ **확장 방법:**
57
+ - 목적 추가: "for production", "for beginners", "step by step"
58
+ - 조건 추가: 언어, 프레임워크, 연도, 환경
59
+ - 의도 명시: "how to", "best practices", "comparison", "vs"
60
+
61
+ ### 4. Multi-Query Generation
62
+
63
+ 단일 쿼리 대신 **3-5개 변형 쿼리**로 검색:
64
+
65
+ ```
66
+ 원본: "pytorch model serving"
67
+
68
+ 변형 1 (방법): "how to deploy pytorch model in production {현재연도}"
69
+ 변형 2 (비교): "pytorch vs tensorflow model serving comparison"
70
+ 변형 3 (구체): "TorchServe custom handler tutorial example"
71
+ 변형 4 (최적화): "pytorch model inference optimization GPU memory"
72
+ 변형 5 (사례): "pytorch model deployment kubernetes docker best practices"
73
+ ```
74
+
75
+ **변형 관점:**
76
+ - 동의어/유사어
77
+ - 문제 해결 vs 개념 설명
78
+ - 특정 도구/프레임워크명
79
+ - 비교 분석
80
+ - 베스트 프랙티스/사례
81
+
82
+ ### 5. 검색 전 체크리스트
83
+
84
+ - [ ] `date` 명령으로 현재 날짜 확인
85
+ - [ ] 예시 키워드를 Long-tail로 확장
86
+ - [ ] 필요시 3-5개 Multi-Query 생성
87
+ - [ ] 키워드/시맨틱 중 적합한 방식 선택
88
+
89
+ ---
90
+
24
91
  ## 리서치 워크플로우
25
92
 
26
93
  ### Phase 1: 계획 수립
@@ -13,6 +13,11 @@
13
13
  8. 깃허브에 마일스톤과 이슈를 생성할지 묻기: AskUserQuestion 도구로 사용자가 결정하도록 요청하기.
14
14
  - 마일스톤 생성: `gh api repos/:owner/:repo/milestones -f title="마일스톤명" -f description="설명"`
15
15
  - 이슈 생성 시 `--milestone` 옵션으로 할당
16
+ 9. **GitHub Project에 이슈 추가 (선택)**
17
+ - `gh project list --owner <owner> --format json`으로 프로젝트 존재 여부 확인
18
+ - 프로젝트가 없으면: "프로젝트가 없습니다. `/gh:init-project`로 생성할 수 있습니다." 안내 후 스킵
19
+ - 프로젝트가 있으면: AskUserQuestion으로 추가 여부 질문
20
+ - 추가 원하면: 각 이슈에 대해 `gh project item-add <project-number> --owner <owner> --url <issue-url>`
16
21
 
17
22
  ## 마일스톤 description 작성 가이드
18
23
 
@@ -0,0 +1,88 @@
1
+ ---
2
+ description: GitHub Project 보드 초기화 및 설정
3
+ ---
4
+
5
+ # GitHub Project 초기화
6
+
7
+ GitHub Project 보드를 생성하고 기본 필드를 설정합니다. `@CLAUDE.md`의 프로젝트 지침을 준수할 것.
8
+
9
+ ## 사전 요구사항
10
+
11
+ `gh` CLI에 project 스코프가 필요합니다. 없으면 다음 명령어로 추가:
12
+ ```bash
13
+ gh auth refresh -s project --hostname github.com
14
+ ```
15
+
16
+ ## 아규먼트
17
+
18
+ - 프로젝트 이름 (선택): 없으면 저장소 이름을 기본값으로 사용
19
+
20
+ ## 작업 순서
21
+
22
+ 1. **사전 확인**
23
+ - `gh auth status`로 project 스코프 확인
24
+ - 없으면 사용자에게 `gh auth refresh -s project --hostname github.com` 실행 안내
25
+ - `gh repo view --json nameWithOwner,owner -q ".owner.login"`로 owner 확인
26
+
27
+ 2. **기존 프로젝트 확인**
28
+ - `gh project list --owner <owner> --format json`으로 기존 프로젝트 목록 확인
29
+ - 동일한 이름의 프로젝트가 있으면 AskUserQuestion으로 처리 방법 질문:
30
+ - 기존 프로젝트 사용
31
+ - 새 프로젝트 생성 (다른 이름으로)
32
+ - 작업 취소
33
+
34
+ 3. **프로젝트 생성**
35
+ - `gh project create --owner <owner> --title "<프로젝트명>" --format json`
36
+ - 생성된 프로젝트 번호(number) 저장
37
+
38
+ 4. **Status 필드 확인**
39
+ - `gh project field-list <project-number> --owner <owner> --format json`으로 필드 확인
40
+ - GitHub Project는 기본적으로 Status 필드 제공 (Todo, In Progress, Done)
41
+ - 기본 필드가 있으면 그대로 사용
42
+
43
+ 5. **Priority 필드 생성 (선택)**
44
+ - AskUserQuestion으로 Priority 필드 생성 여부 질문
45
+ - 원하면 생성:
46
+ ```bash
47
+ gh project field-create <project-number> --owner <owner> \
48
+ --name "Priority" \
49
+ --data-type "SINGLE_SELECT" \
50
+ --single-select-options "High,Medium,Low"
51
+ ```
52
+
53
+ 6. **저장소에 프로젝트 링크**
54
+ - `gh repo view --json name -q .name`로 현재 저장소 이름 확인
55
+ - `gh project link <project-number> --owner <owner> --repo <repo>`로 연결
56
+ - 주의: `--repo`에는 저장소 이름만 지정 (owner/repo 형식 아님)
57
+
58
+ 7. **결과 출력**
59
+ - 생성된 프로젝트 정보 요약
60
+ - 웹에서 확인할 수 있는 URL 제공: `gh project view <project-number> --owner <owner> --web`
61
+
62
+ ## 출력 예시
63
+
64
+ ```
65
+ GitHub Project 초기화 완료!
66
+
67
+ 프로젝트: my-project
68
+ 번호: 5
69
+ URL: https://github.com/users/<username>/projects/5
70
+
71
+ 기본 필드:
72
+ - Status: Todo, In Progress, Done
73
+ - Priority: High, Medium, Low (선택적으로 추가됨)
74
+
75
+ 연결된 저장소: owner/repo
76
+
77
+ 다음 단계:
78
+ - 이슈 추가: gh project item-add 5 --owner <owner> --url <issue-url>
79
+ - 보드 확인: gh project view 5 --owner <owner> --web
80
+ ```
81
+
82
+ ## 작업 지침
83
+
84
+ - 한글로 답변
85
+ - 코드나 문서 작성 시 이모지 사용 금지
86
+ - 오류 발생 시 명확한 해결 방법 제시
87
+ - 프로젝트 번호는 이후 명령어에서 사용되므로 사용자에게 안내
88
+ - `@me`는 일부 명령어에서 동작하지 않으므로 실제 owner를 사용
@@ -35,7 +35,17 @@ PR이 머지된 후 브랜치 정리와 CLAUDE.md 업데이트를 수행합니
35
35
  - AskUserQuestion으로 로컬 브랜치 삭제 여부 질문
36
36
  - 삭제 원하면: `git branch -d <headRefName>`
37
37
 
38
- 5. **CLAUDE.md 분석 업데이트**
38
+ 5. **GitHub Project 상태 업데이트 (선택)**
39
+ - PR body에서 관련 이슈 번호 파악: `Closes #N`, `Fixes #N`, `Resolves #N` 패턴 검색
40
+ - `gh project list --owner <owner> --format json`으로 프로젝트 확인
41
+ - 프로젝트가 없으면 스킵 (경고 없이 진행)
42
+ - 프로젝트가 있으면:
43
+ - `gh project item-list`로 해당 이슈의 item-id 확인
44
+ - `gh project field-list`로 Status 필드 ID와 "Done" 옵션 ID 획득
45
+ - `gh project item-edit`로 Status를 "Done"으로 변경
46
+ - 이슈가 프로젝트에 없거나 Status 필드가 없으면 스킵
47
+
48
+ 6. **CLAUDE.md 분석 및 업데이트**
39
49
  - CLAUDE.md 존재 여부 확인
40
50
  - 없으면: AskUserQuestion으로 생성 여부 또는 스킵 여부 질문
41
51
  - 기존 내용 분석:
@@ -48,7 +58,7 @@ PR이 머지된 후 브랜치 정리와 CLAUDE.md 업데이트를 수행합니
48
58
  - **수정 대상**: 오래되거나 부정확한 정보
49
59
  - AskUserQuestion으로 제안 내용 확인 후 적용
50
60
 
51
- 6. **변경사항 커밋 (선택)**
61
+ 7. **변경사항 커밋 (선택)**
52
62
  - CLAUDE.md가 변경되었으면 AskUserQuestion으로 커밋 여부 질문
53
63
  - 커밋 원하면: Conventional Commits 형식으로 커밋
54
64
 
@@ -13,20 +13,33 @@
13
13
  2. **브랜치 생성**: `main` 또는 `master` 브랜치에서 `issue-$ISSUE_NUMBER` 형태로 새 브랜치를 생성하고 체크아웃합니다.
14
14
  - **서브모듈 초기화**: Worktree 사용 시 `git submodule update --init --recursive` 실행 필요
15
15
 
16
- 3. **코드베이스 분석**: 이슈 해결에 필요한 관련 파일과 구조를 파악하기 위해 서브에이전트를 활용하여 코드베이스를 병렬로 분석합니다.
17
-
18
- 4. **해결 계획 수립**: 분석 결과를 바탕으로 구체적인 해결 방안을 계획하고 작업 단계를 정의합니다.
19
-
20
- 5. **이슈 해결**: 서브에이전트를 생성하여 계획에 따라 코드를 수정하고 기능을 구현합니다.
16
+ 3. **GitHub Project 상태 업데이트 (선택)**
17
+ - `gh project list --owner <owner> --format json`으로 프로젝트 확인
18
+ - 프로젝트가 없으면 스킵 (경고 없이 진행)
19
+ - 프로젝트가 있으면:
20
+ - `gh project item-list <project-number> --owner <owner> --format json`으로 이슈가 프로젝트에 있는지 확인
21
+ - 없으면 `gh project item-add`로 추가
22
+ - `gh project field-list <project-number> --owner <owner> --format json`으로 Status 필드 ID와 "In Progress" 옵션 ID 획득
23
+ - Status 필드를 "In Progress"로 변경:
24
+ ```bash
25
+ gh project item-edit --project-id <project-id> --id <item-id> --field-id <status-field-id> --single-select-option-id <in-progress-option-id>
26
+ ```
27
+ - Status 필드가 없으면 스킵
28
+
29
+ 4. **코드베이스 분석**: 이슈 해결에 필요한 관련 파일과 구조를 파악하기 위해 서브에이전트를 활용하여 코드베이스를 병렬로 분석합니다.
30
+
31
+ 5. **해결 계획 수립**: 분석 결과를 바탕으로 구체적인 해결 방안을 계획하고 작업 단계를 정의합니다.
32
+
33
+ 6. **이슈 해결**: 서브에이전트를 생성하여 계획에 따라 코드를 수정하고 기능을 구현합니다.
21
34
  - **실행 검증 필수**: Python 스크립트, 실행 파일, 또는 동작 가능한 코드의 경우 반드시 실제 실행하여 정상 동작을 확인합니다. 단순히 파일 존재나 이전 결과만으로 판단하지 않습니다.
22
35
 
23
- 6. **테스트 작성**: 파일별로 독립적인 서브에이전트를 생성하여 병렬로 단위 테스트를 작성하고 80% 이상의 커버리지를 확보합니다.
36
+ 7. **테스트 작성**: 파일별로 독립적인 서브에이전트를 생성하여 병렬로 단위 테스트를 작성하고 80% 이상의 커버리지를 확보합니다.
24
37
 
25
- 7. **검증**: 테스트 실행, 린트 검사, 빌드 확인을 각각 독립적인 서브에이전트로 병렬 실행하여 코드 품질을 검증합니다.
38
+ 8. **검증**: 테스트 실행, 린트 검사, 빌드 확인을 각각 독립적인 서브에이전트로 병렬 실행하여 코드 품질을 검증합니다.
26
39
 
27
- 8. **PR 생성**: 해결된 이슈에 대한 풀 리퀘스트를 생성합니다.
40
+ 9. **PR 생성**: 해결된 이슈에 대한 풀 리퀘스트를 생성합니다.
28
41
 
29
- 9. **이슈 체크박스 업데이트**: 해당 이슈의 체크박스 항목들을 완료된 것으로 체크하여 업데이트합니다.
42
+ 10. **이슈 체크박스 업데이트**: 해당 이슈의 체크박스 항목들을 완료된 것으로 체크하여 업데이트합니다.
30
43
 
31
44
  ## 작업 지침
32
45
  - 불명확한 요구사항이나 구현 방향이 여러 가지일 경우 AskUserQuestion 도구로 사용자에게 확인
@@ -0,0 +1,127 @@
1
+ # PRD 초안 -> TaskMaster PRD 변환
2
+
3
+ 초안 파일을 TaskMaster PRD 포맷으로 변환합니다.
4
+
5
+ **템플릿:** `.claude/guideline/tm/prd-guide.md` 복사해서 초안 작성
6
+
7
+ **원칙:**
8
+ - 원본 내용 유지 (임의로 늘리거나 줄이지 않음)
9
+ - 한글로 작성
10
+ - `.taskmaster/templates/example_prd.txt` 포맷 준수
11
+
12
+ ---
13
+
14
+ ## 아규먼트
15
+
16
+ `$ARGUMENTS`로 초안 파일 경로를 받습니다:
17
+ - 예: `/tm:convert-prd .taskmaster/docs/my-idea.md`
18
+ - 없으면 AskUserQuestion으로 경로 입력 요청
19
+
20
+ ---
21
+
22
+ ## 작업 순서
23
+
24
+ ### 1. 초안 읽기
25
+
26
+ ```bash
27
+ cat $ARGUMENTS
28
+ ```
29
+
30
+ 파일이 없거나 내용이 비어있으면 작성 요청.
31
+
32
+ ### 2. 타겟 포맷 확인
33
+
34
+ `.taskmaster/templates/example_prd.txt` 구조:
35
+
36
+ ```
37
+ <context>
38
+ # Overview
39
+ # Core Features
40
+ # User Experience
41
+ </context>
42
+
43
+ <PRD>
44
+ # Technical Architecture
45
+ # Development Roadmap
46
+ # Logical Dependency Chain
47
+ # Risks and Mitigations
48
+ # Appendix
49
+ </PRD>
50
+ ```
51
+
52
+ ### 3. 변환
53
+
54
+ 초안 내용을 위 포맷에 맞게 재배치:
55
+
56
+ | 초안 섹션 | PRD 섹션 |
57
+ |----------|----------|
58
+ | 뭘 만들고 싶은지 | Overview |
59
+ | 주요 기능 | Core Features |
60
+ | (UX 관련 내용) | User Experience |
61
+ | 기술 스택 | Technical Architecture |
62
+ | 만드는 순서 | Development Roadmap, Logical Dependency Chain |
63
+ | 기타 (걱정) | Risks and Mitigations |
64
+ | 기타 (참고) | Appendix |
65
+
66
+ **변환 규칙:**
67
+ - 원본에 없는 내용 추가 금지
68
+ - 섹션 내용이 없으면 "[추후 작성]" 표시
69
+ - 한글로 작성
70
+ - Development Roadmap은 Phase 단위로 구분
71
+
72
+ ### 4. 결과 출력
73
+
74
+ 변환된 PRD 전체 출력.
75
+
76
+ ### 5. 저장
77
+
78
+ AskUserQuestion으로 확인 후 저장:
79
+ - 기본: `.taskmaster/docs/prd.md`
80
+ - 다른 경로 가능
81
+
82
+ ### 6. 다음 단계 안내
83
+
84
+ ```
85
+ [변환 완료]
86
+
87
+ 다음 단계:
88
+ task-master parse-prd .taskmaster/docs/prd.md
89
+ ```
90
+
91
+ ---
92
+
93
+ ## 출력 포맷
94
+
95
+ ```markdown
96
+ <context>
97
+ # Overview
98
+ [뭘 만들고 싶은지 내용]
99
+
100
+ # Core Features
101
+ [주요 기능 내용]
102
+
103
+ # User Experience
104
+ [UX 관련 내용 또는 추후 작성]
105
+ </context>
106
+
107
+ <PRD>
108
+ # Technical Architecture
109
+ [기술 스택 내용]
110
+
111
+ # Development Roadmap
112
+ ## Phase 1: [이름]
113
+ - [기능]
114
+
115
+ ## Phase 2: [이름]
116
+ - [기능]
117
+
118
+ # Logical Dependency Chain
119
+ [만드는 순서 기반 의존성]
120
+
121
+ # Risks and Mitigations
122
+ [걱정되는 점]
123
+
124
+ # Appendix
125
+ [참고사항]
126
+ </PRD>
127
+ ```
@@ -0,0 +1,194 @@
1
+ # PR 머지 후 정리 (TaskMaster 연동)
2
+
3
+ PR이 머지된 후 브랜치 정리, TaskMaster 상태 업데이트, CLAUDE.md 업데이트를 수행합니다.
4
+
5
+ **중요 - ID 구분:**
6
+ - **GitHub PR/Issue**: `#1`, `#2` (GitHub 번호)
7
+ - **TaskMaster Task**: `task 1`, `task 1.1` (tasks.json 기준)
8
+
9
+ `@CLAUDE.md`의 프로젝트 지침을 준수할 것.
10
+
11
+ ---
12
+
13
+ ## 아규먼트
14
+
15
+ - PR 번호 (선택): 없으면 대화 맥락에서 파악하거나 최근 머지된 PR 목록에서 선택 요청
16
+
17
+ ---
18
+
19
+ ## 작업 순서
20
+
21
+ ### 1. PR 정보 확인
22
+
23
+ ```bash
24
+ # 아규먼트로 PR 번호가 주어지면 해당 PR 사용
25
+ # 없으면 최근 머지 PR 목록 표시
26
+ gh pr list --state merged --limit 5
27
+
28
+ # PR 상세 정보 확인
29
+ gh pr view <PR번호> --json number,title,baseRefName,headRefName,body,state
30
+ ```
31
+
32
+ **확인 사항:**
33
+ - `state`가 `MERGED`인지 확인
34
+ - PR 본문에서 `Task Master 참조: task N` 추출
35
+
36
+ ### 2. TaskMaster Task ID 추출
37
+
38
+ PR 본문 또는 연결된 Issue에서 TaskMaster ID 파악:
39
+
40
+ ```bash
41
+ # PR 본문에서 추출
42
+ gh pr view <PR번호> --json body | grep -o "Task Master 참조: task [0-9.]*"
43
+
44
+ # 또는 연결된 Issue에서 추출
45
+ gh pr view <PR번호> --json closedIssues
46
+ ```
47
+
48
+ **추출 결과 예시:**
49
+ ```
50
+ Task Master 참조: task 1
51
+ → TaskMaster Task ID: 1
52
+ → 관련 Subtasks: 1.1, 1.2, 1.3 (있는 경우)
53
+ ```
54
+
55
+ ### 3. TaskMaster 상태 업데이트
56
+
57
+ ```bash
58
+ # 메인 태스크 상태 확인
59
+ task-master show <TASK_ID>
60
+
61
+ # 모든 subtask가 done인지 확인
62
+ # subtask가 있고 모두 완료되었다면:
63
+ task-master set-status --id=<TASK_ID> --status=done
64
+
65
+ # subtask가 있고 일부만 완료된 경우:
66
+ # → 메인 태스크는 in-progress 유지
67
+ # → 완료된 subtask만 done 처리
68
+ ```
69
+
70
+ **상태 업데이트 규칙:**
71
+
72
+ | 상황 | 메인 태스크 상태 | Subtask 상태 |
73
+ |------|------------------|--------------|
74
+ | PR 머지 완료, subtask 없음 | done | N/A |
75
+ | PR 머지 완료, 모든 subtask 완료 | done | 모두 done |
76
+ | PR 머지 완료, 일부 subtask 남음 | in-progress | 완료분만 done |
77
+
78
+ ### 4. 로컬 변경사항 확인
79
+
80
+ ```bash
81
+ git status --porcelain
82
+ ```
83
+
84
+ 변경사항이 있으면 AskUserQuestion으로 처리 방법 질문:
85
+ - **stash 후 진행**: `git stash push -m "post-merge: 임시 저장"`
86
+ - **변경사항 버리기**: `git checkout -- . && git clean -fd`
87
+ - **작업 중단**: 사용자가 직접 처리
88
+
89
+ ### 5. 베이스 브랜치로 이동
90
+
91
+ ```bash
92
+ git fetch origin
93
+ git checkout <baseRefName> # 보통 main
94
+ git pull origin <baseRefName>
95
+ ```
96
+
97
+ ### 6. 이슈 브랜치 정리 (선택)
98
+
99
+ AskUserQuestion으로 로컬 브랜치 삭제 여부 질문:
100
+
101
+ ```bash
102
+ # 삭제 원하면
103
+ git branch -d <headRefName> # 예: issue-1
104
+ ```
105
+
106
+ ### 7. 다음 태스크 확인
107
+
108
+ ```bash
109
+ # TaskMaster에서 다음 작업 가능한 태스크 확인
110
+ task-master next
111
+
112
+ # 출력 예시:
113
+ # Next task: Task 2 - 디자인 시스템 및 테마 구축
114
+ # Dependencies satisfied: Task 1 (done)
115
+ ```
116
+
117
+ ### 8. CLAUDE.md 분석 및 업데이트
118
+
119
+ **분석 대상:**
120
+ - 해결된 Issue/Task 관련 임시 지침 (`#1`, `task 1` 언급)
121
+ - 오래되거나 부정확한 정보
122
+ - 새로 발견한 패턴/컨벤션
123
+
124
+ **업데이트 제안 작성 후 사용자 확인:**
125
+ - 삭제 대상: 해결된 이슈 관련 임시 메모
126
+ - 추가 대상: 작업 중 발견한 새 패턴
127
+ - 수정 대상: 변경된 정보
128
+
129
+ ### 9. 변경사항 커밋 (선택)
130
+
131
+ CLAUDE.md가 변경되었으면 AskUserQuestion으로 커밋 여부 질문:
132
+
133
+ ```bash
134
+ git add CLAUDE.md
135
+ git commit -m "docs: CLAUDE.md 업데이트 (task $TASK_ID 완료 반영)"
136
+ git push origin main
137
+ ```
138
+
139
+ ---
140
+
141
+ ## 결과 보고
142
+
143
+ ```
144
+ [PR 머지 후 정리 완료]
145
+
146
+ PR 정보:
147
+ - PR: #<PR번호>
148
+ - 제목: <PR 제목>
149
+ - 브랜치: <headRefName> → <baseRefName>
150
+
151
+ TaskMaster 상태:
152
+ - Task ID: task <N>
153
+ - 상태: done
154
+ - Subtasks: 모두 완료 (1.1, 1.2, 1.3)
155
+
156
+ 정리 작업:
157
+ - [x] 로컬 브랜치 삭제: issue-<N>
158
+ - [x] TaskMaster 상태 업데이트
159
+ - [ ] CLAUDE.md 업데이트 (변경 없음)
160
+
161
+ 다음 작업:
162
+ - task-master next → Task <M>
163
+ - /tm:resolve-issue <M> 으로 시작
164
+ ```
165
+
166
+ ---
167
+
168
+ ## 작업 지침
169
+
170
+ - 한글로 답변
171
+ - 코드나 문서 작성 시 이모지 사용 금지
172
+ - 불명확한 사항은 추측하지 말고 AskUserQuestion으로 질문
173
+ - TaskMaster 상태 변경, 브랜치 삭제 등은 항상 사용자 확인 필요
174
+
175
+ ---
176
+
177
+ ## ID 참조 가이드
178
+
179
+ ```
180
+ [이 커맨드에서 사용되는 ID들]
181
+
182
+ GitHub:
183
+ - PR 번호: #13, #14
184
+ - Issue 번호: #1, #2 (PR과 동일 네임스페이스)
185
+ - 브랜치: issue-1, issue-2
186
+
187
+ TaskMaster:
188
+ - 메인 태스크: task 1, task 2
189
+ - Subtask: task 1.1, task 1.2
190
+
191
+ 연결:
192
+ - PR 본문의 "Task Master 참조: task N"
193
+ - PR 본문의 "Closes #N" (GitHub Issue 연결)
194
+ ```
@@ -0,0 +1,267 @@
1
+ # TaskMaster 기반 GitHub Issue 해결하기
2
+
3
+ GitHub Issue를 TaskMaster subtask 단위로 체계적으로 해결하고 PR을 생성합니다.
4
+
5
+ **중요**: 이 커맨드는 TaskMaster와 GitHub Issue를 연동합니다.
6
+ - **GitHub Issue 번호**: `#1`, `#2` 형태 (GitHub에서 생성된 번호)
7
+ - **TaskMaster Task ID**: `task 1`, `task 1.1` 형태 (tasks.json 기준)
8
+
9
+ `@CLAUDE.md`의 프로젝트 지침을 준수할 것.
10
+
11
+ ---
12
+
13
+ ## 아규먼트
14
+
15
+ `$ARGUMENTS`로 다음 중 하나를 받습니다:
16
+ - GitHub Issue 번호 (예: `1`, `#1`)
17
+ - TaskMaster Task ID (예: `task 1`, `task:1`)
18
+
19
+ ---
20
+
21
+ ## 작업 순서
22
+
23
+ ### 1. 아규먼트 파싱 및 ID 매핑
24
+
25
+ ```
26
+ 입력값 분석:
27
+ - "#1" 또는 "1" → GitHub Issue 번호로 해석
28
+ - "task 1" 또는 "task:1" → TaskMaster Task ID로 해석
29
+ ```
30
+
31
+ **GitHub Issue 번호인 경우:**
32
+
33
+ ```bash
34
+ # 1단계: Issue 정보 가져오기
35
+ gh issue view $ISSUE_NUMBER --json number,title,body,state
36
+
37
+ # 2단계: 본문에서 TaskMaster Task ID 추출
38
+ BODY=$(gh issue view $ISSUE_NUMBER --json body --jq '.body')
39
+ echo "$BODY" | grep -oP "Task Master 참조: task \K[0-9]+"
40
+
41
+ # 예상 출력: 1 (숫자만)
42
+ ```
43
+
44
+ **추출 실패 시 (Task Master 참조가 없는 경우):**
45
+ ```
46
+ → Issue가 sync-to-github로 생성된 게 아닐 수 있음
47
+ → 사용자에게 TaskMaster Task ID 직접 입력 요청
48
+ → AskUserQuestion: "이 Issue에 해당하는 TaskMaster Task ID가 무엇인가요?"
49
+ ```
50
+
51
+ **TaskMaster Task ID인 경우:**
52
+ ```bash
53
+ # tasks.json에서 해당 태스크 확인
54
+ task-master show $TASK_ID
55
+
56
+ # 해당하는 GitHub Issue 찾기 (역방향 매핑)
57
+ gh issue list --search "in:body \"Task Master 참조: task $TASK_ID\"" --json number,title
58
+ ```
59
+
60
+ ### 2. 태스크 정보 확인
61
+
62
+ ```bash
63
+ # TaskMaster에서 태스크 상세 정보 확인
64
+ task-master show $TASK_ID
65
+
66
+ # 출력 예시:
67
+ # Task 1: Next.js 15 프로젝트 초기 설정
68
+ # Status: pending
69
+ # Dependencies: none
70
+ # Subtasks: (none)
71
+ ```
72
+
73
+ **확인 사항:**
74
+ - [ ] 태스크 상태가 `pending` 또는 `in-progress`인지
75
+ - [ ] 의존성 태스크가 모두 완료되었는지 (`task-master show`로 dependencies 확인)
76
+
77
+ ### 3. Subtask 확장 (필요시)
78
+
79
+ ```bash
80
+ # subtask가 없는 경우에만 실행
81
+ task-master expand --id=$TASK_ID --research
82
+ ```
83
+
84
+ **확장 후 확인:**
85
+ ```bash
86
+ task-master show $TASK_ID
87
+ # Subtasks:
88
+ # - 1.1: 프로젝트 생성 (pending)
89
+ # - 1.2: Shadcn/ui 초기화 (pending)
90
+ # - 1.3: 의존성 설치 (pending)
91
+ # ...
92
+ ```
93
+
94
+ ### 4. 브랜치 생성
95
+
96
+ ```bash
97
+ # main 또는 master에서 새 브랜치 생성
98
+ git checkout main && git pull origin main
99
+ git checkout -b issue-$ISSUE_NUMBER
100
+ ```
101
+
102
+ **브랜치 명명 규칙:**
103
+ - `issue-1` (GitHub Issue #1 작업용)
104
+ - `issue-1-subtask-1.2` (특정 subtask만 작업 시, 선택사항)
105
+
106
+ ### 5. Subtask 순차 처리
107
+
108
+ **처리 순서 결정:**
109
+ ```bash
110
+ # subtask 목록과 의존성 확인
111
+ task-master show $TASK_ID
112
+ ```
113
+
114
+ **각 subtask별 처리 루프:**
115
+
116
+ ```
117
+ [Subtask 1.1 시작]
118
+ 1. task-master set-status --id=1.1 --status=in-progress
119
+ 2. subtask 내용에 따라 코드 구현
120
+ 3. 구현 완료 후 검증 (빌드, 린트, 테스트)
121
+ 4. task-master set-status --id=1.1 --status=done
122
+ 5. task-master update-subtask --id=1.1 --prompt="구현 완료: [간단한 설명]"
123
+
124
+ [Subtask 1.2 시작]
125
+ ... 반복 ...
126
+ ```
127
+
128
+ **중요 원칙:**
129
+ - 한 번에 하나의 subtask만 `in-progress`
130
+ - 의존성이 있는 subtask는 선행 subtask 완료 후 처리
131
+ - 각 subtask 완료 시 즉시 상태 업데이트
132
+
133
+ ### 6. 메인 태스크 완료 처리
134
+
135
+ 모든 subtask가 `done` 상태가 되면:
136
+
137
+ ```bash
138
+ # 메인 태스크 완료
139
+ task-master set-status --id=$TASK_ID --status=done
140
+
141
+ # 최종 확인
142
+ task-master show $TASK_ID
143
+ ```
144
+
145
+ ### 7. 커밋 및 푸시
146
+
147
+ ```bash
148
+ # 변경사항 확인
149
+ git status
150
+ git diff
151
+
152
+ # 커밋 (태스크 정보 포함)
153
+ git add .
154
+ git commit -m "feat: [Task $TASK_ID] 태스크 제목
155
+
156
+ - subtask 1.1: 완료 내용
157
+ - subtask 1.2: 완료 내용
158
+ ...
159
+
160
+ Task Master 참조: task $TASK_ID
161
+ Closes #$ISSUE_NUMBER"
162
+
163
+ # 푸시
164
+ git push -u origin issue-$ISSUE_NUMBER
165
+ ```
166
+
167
+ ### 8. PR 생성
168
+
169
+ ```bash
170
+ gh pr create \
171
+ --title "[Task $TASK_ID] 태스크 제목" \
172
+ --body "$(cat <<'EOF'
173
+ ## 개요
174
+ GitHub Issue #$ISSUE_NUMBER 해결
175
+
176
+ ## TaskMaster 태스크 정보
177
+ - **Task ID**: $TASK_ID
178
+ - **Task 제목**: [태스크 제목]
179
+
180
+ ## 완료된 Subtask
181
+ - [x] subtask 1.1: [설명]
182
+ - [x] subtask 1.2: [설명]
183
+ - [x] subtask 1.3: [설명]
184
+
185
+ ## 변경 사항
186
+ - [주요 변경 내용 요약]
187
+
188
+ ## 테스트
189
+ - [ ] 빌드 성공
190
+ - [ ] 린트 통과
191
+ - [ ] 기능 테스트 완료
192
+
193
+ ## 관련 이슈
194
+ Closes #$ISSUE_NUMBER
195
+
196
+ ---
197
+ Task Master 참조: task $TASK_ID
198
+ EOF
199
+ )"
200
+ ```
201
+
202
+ ### 9. GitHub Issue 업데이트
203
+
204
+ ```bash
205
+ # Issue에 진행 상황 코멘트 추가
206
+ gh issue comment $ISSUE_NUMBER --body "PR #[PR번호] 생성 완료. 코드리뷰 요청드립니다.
207
+
208
+ **완료된 작업:**
209
+ $(task-master show $TASK_ID | grep -A 100 'Subtasks:')"
210
+ ```
211
+
212
+ ---
213
+
214
+ ## ID 매핑 참조표
215
+
216
+ | 구분 | 형식 | 예시 | 설명 |
217
+ |------|------|------|------|
218
+ | GitHub Issue | `#N` | `#1`, `#12` | GitHub에서 자동 부여 |
219
+ | TaskMaster 메인 태스크 | `task N` | `task 1`, `task 12` | tasks.json의 id 필드 |
220
+ | TaskMaster Subtask | `task N.M` | `task 1.1`, `task 1.2` | 메인태스크.서브태스크 |
221
+
222
+ **매핑 규칙:**
223
+ - `sync-to-github` 실행 시 Issue 본문에 `Task Master 참조: task N` 포함됨
224
+ - 이를 통해 GitHub Issue ↔ TaskMaster Task 연결
225
+
226
+ ---
227
+
228
+ ## 주의사항
229
+
230
+ 1. **ID 혼동 주의**
231
+ - GitHub Issue `#1`과 TaskMaster `task 1`은 다를 수 있음
232
+ - 항상 Issue 본문의 "Task Master 참조" 확인
233
+
234
+ 2. **subtask 순서 준수**
235
+ - 의존성이 있는 subtask는 반드시 순서대로 처리
236
+ - `task-master show`로 dependencies 확인
237
+
238
+ 3. **상태 업데이트 즉시 수행**
239
+ - subtask 완료 즉시 `set-status --status=done`
240
+ - 진행 상황이 tasks.json에 실시간 반영되어야 함
241
+
242
+ 4. **커밋 메시지에 참조 포함**
243
+ - `Task Master 참조: task N` 포함
244
+ - `Closes #N` 또는 `Fixes #N` 포함
245
+
246
+ ---
247
+
248
+ ## 에러 처리
249
+
250
+ **의존성 미완료:**
251
+ ```
252
+ Error: Task 1의 의존성 task 0이 완료되지 않았습니다.
253
+ → 선행 태스크 먼저 완료 필요
254
+ ```
255
+
256
+ **subtask expand 실패:**
257
+ ```
258
+ Error: expand 실패
259
+ → task-master expand --id=$TASK_ID --force 시도
260
+ ```
261
+
262
+ **빌드/테스트 실패:**
263
+ ```
264
+ → 해당 subtask를 in-progress로 유지
265
+ → 문제 해결 후 다시 진행
266
+ → task-master update-subtask --id=N.M --prompt="이슈: [설명]"
267
+ ```
@@ -0,0 +1,333 @@
1
+ # TaskMaster -> GitHub Issue 동기화
2
+
3
+ TaskMaster의 tasks.json을 읽어 GitHub Issue와 Milestone을 자동 생성합니다.
4
+
5
+ **중요 - ID 구분:**
6
+ - **GitHub Issue**: `#1`, `#2` (GitHub 자동 부여, 순차적)
7
+ - **TaskMaster Task ID**: `task 1`, `task 2` (tasks.json 기준)
8
+ - **동기화 후**: Issue 본문에 `Task Master 참조: task N` 포함되어 매핑됨
9
+
10
+ `@CLAUDE.md`의 프로젝트 지침을 준수할 것.
11
+
12
+ ---
13
+
14
+ ## 구조 설계
15
+
16
+ ```
17
+ GitHub TaskMaster
18
+ ────── ──────────
19
+ Milestone: Phase 1 MVP ←── PRD Phase 1 (Task 1-4)
20
+ ├── Issue #1 ←── task 1 (메인 태스크)
21
+ ├── Issue #2 ←── task 2
22
+ ├── Issue #3 ←── task 3
23
+ └── Issue #4 ←── task 4
24
+
25
+ Milestone: Phase 2 Core ←── PRD Phase 2 (Task 5-7)
26
+ ├── Issue #5 ←── task 5
27
+ ...
28
+ ```
29
+
30
+ **원칙:**
31
+ - **Milestone** = PRD Phase 단위 (4개)
32
+ - **Issue** = 메인 태스크 단위 (12개)
33
+ - **Subtask** = Issue 내 체크박스 + TaskMaster 내부 관리
34
+
35
+ ---
36
+
37
+ ## 작업 순서
38
+
39
+ ### 1. 사전 확인
40
+
41
+ ```bash
42
+ # tasks.json 존재 확인
43
+ ls .taskmaster/tasks/tasks.json
44
+
45
+ # 저장소 라벨 확인
46
+ gh label list
47
+
48
+ # 기존 마일스톤 확인
49
+ gh milestone list
50
+
51
+ # 기존 Issue 확인 (번호 예측용)
52
+ gh issue list --state all --limit 1 --json number
53
+ # 예: [{"number": 5}] → 다음 Issue는 #6부터 시작
54
+
55
+ # TaskMaster 관련 Issue 이미 있는지 확인
56
+ gh issue list --search "in:body \"Task Master 참조\"" --state all --json number,title
57
+ ```
58
+
59
+ **Issue 번호 예측:**
60
+ ```
61
+ 현재 최대 Issue 번호: #5
62
+ → task 1 = Issue #6
63
+ → task 2 = Issue #7
64
+ → ...
65
+ → task 12 = Issue #17
66
+
67
+ (주의: PR도 같은 번호 풀 사용하므로 중간에 PR 생성되면 번호 밀림)
68
+ ```
69
+
70
+ ### 2. tasks.json 및 PRD 분석
71
+
72
+ ```bash
73
+ # 태스크 목록 확인
74
+ task-master list
75
+ ```
76
+
77
+ **PRD Phase 매핑 (prd.md 참조):**
78
+
79
+ | Phase | TaskMaster Task IDs | 설명 |
80
+ |-------|---------------------|------|
81
+ | Phase 1: MVP | task 1, 2, 3, 4 | 초기 설정, 디자인, 레이아웃, 인증 |
82
+ | Phase 2: Core Features | task 5, 6, 7 | 대시보드, VLM, VLM-CoT |
83
+ | Phase 3: UX Enhancement | task 8, 9, 10 | 애니메이션, 에러처리, 성능 |
84
+ | Phase 4: Deploy | task 11, 12 | CORS, Docker |
85
+
86
+ ### 3. 변환 계획 수립 및 사용자 확인
87
+
88
+ 아래 형식으로 변환 계획을 출력하고 **반드시 사용자 확인** 요청:
89
+
90
+ ```
91
+ [Milestone 생성 계획] (4개)
92
+ - Phase 1: MVP (task 1-4 포함)
93
+ - Phase 2: Core Features (task 5-7 포함)
94
+ - Phase 3: UX Enhancement (task 8-10 포함)
95
+ - Phase 4: Deploy (task 11-12 포함)
96
+
97
+ [Issue 생성 계획] (12개)
98
+ Phase 1: MVP 하위:
99
+ - Issue: [feature] task 1 - Next.js 15 프로젝트 초기 설정
100
+ - Issue: [feature] task 2 - 디자인 시스템 및 테마 구축
101
+ - Issue: [feature] task 3 - 공통 레이아웃 및 네비게이션 구현
102
+ - Issue: [feature] task 4 - 인증 시스템 및 보호된 라우트 구현
103
+ Phase 2: Core Features 하위:
104
+ ...
105
+ ```
106
+
107
+ ### 4. Milestone 생성
108
+
109
+ Phase 단위로 Milestone 생성:
110
+
111
+ ```bash
112
+ # Phase 1
113
+ gh api repos/:owner/:repo/milestones \
114
+ -f title="Phase 1: MVP" \
115
+ -f description="초기 설정, 디자인 시스템, 레이아웃, 인증 구현 (task 1-4)"
116
+
117
+ # Phase 2
118
+ gh api repos/:owner/:repo/milestones \
119
+ -f title="Phase 2: Core Features" \
120
+ -f description="대시보드, VLM 분석, VLM-CoT 분석 구현 (task 5-7)"
121
+
122
+ # Phase 3, 4도 동일하게...
123
+ ```
124
+
125
+ ### 5. Issue 생성
126
+
127
+ 메인 Task를 Issue로 변환:
128
+
129
+ #### 제목 형식
130
+ `[타입] 간결한 작업 설명`
131
+
132
+ #### 라벨 선택 (실제 저장소 라벨 사용)
133
+ **주의**: `gh label list` 결과에서 실제 존재하는 라벨만 사용
134
+
135
+ 예시 (프로젝트에 따라 다름):
136
+ - **타입**: `type: feature`, `type: enhancement`, `type: bug`, `type: refactor`
137
+ - **영역**: `frontend`, `backend`, `api`, `ai`, `infrastructure`
138
+ - **난이도**: `complexity: easy`, `complexity: medium`, `complexity: hard`
139
+
140
+ #### 본문 템플릿
141
+
142
+ **중요**: `Task Master 참조` 섹션은 반드시 포함되어야 함 (resolve-issue에서 매핑에 사용)
143
+
144
+ ```markdown
145
+ ## 목적
146
+ [Task description에서 추출]
147
+
148
+ ## 작업 내용
149
+ [details 필드를 체크박스로 변환]
150
+ - [ ] 구체적 요구사항 1
151
+ - [ ] 구체적 요구사항 2
152
+ - [ ] 구체적 요구사항 3
153
+
154
+ ## 수정할 파일
155
+ [details 필드에서 파일 경로 추출, 없으면 "구현 시 결정"]
156
+ - `경로/파일명` - 변경 내용
157
+
158
+ ## 기술 상세
159
+ [details 필드의 코드 예시나 상세 내용]
160
+
161
+ ## 완료 조건
162
+ [testStrategy 필드에서 추출]
163
+ - [ ] 테스트 조건 1
164
+ - [ ] 테스트 조건 2
165
+
166
+ ## 의존성
167
+ [dependencies 필드 → GitHub Issue 번호로 변환]
168
+ - 선행 작업: #N (task M) 또는 "없음"
169
+
170
+ ## 참고 자료 (선택사항)
171
+ [관련 PR이나 문서가 있으면 추가, 없으면 섹션 생략]
172
+ - 관련 PR: #N - 설명
173
+ - 문서: [링크]
174
+
175
+ ---
176
+ **Task Master 참조**: task [TASK_ID]
177
+ ```
178
+
179
+ **예시 (task 1의 경우):**
180
+ ```markdown
181
+ ## 목적
182
+ frontend/ 디렉토리에 Next.js 15 App Router 기반 프로젝트를 생성하고 핵심 의존성을 설정합니다.
183
+
184
+ ## 작업 내용
185
+ - [ ] create-next-app으로 프로젝트 생성
186
+ - [ ] Shadcn/ui 초기화
187
+ - [ ] 필수 의존성 설치 (next-themes, framer-motion 등)
188
+ - [ ] Pretendard 폰트 설정
189
+ - [ ] tailwind.config.ts 커스터마이징
190
+ - [ ] ESLint/Prettier 설정
191
+
192
+ ## 수정할 파일
193
+ - `frontend/` - 새 디렉토리 생성
194
+ - `frontend/tailwind.config.ts` - 커스텀 설정
195
+ - `frontend/app/layout.tsx` - Pretendard 폰트 설정
196
+
197
+ ## 완료 조건
198
+ - [ ] npm run dev 정상 구동
199
+ - [ ] npm run build 성공
200
+ - [ ] localhost:3000 접속 확인
201
+
202
+ ## 의존성
203
+ - 없음
204
+
205
+ ---
206
+ **Task Master 참조**: task 1
207
+ ```
208
+
209
+ #### Issue 생성 명령어
210
+ ```bash
211
+ gh issue create \
212
+ --title "[타입] 제목" \
213
+ --body "본문 내용" \
214
+ --label "라벨1,라벨2" \
215
+ --milestone "마일스톤명"
216
+ ```
217
+
218
+ ### 6. 의존성 연결 및 ID 매핑 기록
219
+
220
+ **Issue 생성 순서**: task 1부터 순서대로 생성하면 Issue 번호도 순차적
221
+
222
+ | TaskMaster ID | GitHub Issue | 제목 |
223
+ |---------------|--------------|------|
224
+ | task 1 | #1 | Next.js 15 프로젝트 초기 설정 |
225
+ | task 2 | #2 | 디자인 시스템 및 테마 구축 |
226
+ | ... | ... | ... |
227
+
228
+ **의존성 변환:**
229
+ - task 2의 dependencies: [1] → Issue #2 본문에 "선행 작업: #1 (task 1)"
230
+
231
+ ### 7. 결과 보고 및 매핑 테이블 출력
232
+
233
+ **중요**: 실제 생성된 Issue 번호로 매핑 테이블 작성 (사전 확인에서 예측한 번호 기반)
234
+
235
+ ```
236
+ [동기화 완료]
237
+
238
+ Milestones (4개):
239
+ - Phase 1: MVP
240
+ - Phase 2: Core Features
241
+ - Phase 3: UX Enhancement
242
+ - Phase 4: Deploy
243
+
244
+ Issues (12개):
245
+ | GitHub Issue | TaskMaster | 제목 | Milestone |
246
+ |--------------|------------|------|-----------|
247
+ | #N | task 1 | Next.js 15 프로젝트 초기 설정 | Phase 1: MVP |
248
+ | #N+1 | task 2 | 디자인 시스템 및 테마 구축 | Phase 1: MVP |
249
+ | #N+2 | task 3 | 공통 레이아웃 및 네비게이션 | Phase 1: MVP |
250
+ | #N+3 | task 4 | 인증 시스템 구현 | Phase 1: MVP |
251
+ | #N+4 | task 5 | 대시보드 홈 구현 | Phase 2: Core |
252
+ | ... | ... | ... | ... |
253
+
254
+ (N = 기존 최대 Issue/PR 번호 + 1)
255
+ ```
256
+
257
+ **생성 후 검증:**
258
+ ```bash
259
+ # 실제 생성된 Issue 확인
260
+ gh issue list --state open --json number,title --limit 20
261
+
262
+ # 매핑 확인
263
+ gh issue view <번호> --json body | grep "Task Master 참조"
264
+ ```
265
+
266
+ **다음 단계 안내:**
267
+ ```
268
+ 다음 단계: /tm:resolve-issue <GitHub Issue 번호> 또는 /tm:resolve-issue task 1
269
+ ```
270
+
271
+ ---
272
+
273
+ ## 옵션 처리
274
+
275
+ ### 아규먼트
276
+ - ARGUMENTS 비어있음: 전체 Task 동기화 (12개)
277
+ - ARGUMENTS가 Phase 번호: 해당 Phase만 (예: phase1, 1)
278
+ - ARGUMENTS가 Task ID: 해당 Task만 (예: task 1, 1,2,3)
279
+
280
+ ### 상태 필터
281
+ - pending, in-progress 상태만 동기화
282
+ - done, cancelled는 건너뜀
283
+
284
+ ---
285
+
286
+ ## 주의사항
287
+
288
+ 1. **중복 생성 방지**
289
+
290
+ 동기화 전 반드시 기존 Issue 확인:
291
+
292
+ ```bash
293
+ # 전체 Issue 목록 확인
294
+ gh issue list --state all --limit 100
295
+
296
+ # 특정 task가 이미 Issue로 생성되었는지 검색
297
+ gh issue list --search "Task Master 참조: task 1" --state all
298
+
299
+ # 또는 본문 내용으로 검색
300
+ gh issue list --search "in:body \"Task Master 참조\"" --state all
301
+ ```
302
+
303
+ **이미 존재하면**: 해당 task는 건너뛰고 사용자에게 알림
304
+
305
+ 2. **사용자 확인 필수**
306
+ - Milestone/Issue 생성 전 반드시 계획 확인
307
+ - 라벨이 없으면 라벨 생성 여부 문의
308
+
309
+ 3. **ID 매핑 기록 유지**
310
+ - 동기화 완료 후 매핑 테이블 출력
311
+ - 이후 resolve-issue에서 참조
312
+
313
+ ---
314
+
315
+ ## ID 참조 가이드
316
+
317
+ ```
318
+ [ID 형식 구분]
319
+
320
+ GitHub:
321
+ - Issue: #1, #2, #12 (# 접두어)
322
+ - PR: #13, #14 (Issue와 동일 네임스페이스)
323
+ - Milestone: "Phase 1: MVP" (이름으로 참조)
324
+
325
+ TaskMaster:
326
+ - 메인 태스크: task 1, task 2, task 12
327
+ - Subtask: task 1.1, task 1.2, task 2.1
328
+ - 상태: pending, in-progress, done
329
+
330
+ 매핑:
331
+ - GitHub Issue #N ←→ TaskMaster task N (sync-to-github 실행 후)
332
+ - Issue 본문의 "Task Master 참조: task N"으로 연결
333
+ ```
@@ -0,0 +1,36 @@
1
+ # PRD 초안 템플릿
2
+
3
+ 여기에 아이디어를 자유롭게 작성하세요.
4
+ `/tm:convert-prd` 커맨드로 TaskMaster PRD 포맷으로 변환됩니다.
5
+
6
+ ---
7
+
8
+ ## 뭘 만들고 싶은지
9
+
10
+ (프로젝트 목적, 해결하려는 문제)
11
+
12
+
13
+
14
+ ## 주요 기능
15
+
16
+ (만들고 싶은 기능들 나열)
17
+
18
+
19
+
20
+ ## 기술 스택
21
+
22
+ (사용할 기술, 프레임워크 등)
23
+
24
+
25
+
26
+ ## 만드는 순서
27
+
28
+ (먼저 만들 것, 나중에 만들 것)
29
+
30
+
31
+
32
+ ## 기타
33
+
34
+ (걱정되는 점, 참고사항 등)
35
+
36
+
@@ -16,6 +16,56 @@ To search and analyze code repositories across GitHub and Hugging Face platforms
16
16
  | **GitHub** | Repositories, Code | `gh` CLI |
17
17
  | **Hugging Face** | Models, Datasets, Spaces | `uvx hf` CLI + `huggingface_hub` API |
18
18
 
19
+ ## 검색 품질 원칙 (필수)
20
+
21
+ ### 1. 현재 날짜 확인
22
+
23
+ ```bash
24
+ date +%Y-%m-%d
25
+ ```
26
+ 아래 예시의 연도는 참고용. 실제 검색 시 **현재 연도** 사용.
27
+
28
+ ### 2. Long-tail Keywords 적용
29
+
30
+ 예시의 Short-tail을 그대로 쓰지 말고 확장:
31
+
32
+ | 예시 (참고용) | 실제 검색 (Long-tail) |
33
+ |---------------|----------------------|
34
+ | `"object detection"` | `"open vocabulary object detection pytorch inference {현재연도}"` |
35
+ | `"gradio demo"` | `"gradio image segmentation interactive demo huggingface"` |
36
+ | `"qwen vl"` | `"qwen2-vl vision language model zero-shot example code"` |
37
+
38
+ ### 3. Multi-Query 적용
39
+
40
+ 한 번에 찾기 어려우면 **2-3개 관점**으로 검색:
41
+
42
+ ```bash
43
+ # 모델명 중심
44
+ gh search repos "qwen2-vl" --sort stars
45
+
46
+ # 기능 중심
47
+ gh search repos "vision language open vocabulary detection" --sort stars
48
+
49
+ # 구현 중심
50
+ gh search repos "vl model gradio demo inference" --sort stars
51
+ ```
52
+
53
+ ### 4. 필터 활용
54
+
55
+ ```bash
56
+ # 최신 + 품질 필터 (현재 연도 적용)
57
+ gh search repos "keyword" stars:>50 pushed:>{현재연도-1}-01-01 --language python
58
+ ```
59
+
60
+ ### 5. 검색 전 체크리스트
61
+
62
+ - [ ] 현재 날짜 확인했는가?
63
+ - [ ] Short-tail을 Long-tail로 변환했는가?
64
+ - [ ] 필요시 2-3개 변형 쿼리로 검색했는가?
65
+ - [ ] 적절한 필터(언어, 스타, 날짜) 적용했는가?
66
+
67
+ ---
68
+
19
69
  ## Workflow Decision Tree
20
70
 
21
71
  ```
package/README.md CHANGED
@@ -12,11 +12,15 @@ Claude Code CLI를 위한 커스텀 슬래시 커맨드, 에이전트, 스킬
12
12
  │ ├── commit-and-push.md # Git 커밋 및 푸시 자동화
13
13
  │ ├── edit-notebook.md # Jupyter Notebook 안전 편집
14
14
  │ ├── plan.md # 구현 계획 수립 (코드 작성 전)
15
- └── gh/
16
- ├── create-issue-label.md # GitHub 이슈 라벨 생성
17
- ├── decompose-issue.md # 큰 작업을 이슈로 분해
18
- ├── post-merge.md # PR 머지 후 정리 작업
19
- └── resolve-issue.md # GitHub 이슈 해결 워크플로우
15
+ ├── gh/
16
+ ├── create-issue-label.md # GitHub 이슈 라벨 생성
17
+ ├── decompose-issue.md # 큰 작업을 이슈로 분해
18
+ ├── post-merge.md # PR 머지 후 정리 작업
19
+ └── resolve-issue.md # GitHub 이슈 해결 워크플로우
20
+ │ └── tm/
21
+ │ ├── post-merge.md # TaskMaster 연동 PR 머지 후 정리
22
+ │ ├── resolve-issue.md # TaskMaster 기반 이슈 해결
23
+ │ └── sync-to-github.md # TaskMaster -> GitHub 동기화
20
24
  ├── agents/ # 커스텀 에이전트
21
25
  │ ├── web-researcher.md # 다중 플랫폼 웹 리서치
22
26
  │ ├── python-pro.md # Python 전문가
@@ -54,6 +58,14 @@ Claude Code CLI를 위한 커스텀 슬래시 커맨드, 에이전트, 스킬
54
58
  | `/gh/post-merge` | PR 머지 후 브랜치 정리 및 CLAUDE.md 업데이트 |
55
59
  | `/gh/resolve-issue` | GitHub 이슈 번호를 받아 체계적으로 분석하고 해결 |
56
60
 
61
+ ### TaskMaster 연동 커맨드 (`/tm/`)
62
+
63
+ | 커맨드 | 설명 |
64
+ |--------|------|
65
+ | `/tm/sync-to-github` | TaskMaster tasks.json을 GitHub Issue/Milestone으로 동기화 |
66
+ | `/tm/resolve-issue` | GitHub Issue를 TaskMaster subtask 단위로 체계적 해결 |
67
+ | `/tm/post-merge` | PR 머지 후 TaskMaster 상태 업데이트 및 브랜치 정리 |
68
+
57
69
  ## 에이전트
58
70
 
59
71
  | 에이전트 | 설명 |
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@yeongjaeyou/claude-code-config",
3
- "version": "0.1.2",
3
+ "version": "0.2.1",
4
4
  "description": "Claude Code CLI custom commands, agents, and skills",
5
5
  "bin": {
6
6
  "claude-code-config": "./bin/cli.js"