cs について
OpenClaw向けのコンピューターサイエンス理論スキルで、アルゴリズムの計算量分析や基礎理論の説明に対応します。アルゴリズム設計、コードレビュー、性能調査での問題分類や漸近解析に役立ちます。
主な機能
- 01Big Oによる時間・空間計算量分析
- 02計算複雑性に基づく問題分類
- 03計算機科学の基礎概念の説明
- 04アルゴリズムの増加率の比較
- 05帰着証明における境界事例への対応
活用シーン
- 01コードレビューでの計算量評価
- 02問題の決定可能性の分類
- 03設計時のアルゴリズム比較
- 04漸近解析による性能調査
インストール
コマンドをコピーしてターミナルで実行します。
npx skills add https:/ / github.com/ alphaonedev/ openclaw-graph --skill csインストール後、Claude Code で/csを入力して読み込まれたか確認します。
詳細
目的
このスキルを使うと、OpenClaw がコンピューターサイエンスの中核理論を扱えるようになります。チューリングマシンやオートマトンなどの理論的基礎、P 対 NP などの問題分類、ビッグ O 記法による解析などの計算量理論に重点を置いています。アルゴリズムや計算限界について推論するための、正確なツールを提供します。
使用するタイミング
アルゴリズムの効率性の検証、問題の分類(判定可能か判定不能かなど)、計算量の指標に基づくコードの最適化など、理論計算機科学の問題に取り組むときにこのスキルを使用してください。アルゴリズムの設計、コードレビュー、理論的な観点からパフォーマンスの問題をデバッグするときに活用してください。
主な機能
- ビッグ O 記法を使って、コードスニペットの時間計算量と空間計算量を分析します。
- 入力の説明に基づいて、問題を P、NP、NP 完全、または判定不能に分類します。
- 有限状態機械や停止問題など、コンピューターサイエンスの基礎について説明を生成します。
- 漸近解析などを用いて、アルゴリズムの計算量を比較します。
- 問題の分類における還元証明など、理論上のエッジケースに対応します。
使用パターン
このスキルを使用するには、OpenClaw の CLI または API から呼び出します。コードスニペットや問題の説明など、必ず入力を指定してください。CLI では、コマンドの先頭に openclaw cs を付けます。API では、/api/cs/analyze などのエンドポイントに HTTP リクエストを送信します。操作を実行する前に、認証用の環境変数 $OPENCLAW_API_KEY を設定してください。使用例:スクリプトにスキルを読み込んでから、必要なパラメーターを指定して関数を呼び出し、レスポンスを同期的に処理します。
計算量を分析するには:
- コードスニペットを文字列として用意します。
- 出力形式(JSON など)を指定するフラグを付けて関数を呼び出します。
- レスポンスを解析して、ビッグ O の結果を取得します。
問題を分類するには:
- 問題を JSON オブジェクトで記述します。
- 関連するフラグを指定して、分類コマンドを使用します。
- 出力が想定される分類に合致していることを確認します。
一般的なコマンド/API
- CLI コマンド:
openclaw cs analyze-complexity --code "def func(arr): for i in arr: print(i)" --output json- フラグ:入力コードを指定する
--code(必須)、出力形式を指定する--output(例:json、text)。 - 出力:
{"big_o": "O(n)", "description": "Linear time complexity"}のような JSON。
- フラグ:入力コードを指定する
- CLI コマンド:
openclaw cs classify-problem --description "Determine if a graph has a Hamiltonian path" --detail full- フラグ:問題の説明を指定する
--description、出力の詳細度を指定する--detail(証明を含める場合は full など)。 - 出力:「NP-complete, reducible from TSP」のような文字列。
- フラグ:問題の説明を指定する
- API エンドポイント:
{"code": "def func(...)", "type": "complexity"}を本文に指定して/api/cs/analyzeに POST します。- ヘッダー:
Authorization: Bearer $OPENCLAW_API_KEYを含めます。 - レスポンス:
{"status": "success", "big_o": "O(n^2)"}などの JSON オブジェクト。
- ヘッダー:
- API エンドポイント:
/api/cs/classify?query=traveling+salesmanに GET します。- クエリパラメーター:問題の説明を指定する
query。 - 設定形式:リクエスト本文では JSON を使用します。例:
{"query": "string", "options": {"depth": 1}}。
- クエリパラメーター:問題の説明を指定する
コードスニペットの例 1(Python):
import openclaw
openclaw.set_api_key(os.environ['OPENCLAW_API_KEY'])
result = openclaw.cs.analyze_complexity(code="def sum_list(lst): return sum(lst)")
print(result['big_o']) # Outputs: O(n)
コードスニペットの例 2(Python):
import openclaw
response = openclaw.cs.classify_problem(description="Shortest path in weighted graph")
print(response['classification']) # Outputs: e.g., "P, solvable via Dijkstra"
統合に関する注意
コードに OpenClaw ライブラリをインポートし、CS 専用モジュールを呼び出して、このスキルを統合します。複数のスキルを組み合わせるワークフローでは、出力を連鎖させます(例:分類結果をアルゴリズムスキルで使用します)。設定:{"cs": {"default_output": "json", "api_endpoint": "/api/cs"}} のような形式で、設定を .openclawrc ファイルに保存します。環境変数 $OPENCLAW_API_KEY が設定されていることを確認してください。非同期で使用する場合は、API 呼び出しを try-except ブロックで囲み、レート制限に対する再試行を処理してください。
エラー処理
レスポンスコードを解析して、不正な入力(例:形式が不正なコード)などのエラーを確認します。不正なリクエストは HTTP 400、認証失敗は 401 です。OpenClaw のエラーオブジェクトを使用します。たとえば Python では、次のようにします。try: result = openclaw.cs.analyze_complexity(...) except openclaw.errors.InvalidInputError as e: print(e.message) # e.g., "Code snippet must be a string"。CLI では、エラーはコードとともに標準エラー出力に返されます(例:失敗時の終了コードは 1)。呼び出し前に必ず入力を検証し、ネットワークの問題などの一時的なエラーが発生した場合は、指数バックオフで再試行します。
グラフの関連性
- 関連項目:アルゴリズム(実用的な実装)、データ構造(複雑性との相互作用)。
- クラスター:computer-science(ルートノード)、theory(共通の基礎)。
- 依存関係:コア OpenClaw ランタイムが必要です。理論を拡張する machine-learning などの高度なトピックに関連します。