Insights·2026-07-28

Impeccable とは何か、どう始めるか — AI コーディングツールにデザイン規則を植える

Impeccable は、AI コーディングエージェントが画面を作るときに読むべきデザイン指針をプロジェクトに植え込むオープンソースツールだ。Anthropic が公開した frontend-design スキルを出発点に、コマンド 23 個と決定論的な検出ルール 60 個を加えたもので、Paul Bakaus が Apache-2.0 で公開している。始めるのに必要なのは二行だ。プロジェクトのルートで npx impeccable install を走らせると、この端末に既に入っている AI コーディングツールを自ら見つけて一覧で示し、このプロジェクトだけに入れるか端末全体に入れるかを尋ねる。続いてツールの中で /impeccable init を一度実行すると、作る画面がブランド向けかプロダクト向けかを聞いたうえで PRODUCT.md と DESIGN.md を書き、以後すべてのコマンドがこの二つのファイルを先に読む。実作業はコマンド名で指示する。audit は点検、critique は階層と可読性のレビュー、polish は仕上げ、bolder と quieter は強度の調整、distill は削ぎ落としだ。毎日使うものは /impeccable pin audit で /audit という近道にできる。エージェントを使わなくてもよい。npx impeccable detect は LLM も API キーも使わずルール検査だけを回し、指摘があれば終了コード 2、なければ 0 で終わるので、そのまま CI のゲートに使える。よくある癖をわざと詰め込んだサンプル HTML 一枚に走らせたところ 17 件が出て、指摘された箇所だけ直すと 0 件になった。

터미널 화면 — npx impeccable detect index.html 실행 결과로 side-tab, gradient-text, gray-on-color, low-contrast, dark-glow, overused-font 등 규칙 이름이 나열되고 마지막에 17 anti-patterns found가 표시된다.
안티패턴을 일부러 넣은 샘플 HTML 한 장에 검사기를 돌린 실제 출력

AI に任せた画面がいつも似て見えるのはなぜか

モデルはおおむね同じ素材を見て学んでいる。公開ウェブに溢れる SaaS のランディングページとダッシュボードのテンプレートだ。だから特に指示なく画面を作らせると、別のモデル、別のプロジェクトでも同じ選択が繰り返される。本文は Inter、ヒーローの背景は紫から青へのグラデーション、見出しにもまたグラデーション、カードの中にまたカード、カードの左端に太い色帯、見出しの上に小さな大文字ラベル。

これをプロンプトで毎回直そうとすると、同じ言葉を延々と繰り返すことになる。「もっと洗練させて」「AI っぽくないように」といった指示には基準がなく、結果が会話ごとに揺れる。Impeccable が取ったのは逆の道だ。何が問題かに名前を付けて規則にし、その規則をエージェントが読む場所にファイルとして置く。

出発点は Anthropic が公開していた frontend-design スキルである。Impeccable はそこから始めてコマンドの語彙を 23 個に広げ、LLM なしで動く検出ルール 60 個と、編集の瞬間に介入するフックを加えた。リポジトリの説明にその系譜がそのまま書かれている。

どうインストールするか

いちばん手軽なのは CLI インストーラだ。プロジェクトのルートで一行走らせる。npx は Node.js に付属するコマンドで、パッケージを別途入れずにその場で実行してくれる。Node.js がなければ nodejs.org から LTS 版を先に入れる。

実行するとこの端末に入っている AI コーディングツールを自ら見つけて一覧にする。Claude Code、Codex CLI、Cursor、Gemini CLI などだ。検出された組をそのまま使うか自分で選ぶかを尋ね、続いてこのプロジェクトだけか端末全体かを尋ねる。答え終えるとスキルを取得して当該ツールの設定フォルダに入れ、対応するツールにはフックまで併せて入れたうえで、次に何をすればよいかを教えてくれる。

対話なしで走らせたいときは --providers=claude,codex,cursor や --scope=project といったフラグで答えを先に渡す。スクリプトやチームのオンボーディング文書に向く書き方だ。既に入れたものを最新に上げるときは npx impeccable update を使う。

導入経路はこれだけではない。Claude Code では /plugin marketplace add pbakaus/impeccable でプラグインマーケットプレイスを登録できるし、チームがバージョンをリポジトリに固定したいなら git サブモジュールとして入れ、npx impeccable link で各ツールのフォルダにつなぐ。サイトからツール別の ZIP を落とす方法、リポジトリの dist フォルダを直接コピーする方法も文書にある。最初は一つ目だけ知っていれば足りる。

インストール(プロジェクトのルートで)
npx impeccable install

# 対話なしで
npx impeccable install --providers=claude,cursor --scope=project

# あとで最新に
npx impeccable update

/impeccable init は何を作るか

