核心用法
Rails CI Fixer 是一款专为 Rails 项目设计的 CI 故障自主修复技能,通过与 GitHub Actions 深度集成,实现对 PR 中 RSpec 失败、RuboCop 违规、迁移错误等问题的自动化诊断与修复。
工作流程:
1. 触发条件:识别 "fix CI"、"CI is failing" 等关键词,或检测到 PR 存在失败的 CI 运行
2. 日志拉取:使用 gh run view 提取失败日志,过滤噪音(排除 docker/postgres/network 相关),聚焦核心错误
3. 分层修复:
- 第1-2轮:轻量模型(Claude Haiku/GPT-4o-mini)快速尝试,本地验证后推送
- 第3轮:启动调试子代理,注入
pp/raise inspect深度诊断,升级至强模型(Claude Sonnet/GPT-4o) - 第4轮:停止自动修复,向人工汇报失败原因与调试输出
安全约束:
- 仅推送至现有 feature 分支,严禁触碰 main 或受保护分支
- 永不合并,人工始终保有最终审查权
- 调试语句仅用于本地运行,提交前强制移除
显著优点
- 成本优化:优先使用廉价模型处理简单问题,复杂场景才启用高级模型
- 防御性设计:四级逃逸机制防止无限循环,人工介入点清晰
- 零权限原则:仅需 repo 范围的 fine-grained token,支持最小权限配置
- 审计友好:每次提交附带描述性信息,完整留痕可追溯
局限性与风险
- 日志注入风险:CI 日志被视为不可信输入,内置过滤机制防止提示注入攻击
- 模型幻觉:自动修复可能引入语义正确但业务错误的变更,需人工 diff 审查
- 环境依赖:要求本地具备完整的 Rails 开发环境(bundle/rspec/rubocop),容器化场景支持有限
- RuboCop 冲突:自动格式化可能与团队风格指南冲突,建议配合
.rubocop.yml审查
适合人群
- Rails 开发团队:频繁遭遇 CI 噪音、希望减少机械性修复工作的工程师
- 开源维护者:处理大量外部贡献 PR,需要自动化初筛 CI 问题
- DevOps/Platform 团队:构建内部 AI 辅助工作流,需可审计、可控制的自动化方案
常规风险
| 风险类型 | 缓解措施 |
|---------|---------|
| 令牌泄露 | 使用短有效期 fine-grained token,禁止 org-wide 权限 |
| 恶意日志内容 | 忽略日志中的代理指令,异常内容标记人工审查 |
| 意外推送到 main | 强制分支保护,技能逻辑内置分支名白名单校验 |
| 调试代码残留 | 提交前强制 diff 检查,预提交钩子拦截含 `pp`/`raise inspect` 的变更 |