binary-agents 1.1.4 → 1.3.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -41,7 +41,7 @@ model: haiku | sonnet | opus
41
41
  ## Your Role
42
42
  [호출 시 서브에이전트가 하는 일]
43
43
 
44
- ## 평가 기준
44
+ ## 평가 원칙
45
45
  [무엇을 어떻게 분석하는지]
46
46
 
47
47
  ## 프로세스
@@ -51,7 +51,7 @@ model: haiku | sonnet | opus
51
51
  [예상 출력 구조]
52
52
 
53
53
  ## 가이드라인
54
- [베스트 프랙티스와 점수화]
54
+ [베스트 프랙티스와 심각도 분류]
55
55
  ```
56
56
 
57
57
  ### 핵심 구성요소
@@ -67,7 +67,7 @@ model: haiku | sonnet | opus
67
67
  - 자율 운영 지침
68
68
  - 범위와 제한
69
69
 
70
- 3. **평가 기준**
70
+ 3. **평가 원칙**
71
71
  - 찾아야 할 것 (✅)
72
72
  - 피해야 할 것 (❌)
73
73
  - 업계 표준
@@ -84,7 +84,7 @@ model: haiku | sonnet | opus
84
84
  - file:line 참조 포맷
85
85
 
86
86
  6. **가이드라인**
87
- - 점수 기준
87
+ - 심각도 분류 기준 (Critical / Recommended Improvements / Best Practices Found)
88
88
  - 품질 표준
89
89
  - 베스트 프랙티스
90
90
 
@@ -183,12 +183,12 @@ model: haiku
183
183
  호출 시:
184
184
  1. [특정 패턴]에 대해 코드베이스 스캔
185
185
  2. [기준]에 대해 분석
186
- 3. 점수와 권장사항 제공
186
+ 3. Critical / Recommended Improvements / Best Practices Found 분류
187
187
  4. 종합 리포트 반환
188
188
 
189
- ## 평가 기준
189
+ ## 평가 원칙
190
190
 
191
- ### 1. [기준명] (Weight: X%)
191
+ ### 1. [기준명]
192
192
 
193
193
  **✅ 찾아야 할 것:**
194
194
  - [좋은 패턴 1]
@@ -198,7 +198,7 @@ model: haiku
198
198
  - [나쁜 패턴 1]
199
199
  - [나쁜 패턴 2]
200
200
 
201
- ## 리뷰 프로세스
201
+ ## 분석 프로세스
202
202
  1. Glob: 관련 파일 찾기
203
203
  2. Grep: 패턴 검색
204
204
  3. Read: 상세 분석
@@ -243,11 +243,10 @@ model: sonnet
243
243
  - 업계 표준과 비교
244
244
 
245
245
  ## Output Format
246
- 포함:
247
- - 분석 결과
248
- - 업계 비교
249
- - 학습 리소스
250
- - 마이그레이션 가이드
246
+ 통일된 공통 구조 사용:
247
+ - 발견 사항 요약
248
+ - Critical Issues / Recommended Improvements / Best Practices Found
249
+ - Metrics
251
250
  ```
252
251
 
253
252
  ### 3. 자동 수정 에이전트
@@ -281,6 +280,13 @@ model: sonnet
281
280
 
282
281
  ## 서브에이전트 생성 워크플로우
283
282
 
283
+ ### 단계 0: 기존 에이전트 참고
284
+
285
+ **반드시 기존 에이전트들의 구조를 먼저 참고하세요:**
286
+ 1. `Glob("agents/*.md")`로 기존 에이전트 목록 확인
287
+ 2. 유사한 에이전트를 `Read`해서 구조, 평가 원칙, Output Format 패턴 파악
288
+ 3. 기존 에이전트들의 통일된 컨벤션을 따라 새 에이전트 생성
289
+
284
290
  ### 단계 1: 요구사항 이해
285
291
 
286
292
  사용자에게 질문:
@@ -311,7 +317,7 @@ WebSearch로 찾기:
311
317
  - 도메인에 대한 업계 베스트 프랙티스
312
318
  - 일반적인 안티패턴
313
319
  - 평가 기준
314
- - 점수 표준
320
+ - 심각도 분류 표준
315
321
 
316
322
  **예시 검색:**
317
323
  - "[기술] code review checklist"
@@ -324,9 +330,7 @@ WebSearch로 찾기:
324
330
  1. **찾아야 할 것** (✅)
325
331
  2. **피해야 할 것** (❌)
326
332
  3. **업계 표준** (고급이면 🌐)
327
- 4. **점수 가이드** (1-10 척도)
328
-
329
- 중요도별 기준 가중치.
333
+ 4. **심각도 분류** (Critical / Recommended / Best Practices)
330
334
 
331
335
  ### 단계 5: 프로세스 단계 생성
332
336
 
@@ -335,18 +339,17 @@ WebSearch로 찾기:
335
339
  2. **검색**: Grep으로 패턴 검색
336
340
  3. **분석**: 파일 상세 읽기
