mcpField
R
rubocop

rubocop

github.com/el-feoテスト・品質1244 回インストール14 週間前に更新
リポジトリ

rubocop について

rubocopは、Ruby開発者向けにRuboCopでのコード検査、フォーマット、規約適用を支援するスキルです。設定可能な解析や安全・非安全な自動修正に加え、Rails、RSpec、パフォーマンスの検査も扱います。

主な機能

  1. 01Rubyのスタイルと潜在的な問題の検査
  2. 02安全・非安全な自動修正
  3. 03プロジェクト単位の設定ガイド
  4. 04Rails、RSpec、パフォーマンス検査

活用シーン

  1. 01Rubyコードの違反やコードスメルの確認
  2. 02Rubyプロジェクトへのフォーマット修正
  3. 03RailsやRSpec向け検査の設定

インストール

コマンドをコピーしてターミナルで実行します。

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

インストール後、Claude Code で/rubocopを入力して読み込まれたか確認します。

同梱ファイル

SKILL.md と一緒にインストールされる参考資料やスクリプト。

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

詳細

RuboCop によるコード解析とフォーマット

RuboCop は、コミュニティ主導の Ruby Style Guide に基づく、Ruby の主要な静的コード解析ツール(リンター)兼フォーマッターです。このスキルを使うと、Rails アプリケーションを含む Ruby プロジェクト全体で、包括的なコード解析、自動フォーマット、コーディング標準の適用ができます。

このスキルを使う場面

Claude は、ユーザーが次のことを行う場合に、このスキルを自動的に使用します。

  • Ruby コードの「チェック」「lint」「解析」「レビュー」を依頼する
  • コードのフォーマットやスタイルの改善を依頼する
  • コーディング標準やスタイルガイドラインを適用する
  • 潜在的なバグやコードの不適切なパターンを検出する
  • RuboCop の設定やセットアップについて質問する
  • Rails、RSpec、パフォーマンスに特化した解析を依頼する
  • Ruby コードに自動修正を適用する

主な機能

コード解析とLint

  • すべての cop 部門にわたって、スタイル違反、バグ、コードの不適切なパターンを検出します
  • Rails、RSpec、Performance、およびカスタム cop 拡張をサポートします
  • 行番号と説明を含む詳細な違反レポートを提供します

コードの自動修正

  • 安全な自動修正(-a)で、確実に安全な修正を適用します
  • 安全ではない自動修正(-A)で、より広範ながらリスクの高い修正を適用します
  • レイアウトのみの修正(-x)で、ロジックを変更せずにフォーマットを整えます

設定とカスタマイズ

  • 柔軟な .rubocop.yml 設定
  • プロジェクト単位およびディレクトリ単位での設定継承
  • cop の選択的な有効化・無効化と重大度の調整
  • カスタム cop の開発をサポート

拡張機能との統合

  • rubocop-rails:Rails のベストプラクティスと規約
  • rubocop-rspec:RSpec に特化した解析
  • rubocop-performance:パフォーマンス最適化チェック

すばやく解析するワークフロー

基本的な解析を実行する
# Analyze current directory
rubocop

# Analyze specific files/directories
rubocop app spec lib/important_file.rb

# Show only correctable offenses
rubocop --display-only-correctable
修正を適用する
# 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
対象を絞って解析する
# 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

設定の基本

基本的な .rubocop.yml の設定
# 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/**/*'
よく使われる設定パターン

共有設定を継承する:

inherit_from:
  - .rubocop_todo.yml
  - config/rubocop_defaults.yml

Rails 固有の設定:

Rails:
  Enabled: true

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

RSpec の設定:

RSpec/ExampleLength:
  Max: 10

RSpec/MultipleExpectations:
  Max: 3

解析結果の解釈

違反出力の見方
app/models/user.rb:15:3: C: Style/StringLiterals: Prefer single-quoted strings...
  name = "John Doe"
         ^^^^^^^^^^

出力の内訳:

  • app/models/user.rb:15:3 - ファイルパス、行番号、列番号
  • C: - 重大度(C=規約、W=警告、E=エラー、F=致命的)
  • Style/StringLiterals - cop 部門と名前
  • メッセージには問題の説明があり、多くの場合、修正案も示されます
重大度レベル
  • Convention(C):スタイルやフォーマットの問題
  • Warning(W):確認が必要な潜在的な問題
  • Error(E):修正が必要な明確な問題
  • Fatal(F):解析を妨げる構文エラー

よく使われるワークフロー

プロジェクトの初期設定
# 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
コミット前の統合
# 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 への統合
# 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
並列実行
# Use all available CPUs (enabled by default)
rubocop --parallel

# Limit CPU usage
PARALLEL_PROCESSOR_COUNT=2 rubocop

拡張機能固有の機能

Rails の解析

Rails 固有の問題を検出します。

  • ActiveRecord のベストプラクティス
  • コントローラーとルーティングの規約
  • マイグレーションの安全性チェック
  • SQL インジェクションのリスク
RSpec の解析

RSpec のベストプラクティスを適用します。

  • example の構成と命名
  • let とインスタンス変数の使い分け
  • expectation のパターン
  • テストファイルの構成
パフォーマンス解析

パフォーマンスを最適化できる箇所を特定します。

  • 効率の悪いコレクションメソッド
  • 文字列連結の問題
  • 不要な配列の割り当て
  • 正規表現のコンパイル最適化

トラブルシューティング

「Unknown cop」エラー:

  • 必要な gem(rubocop-rails、rubocop-rspec など)がインストールされていることを確認します
  • .rubocop.yml に plugins: [rubocop-rails] を追加します

自動修正が機能しない:

  • 自動修正に対応していない cop もあります
  • 安全ではない修正には -A を使用します
  • 設定で cop が有効になっていることを確認します

パフォーマンスの問題:

  • 実行を高速化するには --parallel を使用します
  • 設定の AllCops の下に UseCache: true を追加します
  • サイズの大きい生成ファイルを除外します

追加リソース

コメント