Curated library of 28 atomic skills and 9 personas for Ruby on Rails development. Organized by category: testing, code-quality, engines, infrastructure, api, context, and personas. Covers code review, architecture, security, testing (RSpec), engines, Hotwire, and TDD automation. Shared Ruby skills (YARD docs, DDD, service objects) have moved to ruby-core-skills.
92
94%
Does it follow best practices?
Impact
92%
1.14xAverage score across 28 eval scenarios
Advisory
Suggest reviewing before use
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 || trueHARD GATE — Environment Check (all items must pass before Phase 2):
.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.
Shared job preamble (pin SHAs, never mutable tags — reuse these steps in every job below):
# shared-preamble (reference in all jobs)
steps:
- uses: actions/checkout@34e114876b0b11c390a56381ad16ebd13914f8d5
- uses: ruby/setup-ruby@ff740bc00a01b3a50fffc55a1071b1060eeae9dc
with:
ruby-version: .ruby-version
bundler-cache: trueConfigure CI pipeline — write to .github/workflows/ci.yml (save a reusable copy as docs/ci-template.yml).
Start each job with the shared preamble above, 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 --updateConfigure CD pipeline — write to .github/workflows/cd.yml (save a reusable copy as docs/cd-template.yml).
Each job starts with the shared preamble above. Replace <platform-deploy-cli> with your target (e.g., Heroku, Fly.io, or Kamal).
jobs:
deploy-staging:
runs-on: ubuntu-latest
environment: staging
steps:
# <shared preamble — see above>
- run: bundle exec rails db:migrate
env:
RAILS_ENV: staging
DATABASE_URL: ${{ secrets.STAGING_DATABASE_URL }}
- run: <platform-deploy-cli> deploy --app ${{ secrets.STAGING_APP_NAME }}
deploy-production:
runs-on: ubuntu-latest
needs: deploy-staging
environment: production
steps:
# <shared preamble — see above>
- run: bundle exec rails db:migrate
env:
RAILS_ENV: production
DATABASE_URL: ${{ secrets.PRODUCTION_DATABASE_URL }}
- run: <platform-deploy-cli> deploy --app ${{ secrets.PRODUCTION_APP_NAME }}Verify everything works end-to-end:
# Local development
bundle install
rails db:create db:migrate
rails server
bundle exec rspec
# CI simulation (if possible locally)
act push # GitHub Actions local runnerWrite SETUP_CHECKLIST.md with the final state of all HARD GATE items (see Phase 1) plus:
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 .env / 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: ✓ writtenSystem Modification Approval Gate (CRITICAL): The items below may require installing system packages or configuring local services. Before suggesting ANY action that modifies the host system:
Ruby version mismatch:
.ruby-version for expected versionruby -vBundle install fails:
bundle installDatabase connection fails:
pg_isreadyconfig/database.yml credentials match actual database user/passwordCI actions use mutable tags:
git ls-remote https://github.com/<owner>/<repo> refs/tags/<tag>@v4 with @<full-sha> in workflow files.env.example with placeholder values for all required environment variables.ruby-version — never hardcode in CI workflowsbrakeman and bundle-audit alongside tests.tessl-plugin
evals
scenario-1
scenario-2
scenario-3
scenario-4
scenario-5
scenario-6
scenario-7
scenario-8
scenario-9
scenario-10
scenario-11
scenario-12
scenario-13
scenario-14
scenario-15
scenario-16
scenario-17
scenario-18
scenario-19
scenario-20
scenario-21
scenario-22
scenario-23
scenario-24
scenario-25
scenario-26
scenario-27
scenario-28
skills
api
generate-api-collection
implement-graphql
code-quality
apply-code-conventions
apply-stack-conventions
assets
snippets
code-review
refactor-code
review-architecture
security-check
context
load-context
setup-environment
engines
create-engine
create-engine-installer
document-engine
extract-engine
release-engine
review-engine
test-engine
upgrade-engine
infrastructure
implement-background-job
implement-hotwire
optimize-performance
review-migration
seed-database
version-api
personas
testing
plan-tests
test-service