Code Quality Gate スキル
このスキルは、Constitution Article 5: Code Quality Standards を強制し、コード品質基準の完全遵守を保証します。
起動条件
以下の状況で自動起動します:
- •コミット前:
git commitを実行する前の最終チェック - •PR作成前: プルリクエストを作成する前
- •品質問題検出時: コードに品質問題がある可能性がある場合
- •明示的な依頼: ユーザーが品質チェックを依頼した場合
品質チェック項目
1. Ruff Linter
コードスタイルとベストプラクティスの検証
bash
# エラーチェック uv run ruff check . # 自動修正 uv run ruff check --fix .
チェック内容:
- •未使用のインポート
- •未使用の変数
- •コードスタイル違反
- •セキュリティ問題
- •パフォーマンス問題
2. Ruff Formatter
コードフォーマットの統一
bash
# フォーマットチェック(差分表示) uv run ruff format --check . # 自動フォーマット uv run ruff format .
チェック内容:
- •インデント
- •行の長さ
- •空白の使用
- •クォートの統一
3. Mypy Type Checker
静的型チェック
bash
# 型チェック実行 uv run mypy .
チェック内容:
- •型アノテーションの存在(Article 9)
- •型の整合性
- •
Any型の過剰使用 - •
Noneチェックの欠落
実行プロセス
Quick Check(高速チェック)
bash
# すべてのチェックを一度に実行 uv run ruff check . && uv run ruff format --check . && uv run mypy .
Full Check with Auto-fix(自動修正付き完全チェック)
bash
# 自動修正を適用して再チェック uv run ruff check --fix . && uv run ruff format . && uv run mypy .
Step-by-Step(段階的チェック)
問題を個別に解決したい場合:
bash
# Step 1: Linter uv run ruff check . # Step 2: Formatter uv run ruff format --check . # Step 3: Type Checker uv run mypy .
品質ゲート基準
PASS条件
すべてのチェックがエラーなしで完了:
code
✓ ruff check: 0 errors ✓ ruff format: No changes needed ✓ mypy: Success: no issues found
FAIL条件
いずれかのチェックでエラーが発生:
code
✗ ruff check: 3 errors found ✗ ruff format: 2 files would be reformatted ✗ mypy: Found 5 errors in 2 files
エラー対応ガイド
Ruff エラーの修正
bash
# エラー一覧の確認 uv run ruff check . # 自動修正可能なエラーを修正 uv run ruff check --fix . # 手動修正が必要なエラーは個別対応 # エラーコードのドキュメントを参照
Format エラーの修正
bash
# 自動フォーマット適用 uv run ruff format .
Mypy エラーの修正
| エラータイプ | 対応方法 |
|---|---|
missing return type | 戻り値の型アノテーションを追加 |
missing argument type | 引数の型アノテーションを追加 |
incompatible types | 型の不整合を修正 |
None not allowed | Optional型または None チェックを追加 |
型アノテーション例:
python
# Before (エラー)
def greet(name):
return f"Hello, {name}"
# After (修正)
def greet(name: str) -> str:
return f"Hello, {name}"
レポート形式
チェック完了後、以下の形式でレポート:
code
## Code Quality Gate Report ### チェック結果 | Tool | Status | Details | |------|--------|---------| | ruff check | ✓ PASS | 0 errors | | ruff format | ✓ PASS | No changes | | mypy | ✓ PASS | No issues | ### 総合判定: PASS コミット/PR作成を進めてください。
または
code
## Code Quality Gate Report ### チェック結果 | Tool | Status | Details | |------|--------|---------| | ruff check | ✗ FAIL | 3 errors | | ruff format | ✓ PASS | No changes | | mypy | ✗ FAIL | 5 errors | ### 総合判定: FAIL 以下のエラーを修正してください: 1. ruff: E501 Line too long (src/auth.py:45) 2. ruff: F401 Unused import (src/utils.py:1) 3. mypy: Missing return type (src/auth.py:10) ...
注意事項
- •例外なし: Article 5 は非交渉的原則
- •時間制約は理由にならない: 品質を犠牲にしない
- •自動修正を活用: 可能な限り自動修正を適用
- •ゲート通過必須: PASSするまでコミット/PRは行わない
推奨ワークフロー
- •コードを書く
- •
uv run ruff check --fix . && uv run ruff format .を実行 - •
uv run mypy .を実行 - •エラーがあれば修正
- •すべてPASSしたらコミット
bash
# 一連のコマンド uv run ruff check --fix . && uv run ruff format . && uv run mypy . && git add . && git commit -m "message"