← 一覧に戻る

pixel-clone スキル — テスト完全合格

2026年3月10日 23:30 更新

一言でいうと

Webサイトを「1ピクセルもズレなく」コピーするAIスキルが完成した

なぜこれが必要なのか

前に作った「design-cloner(デザインクローナー)」は、WebFetch(URLからHTMLを取得するツール)でサイトの情報を取って、デザインの特徴を分析してからゼロから作り直すアプローチだった。でもこれだと「そのサイトのイケてる部分」を正しく理解できないまま、似て非なるものができあがってしまう。

そこで発想を逆転させた。まず完全コピーを作って、それからモダンなコードに書き換える。コピーが正確かどうかは、スクリーンショットをピクセル単位で比較して検証する。1ピクセルでもズレてたら不合格。この「テスト駆動」のアプローチで品質を保証する。

このスキルがないと、AIは「それっぽいもの」を作るだけで、実際に元のサイトと一致しているかどうかの保証がない。

何をしたのか

「pixel-clone」という新しいスキル(AIへの指示書)を作って、3つのサイトでテストした。

スキルの仕組み(3フェーズ)

0キャプチャ(撮影)
Playwright(ブラウザを自動操作するツール)でサイトのスクリーンショットとHTML・CSSを丸ごと保存する。WebFetchと違い、JavaScriptが実行された後の完全な状態が手に入る。これがないと、動的に表示されるコンテンツが取得できない。
1完コピ(RED → GREEN)
取得したHTML/CSSをローカルに配置して、pixelmatch(ピクセル単位の画像比較ツール)でオリジナルと比較する。差分が0になるまで修正を繰り返す。TDD(テスト駆動開発)でいう「RED(テスト失敗)→ GREEN(テスト成功)」のサイクル。差分が1でもあれば不合格で、諦めることは許されない。
2書き換え(REFACTOR)
完全コピーが確認できたら、Next.js + Tailwind CSS(モダンなWeb開発のフレームワーク)に書き換える。書き換えのたびにピクセル比較して、見た目が崩れてないことを確認しながら進める。ユーザーが「参考にしたい」と言っている場合は、コンテンツもユーザー向けに差し替える。

不正防止の仕組み

TDD(テスト駆動開発)で一番やってはいけないのは「テストを書き換えて合格にする」こと。このスキルには3つの不正防止機能がある:

テスト結果

100%
全21項目 すべて合格
100%
スキルあり
4.2%
スキルなし

同じお題を「スキルあり」と「スキルなし」の両方で実行して比較した。スキルありは全項目合格、スキルなしはほぼ全滅。差は+95.8ポイント。スキルなしだとピクセル完全一致は1つも達成できなかった。

テストケース詳細

example.com 8/8 合格
最もシンプルなサイト。CSS5行、段落2つだけのミニマルページ。
Next.js書き換え時に3回のTDDループ(5,027差分 → 82差分 → 0差分)。Tailwind CSSの初期設定(preflight)が文字間隔と下線装飾を勝手に変えてしまう問題を発見・修正した。
httpbin.org 7/7 合格
Swagger UI(API管理画面を自動生成するツール)を使った複雑なサイト。CSS 150KB。
最も難易度が高かった。8回のTDDループ(70,499差分 → ... → 0差分)。コンテンツもサンプルAPIドキュメント(5グループ17エンドポイント)に差し替え済み。
websocket.org 6/6 合格
Starlight(ドキュメント向けテーマ)ベースの技術系サービスページ。スコープ付きCSS(特定コンポーネント専用のスタイル)が多数。
299回のツール呼び出し、38分の実行時間。CSSスコープ変数の解決やレイアウト順序の制御など、高度な技術課題を全て解決して差分ゼロを達成。

前バージョンとの比較

BEFORE(design-cloner)

  • WebFetchでHTMLを取得
  • デザイントークンを抽出
  • ゼロから作り直す
  • 「似てるけど違う」が限界

AFTER(pixel-clone)

  • Playwrightで完全キャプチャ
  • まず完全コピーを作る
  • ピクセル単位で検証
  • 1ピクセルもズレない完全一致

ポイント

t-wada(テスト駆動開発の日本の第一人者)の視点: このテストで最も価値があるのは「スキルあり vs スキルなし」の比較。スキルがあることで品質が上がることを数値で証明できれば、スキルの存在意義が立証できる。結果は100% vs 4.2%で、差は歴然だった。

コストについて: スキルありは時間がかかる(シンプルなサイトで約9分、複雑なサイトで約38分)。でもそれは「正確さを保証するために何度もチェックを繰り返す」から。スキルなしは速い(3〜5分)けど、品質の保証がない。

最大の発見: Tailwind CSS(CSSフレームワーク)の初期設定「preflight」が、元のサイトの見た目を壊す最大の原因だった。3つのテストケース全てで発生した共通の問題。スキルにこの知見が組み込まれているので、ユーザーは同じ罠にハマらずに済む。

📝 質問モード — テキストを選択してね
✓ 質問を送信しました