Community이미지github.com

iamk3nnyt/claude-skills - 이메일 QA

프로젝트의 트랜잭셔널 및 다이제스트 이메일을 QA합니다. DB나 네트워크 없이 모든 템플릿을 렌더링하고, 600px 및 375px에서 라이트 모드, 다크 모드, 이미지 끄기로 스크린샷을 찍은 후, 플레이스홀더 누수(undefined, NaN, {{…}}), 프리헤더, 구독 취소, 대체 텍스트, 절대 링크, Outlook 안전 버튼, 뷰포트 메타, Gmail 102KB 클립 등을 확인합니다. 이메일 템플릿이 변경될 때, 캠페인을 보내기 전, 또는 이메일 모양을 확인해야 할 때 사용하세요.

claude-skills - 이메일 QA란 무엇인가요?

이 스킬은 개발자와 QA 엔지니어가 이메일 템플릿을 자동으로 QA할 수 있도록 설계된 클로드 코드 스킬입니다. DB나 네트워크 호출 없이 모든 이메일 템플릿을 렌더링하고, 600px 및 375px 해상도에서 라이트 모드, 다크 모드, 이미지 꺼짐 상태로 스크린샷을 생성합니다. 또한 자동으로 정적 이슈(예: undefined, NaN, placeholder 누수)를 감지하고, 프리헤더, 구독 취소 링크, Outlook 호환성, Gmail 102KB 클립 제한 등 포괄적인 체크리스트를 제공합니다. React Email, MJML, 혹은 템플릿 리터럴 함수 등 다양한 렌더러를 지원하며, 프로젝트별 fixture 데이터를 활용해 실제 전송 전에 이메일 품질을 사전 검증합니다. Claude Code, Cursor, GitHub Copilot, Codex 등 스킬 기반 AI 어시스턴트와 함께 사용 가능합니다.

지원 대상✓Claude Code~Codex CLI~Cursor
npx skills add https://github.com/iamk3nnyt/claude-skills/tree/HEAD/skills/email-qa

Installed? Explore more 이미지 skills: steipete/songsee, affaan-m/frontend-design, mattpocock/improve-codebase-architecture · View all 6 →

즐겨 사용하는 AI에게 물어보기

이 에이전트 스킬이 미리 로드된 새 채팅을 엽니다.

문서

이메일 QA

필터: $ARGUMENTS 렌더러: ${CLAUDE_SKILL_DIR}/../ui-audit/scripts/render-html.mjs

1. 모든 템플릿에 대한 최종 HTML 가져오기

  • 갤러리 스크립트가 존재하는가? package.json에서 email-gallery, email:preview 또는 emails를 찾으세요. 하나가 모든 템플릿을 fixture 데이터로 작성한다면, 실행하고 출력 디렉터리를 사용하세요.
  • 아니면 하네스를 작성하세요. /tmp/email-qa/render.ts에 (사용자가 유지하기를 원하지 않는 한 리포지토리 외부에):
    • 각 렌더러(React Email render(), 템플릿 리터럴 함수, MJML)를 가져옵니다.
    • 실제 fixture로 호출하며, 긴 이름, 누락된 선택 필드, 0개/1개/여러 항목, 두 로케일 등 엣지 케이스를 포함합니다.
    • <template>-<case>.html을 작성합니다.
    • env, DB 또는 네트워크를 읽는 모든 것을 스텁 처리합니다. 리포지토리의 tsx로 실행합니다.
  • 항상 최종 생성된 HTML을 QA하고, JSX는 절대 QA하지 마세요.

2. 렌더링 + 정적 검사

node ${CLAUDE_SKILL_DIR}/../ui-audit/scripts/render-html.mjs /tmp/email-qa/out/*.html --out /tmp/email-qa/shots

각 파일에 대해 @600/@375 라이트 및 다크, 그리고 @600-noimg와 정적 이슈가 있는 render.json이 생성됩니다. 모든 템플릿에 대해 시트를 읽으세요.

3. 체크리스트 (스크립트가 플래그하는 것 외에)

  • 플레이스홀더: undefined, NaN, null, [object Object], {{…}}, Invalid Date, 빈 kr, 숨겨져야 할 곳에 나타난 0 st가 없어야 합니다.
  • 프리헤더: 존재하고, 의미 있으며, 제목과 반복되지 않아야 합니다. 본문 텍스트가 받은 편지함 미리보기로 새지 않도록 패딩 처리되어야 합니다.
  • 구독 취소: 다이제스트 및 마케팅용으로 필수 (발송 코드에 List-Unsubscribe + List-Unsubscribe-Post 헤더 포함). 트랜잭셔널 메일은 면제되며, 각 템플릿이 어떤 종류인지 명시하세요.
  • 이미지 꺼짐: 메시지가 여전히 의미가 있고, 모든 의미 있는 이미지에 대체 텍스트가 있으며, 스페이서에는 alt=""가 있고, CTA는 이미지가 아닌 라이브 텍스트여야 합니다.
  • 다크 모드: 로고에 투명 또는 다크 안전 변형이 있고, 어두운 배경에 어두운 텍스트가 없으며, 브랜드 색상이 여전히 3:1을 통과해야 합니다. Gmail/Outlook 강제 반전은 에뮬레이션할 수 없으므로, 투명 배경에 하드코딩된 #000 텍스트를 위험으로 플래그하세요.
  • Outlook 데스크톱: 테이블 레이아웃, flex/grid 없음, 버튼용 VML 또는 mso 패딩 대체, width= 속성의 너비, 간격을 위한 블록 요소에 margin 없음.
  • 링크: 절대 https://, 프로젝트에서 사용하는 UTM, localhost 또는 미리보기 호스트 없음, 구독 취소 링크에 추적 없음.
  • 카피: 전체 로케일이 올바른지 (문자열에 copy-check 규칙 실행), 보낸 사람 이름, 회신 주소 (프로젝트가 예상하는 대로).
  • 375px에서 스크롤 없이 CTA가 보이고 잘리지 않아야 합니다. 총 크기는 약 102KB 미만이어야 합니다.

종료 기준

  • 모든 템플릿이 모든 변형으로 렌더링되었고 시트가 읽혔습니다.
  • 플레이스홀더 누수나 상대 링크가 없으며, 뷰포트 메타가 존재합니다.
  • 각 남은 이슈는 버그(수정됨) 또는 위험(보고됨)으로 표시됩니다.
  • 사용자에게 간단한 요약과 shots 디렉터리가 제공됩니다.

Individual skills in this repo

This repo contains 2 individual skills — each has its own dedicated page.

관련 스킬