arch-patterns について
arch-patterns は、ソフトウェア設計パターンと原則の適用を支援する OpenClaw スキルです。コード構成や設計の検討、リファクタリング案の作成に使え、例示やアンチパターンの確認にも対応します。
主な機能
- 01GoF パターンの提案
- 02SOLID 原則のガイダンス
- 03DRY、YAGNI、KISS の実践
- 04コンポジションと関数型の比較
- 05コードのアンチパターン確認
活用シーン
- 01新しいコードベースの設計
- 02レガシーコードのリファクタリング
- 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 を呼び出します:
レスポンスには、Java のシングルトンクラスなど、2~4 行のコードスニペットが含まれます。{ "pattern": "singleton", "language": "java", "context": "Thread-safe logger" } - 設定形式:高度な設定には YAML を使用します。例:
CLI でskill: arch-patterns options: pattern: strategy validate: true--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:Go でのファクトリーパターンの実装
コマンド:openclaw run arch-patterns --pattern factory --lang go --input "Vehicle creator"
出力:次のようなスニペット:type Factory interface { Create() Vehicle } func NewCarFactory() Factory { return &CarFactory{} }これにより、オブジェクト生成を一元化して DRY を実現する、車両用のファクトリーを作成します。
-
例 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 にリンクしています。