binary-agents 1.0.19 → 1.0.21
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/README.md +46 -12
- package/agents/react-principles-reviewer.md +787 -0
- package/bin/cli.js +77 -37
- package/commands/code-review.md +9 -3
- package/commands/design-to-code.md +282 -0
- package/commands/figma-check.md +1 -0
- package/commands/review-pr.md +2 -1
- package/docs/BUILDER_GUIDE.md +1 -0
- package/package.json +3 -3
package/bin/cli.js
CHANGED
|
@@ -1,50 +1,90 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
2
|
|
|
3
|
-
import {
|
|
3
|
+
import { select } from '@inquirer/prompts';
|
|
4
4
|
import { syncSubagents, listSubagents } from '../src/sync.js';
|
|
5
5
|
import chalk from 'chalk';
|
|
6
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
|
-
|
|
7
|
+
async function main() {
|
|
8
|
+
const args = process.argv.slice(2);
|
|
9
|
+
|
|
10
|
+
// list 명령어는 바로 실행
|
|
11
|
+
if (args[0] === 'list') {
|
|
12
|
+
await listSubagents();
|
|
13
|
+
return;
|
|
14
|
+
}
|
|
15
|
+
|
|
16
|
+
// help 또는 --help
|
|
17
|
+
if (args[0] === 'help' || args[0] === '--help' || args[0] === '-h') {
|
|
18
|
+
showHelp();
|
|
19
|
+
return;
|
|
20
|
+
}
|
|
21
|
+
|
|
22
|
+
// 대화형 설치 시작
|
|
23
|
+
console.log(chalk.blue.bold('\n🤖 Binary Agents 설치\n'));
|
|
24
|
+
|
|
25
|
+
try {
|
|
26
|
+
// 1. 설치 위치 선택
|
|
27
|
+
const location = await select({
|
|
28
|
+
message: '어디에 설치하시겠습니까?',
|
|
29
|
+
choices: [
|
|
30
|
+
{ name: '현재 프로젝트 (.claude/)', value: 'local' },
|
|
31
|
+
{ name: '전역 (~/.claude/)', value: 'global' }
|
|
32
|
+
]
|
|
33
|
+
});
|
|
34
|
+
|
|
35
|
+
// 2. 설치 항목 선택
|
|
36
|
+
const items = await select({
|
|
37
|
+
message: '무엇을 설치하시겠습니까?',
|
|
38
|
+
choices: [
|
|
39
|
+
{ name: '모두 (에이전트 + 명령어)', value: 'all' },
|
|
40
|
+
{ name: '에이전트만', value: 'agents' },
|
|
41
|
+
{ name: '명령어만', value: 'commands' }
|
|
42
|
+
]
|
|
31
43
|
});
|
|
32
44
|
|
|
45
|
+
// 3. 기존 파일 삭제 여부
|
|
46
|
+
const clean = await select({
|
|
47
|
+
message: '기존 파일을 삭제하고 새로 설치할까요?',
|
|
48
|
+
choices: [
|
|
49
|
+
{ name: '예 (기존 파일 삭제)', value: true },
|
|
50
|
+
{ name: '아니오 (기존 파일 유지)', value: false }
|
|
51
|
+
]
|
|
52
|
+
});
|
|
53
|
+
|
|
54
|
+
// 옵션 구성
|
|
55
|
+
const options = {
|
|
56
|
+
global: location === 'global',
|
|
57
|
+
agents: items === 'all' || items === 'agents',
|
|
58
|
+
commands: items === 'all' || items === 'commands',
|
|
59
|
+
clean
|
|
60
|
+
};
|
|
61
|
+
|
|
62
|
+
// 동기화 실행
|
|
63
|
+
const result = await syncSubagents(options);
|
|
64
|
+
|
|
33
65
|
if (!result.success) {
|
|
34
66
|
process.exit(1);
|
|
35
67
|
}
|
|
36
|
-
})
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
}
|
|
68
|
+
} catch (error) {
|
|
69
|
+
// Ctrl+C로 취소한 경우
|
|
70
|
+
if (error.name === 'ExitPromptError') {
|
|
71
|
+
console.log(chalk.yellow('\n\n취소되었습니다.\n'));
|
|
72
|
+
process.exit(0);
|
|
73
|
+
}
|
|
74
|
+
throw error;
|
|
75
|
+
}
|
|
76
|
+
}
|
|
44
77
|
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
78
|
+
function showHelp() {
|
|
79
|
+
console.log(chalk.blue.bold('\n🤖 Binary Agents\n'));
|
|
80
|
+
console.log('Claude Code 서브에이전트 및 슬래시 명령어 설치 도구\n');
|
|
81
|
+
console.log(chalk.yellow('사용법:'));
|
|
82
|
+
console.log(' npx binary-agents 대화형 설치');
|
|
83
|
+
console.log(' npx binary-agents list 사용 가능한 에이전트/명령어 목록');
|
|
84
|
+
console.log(' npx binary-agents help 도움말 표시\n');
|
|
48
85
|
}
|
|
49
86
|
|
|
50
|
-
|
|
87
|
+
main().catch(error => {
|
|
88
|
+
console.error(chalk.red(`\n오류: ${error.message}\n`));
|
|
89
|
+
process.exit(1);
|
|
90
|
+
});
|
package/commands/code-review.md
CHANGED
|
@@ -29,6 +29,7 @@ Task 도구를 통해 다음 전문 에이전트를 사용할 수 있습니다:
|
|
|
29
29
|
| `junior-checker` | 주니어 개발자 관점 가독성, 네이밍, 복잡도 | opus |
|
|
30
30
|
| `fundamentals-code` | Toss Frontend Fundamentals 기반 (가독성, 예측 가능성, 응집도, 결합도) | opus |
|
|
31
31
|
| `react-performance-optimizer` | React 리렌더, 메모이제이션, 훅 최적화 | opus |
|
|
32
|
+
| `react-principles-reviewer` | React 개발 원칙 (응집도/명시성, Props 관리, 네이밍, 부수효과, AsyncBoundary) | opus |
|
|
32
33
|
|
|
33
34
|
## 사용 가능한 Skill
|
|
34
35
|
|
|
@@ -42,8 +43,10 @@ Skill은 사용자 설치에 따라 다르며 추가 리뷰 가이드라인/컨
|
|
|
42
43
|
## 작업 순서
|
|
43
44
|
|
|
44
45
|
1. **리뷰 범위 결정**
|
|
45
|
-
-
|
|
46
|
-
-
|
|
46
|
+
- **경로가 제공된 경우:** 해당 경로의 모든 파일을 리뷰
|
|
47
|
+
- **경로가 없는 경우:** 현재 작업 디렉토리 전체를 리뷰
|
|
48
|
+
|
|
49
|
+
> **중요:** git 변경사항에 제한하지 마세요. 대상 경로의 모든 파일을 리뷰합니다.
|
|
47
50
|
|
|
48
51
|
2. **사용자에게 리뷰 유형 질문** (AskUserQuestion 사용)
|
|
49
52
|
|
|
@@ -51,7 +54,7 @@ Skill은 사용자 설치에 따라 다르며 추가 리뷰 가이드라인/컨
|
|
|
51
54
|
|
|
52
55
|
| 옵션 | 이름 | 사용 에이전트 | 적합한 상황 |
|
|
53
56
|
|------|------|--------------|-------------|
|
|
54
|
-
| 1 | **전체 리뷰** | 모든
|
|
57
|
+
| 1 | **전체 리뷰** | 모든 6개 에이전트 병렬 실행 | 종합 코드 리뷰 (권장) |
|
|
55
58
|
| 2 | **커스텀** | 사용자가 직접 선택 | 특정 관점만 리뷰하고 싶을 때 |
|
|
56
59
|
|
|
57
60
|
3. **Skill 포함 여부 질문** (AskUserQuestion 사용)
|
|
@@ -174,6 +177,8 @@ Task(code-reviewer): "src/components 코드를 리뷰하세요. 아키텍처,
|
|
|
174
177
|
Task(fundamentals-code): "src/components를 Toss Frontend Fundamentals 원칙으로 분석하세요. 가독성, 예측 가능성, 응집도, 결합도를 확인하세요. file:line 참조와 함께 발견사항을 반환하세요."
|
|
175
178
|
|
|
176
179
|
Task(refactor-analyzer): "src/components의 리팩토링 기회를 분석하세요. 코드 중복, 복잡성, 추상화 기회를 확인하세요. file:line 참조와 함께 발견사항을 반환하세요."
|
|
180
|
+
|
|
181
|
+
Task(react-principles-reviewer): "src/components를 React 개발 원칙으로 리뷰하세요. 응집도/명시성 패턴, Props 관리, 네이밍 원칙, 부수효과 위치, AsyncBoundary 사용을 확인하세요. file:line 참조와 함께 발견사항을 반환하세요."
|
|
177
182
|
```
|
|
178
183
|
|
|
179
184
|
### Skill 로드 (Skill 도구)
|
|
@@ -194,3 +199,4 @@ Skill(<skill-name>): 리뷰 중 이 skill의 가이드라인을 적용하기 위
|
|
|
194
199
|
- **file:line 참조 보존** - 실행 가능한 피드백을 위해 필수
|
|
195
200
|
- **한국어 출력** - 최종 리포트는 한국어로
|
|
196
201
|
- **AI attribution 금지** - "Generated by AI" footer 추가 금지
|
|
202
|
+
- **결과 파일 저장** - 최종 리포트를 `code-review.md` 파일로 저장 (이미 존재하면 `---` 구분선과 함께 하단에 추가)
|
|
@@ -0,0 +1,282 @@
|
|
|
1
|
+
---
|
|
2
|
+
description: 설계/요구사항을 분석하여 구현 계획 생성
|
|
3
|
+
allowed-tools: Task, Read, Glob, Grep
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# Design to Code
|
|
7
|
+
|
|
8
|
+
대화 컨텍스트의 설계/요구사항을 분석하고, 코드베이스를 탐색하여 구체적인 구현 계획을 생성합니다.
|
|
9
|
+
|
|
10
|
+
## 컨텍스트 정보
|
|
11
|
+
|
|
12
|
+
**현재 프로젝트 타입 감지:**
|
|
13
|
+
!`if [ -f "package.json" ] && grep -q '"react"' package.json 2>/dev/null; then echo "React 프로젝트"; else echo "일반 프로젝트"; fi`
|
|
14
|
+
|
|
15
|
+
**package.json 주요 의존성:**
|
|
16
|
+
!`cat package.json 2>/dev/null | grep -A 20 '"dependencies"' | head -25 || echo "package.json 없음"`
|
|
17
|
+
|
|
18
|
+
---
|
|
19
|
+
|
|
20
|
+
## 작업 순서
|
|
21
|
+
|
|
22
|
+
### 1. 설계/요구사항 확인
|
|
23
|
+
|
|
24
|
+
대화 컨텍스트에서 설계 또는 요구사항 확인:
|
|
25
|
+
- 이전 메시지에서 설계 문서, 기능 명세, 요구사항 찾기
|
|
26
|
+
- 없으면 → "구현할 설계나 요구사항을 먼저 설명해주세요" 안내
|
|
27
|
+
|
|
28
|
+
**확인할 내용:**
|
|
29
|
+
- 구현 목표 (무엇을 만들어야 하는가?)
|
|
30
|
+
- 주요 기능 목록
|
|
31
|
+
- 제약 조건 (기술 스택, 성능, 호환성 등)
|
|
32
|
+
- 참고할 기존 코드나 패턴
|
|
33
|
+
|
|
34
|
+
### 2. 코드베이스 분석 (Explore 에이전트)
|
|
35
|
+
|
|
36
|
+
Task 도구로 Explore 에이전트 실행:
|
|
37
|
+
|
|
38
|
+
```
|
|
39
|
+
Task(Explore): "프로젝트 구조를 분석하세요:
|
|
40
|
+
1. 폴더 구조 및 아키텍처 패턴 파악
|
|
41
|
+
2. 기존 컴포넌트/모듈 구조 확인
|
|
42
|
+
3. 공통 유틸리티, 훅, 컴포넌트 식별
|
|
43
|
+
4. 코딩 컨벤션 및 네이밍 패턴 파악
|
|
44
|
+
5. [설계와 관련된 기존 코드] 찾기"
|
|
45
|
+
```
|
|
46
|
+
|
|
47
|
+
### 3. 구현 계획 수립 (Plan 에이전트)
|
|
48
|
+
|
|
49
|
+
Task 도구로 Plan 에이전트 실행:
|
|
50
|
+
|
|
51
|
+
```
|
|
52
|
+
Task(Plan): "다음 설계를 구현하기 위한 계획을 수립하세요:
|
|
53
|
+
|
|
54
|
+
[설계/요구사항 요약]
|
|
55
|
+
|
|
56
|
+
코드베이스 분석 결과:
|
|
57
|
+
[Explore 결과 요약]
|
|
58
|
+
|
|
59
|
+
다음을 포함한 구현 계획 작성:
|
|
60
|
+
1. 단계별 구현 순서
|
|
61
|
+
2. 생성/수정할 파일 목록
|
|
62
|
+
3. 각 파일의 주요 구현 내용
|
|
63
|
+
4. 의존성 및 임포트 관계
|
|
64
|
+
5. 테스트 전략
|
|
65
|
+
6. 주의사항 및 엣지 케이스"
|
|
66
|
+
```
|
|
67
|
+
|
|
68
|
+
### 4. 설계 원칙 검증 (에이전트 병렬 실행)
|
|
69
|
+
|
|
70
|
+
설계의 품질을 검증하기 위해 에이전트들을 병렬로 실행:
|
|
71
|
+
|
|
72
|
+
**필수 에이전트:**
|
|
73
|
+
|
|
74
|
+
| 에이전트 | 검증 내용 |
|
|
75
|
+
|----------|----------|
|
|
76
|
+
| `fundamentals-code` | 가독성, 예측 가능성, 응집도, 결합도 관점에서 설계 검증 |
|
|
77
|
+
| `refactor-analyzer` | 추상화 기회, 재사용 가능한 컴포넌트 식별 |
|
|
78
|
+
|
|
79
|
+
**조건부 에이전트 (React 프로젝트):**
|
|
80
|
+
|
|
81
|
+
| 에이전트 | 검증 내용 |
|
|
82
|
+
|----------|----------|
|
|
83
|
+
| `react-principles-reviewer` | 컴포넌트 구조, Props 설계, 상태 관리 전략 검증 |
|
|
84
|
+
|
|
85
|
+
**React 프로젝트 감지 방법:**
|
|
86
|
+
```bash
|
|
87
|
+
# 다음 중 하나라도 해당되면 React 프로젝트
|
|
88
|
+
- package.json에 "react" 또는 "next" 의존성 존재
|
|
89
|
+
- .tsx 또는 .jsx 파일 존재
|
|
90
|
+
```
|
|
91
|
+
> Next.js, Remix 등 React 기반 프레임워크도 자동 감지됩니다.
|
|
92
|
+
|
|
93
|
+
**에이전트 실행 예시:**
|
|
94
|
+
|
|
95
|
+
```
|
|
96
|
+
// 필수 에이전트 (항상 실행)
|
|
97
|
+
Task(fundamentals-code): "다음 구현 계획을 Toss Frontend Fundamentals 원칙으로 검증하세요:
|
|
98
|
+
[Plan 결과]
|
|
99
|
+
가독성, 예측 가능성, 응집도, 결합도 관점에서 개선점을 제안하세요."
|
|
100
|
+
|
|
101
|
+
Task(refactor-analyzer): "다음 구현 계획에서 추상화 기회를 분석하세요:
|
|
102
|
+
[Plan 결과]
|
|
103
|
+
재사용 가능한 컴포넌트, 공통 유틸리티, 중복 제거 가능한 부분을 식별하세요."
|
|
104
|
+
|
|
105
|
+
// React 프로젝트면 추가
|
|
106
|
+
Task(react-principles-reviewer): "다음 구현 계획을 React 개발 원칙으로 검증하세요:
|
|
107
|
+
[Plan 결과]
|
|
108
|
+
컴포넌트 응집도, Props 설계, 상태 관리 전략, 부수효과 위치를 검토하세요."
|
|
109
|
+
```
|
|
110
|
+
|
|
111
|
+
### 5. 결과 종합 및 최종 계획 생성
|
|
112
|
+
|
|
113
|
+
모든 에이전트 결과를 종합하여 최종 구현 계획 작성.
|
|
114
|
+
|
|
115
|
+
---
|
|
116
|
+
|
|
117
|
+
## 출력 형식
|
|
118
|
+
|
|
119
|
+
```markdown
|
|
120
|
+
# 구현 계획: [기능명]
|
|
121
|
+
|
|
122
|
+
## 요약
|
|
123
|
+
- **목표:** [구현 목표 1줄 요약]
|
|
124
|
+
- **예상 파일 수:** N개 (신규: X, 수정: Y)
|
|
125
|
+
- **프로젝트 타입:** [React/일반]
|
|
126
|
+
- **검증 에이전트:** [실행된 에이전트 목록]
|
|
127
|
+
|
|
128
|
+
---
|
|
129
|
+
|
|
130
|
+
## 1. 설계 분석
|
|
131
|
+
|
|
132
|
+
### 요구사항 요약
|
|
133
|
+
[대화에서 파악한 요구사항 정리]
|
|
134
|
+
|
|
135
|
+
### 제약 조건
|
|
136
|
+
- [제약 1]
|
|
137
|
+
- [제약 2]
|
|
138
|
+
|
|
139
|
+
---
|
|
140
|
+
|
|
141
|
+
## 2. 코드베이스 분석 결과
|
|
142
|
+
|
|
143
|
+
### 프로젝트 구조
|
|
144
|
+
```
|
|
145
|
+
[관련 폴더 구조]
|
|
146
|
+
```
|
|
147
|
+
|
|
148
|
+
### 참고할 기존 패턴
|
|
149
|
+
| 패턴 | 파일 | 설명 |
|
|
150
|
+
|------|------|------|
|
|
151
|
+
| [패턴명] | [file:line] | [설명] |
|
|
152
|
+
|
|
153
|
+
### 재사용 가능한 기존 코드
|
|
154
|
+
- [컴포넌트/유틸리티]: [file:line]
|
|
155
|
+
|
|
156
|
+
---
|
|
157
|
+
|
|
158
|
+
## 3. 구현 계획
|
|
159
|
+
|
|
160
|
+
### 단계별 구현 순서
|
|
161
|
+
|
|
162
|
+
#### Phase 1: [단계명]
|
|
163
|
+
**목표:** [이 단계의 목표]
|
|
164
|
+
|
|
165
|
+
| 순서 | 작업 | 파일 | 설명 |
|
|
166
|
+
|------|------|------|------|
|
|
167
|
+
| 1 | [작업] | [경로] | [설명] |
|
|
168
|
+
| 2 | [작업] | [경로] | [설명] |
|
|
169
|
+
|
|
170
|
+
#### Phase 2: [단계명]
|
|
171
|
+
...
|
|
172
|
+
|
|
173
|
+
### 파일별 상세 구현
|
|
174
|
+
|
|
175
|
+
#### `src/components/NewComponent.tsx` (신규)
|
|
176
|
+
```tsx
|
|
177
|
+
// 주요 구조 스케치
|
|
178
|
+
interface Props {
|
|
179
|
+
// ...
|
|
180
|
+
}
|
|
181
|
+
|
|
182
|
+
export function NewComponent({ ... }: Props) {
|
|
183
|
+
// 주요 로직 설명
|
|
184
|
+
}
|
|
185
|
+
```
|
|
186
|
+
|
|
187
|
+
**구현 포인트:**
|
|
188
|
+
- [포인트 1]
|
|
189
|
+
- [포인트 2]
|
|
190
|
+
|
|
191
|
+
#### `src/hooks/useNewHook.ts` (신규)
|
|
192
|
+
...
|
|
193
|
+
|
|
194
|
+
---
|
|
195
|
+
|
|
196
|
+
## 4. 설계 검증 결과
|
|
197
|
+
|
|
198
|
+
### fundamentals-code 검증
|
|
199
|
+
| 원칙 | 상태 | 피드백 |
|
|
200
|
+
|------|------|--------|
|
|
201
|
+
| 가독성 | ✅/🟡/🔴 | [피드백] |
|
|
202
|
+
| 예측 가능성 | ✅/🟡/🔴 | [피드백] |
|
|
203
|
+
| 응집도 | ✅/🟡/🔴 | [피드백] |
|
|
204
|
+
| 결합도 | ✅/🟡/🔴 | [피드백] |
|
|
205
|
+
|
|
206
|
+
### refactor-analyzer 검증
|
|
207
|
+
**추상화 기회:**
|
|
208
|
+
- [기회 1]: [설명]
|
|
209
|
+
- [기회 2]: [설명]
|
|
210
|
+
|
|
211
|
+
**재사용 제안:**
|
|
212
|
+
- [제안 1]
|
|
213
|
+
|
|
214
|
+
### react-principles-reviewer 검증 (React 프로젝트)
|
|
215
|
+
| 원칙 | 상태 | 피드백 |
|
|
216
|
+
|------|------|--------|
|
|
217
|
+
| 컴포넌트 응집도 | ✅/🟡/🔴 | [피드백] |
|
|
218
|
+
| Props 설계 | ✅/🟡/🔴 | [피드백] |
|
|
219
|
+
| 상태 관리 | ✅/🟡/🔴 | [피드백] |
|
|
220
|
+
|
|
221
|
+
---
|
|
222
|
+
|
|
223
|
+
## 5. 주의사항
|
|
224
|
+
|
|
225
|
+
### 잠재적 이슈
|
|
226
|
+
- ⚠️ [이슈 1]: [설명 및 대응 방안]
|
|
227
|
+
- ⚠️ [이슈 2]: [설명 및 대응 방안]
|
|
228
|
+
|
|
229
|
+
### 엣지 케이스
|
|
230
|
+
- [케이스 1]: [처리 방법]
|
|
231
|
+
- [케이스 2]: [처리 방법]
|
|
232
|
+
|
|
233
|
+
---
|
|
234
|
+
|
|
235
|
+
## 6. 테스트 전략
|
|
236
|
+
|
|
237
|
+
### 단위 테스트
|
|
238
|
+
| 대상 | 테스트 케이스 |
|
|
239
|
+
|------|--------------|
|
|
240
|
+
| [컴포넌트/함수] | [테스트 케이스 목록] |
|
|
241
|
+
|
|
242
|
+
### 통합 테스트
|
|
243
|
+
- [테스트 시나리오 1]
|
|
244
|
+
- [테스트 시나리오 2]
|
|
245
|
+
|
|
246
|
+
---
|
|
247
|
+
|
|
248
|
+
## 7. 다음 단계
|
|
249
|
+
|
|
250
|
+
구현을 시작하려면:
|
|
251
|
+
1. Phase 1부터 순서대로 진행
|
|
252
|
+
2. 각 파일 구현 후 테스트 확인
|
|
253
|
+
3. [추가 안내사항]
|
|
254
|
+
```
|
|
255
|
+
|
|
256
|
+
---
|
|
257
|
+
|
|
258
|
+
## 사용 예시
|
|
259
|
+
|
|
260
|
+
```bash
|
|
261
|
+
# 1. 먼저 설계/요구사항 설명
|
|
262
|
+
"사용자 프로필 페이지를 만들어야 해.
|
|
263
|
+
- 프로필 이미지, 이름, 이메일 표시
|
|
264
|
+
- 프로필 수정 모달
|
|
265
|
+
- 비밀번호 변경 기능
|
|
266
|
+
- 계정 삭제 기능"
|
|
267
|
+
|
|
268
|
+
# 2. 커맨드 실행
|
|
269
|
+
/design-to-code
|
|
270
|
+
```
|
|
271
|
+
|
|
272
|
+
---
|
|
273
|
+
|
|
274
|
+
## 중요 사항
|
|
275
|
+
|
|
276
|
+
- **컨텍스트 의존**: 대화에서 설계/요구사항을 읽어옴
|
|
277
|
+
- **병렬 실행**: 검증 에이전트들은 병렬로 실행하여 효율성 확보
|
|
278
|
+
- **React 자동 감지**: package.json 또는 파일 확장자로 React 프로젝트 감지
|
|
279
|
+
- **구체적 파일 경로**: 생성/수정할 파일의 정확한 경로 명시
|
|
280
|
+
- **코드 스케치 포함**: 주요 구조와 인터페이스를 코드로 표현
|
|
281
|
+
- **한국어 출력**: 최종 리포트는 한국어로
|
|
282
|
+
- **결과 파일 저장**: 최종 리포트를 `design-to-code.md` 파일로 저장 (이미 존재하면 `---` 구분선과 함께 하단에 추가)
|
package/commands/figma-check.md
CHANGED
package/commands/review-pr.md
CHANGED
|
@@ -23,6 +23,7 @@ Task 도구를 통해 다음 전문 에이전트를 사용할 수 있습니다:
|
|
|
23
23
|
| `refactor-analyzer` | 코드 중복, 복잡성, 추상화 기회, 코드 스멜 |
|
|
24
24
|
| `junior-checker` | 주니어 개발자 관점 가독성, 네이밍, 복잡도 |
|
|
25
25
|
| `react-performance-optimizer` | React 리렌더, 메모이제이션, 훅 최적화 |
|
|
26
|
+
| `react-principles-reviewer` | React 개발 원칙 (응집도/명시성, Props 관리, 네이밍, 부수효과, AsyncBoundary) |
|
|
26
27
|
|
|
27
28
|
## 사용 가능한 Skill
|
|
28
29
|
|
|
@@ -54,7 +55,7 @@ Skill은 사용자 설치에 따라 다르며 추가 리뷰 가이드라인/컨
|
|
|
54
55
|
|
|
55
56
|
| 옵션 | 이름 | 사용 에이전트 | 적합한 상황 |
|
|
56
57
|
|------|------|--------------|-------------|
|
|
57
|
-
| 1 | **전체 리뷰** | 모든
|
|
58
|
+
| 1 | **전체 리뷰** | 모든 6개 에이전트 병렬 실행 | 종합 코드 리뷰 (권장) |
|
|
58
59
|
| 2 | **커스텀** | 사용자가 직접 선택 | 특정 관점만 리뷰하고 싶을 때 |
|
|
59
60
|
|
|
60
61
|
3. **Skill 포함 여부 질문** (AskUserQuestion 사용)
|
package/docs/BUILDER_GUIDE.md
CHANGED
|
@@ -52,6 +52,7 @@ Builder가 자동으로:
|
|
|
52
52
|
| `junior-checker` | 주니어 친화성 |
|
|
53
53
|
| `fundamentals-code` | Toss Frontend Fundamentals 기반 분석 |
|
|
54
54
|
| `react-performance-optimizer` | React 성능 최적화 |
|
|
55
|
+
| `react-principles-reviewer` | React 개발 원칙 (응집도/명시성, Props 관리, 네이밍, 부수효과) |
|
|
55
56
|
|
|
56
57
|
### 커스터마이징 예시
|
|
57
58
|
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "binary-agents",
|
|
3
|
-
"version": "1.0.
|
|
3
|
+
"version": "1.0.21",
|
|
4
4
|
"description": "Claude Code subagents and slash commands collection with sync CLI tool",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "src/sync.js",
|
|
@@ -8,7 +8,7 @@
|
|
|
8
8
|
"binary-agents": "./bin/cli.js"
|
|
9
9
|
},
|
|
10
10
|
"scripts": {
|
|
11
|
-
"
|
|
11
|
+
"start": "node bin/cli.js",
|
|
12
12
|
"list": "node bin/cli.js list",
|
|
13
13
|
"release": "npm version patch && npm publish"
|
|
14
14
|
},
|
|
@@ -37,8 +37,8 @@
|
|
|
37
37
|
"README.md"
|
|
38
38
|
],
|
|
39
39
|
"dependencies": {
|
|
40
|
+
"@inquirer/prompts": "^7.0.0",
|
|
40
41
|
"chalk": "^5.3.0",
|
|
41
|
-
"commander": "^12.0.0",
|
|
42
42
|
"ora": "^8.0.1"
|
|
43
43
|
},
|
|
44
44
|
"engines": {
|