用途:把 React 应用中使用的 Metabase Modular embedding(基于 embed.js 的 Web Components)迁移为 Modular embedding SDK(@metabase/embedding-sdk-react)。仅适用于已是 React 项目且 JSX/TSX 中已使用 Web Components 的场景;若项目用 iframe 或纯 HTML 模板,应改用其他技能或不适用。
主要能力:替换 <metabase-dashboard>、<metabase-question>、<metabase-browser> 为 SDK 对应 React 组件;安装 @metabase/embedding-sdk-react;在组件树合适位置加入 <MetabaseProvider>;将 window.metabaseConfig 转换为 Provider 配置属性;移除 embed.js 脚本标签与 window.metabaseConfig 赋值;把 kebab-case HTML 属性转为 camelCase React 属性并转换取值类型。不处理非 React 项目。
使用方式:按固定顺序执行,先建迁移清单,再逐步扫描、映射、改代码并标记状态。步骤 1+2 限定 3 轮工具调用:第一轮并发 grep(metabase-dashboard、metabase-question、metabase-browser、window.metabaseConfig、/app/embed.js)、读 package.json、glob 锁文件、npm view @metabase/embedding-sdk-react version;第二轮运行 bash <skill-path>/scripts/prepare.sh {TARGET_VERSION} 并拉取版本化文档;第三轮运行 bash <skill-path>/scripts/read-sources.sh {SDK_TMPDIR} 获取 d.ts。装包命令为 {package-manager} add @metabase/embedding-sdk-react@{TARGET_VERSION}。文档地址为 https://www.metabase.com/docs/v0.{VERSION}/llms-embedding-full.txt,版本需规范化(如 0.58.1 → v0.58)。最后运行 npm run typecheck 或 tsc --noEmit 校验,超过 3 轮未通过则标记 blocked。
限制与安全:d.ts 是字段命名权威来源,不可猜测;SDK 版本需与 Metabase 实例版本一致(如 0.58.x 对应 v0.58+)。前 0.52.0 版本不提供单一 index.d.ts,需改用嵌入文档。不得输出硬编码密钥、token 或 JWT 明文,如发现应提示迁移到环境变量。不解析仓库分支、提交、PR 或 issue,不访问 npm 页面或 GitHub 变更日志。文档抓取 404 时可先重试,仍失败则在无文档下继续,以 d.ts 为准。