SuperAPI AI 工具集

figma-typings-audit

设计与创作

查看项目

更新于 10-15 19:58

技能介绍

用途:把 @figma/plugin-typings 的新版本吸收进 Figwright,流程为审计 → 升级 → 实现值得要的部分。硬性顺序约束:必须先 diff 再升级,否则基线被破坏。目标版本由用户指定,否则取 npm 最新版。

主要能力:

  1. 版本解析:用 grep 查看 packages/plugin/package.json 中声明的范围与 node_modules 中实际安装版本,用 npm view @figma/plugin-typings version 与 versions --json 查最新与跳过的版本数;比较对象是已安装版本而非声明范围。若已安装与目标相同则停止。
  2. 权威 diff:该包没有 CHANGELOG 和 GitHub Releases,提交信息也无内容,.d.ts diff 是唯一事实来源。在 $SCRATCH 中用 npm pack 拉取两个版本并解包,先 diff -rq 观察变更文件,再 diff package.json 与 index.d.ts。
  3. 归一化:用目标版本自带的 prettier 配置与版本重排两个版本的 .d.ts 后再 diff,避免格式噪声被误判为语义变更。
  4. 分类:丢弃仅 JSDoc 变更;其余分为 Breaking(移除符号、类型收窄、签名变更、新增 @deprecated)、New API、已有类型新增字段(最危险,编译器不会报错,读取路径会静默漏掉)。
  5. 映射仓库:packages/plugin/src/** 与 typings 真实耦合,由 tsc 捕获;packages/plugin/ui/** 不接触 Figma API;packages/shared/src/** 是手写 Zod 镜像,不加载 typings,只有本审计能发现遗漏。
  6. 沙箱类型检查:仅在发现 Breaking 时,用独立 tsconfig.probe.json 对真实源码做类型检查,绝不覆盖 node_modules 中的副本(pnpm 硬链接会污染全局 store)。
  7. 升级与验证:无 Breaking 时执行 pnpm -C packages/plugin add -D @figma/plugin-typings@^<target>,再跑 typecheck、lint、format:check、knip、build、test 六道门。
  8. 报告与实现:用繁體中文台灣用語按后果排序报告,再用 AskUserQuestion 多选;实现时遵循真实使用路径,最小改动优先,注意 exactOptionalPropertyTypes 与 figma.editorType 守卫。

限制:单元测试不能证明真实 Figma 读取路径可用,需用户重连 MCP 并重开插件;部分编辑器 UI 状态无法自动验证,需设计对照测量;在画布上创建探测素材会写入用户文件,须先询问并事后删除。资料未提供该技能的价格、平台支持范围与具体效果数据。