commenting-visual-explainers/.claude/skills/setup-fb-tool/SKILL.md
2026-03-20 15:21:07 +09:00

185 lines
6.0 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

---
name: setup-fb-tool
description: 図解コメントツールのセットアップを対話的にガイドするスキル。「FBツールをセットアップして」「フィードバック機能を設定して」「FBツールを使えるようにして」「セットアップして」と依頼された際に使用する。
---
# Setup FB Tool
図解に対するフィードバック機能を使えるようにする初期セットアップ。VercelホスティングとNeon Postgresデータベースの設定を対話的にガイドし、図解テンプレートにwidgetスクリプトを埋め込む。
**実行するのは1回だけ。** セットアップ完了後は、図解を作ってSurgeにデプロイするだけで自動的にフィードバック機能が付く。
## 前提確認
### Node.js
```bash
node --version
```
バージョン番号が表示された → 次に進む。
`command not found``references/node-install-guide.md` の手順でインストールを案内する。
### Vercel CLI
```bash
vercel --version
```
バージョン番号が表示された → 次に進む。
`command not found` → 以下を実行:
```bash
npm install -g vercel
```
## ワークフロー
### Step 1: 依存関係のインストール
```bash
npm install
```
### Step 2: Vercelにログイン
```bash
vercel login
```
ブラウザが開く。以下を伝える:
> ブラウザでVercelのログイン画面が開きます。
> アカウントを持っていない場合は「Sign Up」から無料アカウントを作成してください。
> メールアドレスまたはGitHubアカウントで登録できます。
> ログインが完了したら、ターミナルに戻ってください。
### Step 3: APIトークンの生成
APIを保護するためのトークンを生成し、Vercelの環境変数に設定する。
```bash
openssl rand -hex 16
```
表示された文字列がトークン。これを2つの環境変数として Vercel に設定する:
```bash
echo "生成したトークン" | vercel env add API_TOKEN production
echo "生成したトークン" | vercel env add NEXT_PUBLIC_API_TOKEN production
```
`echo` の「生成したトークン」は実際に `openssl` で生成した値に置き換える。`vercel env add` が対話式プロンプトを出さずに値を受け取るよう、パイプで渡す。
同じトークンをルート直下の `fb-api-token.txt` に保存する1行、トークンのみ
**WindowsPowerShellの場合:**
```powershell
[System.Guid]::NewGuid().ToString("N")
```
表示された値を使って:
```powershell
echo "生成したトークン" | vercel env add API_TOKEN production
echo "生成したトークン" | vercel env add NEXT_PUBLIC_API_TOKEN production
```
同様に `fb-api-token.txt` に保存する。
### Step 4: Vercelにデプロイ
```bash
vercel --yes --prod
```
デプロイが完了すると以下の2つのURLが出力される。両方を控えておく:
- **Inspect URL**: `https://vercel.com/{slug}/{project}/...` 形式Step 5 で使う)
- **Production URL**: `https://xxx.vercel.app` 形式最終的なツールURL
### Step 5: データベースの追加
Step 4 の Inspect URL からデプロイID部分末尾のランダム文字列を削り、`/stores` を付けて Storage ページの直接URLを組み立てる。
例: Inspect URL が `https://vercel.com/test-his-projects/diagram-feedback-tool/FUPmRJe2cpEzXZGz` なら
`https://vercel.com/test-his-projects/diagram-feedback-tool/stores`
ユーザーにブラウザでの操作を案内する。以下の `{StorageページURL}` を組み立てたURLに置き換えて伝える:
> データベースを追加します。ブラウザで以下のURLを開いてください。
>
> {StorageページURL}
>
> ページが開いたら、以下の操作をしてください。
>
> 1. 「Create Database」をクリック
> 2. 「Neon Postgres」を選択
> 3. プランは「Free」を選択無料、クレジットカード不要
> 4. Resource Nameを `fb-tool-db` に変更
> 5. 「Create」をクリック
> 6. 次の画面で:
> - 「Search Projects」からプロジェクトを選択
> - 「Custom Prefix」の欄を `DATABASE` に変更
> - 「Connect」をクリック
>
> 完了したら教えてください。
### Step 6: 環境変数の取得とマイグレーション
```bash
vercel env pull .env.local
```
テーブルを作成:
```bash
npx tsx scripts/migrate.ts
```
`Migration complete.` と表示されれば成功。
### Step 7: 再デプロイ
```bash
vercel --prod
```
### Step 8: URLを保存する
Step 4またはStep 7で表示されたVercelのURL`https://xxx.vercel.app` 形式)を、ルート直下の `fb-tool-url.txt` に書き出す。URLのみを1行で保存する。
### Step 9: 完了報告
`fb-tool-url.txt``fb-api-token.txt` の存在を確認し、以下を伝える:
```
セットアップ完了
あなたの FB ツール URL:
https://xxx.vercel.app
APIはトークンで保護されています。
図解のデプロイ時にトークンが自動で埋め込まれるため、追加の操作は不要です。
以降「図解を作って」と伝えるだけで、FB 機能付きの図解が公開されます。
フィードバック画面を直接開く場合:
https://xxx.vercel.app?url=公開ページのURL
```
## エラー対応
エラーメッセージをそのまま見せず、何が起きていて何をすれば解決するかを平易に説明する。
- **`vercel: command not found`** → `npm install -g vercel` を実行
- **`DATABASE_URL is not set`** → Step 5のデータベース追加が完了しているか確認。完了していれば `vercel env pull .env.local` を再実行
- **マイグレーション失敗** → `.env.local``DATABASE_URL` が含まれているか確認
## 依存
- `package.json` — FBツールの依存関係
- `scripts/migrate.ts` — DBマイグレーションスクリプト
- `references/node-install-guide.md` — Node.jsインストール手順