Awesome-omni-skill search-skill
인터넷 검색을 통해 데이터를 수집하고 JSON 파일로 정리하는 스킬. 이미지 URL 유효성 검증 및 크로스체크 기능을 제공합니다. 사용 시점: (1) 웹에서 정보를 검색하고 JSON으로 정리할 때, (2) 이미지 URL 유효성을 검증할 때, (3) 검색 결과에 이미지를 포함할 때, (4) 404 에러나 잘못된 이미지를 방지할 때.
install
source · Clone the upstream repo
git clone https://github.com/diegosouzapw/awesome-omni-skill
Claude Code · Install into ~/.claude/skills/
T=$(mktemp -d) && git clone --depth=1 https://github.com/diegosouzapw/awesome-omni-skill "$T" && mkdir -p ~/.claude/skills && cp -r "$T/skills/development/search-skill" ~/.claude/skills/diegosouzapw-awesome-omni-skill-search-skill && rm -rf "$T"
manifest:
skills/development/search-skill/SKILL.mdsource content
인터넷 검색 및 JSON 정리 스킬
웹에서 정보를 검색하고, 이미지 URL을 검증하며, 결과를 JSON 파일로 정리합니다.
⛔⛔⛔ CRITICAL: UNSPLASH 절대 사용 금지 ⛔⛔⛔
╔══════════════════════════════════════════════════════════════════════════════╗ ║ ║ ║ 🚨🚨🚨 UNSPLASH.COM 이미지 사용 절대 금지 🚨🚨🚨 ║ ║ ║ ║ 이 규칙을 위반하면 다음과 같은 치명적인 문제가 발생합니다: ║ ║ ║ ║ ❌ 이미지가 전혀 표시되지 않음 (핫링크 완전 차단) ║ ║ ❌ 완전히 다른 엉뚱한 이미지가 표시됨 (랜덤 리다이렉트) ║ ║ ❌ 사용자에게 거짓 정보 전달 → 서비스 신뢰도 완전 붕괴 ║ ║ ❌ 법적 문제 발생 가능 (잘못된 정보 제공) ║ ║ ║ ║ 🔴 이 규칙은 절대로, 어떤 상황에서도, 예외 없이 준수해야 합니다! 🔴 ║ ║ ║ ╚══════════════════════════════════════════════════════════════════════════════╝
🚫 절대 금지 URL 패턴 - 발견 즉시 삭제/교체 필수
| 금지 URL 패턴 | 문제점 | 즉시 조치 |
|---|---|---|
| 핫링크 차단, 이미지 미표시 | 즉시 삭제 |
| 404 에러 다발 | 즉시 삭제 |
| 랜덤 이미지로 리다이렉트, 콘텐츠 불일치 | 즉시 삭제 |
| 유료 이미지, 접근 불가 | 즉시 삭제 |
⚠️ Unsplash 사용 시 발생하는 실제 피해
- 사용자가 "마리나 베이 샌즈" 정보를 보는데 전혀 다른 사진이 표시됨
- 앱/서비스에서 이미지가 아예 로드되지 않음
- 사용자 신뢰 완전 상실 - "이 서비스는 거짓 정보를 제공한다"
- 개발자가 직접 수정해야 하는 추가 작업 발생
✅ 반드시 사용해야 하는 이미지 소스 (우선순위 순)
1. Wikimedia Commons (최우선 권장) ⭐⭐⭐
- URL 패턴:
https://upload.wikimedia.org/wikipedia/commons/... - 장점:
- 안정적이고 영구적인 URL
- 고품질 이미지
- 상업적 사용 가능
- 핫링크 허용
- 이미지가 콘텐츠와 정확히 일치
2. Wikipedia API
# 이미지 URL 직접 획득 - 가장 신뢰할 수 있는 방법 TITLE="Marina_Bay_Sands" curl -s "https://en.wikipedia.org/w/api.php?action=query&titles=${TITLE}&prop=pageimages&format=json&pithumbsize=1280" | jq -r '.query.pages | to_entries[0].value.thumbnail.source'
3. 공식 관광청/정부 사이트 이미지
- 예: Visit Singapore, 공식 명소 웹사이트
📋 이미지 검증 필수 체크리스트 (모든 항목 통과 필수!)
검색된 모든 이미지에 대해 반드시 확인:
- 1단계: URL에
문자열이 포함되어 있지 않은가? → 포함 시 즉시 삭제unsplash - 2단계:
명령으로 HTTP 200 응답 확인curl -I - 3단계: Content-Type이
인가?image/* - 4단계: 실제 이미지가 검색한 콘텐츠와 일치하는가?
# 이미지 URL 검증 명령어 curl -s -I -m 10 "IMAGE_URL" 2>/dev/null | grep -E "^HTTP|content-type"
⚠️ Unsplash URL을 발견하면 즉시 Wikipedia/Wikimedia로 교체하세요! ⚠️ 코드에 Unsplash URL이 하나라도 있으면 전체 작업 실패로 간주합니다!
사용자 옵션 (필수 확인)
⚠️ 검색 시작 전 반드시 사용자에게 다음 파라미터를 확인하세요:
| 파라미터 | 설명 | 옵션 | 기본값 |
|---|---|---|---|
| 검색할 내용 상세 설명 | (사용자 입력) | 필수 |
| 이미지 포함 여부 | / | |
| 설명 형식 | / | |
| 요약 문장 수 | 1~20 | |
사용자에게 질문할 내용
1. 무엇을 검색할까요? (상세하게 설명해주세요) 2. 이미지를 포함할까요? (예/아니오) 3. 설명 형식은 어떻게 할까요? (마크다운/일반 텍스트)
사용 예시
사용자: "싱가포르 여행 명소 검색해줘" Claude: "다음 정보를 확인해주세요: 1. 검색 내용: 싱가포르 여행 명소 (맞나요?) 2. 이미지 포함: 예/아니오? 3. 설명 형식: 마크다운/일반 텍스트?"
description_format에 따른 출력
| 형식 | 예시 |
|---|---|
| |
| |
핵심 워크플로우
검색 → 수집 → 이미지 검증 → JSON 저장 → 크로스체크
Step 1: 웹 검색
WebSearch 쿼리 예시: - "{주제} wikimedia commons" - "{주제} wikipedia image" - "{주제} pixabay free image"
Step 2: 데이터 수집
WebFetch로 URL 콘텐츠 수집 후 필요한 정보 추출.
Step 3: 이미지 URL 검증
스크립트 사용 (권장):
# 단일 이미지 검증 bash scripts/verify_image.sh "IMAGE_URL" # 여러 이미지 일괄 검증 bash scripts/verify_image_batch.sh urls.txt
직접 curl 사용:
# HTTP 상태 + Content-Type 확인 curl -s -I -m 10 "IMAGE_URL" 2>/dev/null | grep -E "^HTTP|content-type"
유효한 응답:
- HTTP 200 +
content-type: image/jpeg|png|webp|gif
무효한 응답 (교체 필요):
- HTTP 404/403
content-type: text/html- 타임아웃
Step 4: JSON 파일 저장
{ "meta": { "query": "검색어", "date": "2025-01-27", "total_results": 10, "params": { "include_image": true, "description_format": "markdown", "summary_sentences": 2 } }, "summary": "전체 검색 결과 요약", "results": [ { "title": "제목", "emoji": "🏛️", "url": "https://...", "image": { "url": "https://upload.wikimedia.org/...", "verified": true, "http_code": "200", "content_type": "image/jpeg" }, "description": "🌟 **주요 특징**: 마크다운 + 이모지 형식으로 작성.", "details": { "location": "123 Main Street, Singapore", "opening_hours": "09:00", "closing_hours": "22:00", "price_range": "$50-$100", "reservation": "required" } } ] }
필드 설명:
| 필드 | 설명 |
|---|---|
| 항목을 대표하는 이모지 (UI 디자인용) |
| 마크다운 + 이모지 형식으로 작성 |
| 추가 속성 객체 (유동적) |
details 속성 예시 (콘텐츠에 따라 선택):
- 기본:
,location
,contactwebsite - 영업:
,opening_hours
,closing_hoursholidays - 가격:
,price_rangeadmission_fee - 예약:
,reservation
,booking_urldelivery - 제한:
,dress_code
,age_limitaccessibility - 평점:
,ratingreview_count
상세 속성 목록은 output-formats.md 참조
Step 5: 이미지 크로스체크 (필수!)
⚠️ JSON 저장 후 반드시 모든 이미지 URL을 재검증합니다.
# JSON에서 이미지 URL 추출 후 일괄 검증 jq -r '.results[].image.url' output.json | bash scripts/verify_image_batch.sh -
크로스체크 기준:
| 상태 | 조치 |
|---|---|
| 모든 이미지 valid: true | 완료 |
| 일부 valid: false | 해당 이미지 재검색 및 교체 |
| 검증 불가 | Wikipedia API로 대체 이미지 검색 |
Wikipedia API로 이미지 검색
검증 실패 시 Wikipedia API로 정확한 이미지 획득:
# 제목으로 이미지 검색 TITLE="Marina_Bay_Sands" curl -s "https://en.wikipedia.org/w/api.php?action=query&titles=${TITLE}&prop=pageimages&format=json&pithumbsize=1280" | jq -r '.query.pages | to_entries[0].value.thumbnail.source'
검색 제목 예시:
| 한글명 | Wikipedia 제목 |
|---|---|
| 마리나 베이 샌즈 | |
| 머라이언 파크 | |
| 가든스 바이 더 베이 | |
사용 도구
| 도구 | 용도 |
|---|---|
| 인터넷에서 정보 검색 |
| URL에서 콘텐츠 수집 |
| 이미지 URL 검증 |
| 단일 이미지 검증 |
| 일괄 이미지 검증 |
참조 문서
상세 정보는 다음 문서를 참조하세요:
- 이미지 소스 가이드: 권장 이미지 소스, URL 패턴, Wikipedia API 상세
- 출력 형식 템플릿: JSON/Markdown 출력 템플릿, 보고서 형식
- Bash 명령어 참조: curl, jq, grep 등 자주 사용하는 명령어
성공 기준
- ✅ 모든 이미지 URL이 HTTP 200 반환
- ✅ Content-Type이
image/* - ✅ 이미지가 콘텐츠와 관련성 있음
- ✅ JSON 파일이 올바른 형식
- ✅ 크로스체크 완료