mcpField
R
rubocop

rubocop

github.com/el-feoTesting & quality1244 installsUpdated 14w ago
Repository

About rubocop

rubocop is a skill for Ruby developers that guides code linting, formatting, and standards enforcement with RuboCop. It covers configurable analysis and safe or unsafe autocorrection, including Rails, RSpec, and performance checks.

Key features

  1. 01Ruby linting for style and potential issues
  2. 02Safe and unsafe automatic corrections
  3. 03Project-specific configuration guidance
  4. 04Rails, RSpec, and performance checks

Use cases

  1. 01Reviewing Ruby code for violations and code smells
  2. 02Applying formatting fixes to a Ruby project
  3. 03Configuring checks for Rails or RSpec code

Install

Copy the command and run it in a terminal.

$npx skills add https://github.com/el-feo/ai-context --skill rubocop

After installing, type/rubocopin Claude Code to confirm it loaded.

Bundled files

References and scripts installed along with SKILL.md.

references/
autocorrect_guide.md
configuration_guide.md
cop_reference.md
custom_cops_guide.md
extensions_guide.md
scripts/
README.md

Details

From the project README

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

Comments

Markdown supported