SuperAPI AI 工具集

dry

编程与开发

查看项目

更新于 10-16 04:53

技能介绍

用途:dry 技能用于在代码库中查找并消除重复,覆盖 UI 组件、数据库 schema 和工作流逻辑三个领域。其核心理念是每个重复都是未来的 bug——在一处修复却忘记副本时,用户会碰到未修复的版本。该技能负责审计与重构;构建功能用 build,通用性能优化用 optimize,从零设计数据库 schema 用 database,UI 组件选择用 ui-patterns。

两种模式:快速扫描(Quick scan)在构建功能后或按需运行,范围是最近改动与现有代码库的对比,耗时 2-5 分钟;深度审计(Deep audit)在代码库臃肿或定期清理时运行,范围是整个代码库的全部三个领域,耗时 15-30 分钟。

快速扫描流程:识别刚构建或修改的内容;在现有代码库中搜索相似模式;标记重复并给出具体文件位置;重构(提取共享代码、复用现有组件);验证重构后没有破坏。搜索对象包括:新建组件对应查找相似 props、布局或用途的组件;新工具函数对应查找相似签名或逻辑的函数;新 API 端点对应查找相似查询模式或响应结构的端点;新数据库查询对应查找命中相同表且条件相似的查询。

深度审计流程:审计 UI 组件重复;审计数据库 schema 规范化问题;审计工作流逻辑中的重复函数与模式;生成带具体重构动作的发现;按领域逐个应用修复,每步后测试。详细搜索模式与重构配方见 AUDIT-CHECKLIST.md。

领域一 UI 组件:查找近似重复组件、重复内联样式、同用途组件、被重新实现的模式。修复方式:完全相同的组件删除一个并更新导入;近似重复提取带 props 的共享组件;重复样式提取为共享 CSS 类、设计令牌或工具类;重新实现的模式替换为组件库版本。资料还列出 Lovable、Replit、Cursor、Claude Code 等 AI 工具常见的重复模式及原因。

领域二数据库 schema:查找反规范化数据、缺失外键、重复列组、列中的枚举值、重复查找数据。修复方式:移除重复列并加 JOIN;添加带 ON DELETE 行为的外键约束;统一命名与类型;创建查找表或使用数据库枚举类型;提取为引用表并替换为外键。资料给出 AI 生成 schema 的危险信号,如 projects 表用 owner_name 和 owner_email 而非 owner_id。

领域三工作流逻辑:查找重复工具函数、重复 API 模式、复制粘贴的校验、重复业务逻辑、重复数据转换。修复方式:保留一个并移到共享 utils/ 或 lib/ 目录;提取共享 API 客户端或包装函数;创建共享校验模块(如 lib/validators.ts);提取到服务或领域模块(如 lib/pricing.ts);提取为命名函数。搜索策略包括查找函数体相同或近似、重复导入模式、相似 try/catch、相同正则或校验模式、出现在 2 个以上文件的字符串字面量。

不应去重的情况:外观相似但业务目的不同的两个函数(会分化,过早抽象造成耦合);测试文件中重复的测试设置代码(测试可读性更重要);使用两次的简单单行代码;今天相似但未来会不同演进的代码;因巧合在各环境相同的配置。规则三:出现在 3 处以上才提取,仅 2 处时等到第三次出现再确认是真实模式。

常见错误:创建 utils.ts 巨型文件(应按领域分组);模式未稳定就抽象;为“清理”破坏可运行代码(每步重构后运行构建与测试);共享组件过度参数化;过早跨功能边界去重。

成功标志:每个 UI 组件只存在一次并有清晰 props 处理变化;数据库表通过外键互相引用而非重复数据;共享逻辑位于 lib/ 或 utils/ 下命名清晰的模块;没有函数体跨文件复制粘贴;新功能可复用现有组件与工具而非重建。

相关技能:optimize(性能与清理)、database(schema 设计、RLS、迁移、查询模式)、ui-patterns(组件选择、状态矩阵、页面组合)、build(功能开发工作流与 AI 工具提示)、debug(去重破坏东西时)。

限制:资料未提供该技能的安装命令、收费方式、支持平台或具体运行环境信息,暂未提供。