デプロイ済みアプリの表示内容をClaudeがブラウザなしで読む2経路
Supabaseスナップショット直読みとPlaywright storageStateで認証付きAPIを叩く。素のfetchがログインHTMLを200で返す罠と報告の型
約900トークンの節約 (API料金換算で約1円分)。 要件定義・技術調査・試行錯誤ぶんのトークンがまるごと不要になります。※ 出品者申告とレビューに基づく推定値。モデル・タスク内容により変動します。
この巻物について
「デプロイ済みアプリの表示内容をClaudeがブラウザなしで読む2経路」は、Web開発カテゴリのAI指示書(MDファイル)です。Supabaseスナップショット直読みとPlaywright storageStateで認証付きAPIを叩く。素のfetchがログインHTMLを200で返す罠と報告の型この巻物をAIに読み込ませると、ゼロから設計・調査する場合に比べて 約900トークン(API料金換算で約1円)・50%のトークンを節約できます。
- カテゴリ
- Web開発
- 対応AI
- claude-code、cursor、codex-cli
- ライセンス
- 商用利用可 (再販不可)
- 価格
- 無料
- ゼロから開発時
- 約1,800トークン
- この巻物使用時
- 約900トークン
- 節約量
- 約900トークン (約1円)
- 更新日
- 2026-10-21
使い方 (AIに渡す3つの方法)
いちばん簡単なのはワンライナー。Claude Code のターミナルに貼るだけです。
claude "https://makimono-md.vercel.app/api/v1/files/claude-2/raw を読み込んで、この指示書どおりに実装して"
中身
デプロイ済み Web アプリの表示内容を、ブラウザ操作なしで Claude が読む
課題
「アプリの画面を開いて数値を確認してください」と user に頼むと、往復が1回増えるだけで得られる情報は変わらない。 同じデータは多くの場合、Claude 側から2経路で読める。読み取りは自分で行い、user には判断だけを残す。
前提(アプリ側の設計)
- 画面が表示している取得結果を、localStorage ではなく DB のスナップショット表(例:
snapshots(id text primary key, payload jsonb, fetched_at timestamptz))に保存していること。 - 画面が叩く API が、セッション Cookie 認証で動いていること。
- この2つがあれば、以下の2経路が使える。
経路1: DB を直接読む(最速・0.2秒)
GET {SUPABASE_URL}/rest/v1/snapshots?id=eq.<key>&select=payload,fetched_at
Headers: apikey: <ANON_OR_SERVICE_KEY>
Authorization: Bearer <ANON_OR_SERVICE_KEY>
payloadに画面と同じ JSON が入っている。fetched_atを「取得日時」として報告に添える。- 書き込み権限は不要。読み取り専用キーで足りる。
- 注意: 画面が
?refresh=1のときだけ再取得する設計なら、DB の値は「最後に誰かが更新した時点」のもの。鮮度が要るなら経路2。
経路2: ログイン済みの API を叩く(最新値を取得)
Playwright の storageState(E2E テストが保存したログイン状態)を使う。
const { request } = require('@playwright/test');
const ctx = await request.newContext({
baseURL: 'https://<your-app>.vercel.app',
storageState: 'e2e/.auth/user.json',
});
const res = await ctx.get('/api/<endpoint>?refresh=1');
const json = await res.json(); // { result, fetchedAt, fetchedBy, cached }
- 認証は Cookie なので、
storageStateを渡すだけで通る。トークン再発行は不要。 refresh=1を付けるとサーバー側が外部 API を叩き直す。付けないとキャッシュが返る(高速)。
ハマりどころ(実測)
- 素の
fetchは 200 でログイン画面の HTML を返す。認証エラーにならないので、JSON パースで初めて気づく。 →res.headers()['content-type']がtext/htmlなら未認証と判定する。 - デプロイ直後は古いビルドが応答する。Vercel のデプロイ完了を待つか、レスポンスの
fetchedAtが新しいことを確認する。 - E2E のログイン状態が切れていると 302 でログインへ飛ぶ。
res.status()と最終 URL を必ず確認する。
報告の型
- 数値・一覧・判定は本文に転記する(スクリーンショットや URL だけを渡さない)。
- 取得日時と取得経路を1行添える(例: 「2026-10-21 03:11 取得 / Supabase snapshots 直読み」)。
- URL は「user が操作したくなったとき用」に添えるだけにする。
- 前回取得時との差分があれば、聞かれる前に報告へ載せる。
検証
- 経路1と経路2の主要な数値が一致することを read-back する。一致しなければ鮮度差(キャッシュ)を疑い、
fetched_atを比べる。
よくある質問
+「デプロイ済みアプリの表示内容をClaudeがブラウザなしで読む2経路」とは何ですか?
Supabaseスナップショット直読みとPlaywright storageStateで認証付きAPIを叩く。素のfetchがログインHTMLを200で返す罠と報告の型
+どれくらいトークン(費用)を節約できますか?
ゼロから開発すると約1,800トークンかかりますが、この巻物を使えば約900トークンで済みます。差し引き約900トークン(API料金換算で約1円)・50%の節約です。
+どうやって使いますか?
無料です。MDファイルを Claude Code などのAIに読み込ませるだけ。ワンライナーをターミナルに貼れば実装が始まります。要件定義や技術調査を省いて実装だけにトークンを使えます。
+どのAIツールに対応していますか?
claude-code、cursor、codex-cli に対応しています。
+商用利用できますか?
ライセンスは「商用利用可 (再販不可)」です。
🤝 自分でAIを動かすのは、まだ不安…という方へ
この巻物の内容を、AIを使うプロに丸ごと任せることもできます。姉妹サービスAI代行堂なら「LINEで頼むだけで、仕事が完成」。
関連する巻物
Next.js + Supabase + Vercel 立ち上げ完全自動化MD
新規Webサービスの立ち上げ (GCP/GitHub/Vercel/Supabase のプロジェクト作成〜環境変数〜本番デプロイ) を AI に一気通貫でやらせる指示書。人間の作業はログイン1回だけ。
投稿の審査キューを「信頼済みだけ自動公開」で捌く設計(なりすまし穴つき)
審査キューに投稿が溜まったまま埋もれる問題を、信頼済み投稿だけ即公開する形で潰す指示書。無検証のキー発行を信頼判定に使うと第三者が自社メールを騙れる穴と、サーバレスで静的公開棚に実行時公開を足す方法、検証10項目まで含む。
Vercel の Sensitive 環境変数が誰にも読み戻せない状態を作り直さずに解消し、Development 正本+毎日の差分監視で恒久化する
本番 env が全て Sensitive で共有不能なとき、skip-domain の一時本番デプロイ+RSA 暗号化で1回だけ取り出し、Development を正本化、env:set 入口と GitHub Actions の parity 監視で再発を止める手順
この巻物、誰かのトークンも救えます
𝕏 で節約レシートをシェア