/SKILL.md
Rails 8.x application architecture, implementation, and review guidance for production codebases. Use when building or reviewing Ruby on Rails 8 features across models, controllers, routes, Hotwire, jobs, APIs, performance, security, and testing. Trigger for requests mentioning Rails 8, Active Record, Active Job, GoodJob, Solid Queue, Turbo/Stimulus, REST resources, migrations, code quality, naming, and production readiness.
npx skillsauth add ethos-link/rails-conventions rails-conventionsInstall 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.
Follow this workflow and load only the references needed for the task.
Rails applications should look like Rails applications. Prefer the framework's native resource, model, controller, job, mailer, and view boundaries before introducing extra architectural layers. Avoid architecture borrowed from other ecosystems when Rails already has a direct convention for the problem.
Official Rails guides, official gem documentation, and established local app conventions outrank style profiles. Use 37signals-inspired guidance as taste guidance, not as authority over the current app or current Rails APIs.
Classes and modules must earn their place. Choose the fewest concepts, files, and lines of code that keep the behavior clear. Do not add wrappers, aliases, facades, or parallel abstractions whose main purpose is naming, indirection, or making tests easier.
Keep one owner per behavior and one owner per definition. Prompts, schemas, enums, constants, validation rules, normalization logic, and domain terminology must each have a canonical home.
Every Rails project should maintain a domain terminology document, usually
docs/domain-terms.md, and link it from the README or equivalent contributor
entrypoint. The document should define canonical domain terms, deprecated terms,
and naming rules for code, routes, params, APIs, persisted fields, and docs.
Always read these files first when available:
Gemfileconfig/application.rbconfig/routes.rbconfig/environments/*.rb (at least current target env)app/models/ (2-5 representative models)app/controllers/ (2-5 representative controllers)test/ or spec/Procfile*, bin/jobs, config/deploy*.yml, CI config)Record and follow observed patterns:
Never assume Solid Queue just because the app is Rails 8.
Detect backend in this order:
config.active_job.queue_adapterGemfile gems (good_job, solid_queue, others)Apply these rules:
good_job is active, keep good_job conventions.solid_queue is active, keep solid_queue conventions.ApplicationJob code unless backend features are explicitly requested.Load references based on the task:
STYLE.mdreferences/01-baseline-rails-8.mdreferences/02-naming-and-structure.mdreferences/03-models-and-data.mdreferences/03a-active-record-postgresql.mdreferences/04-controllers-and-params.mdreferences/05-routes-rest-and-resources.mdreferences/06-hotwire-turbo-stimulus.mdreferences/07-background-jobs-overview.mdreferences/07a-background-jobs-good_job.mdreferences/07b-background-jobs-solid_queue.mdreferences/08-performance-caching-and-db.mdreferences/09-security-checklist.mdreferences/10-testing-strategy.mdreferences/11-api-mode-and-serialization.mdreferences/12-37signals-inspired-profile.mdreferences/13-code-quality-gates.md| Task | Load |
|------|------|
| Ruby style, naming, method order, fail-fast | STYLE.md, references/13-code-quality-gates.md |
| New model, migration, data invariant, parser | references/03-models-and-data.md, references/03a-active-record-postgresql.md, references/10-testing-strategy.md |
| Controller params, authz, sessions, responses | references/04-controllers-and-params.md, references/09-security-checklist.md, references/10-testing-strategy.md |
| Routes or custom actions | references/05-routes-rest-and-resources.md, references/04-controllers-and-params.md |
| Hotwire, Turbo, Stimulus | references/06-hotwire-turbo-stimulus.md, references/10-testing-strategy.md |
| Background jobs | references/07-background-jobs-overview.md, adapter-specific 07a or 07b, references/10-testing-strategy.md |
| API endpoint or serializer | references/11-api-mode-and-serialization.md, references/04-controllers-and-params.md, references/09-security-checklist.md |
| Performance, cache, query work | references/08-performance-caching-and-db.md, references/03-models-and-data.md |
| Architecture or object boundary | references/02-naming-and-structure.md, references/12-37signals-inspired-profile.md |
Existing authentication and local naming are authoritative. For greenfield Rails 8.1 applications, prefer the built-in authentication generator. Do not rename an existing auth domain for style alone.
When implementing custom auth:
has_secure_password.Identity (global email-based),
User (per-account membership), and Session.httponly and same_site: :lax.For implementation tasks, produce:
For review tasks, prioritize:
development
Rails 8.x application architecture, implementation, and review guidance for production codebases. Use when building or reviewing Ruby on Rails 8 features across models, controllers, routes, Hotwire, jobs, APIs, performance, security, and testing. Trigger for requests mentioning Rails 8, Active Record, Active Job, GoodJob, Solid Queue, Turbo/Stimulus, REST resources, migrations, code quality, naming, and production readiness.
development
Maintainer-only workflow for handling GitHub Secret Scanning alerts on OpenClaw. Use when Codex needs to triage, redact, clean up, and resolve secret leakage found in issue comments, issue bodies, PR comments, or other GitHub content.
development
Maintainer workflow for OpenClaw releases, prereleases, changelog release notes, and publish validation. Use when Codex needs to prepare or verify stable or beta release steps, align version naming, assemble release notes, check release auth requirements, or validate publish-time commands and artifacts.
development
Run, watch, debug, and extend OpenClaw QA testing with qa-lab and qa-channel. Use when Codex needs to execute the repo-backed QA suite, inspect live QA artifacts, debug failing scenarios, add new QA scenarios, or explain the OpenClaw QA workflow. Prefer the live OpenAI lane with regular openai/gpt-5.4 in fast mode; do not use gpt-5.4-pro or gpt-5.4-mini unless the user explicitly overrides that policy.