Skip to content
Back to skills

Search First

ASecurity

코드를 새로 짜기 전에 기존 솔루션(레포 내부 → 사내 미러 → 패키지 레지스트리 → MCP/스킬 → GitHub)을 먼저 검색하는 워크플로. 새 기능/유틸/의존성 추가 직전, "X 기능 넣어줘" 요청에 코드부터 쓰려는 순간 발동. (원본: [affaan-m/ECC](https://github.com/affaan-m/ECC) 의 search-first 스킬, MIT — 이식·번안)

  • 35 stars
  • 0 votes
  • 0 copies
  • 1 view
  • Added September 5, 2026
ai-agentsbashgitapi

Works with

  • api
  • mcp

Security analysis

A100/100

Scanned October 4, 2026

npx -y skills add LeeYudok/agents-scaffold --skill search-first --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of Search First?

Add the live security badge to your README. It updates with every re-scan.

Security grade badge for Search First
[![Security: A — Skills Directory](https://www.skillsdirectory.com/api/skills/leeyudok-search-first/badge)](https://www.skillsdirectory.com/skills/leeyudok-search-first)

More formats (shields.io, HTML) on the badges page. Keep it an A: scan every change in CI with Pro.

Download with Pro
SKILL.md
---
name: search-first
description: '코드를 새로 짜기 전에 기존 솔루션(레포 내부 → 사내 미러 → 패키지 레지스트리 → MCP/스킬 → GitHub)을 먼저 검색하는 워크플로. 새 기능/유틸/의존성 추가 직전, "X 기능 넣어줘" 요청에 코드부터 쓰려는 순간 발동. (원본: [affaan-m/ECC](https://github.com/affaan-m/ECC) 의 search-first 스킬, MIT — 이식·번안)'
allowed-tools: Bash, Read, Grep, Glob, WebSearch, WebFetch
---

# search-first — 짜기 전에 찾는다

바퀴 재발명 방지 워크플로. 커스텀 코드는 **검색이 빈손일 때의 마지막 선택지**다.

## 발동 시점

- 기존 솔루션이 있을 법한 새 기능/유틸/헬퍼를 만들려는 순간
- 의존성·통합(외부 API, 파서, 클라이언트 등) 추가 직전
- "X 기능 추가해줘" 요청을 받고 바로 코드를 쓰려는 순간

## 검색 순서 (안쪽 → 바깥쪽)

| 순서 | 채널 | 방법 |
|---|---|---|
| 1 | **이 레포 안** | `rg` 로 관련 모듈/테스트 스윕 — 이미 있는데 못 본 것일 수 있음 |
| 2 | **사내 미러** | `<your-git-host>/mirrors/` 그룹 먼저 (OSS agents/skills/아이콘 등 미러). 외부 원본 직접 참조 대신 미러로 들여와서 사용. 미러 그룹이 없으면 건너뜀 |
| 3 | **패키지 레지스트리** | npm / PyPI / crates.io 등 프로젝트 스택에 맞는 곳 |
| 4 | **MCP / 스킬** | 이미 연결된 MCP 서버가 그 기능을 제공하는지, `.claude/skills/` 에 같은 스킬이 있는지 |
| 5 | **GitHub / 웹** | 유지보수되는 OSS 구현체·템플릿 검색. 채택 시 mirrors 로 포크해서 사용 |

채널이 사용 불가(오프라인, 인증 없음 등)면 **조용히 건너뛰지 말고** 어느 채널을 못 봤는지 명시한다.

## 평가 → 결정

후보는 기능 적합도 / 유지보수 상태(최근 커밋·이슈 응답) / 라이선스 / 의존성 무게로 평가.

| 신호 | 결정 |
|---|---|
| 정확히 맞음 + 관리 잘됨 + MIT/Apache | **채택** — 설치해서 그대로 사용 |
| 부분 일치 + 좋은 기반 | **확장** — 설치 + 얇은 래퍼 |
| 약한 후보 여러 개 | **조합** — 작은 패키지 2~3개 결합 |
| 쓸 만한 게 없음 | **직접 구현** — 단, 검색에서 본 설계를 참고해서 |

## 비trivial 기능이면 서브에이전트로

```
Agent(subagent_type="general-purpose", model="sonnet", prompt="
  다음 기능의 기존 솔루션 조사: [설명]
  언어/프레임워크: [스택], 제약: [있으면]
  검색: 레포 내부 → 사내 미러(<your-git-host>/mirrors) → npm/PyPI → MCP → GitHub
  리턴: 후보 비교표 + 채택/확장/직접구현 권고
")
```

## 안티패턴

- **코드 직행**: 검색 없이 유틸부터 작성
- **미러 무시**: GitHub 원본을 바로 참조 (내부 미러로 들여온 뒤 사용이 원칙)
- **조용한 스킵**: 검색 채널이 죽어 있었는데 "없음"으로 보고
- **과도한 래핑**: 라이브러리를 두껍게 감싸 장점을 죽임
- **의존성 비대**: 작은 기능 하나에 거대 패키지 도입

Attribution

Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.

Comments

Loading comments…

Newsletter

Get the weekly list of safe new skills, and the ones we pulled.