Agent Skills by ALSEL
汎用ソフトウェア開発⭐ リポ 0品質スコア 60/100

python-pro

Python 3.11以上を使用したアプリケーション開発で、型安全性、非同期プログラミング、堅牢なエラーハンドリングが必要な場合に活用できます。型アノテーション付きのPythonコードを生成し、mypyをストリクトモードで設定します。また、fixtureとmockingを備えたpytestテストスイートを作成し、blackとruffでコード検証を実行します。型ヒント、async/awaitパターン、dataclass、依存性注入、ロギング設定、構造化されたエラーハンドリングが必要な際に活用してください。

description の原文を見る

Use when building Python 3.11+ applications requiring type safety, async programming, or robust error handling. Generates type-annotated Python code, configures mypy in strict mode, writes pytest test suites with fixtures and mocking, and validates code with black and ruff. Invoke for type hints, async/await patterns, dataclasses, dependency injection, logging configuration, and structured error handling.

SKILL.md 本文

Python Pro

型安全性とAsync ファーストに焦点を当てたモダン Python 3.11+ スペシャリスト。本番対応のコードを生成します。

このスキルを使用するタイミング

  • 完全な型カバレッジで型安全な Python を記述する
  • I/O 操作に対して async/await パターンを実装する
  • フィクスチャとモッキングを備えた pytest テストスイートをセットアップする
  • リスト内包表記、ジェネレータ、コンテキストマネージャーを使用した Pythonic なコードを作成する
  • Poetry を使用してパッケージをビルドし、適切なプロジェクト構造を設定する
  • パフォーマンス最適化とプロファイリング

コアワークフロー

  1. コードベースの分析 — 構造、依存関係、型カバレッジ、テストスイートを確認
  2. インターフェースの設計 — プロトコル、データクラス、型エイリアスを定義
  3. 実装 — 完全な型ヒントとエラーハンドリングを備えた Pythonic なコードを記述
  4. テスト — 90% 以上のカバレッジを備えた包括的な pytest スイートを作成
  5. 検証mypy --strictblackruff を実行
    • mypy が失敗する場合:報告された型エラーを修正し、再実行してから進める
    • テストが失敗する場合:アサーションをデバッグし、フィクスチャを更新して、成功するまで繰り返す
    • ruff/black が問題を報告する場合:自動修正を適用してから再検証する

リファレンスガイド

コンテキストに基づいて詳細なガイダンスを読み込みます:

トピックリファレンス読み込みタイミング
型システムreferences/type-system.md型ヒント、mypy、ジェネリック、Protocol
Async パターンreferences/async-patterns.mdasync/await、asyncio、タスクグループ
標準ライブラリreferences/standard-library.mdpathlib、dataclasses、functools、itertools
テストreferences/testing.mdpytest、フィクスチャ、モッキング、parametrize
パッケージングreferences/packaging.mdpoetry、pip、pyproject.toml、配布

制約

必須事項

  • すべての関数シグネチャとクラス属性に対する型ヒント
  • black フォーマッティングを伴う PEP 8 準拠
  • 包括的なドキュメント文字列(Google スタイル)
  • pytest での 90% を超えるテストカバレッジ
  • Optional[X] の代わりに X | None を使用(Python 3.10+)
  • I/O バウンド操作に対する async/await
  • 手動の __init__ メソッドの代わりにデータクラスを使用
  • リソース処理に対するコンテキストマネージャー

禁止事項

  • パブリック API への型アノテーションをスキップする
  • ミュータブルなデフォルト引数を使用する
  • sync と async コードの不適切な混在
  • 厳密モードの mypy エラーを無視する
  • 裸の except 句を使用する
  • シークレットや設定をハードコードする
  • 廃止予定の stdlib モジュールを使用する(os.path ではなく pathlib を使用)

コード例

エラーハンドリング付き型アノテーション関数

from pathlib import Path

def read_config(path: Path) -> dict[str, str]:
    """Read configuration from a file.

    Args:
        path: Path to the configuration file.

    Returns:
        Parsed key-value configuration entries.

    Raises:
        FileNotFoundError: If the config file does not exist.
        ValueError: If a line cannot be parsed.
    """
    config: dict[str, str] = {}
    with path.open() as f:
        for line in f:
            key, _, value = line.partition("=")
            if not key.strip():
                raise ValueError(f"Invalid config line: {line!r}")
            config[key.strip()] = value.strip()
    return config

バリデーション付きデータクラス

from dataclasses import dataclass, field

@dataclass
class AppConfig:
    host: str
    port: int
    debug: bool = False
    allowed_origins: list[str] = field(default_factory=list)

    def __post_init__(self) -> None:
        if not (1 <= self.port <= 65535):
            raise ValueError(f"Invalid port: {self.port}")

Async パターン

import asyncio
import httpx

async def fetch_all(urls: list[str]) -> list[bytes]:
    """Fetch multiple URLs concurrently."""
    async with httpx.AsyncClient() as client:
        tasks = [client.get(url) for url in urls]
        responses = await asyncio.gather(*tasks)
        return [r.content for r in responses]

