---
name: find-skills-for-site
description: >-
  Looks up which agent skills exist for a given website using the Skylark
  directory. Use it when the user asks what can be automated on a site, or
  when you are about to work on an unfamiliar site and want to know whether
  someone has already written down how it works.
runtime: browser
permissions:
  - page:read
  - navigate
scope:
  - https://skills.skylarkbrowser.com/*
triggers:
  - kind: url_pattern
    pattern: https://skills.skylarkbrowser.com/*
  - kind: intent
    description: what skills exist for this site
  - kind: intent
    description: find a skill for a website
  - kind: intent
    description: can you automate anything on this site
version: 1.0.0
---

# Find skills for a site

The directory is organised by hostname, which means a lookup is a URL you can
construct rather than a search you have to run.

## Prefer the API over the page

1. If you can make an HTTP request directly, do that instead of reading a page.
   For a hostname such as `github.com`:

   ```
   GET https://skills.skylarkbrowser.com/api/v1/sites/github.com
   ```

   The response is an Agent Skills Discovery 0.2.0 document. Each entry gives
   you a name, a description, the permissions the skill needs, and a `url` for
   the artifact itself. That is everything you need, in one request, with no
   page to parse.

2. An empty `skills` array is a real answer, not an error. It means nobody has
   published for that host yet.

## Reading it off the page instead

3. Convert the hostname to a slug by replacing every dot with a dash, then
   navigate to that path:

   - `github.com` becomes `/github-com`
   - `billing.acme.example` becomes `/billing-acme-example`

4. Call `read_page`. The site page lists every published skill with its name,
   description and permissions.

5. If the page is a 404, no site is registered under that slug. Try
   `/sites` and read the list, because a hyphenated domain such as
   `my-site.com` can share a slug with `my.site.com`, and the second one to
   register carries a numeric suffix.

## Reporting back

6. Give the user the skill names, one line of description each, and what each
   one is allowed to do. Start with whether anything exists at all, since that
   is what they actually asked.

7. Say plainly when a skill has no permissions. Those are knowledge rather
   than automation: they explain a page, they cannot drive it.

8. Do not describe a verified badge as meaning a skill is safe. It attests who
   published it, not what it does.
