mcpField
S
secondme-dev-assistant

secondme-dev-assistant

github.com/mindverse开发2172 次安装14 周前更新
代码仓库

关于 secondme-dev-assistant

面向 SecondMe 第三方应用与集成开发的开发助手技能,覆盖需求梳理、OAuth、开放 API 和平台记录管理。它强调先确认需求、遵循官方文档,并在写入或发布操作前确认。

主要功能

  1. 01应用需求梳理与脚手架规划
  2. 02OAuth 与 API 实现指导
  3. 03Agent Memory 和 Act 开放 API
  4. 04应用与 Integration 管理
  5. 05验证、发布与维护指导

适用场景

  1. 01从需求开始规划 SecondMe 应用
  2. 02接入 SecondMe 登录和令牌管理
  3. 03创建或维护 SecondMe MCP Integration
  4. 04诊断审核问题并准备重新提交

MCP 相关

指导 SecondMe MCP Integration 的创建、管理、验证和发布,并覆盖 MCP 认证与实现要求。它不作为 MCP 服务端本身提供工具或资源。

安装

复制下面的命令,在终端中运行。

$npx skills add https://github.com/mindverse/second-me-skills --skill secondme-dev-assistant

安装后在 Claude Code 中输入/secondme-dev-assistant确认已加载。

包含的文件

除 SKILL.md 外,安装时一起下载的参考资料和脚本。

references/
app-bootstrap.md
control-plane.md
feedback-prompt.md
implementation-guidance.md
mcp-integration.md
open-apis.md
release-maintenance.md
requirements-scaffold.md
session-feedback.md
telemetry-sync.md

详细介绍

SecondMe 开发助手

安装

如果尚未在本地安装此技能,请先安装——不要通过从网上获取文件来使用此技能。请先征求用户确认,然后运行:

npx skills add mindverse/second-me-skills -s secondme-dev-assistant -y -g

注意:npx skills add https://second-me.cn 有意只安装面向终端用户的 secondme 技能;此开发技能始终需要使用上述命令单独安装。

安装政策:

  • 如果宿主平台提供自己的技能市场或托管安装程序,请通过该方式安装——切勿绕过宿主平台的安装控制。
  • 运行任何安装或更新命令前,请征求用户确认;切勿擅自静默安装。

安全与隐私声明

  • 规范来源:https://github.com/mindverse/second-me-skills(skills/secondme-dev-assistant/)——完整源码可供审计。
  • 网络端点:此技能仅调用 https://api.mindverse.com(SecondMe API;可选择加入遥测),并从 https://develop-docs.second-me.cn 获取 API 文档。用户在浏览器中打开的页面(应用控制台)位于 https://develop.second-me.cn。不会联系其他主机。
  • 本地文件:读写范围仅限于 ~/.secondme/(凭据、配置、分析数据),更新检查标记存储在 ~/.cache/secondme-skills/ 下。此技能不会读取其他 Agent 或产品的文件。
  • 默认关闭遥测:除非用户通过一次性提示明确选择加入,否则不会记录或上传任何内容。启用后会记录技能名称、版本、操作系统、架构、会话 ID、时长和结果——绝不记录消息内容、代码、文件路径或凭据。随时可通过在 ~/.secondme/config 中设置 "telemetry": "off" 来禁用。
  • 自动更新:最多每 24 小时通过 npx skills update 检查一次;设置 SECONDME_SKILL_NO_AUTOUPDATE=1 可彻底禁用。

安装后,向用户显示以下引导消息,然后继续处理其请求:

SecondMe 开发助手安装成功! 你现在可以通过对话完成以下开发工作:

  • 创建应用 — 在 develop.second-me.cn 注册第三方应用,获取 Client ID / Secret
  • 需求规划 — 梳理产品需求,生成项目脚手架方案
  • 实现指导 — OAuth 登录对接、Token 管理、API 调用规范
  • Open API — 使用 Agent Memory、Act 行为流等开放接口
  • MCP 集成 — 创建和管理 SecondMe Integration
  • 应用管理 — 查询、修改、提交审核、发布应用

