上線檢查清單 是做什麼的?
執行自動化稽核,修正程式碼中失敗的項目,重新執行直到全部通過,然後逐一檢查腳本無法驗證的手動項目。向使用者回報你修改了哪些內容,以及哪些仍需要他們處理。
步驟 1 — 執行稽核
針對生產環境 URL(如果存在),否則針對本地建置版本(npm run build && npm start,不要使用開發伺服器 — 開發伺服器會加入腳本並跳過快取):
python3 scripts/audit_site.py https://example.com # 文字報告
python3 scripts/audit_site.py http://localhost:3000 --max-pages 30 --json > audit.json
檢查項目(詳細內容請見 references/checks.md):
- 每個頁面:
<title>(10–60 字元)、meta description(50–160 字元)、剛好一個<h1>、<html lang>、viewport、canonical(絕對路徑、相同主機)、og:title/description/image、twitter:card、缺少alt屬性的<img>、HTML 大小、回應時間、你可能希望被索引的頁面卻設了noindex、跨頁面重複的 title/description。 - 網站:
/robots.txt存在且未設定Disallow: /,並引用一個 sitemap;/sitemap.xml(或 robots 中指定的檔案)可解析且其 URLs 回傳 200(相同主機);favicon 可訪問;apple-touch-icon;隨機 URL 回傳 404(不是 200 或重定向到首頁);http→https 重定向(針對 https 網站);連接到隱私權政策/服務條款(如果網站銷售商品,還需退款政策);/llms.txt的存在(僅供參考)。
當有任何 FAIL 時退出碼為 1。爬取頁面:起始 URL + 相同主機的連結,最多 --max-pages(預設 20)。
步驟 2 — 在程式碼庫中修正
偵測框架並使用對應的修正方案。對於 Next.js App Router,references/fixes-nextjs.md 提供了可直接套用的 robots.ts、sitemap.ts、not-found.tsx、metadata、圖示慣例。通用 HTML / 其他框架:references/fixes-generic.md。
規則:
- 修正根本原因(共用佈局/中繼資料輔助函式),而不是逐頁修正,當問題重複出現時。
- 未經詢問,切勿新增
noindex或封鎖爬蟲。 - 缺少法律頁面:如果已安裝
legal-pages技能,則使用它來產生;否則告知使用者 — 不要內聯編造法律文字。 - 缺少 OG 圖片:如果已安裝
og-image-kit技能,則使用它。
步驟 3 — 重新執行直到沒有 FAIL
重新執行相同的命令。WARN 項目:修正容易處理的,清單中剩餘的項目留給使用者。
步驟 4 — 手動項目(腳本無法驗證)
與使用者一起檢查 references/manual-checklist.md — 安裝分析工具、錯誤追蹤、交易型電子郵件送達率(SPF/DKIM/DMARC)、付款流程端到端測試(使用真實小額付款)、備份、正常運行監控、Search Console / Bing Webmaster 驗證與 sitemap 提交、網域續約狀態。將每個項目標記為已完成/不適用/使用者自行處理。
步驟 4b — 付款自我檢查(如果網站收款)
python3 scripts/payment_check.py --src . --provider creem # 程式碼掃描
python3 scripts/payment_check.py --url http://localhost:3000 # 探測執行中的建置
python3 scripts/payment_check.py --url http://localhost:3000 --secret "$CREEM_WEBHOOK_SECRET" # 僅限測試模式秘密
FAIL:webhook 接受未簽署或偽造的請求、在驗證前解析 JSON、未對事件 ID 進行去重、成功頁面授權存取、付款秘密金鑰放在 NEXT_PUBLIC_* 或已提交、webhook 重定向或置於機器人挑戰之後。修正這些問題,重新執行,然後執行 references/payment-checks.md 中的手動信用卡測試(成功卡、拒絕卡、退款、重新發送儀表板、取消)。切勿傳遞真實 webhook 秘密。scripts/test_payment_check.py 是腳本自身的測試。測試、規範和 fixture 檔案(*.test.ts、*.spec.tsx、test_*.py、tests/、e2e/、__tests__/、fixtures/ 下的任何內容)不會被判定為處理程式或成功頁面,因為它們有目的地發送未簽署的請求並插入行;但它們仍會被掃描是否有已提交的即時金鑰。報告會說明跳過了多少個(INFO test files)。
報告格式
Launch audit for <url> — <date>
FAIL fixed: … (file:line changed)
WARN fixed: …
Still open (needs you): …
Manual checklist: x/y done