用途:该技能用于在代码库中寻找类型层面的重构机会,灵感来自 Alexis King 的“Parse, don't validate”与“Types as axioms”。目标是把运行时才获得的事实移入值与类型,使合法状态易于构造、非法状态难以或无法表示,并让执行代码不再重复检查边界代码已证明的事实。
主要能力:识别返回 void、()、boolean、异常、日志或断言的校验器;未检查索引、head、first、unwrap、可空访问等部分函数;用字符串、数字、映射、数组承载领域事实的原始类型偏执;同一不变量在多个调用点分散检查;把原始 JSON、HTTP、环境变量、数据库或 CLI 数据深入执行层的边界代码;可漂移的冗余可变状态;以及阻止类型信息流动的不安全转换或宽泛类型。
使用方式:先阅读项目的领域词汇表(CONTEXT.md)和相关 ADR,再检查代码。随后以编号列表呈现候选重构,每项包含文件、不变量、问题、建议引入的解析器或精确表示、证明负担的移动位置以及风险,此时不实现,并询问用户想探索或应用哪些。选定后与用户一起设计:定义要消除的非法状态,选择品牌类型、不透明类、可辨识联合、枚举、值对象、ADT、结果类型、智能构造器或返回类型化值的 schema,确定解析器及其类型化失败形态,划定原始值仍可存在的位置。实施时先添加解析器/构造器及接受与拒绝输入的测试,再逐个修改消费函数,顺着编译、类型或测试失败向上找到正确边界,删除冗余校验,把不可避免的不安全操作集中到小型、命名且有文档的模块中。
适用场景:适合希望用类型系统减少重复校验、消除非法状态、提升代码可推理性的项目。
限制:资料未提供具体支持的语言、平台、安装命令、收费方式或效果数据;实际可用性取决于所用语言对相关类型特性的支持程度。