사실, 저는 첫 번째 것도 좋아해요. 둘 다 AGENTS dot md에 포함시키려고 합니다. --- ### Morph Warp Grep — AI 기반 코드 검색 **탐색적인 "X는 어떻게 작동하나요?" 질문에는 `mcp__morph-mcp__warp_grep`을 사용하세요.** AI 검색 에이전트는 자동으로 쿼리를 여러 검색 패턴으로 확장하고, 코드베이스를 grep하고, 관련 파일을 읽고, 전체 컨텍스트가 포함된 정확한 줄 범위를 반환합니다. 이 모든 작업이 한 번의 호출로 완료됩니다. **대상 검색에는 `ripgrep`(Grep 도구 사용)을 사용하세요.** 찾고 있는 것이 무엇인지 정확히 알고 있을 때(특정 함수 이름, 오류 메시지 또는 구성 키) ripgrep을 사용하면 더 빠르고 직접적입니다. **구조적 코드 패턴에는 `ast-grep`을 사용하세요.** 주석/문자열을 무시하면서 AST 노드를 일치시키거나 다시 작성해야 하거나 코드베이스 전체 규칙을 적용해야 하는 경우. **언제 무엇을 사용해야 하나요** | 시나리오 | 도구 | 이유 | |----------|------|-----| | "인증은 어떻게 구현되나요?" | `warp_grep` | 탐색적; 어디서부터 시작해야 할지 모르겠어요 | | "L3 Guardian 항소 시스템은 어디에 있나요?" | `warp_grep` | 아키텍처를 이해하고 여러 관련 파일을 찾아야 합니다. | | `useQuery(`의 모든 사용법 찾기" | `ripgrep` | 타겟 리터럴 검색 | | "`console.log`로 파일 찾기" | `ripgrep` | 간단한 패턴, 알려진 대상 | | "`getUserById` → `fetchUser` 이름 변경" | `ast-grep` | 구조적 리팩터링, 주석/문자열 사용 금지 | | "모든 `var`를 `let`으로 바꾸기" | `ast-grep` | 코드베이스 전체에 걸친 Codemod | **warp_grep 장점** * **컨텍스트 오염 감소**: 전체 파일이 아닌 관련 줄 범위만 반환합니다. * **지능형 확장**: "항소 시스템"을 `항소`, `항소들`, `보호자`, `L3` 등으로 검색하도록 전환합니다. * **한 번에 해결**: 정확한 위치에서 가장 관련성 높은 3~5개 파일을 찾습니다. 수동 grep→read 사이클과 대조됩니다. * **자연어**: "어떻게", "어디서", "무엇"과 관련된 질문에 적합합니다. **warp_grep 사용법** ``` mcp__morph-mcp__warp_grep( repoPath: "/data/projects/communitai", 질문: "L3 Guardian 항소 시스템은 어떻게 구현되나요?" ) ``` 파일 경로, 줄 범위, 추출된 코드 조각을 포함한 구조화된 결과를 반환합니다. **경험 법칙** * **어디서 찾아야 할지 모르겠어요** → `warp_grep` (AI가 찾도록 하세요) * **패턴을 알아보세요** → `ripgrep` (가장 빠름) * **AST 정밀도 필요** → `ast-grep` (재작성 시 가장 안전함) **안티패턴** * ❌ `warp_grep`을 사용하여 이미 알고 있는 특정 함수 이름을 찾는 경우 → `ripgrep`을 사용하세요 * ❌ `ripgrep`을 사용하여 "X가 어떻게 작동하는지" 이해 → 수동 파일 읽기로 시간 낭비 * ❌ codemod에 `ripgrep` 사용 → 주석/문자열 누락, 부수적 편집 위험
스레드를 불러오는 중
깔끔한 읽기 화면을 위해 X에서 원본 트윗을 가져오고 있어요.
보통 몇 초면 완료되니 잠시만 기다려 주세요.