Community影像github.com

iamk3nnyt/claude-skills

自動生成電子郵件模板的 QA 報告,透過渲染每個模板(無需資料庫或網路)、在 600 和 375 像素寬度下截圖(淺色、深色、無圖片模式),並檢查佔位符洩漏、預覽文字、取消訂閱、替代文字、絕對連結、Outlook 安全按鈕、視口 meta 和 Gmail 的 102 KB 截斷。適用於每次模板變更、發送行銷活動前,或當被要求檢查郵件外觀時。

claude-skills 是什麼?

這個技能會對專案的交易郵件和摘要郵件進行全面 QA。它會自動渲染每個電子郵件模板(使用真實測試數據,無需資料庫或網路連線),然後在 600 和 375 像素寬度下,分別以淺色、深色和無圖片模式進行截圖。此外,它還會執行靜態檢查,尋找常見問題,如佔位符洩漏(undefined、NaN、{{…}} 等)、缺少替代文字、無效連結、Outlook 相容性問題和超過 Gmail 102 KB 截斷限制的內容。該技能支援任何基於 React Email、MJML 或範本字串函數的電子郵件建置工作流程,並提供可直接檢視的截圖目錄和詳盡的問題清單。使用者可以透過指定參數 $ARGUMENTS 來過濾要測試的模板,使其易於整合到 CI/CD 管線中或按需執行。

相容平台✓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 中提問

開啟一個已預先載入此 Agent Skill 的新對話。

說明文件

電子郵件 QA

過濾器: $ARGUMENTS 渲染器: ${CLAUDE_SKILL_DIR}/../ui-audit/scripts/render-html.mjs

1. 取得每個模板的最終 HTML

  • 是否有 Gallery 腳本? 在 package.json 中尋找 email-gallery、email:preview 或 emails。如果有腳本會使用測試數據寫出每個模板,則執行它並使用其輸出目錄。
  • 否則在 /tmp/email-qa/render.ts 中編寫一個測試工具(除非使用者希望保留在儲存庫中,否則放在儲存庫外):
    • 匯入每個渲染器(React Email render()、範本字串函數、MJML);
    • 使用實際的測試數據呼叫它,包括邊緣情況:長名稱、遺失的選填欄位、0 個、1 個和多個項目,以及兩種語系;
    • 寫出 <模板>-<案例>.html;
    • 對任何讀取環境變數、資料庫或網路的操作進行模擬。使用儲存庫的 tsx 執行。
  • 始終 QA 最終生成的 HTML,而不是 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="",且 CTA 是文字而非圖片。
  • 深色模式: Logo 需有透明或深色安全的變體,無深色文字在現在變成深色的背景上,且品牌顏色仍能通過 3:1 對比度。Gmail/Outlook 的強制反色無法模擬,因此將透明背景上的硬編碼 #000 文字標記為風險。
  • Outlook 桌面版: 使用表格佈局、無 flex/grid、按鈕使用 VML 或 mso 填充後備方案、寬度使用 width= 屬性、不使用 margin 在區塊元素之間產生間距。
  • 連結: 使用絕對 https://、專案使用時需帶 UTM、無 localhost 或預覽主機、且取消訂閱連結不帶追蹤。
  • 文案: 整個模板語言正確(對字串執行 copy-check 規則)、寄件人名稱、回覆地址(符合專案預期)。
  • CTA 在 375 寬度下無需滾動即可見 且未被裁剪。總大小保持在約 102 KB 以下。

退出條件

  • 每個模板都以所有變體渲染,且報告已被閱讀。
  • 無佔位符洩漏或相對連結,且視口 meta 存在。
  • 每個遺留問題被標記為錯誤(已修正)或風險(已報告)。
  • 向使用者提供簡短摘要,以及截圖目錄的路徑。

Individual skills in this repo

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

相關技能