Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
9 changes: 4 additions & 5 deletions .claude/CLAUDE.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@ This repository contains agent-readable skill files for the Internet Computer. E

## Key Rules

- **`llms.txt`, `llms-full.txt`, `.well-known/skills/`, and `sitemap.xml`** are all generated by Astro at build time into `dist/`. They are NOT committed to git.
- **`llms.txt`, `.well-known/skills/`, and `sitemap.xml`** are all generated by Astro at build time into `dist/`. They are NOT committed to git.
- **Never edit Astro source files to add or update a skill** — the website auto-discovers skills from SKILL.md frontmatter at build time. Only edit `src/` files for site-level UI changes.
- **One skill = one file** at `skills/<skill-name>/SKILL.md`. No nested directories, no images, no external dependencies within a skill.
- Skill names are **lowercase, hyphenated** (e.g., `ckbtc`, `https-outcalls`, `stable-memory`) and must match the directory name. This aligns with the [Agent Skills spec](https://agentskills.io/specification).
Expand Down Expand Up @@ -85,14 +85,13 @@ src/ # Astro site source
layouts/BaseLayout.astro # HTML shell, meta tags, JSON-LD
layouts/SiteLayout.astro # Shared header/nav/footer for main pages
components/BrowseTab.tsx # Preact island: search + skill grid
components/AccessTab.tsx # Preact island: access/endpoints reference
components/GetStartedTab.tsx # Preact island: get started / install + endpoints
components/SkillHeader.tsx # Preact island: skill detail header
pages/index.astro # Browse page
pages/how-it-works/ # How it works page (fully static)
pages/access/ # Access reference page (real endpoints)
pages/get-started/ # Get started page (install + endpoints)
pages/skills/[slug]/ # Dynamic skill pages (pre-rendered)
pages/llms.txt.ts # Skills index for agents
pages/llms-full.txt.ts # All skills concatenated
pages/llms.txt.ts # Skill index with descriptions and discovery links
pages/.well-known/skills/ # Skills Discovery RFC endpoints (index.json + per-skill SKILL.md)
public/ # Static assets (favicon, etc.)
astro.config.mjs # Astro configuration
Expand Down
1 change: 0 additions & 1 deletion .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,6 @@ dist
*.local
public/.well-known/skills/
public/llms.txt
public/llms-full.txt
.astro
.icp/cache/
lighthouse-*
Expand Down
23 changes: 10 additions & 13 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -44,7 +44,7 @@ All skills live in [`skills/*/SKILL.md`](skills/). Each skill is a self-containe

### Install via CLI

Works with 40+ agents (Claude Code, Cursor, Windsurf, Copilot, and more):
Works with any agent that supports skills (Claude Code, Cursor, Windsurf, Copilot, and more):

```bash
npx skills add dfinity/icskills
Expand All @@ -54,10 +54,10 @@ Browse available skills, pick your agent, and install. See [skills.sh](https://s

### Manual

Fetch the raw skill file and place it wherever your agent reads instructions from:
Fetch a single skill and place it wherever your agent reads instructions from:

```bash
curl -sL https://raw.githubusercontent.com/dfinity/icskills/main/skills/ckbtc/SKILL.md
curl -sL https://skills.internetcomputer.org/.well-known/skills/ckbtc/SKILL.md
```

The files are plain markdown — paste into any system prompt, rules file, or context window.
Expand All @@ -66,14 +66,11 @@ The files are plain markdown — paste into any system prompt, rules file, or co

| Resource | URL | Description |
|----------|-----|-------------|
| Skill index | [`llms.txt`](https://skills.internetcomputer.org/llms.txt) | Short index with links to each skill |
| All skills | [`llms-full.txt`](https://skills.internetcomputer.org/llms-full.txt) | All skills concatenated for direct context injection |
| Single skill | [`skills/{name}/SKILL.md`](https://raw.githubusercontent.com/dfinity/icskills/main/skills/ckbtc/SKILL.md) | Raw markdown from GitHub |
| Skills discovery | [`.well-known/skills/index.json`](https://skills.internetcomputer.org/.well-known/skills/index.json) | Machine-readable skill index ([Cloudflare Skills Discovery RFC](https://github.com/cloudflare/agent-skills-discovery-rfc)) |
| Single skill (API) | `/.well-known/skills/{name}/SKILL.md` | Raw markdown via discovery endpoint |
| Skill reference file | `/.well-known/skills/{name}/references/{file}.md` | Additional reference files listed in the discovery index |
| Skill page (HTML) | [`/skills/{name}/`](https://skills.internetcomputer.org/skills/ckbtc/) | Pre-rendered skill page with full SEO |
| CLI | `npx skills add dfinity/icskills` | Browse and install skills via [skills.sh](https://skills.sh) |
| 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)) |
| Single skill | `/.well-known/skills/{name}/SKILL.md` | Raw markdown for one skill |
| Reference files | `/.well-known/skills/{name}/references/{file}.md` | Additional files listed in the discovery index |
| Skill index | [`llms.txt`](https://skills.internetcomputer.org/llms.txt) | All skills with descriptions and discovery links |
| Skill page | [`/skills/{name}/`](https://skills.internetcomputer.org/skills/ckbtc/) | Pre-rendered skill page for humans |

## Contributing

Expand All @@ -84,13 +81,13 @@ See [CONTRIBUTING.md](CONTRIBUTING.md) for how to add or update skills.
## Tech Stack

- **Site**: [Astro](https://astro.build/) — static site generator, zero JS by default. Interactive islands with [Preact](https://preactjs.com/) (~18kb gzipped total)
- **Hosting**: GitHub Pages via Actions
- **Hosting**: IC asset canister at [`skills.internetcomputer.org`](https://skills.internetcomputer.org)
- **Skills**: Plain markdown files in `skills/*/SKILL.md`
- **Validation**: Structural linter for frontmatter and code blocks (`npm run validate`)
- **Evaluation**: Per-skill eval cases with LLM-as-judge scoring (`node scripts/evaluate-skills.js <skill>`)
- **Schema**: JSON Schema for frontmatter at `skills/skill.schema.json`
- **SEO**: Per-skill meta tags, JSON-LD (TechArticle), sitemap, canonical URLs
- **Skills Discovery**: `llms.txt`, `llms-full.txt`, `.well-known/skills/` ([Skills Discovery RFC](https://github.com/cloudflare/agent-skills-discovery-rfc))
- **Skills Discovery**: `llms.txt`, `.well-known/skills/` ([Skills Discovery RFC](https://github.com/cloudflare/agent-skills-discovery-rfc))

## License

Expand Down
Binary file added public/og-image.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
27 changes: 8 additions & 19 deletions public/og-image.svg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
6 changes: 0 additions & 6 deletions scripts/generate-sitemap.js
Original file line number Diff line number Diff line change
Expand Up @@ -46,12 +46,6 @@ xml += ` <url>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>${SITE}/llms-full.txt</loc>
<lastmod>${latestDate}</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
</urlset>
`;

Expand Down
149 changes: 0 additions & 149 deletions src/components/AccessTab.tsx

This file was deleted.

8 changes: 4 additions & 4 deletions src/components/BrowseTab.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -111,7 +111,7 @@ export default function BrowseTab({ skills }: Props) {
gap: "16px",
}}>
{filtered.map((skill) => {
const rawUrl = `${origin}/.well-known/skills/${skill.name}/SKILL.md`;
const installCmd = `npx skills add dfinity/icskills --skill ${skill.name}`;
return (
<div
key={skill.name}
Expand Down Expand Up @@ -186,7 +186,7 @@ export default function BrowseTab({ skills }: Props) {
<div style={{
fontSize: "11px", color: "var(--text-muted)", whiteSpace: "nowrap", flexShrink: 0,
}}>
paste in agent:
install:
</div>
<code style={{
flex: 1, padding: "6px 10px",
Expand All @@ -196,9 +196,9 @@ export default function BrowseTab({ skills }: Props) {
whiteSpace: "nowrap", overflow: "hidden", textOverflow: "ellipsis",
minWidth: 0,
}}>
{rawUrl}
{installCmd}
</code>
<CopyButton text={rawUrl} />
<CopyButton text={installCmd} />
</div>
</div>
);
Expand Down
Loading
Loading