@kood/claude-code 0.6.0 → 0.6.2
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/dist/index.js +1 -1
- package/package.json +1 -1
- package/templates/.claude/instructions/agent-patterns/delegation-patterns.md +389 -0
- package/templates/.claude/instructions/context-optimization/phase-based-execution.md +410 -0
- package/templates/.claude/instructions/context-optimization/redundant-exploration-prevention.md +646 -0
- package/templates/.claude/instructions/context-optimization/sub-agent-distribution.md +476 -0
- package/templates/.claude/instructions/glossary.md +48 -0
- package/templates/.claude/instructions/project-context-template.md +453 -0
- package/templates/.claude/instructions/skill-integration.md +90 -0
- package/templates/.claude/instructions/sourcing/reliable-search.md +411 -0
- package/templates/.claude/instructions/validation/forbidden-patterns.md +47 -0
- package/templates/.claude/instructions/validation/required-behaviors.md +120 -0
- package/templates/.claude/instructions/validation/scope-completeness.md +367 -0
- package/templates/.claude/instructions/workflow-patterns/todowrite-pattern.md +2 -0
- package/templates/.claude/skills/brainstorm/SKILL.md +110 -644
- package/templates/.claude/skills/bug-fix/SKILL.md +9 -137
- package/templates/.claude/skills/docs-fetch/CLAUDE.md +3 -0
- package/templates/.claude/skills/docs-fetch/SKILL.md +458 -0
- package/templates/.claude/skills/elon-musk/CLAUDE.md +3 -0
- package/templates/.claude/skills/elon-musk/SKILL.md +367 -0
- package/templates/.claude/skills/execute/SKILL.md +18 -397
- package/templates/.claude/skills/plan/SKILL.md +12 -986
- package/templates/.claude/skills/prd/SKILL.md +225 -586
- package/templates/.claude/skills/prd/references/ai-native-prd.md +116 -0
- package/templates/.claude/skills/prd/references/anti-patterns.md +82 -0
- package/templates/.claude/skills/prd/references/frameworks.md +216 -0
- package/templates/.claude/skills/prd/references/pm-leaders.md +106 -0
- package/templates/.claude/skills/prd/references/trends-2026.md +157 -0
- package/templates/.claude/skills/ralph/SKILL.md +15 -497
- package/templates/.claude/skills/refactor/SKILL.md +11 -655
- package/templates/.claude/skills/research/SKILL.md +257 -0
- package/templates/.claude/skills/research/report-template.md +88 -0
|
@@ -0,0 +1,411 @@
|
|
|
1
|
+
# Reliable Search Guide
|
|
2
|
+
|
|
3
|
+
**목적**: 검색 결과의 최신성과 신뢰성 보장, 중복 검색 방지 및 효율적 검색 전략
|
|
4
|
+
|
|
5
|
+
**참조**: @../context-optimization/redundant-exploration-prevention.md
|
|
6
|
+
|
|
7
|
+
---
|
|
8
|
+
|
|
9
|
+
## 중복 검색 방지 (Duplicate Search Prevention)
|
|
10
|
+
|
|
11
|
+
**목적**: 동일 쿼리 반복 실행 방지, 컨텍스트 윈도우 절약, Rate Limiting 회피
|
|
12
|
+
|
|
13
|
+
### 핵심 규칙
|
|
14
|
+
|
|
15
|
+
| 규칙 | 실행 |
|
|
16
|
+
|------|------|
|
|
17
|
+
| **같은 쿼리 금지** | 동일 쿼리 반복 실행 금지 (WebSearch + SearXNG 같은 쿼리 금지) |
|
|
18
|
+
| **이전 결과 확인** | 검색 전 이전 검색 결과 확인 |
|
|
19
|
+
| **유사 쿼리 병합** | 유사한 쿼리는 한 번에 실행 |
|
|
20
|
+
| **검색 종료 조건** | 목표 정보 획득, 교차 검증 완료, 검색 깊이 도달 |
|
|
21
|
+
|
|
22
|
+
### 검색 전 체크리스트
|
|
23
|
+
|
|
24
|
+
```text
|
|
25
|
+
✓ 이 쿼리를 이미 실행했는가?
|
|
26
|
+
→ YES: 이전 결과 활용 (재검색 금지)
|
|
27
|
+
→ NO: 검색 실행
|
|
28
|
+
|
|
29
|
+
✓ 이전 결과로 충분한가?
|
|
30
|
+
→ YES: 검색 중단, 다음 단계 진행
|
|
31
|
+
→ NO: 다른 각도의 쿼리 생성
|
|
32
|
+
|
|
33
|
+
✓ 다른 각도의 쿼리가 필요한가?
|
|
34
|
+
→ YES: 새로운 관점 쿼리 생성
|
|
35
|
+
→ NO: 이전 결과 활용
|
|
36
|
+
|
|
37
|
+
✓ 같은 채널에 같은 쿼리를 보내는가?
|
|
38
|
+
→ YES: 금지 (WebSearch + SearXNG 같은 쿼리)
|
|
39
|
+
→ NO: 허용
|
|
40
|
+
```
|
|
41
|
+
|
|
42
|
+
### 허용/금지 패턴
|
|
43
|
+
|
|
44
|
+
```typescript
|
|
45
|
+
// ❌ 금지: 같은 쿼리 반복
|
|
46
|
+
WebSearch({ query: "React best practices 2026" })
|
|
47
|
+
// ... 작업 ...
|
|
48
|
+
WebSearch({ query: "React best practices 2026" }) // 중복!
|
|
49
|
+
|
|
50
|
+
// ❌ 금지: 다른 채널에 같은 쿼리
|
|
51
|
+
WebSearch({ query: "Next.js 15 features" })
|
|
52
|
+
SearXNG({ query: "Next.js 15 features" }) // 중복!
|
|
53
|
+
|
|
54
|
+
// ✅ 올바름: 다른 각도 쿼리
|
|
55
|
+
WebSearch({ query: "React best practices 2026" })
|
|
56
|
+
WebSearch({ query: "React performance optimization 2026" }) // 다른 각도
|
|
57
|
+
|
|
58
|
+
// ✅ 올바름: 채널별 특화 쿼리
|
|
59
|
+
WebSearch({ query: "Next.js 15 features overview" }) // 개요
|
|
60
|
+
SearXNG({ query: "Next.js 15 breaking changes" }) // 상세 변경사항
|
|
61
|
+
```
|
|
62
|
+
|
|
63
|
+
---
|
|
64
|
+
|
|
65
|
+
## 검색 결과 캐싱 전략 (Search Result Caching)
|
|
66
|
+
|
|
67
|
+
**목적**: 검색 결과 재사용, 동일 세션 내 재검색 방지, 컨텍스트 절약
|
|
68
|
+
|
|
69
|
+
### 캐싱 규칙
|
|
70
|
+
|
|
71
|
+
| 규칙 | 실행 |
|
|
72
|
+
|------|------|
|
|
73
|
+
| **파일로 저장** | 장기 세션 시 검색 결과를 파일로 저장 |
|
|
74
|
+
| **요약 형식** | 전문 저장 대신 요약 형식으로 컨텍스트 절약 |
|
|
75
|
+
| **캐시 활용** | 동일 세션 내 재검색 시 캐시 파일 확인 |
|
|
76
|
+
| **주제별 분류** | 주제별 디렉토리 구조로 관리 |
|
|
77
|
+
|
|
78
|
+
### 저장 위치 및 형식
|
|
79
|
+
|
|
80
|
+
```markdown
|
|
81
|
+
저장 위치: .claude/research/[topic]/
|
|
82
|
+
|
|
83
|
+
파일 구조:
|
|
84
|
+
- sources.md: URL + 발행일 + 요약
|
|
85
|
+
- findings.md: 핵심 발견사항
|
|
86
|
+
- queries.md: 실행한 쿼리 목록 (중복 방지)
|
|
87
|
+
```
|
|
88
|
+
|
|
89
|
+
### 캐시 파일 예시
|
|
90
|
+
|
|
91
|
+
```markdown
|
|
92
|
+
# .claude/research/react-2026/sources.md
|
|
93
|
+
|
|
94
|
+
## 검색 쿼리 기록
|
|
95
|
+
- "React best practices 2026" (WebSearch, 2026-02-06)
|
|
96
|
+
- "React performance optimization 2026" (SearXNG, 2026-02-06)
|
|
97
|
+
|
|
98
|
+
## 출처 목록
|
|
99
|
+
|
|
100
|
+
### S등급 (공식 문서)
|
|
101
|
+
- https://react.dev/blog/2026/01/react-19-release
|
|
102
|
+
- 발행일: 2026-01-15
|
|
103
|
+
- 요약: React 19 정식 릴리스, Server Components 안정화
|
|
104
|
+
- 핵심: Actions, useOptimistic, use() hook
|
|
105
|
+
|
|
106
|
+
### A등급 (주요 기술 미디어)
|
|
107
|
+
- https://vercel.com/blog/react-19-adoption
|
|
108
|
+
- 발행일: 2026-01-20
|
|
109
|
+
- 요약: React 19 도입 가이드, 마이그레이션 전략
|
|
110
|
+
- 핵심: 점진적 도입, 호환성 확인
|
|
111
|
+
|
|
112
|
+
---
|
|
113
|
+
|
|
114
|
+
# .claude/research/react-2026/findings.md
|
|
115
|
+
|
|
116
|
+
## 핵심 발견사항 (2026-02-06)
|
|
117
|
+
|
|
118
|
+
### React 19 주요 변경사항
|
|
119
|
+
1. Server Components 기본 지원
|
|
120
|
+
2. Actions API 안정화
|
|
121
|
+
3. useOptimistic hook 추가
|
|
122
|
+
4. use() hook으로 Promise/Context 처리
|
|
123
|
+
|
|
124
|
+
### 성능 최적화 패턴
|
|
125
|
+
1. React Compiler 사용 (자동 메모이제이션)
|
|
126
|
+
2. Suspense Boundary 전략적 배치
|
|
127
|
+
3. Streaming SSR 최적화
|
|
128
|
+
|
|
129
|
+
### 교차 검증 완료
|
|
130
|
+
- Server Components 안정화: 2개 소스 확인 (react.dev, vercel.com)
|
|
131
|
+
- React Compiler: 3개 소스 확인 (공식 문서, Meta blog, Vercel blog)
|
|
132
|
+
```
|
|
133
|
+
|
|
134
|
+
### 캐시 활용 흐름
|
|
135
|
+
|
|
136
|
+
```typescript
|
|
137
|
+
// ✅ 올바른 흐름: 캐시 확인 → 검색
|
|
138
|
+
// 1. 캐시 확인
|
|
139
|
+
Read(".claude/research/react-2026/queries.md")
|
|
140
|
+
// → "React best practices 2026" 이미 검색함
|
|
141
|
+
|
|
142
|
+
// 2-1. 캐시 결과 활용
|
|
143
|
+
Read(".claude/research/react-2026/findings.md")
|
|
144
|
+
// → 핵심 발견사항 확인
|
|
145
|
+
|
|
146
|
+
// 2-2. 추가 정보 필요 시 다른 각도 쿼리
|
|
147
|
+
WebSearch({ query: "React security best practices 2026" })
|
|
148
|
+
// → 새로운 각도 (보안)
|
|
149
|
+
```
|
|
150
|
+
|
|
151
|
+
---
|
|
152
|
+
|
|
153
|
+
## 검색 범위 사전 결정 (Search Scope Pre-Planning)
|
|
154
|
+
|
|
155
|
+
**목적**: 검색 시작 전 범위와 깊이 결정, 무분별한 검색 방지
|
|
156
|
+
|
|
157
|
+
### 검색 계획 단계
|
|
158
|
+
|
|
159
|
+
| 단계 | 결정 사항 | 예시 |
|
|
160
|
+
|------|----------|------|
|
|
161
|
+
| **1. 정보 유형** | 공식 문서 vs 블로그 vs 벤치마크 | 공식 문서: Context7, 벤치마크: WebSearch |
|
|
162
|
+
| **2. 검색 깊이** | Quick(3쿼리) / Medium(5쿼리) / Deep(10쿼리) | 개요: Quick, 완전 분석: Deep |
|
|
163
|
+
| **3. 우선순위 채널** | Context7 → GitHub → WebSearch | 라이브러리 문서 우선 |
|
|
164
|
+
| **4. 종료 조건** | 목표 달성 / 교차 검증 완료 / 깊이 도달 | 2+ 소스 교차 검증 완료 시 종료 |
|
|
165
|
+
|
|
166
|
+
### 검색 깊이 기준
|
|
167
|
+
|
|
168
|
+
| 깊이 | 쿼리 수 | 용도 | 예시 |
|
|
169
|
+
|------|---------|------|------|
|
|
170
|
+
| **Quick** | 1-3개 | 개요 파악, 빠른 확인 | "React 19란?", "주요 변경사항" |
|
|
171
|
+
| **Medium** | 4-6개 | 표준 조사, 비교 분석 | "React vs Vue 2026", "성능 비교" |
|
|
172
|
+
| **Deep** | 7-10개 | 완전 분석, 심층 연구 | "React 생태계 전체", "마이그레이션 전략" |
|
|
173
|
+
|
|
174
|
+
### 검색 시작 전 체크리스트
|
|
175
|
+
|
|
176
|
+
```text
|
|
177
|
+
✓ 필요한 정보 유형은?
|
|
178
|
+
- 공식 문서: Context7 MCP → 라이브러리 문서 직접 조회
|
|
179
|
+
- 코드 예시: GitHub MCP → 리포지토리/코드 검색
|
|
180
|
+
- 최신 동향: WebSearch/SearXNG → 블로그/미디어
|
|
181
|
+
- 벤치마크: WebSearch → 성능 비교 자료
|
|
182
|
+
|
|
183
|
+
✓ 검색 깊이는?
|
|
184
|
+
- Quick: 개요만 필요
|
|
185
|
+
- Medium: 비교 분석 필요
|
|
186
|
+
- Deep: 완전한 이해 필요
|
|
187
|
+
|
|
188
|
+
✓ 우선순위 채널은?
|
|
189
|
+
1순위: Context7 (라이브러리 공식 문서)
|
|
190
|
+
2순위: GitHub (코드, 이슈, 릴리스)
|
|
191
|
+
3순위: WebSearch/SearXNG (웹 검색)
|
|
192
|
+
|
|
193
|
+
✓ 검색 종료 조건은?
|
|
194
|
+
- 목표 정보 획득
|
|
195
|
+
- 교차 검증 완료 (2+ 소스)
|
|
196
|
+
- 검색 깊이 도달
|
|
197
|
+
```
|
|
198
|
+
|
|
199
|
+
### 채널별 우선순위 전략
|
|
200
|
+
|
|
201
|
+
```typescript
|
|
202
|
+
// ✅ 올바른 흐름: 우선순위대로 검색
|
|
203
|
+
|
|
204
|
+
// Phase 1: Context7 (라이브러리 문서)
|
|
205
|
+
Context7_resolve_library_id({ libraryName: "react" })
|
|
206
|
+
Context7_query_docs({
|
|
207
|
+
libraryId: "react",
|
|
208
|
+
query: "Server Components"
|
|
209
|
+
})
|
|
210
|
+
// → 공식 문서로 기본 정보 확보
|
|
211
|
+
|
|
212
|
+
// Phase 2: GitHub (코드 예시, 이슈)
|
|
213
|
+
GitHub_search_repositories({
|
|
214
|
+
query: "react server components production",
|
|
215
|
+
sort: "stars"
|
|
216
|
+
})
|
|
217
|
+
// → 실제 구현 사례 확인
|
|
218
|
+
|
|
219
|
+
// Phase 3: WebSearch (최신 동향, 블로그)
|
|
220
|
+
WebSearch({
|
|
221
|
+
query: "React Server Components production experience 2026"
|
|
222
|
+
})
|
|
223
|
+
// → 실전 경험, 문제 해결 사례 확인
|
|
224
|
+
|
|
225
|
+
// 종료 조건 확인:
|
|
226
|
+
// ✓ 목표 정보 획득 (Server Components 개념, 구현, 경험)
|
|
227
|
+
// ✓ 교차 검증 완료 (공식 문서 + GitHub + 블로그)
|
|
228
|
+
// → 검색 종료
|
|
229
|
+
```
|
|
230
|
+
|
|
231
|
+
### 검색 종료 조건
|
|
232
|
+
|
|
233
|
+
| 조건 | 기준 | 처리 |
|
|
234
|
+
|------|------|------|
|
|
235
|
+
| **목표 정보 획득** | 필요한 정보 모두 확보 | 즉시 검색 종료 |
|
|
236
|
+
| **교차 검증 완료** | 핵심 주장 2+ 소스 확인 | 추가 검색 불필요 |
|
|
237
|
+
| **검색 깊이 도달** | Quick(3) / Medium(5) / Deep(10) | 종료 조건 재평가 |
|
|
238
|
+
| **중복 결과 반복** | 새로운 정보 없음 (3회 연속) | 검색 종료 |
|
|
239
|
+
|
|
240
|
+
---
|
|
241
|
+
|
|
242
|
+
## 날짜 인식 검색 (Date-Aware Search)
|
|
243
|
+
|
|
244
|
+
| 규칙 | 실행 |
|
|
245
|
+
|------|------|
|
|
246
|
+
| **연도 포함** | 모든 검색 쿼리에 현재 연도 포함 (예: "React best practices 2026") |
|
|
247
|
+
| **기간 필터** | SearXNG: `time_range=year`, WebSearch: 쿼리에 연도 추가 |
|
|
248
|
+
| **한국어 쿼리** | "2026년 기준", "최신" 키워드 포함 |
|
|
249
|
+
| **영어 쿼리** | "2025-2026", "latest", "current" 키워드 포함 |
|
|
250
|
+
|
|
251
|
+
```typescript
|
|
252
|
+
// ✅ 올바른 검색 쿼리
|
|
253
|
+
WebSearch({ query: "AI agent frameworks comparison 2026" })
|
|
254
|
+
WebSearch({ query: "SaaS 시장 트렌드 2026년" })
|
|
255
|
+
|
|
256
|
+
// ❌ 연도 없는 검색 (오래된 결과 반환 위험)
|
|
257
|
+
WebSearch({ query: "AI agent frameworks comparison" })
|
|
258
|
+
```
|
|
259
|
+
|
|
260
|
+
---
|
|
261
|
+
|
|
262
|
+
## 출처 신뢰도 등급
|
|
263
|
+
|
|
264
|
+
| 등급 | 소스 유형 | 예시 |
|
|
265
|
+
|------|----------|------|
|
|
266
|
+
| **S (최고)** | 공식 문서, 논문, 1차 데이터 | docs.prisma.io, arxiv.org, 정부 통계 |
|
|
267
|
+
| **A (높음)** | 공식 블로그, 주요 기술 미디어, 검증된 벤치마크 | engineering.fb.com, infoq.com, GitHub Releases |
|
|
268
|
+
| **B (보통)** | 개인 기술 블로그, 커뮤니티, Stack Overflow | dev.to, medium.com, reddit.com |
|
|
269
|
+
| **C (낮음)** | AI 생성 의심 콘텐츠, 오래된 문서, 미검증 주장 | 날짜 없는 블로그, SEO 스팸 |
|
|
270
|
+
|
|
271
|
+
### 신뢰도 검증 규칙
|
|
272
|
+
|
|
273
|
+
| 체크 | 기준 | 처리 |
|
|
274
|
+
|------|------|------|
|
|
275
|
+
| **날짜 확인** | 발행일 12개월 이내 | 초과 시 "⚠ 오래된 자료" 표기 |
|
|
276
|
+
| **저자 확인** | 실명/소속 확인 가능 | 익명 → 등급 1단계 하향 |
|
|
277
|
+
| **교차 검증** | 핵심 주장은 2개+ 소스 확인 | 단일 소스 주장 → "미검증" 표기 |
|
|
278
|
+
| **이해충돌** | 벤더 자사 제품 주장 | "벤더 출처" 명시, 독립 소스 교차 확인 |
|
|
279
|
+
|
|
280
|
+
---
|
|
281
|
+
|
|
282
|
+
## 검색 쿼리 패턴
|
|
283
|
+
|
|
284
|
+
### 다각도 쿼리 생성
|
|
285
|
+
|
|
286
|
+
```
|
|
287
|
+
기본: "[주제] [연도]"
|
|
288
|
+
심층: "[주제] benchmark performance [연도]"
|
|
289
|
+
비교: "[주제A] vs [주제B] comparison [연도]"
|
|
290
|
+
한국어: "[주제] 최신 동향 [연도]년"
|
|
291
|
+
실패 사례: "[주제] pitfalls mistakes lessons learned"
|
|
292
|
+
```
|
|
293
|
+
|
|
294
|
+
### 채널별 최적 쿼리
|
|
295
|
+
|
|
296
|
+
| 채널 | 쿼리 전략 |
|
|
297
|
+
|------|----------|
|
|
298
|
+
| **WebSearch** | 연도 포함, 영어+한국어 병렬 |
|
|
299
|
+
| **SearXNG** | `time_range=year` + 연도 키워드 |
|
|
300
|
+
| **Firecrawl** | 공식 문서 URL 직접 지정 |
|
|
301
|
+
| **GitHub** | `created:>YYYY-01-01` 필터, stars 정렬 |
|
|
302
|
+
|
|
303
|
+
---
|
|
304
|
+
|
|
305
|
+
## Smart Tier Fallback
|
|
306
|
+
|
|
307
|
+
```
|
|
308
|
+
Tier 1 (MCP, ToolSearch로 감지):
|
|
309
|
+
SearXNG MCP → 메타검색 (246+ 엔진, 시간 필터 지원)
|
|
310
|
+
Firecrawl MCP → 페이지→MD 변환, 사이트 구조 파악
|
|
311
|
+
GitHub MCP → 코드/리포/이슈/릴리스 검색
|
|
312
|
+
Context7 MCP → 라이브러리 문서 즉시 조회
|
|
313
|
+
|
|
314
|
+
Tier 2 (내장, 항상 가용):
|
|
315
|
+
WebSearch → 웹 검색 (연도 키워드 필수)
|
|
316
|
+
WebFetch → 페이지 직접 읽기
|
|
317
|
+
gh CLI → GitHub API (Bash via explore)
|
|
318
|
+
|
|
319
|
+
Tier 3: Playwright → SPA/JS 렌더링 필요 시 (crawler skill)
|
|
320
|
+
```
|
|
321
|
+
|
|
322
|
+
**MCP는 main agent가 직접 실행** (subagent는 MCP 도구 사용 불가)
|
|
323
|
+
|
|
324
|
+
| MCP 도구 | 용도 | 미설치 시 폴백 |
|
|
325
|
+
|----------|------|--------------|
|
|
326
|
+
| `firecrawl_map/scrape/crawl` | 사이트 구조/페이지 수집 | WebFetch (페이지별) |
|
|
327
|
+
| SearXNG `web_search` | 246+ 엔진 메타검색 | WebSearch (내장) |
|
|
328
|
+
| `search_repositories/code/issues` | GitHub 리포/코드/이슈 | `gh search` (Bash) |
|
|
329
|
+
| `resolve-library-id` + `query-docs` | 라이브러리 문서 조회 | WebFetch (직접) |
|
|
330
|
+
|
|
331
|
+
### MCP 감지 (Phase 0 공통)
|
|
332
|
+
|
|
333
|
+
```
|
|
334
|
+
ToolSearch("firecrawl") → Firecrawl 활성화
|
|
335
|
+
ToolSearch("searxng") → SearXNG 활성화
|
|
336
|
+
ToolSearch("github") → GitHub MCP 활성화
|
|
337
|
+
ToolSearch("context7") → Context7 활성화
|
|
338
|
+
```
|
|
339
|
+
|
|
340
|
+
---
|
|
341
|
+
|
|
342
|
+
## 수집 후 검증
|
|
343
|
+
|
|
344
|
+
| 단계 | 검증 |
|
|
345
|
+
|------|------|
|
|
346
|
+
| **날짜 체크** | 핵심 소스 발행일 확인, 12개월 초과 시 표기 |
|
|
347
|
+
| **등급 분류** | 각 소스에 S/A/B/C 등급 부여 |
|
|
348
|
+
| **교차 검증** | 핵심 주장 2개+ 소스 확인 |
|
|
349
|
+
| **편향 체크** | 벤더/광고 소스 식별, 독립 소스 보완 |
|
|
350
|
+
|
|
351
|
+
### researcher 에이전트 프롬프트 필수 포함
|
|
352
|
+
|
|
353
|
+
```
|
|
354
|
+
"검색 시 현재 연도(YYYY) 포함, 12개월 이내 자료 우선.
|
|
355
|
+
각 출처: URL + 발행일 + 소스 유형(공식/블로그/커뮤니티).
|
|
356
|
+
핵심 주장은 2개+ 소스로 교차 검증.
|
|
357
|
+
중복 검색 방지: 이전 쿼리 확인, 같은 쿼리 재실행 금지."
|
|
358
|
+
```
|
|
359
|
+
|
|
360
|
+
---
|
|
361
|
+
|
|
362
|
+
## 검색 효율성 모니터링
|
|
363
|
+
|
|
364
|
+
### 검색 통계 추적
|
|
365
|
+
|
|
366
|
+
**세션 내 검색 패턴 모니터링**
|
|
367
|
+
|
|
368
|
+
```markdown
|
|
369
|
+
# 검색 통계 (세션 내)
|
|
370
|
+
|
|
371
|
+
## 검색 쿼리 기록
|
|
372
|
+
- "React best practices 2026" (WebSearch, 2026-02-06 10:30)
|
|
373
|
+
- "React performance optimization 2026" (SearXNG, 2026-02-06 10:35)
|
|
374
|
+
- "Next.js 15 features" (Context7, 2026-02-06 10:40)
|
|
375
|
+
|
|
376
|
+
## 검색 효율성 지표
|
|
377
|
+
| 지표 | 목표 | 현재 | 상태 |
|
|
378
|
+
|------|------|------|------|
|
|
379
|
+
| **중복 검색률** | < 5% | 0% | ✅ 우수 |
|
|
380
|
+
| **검색 깊이** | Quick(3) | 3회 | ✅ 정상 |
|
|
381
|
+
| **교차 검증** | 2+ 소스 | 3개 | ✅ 완료 |
|
|
382
|
+
| **캐시 활용률** | > 30% | 0% | ⚠️ 신규 주제 |
|
|
383
|
+
|
|
384
|
+
## 경고
|
|
385
|
+
✅ 중복 검색 없음
|
|
386
|
+
✅ 검색 깊이 적절
|
|
387
|
+
```
|
|
388
|
+
|
|
389
|
+
### 검색 품질 체크리스트
|
|
390
|
+
|
|
391
|
+
```text
|
|
392
|
+
✓ 중복 검색 방지
|
|
393
|
+
- [ ] 이전 쿼리 확인
|
|
394
|
+
- [ ] 같은 쿼리 재실행 금지
|
|
395
|
+
- [ ] 유사 쿼리 병합
|
|
396
|
+
|
|
397
|
+
✓ 검색 범위 계획
|
|
398
|
+
- [ ] 정보 유형 결정
|
|
399
|
+
- [ ] 검색 깊이 설정
|
|
400
|
+
- [ ] 우선순위 채널 선택
|
|
401
|
+
|
|
402
|
+
✓ 결과 검증
|
|
403
|
+
- [ ] 날짜 확인 (12개월 이내)
|
|
404
|
+
- [ ] 등급 분류 (S/A/B/C)
|
|
405
|
+
- [ ] 교차 검증 (2+ 소스)
|
|
406
|
+
|
|
407
|
+
✓ 캐싱 전략
|
|
408
|
+
- [ ] 검색 결과 저장
|
|
409
|
+
- [ ] 요약 형식 작성
|
|
410
|
+
- [ ] 캐시 활용 확인
|
|
411
|
+
```
|
|
@@ -260,6 +260,51 @@ const handleSubmit = () => {
|
|
|
260
260
|
✅ 기존 문서 수정 우선
|
|
261
261
|
```
|
|
262
262
|
|
|
263
|
+
## 탐색 및 범위
|
|
264
|
+
|
|
265
|
+
### 금지 17: 탐색 루프
|
|
266
|
+
|
|
267
|
+
**같은 파일을 3회 이상 읽기 금지 (변경 후 확인 제외)**
|
|
268
|
+
|
|
269
|
+
```typescript
|
|
270
|
+
// ❌ 금지: 동일 파일 반복 읽기
|
|
271
|
+
Read("src/auth.ts") // 1회
|
|
272
|
+
// ... 다른 작업 ...
|
|
273
|
+
Read("src/auth.ts") // 2회
|
|
274
|
+
// ... 다른 작업 ...
|
|
275
|
+
Read("src/auth.ts") // 3회 → 금지!
|
|
276
|
+
|
|
277
|
+
// ✅ 올바름: 1회 읽기 → 결과 활용
|
|
278
|
+
Read("src/auth.ts") // 1회: 내용 파악 후 기억
|
|
279
|
+
Edit(...) // 수정
|
|
280
|
+
Read("src/auth.ts") // 2회: 변경 확인 (허용)
|
|
281
|
+
```
|
|
282
|
+
|
|
283
|
+
**탐색 루프 감지 시:**
|
|
284
|
+
1. 즉시 중단
|
|
285
|
+
2. 이미 읽은 내용 기반으로 다음 단계 진행
|
|
286
|
+
3. 추가 정보 필요 시 explore 에이전트에 위임
|
|
287
|
+
|
|
288
|
+
### 금지 18: 범위 축소
|
|
289
|
+
|
|
290
|
+
**"모든 X" / "전체 X" 지시에서 전체 대상 열거 없이 작업 시작 금지**
|
|
291
|
+
|
|
292
|
+
```typescript
|
|
293
|
+
// ❌ 금지: 열거 없이 일부만 처리
|
|
294
|
+
// 사용자: "모든 SKILL.md에서 TodoWrite를 TaskCreate로 변경"
|
|
295
|
+
Edit("skills/plan/SKILL.md", ...) // plan만 수정
|
|
296
|
+
Edit("skills/ralph/SKILL.md", ...) // ralph만 수정
|
|
297
|
+
// → 나머지 스킬 누락!
|
|
298
|
+
|
|
299
|
+
// ✅ 올바름: 전체 열거 → 전체 처리
|
|
300
|
+
Glob({ pattern: "**/SKILL.md" }) // 전체 대상 확인
|
|
301
|
+
// → 결과: 19개 파일
|
|
302
|
+
TaskCreate({ subject: "19개 SKILL.md TodoWrite→TaskCreate 교체", ... })
|
|
303
|
+
// → 19개 모두 처리
|
|
304
|
+
Glob({ pattern: "**/SKILL.md" }) // 재스캔 확인
|
|
305
|
+
Grep({ pattern: "TodoWrite", glob: "**/SKILL.md" }) // 누락 0개 확인
|
|
306
|
+
```
|
|
307
|
+
|
|
263
308
|
## 종합 체크리스트
|
|
264
309
|
|
|
265
310
|
작업 시작 전:
|
|
@@ -269,6 +314,7 @@ const handleSubmit = () => {
|
|
|
269
314
|
- [ ] 검증 단계 스킵하지 않기
|
|
270
315
|
- [ ] 병렬 실행 가능 여부 확인
|
|
271
316
|
- [ ] 에이전트 활용 계획
|
|
317
|
+
- [ ] "모든 X" 작업: 전체 열거 확인 (금지 18)
|
|
272
318
|
|
|
273
319
|
작업 중:
|
|
274
320
|
|
|
@@ -277,5 +323,6 @@ const handleSubmit = () => {
|
|
|
277
323
|
- [ ] Prisma 자동 실행 금지
|
|
278
324
|
- [ ] 수동 검증/인증 금지
|
|
279
325
|
- [ ] 문서 업데이트 누락 방지
|
|
326
|
+
- [ ] 탐색 루프 방지: 같은 파일 3회+ 읽기 금지 (금지 17)
|
|
280
327
|
|
|
281
328
|
**금지 패턴 회피 → 품질 향상 + 안정성 확보**
|
|
@@ -295,6 +295,124 @@ Task(subagent_type="planner", model="opus", ...)
|
|
|
295
295
|
Task(subagent_type="explore", ...)
|
|
296
296
|
```
|
|
297
297
|
|
|
298
|
+
## 탐색 효율
|
|
299
|
+
|
|
300
|
+
### 필수 19: 파일 인벤토리 생성
|
|
301
|
+
|
|
302
|
+
**복잡한 작업(5개+ 파일 수정) 시작 전 TaskCreate로 대상 파일 목록 등록**
|
|
303
|
+
|
|
304
|
+
```typescript
|
|
305
|
+
// ✅ 필수: 작업 대상 파일 인벤토리
|
|
306
|
+
TaskCreate({
|
|
307
|
+
subject: "auth 리팩토링 대상 파일",
|
|
308
|
+
description: "src/middleware/auth.ts, src/functions/auth.ts, src/routes/login/..."
|
|
309
|
+
})
|
|
310
|
+
|
|
311
|
+
// ❌ 금지: 인벤토리 없이 즉시 구현 시작
|
|
312
|
+
Edit({ file_path: "src/middleware/auth.ts", ... })
|
|
313
|
+
```
|
|
314
|
+
|
|
315
|
+
### 필수 20: 동일 파일 중복 읽기 금지
|
|
316
|
+
|
|
317
|
+
**같은 파일을 2회 이상 Read 금지 (변경 후 재확인은 허용)**
|
|
318
|
+
|
|
319
|
+
```typescript
|
|
320
|
+
// ✅ 허용: 수정 후 재확인
|
|
321
|
+
Read("src/auth.ts") // 1회: 내용 파악
|
|
322
|
+
Edit(...) // 수정
|
|
323
|
+
Read("src/auth.ts") // 2회: 변경 확인 (허용)
|
|
324
|
+
|
|
325
|
+
// ❌ 금지: 같은 내용 반복 읽기
|
|
326
|
+
Read("src/auth.ts") // 1회
|
|
327
|
+
// ... 다른 작업 ...
|
|
328
|
+
Read("src/auth.ts") // 2회: 변경 없이 재읽기
|
|
329
|
+
```
|
|
330
|
+
|
|
331
|
+
### 필수 21: Explore 에이전트 thoroughness 명시
|
|
332
|
+
|
|
333
|
+
**Explore 에이전트 호출 시 탐색 깊이 반드시 지정**
|
|
334
|
+
|
|
335
|
+
```typescript
|
|
336
|
+
// ✅ 필수: thoroughness 명시
|
|
337
|
+
Task(subagent_type="explore", model="haiku",
|
|
338
|
+
prompt="[quick] src/routes/ 디렉토리 파일 목록 확인")
|
|
339
|
+
Task(subagent_type="explore", model="haiku",
|
|
340
|
+
prompt="[very thorough] 인증 관련 모든 파일 및 의존성 완전 분석")
|
|
341
|
+
|
|
342
|
+
// ❌ 금지: thoroughness 누락
|
|
343
|
+
Task(subagent_type="explore", model="haiku",
|
|
344
|
+
prompt="인증 관련 파일 분석")
|
|
345
|
+
```
|
|
346
|
+
|
|
347
|
+
### 필수 22: 탐색 결과 즉시 요약
|
|
348
|
+
|
|
349
|
+
**탐색/분석 결과는 즉시 요약 후 다음 단계 진행. 요약 없이 추가 탐색 금지.**
|
|
350
|
+
|
|
351
|
+
```typescript
|
|
352
|
+
// ✅ 올바른 흐름
|
|
353
|
+
Task(subagent_type="explore", ...) // 탐색
|
|
354
|
+
// → 결과 요약: "인증은 3개 파일, 미들웨어 1개, 라우트 2개"
|
|
355
|
+
// → 다음 단계: 구현 시작
|
|
356
|
+
|
|
357
|
+
// ❌ 금지: 요약 없이 추가 탐색
|
|
358
|
+
Task(subagent_type="explore", ...) // 탐색 1
|
|
359
|
+
Task(subagent_type="explore", ...) // 요약 없이 탐색 2
|
|
360
|
+
Task(subagent_type="explore", ...) // 요약 없이 탐색 3
|
|
361
|
+
```
|
|
362
|
+
|
|
363
|
+
## 범위 완전성
|
|
364
|
+
|
|
365
|
+
### 필수 23: 전체 대상 열거
|
|
366
|
+
|
|
367
|
+
**"모든 X" / "전체 X" 지시 시 Glob/Grep으로 전체 대상 목록 먼저 생성**
|
|
368
|
+
|
|
369
|
+
```typescript
|
|
370
|
+
// ✅ 필수: 전체 대상 열거 후 작업
|
|
371
|
+
Glob({ pattern: "**/*.prisma" }) // 전체 대상 확인
|
|
372
|
+
// → 결과: 5개 파일 발견
|
|
373
|
+
TaskCreate({ subject: "prisma 파일 5개 수정", ... })
|
|
374
|
+
|
|
375
|
+
// ❌ 금지: 열거 없이 작업 시작
|
|
376
|
+
Edit({ file_path: "prisma/schema/user.prisma", ... }) // 일부만 수정
|
|
377
|
+
```
|
|
378
|
+
|
|
379
|
+
### 필수 24: 열거 목록 TaskCreate 등록
|
|
380
|
+
|
|
381
|
+
**전체 대상 열거 후 TaskCreate에 등록하고 하나씩 완료 체크**
|
|
382
|
+
|
|
383
|
+
```typescript
|
|
384
|
+
// ✅ 필수: 목록화 후 순차 처리
|
|
385
|
+
TaskCreate({ subject: "user.prisma 수정", ... })
|
|
386
|
+
TaskCreate({ subject: "post.prisma 수정", ... })
|
|
387
|
+
TaskCreate({ subject: "comment.prisma 수정", ... })
|
|
388
|
+
// → 각각 완료 시 TaskUpdate로 체크
|
|
389
|
+
|
|
390
|
+
// ❌ 금지: 목록화 없이 기억에 의존
|
|
391
|
+
```
|
|
392
|
+
|
|
393
|
+
### 필수 25: 완료 후 재스캔
|
|
394
|
+
|
|
395
|
+
**"모든 X" 작업 완료 후 Glob/Grep 재스캔 1회 실행 (놓친 항목 확인)**
|
|
396
|
+
|
|
397
|
+
```typescript
|
|
398
|
+
// ✅ 필수: 작업 완료 후 재스캔
|
|
399
|
+
// ... 모든 파일 수정 완료 ...
|
|
400
|
+
Glob({ pattern: "**/*.prisma" }) // 재스캔
|
|
401
|
+
Grep({ pattern: "TodoWrite", ... }) // 누락 확인
|
|
402
|
+
// → "놓친 항목 0개" 확인 후 완료 선언
|
|
403
|
+
|
|
404
|
+
// ❌ 금지: 재스캔 없이 완료 선언
|
|
405
|
+
```
|
|
406
|
+
|
|
407
|
+
### 필수 26: 부분 완료 시 명시적 보고
|
|
408
|
+
|
|
409
|
+
**전체 작업 중 일부만 완료된 경우 남은 작업을 명시적으로 보고**
|
|
410
|
+
|
|
411
|
+
```markdown
|
|
412
|
+
✅ "5개 중 3개 완료. 남은 항목: comment.prisma, like.prisma"
|
|
413
|
+
❌ (암묵적 종료 — 남은 작업 언급 없이 작업 끝냄)
|
|
414
|
+
```
|
|
415
|
+
|
|
298
416
|
## 종합 체크리스트
|
|
299
417
|
|
|
300
418
|
작업 시작 전:
|
|
@@ -302,6 +420,8 @@ Task(subagent_type="explore", ...)
|
|
|
302
420
|
- [ ] Sequential Thinking 실행 (MEDIUM 이상)
|
|
303
421
|
- [ ] 파일 읽기 계획 (병렬 여부)
|
|
304
422
|
- [ ] 에이전트 활용 계획
|
|
423
|
+
- [ ] 복잡한 작업: 파일 인벤토리 생성 (필수 19)
|
|
424
|
+
- [ ] "모든 X" 작업: 전체 대상 열거 (필수 23)
|
|
305
425
|
|
|
306
426
|
코드 작성 시:
|
|
307
427
|
|