arch について
arch は、設計や技術選定に取り組むエンジニア向けの OpenClaw システムアーキテクチャスキルです。ADR の作成、選択肢の比較、技術スタックの提案、図や構造化レポートの出力に対応します。
主な機能
- 01Markdown ADR の作成
- 02トレードオフモデルによる比較
- 03技術スタックの提案
- 04システム設計図の作成
- 05設計の反復的な改善
活用シーン
- 01プロジェクト開始時の決定事項の記録
- 02データベースや構成案の比較
- 03システムのリファクタリングや拡張の計画
インストール
コマンドをコピーしてターミナルで実行します。
npx skills add https:/ / github.com/ alphaonedev/ openclaw-graph --skill archインストール後、Claude Code で/archを入力して読み込まれたか確認します。
詳細
arch
目的
このスキルは、システム設計、Architecture Decision Record(ADR)の作成、トレードオフ分析の実施、技術スタックの選定など、ルート SE のアーキテクチャタスクを扱います。OpenClaw のコアエンジンと連携し、図、ドキュメント、JSON レポートなどの構造化された成果物を出力します。
使用するタイミング
新しいシステム設計を始めるとき、アーキテクチャ上の決定を評価するとき、または技術選定のトレードオフを解決するときに、このスキルを使用します。プロジェクトのキックオフ、リファクタリング、システムのスケーリング時に適用してください。特に、マイクロサービス、クラウドインフラストラクチャ、分散システムを含む複雑なアプリケーションに適しています。
主な機能
- コンテキスト、決定、結果のセクションを含む ADR を Markdown 形式で生成します。
- 定義済みのモデル(分散システム向けの CAP 定理など)を使用してトレードオフを分析します。
- 要件、制約、パフォーマンス指標などの入力に基づいて技術スタックを推奨します。
- PlantUML などのツールとの連携により、システム設計図を作成します。
- フィードバックループを通じて、設計を反復的に改善できます。
使用パターン
対話型またはスクリプト化されたワークフローで、OpenClaw CLI または API からスキルを呼び出します。設計セッションを初期化するコマンドを実行してから、分析用のサブコマンドを連結します。たとえば、出力を他のツールに渡して可視化できます。一貫性を保つため、入力には常に JSON ファイルを使用してください。リクエストを安全に保護するには、$OPENCLAW_API_KEY などの環境変数を使用して認証します。
主なコマンド/API
OpenClaw CLI で arch サブコマンドを使用します。すべてのコマンドの先頭に openclaw arch を付けてください。
-
システムを設計する:
openclaw arch design --input design.json --output system.md
システム設計ドキュメントを生成します。--inputフラグには、{"requirements": ["scalable"], "components": ["database", "API"]} のようなフィールドを含む JSON ファイルが必要です。 -
ADR を作成する:
openclaw arch adr --title "Use Microservices" --context "Monolith limitations" --decision "Adopt microservices"
コードスニペットの例:openclaw arch adr --title "Microservices ADR" > adr.md cat adr.md # Outputs: # Architecture Decision Record\n## Title: Microservices ADR\n## Context: ... -
トレードオフを分析する:
openclaw arch tradeoff --options "monolith,microservices" --criteria "scalability,cost"
API エンドポイント:POST /api/skills/arch/tradeoff with body: {"options": ["monolith"], "criteria": ["cost"]}
レスポンス:{"winner": "microservices", "reasons": ["better scalability"]} のような JSON。 -
技術スタックを選定する:
openclaw arch techstack --requirements "high-availability,nodejs" --constraints "budget:low"
設定形式:JSON 入力の例:{"requirements": ["REST API"], "constraints": {"budget": 1000}}
API:POST /api/skills/arch/techstack returns {"recommendations": ["Express.js", "MongoDB"]}。
API 呼び出しでは、常に $OPENCLAW_API_KEY を設定してください。たとえば、curl では次のようにします:curl -H "Authorization: Bearer $OPENCLAW_API_KEY" -X POST https://api.openclaw.ai/api/skills/arch/design。
連携に関する注意事項
CLI のパイプ処理または API の連結を通じて、ワークフローにこのスキルを含めることで OpenClaw と連携できます。依存関係:ローカル実行には Node.js ランタイムが必要です。認証では、コマンドを実行する前に $OPENCLAW_API_KEY を環境変数として設定してください。Git との連携例:pre-commit にフックして設計を検証します。例:openclaw arch validate --file architecture.md && git commit。スクリプトで解析できるように、入力と出力には JSON を使用してください。ファイルを直接変更せず、--output フラグを使用してください。CI/CD パイプラインで使用する場合は、次のようなスクリプトでコマンドをラップします:
export OPENCLAW_API_KEY=your_key
openclaw arch design --input ci-input.json > output.md
エラー処理
よくあるエラーには、無効な入力(JSON フィールドの不足など)や認証の失敗があります。$OPENCLAW_API_KEY が未設定または無効の場合、API 呼び出しで HTTP 401 が発生していないか確認してください。発生している場合は、変数をエクスポートして修正します。CLI では、「Invalid flag」などのエラーは終了コード 1 を返します。if [ $? -ne 0 ]; then echo "Fix input and retry"; fi を使って解析してください。トレードオフ分析エラー(サポート対象外の基準など)は、{"error": "Criterion not found"} のような JSON レスポンスを捕捉して処理し、入力を修正して再試行します。コマンドを実行する前に、jq などのツールを使って常に JSON スキーマを検証してください:
jq . design.json # Ensure it's valid JSON
openclaw arch design --input design.json
具体的な使用例
-
マイクロサービスへの移行に関する ADR を生成する:まず、JSON ファイルを用意します:{"title": "Microservices Migration", "context": "Current monolith is unscalable"}。次のコマンドを実行します:
openclaw arch adr --input adr-input.json --output migration-adr.md。これにより、バージョン管理用の Markdown ADR ファイルが生成されます。たとえば、意思決定を追跡するためにコミットします。 -
データベース選定のトレードオフを分析する:CLI から選択肢を入力します:
openclaw arch tradeoff --options "MongoDB,PostgreSQL" --criteria "flexibility,query-speed"。出力された JSON を確認して判断し、その後、設計に取り込みます:openclaw arch design --input previous-output.json。このワークフローは、分析結果に基づいて複雑なクエリに PostgreSQL を選定するのに役立ちます。
グラフの関係
- 関連:se-design(詳細な実装向け)、se-implementation(コードレベルの統合向け)
- 依存:core-engine(処理向け)、se-tools(可視化ユーティリティ向け)
- 競合:直接的な競合はありませんが、アクセス制御については se-security と重複しないようにしてください。