mcpField
S
secondme-init

secondme-init

github.com/mindverse開発21120 回インストール14 週間前に更新
リポジトリ

secondme-init について

secondme-initは、SecondMeを統合するプロジェクト向けの設定用スキルです。App Infoの解析または認証情報の手動入力に対応し、プロジェクト状態とAPI参照ファイルを作成します。

主な機能

  1. 01SecondMe App Infoの解析
  2. 02認証情報とDB URLの手動収集
  3. 03Scopesから機能モジュールを推定
  4. 04ディレクトリと既存設定の確認
  5. 05state.jsonとCLAUDE.mdの作成

活用シーン

  1. 01SecondMe統合プロジェクトの開始
  2. 02開発者ポータル情報からの設定入力
  3. 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 プロジェクトはこのディレクトリに直接初期化されます。

  1. 現在の作業ディレクトリのパスを表示し、ユーザーに確認してもらいます:

    📂 当前工作目录: /path/to/current/dir
    
    ⚠️  Next.js 项目将直接在此目录中初始化,请确保你已在一个新建的空文件夹中运行。
    
  2. 現在のディレクトリの内容を確認します(.secondme/、.git/、CLAUDE.md、.claude/ などの設定ファイルは除きます):

    • ディレクトリが空、または設定ファイルのみの場合:次のステップに進みます
    • その他のファイルが存在する場合:警告を表示します
      ⚠️  現在のディレクトリは空ではありません。以下のファイル/フォルダーが含まれています:
      - src/
      - package.json
      - ...
      
      続行すると、既存のファイルが上書きされる可能性があります。続行してもよろしいですか?
      
    • AskUserQuestion を使用して、続行するかどうかをユーザーに確認します

第一ステップ:既存の設定を確認

まず、プロジェクトのルートディレクトリに .secondme/state.json が存在するか確認します:

存在する場合:

  1. 現在の設定の概要を読み取って表示します:
    📋 已有配置:
    - App Name: secondme-tinder
    - Client ID: 71658da7-***
    - 数据库: postgresql://***
    - 已选模块: auth, chat, profile
    - 当前阶段: init
    
  2. 設定を変更するか、そのまま使用するかユーザーに尋ねます

存在しない場合:第二ステップに進みます


第二ステップ:設定情報の収集

まず、ユーザーが 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_nameApp Name を直接抽出
client_idClient ID を直接抽出
client_secretClient Secret を直接抽出
redirect_urilocalhost:3000 の URI を優先的に選択(開発用)
redirect_urisすべての Redirect URIs の一覧を保存
modulesAllowed Scopes に基づいて自動的に推定(下表を参照)

Scopes とモジュールの対応関係:

Scopeモジュール
user.infoauth(必須)
user.info.shadesprofile
user.info.softmemoryprofile
chatchat
chatact
note.addnote
voice記録しますが、現時点ではコードを生成しません

解析後に追加で収集する項目:

  • Database URL(必須)
方法二:手動入力

ユーザーが App Info を提供しない場合、以下の項目を順に収集します:

  1. App Name(任意)

    • 案内:アプリ名を入力してください
    • デフォルト値:secondme-app
  2. Client ID(必須)

    • 案内:SecondMe アプリの Client ID を入力してください
    • ユーザーが持っていない場合の案内:https://develop.second.me にアクセスして登録し、App を作成して取得してください
    • 検証:空でないこと
  3. Client Secret(必須)

    • 案内:SecondMe アプリの Client Secret を入力してください
    • ユーザーが持っていない場合の案内:https://develop.second.me にアクセスして登録し、App を作成して取得してください
    • 検証:空でないこと
  4. Redirect URI(任意)

    • 案内:コールバック URL を入力してください
    • デフォルト値:http://localhost:3000/api/auth/callback
  5. Database URL(必須)

    • 案内:データベース接続文字列を入力してください
    • 形式の例:
      • PostgreSQL:postgresql://user:pass@localhost:5432/dbname
      • MySQL:mysql://user:pass@localhost:3306/dbname
      • SQLite:file:./dev.db
  6. 機能モジュールの選択(複数選択)


第三ステップ:モジュール選択の確認

Scopes に基づいて推定したモジュール(またはユーザーが選択したモジュール)を表示します:

モジュール説明備考
authOAuth 認証必須。自動的に含まれます
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 を入力するようユーザーに伝えます
  • データベース接続文字列の形式が正しくない場合:正しい形式の例を表示します
  • 権限不足でディレクトリを作成できない場合:ディレクトリの権限を確認するよう案内します

コメント