mcpField
C
code-quality

code-quality

github.com/s-hiraokuテスト・品質1892 回インストール3 週間前に更新
リポジトリ

code-quality について

Pythonプロジェクト向けのコード品質スキルです。RuffとMypyを実行し、必要に応じてpytest、自動修正、コード簡素化も行います。既定では変更済みファイルを対象とし、synapse/全体も検査できます。

主な機能

  1. 01Ruffによるリンティング
  2. 02Mypyによる型チェック
  3. 03pytestの任意実行
  4. 04Ruffによる自動修正
  5. 05コード簡素化の任意実行

活用シーン

  1. 01最近変更したPythonファイルの検査
  2. 02synapse/全体のチェック
  3. 03Ruffの問題の自動修正
  4. 04チェック通過後のテスト実行

インストール

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

$npx skills add https://github.com/s-hiraoku/synapse-a2a --skill code-quality

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

詳細

コード品質チェック

このスキルでは、コード品質ツール(ruff、mypy、pytest)を実行し、必要に応じてコードを簡素化します。

使用方法

/code-quality [options]
オプション
  • --all または -a:すべての synapse/ ファイルに対して実行します(デフォルトでは最近変更されたファイルのみ)
  • --no-simplify:コード簡素化エージェントをスキップします(デフォルトでは、チェックがすべて成功した後に code-simplifier を実行します)
  • --fix または -f:--fix フラグを使って ruff の問題を自動修正します
  • --test または -t:lint が成功した後に pytest を実行します
  • --full:テストを含むすべてのチェックを実行します(--fix --test と同等です)

ワークフロー

ステップ 1:対象ファイルの特定

--all フラグが指定された場合:

  • synapse/ ディレクトリ内のすべてのファイルを対象にします

それ以外の場合:

  • git diff --name-only HEAD~1 を実行して、最近変更されたファイルを取得します
  • synapse/ または tests/ 内の .py ファイルのみを対象にします
ステップ 2:Ruff リンターの実行
ruff check [files]

--fix フラグが指定された場合:

ruff check --fix [files]

見つかったエラーを報告します。修正後もエラーが残る場合は停止して報告します。

ステップ 3:Mypy 型チェッカーの実行
uv run mypy [files]

見つかった型エラーを報告します。エラーがある場合は停止して報告します。

ステップ 4:テストの実行(--test または --full の場合)

--test または --full フラグが指定され、かつ ruff/mypy が成功した場合:

pytest

変更されたファイルに関連する特定のテストを実行する場合:

pytest tests/ -v

テストの失敗を報告します。

ステップ 5:コード簡素化の実行(デフォルト)

デフォルトでは、すべてのチェックが成功した後に code-simplifier を実行します。--no-simplify フラグでスキップします。

code-simplifier:code-simplifier エージェントを使って、最近変更されたコードを簡素化します:

Task tool with subagent_type: code-simplifier:code-simplifier
Prompt: Simplify and refine the recently modified code in [files].
Look for opportunities to reduce duplication, simplify conditionals,
and improve readability while maintaining all functionality.
ステップ 6:結果の報告

以下をまとめます:

  • チェックしたファイル数
  • Ruff の結果(成功/失敗、--fix を指定した場合は修正されたエラー)
  • Mypy の結果(成功/失敗)
  • Pytest の結果(成功/失敗、未実行の場合はスキップ)
  • コード簡素化の結果(デフォルトでは実行、--no-simplify を指定した場合はスキップ)

エラー処理

エラーが見つかった場合:

  1. Ruff のエラー:--fix が指定されている場合は、まず自動修正を試みます。残ったエラーをファイル名:行番号の形式で報告します。
  2. Mypy のエラー:型エラーをファイル名:行番号の形式で報告します。エラーメッセージに基づいて修正方法を提案します。
  3. テストの失敗:失敗したテスト名とアサーションエラーを報告します。テストが失敗した場合、簡素化には進みません。

例

最近の変更を基本チェックする
/code-quality
自動修正を使ってすべてのファイルをチェックする
/code-quality --all --fix
テストを含む完全な品質チェック
/code-quality --full
テストのみを実行する
/code-quality --test
コードの簡素化をスキップする
/code-quality --no-simplify
省略形
/lint          # Same as /code-quality (includes simplification)
/check         # Same as /code-quality
/lint -a -f    # All files with auto-fix
/lint -t       # With tests
/lint --full   # Full check (--fix --test)
/lint --no-simplify  # Skip simplification

ツールの設定

このプロジェクトでは、以下の設定(pyproject.toml から取得)を使用します:

Ruff
  • 対象:Python 3.10
  • 行の長さ:88
  • ルール:E、F、I、UP、B、SIM
  • 無視するルール:E501、B008
  • 除外対象:synapse/proto/a2a_pb2*.py
Mypy
  • disallow_untyped_defs を有効にした strict モード
  • テストには緩和されたルールを適用(ignore_errors)
  • Proto ファイルは除外
Pytest
  • asyncio_mode:auto
  • 実行方法:pytest または pytest tests/ -v

コメント