jun-claude-code 0.0.12 → 0.0.13
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 +30 -12
- package/dist/cli.js +22 -0
- package/dist/init-context.js +25 -3
- package/dist/validate.d.ts +4 -0
- package/dist/validate.js +105 -0
- package/package.json +1 -1
- package/templates/global/CLAUDE.md +50 -21
- package/templates/global/agents/architect.md +23 -11
- package/templates/global/agents/code-reviewer.md +17 -7
- package/templates/global/agents/code-writer.md +27 -15
- package/templates/global/agents/context-collector.md +11 -3
- package/templates/global/agents/context-manager.md +20 -8
- package/templates/global/agents/designer.md +32 -20
- package/templates/global/agents/director.md +43 -31
- package/templates/global/agents/explore.md +12 -4
- package/templates/global/agents/git-manager.md +39 -22
- package/templates/global/agents/impact-analyzer.md +17 -7
- package/templates/global/agents/qa-tester.md +22 -8
- package/templates/global/agents/simple-code-writer.md +12 -4
- package/templates/global/agents/task-planner.md +18 -10
- package/templates/global/hooks/skill-forced.sh +49 -39
- package/templates/global/hooks/workflow-enforced.sh +49 -31
- package/templates/global/skills/Backend/SKILL.md +38 -9
- package/templates/global/skills/Coding/SKILL.md +69 -29
- package/templates/global/skills/Director/SKILL.md +9 -5
- package/templates/global/skills/Documentation/SKILL.md +68 -1
- package/templates/global/skills/Git/SKILL.md +8 -4
- package/templates/global/skills/Git/git.md +60 -28
- package/templates/global/skills/Git/pr-apply.md +18 -6
- package/templates/global/skills/Git/pr-review.md +4 -0
- package/templates/global/skills/PromptStructuring/SKILL.md +67 -0
- package/templates/global/skills/PromptStructuring/positive-phrasing.md +206 -0
- package/templates/global/skills/PromptStructuring/xml-tags.md +330 -0
- package/templates/global/skills/React/SKILL.md +28 -8
- package/templates/global/skills/React/react-hook-form.md +20 -12
- package/templates/global/skills/React/tailwind-styled.md +29 -7
- package/templates/global/skills/React/tanstack-router.md +21 -9
- package/templates/project/agents/project-task-manager.md +19 -7
- package/templates/{global → project}/skills/ContextGeneration/SKILL.md +20 -12
- package/templates/project/workflows/context-gen.yml +30 -7
- /package/templates/{global → project}/agents/context-generator.md +0 -0
|
@@ -7,6 +7,8 @@ estimated_tokens: ~600
|
|
|
7
7
|
|
|
8
8
|
# Git 작업 가이드
|
|
9
9
|
|
|
10
|
+
<rules>
|
|
11
|
+
|
|
10
12
|
## Commit 메시지
|
|
11
13
|
|
|
12
14
|
### 형식
|
|
@@ -34,7 +36,7 @@ Co-Authored-By: Claude <noreply@anthropic.com>
|
|
|
34
36
|
### 작성 원칙
|
|
35
37
|
|
|
36
38
|
- **한글 사용**, 50자 이내
|
|
37
|
-
- **현재형**: "추가함"
|
|
39
|
+
- **현재형**: "추가함" 대신 "추가"
|
|
38
40
|
- **Why 중심**: 무엇보다 왜 변경했는지
|
|
39
41
|
|
|
40
42
|
### Commit 단위
|
|
@@ -43,6 +45,8 @@ Co-Authored-By: Claude <noreply@anthropic.com>
|
|
|
43
45
|
- 각 커밋 후 빌드 에러 없음
|
|
44
46
|
- 되돌리기 용이한 단위
|
|
45
47
|
|
|
48
|
+
</rules>
|
|
49
|
+
|
|
46
50
|
---
|
|
47
51
|
|
|
48
52
|
## 브랜치 전략
|
|
@@ -56,6 +60,8 @@ chore/{작업명} # 설정/빌드
|
|
|
56
60
|
|
|
57
61
|
---
|
|
58
62
|
|
|
63
|
+
<instructions>
|
|
64
|
+
|
|
59
65
|
## PR (Pull Request) 생성
|
|
60
66
|
|
|
61
67
|
### Step 1: 변경사항 분석
|
|
@@ -121,11 +127,11 @@ grep -r "import.*변경된함수명" --include="*.ts" --include="*.tsx"
|
|
|
121
127
|
### Step 4: PR 본문 작성
|
|
122
128
|
|
|
123
129
|
```markdown
|
|
124
|
-
##
|
|
130
|
+
## Summary
|
|
125
131
|
|
|
126
132
|
> 이 PR이 해결하는 문제와 접근 방식을 1-2문장으로 설명
|
|
127
133
|
|
|
128
|
-
##
|
|
134
|
+
## 주요 변경사항
|
|
129
135
|
|
|
130
136
|
### [변경 제목 1]
|
|
131
137
|
**파일:** `path/to/file.ts`
|
|
@@ -135,7 +141,7 @@ grep -r "import.*변경된함수명" --include="*.ts" --include="*.tsx"
|
|
|
135
141
|
**파일:** `path/to/file.ts`
|
|
136
142
|
- 변경 내용 설명
|
|
137
143
|
|
|
138
|
-
##
|
|
144
|
+
## 사이드 이펙트
|
|
139
145
|
|
|
140
146
|
> 이 변경으로 인해 다른 부분에 발생할 수 있는 영향
|
|
141
147
|
|
|
@@ -143,7 +149,7 @@ grep -r "import.*변경된함수명" --include="*.ts" --include="*.tsx"
|
|
|
143
149
|
|---------------|----------|--------|
|
|
144
150
|
| 없음 | - | - |
|
|
145
151
|
|
|
146
|
-
##
|
|
152
|
+
## 변경 흐름
|
|
147
153
|
|
|
148
154
|
```mermaid
|
|
149
155
|
graph LR
|
|
@@ -166,20 +172,24 @@ EOF
|
|
|
166
172
|
)"
|
|
167
173
|
```
|
|
168
174
|
|
|
175
|
+
</instructions>
|
|
176
|
+
|
|
169
177
|
---
|
|
170
178
|
|
|
171
|
-
|
|
179
|
+
<rules>
|
|
172
180
|
|
|
173
|
-
|
|
181
|
+
## Git 명령어 안전 규칙
|
|
174
182
|
|
|
175
|
-
|
|
183
|
+
### 사용 제한 명령어
|
|
184
|
+
|
|
185
|
+
| 명령어 | 대안 |
|
|
176
186
|
|--------|------|
|
|
177
|
-
| `git add -A`, `git add .` |
|
|
178
|
-
| `git push --force` |
|
|
179
|
-
| `git reset --hard` |
|
|
180
|
-
| `--no-verify` | hook
|
|
187
|
+
| `git add -A`, `git add .` | 파일을 지정하여 `git add path/to/file` 사용 |
|
|
188
|
+
| `git push --force` | `git push` 또는 `--force-with-lease` 사용 |
|
|
189
|
+
| `git reset --hard` | `git stash` 또는 `git checkout -- file` 사용 |
|
|
190
|
+
| `--no-verify` | hook을 통과하도록 코드 수정 |
|
|
181
191
|
|
|
182
|
-
### 권장
|
|
192
|
+
### 권장 패턴
|
|
183
193
|
|
|
184
194
|
```bash
|
|
185
195
|
# 파일 지정하여 add
|
|
@@ -196,8 +206,12 @@ EOF
|
|
|
196
206
|
)"
|
|
197
207
|
```
|
|
198
208
|
|
|
209
|
+
</rules>
|
|
210
|
+
|
|
199
211
|
---
|
|
200
212
|
|
|
213
|
+
<checklist>
|
|
214
|
+
|
|
201
215
|
## PR 생성 전 체크리스트
|
|
202
216
|
|
|
203
217
|
- [ ] `lint` 통과
|
|
@@ -207,8 +221,12 @@ EOF
|
|
|
207
221
|
- [ ] 영향 범위 분석 완료
|
|
208
222
|
- [ ] Breaking change 명시 (해당시)
|
|
209
223
|
|
|
224
|
+
</checklist>
|
|
225
|
+
|
|
210
226
|
---
|
|
211
227
|
|
|
228
|
+
<instructions>
|
|
229
|
+
|
|
212
230
|
## PR 생성 후 워크플로우
|
|
213
231
|
|
|
214
232
|
### Step 6: Self PR Review
|
|
@@ -227,15 +245,19 @@ gh pr view <PR번호>
|
|
|
227
245
|
|
|
228
246
|
| 항목 | 확인 |
|
|
229
247
|
|------|------|
|
|
230
|
-
| 불필요한 코드/주석 제거 |
|
|
231
|
-
| 디버그 코드 제거 (console.log 등) |
|
|
232
|
-
| 하드코딩된 값
|
|
233
|
-
| 타입 안전성 확인 |
|
|
234
|
-
| 에러 핸들링 적절함 |
|
|
235
|
-
| 네이밍 컨벤션 준수 |
|
|
248
|
+
| 불필요한 코드/주석 제거 | |
|
|
249
|
+
| 디버그 코드 제거 (console.log 등) | |
|
|
250
|
+
| 하드코딩된 값 확인 | |
|
|
251
|
+
| 타입 안전성 확인 | |
|
|
252
|
+
| 에러 핸들링 적절함 | |
|
|
253
|
+
| 네이밍 컨벤션 준수 | |
|
|
254
|
+
|
|
255
|
+
<reference>
|
|
236
256
|
|
|
237
257
|
> 상세 체크리스트: `.claude/skills/Git/pr-review.md`
|
|
238
258
|
|
|
259
|
+
</reference>
|
|
260
|
+
|
|
239
261
|
**Self Review 이슈 발견 시:**
|
|
240
262
|
|
|
241
263
|
```bash
|
|
@@ -287,30 +309,40 @@ git push
|
|
|
287
309
|
gh pr comment <PR번호> --body "리뷰 피드백 반영 완료. 재확인 부탁드립니다."
|
|
288
310
|
```
|
|
289
311
|
|
|
312
|
+
<reference>
|
|
313
|
+
|
|
290
314
|
> 상세 가이드: `.claude/skills/Git/pr-apply.md`
|
|
291
315
|
|
|
316
|
+
</reference>
|
|
317
|
+
|
|
318
|
+
</instructions>
|
|
319
|
+
|
|
292
320
|
---
|
|
293
321
|
|
|
294
322
|
## 전체 PR 워크플로우 요약
|
|
295
323
|
|
|
296
324
|
```mermaid
|
|
297
325
|
graph TD
|
|
298
|
-
A[
|
|
299
|
-
B --> C[
|
|
300
|
-
C --> D[
|
|
301
|
-
D --> E[
|
|
302
|
-
E --> F[
|
|
303
|
-
F -->|이슈 발견| G[
|
|
326
|
+
A[변경사항 분석] --> B[영향 범위 분석]
|
|
327
|
+
B --> C[영향 판단]
|
|
328
|
+
C --> D[PR 본문 작성]
|
|
329
|
+
D --> E[PR 생성]
|
|
330
|
+
E --> F[Self PR Review]
|
|
331
|
+
F -->|이슈 발견| G[수정 & Push]
|
|
304
332
|
G --> F
|
|
305
|
-
F -->|OK| H[
|
|
306
|
-
H -->|피드백| I[
|
|
333
|
+
F -->|OK| H[팀원 리뷰 대기]
|
|
334
|
+
H -->|피드백| I[PR Apply Mode]
|
|
307
335
|
I --> H
|
|
308
|
-
H -->|Approve| J[
|
|
336
|
+
H -->|Approve| J[Merge]
|
|
309
337
|
```
|
|
310
338
|
|
|
339
|
+
<reference>
|
|
340
|
+
|
|
311
341
|
### 관련 Skill 참조
|
|
312
342
|
|
|
313
343
|
| 단계 | Skill |
|
|
314
344
|
|------|-------|
|
|
315
345
|
| PR Review | `.claude/skills/Git/pr-review.md` |
|
|
316
346
|
| PR Apply | `.claude/skills/Git/pr-apply.md` |
|
|
347
|
+
|
|
348
|
+
</reference>
|
|
@@ -10,6 +10,8 @@ user-invocable: true
|
|
|
10
10
|
|
|
11
11
|
PR 리뷰 피드백을 코드에 반영하는 가이드.
|
|
12
12
|
|
|
13
|
+
<instructions>
|
|
14
|
+
|
|
13
15
|
## Apply Workflow
|
|
14
16
|
|
|
15
17
|
### Step 1: 리뷰 피드백 확인
|
|
@@ -58,6 +60,10 @@ git push origin feature/branch-name
|
|
|
58
60
|
gh pr comment <PR번호> --body "리뷰 피드백 반영 완료했습니다. 재확인 부탁드립니다."
|
|
59
61
|
```
|
|
60
62
|
|
|
63
|
+
</instructions>
|
|
64
|
+
|
|
65
|
+
<rules>
|
|
66
|
+
|
|
61
67
|
## 피드백 대응 원칙
|
|
62
68
|
|
|
63
69
|
### 수용할 때
|
|
@@ -77,11 +83,17 @@ gh pr comment <PR번호> --body "리뷰 피드백 반영 완료했습니다. 재
|
|
|
77
83
|
- 해당 코멘트에 직접 답변
|
|
78
84
|
- 필요시 코드에 주석 추가
|
|
79
85
|
|
|
86
|
+
</rules>
|
|
87
|
+
|
|
88
|
+
<checklist>
|
|
89
|
+
|
|
80
90
|
## 체크리스트
|
|
81
91
|
|
|
82
|
-
- [ ] 모든 Critical
|
|
83
|
-
- [ ] Suggestion
|
|
84
|
-
- [ ] Question
|
|
85
|
-
- [ ] `lint`
|
|
86
|
-
- [ ] `build`
|
|
87
|
-
- [ ] 리뷰어에게
|
|
92
|
+
- [ ] 모든 Critical 피드백을 반영했는가?
|
|
93
|
+
- [ ] Suggestion을 검토하고 결정했는가?
|
|
94
|
+
- [ ] Question에 답변을 완료했는가?
|
|
95
|
+
- [ ] `lint` 통과하는가?
|
|
96
|
+
- [ ] `build` 성공하는가?
|
|
97
|
+
- [ ] 리뷰어에게 재확인을 요청했는가?
|
|
98
|
+
|
|
99
|
+
</checklist>
|
|
@@ -10,6 +10,8 @@ user-invocable: true
|
|
|
10
10
|
|
|
11
11
|
체크리스트 기반 Pull Request 리뷰.
|
|
12
12
|
|
|
13
|
+
<instructions>
|
|
14
|
+
|
|
13
15
|
## Review Workflow
|
|
14
16
|
|
|
15
17
|
### Step 1: Review Plan 작성
|
|
@@ -58,6 +60,8 @@ user-invocable: true
|
|
|
58
60
|
### Highlights (좋은 점)
|
|
59
61
|
```
|
|
60
62
|
|
|
63
|
+
</instructions>
|
|
64
|
+
|
|
61
65
|
## PR 타입별 Focus
|
|
62
66
|
|
|
63
67
|
| Type | Focus Areas |
|
|
@@ -0,0 +1,67 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: PromptStructuring
|
|
3
|
+
description: "Claude Code 프롬프트의 XML 태그 구조화 및 긍정 표현 전환 가이드"
|
|
4
|
+
keywords: [prompt, xml-tags, positive-phrasing, structuring, 프롬프트, 구조화, 긍정표현, XML]
|
|
5
|
+
estimated_tokens: 800
|
|
6
|
+
---
|
|
7
|
+
|
|
8
|
+
# 프롬프트 구조화 스킬
|
|
9
|
+
|
|
10
|
+
## 개요
|
|
11
|
+
|
|
12
|
+
프롬프트의 **형식과 표현 방식**은 LLM 출력 품질에 직접적인 영향을 준다.
|
|
13
|
+
|
|
14
|
+
- **형식**: 동일한 내용이라도 XML 태그로 의미를 구분하면 모델이 역할/지시/규칙을 명확히 구분
|
|
15
|
+
- **표현**: 부정 표현("~금지") 대신 긍정 표현("~한다")을 사용하면 의도한 행동을 직접 유도
|
|
16
|
+
|
|
17
|
+
### 연구 근거
|
|
18
|
+
|
|
19
|
+
| 연구 | 핵심 발견 | 시사점 |
|
|
20
|
+
|------|----------|--------|
|
|
21
|
+
| Sclar et al. (2023) | 동일 내용, 형식만 변경해도 최대 76%p 성능 차이 | 프롬프트 구조가 정확도에 직결 |
|
|
22
|
+
| Voronov et al. (2024) | 프롬프트 포맷팅이 Few-shot 성능에 체계적 영향 | 일관된 태그 구조가 안정적 성능 보장 |
|
|
23
|
+
| Anthropic 공식 가이드 | XML 태그 사용을 공식 권장 | Claude 모델에 최적화된 구조화 방식 |
|
|
24
|
+
|
|
25
|
+
## 핵심 원칙
|
|
26
|
+
|
|
27
|
+
### 1. XML 태그로 의미 구분
|
|
28
|
+
|
|
29
|
+
마크다운 제목(`##`) 대신 XML 태그로 역할/지시/규칙/제약을 구분한다.
|
|
30
|
+
|
|
31
|
+
```
|
|
32
|
+
마크다운만 사용 -> XML 태그로 의미 구분
|
|
33
|
+
|
|
34
|
+
## 역할 -> <role>
|
|
35
|
+
## 지시사항 -> <instructions>
|
|
36
|
+
## 규칙 -> <rules>
|
|
37
|
+
## 제약사항 -> <constraints>
|
|
38
|
+
```
|
|
39
|
+
|
|
40
|
+
### 2. 긍정 표현으로 행동 유도
|
|
41
|
+
|
|
42
|
+
부정 명령 대신 긍정 행동을 명시한다.
|
|
43
|
+
|
|
44
|
+
```
|
|
45
|
+
부정 표현 -> 긍정 표현
|
|
46
|
+
|
|
47
|
+
"코드 직접 수정 금지" -> "모든 코드 수정은 code-writer에 위임"
|
|
48
|
+
"git add -A 금지" -> "수정한 파일만 개별 지정하여 git add"
|
|
49
|
+
"과도한 추상화 금지" -> "필요한 만큼만 추상화"
|
|
50
|
+
```
|
|
51
|
+
|
|
52
|
+
### 3. `->` 흐름 기호 활용
|
|
53
|
+
|
|
54
|
+
단계, 변환, 위임을 나타낼 때 `->` 기호를 사용한다.
|
|
55
|
+
|
|
56
|
+
```
|
|
57
|
+
단계: 계획 -> 구현 -> 검증
|
|
58
|
+
변환: 부정 표현 -> 긍정 표현
|
|
59
|
+
위임: 코드 수정 -> code-writer Agent
|
|
60
|
+
```
|
|
61
|
+
|
|
62
|
+
## 관련 문서
|
|
63
|
+
|
|
64
|
+
| 문서 | 설명 |
|
|
65
|
+
|------|------|
|
|
66
|
+
| `xml-tags.md` | XML 태그 표준 목록, 파일 유형별 권장 조합, Before/After 예시 |
|
|
67
|
+
| `positive-phrasing.md` | 부정 -> 긍정 전환 패턴, 카테고리별 변환 테이블, 체크리스트 |
|
|
@@ -0,0 +1,206 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: "Positive Phrasing Guide"
|
|
3
|
+
description: "프롬프트의 부정 표현을 긍정 표현으로 전환하는 가이드"
|
|
4
|
+
keywords: [positive-phrasing, prompt-optimization, negation-removal, 긍정표현, 부정제거]
|
|
5
|
+
estimated_tokens: 2000
|
|
6
|
+
---
|
|
7
|
+
|
|
8
|
+
# 긍정 표현 전환 가이드
|
|
9
|
+
|
|
10
|
+
## 왜 긍정 표현인가
|
|
11
|
+
|
|
12
|
+
부정 명령("~하지 마", "~금지")은 LLM이 **금지 대상을 먼저 인식**하게 만든다.
|
|
13
|
+
|
|
14
|
+
```
|
|
15
|
+
"코드를 직접 수정하지 마세요"
|
|
16
|
+
-> 모델이 "코드를 직접 수정" 개념을 활성화한 후 억제 시도
|
|
17
|
+
-> 의도치 않은 활성화 가능성 존재
|
|
18
|
+
|
|
19
|
+
"모든 코드 수정은 code-writer에 위임하세요"
|
|
20
|
+
-> 모델이 "code-writer에 위임" 행동을 직접 활성화
|
|
21
|
+
-> 원하는 행동을 바로 유도
|
|
22
|
+
```
|
|
23
|
+
|
|
24
|
+
긍정 표현은 **원하는 행동 자체를 명시**하므로 모델이 바로 올바른 방향으로 행동한다.
|
|
25
|
+
|
|
26
|
+
---
|
|
27
|
+
|
|
28
|
+
## 전환 패턴
|
|
29
|
+
|
|
30
|
+
### 카테고리 1: 금지/제한 패턴
|
|
31
|
+
|
|
32
|
+
| 부정 표현 | -> | 긍정 표현 |
|
|
33
|
+
|----------|-----|----------|
|
|
34
|
+
| "~금지" | -> | "~전담/전용" |
|
|
35
|
+
| "절대 ~않는다" | -> | "항상 ~한다" |
|
|
36
|
+
| "NEVER ~" | -> | "ALWAYS ~" |
|
|
37
|
+
| "~하지 마세요" | -> | "~하세요" (원하는 행동) |
|
|
38
|
+
| "~을 사용하지 않는다" | -> | "~을 사용한다" (대안 명시) |
|
|
39
|
+
|
|
40
|
+
**예시:**
|
|
41
|
+
|
|
42
|
+
```
|
|
43
|
+
"git add -A 금지"
|
|
44
|
+
-> "수정한 파일만 개별 지정하여 git add"
|
|
45
|
+
|
|
46
|
+
"구체 클래스 직접 의존 금지"
|
|
47
|
+
-> "인터페이스/추상화에 의존한다"
|
|
48
|
+
|
|
49
|
+
"전역 상태 직접 접근 금지 (Presentational에서)"
|
|
50
|
+
-> "props로 의존성을 전달한다"
|
|
51
|
+
```
|
|
52
|
+
|
|
53
|
+
### 카테고리 2: 확인 패턴
|
|
54
|
+
|
|
55
|
+
| 부정 표현 | -> | 긍정 표현 |
|
|
56
|
+
|----------|-----|----------|
|
|
57
|
+
| "~없는지 확인" | -> | "~인지 확인" |
|
|
58
|
+
| "에러가 발생하지 않는지 확인" | -> | "정상 동작하는지 확인" |
|
|
59
|
+
| "누락된 것이 없는지 점검" | -> | "모든 항목이 포함되었는지 점검" |
|
|
60
|
+
|
|
61
|
+
**예시:**
|
|
62
|
+
|
|
63
|
+
```
|
|
64
|
+
"순환 의존이 발생하지 않는가?"
|
|
65
|
+
-> "의존 방향이 단방향인가?"
|
|
66
|
+
|
|
67
|
+
"빌드 에러가 발생하지 않는 상태 유지"
|
|
68
|
+
-> "빌드 가능 상태를 유지"
|
|
69
|
+
|
|
70
|
+
"누락된 엣지케이스 없는지 점검"
|
|
71
|
+
-> "모든 엣지케이스가 처리되었는지 점검"
|
|
72
|
+
```
|
|
73
|
+
|
|
74
|
+
### 카테고리 3: 과도 방지 패턴
|
|
75
|
+
|
|
76
|
+
| 부정 표현 | -> | 긍정 표현 |
|
|
77
|
+
|----------|-----|----------|
|
|
78
|
+
| "과도한 X 금지" | -> | "필요한 만큼만 X" |
|
|
79
|
+
| "불필요한 X 금지" | -> | "필요한 X만 포함" |
|
|
80
|
+
| "복잡한 X 피하기" | -> | "단순한 X 유지" |
|
|
81
|
+
|
|
82
|
+
**예시:**
|
|
83
|
+
|
|
84
|
+
```
|
|
85
|
+
"과도한 추상화 금지"
|
|
86
|
+
-> "필요한 만큼만 추상화"
|
|
87
|
+
|
|
88
|
+
"불필요한 파일 생성 금지"
|
|
89
|
+
-> "기존 파일 수정을 우선"
|
|
90
|
+
|
|
91
|
+
"주석 과다 금지"
|
|
92
|
+
-> "코드가 자명할 때는 주석 생략"
|
|
93
|
+
```
|
|
94
|
+
|
|
95
|
+
### 카테고리 4: 위임 패턴
|
|
96
|
+
|
|
97
|
+
| 부정 표현 | -> | 긍정 표현 |
|
|
98
|
+
|----------|-----|----------|
|
|
99
|
+
| "직접 수행 금지" | -> | "Subagent에 위임" |
|
|
100
|
+
| "Main Agent에서 직접 X 금지" | -> | "X는 [Agent명]이 전담" |
|
|
101
|
+
| "직접 수정하지 않는다" | -> | "[Agent명]에 위임한다" |
|
|
102
|
+
|
|
103
|
+
**예시:**
|
|
104
|
+
|
|
105
|
+
```
|
|
106
|
+
"Main Agent에서 직접 코드 수정 금지"
|
|
107
|
+
-> "모든 코드 수정은 code-writer가 전담"
|
|
108
|
+
|
|
109
|
+
"Main Agent에서 직접 Git 명령어 실행 금지"
|
|
110
|
+
-> "모든 Git 작업은 git-manager에 위임"
|
|
111
|
+
|
|
112
|
+
"Main Agent에서 직접 여러 파일 탐색 금지"
|
|
113
|
+
-> "파일 탐색은 explore Agent가 전담"
|
|
114
|
+
```
|
|
115
|
+
|
|
116
|
+
---
|
|
117
|
+
|
|
118
|
+
## 파일 유형별 자주 등장하는 전환
|
|
119
|
+
|
|
120
|
+
### Agent 파일
|
|
121
|
+
|
|
122
|
+
| 부정 표현 | -> | 긍정 표현 |
|
|
123
|
+
|----------|-----|----------|
|
|
124
|
+
| "코드 직접 수정 금지" | -> | "모든 코드 수정은 code-writer에 위임" |
|
|
125
|
+
| "여러 기능을 동시에 구현하지 않는다" | -> | "한 번에 하나의 기능만 구현한다" |
|
|
126
|
+
| "import 경로가 올바르지 않은 상태로 두지 않는다" | -> | "각 파일 작성 후 import 경로가 올바른지 확인한다" |
|
|
127
|
+
|
|
128
|
+
### Skill 파일
|
|
129
|
+
|
|
130
|
+
| 부정 표현 | -> | 긍정 표현 |
|
|
131
|
+
|----------|-----|----------|
|
|
132
|
+
| "중첩 요소 사용 금지" | -> | "단일 수준 구조를 유지한다" |
|
|
133
|
+
| "장황한 설명 금지" | -> | "테이블과 코드 예제로 압축한다" |
|
|
134
|
+
| "1000줄 초과 금지" | -> | "500줄 이내로 유지하고, 초과 시 파일을 분리한다" |
|
|
135
|
+
|
|
136
|
+
### Hook 파일
|
|
137
|
+
|
|
138
|
+
| 부정 표현 | -> | 긍정 표현 |
|
|
139
|
+
|----------|-----|----------|
|
|
140
|
+
| "Phase를 건너뛰지 마세요" | -> | "모든 Phase를 순서대로 완료한다" |
|
|
141
|
+
| "검증 없이 진행하지 않는다" | -> | "검증을 통과한 후에만 다음 단계로 진행한다" |
|
|
142
|
+
| "계획 없이 코드를 작성하지 않는다" | -> | "계획을 확인한 후 코드를 작성한다" |
|
|
143
|
+
|
|
144
|
+
### CLAUDE.md 파일
|
|
145
|
+
|
|
146
|
+
| 부정 표현 | -> | 긍정 표현 |
|
|
147
|
+
|----------|-----|----------|
|
|
148
|
+
| "git add -A 금지" | -> | "수정한 파일만 개별 지정하여 git add" |
|
|
149
|
+
| "자동으로 커밋/푸시하지 않는다" | -> | "사용자가 명시적으로 요청할 때만 커밋/푸시한다" |
|
|
150
|
+
| "3개 이상 파일 수정 금지" | -> | "파일 수정은 Subagent에 위임한다" |
|
|
151
|
+
|
|
152
|
+
---
|
|
153
|
+
|
|
154
|
+
## 전환 시 주의사항
|
|
155
|
+
|
|
156
|
+
### 맥락을 보존한다
|
|
157
|
+
|
|
158
|
+
부정 표현을 긍정으로 바꿀 때 원래 의도가 손실되지 않도록 한다.
|
|
159
|
+
|
|
160
|
+
```
|
|
161
|
+
원문: "Presentational 컴포넌트에서 API 호출, 전역 상태 접근 금지"
|
|
162
|
+
|
|
163
|
+
나쁜 전환: "Presentational 컴포넌트에서 작업한다"
|
|
164
|
+
-> 원래 의도(제한 사항)가 사라짐
|
|
165
|
+
|
|
166
|
+
좋은 전환: "Presentational 컴포넌트는 UI 렌더링만 전담한다. 데이터는 props로 전달받는다"
|
|
167
|
+
-> 허용 범위를 명시하여 제한 의도를 보존
|
|
168
|
+
```
|
|
169
|
+
|
|
170
|
+
### 대안을 함께 명시한다
|
|
171
|
+
|
|
172
|
+
"~하지 마"만 긍정으로 바꾸면 모호해질 수 있다. **대안 행동**을 함께 제시한다.
|
|
173
|
+
|
|
174
|
+
```
|
|
175
|
+
나쁜 전환: "try-catch 대신 다른 것을 사용한다"
|
|
176
|
+
-> "다른 것"이 모호
|
|
177
|
+
|
|
178
|
+
좋은 전환: "Promise 처리 시 then-catch 패턴을 사용한다"
|
|
179
|
+
-> 구체적 대안 제시
|
|
180
|
+
```
|
|
181
|
+
|
|
182
|
+
### 정량적 기준이 있으면 유지한다
|
|
183
|
+
|
|
184
|
+
```
|
|
185
|
+
원문: "1000줄 초과 금지"
|
|
186
|
+
좋은 전환: "500줄 이내로 유지하고, 초과 시 파일을 분리한다"
|
|
187
|
+
-> 수치 기준을 유지하면서 긍정형으로 전환
|
|
188
|
+
```
|
|
189
|
+
|
|
190
|
+
---
|
|
191
|
+
|
|
192
|
+
## 체크리스트
|
|
193
|
+
|
|
194
|
+
<checklist>
|
|
195
|
+
- [ ] 파일 내에 "금지", "~하지 마", "절대", "NEVER" 문자열이 없는가?
|
|
196
|
+
- [ ] 모든 규칙이 "~한다", "~해야 한다" 형태의 긍정문인가?
|
|
197
|
+
- [ ] 제약사항이 "~만 한다", "~전용", "~전담" 형태로 표현되었는가?
|
|
198
|
+
- [ ] 부정 -> 긍정 전환 시 원래 의도가 보존되었는가?
|
|
199
|
+
- [ ] 대안 행동이 구체적으로 명시되었는가?
|
|
200
|
+
- [ ] 정량적 기준(줄 수, 파일 수 등)이 유지되었는가?
|
|
201
|
+
</checklist>
|
|
202
|
+
|
|
203
|
+
<reference>
|
|
204
|
+
- `SKILL.md` - 프롬프트 구조화 개요 및 핵심 원칙
|
|
205
|
+
- `xml-tags.md` - XML 태그 표준 및 사용 가이드
|
|
206
|
+
</reference>
|