Skip to content

llms.txt: instruct agents to use raw HTTP fetch and mention additional reference files #155

@marc0olo

Description

@marc0olo

Context

Related to #137 (migration to v0.2 of the Agent Skills Discovery RFC). The proposals here are intended to be compatible with that migration and should be applied alongside or after it.

Problem

The current llms.txt has two issues that cause agents to load skill content inaccurately:

1. No instruction on fetch method

Agents that use a summarizing web fetch tool (e.g. Claude's WebFetch) instead of a raw HTTP request receive paraphrased, lossy output rather than verbatim skill content. Skills contain precise code examples, version numbers, YAML configuration details, and common pitfalls — all of which get lost or distorted through summarization.

For example, fetching icp-cli/SKILL.md via a summarizing tool:

  • Reduced 16 detailed pitfalls to 15 one-liner summaries (missing one entirely)
  • Stripped all code blocks and YAML examples
  • Lost exact version numbers (e.g. @dfinity/rust@v3.2.0)
  • Missed critical details like the silent createActor failure when passing { agent } instead of { agentOptions }

2. Reference files in the files array are not mentioned

The current index JSON includes a files array per skill listing files beyond SKILL.md (e.g. references/dfx-migration.md, references/binding-generation.md). The current llms.txt says nothing about these. Agents following the instructions faithfully miss them entirely.

Note: #137 removes the files array in v0.2. Reference files should instead be discovered via relative paths mentioned in the SKILL.md body — the llms.txt should instruct agents to do this.

Proposed llms.txt

Aligned with the v0.2 paths from #137, no URL templates, and with the curl instruction added:

# Internet Computer (ICP) Skills

> Agent-readable skill files for building on the Internet Computer.

## How to use

Skills contain correct dependency versions, configuration formats, and common pitfalls
that prevent build failures. Always prefer skill guidance over general knowledge when
both cover the same topic.

**Always fetch skill content using a raw HTTP request (e.g. `curl -s` via Bash,
`curl.exe -s` in Windows PowerShell). Do NOT use a summarizing web fetch tool —
content must be read verbatim.**

1. Fetch the skills index and remember each skill's name, description, and url:
   ```
   curl -s https://skills.internetcomputer.org/.well-known/agent-skills/index.json
   ```

2. When a task matches a skill's description, use it if already loaded in your
   context. Otherwise, fetch its content verbatim using the `url` field from the
   index. Do not construct skill URLs manually.

   Example: for the skill named "internet-identity", its url is:
   ```
   curl -s https://skills.internetcomputer.org/.well-known/agent-skills/internet-identity/SKILL.md
   ```

   If a response contains HTML instead of markdown, the URL is wrong.

3. Skills may reference additional files via relative paths in their content.
   Fetch these on-demand using the same base URL when the task requires them.

## Source

- [GitHub Repository](https://github.com/dfinity/icskills)

Advertised prompt

The prompt advertised to users should bootstrap the correct fetch behavior from the first step:

Run curl -s https://skills.internetcomputer.org/llms.txt and follow its instructions when building on ICP.

Using curl for the llms.txt itself ensures the agent reads the raw instruction to keep using curl for all subsequent fetches.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions