RelGuard の最初のモジュール — Quality Guard for Relipa
テストケースはあなたのもの。
スクリプト・実行・バグ報告は RelGuard が担う。
RelGuard Test は、チームが今まさに書いている Markdown テストケースをそのまま読み込む VSCode 拡張機能です。AI が自動化できるケースを分類して Playwright スクリプトを生成し、実行し、全ケースのエビデンスを取得して、失敗時は Backlog に Issue を作成します。新しいツールを覚える必要はなく、ドキュメントのフォーマットを変える必要もありません。
VSCode ≥ 1.85 · Node.js ≥ 18 · Claude Code CLI ログイン済み · Marketplace 未公開
VSCode 内で完結 — 独立したサーバーやクラウドは不要
300ケース中の1ケースを編集 — 再生成はそのケースのみ
Pass・Fail 両方のケースにエビデンス(赤枠付き)を取得
RELGUARD TEST
| ID | テストケース名 | 種別 | SCRIPT | ROUND 18 |
|---|---|---|---|---|
| TC-001 | 正常に登録できる | UI | ✅ | Pass |
| TC-002 | メールアドレスが無効 | UI | ✅ | Fail |
| TC-003 | 18歳未満 | API | ✅ | Pass |
| TC-004 | 物理デバイスで確認 | Manual | 🖐 | — |
4テストケース · 2スクリプト生成済 · 1手動
RelGuard が生まれた理由
登録画面、年齢フィールド、「18歳以上」というルール。テスターは仕様を読み、ケースを考え、テストケースを書き、それを実行するコードも書かなければならない — そして API 層と UI 層の両方でこの作業を繰り返す。
API: 最低年齢 = 20歳
UI: 「年齢は18歳以上である必要があります」
バックエンドがルールを変更したが、UI はまだ追いついていない。各層は単独でテストすると「正しい」が、ユーザーは誤った情報を見ている — そして現在、この2つの層を自動的に突き合わせる仕組みは存在しない。
時間がかかる
ケースを考えてスクリプトが動くまでに、1テストケースあたり約30〜45分。
繰り返しの作業
空白・フォーマット違反・境界値超過という同じパターンを、フィールドごと・画面ごとに書き直す。
エッジケースの見落とし
ケースの数は、その日書いた人が思いついた量に依存する。
何を再実行すべきかわからない
ルールが18→20に変わった場合、年齢フィールドに関係するテストケースを手動で探し回らなければならない。
UI と API がこっそりズレる
手動テストでは発見しにくいよくあるバグ。多くの場合、顧客が気づいたときに初めて発覚する。
RelGuard はテスターや開発者の代わりにはなりません。RelGuard が繰り返し作業を引き受けることで、人間は思考と品質判断が必要な部分に集中できます。
機能:テストサイクル全体をカバー
テストケースのインポートから Backlog への Issue 登録まで、すべてのステップが同じ VSCode ウィンドウ内で完結します。
AI はスクリプトを書く — テストケースを作り上げない
チームの標準7列テンプレートで書かれた Markdown テストケースファイルをインポートします。AI はケースを追加・削除・リネームすることは一切できません — できることは2つだけです:各ケースを「自動化可能」か「手動テストが必要」かに分類すること、そして自動化可能なケースに対して1つの Playwright スクリプトを書くこと。手動テストのケースは理由のメモとともにリストに残り、テストスイートは機械が実行できる部分だけに縮小されません。
変更されたケースだけを再生成
テストケースごとに独自のハッシュを持ちます。300ケース中の TC-015 を編集すると、AI に送られるのは TC-015 だけで、残り299件のスクリプトはそのまま — 書き直しも、無駄なトークン消費もありません。削除または種別変更されたケースの古いスクリプトは _stale フォルダに移動 — 実行対象から除外されますが、復元可能です。
実行中のライブダッシュボード
Run Tests を実行すると実際のブラウザが開き、進行中の Playwright アクション(page.goto、locator.click、expect…)をリアルタイムで中継します。実行中に停止・一時停止・再開ボタンを利用できます。プロセスがクラッシュまたは中断された場合も、収集済みの結果は保存され、有効なラウンドとして記録されます。
失敗だけでなく全ケースのエビデンス
全テストケースに、アサートした要素を赤枠でハイライトしアノテーション付きのスクリーンショットが生成されます — Pass ケースも同様です。API テストでは、リクエストとレスポンスが HTML ページとしてレンダリングされ、検証対象フィールドがハイライトされます。これはデバッグ用ではなく、報告書に添付できる検証済みのテストエビデンスです。
AI による失敗分析
テストが失敗したら「失敗を分析」をクリック:AI が根本原因・対応方針・対応事項・工数見積もりを返し、テストスクリプトのバグかアプリケーション本体のバグかも明示します。
Backlog に直接バグ登録
エビデンスのスクリーンショットとバグレポートファイルを添付した Backlog(Nulab)Issue を作成します。説明文はチームのバグログテンプレートそのままに構成され、「2/5ラウンド(40%)」形式の再現率も含まれます。再アップロードすると既存の Issue が更新され、重複作成はありません。
不足テストケースの提案
AI が既存のスイートをレビューし、4つのカテゴリー(機能・非機能・観測可能なパフォーマンス・セキュリティ)で追加ケースを提案します — 各提案には理由が付きます。保存したい提案にチェックを入れると、元の Markdown ファイルに書き戻されます。
テストスケジュール
ファンクションごとに1回・毎日・毎週・毎月のスケジュールを設定でき、月末日は自動調整されます。実行中のラウンドがある場合、次の予定スロットはキューに積まれず、スキップされます。
並列スクリプト生成
複数の AI プロセスが同時に実行されます。並列ジョブ数とジョブごとのケース数はどちらも設定可能です。1つのジョブが失敗しても他のジョブには影響しません — 完了したジョブはその都度ディスクに書き込まれます。
タスクに応じたモデル選択
3つの固定選択肢:Haiku 4.5(デフォルト、最低コスト)、Sonnet 5、Opus 5。ワークスペース全体のデフォルトを設定するか、ファンクションごとの Sync Test 実行ごとに個別選択できます。
Function Spec レーン — 要件仕様からテストを生成
Markdown 形式のユーザー要件・システム要件ドキュメントを入力すると、AI がファンクション全体の API テストと UI テストを同時に生成します。UI スクリプトを書く前に、ツールは Chromium で実際の画面を開いて DOM を読み取り、各フィールドのウィジェット種別(ネイティブ select、カスタムコンボボックス、チェックボックス、ラジオ、日付)を正確に識別します。このレーンは現在サイドバーから一時的に非表示で、Command Palette からのみ呼び出せます — コードはそのまま残っており、いつでも再有効化できます。
4ステップ — チームが今持っているテストケースファイルをそのまま使う
- 01
テストケースをインポート
RelGuard サイドバーでファンクションの「テストケース」パネルを開き、📥 インポートをクリックします。標準7列テンプレートで書かれた Markdown ファイルを選択:Test Case ID · Test Case Name · Severity · Pre-condition · Steps · Data Test · Expected Result。列ヘッダーが違う場合、ツールは正確な行番号を報告してインポートを拒否します — 誤読のままサイレントに取り込まれることはありません。
- 02
テストを同期
🔄 Sync Test をクリックし、画面 URL / API ベース URL / 認証ヘッダーを入力して AI モデルを選択します。RelGuard は各ケースをハッシュ化し、新規または変更されたケースのみを AI に送信して Playwright スクリプトを生成します — API で始まる ID のケースは API テスト、それ以外は UI テストになります。
- 03
テストを実行
1ラウンドでそのファンクションの UI テストと API テストを同時実行し、実際のブラウザを開いて進行状況を確認できます。ワーカー数・実行速度の選択、またはベース URL を上書きしてスクリプトを再生成せずにステージング環境を指定できます。
- 04
結果を確認してバグを登録
ラウンドごとのレポートには Pass/Fail/Untested の集計・時間・ケースごとのエビデンスが含まれます。複数ラウンドの集計レポートには KPI・Pass rate グラフ・Test Execution Summary テーブルがあります。失敗ケースは詳細を開き、AI に分析を依頼して Backlog に直接登録できます。
次回はテストケースファイルを編集して再度 Sync するだけ — RelGuard が何が変わったかを自動的に把握します。
1件のテストケースを編集しても、残り299件のコストは発生しない
テストケース単位の変更検出は、テストスイートが大きくなるにつれて RelGuard の最大の差別化ポイントになります。
| 基準 | 従来の方法 | RelGuard 使用時 |
|---|---|---|
| AI に送信するデータ | テストケースファイルの大部分を再読み込み | 変更部分のみ |
| AI コスト | ファイルサイズに比例して増加 | 変更ケース数に比例して増加 |
| 変更されていないスクリプト | AI に書き直される可能性がある | そのまま保持 |
| レビュー工数 | 多くの変更をレビュー | 新しい部分のみレビュー |
このメカニズムはメインフローでテストケース単位で機能します。Function Spec レーンでは、1つのルールが変更されるとファンクション全体が再処理されます — 関連フィールド間でルールが交差表示されるため、差分が小さいと関連ケースを見落とすリスクがあるためです。
テストが失敗したとき、RelGuard は「Failed」で止まらずに先へ進む
テスト失敗
自動エビデンス
AI 分析
Backlog Issue
テスト失敗
.md バグレポートが失敗の瞬間に生成され、エラー出力とエビデンス画像のパスが含まれます。
自動エビデンス
ページ全体のスクリーンショット。アサートした要素が赤枠でハイライトされアノテーションラベルが付きます。
AI 分析
根本原因 · 対応方針 · 対応事項 · 工数見積もり — そして、これがテストスクリプトのバグかアプリケーション本体のバグかを明確に示します。
Backlog Issue
Issue タイプ Bug、サマリー [TC-ID] ケース名、説明はチームのバグログテンプレートそのまま、エビデンス画像とバグレポートファイルを添付。
# バグ報告 (テスター・報告者)
## テスト環境
## 前提条件
## 手順
## 実際の結果
## 期待する結果
## バグ発生率 → 2/5ラウンド (40%) — ラウンド3、5で失敗
## エビデンス
# 自動分析 (RelGuard AI)
## 根本原因 / 対応方針 / 対応事項 / 工数見積もり
# バグ修正 (開発者)
## 根本原因 / 修正内容 / 影響範囲 / マージリクエスト / セルフレビューVSCode 内で送信前にアップロードされる全内容をプレビューできます。
期待される効果
以下の数値は、現在のテストワークフローの調査をもとに RelGuard が目指す目標値です。
| 基準 | 現状 | RelGuard 使用時 | 期待値 |
|---|---|---|---|
| テスト + スクリプト作成 | 約60〜90分 / 100ケース | 約20〜30分 / 100ケース | 約75%削減 |
| 変更時のレビュー | 多くの箇所をレビュー | 変更箇所に集中 | 約80%削減 |
| エッジケースの見落とし | 経験に大きく依存 | AI によるサジェスト | 約50%削減 |
| 1日あたりのテスト実行数 | 約50ケース | 約150ケース | 約200%増加 |
これらはハッカソン提案書の推定値です。実際の数値は Q1/2027 のパイロット期間中に計測されます。
ロードマップ
RelGuard は Test → Process → Security の順に進みます。次のガードは前のガードが実際のプロジェクトでパイロットされ、明確な評価結果が出てから開始されます。
- Q4/2026進行中
パイロット準備の完成
全シークレットを SecretStorage に移行 · マルチプラットフォームで typecheck + 単体テストを実行する CI を構築 · VSCode が開いていることへのスケジューラ依存問題を解決 · タグで .vsix ビルドを自動化 · 社内配布チャネルを選定 · パイロットプロジェクトを1〜2件選定。
- Q1/2027計画中
パイロットと実際の効果測定
実際のプロジェクト1〜2件で実行し、本番環境でのみ発見されるバグを記録し、実データで上記テーブルの全数値を再測定してから、広範なロールアウトの Go/No-go を判断します。
- Q2/2027計画中
展開拡大 + RelGuard Process 開始
パイロット成功時はさらなるプロジェクトへ展開。RelGuard Process MVP の設計と開発を開始 — 要件とコードレビューの品質ゲート。既存の Core Engine・Report Renderer・サイドバーを再利用します。
- Q3/2027方向性
RelGuard Security 開始
具体的なスコープ(SAST、依存関係スキャン、DAST…)を定義し、MVP を構築してパイロット。このマイルストーンは現在方向性のみ — 実装前に UC Spec と技術的スコープが必要です。
RelGuard — Quality Guard for Relipa
├── RelGuard Test → 既存テストケース · Function Spec
├── RelGuard Process → 要件 / コードレビューの品質ゲート
└── RelGuard Security → セキュリティ脆弱性スキャンマネジメントレベルで未解決の問題:パイロット期間中に実際の顧客のスペックとテストケースデータを Claude API に通すことが許可されるかどうか。この決定がなければ Q1/2027 のマイルストーンは後ろ倒しになる可能性があります。
インストール
Node と Claude Code CLI がすでに入っていれば約5分で完了します。
RelGuard Test は VSCode Marketplace には公開されていません。こちらから直接ダウンロードした .vsix ファイルを使ってインストールします — VSCode が未署名の拡張機能に関する警告を表示する場合がありますが、社内用拡張機能では通常のことです。
- 1下のボタンで .vsix ファイルをダウンロードします。
- 2VSCode で拡張機能(Ctrl+Shift+X)を開き → 右上の ⋯ メニュー → 「VSIX からインストール...」を選択。
- 3ダウンロードしたファイルを選択。インストール完了後、リロードを求めるプロンプトが表示されます — 「リロード」をクリックします。
- 4アクティビティバーにシールドアイコンが表示されます。クリックするとサイドバーに5つのセクションが表示されます:プロジェクト · ファンクション · テスト · スケジュール · 設定。
# 1. ダウンロードした .vsix ファイルから拡張機能をインストール
code --install-extension relguard-test-0.1.0.vsix
# 2. Playwright の Chromium をインストール(テスト対象プロジェクト内で実行)
npx playwright install chromium
# 3. Claude Code CLI のログイン状態を確認
claude --versionインストール後の最初のステップ
- プロジェクトディレクトリ内で claude を一度インタラクティブに実行してトラストダイアログを承認します — RelGuard は CLI 経由で Claude を呼び出すため、このステップが必要です。
- サイドバー → ファンクション → ➕ で最初のファンクションを作成(1つの画面または機能 = 1ファンクション)。
- サイドバー → テスト → テストケース → 📥 で Markdown テストケースファイルをインポートし、🔄 Sync Test を実行。
サイズ 約4.4 MB · VSCode ≥ 1.85 対応
よくある質問
不要です。RelGuard はマシン上の Claude Code CLI を通じて Claude を呼び出し、その既存のセッションを再利用します。API キーは拡張機能にハードコードも保存もされません。
はい — Claude に送信されるプロンプトにはテストケース・要件ドキュメント・DOM 情報・バグレポートの内容が含まれるため、そのデータは Claude API を通過します。これが、実際の顧客データで RelGuard を使用することがマネジメントレベルのデータガバナンス決定を待っている理由です。Backlog API キーは OS が暗号化する vscode.SecretStorage を使用して保存されます。
メインフローではありません。AI はインポートしたファイルのケースを追加・削除・リネームすることは一切許可されていません — 分類(自動化可能 / 手動)とスクリプト作成のみです。AI に新しいケースを提案させたい場合は専用の「不足テストケースの提案」ボタンがあり、すべての提案はチェックを入れるまで保存されません。
テストケースリストにそのまま残り、手動ラベルと理由メモが付きます(物理デバイス操作・目視確認・ネットワーク断のシミュレーションなど)。テストスイートは完全なまま保たれ、機械が実行できる部分だけに削減されません。
いいえ。スケジュールタイマーは拡張機能プロセス内にあり、VSCode が開いている間のみ動作します — OS の cron ではなく、現時点では予定スロットが見逃された場合のアラートもありません。これを独立して実行できるよう分離することは Q4/2026 ロードマップに含まれています。
はい。唯一の制限は実行中の一時停止ボタンです(POSIX シグナルが必要)。停止ボタンは正常に動作します。
現在はサポートしていません。RelGuard は設計方針を変更しました:入力はチームの標準テンプレートに従った Markdown テストケースファイル、または Function Spec レーンの Markdown 要件ドキュメントです。他のフォーマットのサポートは現在のスコープ外です。
Playwright 経由の Chromium(デスクトップ Chrome)です。Firefox、WebKit、モバイルデバイスは未対応で、レスポンシブテストやビジュアル比較も対象外です。
AI にスクリプトを書いてもらう準備はできていますか?
拡張機能をダウンロードし、手元にあるテストケースファイルをインポートして、Sync Test を一度クリックして結果を確認してください。
VSCode ≥ 1.85 · Node.js ≥ 18 · Claude Code CLI · Playwright Chromium