secondme-init について
secondme-initは、SecondMeを統合するプロジェクト向けの設定用スキルです。App Infoの解析または認証情報の手動入力に対応し、プロジェクト状態とAPI参照ファイルを作成します。
主な機能
- 01SecondMe App Infoの解析
- 02認証情報とDB URLの手動収集
- 03Scopesから機能モジュールを推定
- 04ディレクトリと既存設定の確認
- 05state.jsonとCLAUDE.mdの作成
活用シーン
- 01SecondMe統合プロジェクトの開始
- 02開発者ポータル情報からの設定入力
- 03既存プロジェクトの認証情報やモジュールの変更
インストール
コマンドをコピーしてターミナルで実行します。
npx skills add https:/ / github.com/ mindverse/ second-me-skills --skill secondme-initインストール後、Claude Code で/secondme-initを入力して読み込まれたか確認します。
詳細
SecondMe プロジェクトの初期化
SecondMe プロジェクトの設定を初期化します。App Info 形式の直接解析、または認証情報の手動入力に対応しています。
ツールの使用: ユーザー入力の収集には AskUserQuestion ツールを使用します。
ワークフロー
第零ステップ:環境の確認
重要な注意: 現在のディレクトリをプロジェクトのルートディレクトリとして使用し、Next.js プロジェクトはこのディレクトリに直接初期化されます。
-
現在の作業ディレクトリのパスを表示し、ユーザーに確認してもらいます:
📂 当前工作目录: /path/to/current/dir ⚠️ Next.js 项目将直接在此目录中初始化,请确保你已在一个新建的空文件夹中运行。 -
現在のディレクトリの内容を確認します(
.secondme/、.git/、CLAUDE.md、.claude/などの設定ファイルは除きます):- ディレクトリが空、または設定ファイルのみの場合:次のステップに進みます
- その他のファイルが存在する場合:警告を表示します
⚠️ 現在のディレクトリは空ではありません。以下のファイル/フォルダーが含まれています: - src/ - package.json - ... 続行すると、既存のファイルが上書きされる可能性があります。続行してもよろしいですか? AskUserQuestionを使用して、続行するかどうかをユーザーに確認します
第一ステップ:既存の設定を確認
まず、プロジェクトのルートディレクトリに .secondme/state.json が存在するか確認します:
存在する場合:
- 現在の設定の概要を読み取って表示します:
📋 已有配置: - App Name: secondme-tinder - Client ID: 71658da7-*** - 数据库: postgresql://*** - 已选模块: auth, chat, profile - 当前阶段: init - 設定を変更するか、そのまま使用するかユーザーに尋ねます
存在しない場合:第二ステップに進みます
第二ステップ:設定情報の収集
まず、ユーザーが SecondMe アプリの Client ID と Client Secret をすでに持っているか尋ねます。
ユーザーが認証情報を持っていない場合、開発者プラットフォームへの登録を案内します:
📌 你还没有 SecondMe 应用凭证?请按以下步骤获取:
1. 访问 SecondMe 开发者平台:https://develop.second.me
2. 注册并登录账号
3. 创建一个新的 App
4. 创建完成后,你会获得 App Info(包含 Client ID、Client Secret 等信息)
5. 将 App Info 复制粘贴到这里即可
認証情報を取得してから続行するようユーザーに案内します。ユーザーが認証情報を持っている場合は、以下の手順に進みます。
方法一:App Info 形式を解析する(推奨)
ユーザーが以下の形式の情報を提供した場合、自動的に解析します:
## App Info
- App Name: secondme-tinder
- Client ID: 71658da7-659c-414a-abdf-cb6472037fc2
- Client Secret: <your-secret>
- Redirect URIs:
- http://localhost:3000/api/auth/callback
- https://xxx.vercel.app/api/auth/callback
- Allowed Scopes: user.info, user.info.shades, user.info.softmemory, chat, note.add, voice
解析ルール:
| フィールド | 抽出方法 |
|---|---|
app_name | App Name を直接抽出 |
client_id | Client ID を直接抽出 |
client_secret | Client Secret を直接抽出 |
redirect_uri | localhost:3000 の URI を優先的に選択(開発用) |
redirect_uris | すべての Redirect URIs の一覧を保存 |
modules | Allowed Scopes に基づいて自動的に推定(下表を参照) |
Scopes とモジュールの対応関係:
| Scope | モジュール |
|---|---|
user.info | auth(必須) |
user.info.shades | profile |
user.info.softmemory | profile |
chat | chat |
chat | act |
note.add | note |
voice | 記録しますが、現時点ではコードを生成しません |
解析後に追加で収集する項目:
- Database URL(必須)
方法二:手動入力
ユーザーが App Info を提供しない場合、以下の項目を順に収集します:
-
App Name(任意)
- 案内:アプリ名を入力してください
- デフォルト値:
secondme-app
-
Client ID(必須)
- 案内:SecondMe アプリの Client ID を入力してください
- ユーザーが持っていない場合の案内:https://develop.second.me にアクセスして登録し、App を作成して取得してください
- 検証:空でないこと
-
Client Secret(必須)
- 案内:SecondMe アプリの Client Secret を入力してください
- ユーザーが持っていない場合の案内:https://develop.second.me にアクセスして登録し、App を作成して取得してください
- 検証:空でないこと
-
Redirect URI(任意)
- 案内:コールバック URL を入力してください
- デフォルト値:
http://localhost:3000/api/auth/callback
-
Database URL(必須)
- 案内:データベース接続文字列を入力してください
- 形式の例:
- PostgreSQL:
postgresql://user:pass@localhost:5432/dbname - MySQL:
mysql://user:pass@localhost:3306/dbname - SQLite:
file:./dev.db
- PostgreSQL:
-
機能モジュールの選択(複数選択)
第三ステップ:モジュール選択の確認
Scopes に基づいて推定したモジュール(またはユーザーが選択したモジュール)を表示します:
| モジュール | 説明 | 備考 |
|---|---|---|
auth | OAuth 認証 | 必須。自動的に含まれます |
profile | ユーザー情報の表示 | 任意 |
chat | チャット機能 | 任意 |
act | 構造化アクションの判定(JSON を返します) | 任意。権限には chat scope を再利用します |
note | ノート機能 | 任意 |
モジュールの選択を変更する必要があるかユーザーに尋ねます。
第四ステップ:設定ファイルの生成
4.1 .secondme/state.json を作成
{
"version": "1.0",
"stage": "init",
"app_name": "secondme-tinder",
"modules": ["auth", "chat", "profile"],
"config": {
"client_id": "71658da7-659c-414a-abdf-cb6472037fc2",
"client_secret": "用户输入的 Client Secret",
"redirect_uri": "http://localhost:3000/api/auth/callback",
"redirect_uris": [
"http://localhost:3000/api/auth/callback",
"https://xxx.vercel.app/api/auth/callback"
],
"database_url": "用户输入的数据库连接串",
"allowed_scopes": ["user.info", "user.info.shades", "chat", "note.add"]
},
"api": {
"base_url": "https://api.mindverse.com/gate/lab",
"oauth_url": "https://go.second.me/oauth/",
"token_endpoint": "https://api.mindverse.com/gate/lab/api/oauth/token/code",
"refresh_endpoint": "https://api.mindverse.com/gate/lab/api/oauth/token/refresh",
"access_token_ttl": 7200,
"refresh_token_ttl": 2592000
},
"docs": {
"quickstart": "https://develop-docs.second.me/zh/docs",
"oauth2": "https://develop-docs.second.me/zh/docs/authentication/oauth2",
"api_reference": "https://develop-docs.second.me/zh/docs/api-reference/secondme",
"errors": "https://develop-docs.second.me/zh/docs/errors"
},
"prd": {}
}
4.2 CLAUDE.md を作成または更新
プロジェクトのルートディレクトリに CLAUDE.md を作成し、以下の内容を記述します:
# SecondMe 集成项目
## 应用信息
- **App Name**: [app_name]
- **Client ID**: [client_id 部分隐藏]
## API 文档
开发时请参考官方文档(从 `.secondme/state.json` 的 `docs` 字段读取):
| 文档 | 配置键 |
|------|--------|
| 快速入门 | `docs.quickstart` |
| OAuth2 认证 | `docs.oauth2` |
| API 参考 | `docs.api_reference` |
| 错误码 | `docs.errors` |
## 关键信息
- API 基础 URL: [从 state.json api.base_url 读取]
- OAuth 授权 URL: [从 state.json api.oauth_url 读取]
- Access Token 有效期: 2 小时
- Refresh Token 有效期: 30 天
> 所有 API 端点配置请参考 `.secondme/state.json` 中的 `api` 和 `docs` 字段
## 已选模块
[根据推断/选择动态生成模块列表]
## 权限列表 (Scopes)
根据 App Info 中的 Allowed Scopes:
| 权限 | 说明 | 状态 |
|------|------|------|
| `user.info` | 用户基础信息 | ✅ 已授权 |
| `user.info.shades` | 用户兴趣标签 | ✅ 已授权 |
| `chat` | 聊天功能 | ✅ 已授权 |
| `note.add` | 添加笔记 | ✅ 已授权 |
第五ステップ:結果の出力
成功メッセージと次の操作を表示します:
✅ SecondMe 项目配置已完成!
应用名称: secondme-tinder
已保存配置到 .secondme/state.json
已创建/更新 CLAUDE.md(包含 SecondMe API 文档链接)
已选择模块(根据 Allowed Scopes 推断):
- auth ✓
- profile ✓ (user.info.shades)
- chat ✓
- note ✓
⚠️ 重要:请将 .secondme/ 添加到 .gitignore 以保护敏感信息
下一步:
- 运行 /secondme-prd 定义产品需求(推荐)
- 或运行 /secondme-nextjs --quick 快速生成项目
出力ファイル
| ファイル | 説明 |
|---|---|
.secondme/state.json | プロジェクトの状態と設定 |
CLAUDE.md | 開発時に参照する API リファレンス |
App Info 形式の例
以下は App Info 形式の全体例です。ユーザーは SecondMe 開発者コンソールから直接コピーできます:
## App Info
- App Name: my-app
- Client ID: xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx
- Client Secret: your-secret-here
- Redirect URIs:
- http://localhost:3000/api/auth/callback
- https://my-app.vercel.app/api/auth/callback
- https://my-app.com/api/auth/callback
- Allowed Scopes: user.info, user.info.shades, user.info.softmemory, chat, note.add
エラー処理
- App Info 形式を解析できない場合:形式が正しくないことを伝え、手動入力モードに切り替えます
- Client Secret がプレースホルダーの場合:実際の Secret を入力するようユーザーに伝えます
- データベース接続文字列の形式が正しくない場合:正しい形式の例を表示します
- 権限不足でディレクトリを作成できない場合:ディレクトリの権限を確認するよう案内します