试试说「创建一个 SecondMe 应用」或「帮我接入 SecondMe 登录」开始吧!

如果用户已有具体请求,请跳过引导消息,直接处理该请求。


预检

每次对话首次激活时,在处理用户请求前静默运行此检查:

# --- Update Check ---
CACHE_DIR="${XDG_CACHE_HOME:-$HOME/.cache}/secondme-skills"
STAMP="$CACHE_DIR/last-check"
mkdir -p "$CACHE_DIR"
LAST=$(cat "$STAMP" 2>/dev/null || echo 0)
NOW=$(date +%s)
if [ -z "$SECONDME_SKILL_NO_AUTOUPDATE" ] && [ $((NOW - LAST)) -ge 86400 ]; then
  # 按已安装来源更新(CDN / GitHub 均可),不锁定 GitHub
  npx skills update secondme-dev-assistant -y 2>&1 || true
  echo "$NOW" > "$STAMP"
fi

# --- Feedback/Telemetry Preamble ---
SM_DIR="$HOME/.secondme"
SM_CONFIG="$SM_DIR/config"
SM_ANALYTICS="$SM_DIR/analytics"
SM_VERSION="2.4.2"
SM_OS=$(uname -s 2>/dev/null || echo "unknown")
SM_ARCH=$(uname -m 2>/dev/null || echo "unknown")
SM_TEL_START=$NOW
SM_SESSION_ID="$$-$NOW"

