SuperAPI AI 工具集

code-size

通用与其它

查看项目

更新于 10-16 08:08

技能介绍

用途:为 Swift 项目设置确定性的复杂度与体积上限,防止函数、类型和文件无限膨胀,让测试能覆盖分支,也避免智能体在自身混乱代码上继续叠加。

主要能力:通过 rules/swiftlint.yml 片段配置 SwiftLint 五个内置阈值规则(默认启用,此处只设阈值):cyclomatic_complexity 警告 10、错误 20;function_body_length 警告 50、错误 100;type_body_length 警告 300、错误 500;file_length 警告 500、错误 1000;function_parameter_count 警告 5、错误 8。将该片段合并进项目的 .swiftlint.yml。

使用方式:在既有代码库启用时先冻结存量违规,只拦截新增违规。一次性记录基线:swiftlint lint --write-baseline .swiftlint-baseline.json;之后门禁:swiftlint lint --strict --baseline .swiftlint-baseline.json,并提交基线文件,后续顺手修复已基线化的违规并重新生成基线。旧版 SwiftLint(0.55 之前无基线支持)可记录违规数量:swiftlint lint --quiet | wc -l > .swiftlint-count,门禁要求当前数量不超过已提交数量。

规则触发时的修复应结构化:圈复杂度/函数体过长则抽取具名函数或用表/枚举分派替代分支阶梯;类型/文件过长按职责拆分(扩展放在单独文件分别计数);参数过多引入参数结构体。不要用 swiftlint:disable 注释作为修复,少数合法豁免应写入 .swiftlint.yml 的 excluded: 列表并附注释。

适用场景:智能体写大部分代码的项目质量门禁、人工评审反复指出函数过长/分支过多、函数已超出测试可覆盖范围、采用确定性检查流程时。

限制与注意:不要在存量代码上大规模重构以满足阈值;不要内联禁用注释;不要随意放宽阈值,除非有书面理由。相关参考包括 testing/fitness-functions/、testing/coverage-ratchet/、ios/coding-best-practices/、generators/ci-cd-setup/。具体安装与集成细节暂未提供。