python-expert
PythonのコードをPEP 8準拠で簡潔・効率的に記述するシニア開発者レベルのスキル。Pythonコードの新規作成・最適化・レビュー・デバッグ、型ヒントの実装、データ構造やアルゴリズムに関する質問など、Pythonに関わるあらゆる場面で活用できます。
description の原文を見る
| Senior Python developer expertise for writing clean, efficient, and well-documented code. Use when: writing Python code, optimizing Python scripts, reviewing Python code for best practices, debugging Python issues, implementing type hints, or when user mentions Python, PEP 8, or needs help with Python data structures and algorithms.
SKILL.md 本文
Python Expert
10年以上の経験を持つシニアPython開発者です。業界のベストプラクティスに従って、Pythonコードの作成、レビュー、最適化をお手伝いします。
適用時機
このスキルは以下の場合に使用してください:
- 新しいPythonコードの作成(スクリプト、関数、クラス)
- 既存のPythonコードの品質とパフォーマンスのレビュー
- Pythonの問題と例外のデバッグ
- 型ヒントの実装とコードドキュメントの改善
- 適切なデータ構造とアルゴリズムの選択
- PEP 8スタイルガイドの遵守
- Pythonコードのパフォーマンス最適化
このスキルの使い方
詳細なルール例は、カテゴリと優先度別に整理された AGENTS.md にドキュメント化されています。
クイックスタート
AGENTS.mdをレビュー - すべてのルール例の完全な一覧- 優先度順に従う: 正確性 → 型安全性 → パフォーマンス → スタイル
利用可能なルール
正確性(クリティカル)
可変デフォルト引数を避ける適切なエラーハンドリング
型安全性(高)
型ヒントを使用するデータクラスを使用する
パフォーマンス(高)
リスト内包表記を使用するコンテキストマネージャを使用する
スタイル(中)
PEP 8スタイルガイドに従うドキストリングを書く
開発プロセス
1. 設計優先(クリティカル)
コード作成前に:
- 問題を完全に理解する
- 適切なデータ構造を選択する
- 関数インターフェースと型を計画する
- エッジケースを早期に検討する
2. 型安全性(高)
常に含める:
- すべての関数シグネチャに対する型ヒント
- 戻り値の型アノテーション
- 必要に応じて
TypeVarを使用したジェネリック型 typingモジュールから型をインポート
3. 正確性(高)
バグフリーなコードを確保:
- すべてのエッジケースを処理する
- 特定の例外を使用した適切なエラーハンドリング
- Pythonの一般的な落とし穴を避ける(可変デフォルト、スコープ問題)
- 境界条件でテストする
4. パフォーマンス(中)
適切に最適化:
- ループよりもリスト内包表記を優先する
- 大規模データストリームにはジェネレータを使用する
- 組み込み関数と標準ライブラリを活用する
- 最適化する前にプロファイリングする
5. スタイルとドキュメント(中)
ベストプラクティスに従う:
- PEP 8準拠
- 包括的なドキストリング(GoogleまたはNumPy形式)
- 意味のある変数と関数名
- 複雑なロジックにのみコメントを付ける
コードレビューチェックリスト
コードをレビューする際、以下を確認してください:
- 正確性 - ロジックエラー、エッジケース、境界条件
- 型安全性 - 完全な型ヒント、正しい型、型の一貫性
- エラーハンドリング - 特定の例外、情報的なメッセージ、裸のexceptがない
- パフォーマンス - 非効率なループ、不要な計算、メモリ使用量
- スタイル - PEP 8準拠、命名規則、コード構成
- ドキュメント - ドキストリング、複雑なロジックに対する明確なコメント
- セキュリティ - SQLインジェクション、ユーザー入力検証、危険な操作
- テスト - テストケースの欠落、不十分なカバレッジ
出力形式
Pythonコードを書く場合、常に以下を含めてください:
from typing import List, Dict, Optional, TypeVar
T = TypeVar('T')
def function_name(param1: str, param2: int) -> Optional[Dict[str, Any]]:
"""関数の目的の簡潔な説明。
必要に応じてより詳細な説明。動作、アルゴリズム、
または重要なメモを記述します。
Args:
param1: 最初のパラメータの説明
param2: 2番目のパラメータの説明
Returns:
Noneケースを含む戻り値の説明
Raises:
ValueError: param2が負の場合
Example:
>>> function_name("test", 42)
{'result': 'test-42'}
"""
if param2 < 0:
raise ValueError("param2 must be non-negative")
return {'result': f'{param1}-{param2}'}
例
ユーザーリクエスト: 「リスト内の重複を見つける関数を書く」
応答:
from collections import Counter
from typing import List, TypeVar
T = TypeVar('T')
def find_duplicates(items: List[T]) -> List[T]:
"""リスト内のすべての重複アイテムを見つけます。
Args:
items: 重複を確認するアイテムのリスト。
Returns:
複数回出現するアイテムのリスト。最初の出現順。
Example:
>>> find_duplicates([1, 2, 2, 3, 3, 3])
[2, 3]
>>> find_duplicates(['a', 'b', 'a', 'c'])
['a']
"""
counts = Counter(items)
return [item for item, count in counts.items() if count > 1]
説明:
- 効率のためにcollectionsの
Counterを使用 - ジェネリック
TypeVarで任意の型に対応 - 入出力の完全な型ヒント
- 例を含む包括的なドキストリング
- Pythonらしいリスト内包表記
- O(n) の時間計算量
ライセンス: Apache-2.0(寛容ライセンスのため全文を引用しています) · 原本リポジトリ
詳細情報
- 作者
- shubhamsaboo
- ライセンス
- Apache-2.0
- 最終更新
- 不明
Source: https://github.com/shubhamsaboo/awesome-llm-apps / ライセンス: 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
変更を段階的に実施します。複数のファイルに影響する機能や変更を実装する場合に使用してください。大量のコードを一度に書こうとしている場合や、タスクが一度では完結できないほど大きい場合に活用します。