337
341
  4. **리서치**: (고급이면) WebSearch/WebFetch
338
- 5. **점수**: 각 기준 평가
342
+ 5. **분류**: 각 기준 심각도 평가
339
343
  6. **리포트**: 구조화된 출력 생성
340
344
 
341
345
  ### 단계 6: Output Format 설계
342
346
 
343
- 마크다운 템플릿 생성:
344
- - 전체 점수
345
- - 기준별 분석
346
- - 특정 file:line 참조
347
- - 코드 예시
348
- - 권장사항
349
- - (고급이면) 학습 리소스
347
+ 통일된 마크다운 템플릿 생성 (기존 에이전트 참고):
348
+ - 발견 사항 요약 (Critical / Recommended Improvements / Best Practices Found)
349
+ - Critical Issues (즉시 수정) - 위반 원칙/파일/문제/현재 코드/수정 방법
350
+ - Recommended Improvements (권장 개선)
351
+ - Best Practices Found (잘하고 있음) - 원칙/파일/잘한 점/코드
352
+ - Metrics (수치 지표 테이블)
350
353
 
351
354
  ### 단계 7: 서브에이전트 파일 작성
352
355
 
@@ -396,8 +399,7 @@ Write 도구로 `.md` 파일 생성:
396
399
  ```markdown
397
400
  ## 추가 기준
398
401
 
399
- ### 팀 컨벤션 (Weight: 10%)
400
-
402
+ ### 팀 컨벤션
401
403
  **✅ 찾아야 할 것:**
402
404
  - [회사 네이밍 컨벤션]
403
405
  - [팀 폴더 구조]
@@ -414,8 +416,7 @@ Write 도구로 `.md` 파일 생성:
414
416
  ```markdown
415
417
  ## 도메인 요구사항
416
418
 
417
- ### 보안 & 컴플라이언스 (Weight: 25%)
418
-
419
+ ### 보안 & 컴플라이언스
419
420
  **✅ 필수:**
420
421
  - [HIPAA 컴플라이언스 패턴]
421
422
  - [PII 데이터 처리]
@@ -430,8 +431,7 @@ Write 도구로 `.md` 파일 생성:
430
431
  성능 기준 추가:
431
432
 
432
433
  ```markdown
433
- ### 성능 지표 (Weight: 20%)
434
-
434
+ ### 성능 지표
435
435
  **✅ 찾아야 할 것:**
436
436
  - 번들 크기 < [임계값]
437
437
  - Lazy loading 구현
@@ -456,7 +456,7 @@ Write 도구로 `.md` 파일 생성:
456
456
 
457
457
  2. **요구사항 이해**
458
458
  - 무엇을 변경해야 하나?
459
- - 기준 추가? 점수 수정? 모델 변경?
459
+ - 기준 추가? 심각도 분류 수정? 모델 변경?
460
460
 
461
461
  3. **필요시 리서치**
462
462
  - WebSearch로 새 패턴
@@ -476,8 +476,7 @@ Write 도구로 `.md` 파일 생성:
476
476
 
477
477
  **1. 새 기준 추가:**
478
478
  ```markdown
479
- ### [새 기준] (Weight: X%)
480
-
479
+ ### [새 기준]
481
480
  **✅ 찾아야 할 것:**
482
481
  - [패턴 1]
483
482
  - [패턴 2]
@@ -492,9 +491,8 @@ Write 도구로 `.md` 파일 생성:
492
491
  **2. 고급으로 업그레이드 (웹 리서치 추가):**
493
492
  - 모델 변경: `haiku` → `sonnet`
494
493
  - 도구 추가: `+ WebFetch, WebSearch`
495
- - 🌐 웹 리서치 섹션 추가
496
- - 학습 리소스 섹션 추가
497
- - 업계 비교 섹션 추가
494
+ - 평가 원칙에 🌐 웹 리서치 섹션 추가
495
+ - Output Format은 공통 구조 유지
498
496
 
499
497
  **3. 기술 스택 특화:**
500
498
  - 설명 업데이트
@@ -531,18 +529,11 @@ Write 도구로 `.md` 파일 생성:
531
529
  - [ ] 도구 사용 가이드
532
530
 
533
531
  ### 출력
534
- - [ ] 구조화된 마크다운 템플릿
535
- - [ ] 점수 범위 정의
532
+ - [ ] 통일된 공통 구조 (발견 사항 요약 → Critical → Recommended → Best Practices → Metrics)
533
+ - [ ] 이슈 라벨: 위반 원칙/파일/문제/현재 코드/수정 방법
536
534
  - [ ] file:line 참조 포맷
537
535
  - [ ] 코드 예시 포함
538
- - [ ] 권장사항 포맷
539
-
540
- ### 고급 기능 (해당시)
541
- - [ ] 웹 리서치 가이드
542
- - [ ] 업계 비교 섹션
543
- - [ ] 학습 리소스 섹션
544
- - [ ] 마이그레이션 가이드
545
- - [ ] ROI 분석
536
+ - [ ] 기존 에이전트와 Output Format 일관성 확인
546
537
 