pytest フィクスチャと parametrize

import pytest
from pathlib import Path

@pytest.fixture
def config_file(tmp_path: Path) -> Path:
    cfg = tmp_path / "config.txt"
    cfg.write_text("host=localhost\nport=8080\n")
    return cfg

@pytest.mark.parametrize("port,valid", [(8080, True), (0, False), (99999, False)])
def test_app_config_port_validation(port: int, valid: bool) -> None:
    if valid:
        AppConfig(host="localhost", port=port)
    else:
        with pytest.raises(ValueError):
            AppConfig(host="localhost", port=port)

mypy 厳密設定(pyproject.toml)

[tool.mypy]
python_version = "3.11"
strict = true
warn_return_any = true
warn_unused_configs = true
disallow_untyped_defs = true

クリーンな mypy --strict 出力は以下のようになります:

Success: no issues found in 12 source files

報告されたエラー(例:error: Function is missing a return type annotation)は、実装が完了したと見なされる前に解決する必要があります。

出力テンプレート

Python 機能を実装する場合、以下を提供します:

  1. 完全な型ヒント付きモジュールファイル
  2. pytest フィクスチャ付きテストファイル
  3. 型チェック確認(mypy --strict が成功)
  4. 使用された Pythonic パターンの簡潔な説明

知識リファレンス

Python 3.11+、typing モジュール、mypy、pytest、black、ruff、dataclasses、async/await、asyncio、pathlib、functools、itertools、Poetry、Pydantic、contextlib、collections.abc、Protocol

ライセンス: MIT(寛容ライセンスのため全文を引用しています) · 原本リポジトリ

詳細情報

作者
cedriclefoudelatech
リポジトリ
cedriclefoudelatech/TIMLEMEILLEURIDF
ライセンス
MIT
最終更新
2026/5/10

Source: https://github.com/cedriclefoudelatech/TIMLEMEILLEURIDF / ライセンス: MIT

関連スキル

汎用ソフトウェア開発⭐ リポ 39,967

doubt-driven-development

重要な判断はすべて、本番環境への展開前に新しい視点から対抗的レビューを実施します。速度より正確性が重要な場合、不慣れなコードを扱う場合、本番環境・セキュリティに関わるロジック・取り消し不可の操作など影響度が高い場合、または後でバグを修正するよりも今検証する方が効率的な場合に活用してください。

by addyosmani
汎用ソフトウェア開発⭐ リポ 1,175

apprun-skills

TypeScriptを使用したAppRunアプリケーションのMVU設計に関する総合的なガイダンスが得られます。コンポーネントパターン、イベントハンドリング、状態管理(非同期ジェネレータを含む)、パラメータと保護機能を備えたルーティング・ナビゲーション、vistestを使用したテストに対応しています。AppRunコンポーネントの設計・レビュー、ルートの配線、状態フローの管理、AppRunテストの作成時に活用してください。

by yysun
OpenAIソフトウェア開発⭐ リポ 797

desloppify

コードベースのヘルスチェックと技術負債の追跡ツールです。コード品質、技術負債、デッドコード、大規模ファイル、ゴッドクラス、重複関数、コードスメル、命名規則の問題、インポートサイクル、結合度の問題についてユーザーが質問した場合に使用してください。また、ヘルススコアの確認、次の改善項目の提案、クリーンアップ計画の作成をリクエストされた際にも対応します。29言語に対応しています。

by Git-on-my-level
汎用ソフトウェア開発⭐ リポ 39,967

debugging-and-error-recovery

テストが失敗したり、ビルドが壊れたり、動作が期待と異なったり、予期しないエラーが発生したりした場合に、体系的な根本原因デバッグをガイドします。推測ではなく、根本原因を見つけて修正するための体系的なアプローチが必要な場合に使用してください。

by addyosmani
汎用ソフトウェア開発⭐ リポ 39,967

test-driven-development

テスト駆動開発により実装を進めます。ロジックの実装、バグの修正、動作の変更など、あらゆる場面で活用できます。コードが正常に動作することを証明する必要がある場合、バグ報告を受けた場合、既存機能を修正する予定がある場合に使用してください。

by addyosmani
汎用ソフトウェア開発⭐ リポ 39,967

incremental-implementation

変更を段階的に実施します。複数のファイルに影響する機能や変更を実装する場合に使用してください。大量のコードを一度に書こうとしている場合や、タスクが一度では完結できないほど大きい場合に活用します。

by addyosmani
本サイトは GitHub 上で公開されているオープンソースの SKILL.md ファイルをクロール・インデックス化したものです。 各スキルの著作権は原作者に帰属します。掲載に問題がある場合は info@alsel.co.jp または /takedown フォームよりご連絡ください。
原作者: cedriclefoudelatech · cedriclefoudelatech/TIMLEMEILLEURIDF · ライセンス: MIT