{
  "name": "Cameron Rye Portfolio",
  "description": "A2A interface for Cameron Rye's portfolio. Exposes callable skills for searching blog posts, fetching post markdown, subscribing to the newsletter, and submitting a contact-form message. Also discloses the site's MCP server at /mcp for tool-based access.",
  "version": "1.0.0",
  "provider": {
    "url": "https://rye.dev",
    "organization": "Cameron Rye"
  },
  "documentationUrl": "https://rye.dev/.well-known/agent-skills/index.json",
  "iconUrl": "https://rye.dev/favicon.svg",
  "supportedInterfaces": [
    {
      "url": "https://rye.dev/a2a",
      "protocolBinding": "JSONRPC",
      "protocolVersion": "1.0"
    }
  ],
  "capabilities": {
    "streaming": false,
    "pushNotifications": false,
    "extendedAgentCard": false
  },
  "defaultInputModes": ["text/plain", "application/json"],
  "defaultOutputModes": ["text/plain", "text/markdown", "application/json"],
  "skills": [
    {
      "id": "search-blog",
      "name": "Search blog",
      "description": "Search Cameron Rye's blog posts by keyword.",
      "tags": ["blog", "search", "content", "callable"],
      "examples": [
        "DataPart: {skill_id:'search-blog', args:{query:'cloudflare workers'}}",
        "What has Cameron written about Cloudflare Workers?"
      ]
    },
    {
      "id": "get-post",
      "name": "Get blog post",
      "description": "Fetch the full markdown of a blog post by slug.",
      "tags": ["blog", "content", "read", "callable"],
      "examples": [
        "DataPart: {skill_id:'get-post', args:{slug:'web-bot-auth'}}"
      ]
    },
    {
      "id": "subscribe-newsletter",
      "name": "Subscribe to newsletter",
      "description": "Subscribe an email to the rye.dev newsletter (double opt-in).",
      "tags": ["newsletter", "subscribe", "write", "callable"],
      "examples": [
        "DataPart: {skill_id:'subscribe-newsletter', args:{email:'agent@example.com', source:'a2a'}}"
      ]
    },
    {
      "id": "submit-contact",
      "name": "Submit contact form",
      "description": "Send a contact-form message to Cameron Rye.",
      "tags": ["contact", "write", "callable"],
      "examples": [
        "DataPart: {skill_id:'submit-contact', args:{name:'A2A Client', email:'a@example.com', subject:'Inquiry', message:'…'}}"
      ]
    },
    {
      "id": "mcp",
      "name": "Connect to MCP",
      "description": "Connect to the rye.dev MCP server for tool-based access to portfolio content.",
      "tags": ["mcp", "discovery"],
      "examples": [
        "Connect to the MCP server at https://rye.dev/mcp"
      ]
    }
  ]
}