547
538
  ### 품질
548
539
  - [ ] 오타나 문법 오류 없음
@@ -590,7 +581,7 @@ Write 도구로 `.md` 파일 생성:
590
581
 
591
582
  5. **검증 및 제시:**
592
583
  - 생성된 파일 보여주기
593
- - 점수 시스템 설명
584
+ - Output Format 구조 설명
594
585
  - 사용 예시 제공
595
586
 
596
587
  ### 예시 2: 기술 스택에 맞게 커스터마이징
@@ -623,40 +614,34 @@ Write 도구로 `.md` 파일 생성:
623
614
  - Vue 특정 추가사항 강조
624
615
  - 사용 가이드 제공
625
616
 
626
- ### 예시 3: 고급 기능 추가
617
+ ### 예시 3: 평가 기준 추가
627
618
 
628
- **사용자:** "junior-checker학습 리소스 포함하도록 업그레이드해줘"
619
+ **사용자:** "code-reviewer성능 관련 기준을 추가해줘"
629
620
 
630
621
  **프로세스:**
631
622
  1. **현재 버전 읽기:**
632
623
  ```typescript
633
- Read("junior-checker.md")
624
+ Read("code-reviewer.md")
634
625
  ```
635
626
 
636
627
  2. **변경사항 결정:**
637
- - 모델: haiku sonnet
638
- - 도구: + WebFetch, WebSearch
639
- - 기준에 🌐 섹션 추가
640
- - 학습 리소스 섹션 추가
641
- - 큐레이션된 학습 경로 추가
628
+ - 기존 평가 원칙에 성능 기준 추가
629
+ - 도구: + WebFetch, WebSearch (필요시)
630
+ - 기준에 🌐 웹 리서치 섹션 추가
631
+ - Output Format은 공통 구조 유지
642
632
 
643
- 3. **리소스 리서치:**
644
- - WebSearch("best coding tutorials for beginners")
645
- - 공식 문서 소스 찾기
633
+ 3. **도메인 리서치:**
634
+ - WebSearch("React performance best practices [current year]")
635
+ - 기존 react-performance-optimizer.md 참고
646
636
 
647
637
  4. **수정 적용:**
648
638
  ```typescript
649
- Edit("junior-checker.md", [변경사항])
650
- ```
651
- 또는 새 고급 버전 생성:
652
- ```typescript
653
- Write("advanced-junior-checker.md", [향상된 내용])
639
+ Edit("code-reviewer.md", [변경사항])
654
640
  ```
655
641
 
656
- 5. **변경사항 문서화:**
657
- - 모든 추가사항 목록
658
- - 기능 설명
659
- - 필요시 README 업데이트
642
+ 5. **변경사항 검증:**
643
+ - 통일된 Output Format 유지 확인
644
+ - 심각도 분류 일관성 확인
660
645
 
661
646
  ---
662
647
 
@@ -693,7 +678,7 @@ Write 도구로 `.md` 파일 생성:
693
678
 
694
679
  1. **과도하게 복잡하게 하지 말 것**
695
680
  - 과도한 기준 피하기 (최대 7-8개)
696
- - 점수 단순하게 유지
681
+ - 심각도 분류 단순하게 유지
697
682
  - 너무 많은 관심사 섞지 않기
698
683
 
699
684
  2. **잘못된 모델 사용 금지**
@@ -725,7 +710,7 @@ Write 도구로 `.md` 파일 생성:
725
710
  - ✅ 구체적 예시 포함
726
711
  - ✅ 실행 가능한 출력 제공
727
712
  - ✅ file:line 참조 사용
728
- - ✅ 명확한 점수 기준 가짐
713
+ - ✅ 통일된 Output Format 준수
729
714
  - ✅ 너비와 깊이 균형
730
715
  - ✅ 유지보수 및 업데이트 가능
731
716
 
@@ -760,7 +745,7 @@ model: haiku # 빠르고 적절함
760
745
 
761
746
  ### ❌ 너무 많은 기준
762
747
  ```markdown
763
- ## 평가 기준
748
+ ## 평가 원칙
764
749
  ### 1. 기준 A
765
750
  ### 2. 기준 B
766
751
  ### 3. 기준 C
@@ -781,10 +766,19 @@ model: haiku # 빠르고 적절함
781
766
  ## Output Format
782
767
  ```markdown
783
768
  # 보안 분석
