rubocop

RuboCop Code Analysis & Formatting

Safety Notice

This listing is imported from skills.sh public index metadata. Review upstream SKILL.md and repository scripts before running.

Copy this and send it to your AI assistant to learn

Install skill "rubocop" with this command: npx skills add el-feo/ai-context/el-feo-ai-context-rubocop

RuboCop Code Analysis & Formatting

RuboCop is Ruby's premier static code analyzer (linter) and formatter, based on the community-driven Ruby Style Guide. This skill enables comprehensive code analysis, automatic formatting, and enforcement of coding standards across Ruby projects including Rails applications.

When to Use This Skill

Claude automatically uses this skill when users:

  • Ask to "check", "lint", "analyze", or "review" Ruby code

  • Request code formatting or style improvements

  • Want to enforce coding standards or style guidelines

  • Need to detect potential bugs or code smells

  • Ask about RuboCop configuration or setup

  • Request Rails, RSpec, or performance-specific analysis

  • Want to run autocorrections on Ruby code

Core Capabilities

Code Analysis & Linting

  • Detects style violations, bugs, and code smells across all cop departments

  • Supports Rails, RSpec, Performance, and custom cop extensions

  • Provides detailed offense reports with line numbers and descriptions

Automatic Code Correction

  • Safe autocorrection (-a ) for guaranteed-safe fixes

  • Unsafe autocorrection (-A ) for broader but riskier corrections

  • Layout-only fixes (-x ) for formatting without logic changes

Configuration & Customization

  • Flexible .rubocop.yml configuration

  • Per-project and per-directory configuration inheritance

  • Selective cop enabling/disabling and severity adjustment

  • Custom cop development support

Extension Integration

  • rubocop-rails: Rails best practices and conventions

  • rubocop-rspec: RSpec-specific analysis

  • rubocop-performance: Performance optimization checks

Quick Analysis Workflow

Run Basic Analysis

Analyze current directory

rubocop

Analyze specific files/directories

rubocop app spec lib/important_file.rb

Show only correctable offenses

rubocop --display-only-correctable

Apply Corrections

Safe autocorrection only (recommended)

rubocop -a

All corrections including unsafe

rubocop -A

Layout/formatting corrections only

rubocop -x

Autocorrect specific cops

rubocop -a --only Style/StringLiterals,Layout/TrailingWhitespace

Targeted Analysis

Run only specific cops

rubocop --only Style/StringLiterals,Naming/MethodName

Run all cops except specified

rubocop --except Metrics/MethodLength

Run only lint cops

rubocop --lint

Check only Rails-specific issues

rubocop --only Rails

Configuration Essentials

Basic .rubocop.yml Setup

Enable extensions

plugins:

  • rubocop-rails
  • rubocop-rspec
  • rubocop-performance

AllCops: TargetRubyVersion: 3.2 NewCops: enable # Auto-enable new cops Exclude: - 'db/schema.rb' - 'vendor//*' - 'node_modules//*'

Adjust specific cops

Style/StringLiterals: EnforcedStyle: double_quotes

Metrics/MethodLength: Max: 15 Exclude: - 'spec/**/*'

Common Configuration Patterns

Inherit from shared config:

inherit_from:

  • .rubocop_todo.yml
  • config/rubocop_defaults.yml

Rails-specific settings:

Rails: Enabled: true

Rails/ApplicationRecord: Enabled: true Exclude: - 'db/migrate/**'

RSpec configuration:

RSpec/ExampleLength: Max: 10

RSpec/MultipleExpectations: Max: 3

Analysis Interpretation

Understanding Offense Output

app/models/user.rb:15:3: C: Style/StringLiterals: Prefer single-quoted strings... name = "John Doe" ^^^^^^^^^^

Format breakdown:

  • app/models/user.rb:15:3

  • File path, line number, column number

  • C:

  • Severity (C=Convention, W=Warning, E=Error, F=Fatal)

  • Style/StringLiterals

  • Cop department and name

  • Message explains the issue and often suggests fixes

Severity Levels

  • Convention (C): Style/formatting issues

  • Warning (W): Potential problems that should be reviewed

  • Error (E): Definite problems that need fixing

  • Fatal (F): Syntax errors preventing analysis

Common Workflows

Initial Project Setup

Generate initial configuration

rubocop --init

Generate .rubocop_todo.yml for existing violations

rubocop --auto-gen-config

Use todo file to gradually fix issues

.rubocop.yml:

inherit_from: .rubocop_todo.yml

Pre-commit Integration

Check staged files only

git diff --name-only --cached | grep '.rb$' | xargs rubocop

With autocorrection

git diff --name-only --cached | grep '.rb$' | xargs rubocop -a

CI/CD Integration

Exit with error code if offenses found

rubocop --format progress --fail-level warning

Generate formatted reports

rubocop --format json --out rubocop-report.json rubocop --format html --out rubocop-report.html

Parallel Execution

Use all available CPUs (enabled by default)

rubocop --parallel

Limit CPU usage

PARALLEL_PROCESSOR_COUNT=2 rubocop

Extension-Specific Features

Rails Analysis

Detects Rails-specific issues:

  • ActiveRecord best practices

  • Controller and routing conventions

  • Migration safety checks

  • SQL injection risks

RSpec Analysis

Enforces RSpec best practices:

  • Example organization and naming

  • Let vs instance variable usage

  • Expectation patterns

  • Test file structure

Performance Analysis

Identifies performance optimizations:

  • Inefficient collection methods

  • String concatenation issues

  • Unnecessary array allocations

  • Regex compilation optimizations

Troubleshooting

"Unknown cop" errors:

  • Ensure required gems are installed (rubocop-rails , rubocop-rspec , etc.)

  • Add to .rubocop.yml : plugins: [rubocop-rails]

Autocorrection not working:

  • Some cops don't support autocorrection

  • Use -A for unsafe corrections

  • Check cop is enabled in configuration

Performance issues:

  • Use --parallel for faster execution

  • Add UseCache: true under AllCops in config

  • Exclude large generated files

Additional Resources

  • Configuration Guide - Comprehensive configuration reference

  • Cop Reference - All cop departments and their responsibilities

  • Extensions Guide - Rails, RSpec, Performance extension details

  • Autocorrect Guide - Safe vs unsafe corrections explained

  • Custom Cops Guide - Creating custom cops for your project

Source Transparency

This detail page is rendered from real SKILL.md content. Trust labels are metadata-based hints, not a safety guarantee.

Related Skills

Related by shared tags or category signals.

Coding

github-actions

No summary provided by upstream source.

Repository SourceNeeds Review
General

tailscale

No summary provided by upstream source.

Repository SourceNeeds Review
General

cucumber-gherkin

No summary provided by upstream source.

Repository SourceNeeds Review
General

eslint

No summary provided by upstream source.

Repository SourceNeeds Review