workflows/setup/SKILL.md
Complete Rails project setup workflow. Installs dependencies via Bundler, configures database connections, generates Rails app scaffold, validates the dev environment, and generates GitHub Actions or GitLab CI pipelines with linting, testing, and security scanning. Use when starting a new Rails project, running `rails new`, configuring a Gemfile or .ruby-version, setting up a development environment, or wiring up CI/CD for a Ruby on Rails app. Trigger: setup project, new Rails app, configure CI/CD, dev environment setup, rails new, Gemfile setup, .ruby-version, Ruby on Rails project bootstrap.
npx skillsauth add igmarin/rails-agent-skills setupInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
Orchestrates the full Rails project setup from context gathering through CI/CD configuration.
rails new or existing repo clone)Load project context first:
Inline fallback (if sub-skills are unavailable):
# Verify Ruby version matches .ruby-version
ruby -v
# Install dependencies
bundle install
# Check database connectivity
rails db:create db:migrate
# Confirm test runner is operational
bundle exec rspec --dry-run
# Load env vars (copy example if missing)
cp .env.example .env 2>/dev/null || true
HARD GATE — Environment Check:
.ruby-version)config/credentials.yml.enc or .env)If environment check FAILS: Fix the failing item above before proceeding to Phase 2.
Proceed only after environment check passes.
CI/CD Proposal Checkpoint — Decide on pipeline approach:
Configure CI pipeline (linting, testing, security, migrations):
# .github/workflows/ci.yml
name: CI
on: [push, pull_request]
jobs:
test:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@34e114876b0b11c390a56381ad16ebd13914f8d5
- uses: ruby/setup-ruby@ff740bc00a01b3a50fffc55a1071b1060eeae9dc
with:
ruby-version: .ruby-version
bundler-cache: true
- run: bundle exec rails db:create db:migrate
- run: bundle exec rspec
- run: bundle exec rubocop
- run: bundle exec brakeman --no-pager
- run: bundle exec bundle-audit check --update
# .github/workflows/cd.yml
name: CD
on:
push:
branches: [main]
jobs:
deploy-staging:
runs-on: ubuntu-latest
environment: staging
steps:
- uses: actions/checkout@34e114876b0b11c390a56381ad16ebd13914f8d5
- uses: ruby/setup-ruby@ff740bc00a01b3a50fffc55a1071b1060eeae9dc
with:
ruby-version: .ruby-version
bundler-cache: true
- run: bundle exec rails db:migrate
env:
RAILS_ENV: staging
DATABASE_URL: ${{ secrets.STAGING_DATABASE_URL }}
- run: echo "Deploy to staging here (e.g. Heroku, Fly.io, Kamal)"
deploy-production:
runs-on: ubuntu-latest
needs: deploy-staging
environment: production # Requires manual approval gate in GitHub
steps:
- uses: actions/checkout@34e114876b0b11c390a56381ad16ebd13914f8d5
- uses: ruby/setup-ruby@ff740bc00a01b3a50fffc55a1071b1060eeae9dc
with:
ruby-version: .ruby-version
bundler-cache: true
- run: bundle exec rails db:migrate
env:
RAILS_ENV: production
DATABASE_URL: ${{ secrets.PRODUCTION_DATABASE_URL }}
- run: echo "Deploy to production here"
# Rollback: re-run previous deployment job or use platform CLI
Verify everything works end-to-end:
# Local development
bundle install
rails db:create db:migrate
rails server # Should start without errors
bundle exec rspec # Should run (even if 0 tests)
# CI simulation (if possible locally)
act push # GitHub Actions local runner (optional)
Setup Checklist: Marked file SETUP_CHECKLIST.md with:
| Predecessor | This Skill | Successor | |-------------|------------|-----------| | None (entry point) | setup | tdd (start developing) | | None (entry point) | setup | create-prd (plan features first) |
From AGENTS.md: This is the setup workflow. For development, chain to tdd.
development
Entry point for Rails development workflows covering TDD, RSpec, Service Objects, DDD, GraphQL, Engines, and Code Quality. Use when the user asks about Ruby on Rails development patterns, needs RSpec test suites generated, wants service objects scaffolded, is setting up GraphQL schemas, performing Rails code review, refactoring .rb files, working with domain-driven design, implementing background jobs, conducting Rails security checks, or building Rails engines. Generates RSpec tests, structures service objects, enforces TDD workflows, configures GraphQL schemas, and coordinates domain-driven design patterns. Trigger keywords: Rails, RSpec, TDD, Rails testing, Rails refactor, Rails API, Rails code review, domain driven design, service objects, GraphQL, Rails engine, Ruby, .rb, background jobs, Rails migrations, Rails security check.
development
Use when shipping a Rails engine gem — FIRST run full test suite (`bundle exec rspec`) and fix ALL failures, verify gemspec metadata and dependencies match tested Rails/Ruby versions, dry-run: `gem build *.gemspec && gem push --dry-run *.gem` and verify contents, generate CHANGELOG.md organized by category (added/changed/deprecated/removed/fixed), produce step-by-step upgrade notes with before/after code, set semantic version in `lib/[engine_name]/version.rb`, document deprecations with migration paths, load release assets conditionally and state which one informed the output. Trigger words: version bump, changelog, deprecation, gemspec, upgrade, release, publish gem, ship gem.
development
Orchestrates the full Rails TDD cycle with hard gates: test MUST exist, be run, and FAIL for the correct reason (e.g. undefined method, not syntax error) before any implementation code — propose minimal implementation and wait for user approval → verify test PASSES → run full suite with rubocop, brakeman, rspec all green → produce YARD documentation and self-reviewed PR; phases context/test design→implementation→iterate→finish. Use when practicing test-driven development, red-green-refactor, TDD workflow, writing tests before code, adding tests first, or building a Rails feature where specs must gate implementation.
development
Complete Rails project setup loop with hard gates: verify Ruby version matches .ruby-version, Bundler installed, database connection successful, all env vars loaded, and ALL external CI actions pinned to immutable commit SHAs (never mutable tags like @v4) → configure CI/CD pipeline with linting, testing, and security scanning → validate end-to-end with bundle install, db:create, db:migrate, rspec, and write SETUP_CHECKLIST.md; phases context/onboarding→CI/CD configuration→environment validation. Use when starting a new Rails project, running `rails new`, configuring a Gemfile or .ruby-version, setting up a development environment, or wiring up CI/CD for a Ruby on Rails app. Trigger: setup project, new Rails app, configure CI/CD, dev environment setup, rails new, Gemfile setup, .ruby-version, Ruby on Rails project bootstrap.