プロジェクト監査。「監査して」「audit」「/audit」で発火。設計/UX/品質/テストなどの観点でコードベース全体を監査し、課題をissuesディレクトリに書き出す。実行ログで重複実行を防止。特定の差分・コミットのレビューには使わない(codex-review / cross-review を使う)。
style-review
CSS/UI スタイルを WCAG 2.2 の数値基準(コントラスト比・フォーカス・モーション)で技術検証し、Light/Dark 両モードをレビューして報告する。検証のみで修正はしない。主観的な使用感(色のキツさ・隣接色の被り)のレビューは ux-visibility-review を使う
含まれるファイル(1)
- SKILL.md9.0 KB
SKILL.md(原文)
インストールする前に、エージェントに与えられる指示の中身を確認できます。
Style Review
CSS/UI のアクセシビリティとスタイル品質を一括検証するスキル。
ガードレール
- このスキルは 検証と報告のみ を行う。コードの修正は行わない(修正はレポートの「修正推奨」を見たユーザーの指示で別途実施する)
Quick Start
/style-review [対象ファイル/ディレクトリ]
例:
/style-review styles/- styles ディレクトリ内の CSS を検証/style-review src/components/Button.css- 特定ファイルを検証/style-review- カレントディレクトリの CSS/SCSS を検証
検証項目
1. WCAG コントラスト比(WCAG 2.2 準拠)
| テキストタイプ | AA 最小 | AAA 推奨 | 該当 SC |
|---|---|---|---|
| 通常テキスト (< 24px / < 18.67px bold) | 4.5:1 | 7:1 | 1.4.3 / 1.4.6 |
| 大きいテキスト (≥ 24px / ≥ 18.67px bold) | 3:1 | 4.5:1 | 1.4.3 / 1.4.6 |
| UI コンポーネント・グラフィック | 3:1 | -- | 1.4.11 |
| フォーカスインジケーター(状態変化) | -- | 3:1 (+ 2px solid) | 2.4.13 |
注意: 大きいテキストは 18pt (24px) 以上、または 14pt (18.67px) 以上かつ bold。
18pxと18ptは異なる値。
2. Light/Dark モード検証
両モードでの可読性を確認:
- テキストコントラスト
- ボーダー視認性
- シャドウ効果
- アイコン/SVG の視認性
3. インタラクション状態
:hover状態のコントラスト:focus状態の視認性(2px+ solid outline、破線の場合は 4px+):focus要素が他の要素に隠されない(SC 2.4.11):active状態:disabled状態の区別(3:1 以上推奨)
4. モーション設定
prefers-reduced-motion対応- アニメーション時間の適切性
- 点滅コンテンツの有無
実行フロー
0. 引数パース
├── 対象パス(デフォルト: カレントディレクトリ)
├── --wcag-level AA|AAA(デフォルト: AA)
├── --only contrast|focus|motion(デフォルト: 全検証)
└── --json(デフォルト: Markdown 出力)
1. 対象ファイル特定
├── Glob で *.css, *.scss, *.module.css を検索
└── 0 件の場合 → エラー: "対象 CSS ファイルが見つかりません"
2. css-expert エージェント起動(Task ツール使用)
├── 下記の指示テンプレートで起動
└── 応答なし/失敗 → リトライ 1 回(「エラーハンドリング」表に従う)
3. 結果統合
├── 重要度順にソート(High → Medium → Low)
└── Pass/Fail 判定
4. レポート出力
├── デフォルト: Markdown テーブル形式
└── --json: JSON 形式
css-expert 指示テンプレート
css-expert を Task ツールで起動する際、以下のプロンプトを使用する:
以下の CSS ファイルを WCAG 2.2 基準で検証してください。
対象ファイル: [ファイルパス一覧]
WCAG レベル: [AA|AAA]
検証カテゴリ: [contrast|focus|motion|all]
【検証項目】
1. コントラスト比(WCAG SC 1.4.3 / 1.4.6 / 1.4.11)
- テキスト色と背景色のペアを抽出
- CSS 変数は :root での定義値を解決して計算
- prefers-color-scheme: dark ブロック内の値も検証
- AA 基準: 通常テキスト 4.5:1、大きいテキスト 3:1
[AAA の場合: AAA 基準: 通常テキスト 7:1、大きいテキスト 4.5:1]
2. フォーカス状態(WCAG SC 2.4.7 / 2.4.11 / 2.4.13)
- :focus, :focus-visible スタイルの有無
- outline: none の検出(代替スタイルなしは NG)
- フォーカスインジケーターの視認性
3. モーション設定(WCAG SC 2.3.1)
- prefers-reduced-motion メディアクエリの有無
- animation/transition を使用するセレクターの列挙
【出力形式】JSON で出力してください:
{
"agent": "css-expert",
"file": "ファイルパス",
"issues": [
{
"line": 行番号,
"severity": "high" | "medium" | "low",
"category": "accessibility",
"description": "問題の説明",
"suggestion": "修正案",
"wcag": "該当 SC 番号"
}
],
"wcag_check": {
"contrast_pass": true/false,
"light_mode_tested": true/false,
"dark_mode_tested": true/false,
"focus_visible": true/false,
"reduced_motion": true/false
}
}
CSS 変数の解決方法
CSS 変数(var(--color))を含む色定義の検証手順:
1. :root ブロックから変数定義を抽出
2. @media (prefers-color-scheme: dark) 内の再定義も抽出
3. Light/Dark それぞれのコンテキストで変数値を解決
4. 解決後の実際の色値でコントラスト比を計算
解決不能な場合(外部ファイル参照等):
→ "解決不能" としてマークし、手動確認を推奨
Pass/Fail 基準
合格条件
| レベル | 条件 |
|---|---|
| Pass | High: 0 件、かつ wcag_check の全項目が true |
| Conditional Pass | High: 0 件、Medium: 5 件以下(Pass 条件を満たさない場合) |
| Fail | High: 1 件以上、または Medium: 6 件以上 |
severity 判定基準
| severity | 基準 |
|---|---|
| high | WCAG AA 違反(コントラスト比未達、outline:none 代替なし) |
| medium | ベストプラクティス逸脱(AAA 未達、prefers-reduced-motion 未対応) |
| low | 改善推奨(disabled 状態のコントラスト、タッチターゲットサイズ) |
出力形式
標準出力(デフォルト: Markdown)
## Style Review 結果
### 概要
- 検証ファイル数: N
- 問題検出数: X (High: H, Medium: M, Low: L)
- 判定: Pass | Conditional Pass | Fail
### WCAG コントラスト
| ファイル | 行 | 要素 | 現在比率 | 必要比率 | 状態 |
|---------|---|-----|---------|---------|------|
| button.css | 42 | .btn-text | 2.8:1 | 4.5:1 | ❌ |
| card.css | 15 | .card-title | 5.2:1 | 4.5:1 | ✅ |
### Light/Dark モード
| ファイル | 問題 | Light | Dark |
|---------|-----|-------|------|
| theme.css | --text-secondary | ✅ | ❌ 2.1:1 |
### フォーカス状態
| ファイル | セレクター | フォーカス表示 |
|---------|----------|--------------|
| button.css | .btn | ❌ outline: none |
### 修正推奨
1. **High**: button.css:42 - コントラスト比を 4.5:1 以上に
2. **Medium**: theme.css:78 - ダークモードの --text-secondary を調整
JSON 出力(--json フラグ)
{
"agent": "style-review",
"summary": "3 files, 2 issues",
"verdict": "fail",
"issues": [
{
"file": "button.css",
"line": 42,
"severity": "high",
"category": "accessibility",
"description": "コントラスト比 2.8:1 は WCAG AA 基準 4.5:1 未満",
"suggestion": "color: #374151 に変更(5.9:1)",
"wcag": "1.4.3"
}
],
"wcag_check": {
"contrast_pass": false,
"light_mode_tested": true,
"dark_mode_tested": true,
"focus_visible": false,
"reduced_motion": true
}
}
エラーハンドリング
| 状況 | 対応 | 出力例 |
|---|---|---|
| 対象ファイル 0 件 | 即時終了、メッセージ表示 | "対象 CSS ファイルが見つかりません。パスを確認してください" |
| CSS パースエラー | 該当ファイルをスキップ、他を続行 | {"file": "broken.css", "error": "CSS parse error at line 42"} |
| CSS 変数解決不能 | "解決不能" としてマーク | "description": "var(--external-color) は解決不能。手動確認推奨" |
| エージェント起動失敗 | リトライ 1 回、失敗時は手動レビューを推奨 | "css-expert エージェント起動失敗。手動レビューを実施してください" |
連携エージェント
| Agent | 役割 | 起動条件 |
|---|---|---|
css-expert | CSS 分析、WCAG 検証 | 常時(Task ツールで起動) |
nodejs-expert | ビルドツール設定 | PostCSS/Sass 設定ファイルが存在する場合 |
カスタマイズ
WCAG レベル変更
/style-review --wcag-level AAA
AAA 基準(より厳格):
- 通常テキスト: 7:1
- 大きいテキスト: 4.5:1
特定カテゴリのみ検証
/style-review --only contrast
/style-review --only focus
/style-review --only motion
関連リソース
レビュー
まだレビューはありません。使ってみた感想をお寄せください。
同じリポジトリのスキル
概要と使いどころ
AVFoundation (AVPlayer / AVPlayerLayer / AVPlayerItemVideoOutput / AVAsset) の落とし穴・文書化されていない実装挙動・debugging チェックリストを集約した reference skill。Swift / Objective-C で AVPlayer を使った動画再生 / seek / scrub / frame stepping を実装・debug するときに発火。VLCKit ではなく **AVFoundation 系** の問題に特化。
このセッションで行った変更をコミットする。「コミットして」「commit」「/c」で発火。push はしない/クレデンシャルは混入させない。
ディレクトリ・レイヤーごとに置いた CLAUDE.md と README.md が実体 (コード・コマンド・構成) とずれていないかを点検し、裏の取れた乖離だけを直す。引数で対象のディレクトリを任意に指定できる (省略時は repo 全体)。「CLAUDE.md を refresh して」「README が古くないか見て」「claude-md-refresh」「/claude-md-refresh」で発火。issues/ の更新漏れは issue-writeback / issue-sync の担当で、この skill は扱わない。
Codex が設計・実装を担い、Claude が要件確定・成果物の検証・反復・commit/push を管理する。「codex に書かせて」「codex メインで実装」「codex-drive」で発火。大きめの機能・移植・プロトコル実装向け。余剰トークンを厚く使う運用も選べる。
タスク着手時に codex にリードしてもらうワークフロー。codex に設計/方針を主導(リード)させ、その方針に沿って Claude が実装し、実装後は codex で設計適合・実装正当性・敵対的(red team)の 3 観点でレビューする。余っている codex トークンを積極的に消費したい時に使う。「codexにリードしてもらって」「設計から codex に任せて」「タスクを codex 主導で」「codex-lead」「/codex-lead」で発火。