| name | boo-quality |
| description | Runs and interprets quality gates for Ruby on Rails delivery. Use when validating PR readiness, release safety, or implementation quality across tests, linting, security, and performance checks. Triggers on quality gate, readiness, release check, CI parity, lint, test suite, security scan, or pre-merge validation. |
Rails Quality Gates
Overview
Use this skill to enforce a consistent definition of done before merging or deploying Rails changes.
LSP Recommendation
Strongly recommend enabling LSP before running this skill:
ENABLE_LSP_TOOL=1 in the shell running Claude/Codex.
- Run from the Rails app root directory.
- Ensure a Ruby LSP backend is available in the app bundle (
ruby-lsp and/or solargraph).
If LSP is not enabled, continue execution but highlight reduced confidence in code navigation-based checks.
Gate Order
Run fast-to-slow for rapid feedback:
- Syntax and static sanity.
- Lint/style.
- Targeted tests for touched scope.
- Security scan.
- Performance smoke checks.
Standard Commands
Use available tools in project context. Typical sequence:
bundle exec rubocop
bundle exec rspec or focused specs
bundle exec brakeman
- Performance spot checks (query count, N+1, endpoint timing)
If a tool is unavailable, report as Not Run with reason and risk impact.
Scripted Execution
Use the bundled script for repeatable gate runs:
scripts/run_gates.sh
scripts/run_gates.sh --test-target spec/requests/users_spec.rb
scripts/run_gates.sh --mode advisory --skip-security
scripts/run_gates.sh --perf-command "bundle exec ruby scripts/perf_smoke.rb"
scripts/run_gates.sh --require-lsp (hard fail if ENABLE_LSP_TOOL!=1)
Default behavior:
- Runs syntax/autoload, lint, tests, security, and optional performance smoke.
- Persists logs in
tmp/boo-quality-<timestamp>/.
- Produces
PASS, WARN, or FAIL overall summary.
Use --output-file <path> to persist a markdown report for PR or release notes.
Gate Decisions
- Pass: no blocking failures.
- Warn: non-blocking issues with mitigation.
- Fail: must fix before merge.
Output Contract
- Gate Summary (pass/warn/fail).
- Detailed Results by gate.
- Blocking Issues.
- Suggested Fixes.
- Follow-up Checks.
Final Summary (Required)
Always end execution with:
- Overall gate status: pass, warn, or fail.
- Blocking gates and why.
- Non-blocking warnings.
- Commands executed (or skipped with reason).
- Merge/deploy recommendation.
References
Load references/external-resources.md for official guides and tooling docs.