Codexによるread-onlyローカルレビューを実行する。Triggers on: '/codex-review', 'Codexでレビューして', 'クロスモデルレビューして'
demo
AIがHeaded Playwrightでアプリを操作しながら動作確認を行い、ユーザーは画面を見て承認する。Triggers on: '/demo', '/walkthrough', '動作確認して', 'デモして'
含まれるファイル(4)
- SKILL.md8.3 KB
- scripts/lib/parse-pause-ms.mjs2.6 KB
- scripts/run-walkthrough.mjs12.2 KB
- scripts/walkthrough-setup.sh6.8 KB
SKILL.md(原文)
インストールする前に、エージェントに与えられる指示の中身を確認できます。
AI動作確認(デモ)
AI が Headed Playwright(可視ブラウザ)でアプリケーションを操作しながら、各ステップをナレーションします。ユーザーは画面を見て OK / NG を返すだけです。手動動作確認の負荷を肩代わりするためのスキルです。
/walkthroughは非推奨(旧称)です。今後は/demoを使用してください。
入力パラメータ
対象機能: $ARGUMENTS(Issue番号 / PR番号 / 機能名。なければユーザーに確認)
前提
- Playwright がプロジェクトに導入されていること(無ければ導入を提案)
- dev server / アプリの起動方法が
CLAUDE.mdから判別できること
手順
Phase 1: シナリオ設計
CLAUDE.md(テスト方針・起動コマンド・E2E設計書)を読む- 対象機能の完了条件・シナリオを把握する(Issue/PR/設計書から)
- 動作確認するシナリオ(正常系のハッピーパス中心)と、完了条件とのトレーサビリティを提示する
## 動作確認シナリオ
| # | シナリオ | 対応する完了条件 |
|---|---------|----------------|
| 1 | ... | ... |
この内容で動作確認を進めてよいですか?
Phase 2: 環境準備
dev server とテストデータを整えたうえで、同梱スクリプトで Playwright(Headed) 環境を準備する。ブラウザ導入・OS依存・module 解決・runner はスクリプトが肩代わりするため、エージェントがアドホックに再実装しない。
<!-- 正本: docs/plugin-path-conventions.md -->スクリプトの実行形(重要): 本スキルはプラグインとして配布されるため、スクリプトはユーザーのプロジェクトroot ではなく、プラグイン配下にある。実行は必ず PATH 上のランチャー経由で
claude-harness-run skills/demo/scripts/<ファイル名>の形式(パス・バージョン・引用符を付けない。この形だけがBash(claude-harness-run:*)の1行で allowlist できる)を用い、相対パスskills/demo/scripts/...では呼び出さないこと。環境変数(WALKTHROUGH_*)はコマンドの前に置かず、claude-harness-run --env KEY=VALUE ...で渡す(前置形は allowlist にマッチしない)。claude-harness-run: command not foundになった場合のみbash "<プラグインルート>/skills/demo/scripts/<ファイル名>"(.mjsはnode)にフォールバックする(パスは引用符で囲む。プラグインルートはスキル起動時の「Base directory for this skill」から解決した絶対パス。${CLAUDE_PLUGIN_ROOT}は表記上のプレースホルダであり環境変数ではない)。フォールバックした場合はユーザーにランチャー導入を案内すること。cdはせず、dev server を起動したプロジェクトを cwd にしたままスクリプトを実行する(runner は cwd の git root から@playwright/testを解決する)。
-
dev server / テストデータ
- dev server をバックグラウンドで起動し、起動を確認する(
BASE_URLを控える。既定http://localhost:3000) - 必要なテストデータを投入する
- dev server をバックグラウンドで起動し、起動を確認する(
-
セットアップスクリプトを実行
claude-harness-run skills/demo/scripts/walkthrough-setup.shを実行する。- 内部で
playwright install chromiumを行い、unameで OS 判定して依存導入を分岐する(macOS は依存導入をスキップ/Linux は full chromium に対しlddで不足を検出)。 - 出力末尾の
WALKTHROUGH_SETUP_STATUS=<ready|deps-missing|error>を確認する。 errorの場合は再実行せず、まずセットアップログを確認して原因(Playwright 未導入など)を解消してから2.をやり直す。
-
不足があれば案内コマンドで導入
deps-missingの場合、スクリプトは sudo を勝手に実行せず、必要なコマンド(例:sudo <playwright> install-deps chromium)を表示して正常終了する。- 表示されたコマンドをユーザーに実行してもらうよう促す(非対話環境ではエージェントは実行できない)。導入後に再度
2.を実行する。
-
runner で起動
claude-harness-run skills/demo/scripts/run-walkthrough.mjs "/絶対パス/flow.mjs"をプロジェクトを cwd にしたまま実行する。 runner はcreateRequireで(cwd の git root 起点に)プロジェクトの@playwright/testを解決するため、プラグイン配下の場所から実行しても壊れない。- headed + slowMo + trace が既定 ON。ステップ実況ログ・スクショ・動画保存も runner が行う。
WALKTHROUGH_PAUSE_MS(任意)に正の整数msを指定すると、ctx.step/ctx.goto完了直後に runner が自動でその時間だけ静止する(ゆっくり見せたい場合に使う)。未指定・不正値(0/負数/非数値・2147483647超過等)の場合は静止しない=従来どおりの挙動。BASE_URL/E2E_USERNAME/E2E_PASSWORDは env で渡す(E2E_*は/create-e2eと共通の命名)。操作手順はflow.mjs(export default async (ctx) => {...})に書き、ctx.goto/ctx.step/ctx.shot/ctx.loginを使う。flow ファイルは絶対パスで渡すこと(cwd 相対で解決される)。- 表示不可環境(Linux で
DISPLAY無し等)では runner が自動的に headless + スクショへフォールバックする。明示制御はWALKTHROUGH_HEADED=false(headless)/WALKTHROUGH_HEADED=true(headed 強制)。WSL の Headed は WSLg(DISPLAY)前提。 - 注意: trace は入力値も記録され得る(
sources有効)。認証情報を含む成果物の取り扱いに注意する。
Phase 3: デモ実行
各シナリオについて、Headed Playwright でブラウザを操作しながらステップを実況する:
- 各操作の前に「これから何をするか」を一文で述べる(例:「ログイン画面を開きます」→「認証情報を入力します」→「ログイン成功を確認します」)
- 操作を実行し、画面の結果を述べる
- シナリオ完了後、ユーザーに確認を求める:
## シナリオ {N}/{総数}: {名前}
{実行したステップの要約}
→ 期待結果: {...}(達成 / 未達成)
画面の動作を確認してください(OK / NG / 修正点)。
| ユーザー回答 | アクション |
|---|---|
| OK | 次のシナリオへ |
| NG + 詳細 | 問題を報告。実装側の修正が必要な場合はその旨を伝える |
| 修正点 | シナリオを調整して再実行 |
Phase 4: エビデンスと結果
- 各シナリオの trace / スクリーンショット / 動画の保存先を報告する
- 結果サマリー(確認済み / NG / スキップ)を提示する
Phase 5: E2Eテスト化(任意)
ユーザーが希望する場合、OK となったシナリオを E2Eテストとして永続化する:
/create-e2eを呼び出し、確認済みシナリオを正常系テストケースとして実装する(create-e2e は非対話・仕様ベース)- 動作確認はこのデモで完了しているため、確認済みシナリオをそのままテストケース化する
注意事項
- 破壊的操作(データ削除・外部送信)を伴う場合は、実行前にユーザーへ確認する
- 操作対象が見つからない場合は
data-testid等のセレクタを確認し、必要なら実装側に追加を提案する - メール送信等の外部副作用は、送信トリガーまでの確認に留める
レビュー
まだレビューはありません。使ってみた感想をお寄せください。
同じリポジトリのスキル
概要と使いどころ
調査(read-only)または雑務(workspace-write)をCodexへ委譲し、結論をJSONで受け取る。Triggers on: '/codex-task', 'Codexで調べて', 'Codexにやらせて', 'Codexへ委譲'
Conventional Commits形式でコミットする。Triggers on: '/commit', 'コミットして', 'commit changes'
恒常的な設計決定を ADR として記録する(退役する機能仕様から ADR 昇格の要否を判定するモードを併せ持つ)。定常フローの必須ステップではなく、必要時に呼ぶ。Triggers on: '/create-adr', 'ADRを書いて', '設計判断を記録', 'ADR昇格を判定'
仕様(チケットの完了条件・受入基準)からE2Eテストを実装する(非対話)。Triggers on: '/create-e2e', 'E2Eテストを書いて', 'E2Eテストを追加して'
機能仕様ドキュメントから要件チケットを作成する、または親要件チケットを実装チケット群に分解する。Triggers on: '/create-ticket', 'チケットを作成', 'Issueを作って', 'create ticket', '実装チケットに分解'