{
  "$schema": "https://schemas.agentskills.io/discovery/0.2.0/schema.json",
  "skills": [
    {
      "name": "anlyon-agent-loop",
      "type": "archive",
      "description": "Handles what an Anlyon action call returns inside an AI agent's loop - pending approvals, connect_required, refused calls, unknown outcomes and receipts - so the agent waits, asks the user, or stops instead of retrying blindly. Use when writing or debugging code or prompts around actions.invoke, waitForDecision, wait_for_approval or check_approval MCP tools, anlyon_check_request, the @anlyonhq/ai-sdk tool results, idempotency keys, or an invocation whose status is pending_approval, failed, unknown, denied or expired.",
      "url": "/.well-known/agent-skills/anlyon-agent-loop.zip",
      "digest": "sha256:26d5b5df366970e8bedb92b20a46c401d7cc259028af1ebf47496bbfb0ef25b1"
    },
    {
      "name": "anlyon-end-users",
      "type": "archive",
      "description": "Builds product features where an AI agent acts in each end user's own accounts (for example GitHub or Notion) through Anlyon, with a limit per user, approvals that user decides inside the app, and a receipt per call. Use when code needs anlyon.forUser or client.for_user, the Anlyon-End-User header, connect links and the connect callback, connect_required or END_USER_NOT_CONNECTED handling, end-user approvals, end-user session tokens, or the @anlyonhq/react components (ApprovalInbox, ApprovalPrompt, ConnectButton, Connections, ConnectPrompt).",
      "url": "/.well-known/agent-skills/anlyon-end-users.zip",
      "digest": "sha256:31e8c58118bb3b2a03f040c6df7445ae606e452fb51e0e87d55f778afcbaf638"
    },
    {
      "name": "anlyon-governed-actions",
      "type": "archive",
      "description": "Defines Anlyon actions an AI agent can invoke by name, and governs them - vaulted credentials bound to hosts, declared impact counted against impact limits, read-backs that grade receipts confirmed, approval policies, and per-user limits. Use when writing or reviewing an actions.create / actions.declare call, an action's urlTemplate, headers, bodyTemplate or inputSchema, a {{secret:NAME}} or {{connection:x}} placeholder, an approval policy, an impact limit, an OpenAPI import, or a pack install for Anlyon.",
      "url": "/.well-known/agent-skills/anlyon-governed-actions.zip",
      "digest": "sha256:72f381c1d8728cdf0ad8eea7e61ff59e398941568c4f170f140b7d62cadb9882"
    },
    {
      "name": "anlyon-setup",
      "type": "archive",
      "description": "Sets up Anlyon in a codebase so an AI agent's writes to third-party APIs run as governed actions, under limits and approvals, with a receipt, while the agent never holds the provider credential. Use when the user wants to add Anlyon to a project, run anlyon init, install @anlyonhq/sdk or the anlyon Python package, choose or check Anlyon API keys and scopes, connect Claude Code, Cursor or Codex to the Anlyon MCP server, keep guardrails in anlyon.yaml, or make and verify a test governed call.",
      "url": "/.well-known/agent-skills/anlyon-setup.zip",
      "digest": "sha256:7016d7fab48b01212f9fd31aebed765568af5c05fa22afb1548dd6d6bf9d4db0"
    },
    {
      "name": "anlyon-troubleshooting",
      "type": "archive",
      "description": "Diagnoses failing Anlyon API, SDK, MCP and CLI calls from their error codes and invocation results, and gives the fix for each. Use when an Anlyon call returns an error such as AUTHENTICATION_ERROR, AUTHORIZATION_ERROR, NOT_FOUND, PAYMENT_REQUIRED, QUOTA_EXCEEDED, END_USER_REQUIRED, END_USER_NOT_CONNECTED, END_USER_MISMATCH, REDIRECT_URL_REQUIRED, PREVIEW_MISMATCH, idempotency_key_reuse or ORIGIN_NOT_ALLOWED, when an invocation is refused (impact_limit_exceeded, policy_denied) or stuck in unknown, or when the Anlyon MCP server or a connect link does not work.",
      "url": "/.well-known/agent-skills/anlyon-troubleshooting.zip",
      "digest": "sha256:2a52ac71bbdeb9aaf0789869f267169f31d0a7802989089b2fc4312c5551bcdb"
    }
  ]
}
