Communitygithub.com

ethanplusai/astro-conversion-kit

ライブまたはステージングサイトを監査し、立ち上げ時に問題となる箇所を報告します。クロールとインベントリ、インデックス可能性、ドメイン移行のリダイレクト、リンク、画像、フォーム、アクセシビリティ、パフォーマンス、アナリティクス、コンテンツの健全性、そして視覚的な確認のための全ページスクリーンショットなどを網羅します。サイトの立ち上げ前後、QA・監査・レビューの依頼時、新ドメインへの移行時、またはサイトの公開準備が整っているか尋ねられた際に使用します。読み取り専用であり、フォームの送信、コントロールのクリック、編集は一切行いません。

astro-conversion-kit とは?

このスキル(`launch-audit`)は、ライブまたはステージング環境のWebサイトを包括的に監査し、立ち上げを妨げる可能性のある問題を詳細なレポートとして生成する、読み取り専用のAIエージェントツールです。Node.jsスクリプトによりサイトをクロールし、インデックス可能性、リダイレクト、リンク切れ、画像、フォーム、アクセシビリティ(axeルール)、パフォーマンス(Lighthouse)、アナリティクス、コンテンツの健全性などをチェックします。Playwrightがインストールされていれば、スクリーンショットやLighthouse計測も行われます。このスキルの特筆すべき点は、自動化されたチェックに加えて、スクリーンショットの目視レビュー、フォームの分類、連絡先情報の確認といった、人間による判断が必要な3つのレビュープロセスを明確に定義していることです。レポートはマークダウン、JSON、CSV形式で出力され、監査後には立ち上げ前後の差分を取るためのベースラインも生成します。このスキルはClaude Codeや類似のAIコーディングエージェントで使用することを想定して設計されており、サイトが公開可能な状態かどうかをエビデンスベースで判断するための強力なツールです。

対応~Claude Code~Codex CLI~Cursor
npx skills add https://github.com/ethanplusai/astro-conversion-kit/tree/HEAD/skills/launch-audit

お気に入りのAIに質問する

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

ドキュメント

launch-audit

ステージングまたはライブサイトをクロールし、証拠を収集し、担当者が行動に移せるレポートを提供します。

黄金律

読み取り専用、報告のみ。 このスキルはサイトの編集、フォームの送信、設定の変更、プロバイダAPIへの書き込み、破壊的なコントロールのクリックを一切行いません。すべての発見事項は、人間が行動するためのエビデンスを伴う推奨事項です。

そこから派生する、レポートを提示する際に再度述べるべき4つのルール:

  1. 黙ったままの上限なし。 カバレッジの限界 — 最大ページ数、深さ、サンプリングされたページ、検証不能な外部リンク — は、すべて「未カバー」セクションで名前を挙げて報告されます。
  2. すべての発見事項にエビデンスを。 URL、ステータスコード、ヘッダー値、スクリーンショットのパス。
  3. 「未カバー」は合格を意味しない。 そのセクションを人間に対して逐語的に繰り返します。
  4. スキップは合格を意味しない。 スキップされたチェックにはすべて理由が付記されます。

1. 入力を収集する

既に知らないことは尋ねてください。これらを推測してはいけません。

  • 監査するURL。 必須。
  • ステージングかライブか? ステージング環境はnoindexが予想されます。--staging を渡すと、サイト全体のnoindexはブロッカーから情報提供レベルの問題に格下げされます。ライブ環境ではそれはブロッカーです。
  • 既存のサイトを置き換えるものですか? はいの場合、古いサイトのURLを取得し、--old-url を渡します。これは両方のサイトがまだ到達可能なうち、通常はDNS移行の前に行う必要があります。リダイレクトマップを自動的に構築できる唯一の瞬間です。
  • ビルドに漏れ込んだ可能性のある開発用またはステージング用のホスト名。 それぞれを --dev-host で渡します。漏れたホスト名はブロッカーであり、監査は既知のものだけを検索できます。
  • Playwrightはインストールされていますか? インストールされていれば、ブラウザ層が実行されます:スクリーンショット、axeアクセシビリティ、Lighthouse、そしてアナリティクスが実際に発火するかどうか。インストールされていない場合はその旨を伝えてください — レポートの約3分の1は実行されず、どの3分の1かがレポートに記載されます。

2. スクリプトを実行する

スクリプトを実行してください。ソースコードを読んだり、スクリプトの処理を再実装したりしてはいけません。スクリプトが行うことはすべて読み取り専用です:ページを取得し、一部をレンダリングし、バンドルをディスクに書き込みます。