784
- ## 점수: X/10
785
- ## Critical 이슈 (즉시 수정)
786
- - [file:line] - [컴포넌트]의 XSS 취약점
787
- - 수정: [구체적 코드 예시]
769
+
770
+ ## 발견 사항 요약
771
+ - **Critical:** N개 (즉시 수정 필요)
772
+ - **Recommended Improvements:** M개 (권장 개선)
773
+ - **Best Practices Found:** P개 (잘하고 있음)
774
+
775
+ ## Critical Issues (즉시 수정)
776
+ ### 1. [Issue Name]
777
+ **위반 원칙:** [해당 원칙]
778
+ **파일:** [file:line]
779
+ **문제:** [설명]
780
+ **현재 코드:** [코드]
781
+ **수정 방법:** [코드]
788
782
  ```
789
783
 
790
784
  ---
@@ -34,7 +34,13 @@ main에서 최신 코드를 pull하고 프로젝트의 네이밍 컨벤션을
34
34
  - 커밋되지 않은 변경사항이 있으면 먼저 사용자에게 경고
35
35
 
36
36
  3. **사용자 의도 파악**
37
- - 컨텍스트에서 명확하지 않으면 무엇을 작업할 건지 물어보기
37
+ - `/branch` 뒤에 추가 인자가 없으면:
38
+ - 위 컨텍스트 정보(현재 브랜치, 최근 커밋 등)를 분석하여 현재 상황 요약
39
+ - 감지된 브랜치 컨벤션 패턴을 보여주기
40
+ - 사용자에게 **어떤 작업을 할 것인지** 물어보기 (예: "어떤 작업을 위한 브랜치를 만드시겠습니까?")
41
+ - 사용자 응답을 바탕으로 브랜치 유형과 이름을 제안하고 확인받기
42
+ - `/branch` 뒤에 설명이 있으면 (예: `/branch 로그인 기능 추가`):
43
+ - 해당 설명을 바탕으로 브랜치 유형과 이름을 자동 결정
38
44
  - 적절한 브랜치 유형 결정:
39
45
  - `feature/` 또는 `feat/` - 새 기능
40
46
  - `fix/` - 버그 수정
@@ -42,10 +48,11 @@ main에서 최신 코드를 pull하고 프로젝트의 네이밍 컨벤션을
42
48
  - `hotfix/` - 긴급 프로덕션 수정
43
49
  - `docs/` - 문서 변경
44
50
 
45
- 4. **브랜치 생성**
51
+ 4. **브랜치 이름 확인 및 생성**
46
52
  - 감지된 컨벤션 패턴 따르기
47
53
  - description 부분은 소문자와 하이픈 사용 (예: `feature/add-user-auth`)
48
54
  - 간결하면서도 설명적으로
55
+ - **생성 전 반드시 사용자에게 최종 브랜치 이름을 보여주고 확인받기**
49
56
  - 브랜치 생성: `git checkout -b {branch-name}` 또는 `git switch -c {branch-name}`
50
57
 
51
58
  ## 출력 형식
@@ -27,7 +27,10 @@ Task 도구를 통해 다음 전문 에이전트를 사용할 수 있습니다:
27
27
  | `code-reviewer` | 아키텍처, 타입 안전성, 에러 처리, 테스트, 접근성, 보안 | opus |
28
28
  | `refactor-analyzer` | 코드 중복, 복잡성, 추상화 기회, 코드 스멜 | opus |
29
29
  | `junior-checker` | 주니어 개발자 관점 가독성, 네이밍, 복잡도 | opus |
30
- | `fundamentals-code` | Toss Frontend Fundamentals 기반 (가독성, 예측 가능성, 응집도, 결합도) | opus |
30
+ | `fundamentals-readability` | Toss Fundamentals - 가독성 (코드 분리, 추상화, 함수 쪼개기, 조건 네이밍, 매직 넘버, 시점 이동, 삼항 연산자, 비교 순서) | opus |
31
+ | `fundamentals-predictability` | Toss Fundamentals - 예측 가능성 (이름 충돌, 반환 타입 통일, 숨은 로직) | opus |
32
+ | `fundamentals-cohesion` | Toss Fundamentals - 응집도 (디렉토리 구조, 매직 넘버 관리, 폼 응집도) | opus |
33
+ | `fundamentals-coupling` | Toss Fundamentals - 결합도 (단일 책임, 중복 코드 허용, Props Drilling) | opus |
31
34
  | `react-performance-optimizer` | React 리렌더, 메모이제이션, 훅 최적화 | opus |
32
35
  | `react-principles-reviewer` | React 개발 원칙 (응집도/명시성, Props 관리, 네이밍, 부수효과, AsyncBoundary) | opus |
33
36
  | `maintainable-code-reviewer` | 유지보수성 (UI-코드 1:1 대응, 분리의 4원칙, 추상화 원칙) | opus |
@@ -55,7 +58,7 @@ Skill은 사용자 설치에 따라 다르며 추가 리뷰 가이드라인/컨
55
58
 
56
59
  | 옵션 | 이름 | 사용 에이전트 | 적합한 상황 |
57
60
  |------|------|--------------|-------------|
58
- | 1 | **전체 리뷰** | 모든 7개 에이전트 병렬 실행 | 종합 코드 리뷰 (권장) |
61
+ | 1 | **전체 리뷰** | 모든 10개 에이전트 병렬 실행 | 종합 코드 리뷰 (권장) |
59
62
  | 2 | **커스텀** | 사용자가 직접 선택 | 특정 관점만 리뷰하고 싶을 때 |
60
63
 
61
64
  3. **Skill 포함 여부 질문** (AskUserQuestion 사용)
@@ -99,7 +102,7 @@ AskUserQuestion으로 포함할 skill 여부 질문.
99
102
  ```
