mcpField
A
arch-patterns

arch-patterns

github.com/alphaonedev開発43 回インストール
リポジトリ

arch-patterns について

arch-patterns は、ソフトウェア設計パターンと原則の適用を支援する OpenClaw スキルです。コード構成や設計の検討、リファクタリング案の作成に使え、例示やアンチパターンの確認にも対応します。

主な機能

  1. 01GoF パターンの提案
  2. 02SOLID 原則のガイダンス
  3. 03DRY、YAGNI、KISS の実践
  4. 04コンポジションと関数型の比較
  5. 05コードのアンチパターン確認

活用シーン

  1. 01新しいコードベースの設計
  2. 02レガシーコードのリファクタリング
  3. 03コードのアンチパターン確認

インストール

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

$npx skills add https://github.com/alphaonedev/openclaw-graph --skill arch-patterns

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

詳細

arch-patterns

目的

このスキルは、GoF の 23 パターン(Factory、Singleton、Observer など)、SOLID 原則(単一責任、オープン・クローズドなど)、および DRY(Don't Repeat Yourself)、YAGNI(You Aren't Gonna Need It)、KISS(Keep It Simple, Stupid)、継承よりコンポジションを優先する考え方、関数型プログラミングの概念などのガイドラインを適用する際に、OpenClaw が支援できるようにします。コードスニペットの生成、リファクタリングの提案、設計の検証に使用します。

使用する場面

新しいコードベースの構成、レガシーシステムのリファクタリング、設計上の問題の解決に、このスキルを適用します。たとえば、Java や Go などの言語でオブジェクト指向設計を行う場合や、Python で関数型スタイルを採用する場合に使用します。単純なスクリプトには使用せず、1,000 行を超えるプロジェクトや 5 人を超えるチーム向けに活用してください。

主な機能

  • GoF パターン:Factory Method(クラスを指定せずにオブジェクトを生成する)や Observer(依存先に状態の変化を通知する)などの実装を提案します。
  • SOLID 原則:単一責任(1 つのクラスが 1 つのことを行う)や依存性逆転(抽象に依存する)を徹底します。
  • ベストプラクティス:重複コードを関数に抽出して DRY を推奨し、時期尚早な機能を避けて YAGNI を実践し、複雑なロジックを簡素化して KISS を実践します。また、継承よりコンポジション(インターフェースの使用など)を優先します。
  • 比較:コンポジションと継承、または関数型と命令型のアプローチを比較するコード例を提示します。
  • 検証:ユーザーのコードを分析してアンチパターンを特定し、修正を提案します。たとえば、God Object の検出などです。

使用パターン

このスキルを使用するには、特定のパターンに関する問い合わせを指定して、CLI または API から OpenClaw を呼び出します。まず、言語や問題などのコンテキストを提示します。CLI ではコードスニペットをパイプで渡し、API では JSON ペイロードを送信します。リクエストには必ずスキル ID「arch-patterns」を含めてください。たとえば、パターンを問い合わせてコードスニペットを取得し、その後のやり取りで改良します。精度を高めるため、1 回の呼び出しにつき 1 つのパターンに関する問い合わせに制限してください。

一般的なコマンド/API

$OPENCLAW_API_KEY 環境変数で認証し、OpenClaw CLI を使用します。コマンドにはスキル ID が必要です。

  • CLI コマンド:openclaw run arch-patterns --pattern factory --lang go --input "Create a car factory"
    Factory パターンを使った Go の構造体が生成されます。
  • API エンドポイント:JSON 本文を指定して POST /api/v1/skills/arch-patterns を呼び出します:
    { "pattern": "singleton", "language": "java", "context": "Thread-safe logger" }
    
    レスポンスには、Java のシングルトンクラスなど、2~4 行のコードスニペットが含まれます。
  • 設定形式:高度な設定には YAML を使用します。例:
    skill: arch-patterns
    options:
      pattern: strategy
      validate: true
    
    CLI で --config path/to/config.yaml を指定して渡します。
  • フラグ:既存コードを確認するには --validate を、変更を提案するには --refactor を追加します。

統合に関する注意

このスキルをスクリプトや IDE プラグインでラップして、ワークフローに統合します。たとえば、CI/CD パイプラインでコードのコミット後に API を呼び出し、SOLID 原則を徹底できます。認証用に $OPENCLAW_API_KEY を設定してください。ほかのスキル(例:code-generation)と組み合わせる場合は、リクエストを連鎖させます。まず arch-patterns に設計を問い合わせ、その出力をコンパイル用スキルに渡します。入力は 500 文字未満にし、それを超えるコードベースは分割してください。関数型プログラミングでは、回答の傾向を調整するため、問い合わせに「fp」などのパラダイムを指定します。

エラー処理

レスポンスコードを確認してエラーに対処します。無効なパターン(例:「singlton」のようなスペルミス)では HTTP 400、$OPENCLAW_API_KEY がない場合は 401、レート制限の場合は 429 が返されます。CLI では、エラーは「error」:「Pattern not found」を含む JSON として返されます。一時的なエラーは指数バックオフで再試行してください。送信前に入力を検証します。たとえば、問い合わせに --lang がない場合、OpenClaw は英語をデフォルトにしますが、コード生成でエラーになります。デバッグ用に、タイムスタンプと完全なリクエストペイロードを含めてエラーをログに記録してください。

具体的な使用例

  1. 例 1:Go でのファクトリーパターンの実装
    コマンド:openclaw run arch-patterns --pattern factory --lang go --input "Vehicle creator"
    出力:次のようなスニペット:

    type Factory interface { Create() Vehicle }
    func NewCarFactory() Factory { return &CarFactory{} }
    

    これにより、オブジェクト生成を一元化して DRY を実現する、車両用のファクトリーを作成します。

  2. 例 2:Java での SOLID に向けたリファクタリング
    API 呼び出し:POST /api/v1/skills/arch-patterns、本文:

    { "pattern": "solid", "principle": "single-responsibility", "code": "public class UserService { /* handles users and logging */ }" }
    

    応答:次のように分割することを提案します:

    public class UserService { /* only user logic */ }
    public class Logger { /* logging logic */ }
    

    これにより単一責任の原則を適用し、保守性を向上させます。

グラフの関係

  • 関連項目:se-architecture(親クラスター)、patterns(タグの重複)、solid(埋め込みのヒント)、factory(特定のパターン)、singleton(パターン)、observer(パターン)、strategy(パターン)。
  • 接続:実装用の code-generation、アンチパターン検出用の debugging、KISS/YAGNI に基づくパフォーマンス調整用の optimization にリンクしています。

コメント