node scripts/launch-audit.mjs --url <url> [--old-url <url>] [--dev-host <host>] [--staging] [--browser auto|on|off] [--out <dir>]

パスはこのスキル自身のディレクトリからの相対パスです — そのディレクトリでコマンドを実行し、--out でバンドルを作業ディレクトリに書き込みます。

その他のフラグ:--max-pages(デフォルト200)、--max-depth(デフォルト4)、--ignore-robots、--baseline <以前のbaseline.jsonへのパス>、--json、--config <パス>、--help。

ブラウザ層のデフォルトは auto です:Playwrightが存在すれば実行され、存在しなければ理由とともにスキップされます。--browser on で存在しない場合をエラーに、off で意図的にスキップします。

発見事項の数に関わらず、スクリプトは終了コード0で終了します — これは報告であり、ゲートではありません。終了コード2は使用方法のエラーです。Playwrightのインストールを提案された場合は、その提案を伝えてください。依頼なしに何かをインストールしてはいけません。

3. バンドルを読む

スクリプトはバンドルのパスを出力し、以下を書き込みます:

report.md        ディメンション別、次に運用・アクセス準備、最後に未カバーの順の発見事項
findings.json    同じ発見事項、機械可読形式
crawl.json       到達したすべてのURL、そのステータス、深さ、発見方法
baseline.json    立ち上げ後の差分比較用のスナップショット
manifest.json    この実行で書き込まれた正確なファイル一覧
redirects.csv    古いURLごとに1行(--old-url 指定時のみ)
screenshots/     レンダリングされたページごとのデスクトップ、タブレット、モバイル(ブラウザ層のみ)
lighthouse/      Lighthouseが計測したスコアと指標、ページとフォームファクターごと(ブラウザ層のみ)

最初に report.md を読んでください:ブロッカー、次に未カバー、そしてその他すべて。何がチェックされなかったかを知ることで、クリーンなセクションの読み方が変わります。references/reading-the-report.md に重大度の表とバンドルの扱い方があります。

4. 3つの判断パスを自分で行う

スクリプトは、どのチェッカーも実行できない3つのレビューのための証拠を収集します。何かを提示する前にこれら3つすべてを行ってください。それぞれにリファレンスファイルがあります。パスの前に読み、後に読むのではありません。

スクリーンショット — references/reading-the-report.md に従ってください。レンダリングされた各ページのモバイルとデスクトップのショットを並べて開き、レイアウトの崩れ、水平方向のオーバーフロー、画像の欠落、クリップまたは切り詰められたテキスト、電話幅で折りたたまれないナビゲーション、そして立ち上げ時まで残っているプレースホルダー画像を探します。ブラウザが実行されなかった場合はスクリーンショットはなく、このレビューは行われませんでした — その不在を合格と読ませるのではなく、その旨を伝えてください。

フォーム — references/forms.md に従ってください。インベントリ内のすべてのフォームを、レポート内の証拠を使用して、ファーストパーティ、サードパーティ、またはデッドフォームに分類します。次に、人間に対してどのフォームがテスト送信を必要とし、正確に何を確認すべきかを伝えてください:成功メッセージ、スパムフォルダではなく監視対象の受信トレイに通知が届くこと、そしてレコードが本来あるべき場所に表示されること。自分でフォームを送信してはいけません。

連絡先詳細 — references/content.md に従ってください。レポートが見つけたすべての電話番号、メールアドレス、住所を1つのリストにまとめ、tel: リンクがその横に表示されている番号にダイヤルすることを確認し、サイトの所有者に現在有効なものを確認してください。1つのページに残された2つ目の電話番号は、半分の電話を無駄にし、外部からどちらが正しいかを知ることはできません。

5. レポートを提示する

レポートの構造と同じようにサマリーを構成し、件数ではなく判断を先頭に持ってきてください。1つのテンプレートからの40の低重要度の発見事項は1つの修正であり、1つのブロッカーが立ち上げを妨げます。

  1. 何が立ち上げをブロックするか。 ブロッカーごとに1つの平易な文章。ブロッカーがない場合は、その旨を直接述べてください。
  2. ディメンションごとにグループ化された発見事項、各ディメンション内で最も深刻なものから順に。 単なる数ではなく、形状を示してください:「14のページに説明文がありません — これは1つのテンプレートなので、1つの修正で済みます」。失敗ではなく修正を名前で呼び、そのコストを平易な言葉で述べてください。
  3. 運用・アクセス準備。 これらはサイト運営者の仕事であり、立ち上げ日を台無しにするものです。[human] アイテムを声に出して読み、それぞれに対して回答を得てください。
  4. 未カバー、逐語的に。 すべての行を、編集せずに、正直に導入してください:「これがチェックしなかったことです」。決して要約したり、些細なことと呼んだり、リストが長いからといって省略したりしないでください。

