SuperAPI AI 工具集

seed-api-parity

测试与质量

查看项目

更新于 10-15 20:04

技能介绍

用途:在 SEED Design 仓库当前检出状态下,对单个组件比较 React 与 Lynx 的公开 API 表面,用于判断实现缺失还是浏览器与 Lynx 平台差异。只读取 seed-component-map 找到的实际路径,不创建或修改文件。

用法:在仓库内指定一个组件运行: bun skills/seed-api-parity/scripts/api-parity.ts ProgressCircle

主要能力:输出 JSON 依次包含 sources(分析的实现、公开 API、Recipe、Registry、文档路径)、dimensions(两侧观察值、共同值、reactOnly、lynxOnly、证据路径)、platformDifferences.expected(Lynx 实现或文档明确写出的平台限制)、platformDifferences.needsReview(仅一侧观察到的值,附带 possiblyExplainedBy 作为可能解释的 expected ID)。

置信度:confirmed 表示在组件映射中直接确认存在;partial 表示从两侧源码直接声明值比较;unknown 表示一侧无证据、组件定位不准或受继承类型影响无法看全,此时 reactOnly 与 lynxOnly 留空不武断判差异。

平台差异判定:asChild 与 DOM Slot 合成改由 Lynx 原生元素直接渲染、用 accessibility-* 原生属性替代 DOM role 与 aria-*、用 accessibility-heading 替代 HTML heading level、用 tap 与原生可访问性导航替代键盘 focus 与 focusVisible、用 viewport 单位或 JavaScript 分支或单独 Recipe 值替代 CSS media query,这些可不视为功能缺失,但平台限制不代表可以省略替代行为,需确认可访问名称、角色、状态与核心用户结果在两侧保持。

限制:脚本不使用 TypeScript 编译器;遇到 extends、Omit 或外部类型继承的 prop 时,相关维度降为 unknown,仅保留直接确认的值。expected 仅在 Lynx 源码或文档明确说明限制时使用;possiblyExplainedBy 只是线索,不构成判定。unknown 与 needsReview 不可直接视为缺失。使用前先用 seed-component-map 确认准确组件名与当前表面,确认的差异可输入 seed-create-component 的平台与发布表面决策。