{
  "spec": "quick-html/v0",
  "id": "changelog",
  "version": "0.1.0",
  "name": "Changelog",
  "description": "Public 'what's new' page for a product: releases in reverse-chronological order, each with a version, date, colour-coded type label and a short list of changes. Use for release notes, product updates and version histories.",
  "useWhen": [
    "changelog",
    "release notes",
    "what's new page",
    "version history",
    "product updates",
    "release announcement",
    "changelog pagina",
    "release-notes",
    "Änderungsprotokoll",
    "notes de version",
    "registro de cambios"
  ],
  "format": "page",
  "theme": "work-projects",
  "audience": [
    "it",
    "pmo",
    "marketing-team"
  ],
  "tags": [
    "release-notes",
    "product",
    "updates",
    "versions"
  ],
  "language": "en",
  "modules": [
    "edit-overlay",
    "print-helper"
  ],
  "slots": [
    {
      "name": "doc-title",
      "type": "text",
      "required": true,
      "example": "Changelog — Sluis",
      "notes": "Browser tab title; used as the download filename. Pattern: 'Changelog — {product}'."
    },
    {
      "name": "product-name",
      "type": "text",
      "required": true,
      "example": "Sluis",
      "notes": "Product or service name only, no tagline. Sits next to the fixed mark in the header."
    },
    {
      "name": "page-title",
      "type": "text",
      "required": true,
      "example": "Changelog",
      "notes": "The h1. Keep it short: 'Changelog', 'Release notes', 'What's new'."
    },
    {
      "name": "intro-line",
      "type": "text",
      "required": true,
      "example": "Every change we ship to the Sluis API gateway, newest first — usually one release every two to three weeks, published the day it goes out.",
      "notes": "One sentence: what this page covers and how often it is updated. Under ~180 characters."
    },
    {
      "name": "subscribe-line",
      "type": "text",
      "required": false,
      "example": "Machine-readable feed at sluis.dev/changelog.xml · or get every release by mail from Account → Notifications.",
      "notes": "Inside the subscribe optional block. Feed URL, mailing list or Slack app — plain text, one line, under ~120 characters."
    },
    {
      "name": "upcoming-content",
      "type": "html",
      "required": false,
      "example": "<p>Being built now. Nothing here has a date until it ships.</p><ul><li>Policy versioning, with a diff view and one-click rollback.</li></ul>",
      "notes": "Inside the upcoming optional block. One framing sentence plus 2–4 <li> items. Never promise dates."
    },
    {
      "name": "footer-line",
      "type": "text",
      "required": false,
      "example": "Sluis B.V. · Rotterdam · sluis.dev/docs",
      "notes": "Left-hand footer line: company, city, docs URL."
    }
  ],
  "repeats": [
    {
      "name": "release",
      "description": "One block per shipped release, newest first (reverse chronological, top to bottom).",
      "min": 1,
      "max": 30,
      "slots": [
        {
          "name": "release-version",
          "type": "text",
          "required": true,
          "example": "3.2.0",
          "notes": "Semver, monospaced in the left rail. Breaking = major, new functionality = minor, fixes only = patch."
        },
        {
          "name": "release-date",
          "type": "date",
          "required": true,
          "example": "12 Aug 2026",
          "notes": "Release date, formatted exactly like the placeholder: '12 Aug 2026'."
        },
        {
          "name": "release-tag",
          "type": "text",
          "required": true,
          "example": "Feature release",
          "notes": "Label text: 'Feature release', 'Patch' or 'Breaking change'. Must match release-tag-class."
        },
        {
          "name": "release-tag-class",
          "type": "text",
          "required": true,
          "example": "tag tag-feature",
          "notes": "Attribute slot on the label's class. Exactly one of: 'tag tag-feature', 'tag tag-fix', 'tag tag-breaking'."
        },
        {
          "name": "release-title",
          "type": "text",
          "required": true,
          "example": "Regional failover and rule previews",
          "notes": "One-line human summary of the release — never the version number again. Aim for 30–50 characters so it stays on one line; hard cap ~70."
        },
        {
          "name": "release-body",
          "type": "html",
          "required": true,
          "example": "<ul><li><strong>Added</strong> Regional failover. A standby gateway takes over within 30 seconds.</li><li><strong>Fixed</strong> Keys created through the API lost their <span class=\"code\">environment</span> label.</li></ul>",
          "notes": "A single <ul> of 3–6 <li>. Each starts with <strong>Added</strong>, <strong>Fixed</strong>, <strong>Changed</strong>, <strong>Removed</strong> or <strong>Migration</strong>. Inline code goes in <span class=\"code\">…</span>."
        }
      ]
    }
  ],
  "optionals": [
    {
      "name": "subscribe",
      "description": "Header line pointing at an RSS/JSON feed, release e-mails or a Slack app."
    },
    {
      "name": "upcoming",
      "description": "Panel above the release list saying what is being built next."
    },
    {
      "name": "legend",
      "description": "Three-column key explaining what the feature / patch / breaking labels mean."
    }
  ],
  "changelog": [
    {
      "version": "0.1.0",
      "date": "2026-08-19",
      "notes": "Initial release: responsive release-notes page with a version/date left rail, colour-coded type labels and an upcoming panel."
    }
  ],
  "agentInstructions": "NEWEST RELEASE FIRST — reverse chronological, top to bottom. This is the mistake to check for before you finish. Delete the data-example releases; they are preview content only. Keep semver honest: breaking change = major (3.0.0), new functionality = minor (3.2.0), fixes only = patch (3.1.2). release-tag-class must match the release type and be exactly one of 'tag tag-feature', 'tag tag-fix', 'tag tag-breaking', with release-tag text to match ('Feature release' / 'Patch' / 'Breaking change'). release-title is a one-line human summary of what the release does — never a restatement of the version number. Keep each release-body to 3–6 bullets, each opening with a bold Added / Fixed / Changed / Removed and then one plain past-tense sentence: what changed, and for a breaking change what the reader must do about it. No marketing copy, no exclamation marks, no 'we're excited'. Inline code goes in <span class=\"code\">. Dates exactly like the placeholder: '12 Aug 2026'. Drop the upcoming, legend or subscribe blocks when there is nothing real to put in them. If a version or date is unknown, write [VERSION] or [DATE] and tell the user to fill it in with the built-in Edit button.",
  "license": "MIT",
  "authors": [
    {
      "github": "bvrln"
    }
  ]
}
