Nix 反模式自动修复
将以下提示词粘贴到你的 AI 对话框中:
请根据 https://skillhub.cn/install/skillhub.md,安装 @user_3c6cb52e/autofix-common-nix-anti-patterns-before-style-drift-spreads-with-statix 技能。
技能介绍
问题场景
在多团队协作的 Nix 项目中,常出现隐性反模式:如冗余的 if 嵌套、未合并的 let 块、非标准的 with 作用域。这些代码能运行但风格漂移会逐步污染代码库——新人照搬旧写法,旧代码修改时引入新习惯,最终导致配置逻辑难以维护。
工作原理
该技能通过 Statix 静态检查框架实现自动化修复:
- 扫描
.nix文件,识别8 类核心反模式,如appendStyle误用、map表达式冗余等 - 生成结构化替换建议,例如将多层
if重构为cases表达式,或合并相邻的let绑定 - 在 CI 流程中拦截问题,避免人工 code review 时的疏漏
适用边界与注意点
- 需提前安装
StatixCLI 并配置规则集,当前版本依赖手动审查上游项目 - 复杂表达式(如宏展开、递归定义)的自动修复可能产生语义偏移,建议关键模块保留人工复核环节
- 对
imports链较长的配置,建议先运行nix flake check确保依赖完整性
使用场景
- 审查团队成员提交的 Nix 配置 PR 前,扫描改动文件并自动重写其中的反模式,避免风格差异进入主干
- 重构大型 flake 配置时,统一 `let` 绑定与 `if` 表达式写法,防止新旧模块风格不一致
- 在 CI 流程中对 Nix 表达式做静态检查,拦截新成员引入的冗余 `map` 或误用 `with` 的作用域
- 接手维护旧项目时,批量检查现有 `.nix` 文件中的反模式,在改动前完成风格收敛
适合人员
- Nix 配置库的维护者:需要在多人长期协作中保持代码风格统一,减少 review 时的风格争论
- 基础设施工程师:编写和管理大量 NixOS、home-manager 配置,担心反模式随时间扩散
- 开源项目贡献者:提交 PR 前想确认自己的 Nix 表达式符合上游的写法习惯
- 从其他语言迁移到 Nix 的开发者:不熟悉 Nix 惯用写法,希望在审查前自动修正常见错误