mcpField
D
dignified-python

dignified-python

github.com/dagster-io開発2164.4k 回インストール1 日前に更新
リポジトリ

dignified-python について

Python 3.10~3.13を使う開発者向けのコード品質スキルです。定められたスタイル規約を適用し、必要に応じてバージョン別・タスク別の資料を読み込みます。

主な機能

  1. 01モダンなPythonスタイルの指針
  2. 02型付けと例外処理の助言
  3. 03パス操作とコマンドラインのパターン
  4. 04最低Pythonバージョンの特定
  5. 05テーマ別リファレンスの読み込み

活用シーン

  1. 01Pythonコードの保守性をレビュー
  2. 02型付けや例外処理のパターン選択
  3. 03コマンドラインやパス操作の実装

インストール

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

$npx skills add https://github.com/dagster-io/skills --skill dignified-python

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

同梱ファイル

SKILL.md と一緒にインストールされる参考資料やスクリプト。

cli-patterns.md
dignified-python-core.md
subprocess.md
references/
checklists.md
module-design.md
README.md
references/advanced/
api-design.md
exception-handling.md
interfaces.md
typing-advanced.md
versions/
python-3.10.md
python-3.11.md
python-3.12.md
python-3.13.md

詳細

品格ある Python

クリーンで保守しやすいモダンな Python コード(バージョン 3.10~3.13)を書くための、明確な方針に基づくガイダンスです。

このスキルを使用する場面

ユーザーから次のような質問があった場合に自動的に呼び出します。

  • 「Python らしくして」/「これは良い Python ですか」
  • 「型ヒント」/「型注釈」/「タイピング」
  • 「LBYL と EAFP」/「例外処理」
  • 「pathlib と os.path」/「パス操作」
  • 「CLI のパターン」/「click の使い方」
  • 「コードレビュー」/「このコードを改善して」
  • Python のコード品質や規約に関する質問全般

注:このスキルは汎用的な Python スタイルのガイダンスであり、Dagster 固有のものではありません。明示的に LBYL 寄りの規約を採用しています。必要に応じて、プロジェクトの規約を優先できます。

このスキルと他のスキルを使い分ける場面

ユーザーのニーズこのスキルを使用する場面代替スキル
「Python らしくして」✅ はい - Python の規約
「これは良い Python ですか」✅ はい - コード品質
「型ヒント」✅ はい - タイピングのガイダンス
「LBYL と EAFP」✅ はい - 例外処理のパターン
「pathlib と os.path」✅ はい - パスの処理
「dagster のベストプラクティス」❌ いいえ/dagster-best-practices
「X のパイプラインを実装して」❌ いいえ実装には /dg
「どのインテグレーションを使うべきか」❌ いいえ/dagster-expert
「CLI の引数解析」✅ はい - CLI のパターン

コア知識(常に読み込み)

@dignified-python-core.md

バージョンの検出

次の順に確認し、プロジェクトの最小 Python バージョンを特定します。

  1. pyproject.toml - requires-python フィールドを確認します(例:requires-python = ">=3.12")
  2. setup.py または setup.cfg - python_requires を確認します
  3. .python-version ファイル - 3.12 や 3.12.0 のようなバージョンが記載されています
  4. バージョン指定が見つからない場合は、Python 3.12 をデフォルトにします

特定したら、適切なバージョン固有のファイルを読み込みます。

  • Python 3.10:versions/python-3.10.md を読み込みます
  • Python 3.11:versions/python-3.11.md を読み込みます
  • Python 3.12:versions/python-3.12.md を読み込みます
  • Python 3.13:versions/python-3.13.md を読み込みます

条件付き読み込み(タスクのパターンに応じて読み込み)

上記のコアファイルで Python コードのパターンの 80% 以上をカバーします。特定のパターンを検出した場合に限り、次の追加ファイルを読み込みます。

パターン検出の例:

  • タスクに「click」または「CLI」が含まれる場合 -> cli-patterns.md を読み込みます
  • タスクに「subprocess」が含まれる場合 -> subprocess.md を読み込みます

リファレンスドキュメントの構成

このスキルのリファレンス資料は、トピックごとに整理されています。

コアリファレンス
  • dignified-python-core.md - 基本的な規約(常に読み込み)
  • cli-patterns.md - コマンドラインインターフェースのパターン(click、argparse)
バージョン固有のリファレンス(versions/)
  • python-3.10.md - Python 3.10 以降で利用可能な機能
  • python-3.11.md - Python 3.11 以降で利用可能な機能
  • python-3.12.md - Python 3.12 以降で利用可能な機能
  • python-3.13.md - Python 3.13 以降で利用可能な機能
高度なトピック(references/advanced/)
  • exception-handling.md - LBYL のパターン、エラー境界
  • interfaces.md - ABC と Protocol のパターン
  • typing-advanced.md - 高度なタイピングのパターン
  • api-design.md - API 設計の原則

各リファレンスドキュメントを読む場面

references/advanced/exception-handling.md

次の場合に読みます:

  • try/except ブロックを書くとき
  • 例外を発生させる可能性のあるサードパーティ API をラップするとき
  • from e または from None を見かけたとき、または書くとき
  • LBYL による代替手段があるか分からないとき
references/advanced/interfaces.md

次の場合に読みます:

  • ABC または Protocol クラスを作成するとき
  • @abstractmethod デコレーターを書くとき
  • ゲートウェイ層のインターフェースを設計するとき
  • ABC と Protocol のどちらを使うか選ぶとき
references/advanced/typing-advanced.md

次の場合に読みます:

  • typing.cast() を使用するとき
  • Literal 型エイリアスを作成するとき
  • 条件分岐ブロックで型を絞り込むとき
references/module-design.md

次の場合に読みます:

  • 新しい Python モジュールを作成するとき
  • モジュールレベルのコード(単純な定数以外)を追加するとき
  • モジュールレベルで @cache デコレーターを使用するとき
  • モジュールレベルで Path() や計算処理を見かけたとき
  • インラインインポートを検討するとき
references/advanced/api-design.md

次の場合に読みます:

  • 関数にデフォルトのパラメーター値を追加するとき
  • 5 つ以上のパラメーターを持つ関数を定義するとき
  • ThreadPoolExecutor.submit() を使用するとき
  • 関数シグネチャを確認するとき
references/checklists.md

次の場合に読みます:

  • Python コードをコミットする前の最終確認をするとき
  • すべてのルールに従ったか確信が持てないとき
  • 要件をすばやく確認する必要があるとき

このスキルの使い方

  1. コア知識は自動的に読み込まれます(デフォルト、pathlib、インポート、アンチパターン)
  2. バージョン検出は一度だけ行います。Python の最小バージョンを特定し、適切なバージョンファイルを読み込みます
  3. 参考ドキュメントは、上記の条件に応じて必要なときに読み込まれます
  4. 追加パターンには、追加の読み込みが必要な場合があります(CLI パターン、サブプロセス)
  5. 各ファイルは自己完結型で、対象領域に関する完全なガイダンスを提供します

コメント