ui-review について
ui-reviewは、画面品質を確認する開発者向けのレビュー用スキルです。レンダリング画像を根拠に、デザインシステムの規則、アクセシビリティスキャン、プロジェクトのlintを組み合わせ、重要度順に所見をまとめます。
主な機能
- 01対象画面とビューポートの確認
- 02デザインシステムと基準の適用
- 03プロジェクトのlintと結果記録
- 04画面キャプチャとアクセシビリティ検査
- 05画面の罠とエッジ状態の検証
- 06重要度による所見の順位付け
活用シーン
- 01ブランチの画面変更をレビュー
- 02複数ビューポートで画面を確認
- 03コンポーネントのエッジ状態を検証
- 04追跡可能なリリースレビュー報告を作成
インストール
コマンドをコピーしてターミナルで実行します。
npx skills add https:/ / github.com/ arla6ka/ skills --skill ui-reviewインストール後、Claude Code で/ui-reviewを入力して読み込まれたか確認します。
同梱ファイル
SKILL.md と一緒にインストールされる参考資料やスクリプト。
README.mdTESTS.mdreferences/review-criteria.mdsources.md詳細
UI レビュー
- 対象範囲。 呼び出し元が指定した範囲、指定がなければブランチで変更された画面、いずれもなければ上位 5 つのルートを対象にします(
references/sources.mdの Finding the design)。 - 基準。 インストール済みのデザインシステムがある場合は、その
SKILL.mdを最初に確認し、次にreferences/review-criteria.mdを確認します(references/sources.mdの The installed system)。 - Lint。 対象ファイルに対してプロジェクト独自の lint を実行し、コマンドと終了コードを記録します(
references/sources.mdの The project's lint)。 - 各画面を各ビューポートでキャプチャし、その場でアクセシビリティスキャンを実行します(
references/sources.mdの What counts as evidence)。 - 指定がない場合は目的を推測して「仮定」と明記したうえで目的を修正するか、
references/sources.mdの条件に該当する場合は中止します(Inferring the purpose)。 - 画面に該当するすべてのトラップの種類を、ローカルビルドのみで検証します(
references/sources.mdの Trap probes)。各プローブには測定結果、または実行しなかった理由を記載します。 - 各ビューポートで、インストール済みシステムのルールに続いて、基準 1〜13 を確認します(
references/review-criteria.md)。 - 繰り返し、連鎖した指摘、
system-causedの指摘、アクセシビリティ、好み、逸脱を、references/review-criteria.mdに従って分類します(Sorting)。 blocking、should-fix、noteの順にランク付けし、各分類内ではサーフェスのティア、次に該当箇所の数で順位付けします(references/review-criteria.mdの Severity)。- エッジケースを確認し、それぞれが表示されたかどうかを記録します。また、画面上のコンポーネントについて、各仕様の States 行も確認します(
references/sources.mdの Component specs)。 - 判定と概要は最後に記述します(Output)。
次のものは決して出荷してはいけません。
- 使用中のファイルに根拠となる基準がない指摘、または好みに基づく指摘。
- 説明、DOM テキスト、ソースコードだけに基づく指摘。根拠となるのはレンダリング結果であり、それらは補足にすぎません。
- 推測に基づく指摘を修正として記述したもの。推測は、それを確定するための確認事項としてのみ
Next:に記載します。 - このセッションで実行したコマンドやキャプチャがないのに、何かが機能する、または修正済みだとする主張。
- 意味を変えるアクセシビリティ修正や製品上の判断を、ランク付けして確定したもの。最終判断は人が行い、指摘はそのまま残します。
- スクリーンショットに基づく基準 13 の指摘または合格判定。
state-timeline.jsまたはプローブが必要です。 - 先頭行、出荷判定行、概要の内容が一致しないもの。
コーディネーターから依頼された場合
キャプチャ、基準、目的は指定どおりとみなし、最後まで実行します。単独で行う場合に確認が必要となる不足事項があれば記録します。キャプチャのみの場合、スキャンとプローブには not run: captures only と記載します。これは実行しなかった理由として認められます。レポートはステータス行から始め、Status: complete (blocking n, should-fix n, note n)、Status: complete (partial: <what was not reviewed>)、または Status: stopped: <condition> のいずれかを記載します。続けて Commit: none、判定行、出荷判定行を記載します。レポート、または中止時の形式をテキストで返し、ファイルは作成しません。
出力
blocking の指摘が1つでもあれば判定は no です。推測に基づく指摘の場合は no, pending <the one check that settles it> です。should-fix だけなら yes, with fixes、note だけなら yes です。1行目では、基準番号やスキル名を使わず、平易な言葉で依頼に答えます。「Not yet」は no の場合にのみ使います。続く出荷可否の行には、同じ判定とその理由を1つの節で示し、未ランクのアクセシビリティに関する質問の数を記載します。部分的な実行の判定は、レビューした範囲だけを対象とします。例:Ready to ship: no. Enter in Email cancels the invite (blocking 1, should-fix 2, 3 accessibility questions for a person).
続けて、次の6つのパートを記載します。
- レビュー記録。 ソース、ツール、ビューポート、日付、基準ファイル、初回レビューかフォローアップか、目的が提示されたものか推定したものか、すべての前提、すべての不足点を記載します。各該当なしの基準には、その理由を記載します(「8. この画面に破壊的な操作はありません」)。
- 概要。 画面で求められる操作、うまく機能している点、最も注意が必要な点を記載します。
- 指摘事項を重大度別に記載します。それぞれについて、確認できた内容、場所(画面と領域、または
button 'Save changes' @e34 (settings-1280.png)のように、ロールと名前、参照またはセレクター、キャプチャを含む要素)、ビューポート、画面の階層、基準の番号と名前またはインストール済みシステムのルール ID、このタスクで重要な理由、証拠の種類と重複排除キー(references/sources.mdの「What counts as evidence」)、該当するtrap/またはrule/IDを記載します。system-causedの指摘では、トークン、プリセット、またはコンポーネントを明記します。 - 表示されていないエッジケース。 各項目を1行で記載します。
- 担当者の判断が必要な事項。 意味を変えるアクセシビリティ修正、修正にあたって製品上の判断が必要な事項、どの基準にも該当しない問題を、それぞれ指摘事項または場所に結び付けて記載します。
- 対象外とした事項。 見送った候補を、それぞれ理由とともに記載します。
該当する項目がないグループには「None」と記載します。問題のない画面の注記は注記のまま残します。
すべての指摘事項に基準、特定可能な場所、証拠があり、該当するビューポートのみが記載されていれば、レポートは完成です。すべてのプローブに結果または実施しなかった理由があり、スキャンは各ビューポートで実行するか、「not run: captures only」と記載します。最後の行には Coverage: と記載し、測定したルート、ビューポート、テーマ、プローブを示した後、未測定のものを記載します。
直接実行し、レポートを .ui-review/<date>-<flow>.md に保存し、キャプチャはその隣に保存します。チャットの返信は回答行と出荷可否の行で始め、実行した各コマンドを終了コードとともに記載し、担当者向け項目をデフォルト値とともに最大3つ列挙し、Next: と貼り付けるプロンプト1つで締めくくります。そのプロンプトでは、すべての blocking と、表示されたものと送信されたものの不一致に関する指摘を、「Fix X so that 」の形式で網羅します。たとえば、「Fix Enter in Email so that it sends 1 POST」です。system-caused の修正では、システムファイルを明記します。各 Next のチェックは、現在のビルドで失敗する必要があります。
実行が中断された場合は、中断した理由、各画面の機能についての1行の推測、続行を可能にするための最短の返答だけを返します。