igmarin/rails-agent-skills

setup

Use when bootstrapping a Rails project: context, onboarding, CI. Trigger words: setup project, rails new, CI/CD, dev environment, Gemfile.

First seen Aug 14, 2026

Installation

$ npx skills add igmarin/rails-agent-skills --skill setup

Similar popular skills

Related neighbors and high-traction skills in the same topics — useful to compare before installing.

Also in this package

Other skills from igmarin/rails-agent-skills · top by installs.

npx skills add igmarin/rails-agent-skills

Browse all from igmarin/rails-agent-skills

More details

Agent compatibility

Declared targets from SKILL.md / docs. Unmarked agents are not listed — the skill may still install via the CLI.

Claude Code Not declared
Cursor Not declared
Codex Not declared
GitHub Copilot Not declared
Windsurf Not declared
Gemini CLI Not declared
Cline Not declared
OpenCode Not declared

Repository health

Stars 24
License LICENSE
Default branch main
Open issues 0
Status Active

Skill metadata

Parsed from SKILL.md frontmatter.

Version1.0.0
LicenseMIT
More metadata
version
1.0.0
user-invocable
true
entry_point
Invoke when starting new Rails project, setting up dev environment, or configuring CI/CD
phases
Phase 1: Context & Onboarding, Phase 2: CI/CD Configuration, Phase 3: Environment Validation
hard_gates
Environment Check, CI/CD Configuration, Environment Validation
dependencies
{"0":"source: self","skills":["load-context","setup-environment"]}
keywords
rails, setup, onboarding, ci/cd, agent, devops, configuration

Package contents

Files included with this skill beyond the listing page.

  • skill md SKILL.md 5,738 B
  • docs SUMMARY.md 151 B

History

  1. First seen on skills.sh
  2. First recorded snapshot · 18 installs

SKILL.md

Setup Persona

Agent Phases

Phase 1: Context & Onboarding

Inline setup (always applicable):

# 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 (all items must pass before Phase 2):

  • Ruby version correct (check .ruby-version)
  • Bundler installed and working
  • Database connection successful
  • Runtime env vars are available from the shell or .env
  • Encrypted secrets are configured in config/credentials.yml.enc
  • config/master.key exists (or RAILSMASTERKEY env var is set)
  • All external CI actions pinned to immutable commit SHAs (never mutable tags like @v4, @v1)

If environment check FAILS: Fix the failing item above before proceeding to Phase 2.


Phase 2: CI/CD Configuration

Proceed only after environment check passes.

Canonical shared job preamble (SHARED_PREAMBLE — paste verbatim at the start of every job's steps; both ci.yml and cd.yml use this block):

steps:
  - uses: actions/checkout@34e114876b0b11c390a56381ad16ebd13914f8d5
  - uses: ruby/setup-ruby@ff740bc00a01b3a50fffc55a1071b1060eeae9dc
    with:
      ruby-version: .ruby-version
      bundler-cache: true

Tip: If your repository uses a templates/ directory, you may save the final ci.yml and cd.yml content there for reuse across projects. The instructions below are the canonical source of truth.

  1. Configure CI pipeline — write to .github/workflows/ci.yml.

Start each job with SHARED_PREAMBLE, then add:

      - 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
  1. Configure CD pipeline — write to .github/workflows/cd.yml.

Fill in DEPLOYCLI (e.g., heroku, flyctl, kamal) and the appropriate secret names before writing the file. Each job begins with SHAREDPREAMBLE (copy the block defined above verbatim):

jobs:
  deploy-staging:
    runs-on: ubuntu-latest
    environment: staging
    steps:
      # --- Insert SHARED_PREAMBLE here ---
      - run: bundle exec rails db:migrate
        env:
          RAILS_ENV: staging
          DATABASE_URL: ${{ secrets.STAGING_DATABASE_URL }}
      - run: <DEPLOY_CLI> deploy --app ${{ secrets.STAGING_APP_NAME }}

  deploy-production:
    runs-on: ubuntu-latest
    environment: production
    needs: deploy-staging
    steps:
      # --- Insert SHARED_PREAMBLE here ---
      - run: bundle exec rails db:migrate
        env:
          RAILS_ENV: production
          DATABASE_URL: ${{ secrets.PRODUCTION_DATABASE_URL }}
      - run: <DEPLOY_CLI> deploy --app ${{ secrets.PRODUCTION_APP_NAME }}

Phase 3: Environment Validation

Verify everything works end-to-end:

Confirm the Phase 1 HARD GATE checklist is still fully passing, then additionally verify:

# Bring up local server
rails server

# CI simulation (if possible locally)
act push

Write SETUP_CHECKLIST.md with the final state of all HARD GATE items (see Phase 1) plus:

  • CI configured
  • Secrets configured

Output Style

When completing project setup, output MUST include:

# Setup Report — [Project Name]

## Environment
- Ruby: <version> (matches .ruby-version: ✓/✗)
- Bundler: <version>
- Database: <PostgreSQL version, connection status>
- Env vars: <loaded from environment configuration file / credentials>

## Dependencies
- bundle install: ✓ (<n> gems installed)
- db:create: ✓ / db:migrate: ✓ (<n> migrations)
- rspec --dry-run: ✓ (<n> examples detected)

## CI/CD
- CI: .github/workflows/ci.yml ✓
- CD: .github/workflows/cd.yml ✓
- Actions pinned to SHA: ✓
- Pipeline: lint → test → security scan → deploy

## Validation
- Local server starts: ✓ (port 3000)
- Full test suite: ✓ (<n> examples, 0 failures)
- SETUP_CHECKLIST.md: ✓ written

Error Recovery

System Modification Approval Gate (CRITICAL): Before suggesting ANY action that modifies the host system:

  1. Explain why it is needed
  2. Ask the user for explicit confirmation
  3. Only proceed if the user approves

Non-obvious failure pointers:

  • Ruby version mismatch → check .ruby-version and ensure the correct version is active in your version manager before retrying
  • Database connection fails → run pg_isready to confirm PostgreSQL is running; check config/database.yml credentials and create any missing role
  • CI actions use mutable tags → resolve SHA with git ls-remote https://github.com/<owner>/<repo>; refs/tags/<tag>, replace @v4 with @<full-sha> in workflow files, verify CI passes after pinning