SKILL.md
Given a canister ID or name in $ARGUMENTS, fetch and summarize its Candid interface.
Steps
- Resolve the canister ID by running the resolve script from the skill's base directory:
``bash ./scripts/resolve-canister-id.sh "$ARGUMENTS" ` If $ARGUMENTS is already a valid principal, the script echoes it back. Otherwise, it queries the IC Dashboard API and outputs matches as <canister-id> <name>` (one per line). - If there is a single result, clearly display the resolved canister ID and use it directly. - If there are multiple results, present the list to the user and ask them to pick one before continuing.
- Fetch the Candid interface using the resolved canister ID:
``bash ./scripts/fetch-candid.sh <resolved-canister-id> ` The script outputs the path to the downloaded .did` file.
- Read the file using the
Readtool.
- Present the output as a readable summary with the following structure:
Canister <canister-id>
Query methods: - methodname(arg1: type1, arg2: type2) → returntype — one-line description if inferable from the name
Update methods: - methodname(arg1: type1) → returntype
Types: - List any custom record/variant types defined in the interface, with their fields
Guidelines
- Group methods by query vs update
- Sort methods alphabetically within each group
- For complex nested types, show the top-level structure and note nesting
- If the candid is very large (>100 methods), show a summary count and list only the most important-looking methods, offering to show the full list on request
- If the fetch succeeds, but the Candid interface is empty,explain that the canister is not exposing its Candid interface in the wasm metadata
- If the fetch fails, suggest the user verify the canister ID and that
icpis installed