coding について
OpenClaw向けのコーディングスキルで、コードの作成、リファクタリング、レビューを支援します。言語やパラダイムの指針を示し、SOLIDやDRYなどを確認し、コード片やGitの差分も分析できます。
主な機能
- 01プロジェクト要件に応じた言語の提案
- 02オブジェクト指向・関数型設計の案内
- 03SOLID、DRY、YAGNIのチェック
- 04コミットとプルリクエストの基準確認
- 05コード片とGit差分の分析
活用シーン
- 01プロジェクト作業に使う言語の選定
- 02コード品質の問題のレビュー
- 03プルリクエスト前の変更確認
インストール
コマンドをコピーしてターミナルで実行します。
npx skills add https:/ / github.com/ alphaonedev/ openclaw-graph --skill codingインストール後、Claude Code で/codingを入力して読み込まれたか確認します。
詳細
コーディング
目的
このスキルを使うと、OpenClaw はプログラミング言語の選択、パラダイム(オブジェクト指向など)の指針、SOLID、DRY、YAGNI などのコード品質原則の適用、意味のあるコミットやコードレビューといった PR の基準の遵守など、コーディングタスクを支援できます。
使用するタイミング
新しいコードの作成、既存コードのリファクタリング、プルリクエストのレビューを行うときに、このスキルを使用してください。複数の言語を使うプロジェクトでの言語選択、複雑なシステムでのパラダイムの決定、アンチパターンを避けるための品質チェックに適用します。コード構成や標準への準拠について判断に迷う開発者に最適です。
主な機能
- 言語の選択:プロジェクトのニーズに基づいて言語を自動的に提案します。たとえば、スクリプト作成には Python、エンタープライズアプリには Java を推奨します。
- パラダイムの指針:オブジェクト指向(カプセル化のためにクラスを使用するなど)や関数型プログラミング(不変性を優先するなど)のパラダイムについて、アドバイスを提供します。
- コード品質の適用:SOLID 原則(単一責任の原則:クラスを変更する理由が 1 つだけになるようにするなど)や DRY/YAGNI をチェックします(重複したコードブロックを検出するなど)。
- PR の基準:アトミックな変更や説明的なメッセージなどのルールに照らして、コミットを検証します。
- ツールとの統合:PR レビュー用に Git の差分を解析したり、コードスニペットの品質指標を分析したりします。
使用パターン
このスキルを使用するには、コードスニペットやプロジェクトのコンテキストなどの入力を指定して、CLI または API 経由で OpenClaw を呼び出します。言語を選択する場合はプロジェクトの要件を、パラダイムの指針を得る場合はコードサンプルを含めてください。コマンドを実行する前に、たとえば環境変数として $OPENCLAW_API_KEY を設定し、必ず API キーを渡してください。「language」、「code」、「paradigm」などのフィールドを含む JSON ペイロードでリクエストを構成します。応答は JSON を解析し、提案や修正を取得してください。使用例:CI/CD パイプラインでコードを OpenClaw に渡し、リアルタイムのフィードバックを得ます。
一般的なコマンド/API
簡単なタスクには OpenClaw CLI を、プログラムからアクセスする場合は REST API を使用します。CLI コマンドを実行するには、$OPENCLAW_API_KEY が設定されている必要があります。API エンドポイントには、JSON ボディを含む POST リクエストを送信します。
-
CLI コマンド:
openclaw code --language python --paradigm oop --check solid < input.txt- フラグ:
--languageは言語(例:「python」、「java」)を指定します。--paradigmは指針の種類(例:「oop」)を設定します。--checkは品質チェック(例:「solid」、「dry」)を有効にします。 - 出力:提案を含む JSON(例:{"suggestion": "Use a class for this function."})
- フラグ:
-
API エンドポイント:
/api/coding/assistに POST リクエストを送信します- ボディ:{"code": "def add(a, b): return a + b", "language": "python", "checks": ["dry", "yagni"]} のような JSON
- ヘッダー:
Authorization: Bearer $OPENCLAW_API_KEYを含めます - 応答:{"quality_score": 8, "issues": ["Function violates DRY principle"]} のような JSON オブジェクト
-
API 呼び出しのコードスニペット(Python):
import requests api_key = os.environ.get('OPENCLAW_API_KEY') response = requests.post('https://api.openclaw.ai/api/coding/assist', headers={'Authorization': f'Bearer {api_key}'}, json={'code': 'some code', 'language': 'js'}) print(response.json()['suggestion']) -
設定形式:たとえば次のように、設定には JSON を使用します。
{ "default_language": "python", "checks": ["solid", "dry"], "paradigm": "functional" }CLI の設定を上書きするには、プロジェクトのルートに
.openclaw-config.jsonとして保存します。
統合に関する注意
API を呼び出す拡張機能やスクリプトを使って、このスキルを VS Code などの IDE に統合します。CI/CD では、次のステップを追加して GitHub Actions で使用します:run: openclaw code --check solid --input path/to/code.py。$OPENCLAW_API_KEY は、たとえば GitHub Secrets に OPENCLAW_API_KEY として保存し、安全に管理してください。ウェブアプリでは、レート制限(例:100 リクエスト/分)に対応しながら、バックエンドサービスに API 呼び出しを組み込みます。開発中に実際の API を呼び出さないよう、モック応答を使って統合をテストしてください。
エラー処理
エラーが発生した場合は、API 応答の HTTP ステータスコード(例:認証されていないことを示す 401。$OPENCLAW_API_KEY が未設定の場合があります)を確認してください。CLI の場合は、「Error: Invalid language specified」のようなエラーメッセージを解析し、修正して再試行します。指数バックオフを使って、一時的なエラー(例:5xx ステータスコード)に対する再試行ロジックを実装してください。コードでは、API 呼び出しを try-except ブロックで囲みます:
try:
response = requests.post(url, headers=headers, json=data)
response.raise_for_status()
except requests.exceptions.HTTPError as e:
print(f"Error: {e.response.status_code} - {e.response.text}")
デバッグしやすいように、入力コードなどのコンテキストを含めてエラーを記録してください。
具体的な使用例
-
例1:言語を選択してコードを生成する
- タスク:OOP パラダイムを使用して、Python でシンプルな関数を記述します。
- コマンド:
openclaw code --language python --paradigm oop --prompt "Implement a counter class" - 期待される結果:{"code": "class Counter: def init(self): self.count = 0"}のようなコードを含む JSON が出力されます。
- 方法:
$OPENCLAW_API_KEYを設定してコマンドを実行し、レスポンスをプロジェクトに組み込みます。
-
例2:PR のコード品質レビュー
- タスク:JavaScript のスニペットに DRY と SOLID の違反がないか確認します。
- API 呼び出し:
/api/coding/assistに、{"code": "function add(a) { return a + 1; } function addTwo(b) { return b + 2; }", "language": "js", "checks": ["dry"]}のボディを指定して POST します。 - 期待される結果:{"issues": ["Functions are similar; consider a generic add function to follow DRY"]}のようなレスポンスが返されます。
- 方法:レスポンスを参考に、コミット前にコードをリファクタリングします。たとえば、エディターで関数を統合します。
グラフの関係
- 関連項目:デバッグ(コード分析機能を共有)、テスト(テスト容易性の品質を確保)、デプロイ(本番環境に対応したコードを作成するためのガイダンスを提供)。
- クラスター:コーディング(主要)、ソフトウェア(より幅広い開発タスク向けの副次的なクラスター)。