インストールが済んだら、AI ツールの中で /impeccable init を一度実行する。これはファイルを直すコマンドではなく、文脈を決める対話だ。まず作る画面がブランド寄りかプロダクト寄りかを尋ねる。ブランドはマーケティングページ、ランディング、ポートフォリオのように印象を残す画面で、プロダクトはアプリの UI、ダッシュボード、ツールのように毎日使う画面だ。同じ規則を両方に当てると片方は平板になり、もう片方は散らかるので、この分岐を先に決める。

対話が終わると PRODUCT.md と DESIGN.md が作られる。PRODUCT.md には誰が使う画面か、どんな印象を残したいか、避けたい参照は何かが入り、DESIGN.md には色・書体・コンポーネントといった視覚規則が入る。以後実行するすべてのコマンドがこの二つを先に読むので、毎回ブランドを説明し直す必要がなくなる。

すでに作ってある画面があるなら、/impeccable document で既存コードから DESIGN.md を逆に取り出すこともできる。白紙から始めるより、すでに使っている色と余白を文書として固めるほうが早いことが多い。

23 個のコマンドをいつ何に使うか

コマンドはすべて /impeccable のあとに名前を付けて呼ぶ。対象まで書けば範囲が狭まる。たとえば /impeccable audit blog はブログ画面だけ、/impeccable polish settings は設定画面だけを見る。名前なしで /impeccable とだけ打てば一覧が出るし、説明をそのまま添えてもよい。

よく使うものを絞ると下の表くらいになる。毎日使うコマンドができたら /impeccable pin audit のように固定して /audit の近道にできる。

使ううちに順番ができる。作る前は shape で構成と流れを決め、作ったあとは critique で人が見る観点を、audit で機械が見る項目を点検し、polish で仕上げる。結果が平板なら bolder、やり過ぎなら quieter、要素が多ければ distill で整える。

コマンドいつ使うか
shapeコードを書く前に画面の構成と流れを決める
craft構成から実装まで一気に進める
critique階層・可読性・印象を人の視点でレビューする
auditアクセシビリティ・性能・レスポンシブなど技術項目を点検する
polish出荷前の仕上げとデザインシステムとの整合を見る
bolder / quieter結果が平板なとき、逆に過剰なときに強度を調える
distill要素が多く焦点がぼけたときに削ぎ落とす
hardenエラー状態・長い文言・多言語など壊れやすい場合を埋める
clarifyボタン文言やエラーメッセージなど読んで迷う文を直す
adaptモバイルなど別の画面サイズに合わせる

エージェントなしで検査だけ回す

Impeccable には AI なしで動く検査器が別に入っている。npx impeccable detect にファイルかフォルダ、あるいは URL を渡すと、規則に触れた箇所を名前とともに知らせてくれる。LLM を呼ばないので API キーは要らず、結果は毎回同じだ。

検査のしかたは対象によって分かれる。HTML はリンクされた CSS まで含めて静的解析し、JSX や CSS といったそれ以外のファイルはパターンマッチ、URL を渡すと実際のブラウザで開いてレンダリングされた画面を見る。だからソースの走査が綺麗でも、URL の走査で引っかかる項目が別にありうる。

確かめるために、AI がよく出す形をそのまま真似た HTML を一枚作って走らせた。結果は 17 件、終了コードは 2 だった。指摘された箇所だけ直し、レイアウト構造はそのままにして再度走らせると 0 件、終了コード 0 になった。終了コードがゼロでないという点が重要で、これだけで CI のビルドを止められる。

特定の項目を切りたいときは、ファイルの中に impeccable-disable コメントを書いてその場だけ免除するか、npx impeccable ignores add-value でリポジトリの設定に例外を記録する。どちらも理由を書くことになるので、判断が記録として残る。

検査の実行
npx impeccable detect src/                   # フォルダを検査
npx impeccable detect index.html             # ファイルを検査
npx impeccable detect https://example.com    # URL を検査(実ブラウザ)
npx impeccable detect --json .               # CI 用の出力

# 指摘があれば終了コード 2、なければ 0

インストール後に一度だけ片づけること

コマンドを使い始めるとプロジェクトに .impeccable フォルダができ、その中に作業ファイルが溜まる。レビューのスクリーンショット、実行状態、キャッシュ、人ごとに違う個人設定などで、大半はリポジトリに入れる必要がない。README にそのまま貼れる .gitignore のブロックが用意してあるので、最初に一度入れておけばよい。

ただし全部を無視してはいけない。共有すべきファイルがいくつかある。プロジェクト共通の設定、デザイン仕様、レビューレポートがそれで、これらはリポジトリに残してチームが同じ基準を見るようにする。無視規則を入れる前にスクリーンショットを既にコミットしていた場合、規則を足すだけでは追跡は切れないので git rm --cached で追跡だけ外す。

対応するツールではフックも一緒に入る。UI ファイルを直した瞬間に検出器が走り、結果をエージェント側へ返す仕組みだ。Cursor は誤った書き込みが反映される前に止め、それ以外は修正のあとに知らせる方式である。インストールの過程でフックを入れるか尋ねられるので、望まないならそこで外せばよい。