SuperAPI AI 工具集

new-rails-project

编程与开发

查看项目

更新于 10-16 04:14

技能介绍

用途

该技能用于在当前目录生成一个名为 $1 的新 Rails 项目,并按照其预设的技术栈与约定完成引导。它可参考 @CLAUDE.md 获取通用指导,但需遵循适用的仓库/宿主优先级,且不能覆盖更高优先级的项目规则。

适用时机

当你需要按照该技能定义的预设栈引导一个新的 Rails 项目时使用。项目应从一开始就规划好 Rails、PostgreSQL、Inertia.js、React、Vite、Tailwind、Sidekiq 与 Redis 的组合。你希望获得覆盖项目创建、约定、测试与验证的新 Rails 应用搭建指导。

技术栈

  • Rails ~8 与 PostgreSQL:服务端框架与数据库
  • Inertia.js ~2.3:在无需 API 的情况下桥接 Rails 与 React,提供类 SPA 体验
  • React ~19.2:前端 UI 框架
  • Vite ~5:带 HMR 的 JavaScript 打包器
  • Tailwind CSS ~4:实用优先的 CSS 框架
  • Sidekiq 8:后台任务处理,并通过 sidekiq-scheduler 支持计划任务
  • Redis:会话、缓存与任务队列

Rails 指导

  • 不使用 Kamal 或 Docker
  • 不使用 Rails 的 "solid_*" 组件/系统
  • 开发环境应尽可能与生产环境设置保持一致
  • 使用 Redis 进行缓存

数据库

  • 所有表使用 UUID 主键(pgcrypto 扩展)
  • 时间戳使用 timestamptz 以支持时区感知
  • 使用 JSONB 列存储灵活的元数据
  • 采用全面的索引策略以提升性能
  • 对敏感数据(OAuth 令牌、API 密钥)使用加密字段

后台任务

  • 使用 Sidekiq 8 与 Redis

测试

  • 始终使用 minitest
  • 对外部服务使用 mocha gem 与 VCR(仅在 providers 层)
  • 模拟实例优先使用 OpenStruct
  • 只模拟必要的内容

代码维护

  • 在重大代码变更后运行 bundle exec rubocop -a
  • 使用 .rubocop.yml 进行风格配置
  • 使用 bundle exec brakeman 进行安全扫描

前端

  • 所有 React 组件与视图应使用 TSX

通用指导

  • 复用已提供的需求,仅询问缺失的关键选择。选择可用的宿主工具,而不是假设存在 AskUserQuestionTool。

验证

  • 通过运行 bin/rails server 并使用 playwright MCP 访问 http://localhost:3000 来验证样板应用是否正常工作。

示例

用户请求:

按照此处定义的预设栈引导一个新的 Rails 项目,并验证生成的应用可以运行。

限制

  • 仅当任务明确匹配上述范围时使用此技能。
  • 不要将输出视为环境特定验证、测试或专家审查的替代品。
  • 如果缺少必需的输入、权限、安全边界或成功标准,应停止并请求澄清。
  • 在脚手架生成前验证项目名称与目标位置,拒绝已存在或符号链接的目标,并确认支持的 Ruby/Rails/Node/包的对等版本范围。所命名的版本是历史技术栈选择,并非已验证兼容的锁定文件。使用一次性的本地数据库/Redis 实例与唯一端口;不要改动生产环境或覆盖宿主服务。UUID 默认值与时间戳类型需要实际的迁移/模式验证。在声称搭建完成前,运行生成的测试、相关安全检查以及真实请求的应用流程。