开发与工程 railsrubyframework-upgradedependency-analysisselective-mergegithub-cliweb-fetch

Rails 升级分析器

分析 Rails 应用的升级路径:检测当前版本、获取最新发布与官方升级指南,并以选择性合并方式升级文件,保留本地定制。

FollowSkills 评估 · FSRS-2.0
谨慎使用
54/ 100 五分制 2.7 / 5
1 2 3 4 5 6
1信任安全16 / 25 · 3.2/5

SKILL.md 明确要求先检测本地定制、生成升级计划并经用户确认后才执行写入,强调不覆盖文件、git 可回滚,安全原则良好;但技能包含直接执行 shell 命令(rails new、文件覆盖、db:migrate)、依赖 gh CLI 认证态,确认与隔离机制仅靠文字约定,缺少自动化备份或明确的权限边界,扣 9 分。

2可靠稳定10 / 20 · 2.5/5

流程分步清晰,含错误处理(gh 未认证、railsdiff 版本缺失时回退、已是最新版本)和验证步骤,失败反馈可诊断;但为静态审查,关键路径(WebFetch 抓取、选择性合并)无测试或可复现证据,扣 10 分。

3适用触发9 / 15 · 3.0/5

触发场景明确(Rails 项目内、/rails-upgrade),命名与描述匹配能力;对升级类型和复杂度有清晰判定标准;但依赖 gh CLI、guides.rubyonrails.org 与 railsdiff.org,未声明网络受限环境的可用性,对中国大陆网络可达性存在风险且未披露,扣 6 分。

4规范维护9 / 15 · 3.0/5

README 提供安装说明(Claude Code/OpenCode)、前置依赖、示例输出,声明 MIT 许可;但无版本号、变更日志或维护者更新路径,license 元数据未在 skill 层声明,部分流程依赖'心理清单'等含糊表述,扣 6 分。

5有效结果6 / 15 · 2.0/5

选择性合并流程相对直接运行 rails app:update 有明显边际价值,输出格式(总结表、升级计划)可直接使用;但无任何执行证据证明输出正确完整,静态审查下无法验证代表性输出,扣 9 分。

6证据核验4 / 10 · 2.0/5

引用官方升级指南、railsdiff、GitHub releases 等可追溯一手来源,事实与建议区分较清楚;但无测试套件、CI 或第三方执行证据,示例输出为作者编写,扣 6 分。

证据充分度: 评估于 2026年9月10日 审查版本 d9a3432b19ef
使用前请注意
  • 技能会执行 shell 命令并覆盖文件,使用前请确保在干净 git 工作区运行以便回滚。
  • 依赖 gh CLI 认证及 guides.rubyonrails.org / railsdiff.org 等境外站点,大陆网络环境可能不可达。
  • 无版本号与变更日志,更新追踪依赖仓库提交记录;发布者未经 FollowSkills 验证。
  • 所有升级建议均未经执行验证,生成的合并方案需人工复核。
评估证据 [1][2]
查看完整评分方法 →

这个 Skill 能做什么,适合哪些场景?

这是一个面向 Rails 项目的 Agent Skill,用于分析应用从当前版本到最新版本的升级路径。它会验证项目结构、从 Gemfile.lock 读取版本、通过 GitHub CLI 获取 Rails 最新发布、抓取官方升级指南和 railsdiff.org 的版本差异,最后生成包含复杂度评级(小/中/大)的升级摘要。其核心亮点是用选择性合并流程替代 `rails app:update`,逐文件区分新建、可覆盖和需手工合并的文件,避免覆盖本地定制。适用于使用 Claude Code 或 OpenCode、且已安装并认证 GitHub CLI 的开发者。

检查 Gemfile、config/application.rb、config/environment.rb 以确认是 Rails 应用;从 Gemfile.lock 提取当前 Rails 版本;用 gh api repos/rails/rails/releases/latest 获取最新版本并比较分类升级类型(补丁/小版本/大版本);抓取 guides.rubyonrails.org 升级指南和 railsdiff.org 的版本差异;检查 npm/yarn/importmap 中 @hotwired 和 @rails 相关 JS 依赖;生成含复杂度评级和推荐步骤的升级摘要;按新文件、可安全覆盖、需手工合并、可跳过四类制定升级计划;手工合并时保留本地定制并移除弃用配置;最后协助启用新框架默认值并更新 config.load_defaults。

  1. 维护长期演进的 Rails 项目、需要从 7.1 升级到 8.x 的 Ruby 开发者。
  2. 担心 `rails app:update` 覆盖 i18n、mailer 或 bin/dev 等本地定制的团队负责人。
  3. 评估升级工作量大小、需要判断是小、中还是大规模升级的技术负责人。
  4. 需要同步更新 Turbo、Stimulus、ActionCable 等 Rails 相关 JS 包的前端维护者。
  5. 正在整理升级后需运行的迁移和框架默认值切换清单的开发者。

这个 Skill 有哪些优点和局限?

优点
  • 用选择性合并替代 `rails app:update`,逐文件判断并保留本地定制。
  • 复用权威信息源:官方升级指南和 railsdiff.org 的版本差异。
  • 除 Ruby 依赖外还检查 Turbo、Stimulus、ActionCable 等 JS 依赖。
  • 提供小/中/大的升级复杂度评级,便于排期。
  • 强调透明与可回退,修改前展示计划,可用 git checkout 恢复。
局限
  • 依赖已认证的 GitHub CLI;未认证时需先运行 `gh auth login`。
  • railsdiff.org 可能缺少确切的版本对照,技能只能回退到 major.minor.0。
  • 仓库无测试套件、无 CI 证据,仅有 MIT 许可声明;除 README 外未见使用反馈。
  • 文件操作和数据库迁移依赖所托管 Agent 的 shell 执行权限。
  • 技能本身不做自动化验证之外的分析——最终升级决策与合并质量取决于使用者。

如何安装这个 Skill?

前置条件:安装并认证 GitHub CLI(gh auth login)。Claude Code:执行 mkdir -p ~/.claude/skills,然后 git clone https://github.com/robzolkos/skill-rails-upgrade.git ~/.claude/skills/rails-upgrade,重启 Claude Code。OpenCode:执行 mkdir -p ~/.config/opencode/skill,克隆到 ~/.config/opencode/skill/rails-upgrade,重启 OpenCode。

如何使用这个 Skill?

进入一个 Rails 项目目录,调用 /rails-upgrade。技能将依次验证项目、检测版本、获取最新版本与差异,并输出版本信息、复杂度评级、关键变更和推荐步骤。涉及文件修改的升级计划需经你确认后才会执行;过程中会用到 ghnpm/bin/importmapbin/rails db:migratebin/rails test 等命令。

相关 Skills