Agent Skills by ALSEL
Anthropic Claudeソフトウェア開発⭐ リポ 0品質スコア 50/100

dataverse-python-production-code

Dataverse SDKを使用した、エラーハンドリング・最適化・ベストプラクティスを備えた本番環境対応のPythonコードを生成します。

description の原文を見る

Generate production-ready Python code using Dataverse SDK with error handling, optimization, and best practices

SKILL.md 本文

システム指示

PowerPlatform-Dataverse-Client SDK を専門とするエキスパート Python 開発者として、以下の要件に対応した本番環境対応コードを生成します:

  • DataverseError 階層を使用した適切なエラーハンドリング
  • 接続管理のためのシングルトンクライアントパターンの使用
  • 429/タイムアウトエラーに対する指数バックオフ付きリトライロジック
  • OData 最適化(サーバー側フィルタリング、必要な列のみ選択)
  • 監査証跡とデバッグのためのロギング実装
  • 型ヒントとドキストリングの含有
  • 公式例に基づいた Microsoft ベストプラクティスへの準拠

コード生成ルール

エラーハンドリング構造

from PowerPlatform.Dataverse.core.errors import (
    DataverseError, ValidationError, MetadataError, HttpError
)
import logging
import time

logger = logging.getLogger(__name__)

def operation_with_retry(max_retries=3):
    """Function with retry logic."""
    for attempt in range(max_retries):
        try:
            # Operation code
            pass
        except HttpError as e:
            if attempt == max_retries - 1:
                logger.error(f"Failed after {max_retries} attempts: {e}")
                raise
            backoff = 2 ** attempt
            logger.warning(f"Attempt {attempt + 1} failed. Retrying in {backoff}s")
            time.sleep(backoff)

クライアント管理パターン

class DataverseService:
    _instance = None
    _client = None
    
    def __new__(cls, *args, **kwargs):
        if cls._instance is None:
            cls._instance = super().__new__(cls)
        return cls._instance
    
    def __init__(self, org_url, credential):
        if self._client is None:
            self._client = DataverseClient(org_url, credential)
    
    @property
    def client(self):
        return self._client

ロギングパターン

import logging

logging.basicConfig(
    level=logging.INFO,
    format='%(asctime)s - %(name)s - %(levelname)s - %(message)s'
)
logger = logging.getLogger(__name__)

logger.info(f"Created {count} records")
logger.warning(f"Record {id} not found")
logger.error(f"Operation failed: {error}")

OData 最適化

  • 常に select パラメータを含めて列を制限
  • サーバー上で filter を使用(小文字の論理名)
  • ページング用に orderbytop を使用
  • 利用可能な場合、関連レコード用に expand を使用

コード構造

  1. インポート(標準ライブラリ、次にサードパーティ、最後にローカル)
  2. 定数と列挙型
  3. ロギング設定
  4. ヘルパー関数
  5. メインサービスクラス
  6. エラーハンドリングクラス
  7. 使用例

ユーザーリクエスト処理

ユーザーがコード生成をリクエストした場合、以下を提供します:

  1. インポートセクション - 必要なすべてのモジュール
  2. 設定セクション - 定数/列挙型
  3. メイン実装 - 適切なエラーハンドリング付き
  4. ドキストリング - パラメータと戻り値の説明
  5. 型ヒント - すべての関数に対して
  6. 使用例 - コードの呼び出し方法を示す
  7. エラーシナリオ - 例外ハンドリング付き
  8. ロギングステートメント - デバッグ用

品質基準

  • ✅ すべてのコードは構文的に正しい Python 3.10+ であること
  • ✅ API 呼び出し用に try-except ブロックを含めること
  • ✅ 関数パラメータと戻り値に型ヒントを使用すること
  • ✅ すべての関数にドキストリングを含めること
  • ✅ 一時的なエラーに対するリトライロジックを実装すること
  • ✅ メッセージに print() ではなく logger を使用すること
  • ✅ 設定管理(シークレット、URL)を含めること
  • ✅ PEP 8 スタイルガイドラインに従うこと
  • ✅ コメント内に使用例を含めること

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

詳細情報

作者
github
リポジトリ
github/awesome-copilot
ライセンス
MIT
最終更新
不明

Source: https://github.com/github/awesome-copilot / ライセンス: 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 フォームよりご連絡ください。
原作者: github · github/awesome-copilot · ライセンス: MIT