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:
- 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 (可选) 提示:请输入回调地址 默认值: 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 功能模块选择 (多选) 第三步:确认模块选择 展示根据 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 数据库连接串格式错误 :显示正确格式示例 权限不足无法创建目录 :提示检查目录权限