100
103
  리뷰 실행 중...
101
104
  ├── code-reviewer: 완료
102
- ├── fundamentals-code: 실행 중...
105
+ ├── fundamentals-readability: 실행 중...
103
106
  ├── refactor-analyzer: 완료
104
107
  └── junior-checker: 대기 중
105
108
  ```
@@ -112,7 +115,7 @@ AskUserQuestion으로 포함할 skill 여부 질문.
112
115
  ## 요약
113
116
  - **리뷰 대상:** [path]
114
117
  - **실행된 에이전트:** [list]
115
- - **총 발견 사항:** N개 (Critical: X, Warning: Y, Info: Z)
118
+ - **총 발견 사항:** N개 (Critical: X, Recommended Improvements: Y, Best Practices Found: Z)
116
119
 
117
120
  ---
118
121
 
@@ -126,7 +129,7 @@ AskUserQuestion으로 포함할 skill 여부 질문.
126
129
 
127
130
  ---
128
131
 
129
- ## Warnings (개선 권장)
132
+ ## Recommended Improvements (권장 개선)
130
133
 
131
134
  ### 1. [Issue Title]
132
135
  - **발견 에이전트:** [agent name]
@@ -136,7 +139,7 @@ AskUserQuestion으로 포함할 skill 여부 질문.
136
139
 
137
140
  ---
138
141
 
139
- ## Good Practices (잘한 )
142
+ ## Best Practices Found (잘하고 있음)
140
143
 
141
144
  - [Good practice 1] - [file:line]
142
145
  - [Good practice 2] - [file:line]
@@ -148,7 +151,7 @@ AskUserQuestion으로 포함할 skill 여부 질문.
148
151
  ### Code Reviewer
149
152
  [발견사항 요약]
150
153
 
151
- ### Fundamentals Code
154
+ ### Fundamentals (Readability / Predictability / Cohesion / Coupling)
152
155
  [발견사항 요약]
153
156
 
154
157
  ### Refactor Analyzer
@@ -158,11 +161,14 @@ AskUserQuestion으로 포함할 skill 여부 질문.
158
161
 
159
162
  ---
160
163
 
161
- ## 우선순위 개선 항목
164
+ ## Metrics
162
165
 
163
- 1. **[최우선]** [Issue] - [file]
164
- 2. **[높음]** [Issue] - [file]
165
- 3. **[보통]** [Issue] - [file]
166
+ | 지표 | 수치 |
167
+ |------|------|
168
+ | 파일 | X |
169
+ | Critical 이슈 | N |
170
+ | Recommended Improvements | M |
171
+ | Best Practices Found | P |
166
172
  ```
167
173
 
168
174
  ## 도구 사용 예시
@@ -175,7 +181,13 @@ AskUserQuestion으로 포함할 skill 여부 질문.
175
181
  // 여러 에이전트를 병렬로 실행 (단일 메시지, 다중 Task 호출)
176
182
  Task(code-reviewer): "src/components 코드를 리뷰하세요. 아키텍처, 타입 안전성, 에러 처리, 접근성, 보안에 집중하세요. file:line 참조와 함께 발견사항을 반환하세요."
177
183
 
178
- Task(fundamentals-code): "src/components를 Toss Frontend Fundamentals 원칙으로 분석하세요. 가독성, 예측 가능성, 응집도, 결합도를 확인하세요. file:line 참조와 함께 발견사항을 반환하세요."
184
+ Task(fundamentals-readability): "src/components를 Toss Fundamentals 가독성 원칙으로 분석하세요. 코드 분리, 추상화, 조건 네이밍, 매직 넘버, 시점 이동, 삼항 연산자를 확인하세요. file:line 참조와 함께 발견사항을 반환하세요."
185
+
186
+ Task(fundamentals-predictability): "src/components를 Toss Fundamentals 예측 가능성 원칙으로 분석하세요. 이름 충돌, 반환 타입 통일, 숨은 로직을 확인하세요. file:line 참조와 함께 발견사항을 반환하세요."
187
+
188
+ Task(fundamentals-cohesion): "src/components를 Toss Fundamentals 응집도 원칙으로 분석하세요. 디렉토리 구조, 매직 넘버 관리, 폼 응집도를 확인하세요. file:line 참조와 함께 발견사항을 반환하세요."
189
+
190
+ Task(fundamentals-coupling): "src/components를 Toss Fundamentals 결합도 원칙으로 분석하세요. 단일 책임, 중복 코드 허용, Props Drilling을 확인하세요. file:line 참조와 함께 발견사항을 반환하세요."
179
191
 
180
192
  Task(refactor-analyzer): "src/components의 리팩토링 기회를 분석하세요. 코드 중복, 복잡성, 추상화 기회를 확인하세요. file:line 참조와 함께 발견사항을 반환하세요."
