{
  "protocolVersion": "1.0",
  "name": "Produlis Agent",
  "description": "Answers questions about Produlis — what it builds, what it declines, its published delivery results, and how to reach it — and can file a project brief on a person's behalf. Synchronous and stateless: every message is answered immediately, so there is no task lifecycle.",
  "supportedInterfaces": [
    {
      "url": "https://produlis.com/a2a/v1",
      "protocolBinding": "JSONRPC",
      "protocolVersion": "1.0"
    }
  ],
  "provider": {
    "organization": "Produlis Studio LLC",
    "url": "https://produlis.com"
  },
  "version": "1.0.0",
  "documentationUrl": "https://produlis.com/.well-known/agent-skills/produlis-a2a/SKILL.md",
  "iconUrl": "https://produlis.com/icon-192.png",
  "capabilities": {
    "streaming": false,
    "pushNotifications": false,
    "extendedAgentCard": false
  },
  "securitySchemes": {
    "produlisOAuth": {
      "oauth2SecurityScheme": {
        "description": "Anonymous agent credentials. Register at https://produlis.com/oauth/register; see https://produlis.com/auth.md.",
        "oauth2MetadataUrl": "https://produlis.com/.well-known/oauth-authorization-server",
        "flows": {
          "clientCredentials": {
            "tokenUrl": "https://produlis.com/oauth/token",
            "scopes": {
              "produlis:read": "Read public information about Produlis",
              "produlis:brief": "File a project brief (creates a CRM lead)"
            }
          }
        }
      }
    }
  },
  "securityRequirements": [],
  "defaultInputModes": [
    "text/plain",
    "application/json"
  ],
  "defaultOutputModes": [
    "application/json",
    "text/plain"
  ],
  "skills": [
    {
      "id": "produlis-fit-assessment",
      "name": "Assess fit for a project",
      "description": "Answers whether Produlis is the right agency for a given piece of work: what it builds, the stacks it migrates off, and the work it explicitly declines.",
      "tags": [
        "agency",
        "web-development",
        "consulting",
        "qualification"
      ],
      "examples": [
        "Is Produlis a good fit for moving our Webflow and Xano site onto real code?",
        "What kind of projects does Produlis take on?",
        "Does Produlis do staff augmentation?"
      ],
      "inputModes": [
        "text/plain",
        "application/json"
      ],
      "outputModes": [
        "application/json",
        "text/plain"
      ]
    },
    {
      "id": "produlis-case-evidence",
      "name": "Provide published delivery evidence",
      "description": "Returns the measured results from the World Class® engagement — what was replaced, what replaced it, and the performance numbers.",
      "tags": [
        "case-study",
        "evidence",
        "performance",
        "lighthouse"
      ],
      "examples": [
        "What results has Produlis actually delivered?",
        "Show me the World Class case study numbers.",
        "How much did Produlis improve Lighthouse scores?"
      ],
      "inputModes": [
        "text/plain",
        "application/json"
      ],
      "outputModes": [
        "application/json",
        "text/plain"
      ]
    },
    {
      "id": "produlis-contact-routing",
      "name": "Route a contact request",
      "description": "Returns every way to reach Produlis: email address, intro-call booking link, and the contact form.",
      "tags": [
        "contact",
        "booking",
        "sales"
      ],
      "examples": [
        "How do I get in touch with Produlis?",
        "Book me a call with Produlis.",
        "What is the email address for Produlis?"
      ],
      "inputModes": [
        "text/plain",
        "application/json"
      ],
      "outputModes": [
        "application/json",
        "text/plain"
      ]
    },
    {
      "id": "produlis-project-brief",
      "name": "File a project brief",
      "description": "Files a project brief with Produlis. This creates a real lead in the Produlis CRM and a person follows up by email, so it needs an access token with the produlis:brief scope and the details supplied as a structured data part — this agent will not guess a name or email out of prose.",
      "tags": [
        "lead",
        "brief",
        "contact",
        "write"
      ],
      "examples": [
        "{\"skill\":\"produlis-project-brief\",\"full_name\":\"Ada Lovelace\",\"company_name\":\"Analytical Engines\",\"work_email\":\"ada@example.com\",\"challenge\":\"Our Webflow site is too slow\"}"
      ],
      "inputModes": [
        "text/plain",
        "application/json"
      ],
      "outputModes": [
        "application/json",
        "text/plain"
      ],
      "securityRequirements": [
        {
          "schemes": {
            "produlisOAuth": {
              "list": [
                "produlis:read",
                "produlis:brief"
              ]
            }
          }
        }
      ]
    }
  ]
}