Community画像github.com

iamk3nnyt/claude-skills

トランザクションメールやダイジェストメールのテンプレートを、DBやネットワークなしですべてレンダリングし、600pxと375pxでライトモード、ダークモード、画像オフでスクリーンショットを撮り、プレースホルダー漏れ(undefined、NaN、{{…}}など)、プレヘッダー、配信停止、altテキスト、絶対リンク、Outlookセーフなボタン、ビューポートメタ、Gmailの102KBクリップをチェックします。メールテンプレートが変更されたとき、キャンペーン送信前、またはメールの見た目を確認するよう依頼されたときに使用します。

claude-skills とは?

このスキルは、Claude Code(または同様のAIエージェント)上で実行され、プロジェクトのトランザクションメールおよびダイジェストメールの品質保証(QA)を自動化します。開発者がメールテンプレートを変更した後や、キャンペーンを送信する前に、実際のデータベースやネットワーク接続を必要とせずに、すべてのテンプレートバリアントをレンダリングし、視覚的・静的な問題を検出します。具体的には、600pxと375pxのビューポートでライトモード・ダークモード・画像オフの各状態のスクリーンショットを生成し、`undefined`や`NaN`、`{{…}}`などのプレースホルダー漏れ、プレヘッダーの有無と意味、配信停止リンクの存在、意味のあるaltテキスト、絶対リンク(UTM含む)、Outlook互換のレイアウト、ビューポートメタタグ、Gmailの102KB容量制限超過などをチェックします。レンダリングは `render-html.mjs` を使用し、静的チェックは `render.json` に出力される結果と、別途定義されたチェックリストに基づいて行われます。最終的には、各テンプレートの全バリアントがレンダリングされ、すべてのシートが読み込まれたことを確認し、残った問題をバグまたはリスクとしてラベル付けし、ユーザーにサマリーとスクリーンショットディレクトリを提供します。

対応✓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に質問する

このエージェントスキルを事前に読み込んだ状態で新しいチャットを開きます。

ドキュメント

email-qa

フィルター: $ARGUMENTS レンダラー: ${CLAUDE_SKILL_DIR}/../ui-audit/scripts/render-html.mjs

1. すべてのテンプレートの最終HTMLを取得する

  • ギャラリースクリプトは存在するか? package.json で email-gallery、email:preview、または emails を探します。これらのスクリプトがフィクスチャデータを使ってすべてのテンプレートを書き出す場合は、それを実行し、その出力ディレクトリを使用します。
  • それ以外の場合はハーネスを作成する (ユーザーが保持を希望しない限り、リポジトリ外の /tmp/email-qa/render.ts に作成):
    • 各レンダラー(React Email の render()、テンプレートリテラル関数、MJML)をインポートします。
    • 現実的なフィクスチャを使って呼び出します。エッジケースとして、長い名前、欠落したオプションフィールド、0 / 1 / 多数のアイテム、両方のロケールを含めます。
    • <テンプレート>-<ケース>.html を書き出します。
    • env、DB、ネットワークを読み取るものはすべてスタブにします。リポジトリの tsx を使って実行します。
  • 常に 最終生成HTML をQAし、JSXは対象としません。

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テキストがあること、スペーサーには alt=""、CTAは画像ではなく生テキストであること。
  • ダークモード: ロゴは透明またはダークモード対応のバリアントがあること、暗い背景に暗いテキストがないこと、ブランドカラーがまだ3:1のコントラスト比を満たしていること。Gmail/Outlookの強制反転はエミュレートできないため、透明背景上のハードコードされた #000 テキストはリスクとしてフラグすること。
  • Outlook デスクトップ: テーブルレイアウト、フレックス/グリッドなし、VMLまたはmsoパディングフォールバックを使用したボタン、width=属性での幅指定、ブロック要素のマージンによるスペーシング禁止。
  • リンク: 絶対 https://、プロジェクトで使用している場合はUTM、localhostやプレビューホストなし、配信停止リンクにトラッキングなし。
  • コピー: 全体で正しいロケールであること(文字列に対して copy-check ルールを実行)、送信者名、返信先(プロジェクトの期待と一致すること)。
  • CTAが375pxでスクロールせずに表示され、クリップされていないこと。 合計サイズが約102KB以内であること。

終了条件

  • すべてのテンプレートが全バリアントでレンダリングされ、シートがすべて読み込まれている。
  • プレースホルダーの漏れや相対リンクがなく、ビューポートメタタグが存在する。
  • 残った各問題は、バグ(修正済み)またはリスク(報告済み)としてラベル付けされる。
  • ユーザーへの短いサマリーと、スクリーンショットディレクトリが提供される。

Individual skills in this repo

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

関連スキル