181
193
 
@@ -33,15 +33,17 @@ allowed-tools: Bash(git status:*), Bash(git diff:*), Bash(git log:*), Bash(git c
33
33
  - 이 변경들의 주요 목적은 무엇인가?
34
34
  - 별도 커밋으로 분리해야 할 여러 논리적 변경이 있는가?
35
35
 
36
- 3. **커밋 메시지 생성**
36
+ 3. **커밋 메시지 생성 및 확인**
37
37
  - 감지된 컨벤션 패턴 따르기 (type prefix, scope 등)
38
38
  - **한국어로 작성** (기존 히스토리가 영어여도)
39
39
  - **간결하게, 가능하면 1줄** (권장 50자, 최대 72자)
40
40
  - body는 정말 필요할 때만 추가
41
41
  - **Co-Authored-By footer 추가 금지**
42
+ - **생성한 커밋 메시지를 사용자에게 보여주고 확인받기**
43
+ - 사용자가 수정을 원하면 반영 후 다시 확인
42
44
 
43
45
  4. **커밋 실행**
44
- - 생성된 메시지로 `git commit -m "message"` 실행
46
+ - **사용자가 승인한 후에만** `git commit -m "message"` 실행
45
47
  - body가 필요하면 멀티라인 포맷 사용
46
48
  - **커밋 메시지에 Co-Authored-By 절대 포함 금지**
47
49
 
@@ -51,6 +53,6 @@ allowed-tools: Bash(git status:*), Bash(git diff:*), Bash(git log:*), Bash(git c
51
53
  - 감지된 컨벤션 패턴
52
54
  - 변경사항 요약
53
55
 
54
- 그 다음 커밋 명령 직접 실행.
56
+ 그 다음 커밋 메시지를 제안하고 사용자 확인 후 실행.
55
57
 
56
58
  Staged 변경사항이 없으면 사용자에게 알리고 먼저 `git add` 사용을 제안.
@@ -73,7 +73,10 @@ Task(Plan): "다음 설계를 구현하기 위한 계획을 수립하세요:
73
73
 
74
74
  | 에이전트 | 검증 내용 |
75
75
  |----------|----------|
76
- | `fundamentals-code` | 가독성, 예측 가능성, 응집도, 결합도 관점에서 설계 검증 |
76
+ | `fundamentals-readability` | 가독성 관점에서 설계 검증 |
77
+ | `fundamentals-predictability` | 예측 가능성 관점에서 설계 검증 |
78
+ | `fundamentals-cohesion` | 응집도 관점에서 설계 검증 |
79
+ | `fundamentals-coupling` | 결합도 관점에서 설계 검증 |
77
80
  | `refactor-analyzer` | 추상화 기회, 재사용 가능한 컴포넌트 식별 |
78
81
 
79
82
  **조건부 에이전트 (React 프로젝트):**
@@ -93,10 +96,22 @@ Task(Plan): "다음 설계를 구현하기 위한 계획을 수립하세요:
93
96
  **에이전트 실행 예시:**
94
97
 
95
98
  ```
96
- // 필수 에이전트 (항상 실행)
97
- Task(fundamentals-code): "다음 구현 계획을 Toss Frontend Fundamentals 원칙으로 검증하세요:
99
+ // 필수 에이전트 (항상 실행 - 4개 병렬)
100
+ Task(fundamentals-readability): "다음 구현 계획을 가독성 원칙으로 검증하세요:
98
101
  [Plan 결과]
99
- 가독성, 예측 가능성, 응집도, 결합도 관점에서 개선점을 제안하세요."
102
+ 코드 분리, 추상화, 함수 쪼개기, 조건 네이밍, 매직 넘버, 시점 이동 관점에서 개선점을 제안하세요."
103
+
104
+ Task(fundamentals-predictability): "다음 구현 계획을 예측 가능성 원칙으로 검증하세요:
105
+ [Plan 결과]
106
+ 이름 충돌, 반환 타입 통일, 숨은 로직 관점에서 개선점을 제안하세요."
107
+
108
+ Task(fundamentals-cohesion): "다음 구현 계획을 응집도 원칙으로 검증하세요:
109
+ [Plan 결과]
110
+ 디렉토리 구조, 매직 넘버 관리, 폼 응집도 관점에서 개선점을 제안하세요."
111
+
112
+ Task(fundamentals-coupling): "다음 구현 계획을 결합도 원칙으로 검증하세요:
113
+ [Plan 결과]
114
+ 단일 책임, 중복 코드 허용, Props Drilling 관점에서 개선점을 제안하세요."
100
115
 
101
116
  Task(refactor-analyzer): "다음 구현 계획에서 추상화 기회를 분석하세요:
102
117
  [Plan 결과]
@@ -195,13 +210,13 @@ export function NewComponent({ ... }: Props) {
195
210
 
196
211
  ## 4. 설계 검증 결과
197
212
 
198
- ### fundamentals-code 검증
199
- | 원칙 | 상태 | 피드백 |
200
- |------|------|--------|
201
- | 가독성 | ✅/🟡/🔴 | [피드백] |
202
- | 예측 가능성 | ✅/🟡/🔴 | [피드백] |
203
- | 응집도 | ✅/🟡/🔴 | [피드백] |
204
- | 결합도 | ✅/🟡/🔴 | [피드백] |
213
+ ### Toss Fundamentals 검증
214
+ | 원칙 | 에이전트 | 상태 | 피드백 |
215
+ |------|----------|------|--------|
216
+ | 가독성 | fundamentals-readability | ✅/🟡/🔴 | [피드백] |
217
+ | 예측 가능성 | fundamentals-predictability | ✅/🟡/🔴 | [피드백] |
218
+ | 응집도 | fundamentals-cohesion | ✅/🟡/🔴 | [피드백] |
219
+ | 결합도 | fundamentals-coupling | ✅/🟡/🔴 | [피드백] |
205
220
 
206
221
  ### refactor-analyzer 검증
207
222
  **추상화 기회:**
package/commands/pr.md CHANGED
@@ -1,6 +1,6 @@
1
1
  ---
2
2
  description: 브랜치 차이, 커밋, 변경 파일을 분석하여 Pull Request 자동 생성
3
- allowed-tools: Bash(git status:*), Bash(git diff:*), Bash(git log:*), Bash(git branch:*), Bash(git rev-parse:*), Bash(gh pr:*), Bash(gh auth:*)
3
+ allowed-tools: Bash(git status:*), Bash(git diff:*), Bash(git log:*), Bash(git branch:*), Bash(git rev-parse:*), Bash(gh pr:*), Bash(gh auth:*), Bash(gh api:*)
4
4
  ---
5
5
 
6
6
  # 자동 PR 생성기
@@ -44,18 +44,33 @@ allowed-tools: Bash(git status:*), Bash(git diff:*), Bash(git log:*), Bash(git b
44
44
  - 코드베이스의 어느 영역이 영향받는가?
45
45
  - breaking changes가 있는가?
46
46
 
47
- 4. **PR 제목 및 설명 생성**
47
+ 4. **기존 PR 확인**
48
+ - `gh pr view --json number,title,body,url,state` 로 현재 브랜치에 열린 PR이 있는지 확인
49
+ - **PR이 이미 열려 있으면 → 5-A (업데이트 플로우)**
50
+ - **PR이 없으면 → 5-B (생성 플로우)**
51
+
52
+ 5-A. **기존 PR 업데이트 플로우**
53
+ - 기존 PR의 title과 body를 가져오기
54
+ - 현재 변경사항을 기반으로 새로운 title과 body를 생성
55
+ - 기존 내용과 새 내용을 비교하여 **변경점을 사용자에게 보여주기**
56
+ - 사용자가 승인하면 `gh pr edit --title "title" --body "body"` 로 업데이트
57
+ - 사용자가 수정을 원하면 반영 후 다시 확인
58
+
59
+ 5-B. **새 PR 생성 플로우**
48
60
  - **제목**: 한국어로 간결한 요약 (커밋 컨벤션이 있으면 따르기)
49
61
  - **설명**: 다음 섹션 포함:
50
62
  - `## 변경 사항` (변경사항 요약)
51
63
  - `## 변경된 파일` (주요 변경 파일 목록)
52
64
  - `## 테스트` (해당되는 경우 테스트 방법)
53
65
  - **"Generated with Claude Code" 또는 AI attribution footer 추가 금지**
66
+ - **생성한 title과 body를 사용자에게 보여주고 확인받기**
67
+ - 사용자가 수정을 원하면 반영 후 다시 확인
54
68
 
55
- 5. **PR 생성**
56
- - 먼저 브랜치가 remote에 push되었는지 확인
57
- - 생성된 title과 body로 `gh pr create` 사용
58
- - PR 이미 존재하면 사용자에게 알림
69
+ 6. **실행**
70
+ - **사용자가 승인한 후에만** 실행
71
+ - 먼저 브랜치가 remote에 push되었는지 확인 (안 되었으면 push 제안)
72
+ - PR: `gh pr create --title "title" --body "body"`
73
+ - 기존 PR 업데이트: `gh pr edit --title "title" --body "body"`
59
74
 
60
75
  ## 출력 형식
61
76
 
@@ -63,17 +78,14 @@ allowed-tools: Bash(git status:*), Bash(git diff:*), Bash(git log:*), Bash(git b
63
78
  - 현재 브랜치와 타겟 브랜치
64
79
  - 포함될 커밋 수
65
80
  - 변경사항 요약
81
+ - 기존 PR 존재 여부
66
82
 
67
- 다음 PR 생성 전 확인 요청, 제안된 title과 description 표시.
68
-
69
- 확인 후 실행:
70
- ```bash
71
- gh pr create --title "title" --body "body"
72
- ```
83
+ 다음:
84
+ - **새 PR**: 제안된 title과 body를 보여주고 사용자 확인 후 생성
85
+ - **기존 PR 업데이트**: 기존 내용 vs 새 내용 비교를 보여주고 사용자 확인 후 업데이트
73
86
 
74
87
  ## 에러 처리
75
88
 
76
89
  - GitHub CLI 로그인 안됨: `gh auth login` 실행 안내
77
90
  - 브랜치 미푸시: `git push -u origin <branch>`로 push 제안
78
- - PR 이미 존재: 기존 PR URL 표시
79
91
  - main 브랜치에서 실행: feature 브랜치 먼저 생성하라고 안내
@@ -19,7 +19,10 @@ Task 도구를 통해 다음 전문 에이전트를 사용할 수 있습니다:
19
19
  | Agent | 초점 영역 |
20
20
  |-------|----------|
21
21
  | `code-reviewer` | 아키텍처, 타입 안전성, 에러 처리, 테스트, 접근성, 보안 |
22
- | `fundamentals-code` | Toss Frontend Fundamentals 기반 (가독성, 예측 가능성, 응집도, 결합도) |
22
+ | `fundamentals-readability` | Toss Fundamentals - 가독성 |
23
+ | `fundamentals-predictability` | Toss Fundamentals - 예측 가능성 |
24
+ | `fundamentals-cohesion` | Toss Fundamentals - 응집도 |
25
+ | `fundamentals-coupling` | Toss Fundamentals - 결합도 |
23
26
  | `refactor-analyzer` | 코드 중복, 복잡성, 추상화 기회, 코드 스멜 |
24
27
  | `junior-checker` | 주니어 개발자 관점 가독성, 네이밍, 복잡도 |
25
28
  | `react-performance-optimizer` | React 리렌더, 메모이제이션, 훅 최적화 |
@@ -91,15 +94,33 @@ Skill은 사용자 설치에 따라 다르며 추가 리뷰 가이드라인/컨
91
94
  - GitHub 리뷰 스타일로 file:line 참조와 함께 발견사항 반환
92
95
  - 심각도를 Must Fix / Should Fix / Consider / Suggestion으로 구분"
93
96
 
94
- Task(fundamentals-code): "PR #<PR번호>를 Toss Frontend Fundamentals 원칙으로 분석해주세요.
97
+ Task(fundamentals-readability): "PR #<PR번호>를 가독성 원칙으로 분석해주세요.
98
+ [작업 순서]
99
+ 1. `gh pr view <PR번호>`로 PR 정보 확인
100
+ 2. `gh pr diff <PR번호>`로 전체 변경사항 확인
101
+ 3. 필요 시 관련 파일 Read
102
+ [리뷰 관점] 코드 분리, 추상화, 함수 쪼개기, 조건 네이밍, 매직 넘버, 시점 이동, 삼항 연산자, 비교 순서"
95
103
 
104
+ Task(fundamentals-predictability): "PR #<PR번호>를 예측 가능성 원칙으로 분석해주세요.
96
105
  [작업 순서]
97
106
  1. `gh pr view <PR번호>`로 PR 정보 확인
98
107
  2. `gh pr diff <PR번호>`로 전체 변경사항 확인
99
108
  3. 필요 시 관련 파일 Read
109
+ [리뷰 관점] 이름 충돌, 반환 타입 통일, 숨은 로직"
100
110
 
101
- [리뷰 관점]
102
- 가독성, 예측 가능성, 응집도, 결합도 4가지 관점에서 점수화하고 리뷰"
111
+ Task(fundamentals-cohesion): "PR #<PR번호>를 응집도 원칙으로 분석해주세요.
112
+ [작업 순서]
113
+ 1. `gh pr view <PR번호>`로 PR 정보 확인
114
+ 2. `gh pr diff <PR번호>`로 전체 변경사항 확인
115
+ 3. 필요 시 관련 파일 Read
116
+ [리뷰 관점] 디렉토리 구조, 매직 넘버 관리, 폼 응집도"
117
+
118
+ Task(fundamentals-coupling): "PR #<PR번호>를 결합도 원칙으로 분석해주세요.
119
+ [작업 순서]
120
+ 1. `gh pr view <PR번호>`로 PR 정보 확인
121
+ 2. `gh pr diff <PR번호>`로 전체 변경사항 확인
122
+ 3. 필요 시 관련 파일 Read
123
+ [리뷰 관점] 단일 책임, 중복 코드 허용, Props Drilling"
103
124
 
104
125
  Task(refactor-analyzer): "PR #<PR번호>에서 리팩토링 기회를 찾아주세요.
105
126
 
@@ -207,7 +228,7 @@ const user: User = response.data
207
228
 
208
229
  ## ✅ 잘한 점
209
230
 
210
- - `src/hooks/useUser.ts` - 훅 분리가 잘 되어 있음 (fundamentals-code)
231
+ - `src/hooks/useUser.ts` - 훅 분리가 잘 되어 있음 (fundamentals-cohesion)
211
232
  - `src/types/index.ts` - 타입 정의가 명확함 (code-reviewer)
212
233
 
213
234
  ---