first commit

Made-with: Cursor
This commit is contained in:
hiroki ito
2026-03-19 13:59:28 +09:00
commit bc8a281e4c
53 changed files with 16373 additions and 0 deletions
+175
View File
@@ -0,0 +1,175 @@
---
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行、トークンのみ)。
**Windows(PowerShell)の場合:**
```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
```
デプロイが完了するとURLが表示される。このURLを控えておく。
### Step 5: データベースの追加
ユーザーにブラウザでの操作を案内する。以下をそのまま伝える:
> データベースを追加します。ブラウザで以下の操作をしてください。
>
> 1. Vercelのダッシュボード(https://vercel.com)を開く
> 2. デプロイしたプロジェクトをクリック
> 3. 上部タブの「Storage」をクリック
> 4. 「Create Database」をクリック
> 5. 「Neon Postgres」を選択
> 6. プランは「Free」を選択(無料、クレジットカード不要)
> 7. Resource Nameを `fb-tool-db` に変更
> 8. 「Create」をクリック
> 9. 次の画面で:
> - 「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インストール手順
@@ -0,0 +1,66 @@
# Node.js インストールガイド
SKILL.md の前提確認で Node.js が未インストールだった場合に参照する。
## 説明と許可
以下をユーザーに伝え、インストールの許可を求める:
> フィードバックツールのセットアップには「Node.js」のインストールが必要です。
> Node.js は、パソコン上でプログラムを動かすための土台で、世界中で使われている安全な道具です。
> **AI-Driven School 運営が確認済みですので安心してください。**
>
> 今からインストールしてもよいですか?
ユーザーが許可しなかった場合 → セットアップを中断する旨を伝えて終了。
## macOS の場合
インストーラーをダウンロードする:
```bash
PKG_NAME=$(curl -sL https://nodejs.org/dist/latest-lts/ | grep -o 'node-v[0-9.]*\.pkg' | head -1) && curl -fsSL "https://nodejs.org/dist/latest-lts/${PKG_NAME}" -o /tmp/node-install.pkg && echo "ダウンロード完了: ${PKG_NAME}"
```
ダウンロード完了後、インストールを実行する**前に**以下を伝える:
> インストールのために、パソコンのパスワードの入力が必要です。
> これはパソコンにログインするときに使っているパスワードです。
> 画面下のターミナル欄にパスワードを入力して Enter を押してください。
> 入力中の文字は画面に表示されませんが、正常な動作です。
```bash
sudo installer -pkg /tmp/node-install.pkg -target / && rm /tmp/node-install.pkg
```
## Windows の場合
インストールを実行する**前に**以下を伝える:
> インストール中に「このアプリがデバイスに変更を加えることを許可しますか?」という確認画面が表示されることがあります。
> 「はい」を押してください。
```powershell
winget install OpenJS.NodeJS.LTS --accept-package-agreements --accept-source-agreements
```
インストール完了後、現在のターミナルで Node.js を使えるようにする:
```powershell
$env:Path = [System.Environment]::GetEnvironmentVariable("Path","Machine") + ";" + [System.Environment]::GetEnvironmentVariable("Path","User")
```
winget が使えない場合(「winget は認識されていません」と表示された場合):
```powershell
$msi = (Invoke-WebRequest -Uri "https://nodejs.org/dist/latest-lts/" -UseBasicParsing).Links.href | Where-Object { $_ -match "x64\.msi$" } | Select-Object -First 1; Invoke-WebRequest -Uri "https://nodejs.org/dist/latest-lts/$msi" -OutFile "$env:TEMP\node-install.msi" -UseBasicParsing; Start-Process msiexec.exe -ArgumentList "/i `"$env:TEMP\node-install.msi`"" -Verb RunAs -Wait; Remove-Item "$env:TEMP\node-install.msi"
```
## インストール完了の確認
```bash
node --version
```
バージョン番号が表示された → インストール成功。
エラーが出た → Cursor を再起動してからもう一度試すよう案内する。