python-code-review
Pythonコードの型安全性・非同期パターン・エラーハンドリング・よくあるミスをレビューします。`.py`ファイルのレビュー時や、型ヒント・async/awaitの使い方・例外処理の確認に活用してください。
description の原文を見る
Reviews Python code for type safety, async patterns, error handling, and common mistakes. Use when reviewing .py files, checking type hints, async/await usage, or exception handling.
SKILL.md 本文
Python コードレビュー
クイックリファレンス
| 問題タイプ | 参照 |
|---|---|
| インデント、行の長さ、空白、命名 | references/pep8-style.md |
| 不足/不正な型ヒント、Any の使用 | references/type-safety.md |
| async での ブロッキング呼び出し、await の不足 | references/async-patterns.md |
| 裸の except、コンテキストの欠落、ログ | references/error-handling.md |
| ミュータブルなデフォルト、print ステートメント | references/common-mistakes.md |
レビューチェックリスト
PEP8 スタイル
- 4 スペースインデント(タブなし)
- 行の長さ ≤79 文字(ドキュメント文字列/コメント ≤72)
- トップレベル定義の前後に 2 つの空行、クラス内は 1 つ
- インポートのグループ化:stdlib → サードパーティ → ローカル(グループ間に空行)
- 括弧内またはコロン/カンマの前に空白なし
- 命名規則:関数/変数は
snake_case、クラスはCamelCase、定数はUPPER_CASE - インラインコメントは最低でも 2 スペース区切り
型安全性
- すべての関数パラメータと戻り値に型ヒント
- 必要な場合を除き
Anyなし(理由を説明するコメント付き) - 正しい
T | None構文(Python 3.10+)
Async パターン
- async 関数内にブロッキング呼び出し(
time.sleep、requestsなど)なし - すべてのコルーチンに対して正しく
await
エラーハンドリング
- 裸の
except:句なし - コンテキスト付きの特定の例外タイプ
- スタックトレースを保持するために
raise ... fromを使用
一般的な間違い
- ミュータブルなデフォルト引数なし
- 出力には
loggerを使用、print()でなく -
.format()または%ではなく f-strings を推奨
有効なパターン(フラグを立てない)
これらのパターンは意図的で正しいため、問題として報告しないでください:
- 型アノテーションと型アサーション - アノテーションは型を宣言しますが、実行時アサーションではありません。不足している検証と混同しないでください
- 型なしライブラリと相互作用する場合の
Any使用 - 外部ライブラリに型スタブがない場合は必須です - 空の
__init__.pyファイル - パッケージ構造として有効、コード不要 noqaコメント - 特定のケースにリンタルールが適用されない場合は有効- 実行時型チェック後の
cast()使用 - 絞り込まれた型を型チェッカーに通知するための正しいパターン
コンテキスト依存ルール
これらの問題は特定の条件が適用される場合のみフラグを立てます:
| 問題 | フラグ対象 |
|---|---|
| 一般的な例外処理 | 特定の例外タイプが利用可能で意味がある場合 |
| 未使用の変数 | 変数に _ プレフィックスがなく、f-strings、ログ、またはデバッグで使用されていない場合 |
ゲート(レポーティングワークフロー)
順序通りに完了してください。各合格条件が満たされるまで進まないでください。
- スコープ — 合格: この実行で検査したすべての
.pyパス(または明示的なグロブ)を列挙します。 - 誤検知スクリーン — 合格: 報告する予定の각 問題について、上記の有効なパターンとコンテキスト依存ルールをチェックしました。これらのセクションがフラグを立てないと言っている場合、検出結果を削除または絞り込みます。
- エビデンス — 合格: 残りの検出結果には
[FILE:LINE](または境界のある行範囲)が含まれています。シンボルまたは短い逐語的スニペットが場所アンカーを補うことはできますが、置き換えることはできません。 - 検証プロトコル — 合格:
review-verification-protocolを読み込み、ユーザーに見える書き込み前に報告される各問題の必須ステップを完了します。 - リリース — 合格: ユーザーに見える出力は、そのプロトコルが要求する構造に一致します(そのチェックをスキップする問題のみのダンプではありません)。
参照を読み込む時期
- コードフォーマット/スタイルをレビューする場合 → pep8-style.md
- 関数シグネチャをレビューする場合 → type-safety.md
async def関数をレビューする場合 → async-patterns.md- try/except ブロックをレビューする場合 → error-handling.md
- 一般的な Python レビュー → common-mistakes.md
レビュー質問
- コードは PEP8 フォーマット(インデント、行の長さ、空白)に従っていますか?
- インポートは正しくグループ化されていますか(stdlib → サードパーティ → ローカル)?
- 名前は規則に従っていますか(snake_case、CamelCase、UPPER_CASE)?
- すべての関数シグネチャは完全に型付けされていますか?
- async 関数は本当にブロッキングされていませんか?
- 例外は有意義なコンテキストを含んでいますか?
- ミュータブルなデフォルト引数はありますか?
報告前に:上記の**ゲート(レポーティングワークフロー)**を完了してください(特にゲート 4)。
ライセンス: Apache-2.0(寛容ライセンスのため全文を引用しています) · 原本リポジトリ
詳細情報
- 作者
- existential-birds
- ライセンス
- Apache-2.0
- 最終更新
- 不明
Source: https://github.com/existential-birds/beagle / ライセンス: Apache-2.0
関連スキル
doubt-driven-development
重要な判断はすべて、本番環境への展開前に新しい視点から対抗的レビューを実施します。速度より正確性が重要な場合、不慣れなコードを扱う場合、本番環境・セキュリティに関わるロジック・取り消し不可の操作など影響度が高い場合、または後でバグを修正するよりも今検証する方が効率的な場合に活用してください。
apprun-skills
TypeScriptを使用したAppRunアプリケーションのMVU設計に関する総合的なガイダンスが得られます。コンポーネントパターン、イベントハンドリング、状態管理(非同期ジェネレータを含む)、パラメータと保護機能を備えたルーティング・ナビゲーション、vistestを使用したテストに対応しています。AppRunコンポーネントの設計・レビュー、ルートの配線、状態フローの管理、AppRunテストの作成時に活用してください。
desloppify
コードベースのヘルスチェックと技術負債の追跡ツールです。コード品質、技術負債、デッドコード、大規模ファイル、ゴッドクラス、重複関数、コードスメル、命名規則の問題、インポートサイクル、結合度の問題についてユーザーが質問した場合に使用してください。また、ヘルススコアの確認、次の改善項目の提案、クリーンアップ計画の作成をリクエストされた際にも対応します。29言語に対応しています。
debugging-and-error-recovery
テストが失敗したり、ビルドが壊れたり、動作が期待と異なったり、予期しないエラーが発生したりした場合に、体系的な根本原因デバッグをガイドします。推測ではなく、根本原因を見つけて修正するための体系的なアプローチが必要な場合に使用してください。
test-driven-development
テスト駆動開発により実装を進めます。ロジックの実装、バグの修正、動作の変更など、あらゆる場面で活用できます。コードが正常に動作することを証明する必要がある場合、バグ報告を受けた場合、既存機能を修正する予定がある場合に使用してください。
incremental-implementation
変更を段階的に実施します。複数のファイルに影響する機能や変更を実装する場合に使用してください。大量のコードを一度に書こうとしている場合や、タスクが一度では完結できないほど大きい場合に活用します。