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