{"id":51794993,"url":"https://github.com/dfinity/icskills","last_synced_at":"2026-07-21T02:06:19.041Z","repository":{"id":340499884,"uuid":"1166297350","full_name":"dfinity/icskills","owner":"dfinity","description":"Agent-readable skill files for Internet Computer (ICP) development. Prevents AI hallucinations.","archived":false,"fork":false,"pushed_at":"2026-07-09T15:45:45.000Z","size":1282,"stargazers_count":27,"open_issues_count":27,"forks_count":11,"subscribers_count":0,"default_branch":"main","last_synced_at":"2026-07-09T17:23:28.507Z","etag":null,"topics":["ai-agent","blockchain","canister","ckbtc","developer-tools","dfinity","dfx","documentation","evm-rpc","https-outcalls","icp","icrc","internet-computer","internet-identity","llm","motoko","rust","sns","stable-memory","web3"],"latest_commit_sha":null,"homepage":"https://skills.internetcomputer.org","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/dfinity.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":".github/CODEOWNERS","security":"SECURITY.md","support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2026-02-25T04:31:18.000Z","updated_at":"2026-07-09T15:46:27.000Z","dependencies_parsed_at":null,"dependency_job_id":null,"html_url":"https://github.com/dfinity/icskills","commit_stats":null,"previous_names":["joshdfn/icskills","dfinity/icskills"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/dfinity/icskills","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dfinity%2Ficskills","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dfinity%2Ficskills/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dfinity%2Ficskills/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dfinity%2Ficskills/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/dfinity","download_url":"https://codeload.github.com/dfinity/icskills/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dfinity%2Ficskills/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":35705776,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-07-20T02:08:10.276Z","status":"online","status_checked_at":"2026-07-21T02:00:06.728Z","response_time":109,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["ai-agent","blockchain","canister","ckbtc","developer-tools","dfinity","dfx","documentation","evm-rpc","https-outcalls","icp","icrc","internet-computer","internet-identity","llm","motoko","rust","sns","stable-memory","web3"],"created_at":"2026-07-21T02:06:18.381Z","updated_at":"2026-07-21T02:06:19.027Z","avatar_url":"https://github.com/dfinity.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Internet Computer (ICP) Skills\n\n\u003e **Under active development** — Skill files are being reviewed and signed off by DFINITY engineers. Content may change. Feedback and PRs are welcome.\n\n**Agent-readable instructions for every IC need.**\n\nStructured, agent-readable skill files for every Internet Computer capability. Your AI reads the skill. It builds correctly. No hallucinations.\n\n---\n\n## The Problem\n\nAI agents building on the Internet Computer hallucinate canister IDs, use deprecated APIs, and miss critical pitfalls. Traditional documentation is written for humans to browse — not for agents to consume programmatically.\n\n## The Solution\n\nEach skill is a single markdown file containing everything an agent needs to build correctly:\n\n```\nskills/ckbtc/SKILL.md\nskills/internet-identity/SKILL.md\nskills/stable-memory/SKILL.md\n...\n```\n\nEvery skill typically includes:\n\n| Section | Purpose |\n|---------|---------|\n| **What This Is** | One paragraph. What the technology does. |\n| **Prerequisites** | Exact library versions. `ic-cdk \u003e= 0.19`, `@icp-sdk/auth \u003e= 4.0.1`. |\n| **Common Pitfalls** | Numbered pitfalls that prevent hallucinations. |\n| **Implementation** | Tested, copy-paste-correct code blocks. |\n| **Deploy \u0026 Test** | Step-by-step commands for local and mainnet. |\n| **Verify It Works** | Concrete commands to confirm it works. |\n\nSkills can include additional sections (Canister IDs, How It Works, etc.) and use whatever headings best fit their domain. The pitfalls section is the highest-value part — every pitfall documented is a hallucination prevented.\n\n## Skills\n\nAll skills live in [`skills/*/SKILL.md`](skills/). Each skill is a self-contained markdown file with YAML frontmatter.\n\n## Usage\n\n### Install via CLI\n\nWorks with any agent that supports skills (Claude Code, Cursor, Windsurf, Copilot, and more):\n\n```bash\nnpx skills add dfinity/icskills\n```\n\nBrowse available skills, pick your agent, and install. See [skills.sh](https://skills.sh) for details.\n\n### Manual\n\nFetch a single skill and place it wherever your agent reads instructions from:\n\n```bash\ncurl -sL https://skills.internetcomputer.org/.well-known/skills/ckbtc/SKILL.md\n```\n\nThe files are plain markdown — paste into any system prompt, rules file, or context window.\n\n## Programmatic Access\n\n| Resource | URL | Description |\n|----------|-----|-------------|\n| Skills discovery | [`.well-known/skills/index.json`](https://skills.internetcomputer.org/.well-known/skills/index.json) | Machine-readable skill index ([Agent Skills Discovery RFC](https://github.com/cloudflare/agent-skills-discovery-rfc)) |\n| Single skill | `/.well-known/skills/{name}/SKILL.md` | Raw markdown for one skill |\n| Reference files | `/.well-known/skills/{name}/references/{file}.md` | Additional files listed in the discovery index |\n| Download (zip) | `/.well-known/skills/{name}/SKILL.zip` | Zip bundle for multi-file skills (SKILL.md + references) |\n| Skill index | [`llms.txt`](https://skills.internetcomputer.org/llms.txt) | All skills with descriptions and discovery links |\n| Skill page | [`/skills/{name}/`](https://skills.internetcomputer.org/skills/ckbtc/) | Pre-rendered skill page for humans |\n\n### Change detection — the `hash` field\n\nEach skill entry in [`index.json`](https://skills.internetcomputer.org/.well-known/skills/index.json) carries a `hash`:\n\n```jsonc\n{\n  \"name\": \"asset-canister\",\n  \"url\": \"https://.../asset-canister/SKILL.md\",\n  \"files\": [\"SKILL.md\"],\n  \"hash\": \"sha256:f3ee5a3e…\"   // per-skill aggregate content hash\n}\n```\n\n**What it is.** A `sha256:\u003chex\u003e` digest over all of the skill's served files. It is\ncomputed from each file's path plus the sha256 of its bytes, sorted by path — so it\nchanges whenever any file in the skill changes (including `references/` and `scripts/`\nfiles), and is sensitive to renames. It is **not** tied to a git commit; it is a pure\ncontent hash of what the server actually serves.\n\n**What it's for.** Detecting *which* skills changed from a single fetch of `index.json`,\nwithout downloading and hashing every file yourself. Store the `{name: hash}` map, and on\nthe next fetch re-download only the skills whose `hash` differs (or are new), and prune\nthose no longer listed. This is the basis for the differential sync in the\n[`autosync-ic-skills`](skills/autosync-ic-skills/SKILL.md) skill.\n\n**What it's not for.** It is not a version number or changelog signal — it carries no\nordering or human meaning, only equality. Compare hashes for equality; do not parse them.\n\n## Evaluations\n\nEach skill can have an evaluation file at `evaluations/\u003cskill-name\u003e.json` that tests whether agents produce correct output with the skill loaded. Evals compare agent output with and without the skill, using an LLM judge to score expected behaviors.\n\n```bash\nnode scripts/evaluate-skills.js \u003cskill-name\u003e                    # All evals\nnode scripts/evaluate-skills.js \u003cskill-name\u003e --eval 2            # Single eval\nnode scripts/evaluate-skills.js \u003cskill-name\u003e --no-baseline       # Skip without-skill baseline\nnode scripts/evaluate-skills.js \u003cskill-name\u003e --triggers-only     # Trigger evals only\n```\n\nResults are saved to `evaluations/results/` (gitignored). See [CONTRIBUTING.md](CONTRIBUTING.md#4-add-evaluation-cases) for how to write eval cases and prompts.\n\n## Community Skills\n\nThird-party skills for the ICP ecosystem, maintained by their respective authors. These appear in the **Ecosystem** section on the skills site, clearly separated from DFINITY-maintained skills.\n\n| Skill | Maintainer | Description |\n|-------|------------|-------------|\n| [Liquidium SDK Integration](https://github.com/Liquidium-Inc/liquidium-sdk/tree/main/skills/liquidium-sdk-integration) | Liquidium Inc | Authless instant-loan flow, market data, and profile-based lending via `@liquidium/client` on ICP. |\n\nCommunity skills are not maintained by DFINITY. To propose a community skill, see [CONTRIBUTING.md](CONTRIBUTING.md#adding-a-community-skill).\n\n## Contributing\n\nSee [CONTRIBUTING.md](CONTRIBUTING.md) for how to add or update skills.\n\n**All PRs require repo admin approval.** One skill per PR. Code examples must be tested.\n\n## Tech Stack\n\n- **Site**: [Astro](https://astro.build/) — static site generator, zero JS by default. Interactive islands with [Preact](https://preactjs.com/) (~18kb gzipped total)\n- **Hosting**: IC asset canister at [`skills.internetcomputer.org`](https://skills.internetcomputer.org)\n- **Skills**: Plain markdown files in `skills/*/SKILL.md`\n- **Validation**: [`skill-validator`](https://github.com/agent-ecosystem/skill-validator) for structure, links, content analysis, and contamination checks (`npm run validate`)\n- **Evaluation**: Per-skill eval cases with LLM-as-judge scoring (`node scripts/evaluate-skills.js \u003cskill\u003e`)\n- **Schema**: JSON Schema for frontmatter at `skills/skill.schema.json`\n- **SEO**: Per-skill meta tags, JSON-LD (TechArticle), sitemap, canonical URLs\n- **Skills Discovery**: `llms.txt`, `.well-known/skills/` ([Skills Discovery RFC](https://github.com/cloudflare/agent-skills-discovery-rfc))\n\n## License\n\nApache-2.0\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdfinity%2Ficskills","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fdfinity%2Ficskills","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdfinity%2Ficskills/lists"}