{
  "name": "Digby Dolphins website helper",
  "version": 1,
  "description": "Machine-readable instructions for preparing website updates for review.",
  "capabilities": [
    {
      "id": "create_article_review_link",
      "name": "Prepare an article draft for review",
      "description": "Generate a link that prefills the Digby Dolphins article form. This does not authenticate, save, or publish anything. An authorized user must sign in, review the draft, and click Create Article.",
      "action": "generate_url",
      "baseUrl": "https://www.digbydolphins.ca/admin/articles/create",
      "fragmentParameter": "draft",
      "fragmentTemplate": "https://www.digbydolphins.ca/admin/articles/create#draft={BASE64URL_PAYLOAD}",
      "payload": {
        "encoding": "UTF-8 JSON encoded as unpadded base64url (RFC 4648 URL-safe alphabet)",
        "maximumEncodedLength": 16000,
        "schema": {
          "type": "object",
          "additionalProperties": false,
          "required": ["v", "title", "excerpt", "content"],
          "properties": {
            "v": {
              "const": 1,
              "description": "Payload format version."
            },
            "title": {
              "type": "string",
              "minLength": 1,
              "maxLength": 160
            },
            "excerpt": {
              "type": "string",
              "minLength": 1,
              "maxLength": 200
            },
            "content": {
              "type": "string",
              "minLength": 1,
              "maxLength": 12000,
              "description": "Article body as simple HTML. Use paragraphs, lists, strong, emphasis, and links only when needed."
            },
            "category": {
              "type": "string",
              "maxLength": 80
            },
            "author": {
              "type": "string",
              "maxLength": 100
            }
          }
        }
      },
      "instructions": [
        "Write plain, factual club copy using only information supplied by the user.",
        "Create the payload using only the documented fields.",
        "Serialize the payload as UTF-8 JSON.",
        "Encode it as unpadded base64url.",
        "Append it to the base URL as #draft= followed by the encoded payload.",
        "Tell the user that the link only prefills a draft and that they must sign in, review it, and click Create Article.",
        "Never claim that the article has been saved or published.",
        "Do not include passwords, private member information, medical information, or other secrets in a draft link."
      ]
    }
  ]
}