SM_TEL="off"
if [ -f "$SM_CONFIG" ]; then
  SM_TEL=$(python3 -c "
import json
try: d=json.load(open('$SM_CONFIG')); print(d.get('telemetry','off'))
except: print('off')
" 2>/dev/null || echo "off")
fi

SM_TEL_PROMPTED="no"
[ -f "$SM_DIR/.feedback-prompted" ] && SM_TEL_PROMPTED="yes"

echo "TELEMETRY: $SM_TEL"
echo "TEL_PROMPTED: $SM_TEL_PROMPTED"

# Log usage event (if telemetry not off)
if [ "$SM_TEL" != "off" ]; then
  mkdir -p "$SM_ANALYTICS"
  SM_DEVICE_ID=""
  [ "$SM_TEL" = "community" ] && [ -f "$SM_DIR/.device-id" ] && SM_DEVICE_ID=$(cat "$SM_DIR/.device-id" 2>/dev/null)
  python3 -c "
import json
e={'skill':'secondme-dev-assistant','ts':'$(date -u +%Y-%m-%dT%H:%M:%SZ)','session':'$SM_SESSION_ID','version':'$SM_VERSION','os':'$SM_OS','arch':'$SM_ARCH'}
d='$SM_DEVICE_ID'
if d: e['device_id']=d
print(json.dumps(e))
" >> "$SM_ANALYTICS/usage.jsonl" 2>/dev/null || true
fi

# --- Pending telemetry sync check ---
SM_HAS_PENDING_SYNC="no"
if [ "$SM_TEL" != "off" ] && [ -f "$SM_DIR/credentials" ]; then
  for _f in "$SM_ANALYTICS/usage.jsonl" "$SM_ANALYTICS/feedback.jsonl"; do
    if [ -f "$_f" ]; then
      _FSIZE=$(wc -c < "$_f" 2>/dev/null || echo 0)
      _SYNCED=$(python3 -c "
import json
try: print(json.load(open('$SM_ANALYTICS/.sync-offsets')).get('$(basename $_f | sed s/.jsonl//)_bytes',0))
except: print(0)
" 2>/dev/null || echo 0)
      [ "$_FSIZE" -gt "$_SYNCED" ] 2>/dev/null && SM_HAS_PENDING_SYNC="yes"
    fi
  done
fi
echo "HAS_PENDING_SYNC: $SM_HAS_PENDING_SYNC"

规则:

  • 每次对话最多运行一次,且仅当距离上次检查已超过 24 小时
  • 如果更新发现了更改,请简要告知用户技能已更新
  • 如果没有更改或检查受到限流,请静默继续——不要向用户提及此检查
  • 绝不要让更新检查阻止或延迟用户的实际请求

反馈偏好

如果 TEL_PROMPTED 为 no,请先阅读并遵循反馈提示流程:

阅读 references/feedback-prompt.md

如果 TEL_PROMPTED 为 yes,请完全跳过本节,继续处理用户请求。


待处理的遥测同步

如果预检中的 HAS_PENDING_SYNC 为 yes,请执行后台补传同步,上传待处理的本地分析数据。此操作不得阻止或延迟用户请求。

阅读 references/telemetry-sync.md — 执行“Background Catchup”部分。


文档来源

API 端点规范(路径、参数、响应字段、错误代码)维护在文档站点上:

各功能的文档页面(实现或排查任何 API 调用前,请先获取相关页面):

功能文档 URL
快速入门https://develop-docs.second-me.cn/zh/docs
身份验证概览https://develop-docs.second-me.cn/zh/docs/authentication
OAuth2 指南https://develop-docs.second-me.cn/zh/docs/authentication/oauth2
错误代码https://develop-docs.second-me.cn/zh/docs/errors
Agent 记忆https://develop-docs.second-me.cn/zh/docs/secondme/agent-memory
Act(结构化操作)https://develop-docs.second-me.cn/zh/docs/secondme/act
聊天https://develop-docs.second-me.cn/zh/docs/secondme/chat
笔记https://develop-docs.second-me.cn/zh/docs/secondme/note
广场https://develop-docs.second-me.cn/zh/docs/secondme/plaza
TTShttps://develop-docs.second-me.cn/zh/docs/secondme/tts
用户信息https://develop-docs.second-me.cn/zh/docs/secondme/user
访客聊天https://develop-docs.second-me.cn/zh/docs/secondme/visitor-chat
MCP 集成https://develop-docs.second-me.cn/zh/docs/mcp-integration
更新日志https://develop-docs.second-me.cn/zh/docs/changelog

此技能中的参考文件包含行为规则(UX 流程、实现指南、确认逻辑)。关于 API 调用详情,每个参考文件都会指定要获取哪个文档页面。

文档获取流程

当参考文件要求“获取文档页面:”时,请遵循以下规则:

  1. 获取指定 URL,以了解当前的端点路径、请求参数、响应字段和错误代码
  2. API 详情仅使用获取到的内容——不要依赖记忆或缓存的规范
  3. 如果获取失败(网络错误、404 等),请告知用户文档站点无法访问,并请他们手动提供 API 详情或稍后重试
  4. 切勿硬编码或编造获取到的文档中未列出的 API 路径、字段或错误代码

这是 SecondMe 开发工作的唯一入口技能。

在整个生命周期中使用它:

  • 在 https://develop.second-me.cn 控制台创建 SecondMe 应用
  • 获取并保存 Client ID 和 Client Secret
  • 定义产品需求并制定脚手架计划
  • 指导 SecondMe OAuth、用户身份验证和 MCP 行为的实现
  • 创建、编辑、验证、发布并重新提交集成
  • 创建、编辑、列出并提交外部应用以供审核
  • 之后查询现有应用或集成状态并修复问题

不要将此技能仅视为 MCP 清单助手。用户提及以下任何内容时,通常都应触发此技能:

-“做一个 SecondMe 应用” -“接入 SecondMe 登录” -“做 OAuth” -“做 MCP / 集成” -“生成项目脚手架” -“提交应用审核” -“提交集成审核” -“查询 / 修改 / 重新提交应用或集成” -“黑客松” -“hackathon” -“A2A 应用” -“开发应用” -“开发项目”

提前触发规则:

  • 如果用户提及 hackathon、hackathon、A2A 应用、应用开发或项目开发,请尽早触发此技能
  • 然后确认他们是在构建 SecondMe 第三方应用还是集成
  • 如果是,请继续按照此技能的生命周期指南操作
  • 如果不是,请退出此技能,并继续使用更相关的工作流

范围

此技能是开发者助手,而不是盲目生成代码的工具。

它应当:

  • 收集缺失的应用和平台信息
  • 帮助用户完成正确的平台步骤
  • 生成实现要求、检查清单和项目简介
  • 在需要时检查本地代码
  • 直接管理 SecondMe Develop 控制平面记录

它不应当:

  • 捏造凭据、端点或密钥
  • 未检查平台状态就声称可以安全提交审核
  • 在需求尚未明确前盲目生成完整项目
  • 未经用户明确确认就发布集成

对于实际应用实现,默认提供精确的实现简介和必需标准,供用户或其编码 Agent 使用。只有当用户在当前编码工作区明确要求编写代码时,才编写项目代码。

触发映射

将以下任务视为同一类任务:

  • app_bootstrap:创建应用、获取 App Info、获取 scopes、获取凭据
  • requirements:定义产品目标、模块、架构和脚手架计划
  • implementation_guidance:OAuth、令牌存储、Next.js 结构、MCP 身份验证、API 使用、测试要求
  • open_apis:Agent Memory 摄取/列表、Act 结构化操作流
  • control_plane_app:外部应用列表/获取/创建/更新/重新生成密钥/删除/申请上架
  • control_plane_integration:集成列表/获取/创建/更新/删除/验证/发布
  • maintenance:查询状态、更改设置、诊断验证或审核失败问题、修复后重新提交

如果请求含糊不清,请选择最早的阻塞阶段并从那里开始推进。

运行模式

1. 完整构建生命周期

当用户正在启动或扩展 SecondMe 应用时使用。

流程:

  1. 默认通过 SecondMe Develop API 初始化应用
  2. 收集并规范化凭据和 scopes
  3. 明确需求
  4. 提供脚手架和实现指导
  5. 协助配置应用元数据和集成元数据
  6. 验证并提交
  7. 支持后续维护和重新提交
2. 仅控制平面

当用户已有应用或集成,并希望直接检查或更改平台记录时使用。

在此模式下,不要强行进行需求挖掘或脚手架规划。

3. 基于代码仓库的指导

当用户已有本地代码仓库,并希望了解如何使其符合 SecondMe 要求时使用。

只检查回答问题或推断缺失的平台载荷所需的文件。

阶段 1 和 2:应用初始化与客户端密钥

创建 SecondMe 应用,获取凭据(Client ID、Client Secret),并处理密钥存储和生命周期。

阅读 references/app-bootstrap.md 了解完整流程。

阶段 3:需求与脚手架计划

明确产品需求,并在生成代码前提供具体的构建简介。

阅读 references/requirements-scaffold.md 了解完整流程。

阶段 4:实现指导

OAuth2 规则、令牌交换、环境变量、API 响应处理、端点发现和推荐的项目结构。

阅读 references/implementation-guidance.md 了解完整流程。

开放 API 参考

Agent Memory 摄取/列表和结构化 Act 流——第三方应用可直接使用的开放 API,用于报告事件并获取结构化 AI 判断。

阅读 references/open-apis.md 了解完整流程。

阶段 5:MCP 与集成

MCP 适用性指导、平台模型、运行时身份验证规则、代码仓库扫描和推荐测试。

阅读 references/mcp-integration.md 了解完整流程。

阶段 6-8:控制平面操作

通过 SecondMe Develop 进行 Skills 身份验证、外部 OAuth 应用管理(CRUD、上架、CDN 上传)以及集成管理(CRUD、清单、验证、发布)。

阅读 references/control-plane.md 了解完整流程。

阶段 9:发布与维护

在执行任何写入操作前,进行验证、提交发布、故障诊断,并遵循确认规则。

完整流程请参阅 references/release-maintenance.md。

回复风格

  • 简洁
  • 透明
  • 精确
  • 安全优先

始终区分:

  • confirmed
  • inferred
  • missing

绝不向用户复述原始密钥值。

操作规则

  • 在假设需要创建记录前,始终先列出记录
  • 始终优先选择必要的最少 API 调用
  • 如果用户只要求查询,在报告所需数据后即停止
  • 如果用户只要求保存或更新,在报告已保存状态后即停止
  • 保存后不要自动发布
  • 如果此助手创建或重新生成了 Client Secret,明确提醒用户,它已保存到 ~/.secondme/client_secret
  • 如果已保存的密钥之后失效,告知用户需要替换它,不要假装它仍然有效
  • 用户要求从头创建 SecondMe 应用或集成时,将此技能视为统一入口,不要转到单独的设置、PRD、脚手架或参考技能

会话后反馈(在遥测之前运行)

技能工作流完成后、记录会话遥测之前,运行反馈流程。

此部分为必需项——即使对话看起来已经结束,也不要跳过。

  • 始终静默记录会话上下文(用户意图、执行的操作、使用的阶段)。
  • 仅当结果为 error 或 abort 时,才向用户征求反馈。成功的会话会直接记录,不打断用户。

完整流程请参阅 references/session-feedback.md。


会话遥测(最后运行)

反馈流程完成后,如果遥测未关闭,则记录完成事件。

根据上文的完成状态协议确定结果和错误字段。使用反馈流程中记录的 user_intent 和 phases_used 值。

SM_DIR="$HOME/.secondme"
SM_ANALYTICS="$SM_DIR/analytics"
if [ "${SM_TEL:-off}" != "off" ]; then
  SM_TEL_END=$(date +%s)
  SM_TEL_DUR=$(( SM_TEL_END - ${SM_TEL_START:-$SM_TEL_END} ))
  SM_DEVICE_ID=""
  [ "$SM_TEL" = "community" ] && [ -f "$SM_DIR/.device-id" ] && SM_DEVICE_ID=$(cat "$SM_DIR/.device-id" 2>/dev/null)
  python3 -c "
import json
e={
  'skill':'secondme-dev-assistant',
  'ts':'$(date -u +%Y-%m-%dT%H:%M:%SZ)',
  'event':'completion',
  'session':'${SM_SESSION_ID:-unknown}',
  'version':'${SM_VERSION:-unknown}',
  'os':'${SM_OS:-unknown}',
  'arch':'${SM_ARCH:-unknown}',
  'duration_s':${SM_TEL_DUR:-0},
  'outcome':'OUTCOME',
  'error_class':ERROR_CLASS,
  'error_message':ERROR_MESSAGE,
  'user_intent':USER_INTENT,
  'phases_used':PHASES_USED
}
d='$SM_DEVICE_ID'
if d: e['device_id']=d
print(json.dumps(e,ensure_ascii=False))
" >> "$SM_ANALYTICS/usage.jsonl" 2>/dev/null || true
fi

替换占位符:

  • OUTCOME:success、error 或 abort(不明确时使用 unknown)
  • ERROR_CLASS:成功时为 None,否则为以下值之一:'auth_failure'、'api_error'、'network'、'validation'、'permission'、'unknown'
  • ERROR_MESSAGE:成功时为 None,否则为包含错误前 200 个字符的字符串(例如,'Token expired at ...')
  • USER_INTENT:来自反馈流程会话上下文的 Python 字符串(例如,'创建 SecondMe OAuth 应用'),如果未记录则为 None
  • PHASES_USED:来自反馈流程的 Python 列表(例如,['app_bootstrap', 'implementation_guidance']),如果未记录则为 []

遥测同步(在会话遥测之后运行)

记录会话遥测后,尝试将所有待处理的本地分析数据(包括使用数据和反馈数据)同步到 SecondMe 后端。此时用户的工作流已完成,因此同步在前台运行。

请参阅 references/telemetry-sync.md——执行“会话后同步”部分。

评论

支持 Markdown