
关于
创建新的 Rails 项目
name: new-rails-project argument-hint: [项目名称] description: 创建一个新的 Rails 项目 allowed-tools: Bash(rails *), Bash(bundle ), Bash(bin/), Bash(npm *), Bash(yarn *) context: fork risk: unknown source: community metadata: author: Shpigford version: "1.0"
在当前目录中生成一个名为 $1 的新 Rails 项目。你可以参考 @CLAUDE.md 获取通用指导,但此处的指导优先级更高。
何时使用
- 你需要使用此技能中定义的技术栈来引导一个新的 Rails 项目。
- 项目应从一开始就将 Rails、PostgreSQL、Inertia.js、React、Vite、Tailwind、Sidekiq 和 Redis 规划在一起。
- 你需要涵盖项目创建、约定、测试和验证的设置指导来启动一个全新的 Rails 应用。
技术栈
设置以下技术栈:
- Rails ~8 配合 PostgreSQL - 服务端框架和数据库
- Inertia.js ~2.3 - 连接 Rails 和 React,实现类 SPA 体验而无需 API
- 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
- 使用
mochagem 和 VCR 处理外部服务(仅在 providers 层) - 优先使用
OpenStruct作为模拟实例 - 只模拟必要的部分
代码维护
- 在重大代码变更后运行
bundle exec rubocop -a - 使用
.rubocop.yml进行风格配置 - 使用
bundle exec brakeman进行安全扫描
前端
- 所有 React 组件和视图应使用 TSX
通用指导
- 在规划时多问澄清性问题。越多越好。充分使用 AskUserQuestionTool 来收集需求和规格说明。问题不嫌多。
验证
通过运行 bin/rails server 并通过 playwright MCP 访问 http://localhost:3000 来验证样板是否正常工作。
限制
- 仅在任务明确匹配上述描述范围时使用此技能。
- 不要将输出视为环境特定验证、测试或专家审查的替代品。
- 如果缺少所需的输入、权限、安全边界或成功标准,请停下来寻求澄清。
兼容工具
Claude CodeCursor
标签
后端开发