絶対に実行されない2つのチェック

すべてのレポートはこれらで終わります。これらが存在するのは、最もダメージが大きく、クロールでは決して到達できない2つの失敗だからです:

  • コピー vs. ソースドキュメント。 サイト上の文言と、承認されたコピーを比較するものはここにはありません。誰かが両方を手に取って読む必要があります。
  • ページ vs. 合意されたスコープ。 どのページが存在するべきかを知っているものはここにはありません。決して構築されなかったページはクローラーには見えません。

レポートを提示する際に、両方を声に出して述べてください。サイトがこのスキルのすべてのチェックに合格しても、合意された半分のページが欠けている可能性があります。

リファレンス

発見事項を説明する前に、ディメンションのファイルを読んでください。各ファイルは、発見事項の意味、立ち上げ時に重要な理由、一般的なスタックでの修正方法、そしてチェックが伝えられないことをカバーしています。

ファイルカバー範囲
references/reading-the-report.md重大度、スクリーンショットチェックリスト、未カバー、クライアントへの提示
references/indexability.mdクロールとインベントリ、noindex、robots.txt、サイトマップ、カノニカル、hreflang
references/host.mdHTTPS、証明書、www vs ルート、リダイレクト、セキュリティヘッダー、404ページ
references/head.mdタイトル、説明文、見出し、アイコン、ソーシャルカード、構造化データ
references/links.md壊れたリンクと検証不能なリンク、リンクテキスト、mailto: と tel:
references/images.md代替テキスト、寸法、読み込み戦略、重さ、フォーマット、動画
references/forms.mdインベントリ、エンドポイント、分類、およびテスト送信
references/accessibility.mdHTMLの最低基準、axe違反、および15分間の手動パス
references/performance.mdヒントと測定値、Lighthouse、および作業の優先順位付け
references/analytics.mdタグ検出、発火、同意、および検証パス
references/content.mdプレースホルダー、古い日付、連絡先詳細のバリエーション
references/redirects.md移行マップ、redirects.csv、およびルールの記述
references/ops.mdメール認証、法的ページ、および準備状況チェックリスト

このスキルの位置づけ

pre-launch はデプロイ前にリポジトリに対して実行されるゲートです。launch-audit はこれです:報告し、決してブロックしません。post-launch はDNSが移行した瞬間に実行され、本番環境をこの監査が書き込んだベースラインと比較します。この順序で実行してください。

Individual skills in this repo

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

ethanplusai/astro-conversion-kit

Crawl a live website, read-only and paced, into a capture/ folder that a rebuild is checked against — every page's HTML, text and head tags, redirects with every hop, links, third-party scripts, the media set, stylesheets, fonts, logo and icons, feeds, templates, and live screenshots at three widths. Use before converting or rebuilding a site, when asked to crawl, capture, snapshot or inventory a site, or when a capture stopped on blocks and needs resuming.

ethanplusai/astro-conversion-kit

Convert a live website (WordPress first; Drupal, Webflow, Squarespace, Wix and static sites too) into a static Astro site with the same URLs, content, head tags, media, redirects and look, proven by parity gates and a pixel-level visual review, ending in one pull request, a noindexed staging deploy and a launch runbook. Use when asked to convert, rebuild, migrate or clone a site to Astro, when handed a site URL with this kit's link, to resume a conversion from .conversion/state.json, or with --apply <id> to apply one suggestion as a proposal.

ethanplusai/astro-conversion-kit

Freeze a site capture into baseline/ and prove an Astro build matches it — every route, redirect (one hop, through a simulation of the host), SEO head field, visible text, internal link, media file, sitemap entry, feed, form, third-party script and security header — with approved differences in exceptions.json and improvements in proposals.json. Use after a capture to build the baseline, when compiling redirects.csv for Vercel or Cloudflare, before calling any conversion page done, when a gate fails and needs reading, or to check a staging deploy against the baseline.

ethanplusai/astro-conversion-kit

The moment DNS moves and for the thirty days after — verifies the cutover (DNS propagation, certificate, http and www redirects, the noindex, robots and sitemap on the live host, every redirect the audit mapped, forms, analytics, the staging copy, the old host, security headers), diffs production against the pre-launch baseline, and schedules the watch. Use when asked did the launch work, is the site live, what should I check after launch, the domain just switched, or when a site went live in the last month and something looks wrong. It is read-only and exits 0 whatever it finds.

関連スキル