qa-uilisted
Install: claude install-skill YasuakiOmokawa/skills
# UI QA Loop
ChromeDevTools MCPを使い、独立コンテキストのQAエージェントでUI検証を行う。
Generator-Evaluator分離: 実装した自分自身ではなく、別エージェントが画面を見て判定する。
## Arguments
- `$ARGUMENTS`: 確認したい画面やURL(省略可)
- 指定あり: 指定された画面を優先的に検証
- 指定なし: ACファイルまたはgit diffから自動特定
## ワークフロー
### Step 1: ChromeDevTools MCP接続確認
`mcp__chrome-devtools-direct__list_pages` を呼び出す。
- 成功 → Step 2 へ
- 失敗 → 以下を表示して**停止**:
「ChromeDevTools MCPに接続できません。Chromeが起動しているか確認してください。」
### Step 2: 検証対象 URL の決定 + 開発サーバー確認 + ログイン
1. **検証対象 URL の決定**(URL のハードコード禁止):
- `$ARGUMENTS` に完全な URL が含まれる → そのまま採用
- `$ARGUMENTS` がパスの��(`/teams/123/foo` 等) → ベース URL をユーザーに尋ねて結合
- `$ARGUMENTS` が空 → 以下を表示して**停止し、ユーザーの返答を待つ**:
「検証対象のベース URL を教えてください(例: `http://localhost:3000` / staging URL 等)。」
2. `mcp__chrome-devtools-direct__navigate_page` で決定した URL にアクセス
3. `mcp__chrome-devtools-direct__take_snapshot` で画面状態を確認
4. 判定:
- ログイン済み(「でログイン中」の文字列がある) → そのまま進行
- ログイン画面が表示された → 以下を表示して**停止し、ユーザーの返答を待つ**:
「ブラウザで対象環境にログインしてから「ログインしました」と返答してください。検証はその後に再開します。」
ユーザーから合図を受けたら `take_snapshot` で再確認し、ログイン済みなら進行。
- 接続失敗(`net::ERR_CONNECTION_RESET` 等) → 以下を表示して**停止**:
「対象サーバーに接続できません({URL})。サーバーが起動しているか、URL が正しいか確認してください。」
- DB未起動(`ActiveRecord::ConnectionNotEstablished`) → 以下を表示して**停止**:
「PostgreSQLが起動していません。DBを起動してから再実行してください。」
- Pending Migration画面(`ActiveRecord::PendingMigrationError`) → 「Run pending migrations」ボタンを `click` して待機後にリロードして再確認
⚠️ **URL・認証情報のハードコード禁止**。検証対象 URL は `$ARGUMENTS` またはユーザーへの質問で動的決定する。ログイン操作とテストユーザー選択はユーザー