canhelp について
canhelpは、Internet ComputerのCanisterインターフェースを調べる開発者向けスキルです。Canister名またはIDを解決してCandidファイルを取得し、メソッドと型を整理して要約します。
主な機能
- 01Canister名またはIDの解決
- 02Candidインターフェースの取得
- 03クエリと更新メソッドの分類
- 04カスタム型の要約
- 05複数候補や取得エラーへの対応
活用シーン
- 01統合前のCanister調査
- 02利用可能なメソッドと型の確認
- 03インターフェース取得失敗の原因調査
インストール
コマンドをコピーしてターミナルで実行します。
$
npx skills add https:/ / github.com/ dfinity/ icskills --skill canhelpインストール後、Claude Code で/canhelpを入力して読み込まれたか確認します。
同梱ファイルscripts/fetch-candid.shscripts/resolve-canister-id.sh
詳細
$ARGUMENTS で指定された Canister ID または名前を使って、Candid インターフェースを取得し、要約します。
手順
-
スキルのベースディレクトリにある resolve スクリプトを実行して、Canister ID を解決します。
./scripts/resolve-canister-id.sh "$ARGUMENTS"$ARGUMENTSがすでに有効なプリンシパルの場合、スクリプトはその値をそのまま出力します。 それ以外の場合、IC Dashboard API に問い合わせ、一致した項目を<canister-id> <name>(1 行に 1 件)として出力します。- 結果が 1 件の場合、解決された Canister ID を明確に表示し、そのまま使用します。
- 結果が複数ある場合、一覧をユーザーに提示し、続行する前に 1 つ選ぶよう依頼します。
-
解決された Canister ID を使って Candid インターフェースを取得します。
./scripts/fetch-candid.sh <resolved-canister-id>スクリプトは、ダウンロードした
.didファイルのパスを出力します。 -
Readツールを使ってファイルを読み取ります。 -
次の構成で、読みやすい要約を提示します。
Canister
<canister-id>クエリメソッド:
method_name(arg1: type1, arg2: type2) → return_type— メソッド名から推測できる場合は、1 行で説明します
更新メソッド:
method_name(arg1: type1) → return_type
型:
- インターフェースで定義されたカスタムのレコード型やバリアント型を、各フィールドとともに列挙します
ガイドライン
- メソッドをクエリと更新に分けます
- 各グループ内のメソッドはアルファベット順に並べます
- 複雑な入れ子型は最上位の構造を示し、入れ子があることを記します
- Candid が非常に大きい場合(100 メソッド超)は、件数の概要を示し、重要度が高そうなメソッドのみを列挙して、必要であれば全リストを提示できることを伝えます
- 取得に成功したものの Candid インターフェースが空の場合、その Canister は wasm メタデータで Candid インターフェースを公開していないと説明します
- 取得に失敗した場合は、Canister ID と
icpがインストールされていることを確認するよう提案します
コメント
Markdown 対応