Skip to content
Skylark Skills
Submit a skill

Publish for your own site

You do not need us for this. Serve two files from your own domain and any agent that speaks the standard, Skylark included, can read them directly. We mirror what you publish so people can find it, and we verify your domain automatically, because only you can serve from it.

Why bother? The alternative is an agent guessing its way through your interface from a screenshot. A skill is you telling it how the site actually works: which flows are safe to automate, where it has to stop and ask, and what your buttons happen to be called this week.

1. The discovery index

Serve this at /.well-known/agent-skills/index.json. It is fetched before your page renders, so an agent knows what you offer without executing anything.

{
  "$schema": "https://schemas.agentskills.io/discovery/0.2.0/schema.json",
  "skills": [
    {
      "name": "cancel-subscription",
      "type": "skill-md",
      "description": "Cancels a recurring subscription. Drives the cancel flow and stops at the final confirm.",
      "url": "/.well-known/agent-skills/cancel-subscription/SKILL.md",
      "digest": "sha256:d13d4ad61efcb1fc37bedc9d675a62caa0ea5046757146e9157ef8ce3a31a974",

      "runtime": "browser",
      "permissions": ["page:read", "page:act", "navigate"],
      "scope": ["https://billing.acme.example/account/subscriptions/*"],
      "triggers": [
        { "kind": "url_pattern", "pattern": "https://billing.acme.example/account/subscriptions/*" },
        { "kind": "intent", "description": "cancel my subscription" }
      ]
    }
  ]
}

The four fields after the blank line are Skylark extensions. The standard requires clients to ignore fields they do not recognise, so they are safe to include. Andruntime is the important one: it defaults to repo, meaning a coding agent, so a browser will ignore your skill unless you saybrowser.

2. The skill itself

Markdown with YAML frontmatter, in the open Agent Skills format. Plain procedural English, the same thing you would write for a new colleague.

---
name: cancel-subscription
description: >-
  Cancels a recurring subscription on Acme Billing. Drives the cancel
  flow and stops at the final confirm, handing the consequential last
  click back to the user.
runtime: browser
permissions:
  - page:read
  - page:act
  - navigate
scope:
  - https://billing.acme.example/account/subscriptions/*
version: 1.0.0
---

# Cancel subscription

## Before you start

1. Call `read_page` and confirm you are on a subscriptions page.

## Drive the cancel flow

2. Click the subscription's **Manage** control. Use the interactive-element
   `ref` from the snapshot, never a hand-written CSS selector.

## Confirm with the user

3. Summarise what will be cancelled and the effective date, then wait for an
   explicit yes before the final click.

3. Write instructions, not selectors

The agent reads your page as an accessibility tree and addresses controls by a stable reference, not a CSS selector. So describe the control, "the Manage button on the subscription row", rather than .sub-row > .btn-2. Your class names change; your labels mostly do not.

Say where to stop. If a step is consequential, a payment or a cancellation or a deletion, write that the agent must summarise and wait for the user. Skylark enforces a confirmation there anyway, but a skill that expects the pause hands over much more gracefully than one the guardrail interrupts.

4. Ask for the least you need

A skill that only explains a page should declare no permissions at all. Skills published by a site are capped at reading the page, acting on it, and navigating, which are the things your site can already do to itself. Reading raw network traffic or running JavaScript in the page is not available to site-published skills, by design.

5. Digests

The digest is the SHA-256 of your SKILL.md bytes. Clients verify it before use and skip re-downloading when it has not changed, so update it whenever you edit the file.

shasum -a 256 SKILL.md

What we publish

We do this ourselves, at the same path, in the same format. These are live now at/.well-known/agent-skills/index.json, digests and all. It is a correctness check as much as a demonstration: a directory that tells you to publish skills and does not publish its own cannot notice when its advice stops working.

Between them they use every permission in the vocabulary, so the list doubles as a worked example of what each one is for. Start with ping if you are testing a client.

Then tell us

Submit the URL and we will fetch it, confirm it is served from your domain, and list it here with a verified badge. The copy on your domain stays authoritative, and this is a mirror for discovery.