Setup Persona
SkillAI & modelsUse when bootstrapping a Rails project: context, onboarding, CI. Trigger words: setup project, rails new, CI/CD, dev environment, Gemfile.
Available today. Use it from your connected AI after setup.
No other account needed.
Connect ahel once, and every AI you use reads what you have installed.
Then ask your AI: use the Setup Persona skill
What this skill tells your AI
The instructions your AI receives, as published by igmarin/rails-agent-skills in skills/setup/SKILL.md and read by ahel’s review.
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.keyexists (orRAILS_MASTER_KEYenv 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 finalci.ymlandcd.ymlcontent there for reuse across projects. The instructions below are the canonical source of truth.
-
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
-
Configure CD pipeline — write to
.github/workflows/cd.yml.Fill in
DEPLOY_CLI(e.g.,heroku,flyctl,kamal) and the appropriate secret names before writing the file. Each job begins withSHARED_PREAMBLE(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:
- Explain why it is needed
- Ask the user for explicit confirmation
- Only proceed if the user approves
Non-obvious failure pointers:
- Ruby version mismatch → check
.ruby-versionand ensure the correct version is active in your version manager before retrying - Database connection fails → run
pg_isreadyto confirm PostgreSQL is running; checkconfig/database.ymlcredentials 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@v4with@<full-sha>in workflow files, verify CI passes after pinning
Signals
- GitHub stars
- 25
- Forks
- 7
- Last commit
- Aug 2026
Advanced
- Catalog kind
- skill
- Gateway key
setup-igmarin- Source
- github.com/igmarin/rails-agent-skills