{
  "skill_name": "seo-audit",
  "evals": [
    {
      "id": 1,
      "prompt": "InsuWiki 전체 사이트 SEO 감사를 진행해주세요. 현재 월 유기 방문 5,000명 수준이며, 보험 약관, 보험 비교, 보험금 청구 관련 키워드를 주로 타겟합니다. URL: https://insuwiki.com",
      "expected_output": "product-marketing-context.md를 먼저 확인해야 합니다. 우선순위 키워드, Search Console 접근 권한, 최근 변경 사항, 경쟁사에 대한 명확화 질문을 해야 합니다. 감사 우선순위(크롤러빌리티 → 기술 → 온페이지 → 콘텐츠 품질 → 권위)를 따라야 합니다. robots.txt, XML 사이트맵, 사이트 구조를 확인하고, 타이틀 태그, 메타 설명, 헤딩 구조, 콘텐츠 최적화를 평가해야 합니다. 보험/금융 정보 사이트 특성상 E-E-A-T 신호 강화 필요성을 언급해야 합니다. schema markup은 web_fetch만으로는 판단하지 않고 감지 한계를 명시해야 합니다. 감사 보고서는 요약 → 기술 SEO → 온페이지 → 콘텐츠 → 우선순위 액션 플랜 구조를 따라야 합니다.",
      "assertions": [
        "Checks product-marketing-context.md before auditing if it exists",
        "Asks clarifying questions about priority keywords, Search Console access, and recent changes",
        "Follows audit priority order: crawlability first, technical, on-page, content, authority",
        "Checks robots.txt and XML sitemap",
        "Evaluates title tags, meta descriptions, and heading structure",
        "Does not claim no schema found based on web_fetch alone",
        "Notes schema markup detection limitation and recommends browser tool or Rich Results Test",
        "Addresses E-E-A-T requirements for insurance and financial information",
        "Output has Executive Summary with top 3-5 issues",
        "Each finding includes Issue, Impact, Evidence, Fix, and Priority"
      ],
      "files": []
    },
    {
      "id": 2,
      "prompt": "InsuWiki 사이트의 유기 트래픽이 지난 달 대비 35% 급락했습니다. Google 알고리즘 업데이트 직후 발생한 것 같습니다. 원인을 진단해주세요.",
      "expected_output": "트래픽 급락을 긴급 진단 케이스로 처리해야 합니다. 알고리즘 업데이트 시점 확인 및 어떤 업데이트인지 파악을 제안해야 합니다. 보험/금융 정보 사이트의 경우 Google의 YMYL(Your Money Your Life) 기준이 적용되므로 E-E-A-T 신호 결핍이 주요 원인일 수 있음을 지적해야 합니다. Search Console Coverage 리포트, Core Web Vitals 리포트, 페이지별 트래픽 하락 패턴을 분석하는 방법을 안내해야 합니다. 순위 하락한 페이지 유형을 파악하고 우선순위 복구 계획을 제공해야 합니다.",
      "assertions": [
        "Treats traffic drop as urgent diagnostic requiring immediate investigation",
        "Asks about the timing of drop relative to known Google algorithm updates",
        "Identifies YMYL classification for insurance financial content and E-E-A-T implications",
        "Recommends checking Search Console Coverage report and Core Web Vitals report",
        "Investigates page-level traffic patterns to identify which content was impacted",
        "Checks for E-E-A-T signals: author credentials, content accuracy, trust indicators",
        "Provides prioritized recovery plan starting with critical E-E-A-T fixes",
        "Mentions expected recovery timeline (weeks to months depending on cause)"
      ],
      "files": []
    },
    {
      "id": 3,
      "prompt": "InsuWiki 모바일 페이지가 느립니다. PageSpeed에서 모바일 점수가 38점입니다. Core Web Vitals 개선 방법을 알려주세요.",
      "expected_output": "Core Web Vitals 기준값(LCP 2.5초 미만, INP 200ms 미만, CLS 0.1 미만)을 설명하고 38점이 매우 낮음을 명시해야 합니다. 각 지표별 구체적인 개선 방법을 제시해야 합니다. 속도 저하 요인(서버 응답 시간 TTFB, 이미지 최적화, JS 실행, CSS 전달, 캐싱, CDN, 폰트 로딩)을 체계적으로 진단해야 합니다. PageSpeed Insights, WebPageTest, Chrome DevTools, Search Console CWV 리포트 등 도구를 추천해야 합니다. 페이지 속도가 SEO 순위 요소임을 확인하고 우선순위 수정 사항을 제공해야 합니다.",
      "assertions": [
        "Explains Core Web Vitals thresholds (LCP under 2.5s, INP under 200ms, CLS under 0.1)",
        "Identifies mobile score of 38 as critically low requiring immediate action",
        "Investigates specific speed factors systematically (TTFB, images, JS, CSS, caching, CDN)",
        "Recommends PageSpeed Insights, WebPageTest, and Search Console CWV report",
        "Confirms page speed impacts SEO rankings",
        "Provides prioritized list of speed fixes by impact",
        "Addresses mobile-specific performance considerations (mobile-first indexing)",
        "Checks product-marketing-context.md for site technology stack context if available"
      ],
      "files": []
    },
    {
      "id": 4,
      "prompt": "InsuWiki 크롤링 및 인덱싱 문제를 진단해주세요. Search Console에서 '색인이 생성되지 않은 페이지'가 80개 이상이고, 일부 중요 페이지가 Google에서 보이지 않습니다.",
      "expected_output": "크롤러빌리티와 인덱세이션을 최우선 감사 항목으로 처리해야 합니다. robots.txt에서 중요 페이지 차단 여부, 중요 페이지의 noindex 태그 존재 여부, 잘못된 방향의 canonical 태그, 리다이렉트 체인/루프, soft 404를 확인해야 합니다. XML 사이트맵이 올바르게 구성되어 있는지, Search Console에 제출되었는지 확인해야 합니다. '색인이 생성되지 않은' 페이지 유형별로 원인을 분류해야 합니다. 각 문제에 대한 구체적인 수정 방법을 우선순위와 함께 제공해야 합니다.",
      "assertions": [
        "Prioritizes crawlability and indexation as first audit category per framework",
        "Checks robots.txt for unintentional blocks on important pages",
        "Checks for noindex tags on important pages that should be indexed",
        "Checks canonical tags for incorrect pointing direction",
        "Checks for redirect chains and loops",
        "Checks for soft 404 issues",
        "Verifies XML sitemap submission and correct formatting in Search Console",
        "Categorizes non-indexed pages by type and provides type-specific fixes"
      ],
      "files": []
    },
    {
      "id": 5,
      "prompt": "InsuWiki 블로그 포스트들의 온페이지 SEO를 점검해주세요. 주 2회 발행하지만 6개월째 트래픽 성장이 없습니다. 키워드 캐니벌리제이션 문제가 있는 것 같습니다.",
      "expected_output": "콘텐츠/블로그 사이트 감사 프레임워크를 적용해야 합니다. 키워드 캐니벌리제이션을 진단하는 구체적인 방법(site: 검색, Search Console 성과 데이터 분석)을 설명해야 합니다. 각 포스트의 타이틀 태그, H1, URL이 타겟 키워드와 정렬되어 있는지 확인해야 합니다. 오래된 콘텐츠 업데이트 필요성, 토픽 클러스터링 부재, 내부 링크 품질을 점검해야 합니다. 저자 페이지와 E-E-A-T 신호를 보험 정보 콘텐츠 관점에서 평가해야 합니다. 우선순위 액션 플랜으로 결론을 맺어야 합니다.",
      "assertions": [
        "Applies Content/Blog Sites framework from seo-audit skill",
        "Provides specific method to diagnose keyword cannibalization (site search, Search Console)",
        "Checks title tag, H1, URL alignment with target keyword for each post",
        "Identifies outdated content needing refresh",
        "Checks for topical clustering and internal linking quality",
        "Evaluates author pages and E-E-A-T signals for insurance content",
        "Assesses whether posts answer search intent for their target queries",
        "Provides prioritized action plan distinguishing quick wins from longer-term improvements"
      ],
      "files": []
    },
    {
      "id": 6,
      "prompt": "InsuRo가 서울 강남, 강서, 송파 3개 지역에서 '보험 설계사 상담' 키워드로 노출을 늘리고 싶습니다. 로컬 SEO 전략을 진단해주세요.",
      "expected_output": "로컬 비즈니스 감사 프레임워크를 적용해야 합니다. 3개 지역별 NAP(상호명, 주소, 전화번호) 일관성을 확인해야 합니다. 로컬 스키마 마크업 존재 여부를 점검하되 web_fetch 감지 한계를 명시하고 Rich Results Test 사용을 권고해야 합니다. Google 비즈니스 프로필 최적화 방법을 안내해야 합니다. 지역별 개별 랜딩 페이지(강남 보험 상담, 강서 보험 상담, 송파 보험 상담)의 필요성과 각 페이지가 고유한 콘텐츠를 가져야 함을 설명해야 합니다. 지역 인용 일관성과 지역 특화 콘텐츠 전략도 포함해야 합니다.",
      "assertions": [
        "Applies Local Business framework from seo-audit skill",
        "Checks NAP consistency across all 3 locations",
        "Addresses local schema markup with web_fetch detection limitation caveat",
        "Recommends Google Business Profile optimization for each location",
        "Recommends separate location pages for 강남, 강서, 송파 with unique content",
        "Recommends local citation consistency strategy",
        "Recommends local content targeting 각 지역 + 보험 설계사 상담 keywords",
        "Checks standard technical SEO factors in addition to local-specific items"
      ],
      "files": []
    },
    {
      "id": 7,
      "prompt": "InsuWiki 보험 비교 페이지의 Core Web Vitals가 Search Console에서 '불량'으로 표시됩니다. LCP가 4.8초, CLS가 0.28입니다. 어떻게 개선해야 하나요?",
      "expected_output": "LCP 4.8초와 CLS 0.28이 모두 불량 기준(LCP 2.5초 초과, CLS 0.1 초과)임을 명시해야 합니다. LCP 개선: 가장 큰 콘텐츠 요소 식별, 이미지 최적화(WebP, 지연 로딩 제거), 서버 응답 시간 개선, 중요 리소스 프리로드를 구체적으로 안내해야 합니다. CLS 개선: 이미지/광고/동적 콘텐츠에 크기 속성 명시, 레이아웃 변경을 유발하는 요소 식별을 안내해야 합니다. Search Console CWV 리포트와 PageSpeed Insights를 사용한 진단 방법을 설명해야 합니다. 수정 우선순위를 제공해야 합니다.",
      "assertions": [
        "Identifies LCP of 4.8s as failing threshold (should be under 2.5s)",
        "Identifies CLS of 0.28 as failing threshold (should be under 0.1)",
        "Provides specific LCP improvement steps (largest element, image optimization, TTFB, preload)",
        "Provides specific CLS improvement steps (explicit size attributes, layout shift causes)",
        "Recommends PageSpeed Insights and Search Console CWV report for diagnosis",
        "Explains impact of CWV on SEO rankings",
        "Provides prioritized fixes starting with highest impact items",
        "Addresses both mobile and desktop performance considerations"
      ],
      "files": []
    },
    {
      "id": 8,
      "prompt": "InsuWiki 보험 상품 상세 페이지에 schema markup을 구현하고 싶습니다. 상품 정보, FAQ, 리뷰를 구조화 데이터로 추가해서 리치 스니펫을 얻고 싶습니다. 어떻게 설정해야 하나요?",
      "expected_output": "이 요청은 seo-audit 스킬의 범위를 벗어납니다. schema markup 구현(JSON-LD 작성, 구조화 데이터 설정)은 schema-markup 스킬에서 전담합니다. seo-audit 스킬은 현재 schema markup 구현 여부를 감사하고 권고사항을 제시하는 역할을 합니다. 사용자에게 schema-markup 스킬로 라우팅하고, 보험 상품/FAQ/리뷰 스키마가 리치 스니펫을 활성화할 수 있다는 배경 정보는 간략히 제공할 수 있음을 설명해야 합니다.",
      "assertions": [
        "Identifies schema markup implementation as outside seo-audit scope",
        "Recommends routing to schema-markup skill explicitly by name",
        "Explains the boundary: seo-audit identifies schema needs, schema-markup implements them",
        "Does not attempt to write JSON-LD or schema implementation code",
        "May briefly mention that FAQ and Product schema can enable rich results",
        "Notes the schema detection limitation (web_fetch cannot see JS-injected schema)",
        "Provides a helpful handoff that does not leave the user without direction"
      ],
      "files": []
    }
  ]
}
