{
  "updated": "2026-06-24",
  "version": "site-updates-v1",
  "purpose": "AI-readable public update feed for meaningful content, privacy, knowledge-base and discoverability changes. Entries summarize what changed and the safety boundary; they are not medical advice.",
  "entries": [
    {
      "date": "2026-06-24",
      "id": "campaign-publication-record-entry-kit",
      "type": "content_operations",
      "urls": [
        "data/campaign-publication-record-entry-status.json",
        "Doku/Marketing/Jahreskampagne_2026_2027/_generated/publication-record-entry-kit.md",
        "Doku/Marketing/Jahreskampagne_2026_2027/_generated/publication-record-entry-sheet.json",
        "Doku/Marketing/Jahreskampagne_2026_2027/publication-record-inbox.json",
        "Doku/Marketing/Jahreskampagne_2026_2027/campaign-publication-state.json",
        "scripts/campaign-ops.mjs",
        "scripts/audit-site.mjs",
        "scripts/verify-public-deployment.mjs",
        "data/ai-content-ops.json",
        "data/service-index.json",
        "llms.txt",
        "llms-full.txt",
        "robots.txt",
        "sitemap.xml"
      ],
      "summary_de": "Die Kampagnen-Pipeline enthaelt jetzt ein Publication-Record-Entry-Kit: Nach echter manueller Publikation kann eine interne Sheet-Form nicht-sensitive Publikationsnachweise vorbereiten, waehrend der public-safe Status nur Zaehler und Grenzen zeigt.",
      "summary_en": "The campaign pipeline now includes a publication record entry kit: after real manual publication, an internal sheet can prepare non-sensitive publication evidence while the public-safe status exposes only counts and boundaries.",
      "safety_boundary": "Preparation only after real manual publication and after approval records, exact export packages and documented release authorization; no publication_records created, no platform action, no public final copy, no copy hashes, no patient data, no platform credentials and no post-publish sync import.",
      "review_gate": "Use npm run campaign:publication-record:entry-kit only as an evidence-entry helper. Then run campaign:publication-inbox:qa and campaign:publication-import:dry-run before any deliberate publication-record import."
    },
    {
      "date": "2026-06-24",
      "id": "campaign-review-import-projection",
      "type": "content_operations",
      "urls": [
        "data/campaign-review-import-projection.json",
        "Doku/Marketing/Jahreskampagne_2026_2027/_generated/review-import-projection.md",
        "data/campaign-review-inbox-qa.json",
        "data/campaign-review-import-plan.json",
        "Doku/Marketing/Jahreskampagne_2026_2027/review-decision-inbox.json",
        "Doku/Marketing/Jahreskampagne_2026_2027/campaign-publication-state.json",
        "scripts/campaign-ops.mjs",
        "scripts/audit-site.mjs",
        "scripts/verify-public-deployment.mjs",
        "data/ai-content-ops.json",
        "data/service-index.json",
        "llms.txt",
        "llms-full.txt",
        "robots.txt",
        "sitemap.xml"
      ],
      "summary_de": "Die Kampagnen-Pipeline enthaelt jetzt eine Review-Import-Projektion: Vor einem echten Review-Import simuliert sie public-safe, welche Approval-Prep- und Go-live-Zaehlungen downstream entstehen wuerden, ohne State zu schreiben.",
      "summary_en": "The campaign pipeline now includes a review import projection: before a real review import, it public-safely simulates downstream approval-prep and go-live counts without writing state.",
      "safety_boundary": "Projection only; no review_decision_records, approval records, export packages, release authorizations, publication records, platform action, public final copy, copy hashes, patient data, platform credentials or sensitive data.",
      "review_gate": "Use npm run campaign:review-import:projection before review-import dry-run/apply. Apply still requires genuine human review confirmation and writes review_decision_records only."
    },
    {
      "date": "2026-06-24",
      "id": "campaign-release-authorization-entry-kit",
      "type": "content_operations",
      "urls": [
        "data/campaign-release-authorization-entry-status.json",
        "Doku/Marketing/Jahreskampagne_2026_2027/_generated/release-authorization-entry-kit.md",
        "Doku/Marketing/Jahreskampagne_2026_2027/_generated/release-authorization-entry-sheet.json",
        "Doku/Marketing/Jahreskampagne_2026_2027/release-authorization-inbox.json",
        "Doku/Marketing/Jahreskampagne_2026_2027/campaign-publication-state.json",
        "scripts/campaign-ops.mjs",
        "scripts/audit-site.mjs",
        "scripts/verify-public-deployment.mjs",
        "data/ai-content-ops.json",
        "data/service-index.json",
        "llms.txt",
        "llms-full.txt",
        "robots.txt",
        "sitemap.xml"
      ],
      "summary_de": "Die Kampagnen-Pipeline enthaelt jetzt ein Release-Authorization-Entry-Kit: Nach echten Approval Records und exakt passenden Exportpaketen kann eine interne Sheet-Form spaetere Release-Freigabe-Eingaben vorbereiten, waehrend der public-safe Status nur Zaehler und Grenzen zeigt.",
      "summary_en": "The campaign pipeline now includes a release authorization entry kit: after real approval records and exact matching export packages, an internal sheet can prepare later release authorization input while the public-safe status exposes only counts and boundaries.",
      "safety_boundary": "Preparation only after approval_records and exact matching export packages; no release_authorization_records created, no publication records, no platform action, no public final copy, no copy hashes, no patient data, no platform credentials and no sensitive data.",
      "review_gate": "Use npm run campaign:release-authorization:entry-kit only after approval_records and exact export packages exist. Then run campaign:release-authorization:dry-run before any deliberate release authorization import."
    },
    {
      "date": "2026-06-24",
      "id": "campaign-approval-record-entry-kit",
      "type": "content_operations",
      "urls": [
        "data/campaign-approval-record-entry-status.json",
        "Doku/Marketing/Jahreskampagne_2026_2027/_generated/approval-record-entry-kit.md",
        "Doku/Marketing/Jahreskampagne_2026_2027/_generated/approval-record-entry-sheet.json",
        "Doku/Marketing/Jahreskampagne_2026_2027/campaign-publication-state.json",
        "scripts/campaign-ops.mjs",
        "scripts/audit-site.mjs",
        "scripts/verify-public-deployment.mjs",
        "data/ai-content-ops.json",
        "data/service-index.json",
        "llms.txt",
        "llms-full.txt",
        "robots.txt",
        "sitemap.xml"
      ],
      "summary_de": "Die Kampagnen-Pipeline enthaelt jetzt ein Approval-Record-Entry-Kit: Nach echten approved Review-Decision-Records kann eine interne Sheet-Form spaeter Approval-Eingaben vorbereiten, waehrend der public-safe Status nur Zaehler und Grenzen zeigt.",
      "summary_en": "The campaign pipeline now includes an approval record entry kit: after real approved review decision records, an internal sheet can prepare later approval entries while the public-safe status exposes only counts and boundaries.",
      "safety_boundary": "Preparation only after genuine approved review decisions; no approval records created, no export packages, no publication records, no public final copy, no patient data, no platform credentials and no sensitive data.",
      "review_gate": "Use npm run campaign:approval-record:entry-kit only after approved review_decision_records exist. Then run campaign:approval-inbox:qa and campaign:approval-import:dry-run before any deliberate approval import."
    },
    {
      "date": "2026-06-24",
      "id": "campaign-human-review-command-center",
      "type": "content_operations",
      "urls": [
        "data/campaign-human-review-command-center.json",
        "Doku/Marketing/Jahreskampagne_2026_2027/_generated/human-review-command-center.md",
        "data/campaign-review-session-workbook-status.json",
        "data/campaign-review-decision-entry-status.json",
        "data/campaign-review-inbox-qa.json",
        "data/campaign-review-import-plan.json",
        "data/campaign-action-feed.json",
        "data/campaign-operator-calendar-status.json",
        "scripts/verify-public-deployment.mjs",
        "scripts/audit-site.mjs",
        "data/ai-content-ops.json",
        "data/service-index.json",
        "llms.txt",
        "llms-full.txt"
      ],
      "summary_de": "Die Kampagnen-Pipeline enthaelt jetzt ein public-safe Human-Review-Command-Center: due-now, next-7-days und next-30-days Review-Aktionen werden mit Workbook, Decision-Entry, Inbox-QA, Import-Dry-Run, Action Feed und Operator-Kalender an einem Ort sichtbar.",
      "summary_en": "The campaign pipeline now includes a public-safe human review command center: due-now, next-7-days and next-30-days review actions are visible in one routing surface with workbook, decision entry, inbox QA, import dry-run, action feed and operator calendar.",
      "safety_boundary": "Routing and counts only; no review decisions, no approval records, no release authorization, no publication records, no public copy, no final copy, no patient data, no platform credentials and no sensitive data.",
      "review_gate": "After any command-center or campaign-backend change, run campaign validation, audit and public verification. Treat the command center as operator routing only, then continue through review inbox QA and review import dry-run before any state-changing step."
    },
    {
      "date": "2026-06-24",
      "id": "campaign-review-decision-entry-kit",
      "type": "content_operations",
      "urls": [
        "Doku/Marketing/Jahreskampagne_2026_2027/_generated/review-decision-entry-kit.md",
        "Doku/Marketing/Jahreskampagne_2026_2027/_generated/review-decision-entry-sheet.json",
        "data/campaign-review-decision-entry-status.json",
        "data/ai-content-ops.json",
        "data/service-index.json",
        "llms.txt",
        "llms-full.txt",
        "robots.txt",
        "sitemap.xml"
      ],
      "summary_de": "Die Kampagnen-Pipeline hat jetzt ein internes Review-Decision-Entry-Kit und eine editierbare Entry-Sheet-Form fuer faellige und naechste Review-Entscheidungen: 2 Entry-Slots, 1 faellig, 1 in den naechsten 7 Tagen, 5 Gate-Entscheidungen und 5 Channel-Entscheidungen werden als Operator-Hilfe sichtbar gemacht.",
      "summary_en": "The campaign pipeline now has an internal review decision entry kit and editable entry sheet for due and next review decisions: 2 entry slots, 1 due now, 1 in the next 7 days, 5 gate decisions and 5 channel decisions are exposed as operator help.",
      "safety_boundary": "Decision-entry assistance only; public status exposes progress and counts, not approval or publication. No post copy, final copy, patient data, diagnosis data, platform credentials, sensitive data, invented practice facts, diagnosis, healing, availability, review, reimbursement or treatment-outcome claim.",
      "review_gate": "Use npm run campaign:review-decision:entry-kit to refresh the internal kit and sheet, then enter only genuine role-labelled review decisions in review-decision-inbox.json. Continue with review inbox QA and review import dry-run before any apply step; approval and publication remain separate later gates."
    },
    {
      "date": "2026-06-24",
      "id": "campaign-operator-calendar-task-export",
      "type": "content_operations",
      "urls": [
        "Doku/Marketing/Jahreskampagne_2026_2027/_generated/operator-calendar.ics",
        "Doku/Marketing/Jahreskampagne_2026_2027/_generated/operator-task-export.csv",
        "data/campaign-operator-calendar-status.json",
        "data/campaign-action-feed.json",
        "data/campaign-execution-cockpit.json",
        "data/campaign-go-live-control.json",
        "data/campaign-ops-summary.json",
        "scripts/campaign-ops.mjs",
        "scripts/verify-public-deployment.mjs",
        "data/ai-content-ops.json",
        "data/service-index.json",
        "llms.txt",
        "llms-full.txt"
      ],
      "summary_de": "Die Kampagnen-Pipeline hat jetzt einen internen Operator-Kalender und CSV-Aufgabenexport: 48 Kalenderereignisse, 48 CSV-Zeilen, 2 unmittelbare Aufgaben und 4 aktive Juli-Ereignisse werden aus dem Action Feed erzeugt.",
      "summary_en": "The campaign pipeline now has an internal operator calendar and CSV task export: 48 calendar events, 48 CSV rows, 2 immediate tasks and 4 active July events are generated from the action feed.",
      "safety_boundary": "Scheduling and operator routing only; public status exposes counts and paths, while ICS/CSV stay internal. Not approval, not final copy, not release authorization, not publication, no patient data, no platform credentials and no invented practice facts.",
      "review_gate": "Run campaign:operator-calendar for focused regeneration or campaign:ops for the full pipeline; use the calendar/CSV only for scheduling work, then continue through human review, approval, export, release authorization and publication-record gates."
    },
    {
      "date": "2026-06-24",
      "id": "campaign-review-session-workbook",
      "type": "content_operations",
      "urls": [
        "Doku/Marketing/Jahreskampagne_2026_2027/_generated/review-session-workbook.md",
        "data/campaign-review-session-workbook-status.json",
        "data/campaign-review-session-bundle-status.json",
        "data/campaign-review-session-status.json",
        "data/campaign-ops-summary.json",
        "scripts/campaign-ops.mjs",
        "package.json",
        "data/ai-content-ops.json",
        "data/service-index.json",
        "llms.txt",
        "llms-full.txt"
      ],
      "summary_de": "Die Kampagnen-Pipeline hat jetzt ein internes Review-Session-Workbook fuer due-now/next-7-days Reviews: 2 Workbook-Slots, 5 Copy-Kandidatenbloecke, 5 Gate-Zeilen, 5 Channel-Zeilen und 2 Entscheidungsscratchpads werden in einer Review-Arbeitsmappe gebuendelt.",
      "summary_en": "The campaign pipeline now has an internal review-session workbook for due-now/next-7-days reviews: 2 workbook slots, 5 copy-candidate blocks, 5 gate rows, 5 channel rows and 2 decision scratchpads are bundled into one review worksheet.",
      "safety_boundary": "Internal review context only; public status exposes counts and routing, no copy and no final copy. The workbook is not human review, not approval, no automatic apply, no export package, no publication record, no platform publication, no patient data, no credentials and no invented practice facts.",
      "review_gate": "Use campaign:review-session:workbook or campaign:ops to refresh the workbook, then enter real role-labelled decisions only in review-decision-inbox.json after genuine human review. Continue with campaign:review-inbox:qa and campaign:review-import:dry-run before any apply command."
    },
    {
      "date": "2026-06-24",
      "id": "campaign-publication-record-inbox-import",
      "type": "content_operations",
      "urls": [
        "Doku/Marketing/Jahreskampagne_2026_2027/publication-record-inbox.json",
        "Doku/Marketing/Jahreskampagne_2026_2027/_generated/publication-inbox-qa.md",
        "Doku/Marketing/Jahreskampagne_2026_2027/_generated/publication-import-plan.md",
        "data/campaign-publication-inbox-qa.json",
        "data/campaign-publication-import-plan.json",
        "data/campaign-publication-ledger-status.json",
        "data/campaign-ops-summary.json",
        "scripts/campaign-ops.mjs",
        "scripts/verify-public-deployment.mjs",
        "data/ai-content-ops.json",
        "data/service-index.json",
        "llms.txt",
        "llms-full.txt"
      ],
      "summary_de": "Die Kampagnen-Pipeline hat jetzt einen Publication-Record-Eingang mit QA und Import-Plan fuer Nachweise nach echter manueller Publikation: aktuell 0 pending Publication-Inbox-Records, 0 ready Imports und 0 bestehende Publication Records.",
      "summary_en": "The campaign pipeline now has a publication-record inbox with QA and import plan for evidence after real manual publication: currently 0 pending publication inbox records, 0 ready imports and 0 existing publication records.",
      "safety_boundary": "Evidence capture only after real manual publication; not publication, no automatic apply, no approval records, no release authorization records, no post-publish sync import, no public final copy, no copy hashes, no patient data, no platform credentials, no invented practice facts, no diagnosis, healing, availability, review, reimbursement or treatment-outcome claim.",
      "review_gate": "Use campaign:publication-inbox:qa before campaign:publication-import:dry-run, and use campaign:publication-import:apply only after deliberate human confirmation, matching approval records, matching export packages, documented release authorization and real manual publication."
    },
    {
      "date": "2026-06-24",
      "id": "campaign-review-session-bundle",
      "type": "content_operations",
      "urls": [
        "Doku/Marketing/Jahreskampagne_2026_2027/_generated/review-session-bundle.md",
        "Doku/Marketing/Jahreskampagne_2026_2027/_generated/review-decision-inbox-scaffold.json",
        "Doku/Marketing/Jahreskampagne_2026_2027/_generated/review-session-intake.md",
        "data/campaign-review-session-bundle-status.json",
        "data/campaign-review-session-status.json",
        "data/campaign-review-inbox-qa.json",
        "data/campaign-ops-summary.json",
        "scripts/campaign-ops.mjs",
        "package.json",
        "scripts/verify-public-deployment.mjs",
        "data/ai-content-ops.json",
        "data/service-index.json",
        "llms.txt",
        "llms-full.txt"
      ],
      "summary_de": "Die Kampagnen-Pipeline hat jetzt ein Review-Session-Bundle mit Inbox-Scaffold fuer die faellige Review-Sitzung: 2 Bundle-Slots, 2 pending-only Scaffold-Entscheidungen, 5 Gate-Entscheidungen, 5 Channel-Entscheidungen und 5 interne Draft-Paket-Referenzen werden als Arbeitsbuendel vorbereitet.",
      "summary_en": "The campaign pipeline now has a review-session bundle with inbox scaffold for the due review session: 2 bundle slots, 2 pending-only scaffold decisions, 5 gate decisions, 5 channel decisions and 5 internal draft package references are prepared as a working bundle.",
      "safety_boundary": "Review assistance only; not human review, not approval, no automatic apply, no publication, no review-decision records, no approval records, no publication records, no public draft copy, no final copy, no patient data, no platform credentials, no invented practice facts, no diagnosis, healing, availability, review, reimbursement or treatment-outcome claim.",
      "review_gate": "Use the bundle and scaffold only after genuine human review. Real decisions still belong in review-decision-inbox.json, followed by campaign:review-inbox:qa and campaign:review-import:dry-run before any apply command."
    },
    {
      "date": "2026-06-24",
      "id": "campaign-review-gate-coverage-reconciliation",
      "type": "content_operations",
      "urls": [
        "Doku/Marketing/Jahreskampagne_2026_2027/campaign-backend.json",
        "Doku/Marketing/Jahreskampagne_2026_2027/_generated/review-evidence-pack.md",
        "Doku/Marketing/Jahreskampagne_2026_2027/_generated/review-decision-template.json",
        "data/campaign-review-evidence-status.json",
        "data/campaign-review-workbench.json",
        "data/campaign-review-preflight-status.json",
        "data/campaign-ops-summary.json",
        "scripts/audit-site.mjs",
        "data/ai-content-ops.json",
        "data/service-index.json",
        "llms.txt",
        "llms-full.txt"
      ],
      "summary_de": "Die Kampagnen-Pipeline hat die Juli-Gate-Abdeckung bereinigt: `no_live_booking_claim` ist fuer die WhatsApp-/Local- und Wissenssuche-/AI-Summary-Slots jetzt offizielles Review-Gate. Das aktive Evidence-Routing zeigt 4 reviewbereite Juli-Slots, 11 Gate-Evidence-Items und 0 offene Zusatz-Gate-Hinweise.",
      "summary_en": "The campaign pipeline reconciled July gate coverage: `no_live_booking_claim` is now an official review gate for the WhatsApp/local and knowledge-search/AI-summary slots. Active evidence routing now shows 4 review-ready July slots, 11 gate evidence items and 0 open supplemental gate-attention signals.",
      "safety_boundary": "Gate reconciliation only; not human review, not approval, no automatic apply, no publication, no review-decision records, no approval records, no publication records, no public draft copy, no final copy, no patient data, no platform credentials, no invented practice facts, no diagnosis, healing, availability, review, reimbursement or treatment-outcome claim.",
      "review_gate": "Use the updated evidence pack and decision template before filling review-decision-inbox.json. All active July slots now include the booking-boundary gate where request-only wording is required."
    },
    {
      "date": "2026-06-24",
      "id": "campaign-review-evidence-status",
      "type": "content_operations",
      "urls": [
        "Doku/Marketing/Jahreskampagne_2026_2027/_generated/review-evidence-pack.md",
        "data/campaign-review-evidence-status.json",
        "data/campaign-review-workbench.json",
        "data/campaign-review-preflight-status.json",
        "data/campaign-ops-summary.json",
        "scripts/campaign-ops.mjs",
        "scripts/audit-site.mjs",
        "scripts/verify-public-deployment.mjs",
        "data/ai-content-ops.json",
        "data/service-index.json",
        "llms.txt",
        "llms-full.txt"
      ],
      "summary_de": "Die Kampagnen-Pipeline hat ein Review-Evidence-Pack und einen public-safe Review-Evidence-Status eingefuehrt. Der spaetere Gate-Coverage-Eintrag in diesem Feed ist fuer die aktuellen Juli-Zahlen massgeblich.",
      "summary_en": "The campaign pipeline introduced a review evidence pack and public-safe review evidence status. The later gate-coverage entry in this feed is authoritative for the current July counts.",
      "safety_boundary": "Evidence routing only; not human review, not approval, no automatic apply, no publication, no review-decision records, no approval records, no publication records, no public draft copy, no final copy, no patient data, no platform credentials, no invented practice facts, no diagnosis, healing, availability, review, reimbursement or treatment-outcome claim.",
      "review_gate": "Use the internal review evidence pack before filling review-decision-inbox.json. Gate coverage must be explicit before any approved_for_approval_record decision."
    },
    {
      "date": "2026-06-24",
      "id": "campaign-approval-inbox-qa",
      "type": "content_operations",
      "urls": [
        "Doku/Marketing/Jahreskampagne_2026_2027/approval-record-inbox.json",
        "Doku/Marketing/Jahreskampagne_2026_2027/_generated/approval-inbox-qa.md",
        "data/campaign-approval-inbox-qa.json",
        "data/campaign-approval-import-plan.json",
        "data/campaign-ops-summary.json",
        "scripts/campaign-ops.mjs",
        "scripts/verify-public-deployment.mjs",
        "data/ai-content-ops.json",
        "data/service-index.json",
        "llms.txt",
        "llms-full.txt"
      ],
      "summary_de": "Die Kampagnen-Pipeline hat jetzt eine Approval-Inbox-QA mit nicht-mutierender Import-Simulation: 0 Approval-Inbox-Records, 0 ready Approval-Imports, 0 approved Review-Decision-Records, Dry-Run schreibt keinen State und erzeugt 0 Approval Records, 0 Exportpakete und 0 Publication Records.",
      "summary_en": "The campaign pipeline now has approval-inbox QA with non-mutating import simulation: 0 approval inbox records, 0 ready approval imports, 0 approved review decision records, dry-run writes no state and creates 0 approval records, 0 export packages and 0 publication records.",
      "safety_boundary": "QA and import simulation only; not approval, not publication, no automatic apply, no public final copy, no copy hashes, no patient data, no platform credentials, no invented practice facts, no diagnosis, healing, availability, review, reimbursement or treatment-outcome claim.",
      "review_gate": "Use campaign:approval-inbox:qa before approval import dry-run/apply. Approval records require matching approved review_decision_records, internal final copy, channel export notes and deliberate human approval confirmation."
    },
    {
      "date": "2026-06-24",
      "id": "campaign-review-inbox-qa",
      "type": "content_operations",
      "urls": [
        "Doku/Marketing/Jahreskampagne_2026_2027/review-decision-inbox.json",
        "Doku/Marketing/Jahreskampagne_2026_2027/_generated/review-inbox-qa.md",
        "Doku/Marketing/Jahreskampagne_2026_2027/_generated/review-session-intake.md",
        "data/campaign-review-inbox-qa.json",
        "data/campaign-review-inbox-status.json",
        "data/campaign-review-import-plan.json",
        "data/campaign-ops-summary.json",
        "scripts/campaign-ops.mjs",
        "scripts/verify-public-deployment.mjs",
        "data/ai-content-ops.json",
        "data/service-index.json",
        "llms.txt",
        "llms-full.txt"
      ],
      "summary_de": "Die Kampagnen-Pipeline hat jetzt eine Review-Inbox-QA mit nicht-mutierender Import-Simulation: 2 aktive Session-Slots warten auf echte Human-Review-Inbox-Entscheidungen, 0 Entscheidungen sind importierbar, Dry-Run schreibt keinen State und es entstehen 0 Approval- oder Publication Records.",
      "summary_en": "The campaign pipeline now has review-inbox QA with non-mutating import simulation: 2 active session slots wait for genuine human-review inbox decisions, 0 decisions are importable, dry-run writes no state and 0 approval or publication records are created.",
      "safety_boundary": "QA and import simulation only; not human review, not approval, no automatic apply, no publication, no copy candidates, no final copy, no patient data, no platform credentials, no invented practice facts, no diagnosis, healing, availability, review, reimbursement or treatment-outcome claim.",
      "review_gate": "Use campaign:review-inbox:qa before editing/importing the inbox; only genuine human review may create inbox decisions, and approval/export/publication remain later separate gates."
    },
    {
      "date": "2026-06-24",
      "id": "campaign-review-preflight-status",
      "type": "content_operations",
      "urls": [
        "Doku/Marketing/Jahreskampagne_2026_2027/campaign-publication-state.json",
        "Doku/Marketing/Jahreskampagne_2026_2027/_generated/review-preflight-board.md",
        "Doku/Marketing/Jahreskampagne_2026_2027/_generated/draft-package-index.md",
        "data/campaign-review-preflight-status.json",
        "data/campaign-draft-package-status.json",
        "data/campaign-ops-summary.json",
        "scripts/campaign-ops.mjs",
        "data/ai-content-ops.json",
        "data/service-index.json",
        "llms.txt",
        "llms-full.txt"
      ],
      "summary_de": "Die Jahreskampagne hat jetzt einen Review-Preflight zwischen Draft-Paketen und Human Review: 73 kanalweise Kandidaten werden mit Datenschutz-, Billing-, Medical-, Quellen-, AI-Visibility- und Booking-Boundary-Signalen vorsortiert. Oeffentlich sichtbar sind nur Status, Zaehler und Routing, keine Entwurfstexte.",
      "summary_en": "The year-long campaign now has a review preflight between draft packages and human review: 73 channel candidates are routed with privacy, billing, medical, source, AI-visibility and booking-boundary signals. Only status, counts and routing are public, not draft copy.",
      "safety_boundary": "Advisory preflight only; not human review, not approval, no automatic apply, no publication, no review-decision records, no approval records, no publication records, no public draft copy, no final copy, no patient data, no platform credentials, no invented practice facts, no diagnosis, healing, availability, review, reimbursement or treatment-outcome claim.",
      "review_gate": "Use the internal review-preflight board before entering genuine review decisions. Ready-for-human-review is a routing signal only; actual decisions belong in review-decision-inbox and approval/export/publication stay separate gates."
    },
    {
      "date": "2026-06-24",
      "id": "campaign-draft-package-status",
      "type": "content_operations",
      "urls": [
        "Doku/Marketing/Jahreskampagne_2026_2027/campaign-publication-state.json",
        "Doku/Marketing/Jahreskampagne_2026_2027/_generated/draft-package-index.md",
        "Doku/Marketing/Jahreskampagne_2026_2027/_generated/draft-packages",
        "data/campaign-draft-package-status.json",
        "data/campaign-ops-summary.json",
        "scripts/campaign-ops.mjs",
        "data/ai-content-ops.json"
      ],
      "summary_de": "Die Jahreskampagne hat jetzt ein internes Full-Year-Draft-Package: 12 Monatsdateien und 73 kanalgenaue Entwurfspakete fuer Human Review. Oeffentlich sichtbar ist nur der Status mit Zaehlern und Routing, nicht die Entwurfstexte.",
      "summary_en": "The year-long campaign now has an internal full-year draft package: 12 monthly files and 73 channel-specific draft packages for human review. Only status counts and routing are public, not the draft copy.",
      "safety_boundary": "Public status only; no public draft copy, no final copy, no automatic publishing, no approval evidence, no patient data, no platform credentials, no invented practice facts, no diagnosis, healing, availability, review, reimbursement or treatment-outcome claim.",
      "review_gate": "Use the internal packages only as editable working material. Review decisions belong in review-decision-inbox; approval records, export packages and publication records remain separate gates."
    },
    {
      "date": "2026-06-24",
      "id": "campaign-approval-import-plan",
      "type": "content_operations",
      "urls": [
        "Doku/Marketing/Jahreskampagne_2026_2027/approval-record-inbox.json",
        "Doku/Marketing/Jahreskampagne_2026_2027/_generated/approval-import-plan.md",
        "data/campaign-approval-import-plan.json",
        "data/campaign-ops-summary.json",
        "scripts/campaign-ops.mjs",
        "data/ai-content-ops.json"
      ],
      "summary_de": "Die Kampagnen-Pipeline hat jetzt einen Approval-Record-Inbox-Import mit Dry-Run-/Apply-Befehl: echte, bereits review-gepruefte Approval Records koennen explizit in `approval_records` uebernommen werden. Aktuell gibt es 0 Inbox-Approvals, 0 ready imports und 0 Publikationsnachweise aus diesem Schritt.",
      "summary_en": "The campaign pipeline now has an approval-record inbox import with dry-run/apply commands: genuine, already review-gated approval records can be explicitly moved into `approval_records`. Current counts are 0 inbox approvals, 0 ready imports and 0 publication records from this step.",
      "safety_boundary": "Explicit approval-record import only; no automatic import, no automatic publishing, no publication record, no public final copy, no patient data, no platform credentials, no invented practice facts, no diagnosis, healing, availability, review, reimbursement or treatment-outcome claim.",
      "review_gate": "Use this only after a matching approved review_decision_record exists; run the dry-run first, apply only with deliberate human approval confirmation, then rerun campaign:ops before export or go-live checks."
    },
    {
      "date": "2026-06-24",
      "id": "campaign-publication-ledger-status",
      "type": "content_operations",
      "urls": [
        "Doku/Marketing/Jahreskampagne_2026_2027/campaign-publication-state.json",
        "Doku/Marketing/Jahreskampagne_2026_2027/_generated/publishing-ledger.md",
        "Doku/Marketing/Jahreskampagne_2026_2027/_generated/publication-record-contract.md",
        "Doku/Marketing/Jahreskampagne_2026_2027/_generated/publication-record-template.json",
        "data/campaign-publication-ledger-status.json",
        "data/campaign-ops-summary.json",
        "scripts/campaign-ops.mjs",
        "data/ai-content-ops.json"
      ],
      "summary_de": "Die Kampagnen-Pipeline hat jetzt einen Publication-Record-Contract und einen public-safe Ledger-Status: 0 Publikationen sind eingetragen, 48 Publikationsnachweise fehlen weiterhin absichtlich, und Post-Publish-Sync bleibt als eigener manueller Nachzug sichtbar.",
      "summary_en": "The campaign pipeline now has a publication-record contract and a public-safe ledger status: 0 publications are recorded, 48 publication records are still intentionally missing, and post-publish sync is visible as a separate manual follow-up.",
      "safety_boundary": "Publication-record governance only; no automatic publication, no approval record, no export permission, no final copy, no patient data, no platform credentials, no copy hashes, no tracking parameters by default, no invented practice facts, no diagnosis, healing, availability, review, reimbursement or treatment-outcome claim.",
      "review_gate": "After approval_records and matching export packages, require deliberate human release authorization before any manual publication record. This gate does not publish or create publication_records; add records only after real manual publication with matching approval/export evidence, documented release authorization, HTTPS public_url for website records and completed sync checks."
    },
    {
      "date": "2026-06-24",
      "id": "campaign-review-decision-contract",
      "type": "content_operations",
      "urls": [
        "Doku/Marketing/Jahreskampagne_2026_2027/campaign-publication-state.json",
        "Doku/Marketing/Jahreskampagne_2026_2027/_generated/review-decision-contract.md",
        "Doku/Marketing/Jahreskampagne_2026_2027/_generated/review-decision-inbox-seed.json",
        "data/campaign-review-decision-contract.json",
        "data/campaign-ops-summary.json",
        "scripts/campaign-ops.mjs",
        "data/ai-content-ops.json"
      ],
      "summary_de": "Die Kampagnen-Pipeline hat jetzt einen Review-Decision-Contract und einen Review-before-Approval-Guard: echte Inbox-Entscheidungen muessen erlaubte Status-/Gate-/Channel-Werte nutzen, und Approval Records duerfen passende approved Review-Decision-Records nicht ueberspringen.",
      "summary_en": "The campaign pipeline now has a review decision contract and a review-before-approval guard: real inbox decisions must use allowed status/gate/channel values, and approval records cannot bypass matching approved review decision records.",
      "safety_boundary": "Decision-shape and transition validation only; no automatic approval, no automatic publishing, no approval record, no export package, no final copy, no copy candidates in public data, no patient data, no platform credentials, no invented practice facts, no diagnosis, healing, availability, review, reimbursement or treatment-outcome claim.",
      "review_gate": "Use the contract only to enter genuine human review decisions safely; approved review_decision_records are required before separate approval_records can unlock export packages."
    },
    {
      "date": "2026-06-24",
      "id": "campaign-review-session-intake",
      "type": "content_operations",
      "urls": [
        "Doku/Marketing/Jahreskampagne_2026_2027/campaign-publication-state.json",
        "Doku/Marketing/Jahreskampagne_2026_2027/_generated/review-session-intake.md",
        "Doku/Marketing/Jahreskampagne_2026_2027/_generated/review-session-decision-template.json",
        "data/campaign-review-session-status.json",
        "data/campaign-ops-summary.json",
        "scripts/campaign-ops.mjs",
        "data/ai-content-ops.json"
      ],
      "summary_de": "Die Kampagnen-Pipeline hat jetzt ein fokussiertes Review-Session-Intake fuer faellige und naechste Juli-Entscheidungen: 2 Session-Slots, 1 faellig, 1 in den naechsten 7 Tagen, 5 Gate-Checks und 5 Channel-Entscheidungen. Die Session bereitet echte Human Review vor, bleibt aber ohne Auto-Apply.",
      "summary_en": "The campaign pipeline now has a focused review-session intake for due and next July decisions: 2 session slots, 1 due now, 1 in the next 7 days, 5 gate checks and 5 channel decisions. The session prepares genuine human review but remains no-auto-apply.",
      "safety_boundary": "Review-session routing only; no automatic import, no automatic publishing, no approval record, no export package, no copy candidates in the public status, no final copy, no patient data, no platform credentials, no invented practice facts, no diagnosis, healing, availability, review, reimbursement or treatment-outcome claim.",
      "review_gate": "Use the internal review-session intake and pending-only template only after real human review; reviewed decisions still require inbox validation, manual import into review_decision_records and separate approval_records before export."
    },
    {
      "date": "2026-06-24",
      "id": "campaign-review-import-plan",
      "type": "content_operations",
      "urls": [
        "Doku/Marketing/Jahreskampagne_2026_2027/campaign-publication-state.json",
        "Doku/Marketing/Jahreskampagne_2026_2027/review-decision-inbox.json",
        "Doku/Marketing/Jahreskampagne_2026_2027/_generated/review-import-plan.md",
        "data/campaign-review-import-plan.json",
        "data/campaign-ops-summary.json",
        "scripts/campaign-ops.mjs",
        "data/ai-content-ops.json"
      ],
      "summary_de": "Die Kampagnen-Pipeline hat jetzt einen Review-Import-Plan mit Dry-Run-/Apply-Befehl: validierte Inbox-Entscheidungen koennen explizit nach `review_decision_records` uebernommen werden. Aktuell gibt es 0 Inbox-Entscheidungen, 0 ready imports, 0 Approval-Prep-Kandidaten und kein Auto-Apply.",
      "summary_en": "The campaign pipeline now has a review import plan with dry-run/apply commands: validated inbox decisions can be explicitly moved into `review_decision_records`. Current counts are 0 inbox decisions, 0 ready imports, 0 approval-prep candidates and no auto-apply.",
      "safety_boundary": "Explicit review-state import only; no automatic import, no automatic publishing, no approval record, no export package, no final copy, no patient data, no platform credentials, no invented practice facts, no diagnosis, healing, availability, review, reimbursement or treatment-outcome claim.",
      "review_gate": "Use this only after genuine human review decisions exist; run the dry-run first, apply only with deliberate confirmation, and create approval_records separately after all required gates."
    },
    {
      "date": "2026-06-24",
      "id": "campaign-human-review-handoff",
      "type": "content_operations",
      "urls": [
        "Doku/Marketing/Jahreskampagne_2026_2027/campaign-publication-state.json",
        "Doku/Marketing/Jahreskampagne_2026_2027/_generated/human-review-handoff.md",
        "data/campaign-review-handoff-status.json",
        "data/campaign-ops-summary.json",
        "scripts/campaign-ops.mjs",
        "data/ai-content-ops.json"
      ],
      "summary_de": "Die Kampagnen-Pipeline hat jetzt ein Human-Review-Handoff fuer die naechsten faelligen Juli-Entscheidungen: 2 Slots, 5 Kanal-Kandidaten, 5 Gate-Checks und 3 visuelle Konzepte werden priorisiert, bleiben aber blockiert bis echte menschliche Review-Entscheidungen vorliegen.",
      "summary_en": "The campaign pipeline now has a human-review handoff for the next due July decisions: 2 slots, 5 channel candidates, 5 gate checks and 3 visual concepts are prioritized, but remain blocked until genuine human review decisions exist.",
      "safety_boundary": "Review routing only; public status contains no copy candidates, no final copy, no automatic publishing, no approval record, no export package, no patient data, no platform credentials, no invented practice facts, no diagnosis, healing, availability, review, reimbursement or treatment-outcome claim.",
      "review_gate": "Use the internal human-review handoff to decide due-now and next-7-days slots; approval_records still require genuine human review, reviewed final copy, explicit channels and all required gates."
    },
    {
      "date": "2026-06-24",
      "id": "campaign-copy-prep-review-deck",
      "type": "content_operations",
      "urls": [
        "Doku/Marketing/Jahreskampagne_2026_2027/campaign-publication-state.json",
        "Doku/Marketing/Jahreskampagne_2026_2027/_generated/copy-review-deck.md",
        "data/campaign-copy-prep-status.json",
        "data/campaign-ops-summary.json",
        "scripts/campaign-ops.mjs",
        "data/ai-content-ops.json"
      ],
      "summary_de": "Die Kampagnen-Pipeline hat jetzt ein internes Copy-Review-Deck fuer den aktiven Juli-Monat und einen public-safe Copy-Prep-Status: 4 Slots, 9 kanalweise Kandidaten, 5 visuelle Konzepte und 9 Kandidaten warten weiter auf Human Review.",
      "summary_en": "The campaign pipeline now has an internal copy review deck for the active July month and a public-safe copy prep status: 4 slots, 9 channel candidates, 5 visual concepts and 9 candidates still wait for human review.",
      "safety_boundary": "Copy preparation only; public status contains no copy, no automatic publishing, no approval record, no export package, no final post copy, no patient data, no invented practice facts, no diagnosis, healing, availability, review, reimbursement or treatment-outcome claim.",
      "review_gate": "Use the internal copy review deck only as editable draft context; approval_records still require genuine human review, reviewed final copy, explicit channels and all required gates."
    },
    {
      "date": "2026-06-24",
      "id": "campaign-export-manifest-packages",
      "type": "content_operations",
      "urls": [
        "Doku/Marketing/Jahreskampagne_2026_2027/campaign-publication-state.json",
        "Doku/Marketing/Jahreskampagne_2026_2027/_generated/export-manifest.md",
        "Doku/Marketing/Jahreskampagne_2026_2027/_generated/exports/README.md",
        "data/campaign-export-manifest.json",
        "data/campaign-ops-summary.json",
        "scripts/campaign-ops.mjs",
        "data/ai-content-ops.json"
      ],
      "summary_de": "Die Kampagnen-Pipeline hat jetzt ein public-safe Export-Manifest mit Freshness-Gate: 48 Slots bleiben bis Approval Record blockiert, 0 Exportpakete werden erwartet, 0 Exportdateien liegen vor, 0 fehlen, 0 sind veraltet, 0 haben Inhaltsabweichungen und der Exportordner passt exakt zum Manifest.",
      "summary_en": "The campaign pipeline now has a public-safe export manifest with a freshness gate: 48 slots remain blocked until approval record, 0 export packages are expected, 0 export files exist, 0 are missing, 0 are stale, 0 have content mismatches and the export directory exactly matches the manifest.",
      "safety_boundary": "Export-package tracking and freshness validation only; no automatic publishing, no approval record, no final post copy in public data, no patient data, no invented practice facts, no diagnosis, healing, availability, review, reimbursement or treatment-outcome claim.",
      "review_gate": "Use export packages only after valid approval_records exist; stale, missing or content-mismatched export packages must block validation, content hashes stay non-public, and manual platform preview plus publication_records remain required after real publication."
    },
    {
      "date": "2026-06-24",
      "id": "campaign-approval-prep-control",
      "type": "content_operations",
      "urls": [
        "Doku/Marketing/Jahreskampagne_2026_2027/campaign-publication-state.json",
        "Doku/Marketing/Jahreskampagne_2026_2027/_generated/approval-prep.md",
        "data/campaign-approval-prep.json",
        "data/campaign-ops-summary.json",
        "scripts/campaign-ops.mjs",
        "data/ai-content-ops.json"
      ],
      "summary_de": "Die Kampagnen-Pipeline hat jetzt eine Approval-Prep-Kontrolle: 0 ready decisions, 0 missing approval records und 0 export-ready. Sie zeigt erst nach echten Review-Decision-Records, was fuer manuelle Approval Records vorbereitet werden muss.",
      "summary_en": "The campaign pipeline now has approval prep control: 0 ready decisions, 0 missing approval records and 0 export-ready. It only shows what needs manual approval-record preparation after real review decision records exist.",
      "safety_boundary": "Approval preparation only; no automatic publishing, no approval record, no export package, no final post copy, no patient data, no invented practice facts, no diagnosis, healing, availability, review, reimbursement or treatment-outcome claim.",
      "review_gate": "Use approval prep only after a review_decision_record is approved_for_approval_record; approval_records still require reviewed final copy, explicit channels, all gates and manual entry."
    },
    {
      "date": "2026-06-24",
      "id": "campaign-review-decision-inbox",
      "type": "content_operations",
      "urls": [
        "Doku/Marketing/Jahreskampagne_2026_2027/review-decision-inbox.json",
        "Doku/Marketing/Jahreskampagne_2026_2027/_generated/review-inbox.md",
        "data/campaign-review-inbox-status.json",
        "data/campaign-ops-summary.json",
        "scripts/campaign-ops.mjs",
        "data/ai-content-ops.json"
      ],
      "summary_de": "Die Kampagnen-Pipeline hat jetzt eine Review-Decision-Inbox: 0 pending decisions, 0 ready-for-approval-record und kein Auto-Apply. Der oeffentliche Status zeigt nur sichere Zaehler und keine finale Copy.",
      "summary_en": "The campaign pipeline now has a review decision inbox: 0 pending decisions, 0 ready-for-approval-record and no auto-apply. The public status exposes only safe counts and no final copy.",
      "safety_boundary": "Review decision intake only; no automatic publishing, no approval record, no export package, no final post copy, no patient data, no invented practice facts, no diagnosis, healing, availability, review, reimbursement or treatment-outcome claim.",
      "review_gate": "Use this inbox only after genuine human review; validated decisions still need deliberate manual import into review_decision_records and separate approval_records before any export."
    },
    {
      "date": "2026-06-24",
      "id": "campaign-action-feed-operator-queue",
      "type": "content_operations",
      "urls": [
        "Doku/Marketing/Jahreskampagne_2026_2027/campaign-publication-state.json",
        "Doku/Marketing/Jahreskampagne_2026_2027/_generated/action-feed.md",
        "data/campaign-action-feed.json",
        "data/campaign-ops-summary.json",
        "scripts/campaign-ops.mjs",
        "data/ai-content-ops.json"
      ],
      "summary_de": "Die Kampagnen-Pipeline erzeugt nun einen public-safe Action Feed: 48 Operator-Aufgaben, 1 faellig, 1 in den naechsten 7 Tagen, 3 in den naechsten 30 Tagen und 0 aktuell publishbar.",
      "summary_en": "The campaign pipeline now generates a public-safe action feed: 48 operator actions, 1 due now, 1 in the next 7 days, 3 in the next 30 days and 0 currently publishable.",
      "safety_boundary": "Operator routing only; no automatic publishing, no approval record, no export package, no final post copy, no platform credentials, no patient data, no invented practice facts, no diagnosis, healing, availability, review, reimbursement or treatment-outcome claim.",
      "review_gate": "Run campaign validation, audit and build; use the action feed only to route review, approval, release or sync work, never as approval evidence or publication permission."
    },
    {
      "date": "2026-06-24",
      "id": "campaign-go-live-control-launch-gates",
      "type": "content_operations",
      "urls": [
        "Doku/Marketing/Jahreskampagne_2026_2027/campaign-publication-state.json",
        "Doku/Marketing/Jahreskampagne_2026_2027/_generated/go-live-control.md",
        "data/campaign-go-live-control.json",
        "data/campaign-ops-summary.json",
        "scripts/campaign-ops.mjs",
        "data/ai-content-ops.json"
      ],
      "summary_de": "Die Kampagnen-Pipeline erzeugt nun eine public-safe Go-Live-Kontrolle: 48 Slots brauchen weiter Human Review, 0 Slots sind publishbar, 48 Exportpakete und 48 Publikationsnachweise fehlen bewusst bis echte Freigaben vorliegen.",
      "summary_en": "The campaign pipeline now generates a public-safe go-live control: 48 slots still need human review, 0 slots can be published, and 48 export packages plus 48 publication records remain intentionally missing until real approvals exist.",
      "safety_boundary": "Launch control only; no automatic publishing, no approval record, no export package, no publication record, no final post copy, no copy hashes, no platform credentials, no patient data, no invented practice facts, no diagnosis, healing, availability, review, reimbursement or treatment-outcome claim.",
      "review_gate": "Run campaign validation, audit and build; use go-live control only to see blockers. After approval_records and matching export packages, deliberate human release authorization is still required before manual publication; the gate is not approval evidence, does not publish and creates no publication_records."
    },
    {
      "date": "2026-06-24",
      "id": "campaign-review-workbench-capture",
      "type": "content_operations",
      "urls": [
        "Doku/Marketing/Jahreskampagne_2026_2027/campaign-publication-state.json",
        "Doku/Marketing/Jahreskampagne_2026_2027/_generated/review-workbench.md",
        "data/campaign-review-workbench.json",
        "data/campaign-ops-summary.json",
        "scripts/campaign-ops.mjs",
        "data/ai-content-ops.json"
      ],
      "summary_de": "Die Kampagnen-Pipeline erzeugt nun eine public-safe Review-Workbench: 4 aktive Juli-Formulare, 1 davon faellig, 11 Gate-Checks und 9 Channel-Checks helfen, menschliche Review-Entscheidungen strukturiert zu erfassen.",
      "summary_en": "The campaign pipeline now generates a public-safe review workbench: 4 active July forms, 1 due now, 11 gate checks and 9 channel checks help capture human review decisions in a structured way.",
      "safety_boundary": "Review capture only; no automatic publishing, no approval record, no export package, no final post copy, no platform credentials, no patient data, no invented practice facts, no diagnosis, healing, availability, review, reimbursement or treatment-outcome claim.",
      "review_gate": "Run campaign validation, audit and build; use the workbench only to capture human review outcomes, then create separate approval_records after genuine approval."
    },
    {
      "date": "2026-06-24",
      "id": "campaign-execution-cockpit-next-actions",
      "type": "content_operations",
      "urls": [
        "Doku/Marketing/Jahreskampagne_2026_2027/campaign-publication-state.json",
        "Doku/Marketing/Jahreskampagne_2026_2027/_generated/execution-cockpit.md",
        "data/campaign-execution-cockpit.json",
        "data/campaign-ops-summary.json",
        "scripts/campaign-ops.mjs",
        "data/ai-content-ops.json"
      ],
      "summary_de": "Die Kampagnen-Pipeline erzeugt nun ein public-safe Execution-Cockpit: aktueller Stage ist human_review_decision_needed, 48 Slots brauchen eine menschliche Review-Entscheidung, im aktiven Juli-Monat gibt es 4 Operator-Aktionen und 1 davon ist faellig.",
      "summary_en": "The campaign pipeline now generates a public-safe execution cockpit: the current stage is human_review_decision_needed, 48 slots need a human review decision, the active July month has 4 operator actions and 1 is due now.",
      "safety_boundary": "Execution guidance only; no automatic publishing, no approval record, no export package, no final post copy, no platform credentials, no patient data, no invented practice facts, no diagnosis, healing, availability, review, reimbursement or treatment-outcome claim.",
      "review_gate": "Run campaign validation, audit and build; use the cockpit only to find the next allowed operator action, never as approval evidence."
    },
    {
      "date": "2026-06-24",
      "id": "campaign-release-readiness-assets",
      "type": "content_operations",
      "urls": [
        "Doku/Marketing/Jahreskampagne_2026_2027/campaign-publication-state.json",
        "Doku/Marketing/Jahreskampagne_2026_2027/_generated/release-readiness-board.md",
        "Doku/Marketing/Jahreskampagne_2026_2027/_generated/asset-request-template.json",
        "data/campaign-release-readiness.json",
        "scripts/campaign-ops.mjs",
        "data/ai-content-ops.json"
      ],
      "summary_de": "Die Kampagnen-Pipeline erzeugt nun eine public-safe Release-Readiness-Datei, ein internes Release-Readiness-Board und ein Asset-Request-Template: 48 Slots bleiben bis Approval Record blockiert, 0 Slots sind release-ready und im aktiven Juli-Monat gibt es 5 Symbolbild-/Asset-Aufgaben.",
      "summary_en": "The campaign pipeline now generates a public-safe release-readiness file, an internal release-readiness board and an asset request template: 48 slots remain blocked until approval record, 0 slots are release-ready and the active July month has 5 symbolic image / asset tasks.",
      "safety_boundary": "Release preparation only; no automatic publishing, no approval record, no export package, no final post copy, no platform credentials, no patient data, no invented practice facts, no diagnosis, healing, availability, review, reimbursement or treatment-outcome claim.",
      "review_gate": "Run campaign validation, audit and build; prepare symbolic assets only after review and release nothing until approval_records exist."
    },
    {
      "date": "2026-06-24",
      "id": "campaign-decision-log-revision-board",
      "type": "content_operations",
      "urls": [
        "Doku/Marketing/Jahreskampagne_2026_2027/campaign-publication-state.json",
        "Doku/Marketing/Jahreskampagne_2026_2027/_generated/decision-ledger.md",
        "Doku/Marketing/Jahreskampagne_2026_2027/_generated/revision-board.md",
        "data/campaign-decision-log.json",
        "scripts/campaign-ops.mjs",
        "data/ai-content-ops.json"
      ],
      "summary_de": "Die Kampagnen-Pipeline erzeugt nun ein public-safe Decision-Log, ein internes Decision-Ledger und ein Revision-Board: 48 Slots haben noch keinen Decision Record, 0 Changes requested, 0 approved-for-approval-record und 0 Approval Records.",
      "summary_en": "The campaign pipeline now generates a public-safe decision log, an internal decision ledger and a revision board: 48 slots have no decision record yet, 0 changes requested, 0 approved-for-approval-record and 0 approval records.",
      "safety_boundary": "Decision tracking only; no automatic publishing, no approval record, no export package, no final post copy, no patient data, no invented practice facts, no diagnosis, healing, availability, review, reimbursement or treatment-outcome claim.",
      "review_gate": "Run campaign validation, audit and build; decision records may prepare or block approval records but never replace approval_records."
    },
    {
      "date": "2026-06-24",
      "id": "campaign-review-intake-decision-template",
      "type": "content_operations",
      "urls": [
        "Doku/Marketing/Jahreskampagne_2026_2027/campaign-publication-state.json",
        "Doku/Marketing/Jahreskampagne_2026_2027/_generated/review-intake.md",
        "Doku/Marketing/Jahreskampagne_2026_2027/_generated/review-decision-template.json",
        "data/campaign-review-intake.json",
        "scripts/campaign-ops.mjs",
        "data/ai-content-ops.json"
      ],
      "summary_de": "Die Kampagnen-Pipeline erzeugt nun ein public-safe Review-Intake, ein internes Review-Intake-Board und ein Review-Decision-Template: 4 aktive Juli-Review-Requests sind vorbereitet, 48 Slots warten auf Human Review und 0 Slots sind ready-for-decision.",
      "summary_en": "The campaign pipeline now generates a public-safe review intake, an internal review-intake board and a review-decision template: 4 active July review requests are prepared, 48 slots wait for human review and 0 slots are ready for decision.",
      "safety_boundary": "Review-intake operations only; no automatic publishing, no approval record, no final post copy, no patient data, no invented practice facts, no diagnosis, healing, availability, review, reimbursement or treatment-outcome claim.",
      "review_gate": "Run campaign validation, audit and build; use the decision template only to prepare human review, then create approval_records separately only after genuine review."
    },
    {
      "date": "2026-06-24",
      "id": "campaign-review-gate-approval-board",
      "type": "content_operations",
      "urls": [
        "Doku/Marketing/Jahreskampagne_2026_2027/campaign-publication-state.json",
        "Doku/Marketing/Jahreskampagne_2026_2027/_generated/approval-board.md",
        "Doku/Marketing/Jahreskampagne_2026_2027/_generated/approval-record-template.json",
        "data/campaign-review-gate.json",
        "scripts/campaign-ops.mjs",
        "data/ai-content-ops.json"
      ],
      "summary_de": "Die Kampagnen-Pipeline erzeugt nun ein public-safe Review-Gate, ein internes Approval-Board und eine Approval-Record-Vorlage: 48 Slots sind pending review, 0 Approval Records existieren und 0 Slots sind export-ready.",
      "summary_en": "The campaign pipeline now generates a public-safe review gate, an internal approval board and an approval-record template: 48 slots are pending review, 0 approval records exist and 0 slots are export-ready.",
      "safety_boundary": "Review-gate operations only; no automatic publishing, no final post copy, no patient data, no approval evidence, no invented practice facts, no diagnosis, healing, availability, review, reimbursement or treatment-outcome claim.",
      "review_gate": "Run campaign validation, audit and build; copy template records into approval_records only after real human review and keep final copy internal until approved export."
    },
    {
      "date": "2026-06-24",
      "id": "campaign-distribution-plan-ledger",
      "type": "content_operations",
      "urls": [
        "Doku/Marketing/Jahreskampagne_2026_2027/campaign-publication-state.json",
        "Doku/Marketing/Jahreskampagne_2026_2027/_generated/distribution-board.md",
        "Doku/Marketing/Jahreskampagne_2026_2027/_generated/publishing-ledger.md",
        "data/campaign-distribution-plan.json",
        "scripts/campaign-ops.mjs",
        "data/ai-content-ops.json"
      ],
      "summary_de": "Die Kampagnen-Pipeline erzeugt nun einen public-safe Distribution-Plan, ein internes Distribution-Board und ein Publishing-Ledger: Review-, Export- und manuelle Publish-Fenster sind sichtbar, aber 0 Slots sind publish-ready und 0 Publikationen sind geloggt.",
      "summary_en": "The campaign pipeline now generates a public-safe distribution plan, an internal distribution board and a publishing ledger: review, export and manual publish windows are visible, while 0 slots are publish-ready and 0 publications are logged.",
      "safety_boundary": "Distribution planning only; no automatic publishing, no final post copy, no patient data, no tracking parameters by default, no invented practice facts, no diagnosis, healing, availability, review, reimbursement or treatment-outcome claim.",
      "review_gate": "Run campaign validation, audit and build; add publication records only after real manual publication and keep website/data changes aligned with Vercel verification."
    },
    {
      "date": "2026-06-24",
      "id": "campaign-publication-queue-export-gate",
      "type": "content_operations",
      "urls": [
        "Doku/Marketing/Jahreskampagne_2026_2027/campaign-publication-state.json",
        "Doku/Marketing/Jahreskampagne_2026_2027/_generated/publication-queue.md",
        "Doku/Marketing/Jahreskampagne_2026_2027/_generated/exports/README.md",
        "data/campaign-publication-queue.json",
        "scripts/campaign-ops.mjs",
        "data/ai-content-ops.json"
      ],
      "summary_de": "Die Kampagnen-Pipeline hat nun einen Review-/Approval-State und eine Publication-Queue: alle 48 Slots bleiben blockiert, bis explizite Review-Gates, Kanaele und finale Copy als Approval-Record vorliegen.",
      "summary_en": "The campaign pipeline now has a review/approval state and publication queue: all 48 slots stay blocked until explicit review gates, channels and final copy exist as an approval record.",
      "safety_boundary": "Publication pipeline only; no automatic publication, no export of draft seeds, no unreviewed final post copy, no invented practice facts, no diagnosis, healing, availability, review, reimbursement or treatment-outcome claim, and no sensitive health-data collection.",
      "review_gate": "Run campaign validation, audit and build; add approval records only after actual privacy, medical, billing, source and AI visibility review as required by each slot."
    },
    {
      "date": "2026-06-24",
      "id": "campaign-backend-publishing-pipeline",
      "type": "content_operations",
      "urls": [
        "Doku/Marketing/Jahreskampagne_2026_2027/campaign-backend.json",
        "Doku/Marketing/Jahreskampagne_2026_2027/_generated/campaign-dashboard.md",
        "Doku/Marketing/Jahreskampagne_2026_2027/_generated/2026-07-review-packet.md",
        "data/campaign-ops-summary.json",
        "scripts/campaign-ops.mjs",
        "data/ai-content-ops.json"
      ],
      "summary_de": "Die Jahreskampagne hat nun ein strukturiertes Kampagnen-Backend mit 12 Monaten, 48 Draft-Slots, Review-Gates, Guardrail-Tags, internem Dashboard, aktivem Juli-Review-Paket und public-safe Summary.",
      "summary_en": "The year-long campaign now has a structured campaign backend with 12 months, 48 draft slots, review gates, guardrail tags, an internal dashboard, an active July review packet and a public-safe summary.",
      "safety_boundary": "Content-operations backend only; no automatic publication, no unreviewed public post copy, no invented Nicole facts, no opening-hour, review, availability, diagnosis, healing, reimbursement or treatment-outcome claim, and no sensitive health-data collection.",
      "review_gate": "Run campaign validation, audit and build; review draft slots before website, local search, social or AI-summary publication."
    },
    {
      "date": "2026-06-23",
      "id": "contact-credential-trust-copy-governance",
      "type": "contact_trust_governance",
      "urls": [
        "kontakt.html",
        "js/lang.js",
        "data/service-index.json",
        "ai/CONTENT_MAP.md",
        "ai/SOURCE_NOTES.md"
      ],
      "summary_de": "Die Kontaktseite fuehrt die bestaetigte Berufsbezeichnung Nicole Gatz' ruhiger als Trust-Copy: staatlich anerkannte Physiotherapeutin seit 1997, mit Verleihung durch die Bezirksregierung Trier am 23.09.1997.",
      "summary_en": "The contact page now frames Nicole Gatz's supported professional title more clearly as trust copy: state-certified physiotherapist since 1997, awarded by Bezirksregierung Trier on 23 September 1997.",
      "safety_boundary": "Credential-copy governance only; no additional certification, award, review, opening hour, availability, treatment outcome, reimbursement promise or medical claim is added. AI imagery remains symbolic and not Nicole Gatz.",
      "review_gate": "Verify kontakt.html and js/lang.js credential text, service-index credential object, AI/source notes boundaries, symbolic-image disclaimer, audit/build and public Vercel markers."
    },
    {
      "date": "2026-06-23",
      "id": "knowledge-mobile-scan-density",
      "type": "knowledge_mobile_ux",
      "urls": [
        "wissen.html#wissenssuche",
        "css/style.css",
        "js/main.js",
        "data/service-index.json"
      ],
      "summary_de": "Die mobile Wissenssuche fuehrt Schnellpfade und Trust-Hinweise kompakter als horizontale Strips, damit erste geladene Treffer frueher sichtbar und erreichbar werden; Reveal-Abschnitte blenden nun ein, sobald sie wirklich in den Viewport ragen, und direkte Hash-Rueckkehr zur hashlosen Wissensseite wird stabiler.",
      "summary_en": "The mobile knowledge search now keeps quick paths and trust cues as compact horizontal strips so the first loaded results appear and become reachable sooner; reveal sections now appear as soon as they truly enter the viewport, and direct hash returns to the hashless knowledge page are more stable.",
      "safety_boundary": "Mobile UX density and rendering reliability only; the search remains local, sends no search terms, hides no source/privacy model, stores only a local section-return flag for hash navigation, and adds no diagnosis, medical ranking, availability or treatment promise.",
      "review_gate": "Verify mobile wissen.html#wissenssuche: first result distance from the search field, quick/trust horizontal strips, no horizontal document overflow, source/update drawers reachable, no visible opacity-zero reveal edges, direct hash Back/Forward, audit/build and public Vercel markers."
    },
    {
      "date": "2026-06-23",
      "id": "knowledge-hash-forward-target-restore",
      "type": "knowledge_navigation_reliability",
      "urls": [
        "wissen.html",
        "wissen.html#praxisatlas",
        "js/main.js",
        "data/service-index.json"
      ],
      "summary_de": "Hash-Navigation nach Browser Vor/Zurueck prueft den Zielabschnitt nach dem Layout nochmals und scrollt nach, wenn URL-Hash und sichtbarer Abschnitt auseinanderfallen.",
      "summary_en": "Hash navigation after browser Back/Forward now re-checks the target section after layout settles and restores the scroll if the URL hash and visible section drift apart.",
      "safety_boundary": "Navigation reliability only; no diagnosis, no medical ranking, no tracking, no storage and no new practice facts were added.",
      "review_gate": "Verify direct hash loads, Back/Forward to wissen.html#praxisatlas, target visibility, no same-page history trap, no blank sections, audit/build and public Vercel markers."
    },
    {
      "date": "2026-06-23",
      "id": "knowledge-oversized-reveal-visibility",
      "type": "knowledge_reliability",
      "urls": [
        "wissen.html",
        "wissen.html#wissenssuche",
        "js/main.js",
        "data/service-index.json"
      ],
      "summary_de": "Sehr hohe Reveal-Abschnitte der Wissensseite werden nun bereits bei sichtbarer Ueberschneidung eingeblendet, damit die Wissensbasis nicht als grosser leerer Bereich erscheinen kann.",
      "summary_en": "Very tall reveal sections on the knowledge page now become visible as soon as they intersect the viewport so the knowledge base cannot appear as a large blank area.",
      "safety_boundary": "Rendering reliability only; no medical claims, no diagnosis, no new practice facts, no tracking and no data collection were added.",
      "review_gate": "Verify wissen.html on mobile and desktop, oversized reveal parent opacity, no blank sections, Back/Forward behavior, audit/build and public Vercel markers."
    },
    {
      "date": "2026-06-23",
      "id": "appointment-request-brief-wunsch-bridge",
      "type": "appointment_conversion_privacy",
      "urls": [
        "termin.html",
        "termin.html#wunschtermin",
        "css/style.css",
        "js/lang.js",
        "data/service-index.json"
      ],
      "summary_de": "Die Terminseite erhaelt im oberen Kurz-anfragen-Block einen ruhigen Sprung zum bestehenden Wunschdatum-/Rueckruf-Wizard.",
      "summary_en": "The appointment page now adds a calm preferred-date bridge in the upper short-enquiry block, linking to the existing preferred-date callback wizard.",
      "safety_boundary": "Navigation/conversion clarity only; the wizard stays below direct contact, remains a callback request rather than live booking, collects no diagnoses or health details, and adds no availability, reimbursement or treatment promise.",
      "review_gate": "Verify top request-brief bridge, anchor scroll to termin.html#wunschtermin, mobile layout, no live-booking claim, no health-data request, audit/build and public Vercel markers."
    },
    {
      "date": "2026-06-23",
      "id": "knowledge-next-step-query-privacy",
      "type": "knowledge_privacy_conversion",
      "urls": [
        "wissen.html#wissenssuche",
        "js/main.js",
        "data/service-index.json"
      ],
      "summary_de": "Der Next-Step-CTA der aktiven Wissenssuche spiegelt freie Suchbegriffe nicht mehr in der Rueckfrage-Ueberschrift, sondern nutzt neutrale oder breite Cluster-Formulierungen.",
      "summary_en": "The active knowledge-search next-step CTA no longer echoes free-text search terms in the callback heading; it uses neutral or broad cluster wording instead.",
      "safety_boundary": "Privacy/conversion wording only; search still stays local, no query is sent to contact paths, no health details are requested, and no diagnosis, availability, booking or treatment-outcome claim is added.",
      "review_gate": "Verify active knowledge searches on desktop/mobile, next-step title without quoted query text, Wunschtermin bridge without query transfer, callback topic broad only, audit/build and Vercel markers."
    },
    {
      "date": "2026-06-23",
      "id": "july-2026-campaign-routine",
      "type": "content_operations",
      "urls": [
        "Doku/Marketing/Jahreskampagne_2026_2027/13_Juli_2026_Monatsroutine.md",
        "Doku/Marketing/Jahreskampagne_2026_2027/10_Changelog.md",
        "Doku/Marketing/Jahreskampagne_2026_2027/11_Market_Adjustment_Notes.md",
        "data/ai-content-ops.json"
      ],
      "summary_de": "Die Jahreskampagne hat eine erste Juli-2026-Monatsroutine mit vier reviewfaehigen Kandidaten fuer erste Anfrage, Wunschtermin/Rueckruf, WhatsApp-Datenschutz und lokale Wissenssuche.",
      "summary_en": "The year-long campaign now has a first July 2026 monthly routine with four review-ready candidates for first enquiry, preferred-date callback, WhatsApp privacy and local knowledge search.",
      "safety_boundary": "Internal draft routine only; no automatic publication, no live-booking claim, no diagnosis, no healing promise, no sensitive health-data collection, no fake reviews or invented practice facts.",
      "review_gate": "Verify July routine, candidate target URLs, privacy/no-live-booking/AI-visibility review gates, changelog, market notes, AI content-ops markers, audit/build and repository sync."
    },
    {
      "date": "2026-06-23",
      "id": "year-long-marketing-campaign-ops",
      "type": "content_operations",
      "urls": [
        "Doku/Marketing/Jahreskampagne_2026_2027/",
        "data/ai-content-ops.json",
        "ai/CONTENT_OPERATIONS.md"
      ],
      "summary_de": "Eine interne Jahreskampagne Juli 2026 bis Juni 2027 buendelt Strategie, Quartalsthemen, Monatskalender, lokale/private Suchintentionen, Topic-Backlog, Drafts, Bildrichtung, Asset-Checkliste, Review-Workflow, Changelog und Markt-Anpassungsnotizen.",
      "summary_en": "An internal July 2026 to June 2027 campaign folder now collects strategy, quarterly themes, monthly calendar, local/private search intents, topic backlog, drafts, visual direction, asset checklist, review workflow, changelog and market-adjustment notes.",
      "safety_boundary": "Internal planning and review workflow only; no automatic publication, no fake reviews, fake urgency, diagnosis, healing promise, sensitive health-data collection, invented practice facts or AI image representation of Nicole Gatz.",
      "review_gate": "Verify campaign files, service/knowledge page links, review workflow, medical/billing/privacy gates, source/guardrail notes, no invented claims, audit/build and repository sync."
    },
    {
      "date": "2026-06-23",
      "id": "knowledge-wayfinder-transition-hash-fix",
      "type": "knowledge_navigation",
      "urls": [
        "wissen.html",
        "js/main.js",
        "scripts/audit-site.mjs"
      ],
      "summary_de": "Die weiche Abschnittsnavigation der Wissensseite setzt den Ziel-Hash nun erst sichtbar und bewaffnet danach die Rueckkehr-zum-Seitenanfang-Logik, damit Wayfinder-Klicks nicht faelschlich als hashlose Rueckkehr zurueckgesetzt werden.",
      "summary_en": "The knowledge page soft section navigation now applies the destination hash before arming the return-to-top guard, so wayfinder clicks are not mistaken for hashless returns and reset before reaching the target section.",
      "safety_boundary": "Navigation reliability only; no medical, billing, credential, availability, review or treatment-outcome claim is added. No search terms, health details or personal data are collected or transmitted.",
      "review_gate": "Verify local/public wayfinder clicks, soft transition overlay cleanup, direct hash loads, browser Back/Forward, loaded knowledge search results, no blank knowledge sections, audit/build and Vercel markers."
    },
    {
      "date": "2026-06-23",
      "id": "knowledge-static-intent-starters",
      "type": "knowledge_reliability",
      "urls": [
        "wissen.html#wissenssuche",
        "js/lang.js",
        "scripts/audit-site.mjs"
      ],
      "summary_de": "Die Wissenssuche zeigt in der Intent-/Startpunkt-Leiste vor lokalem JSON-Ready nun vier echte lokale Startpfade fuer ersten Termin, Privat/Beihilfe, Datenschutz und Quellenmodell statt leerer Lade-Kacheln.",
      "summary_en": "Before local JSON is ready, the knowledge search intent/starter row now shows four real local starter links for first appointment, private billing/allowance, privacy and source model instead of empty loading tiles.",
      "safety_boundary": "Loading-state reliability only; links are local, collect no data, send no search terms and add no diagnosis, triage, urgency, availability, reimbursement or treatment promise.",
      "review_gate": "Verify pre-ready static intent starter links, local hrefs, no form controls, language keys, JS replacement by live local intent buttons, audit/build and public Vercel markers."
    },
    {
      "date": "2026-06-23",
      "id": "knowledge-pre-ready-source-status",
      "type": "knowledge_reliability",
      "urls": [
        "wissen.html#wissenssuche",
        "js/main.js",
        "js/lang.js",
        "scripts/audit-site.mjs"
      ],
      "summary_de": "Die Wissenssuche zeigt vor lokalem JSON-Ready nun eine kurze nicht-leere Quellen-/Statuszeile, statt eine leere dynamische Quellenzeile stehen zu lassen.",
      "summary_en": "Before local JSON is ready, the knowledge search now shows a short non-empty source/status line instead of leaving the dynamic source line blank.",
      "safety_boundary": "Loading-state clarity only; the line states that starter paths are visible and the source model loads locally. It collects no data, sends no search terms and adds no diagnosis, triage, urgency, availability, reimbursement or treatment promise.",
      "review_gate": "Verify pre-ready source/status line, replacement by live entry/source count after JSON readiness, fallback replacement if JSON fails, language keys, no blank authority row, audit/build and public Vercel markers."
    },
    {
      "date": "2026-06-23",
      "id": "knowledge-static-result-card-scan",
      "type": "knowledge_reliability",
      "urls": [
        "wissen.html#wissenssuche",
        "scripts/audit-site.mjs",
        "data/service-index.json"
      ],
      "summary_de": "Die drei sofort sichtbaren Wissens-Startkarten nutzen nun denselben Scan-Kartenkopf mit lokaler Position und Ergebnisart wie die geladenen Wissens-Treffer.",
      "summary_en": "The three immediately visible knowledge starter cards now use the same scan card header with local position and result type as the loaded knowledge results.",
      "safety_boundary": "Loading and consistency change only; starter cards remain approved local links, collect no data, send no search terms and add no diagnosis, triage, urgency, availability, reimbursement or treatment promise.",
      "review_gate": "Verify static starter cards before local JSON readiness, scan headers 01-03, safe local links only, no collection controls, JS replacement by full local search, Back/Forward, audit/build and public Vercel markers."
    },
    {
      "date": "2026-06-23",
      "id": "knowledge-mobile-result-card-scan",
      "type": "knowledge_mobile_ux",
      "urls": [
        "wissen.html#wissenssuche",
        "js/main.js",
        "css/style.css",
        "data/service-index.json"
      ],
      "summary_de": "Mobile Wissens-Treffer erhalten eine kompaktere Scan-Struktur mit Trefferposition, Quellen-/Typ-Einordnung und kuerzeren horizontalen Tag-/Quellenleisten.",
      "summary_en": "Mobile knowledge results now have a more compact scan structure with result position, source/type orientation and shorter horizontal tag/source strips.",
      "safety_boundary": "Mobile usability change only; source chips, type context and broad callback actions remain visible, no search term or health detail is sent, and no diagnosis, triage, ranking promise, availability or treatment outcome is added.",
      "review_gate": "Verify active mobile knowledge results show rank/type headers, visible source chips, compact tag/source rails, topic-safe callback labels, no horizontal document overflow, Back/Forward, audit/build and public Vercel markers."
    },
    {
      "date": "2026-06-23",
      "id": "knowledge-next-wunschtermin-bridge",
      "type": "knowledge_conversion",
      "urls": [
        "wissen.html#wissenssuche",
        "termin.html#wunschtermin",
        "js/main.js",
        "data/service-index.json"
      ],
      "summary_de": "Aktive Wissenssuchen und Filter zeigen im sicheren Next-Step-Bereich nun einen direkten Link zum Wunschdatum-/Rueckruf-Wizard.",
      "summary_en": "Active knowledge searches and filters now show a direct link to the preferred-date callback wizard in the safe next-step area.",
      "safety_boundary": "Conversion usability change only; the link passes no search term or health detail, the wizard remains a callback request rather than live booking, and no diagnosis, availability, treatment or reimbursement promise is added.",
      "review_gate": "Verify active knowledge search/filter next-step link to termin.html#wunschtermin, no neutral-state pressure, no search-term transfer, callback/privacy wording, mobile layout, Back/Forward, audit/build and public Vercel markers."
    },
    {
      "date": "2026-06-23",
      "id": "knowledge-mobile-authority-drawers",
      "type": "knowledge_mobile_ux",
      "urls": [
        "wissen.html#wissenssuche",
        "js/main.js",
        "css/style.css",
        "data/service-index.json"
      ],
      "summary_de": "Auf kleinen Bildschirmen werden Quellen-Kompass und Wissensstand in der Wissenssuche als kompakte aufklappbare Trust-Zeilen gerendert, damit die ersten Treffer naeher am Suchfeld bleiben.",
      "summary_en": "On small screens, the source compass and knowledge-status feed in the knowledge search render as compact expandable trust rows so first results stay closer to the search field.",
      "safety_boundary": "Mobile usability change only; source and update transparency remain accessible as local details elements, no content is hidden for SEO, no search terms or health details are collected, and no diagnosis, triage, availability or treatment promise is added.",
      "review_gate": "Verify mobile authority drawers closed by default, expandable source/update content, desktop drawers open, first results closer to the search field, no horizontal overflow, Back/Forward, audit/build and public Vercel markers."
    },
    {
      "date": "2026-06-23",
      "id": "knowledge-mobile-concern-atlas-rails",
      "type": "knowledge_mobile_ux",
      "urls": [
        "wissen.html#anliegen-navigator",
        "wissen.html#praxisatlas",
        "css/style.css",
        "data/service-index.json"
      ],
      "summary_de": "Auf kleinen Bildschirmen werden Anliegen-Navigator und Praxisatlas nun als horizontale, snapbare Karten-Rails dargestellt, damit die Wissensseite nicht mehrere Bildschirmhoehen vor der Suche und den naechsten Pfaden blockiert.",
      "summary_en": "On small screens, the concern navigator and practice atlas now render as horizontal snap card rails so the knowledge page does not block several viewport heights before search and next paths.",
      "safety_boundary": "Mobile usability change only; all cards remain visible local links/actions, no content is hidden for SEO, no health details are collected, and no diagnosis, triage, availability or treatment promise is added.",
      "review_gate": "Verify mobile concern navigator and atlas rails, snap scrolling, no horizontal document overflow, visible cards/actions, knowledge search still loads, Back/Forward, audit/build and public Vercel markers."
    },
    {
      "date": "2026-06-23",
      "id": "knowledge-section-replace-history",
      "type": "knowledge_navigation",
      "urls": [
        "wissen.html",
        "js/main.js",
        "data/service-index.json",
        "data/ai-content-ops.json"
      ],
      "summary_de": "Abschnittswechsel auf der Wissensseite aktualisieren den sichtbaren Hash nun per replaceState statt einen zusaetzlichen Same-Page-History-Eintrag zu erzeugen.",
      "summary_en": "Knowledge-page section changes now update the visible hash with replaceState instead of creating an additional same-page history entry.",
      "safety_boundary": "Navigation reliability only; direct hash URLs remain usable, Browser Back returns to the previous real page, and the change adds no tracking, storage of search terms, diagnosis, medical claim or contact-data collection.",
      "review_gate": "Verify section links, direct hash loads, Browser Back/Forward from a section, no same-page history trap, no blank knowledge sections, no stuck transition overlay, audit/build and public Vercel markers."
    },
    {
      "date": "2026-06-23",
      "id": "concern-static-first-paths",
      "type": "knowledge_reliability",
      "urls": [
        "wissen.html#anliegen-navigator",
        "css/style.css",
        "scripts/audit-site.mjs",
        "data/service-index.json"
      ],
      "summary_de": "Der Anliegen-Navigator zeigt vor dem lokalen JSON-Ready nun vier echte Startpfade fuer Kiefer/Nacken, Ruecken/Haltung, Beckenboden/Rueckbildung und Erstklaerung statt nur Lade-Skeletons.",
      "summary_en": "Before local JSON is ready, the concern navigator now shows four real starter paths for jaw/neck, back/posture, pelvic floor/postnatal recovery and first clarification instead of skeletons only.",
      "safety_boundary": "Reliability and orientation change only; the starter cards link to existing approved pages, collect no health details, add no backend, tracking, diagnosis, triage, appointment availability signal or treatment promise.",
      "review_gate": "Verify initial concern-navigator render before/after local JSON readiness, starter-card links, JS replacement by the full local concern navigator, no stacked skeletons, no collection controls, no-JavaScript fallback, mobile render, Back/Forward, audit/build and public Vercel markers."
    },
    {
      "date": "2026-06-23",
      "id": "knowledge-anchor-history-settle-lock",
      "type": "knowledge_navigation",
      "urls": [
        "wissen.html",
        "js/main.js",
        "data/service-index.json"
      ],
      "summary_de": "Die Wissensseite nutzt fuer die hashlose Rueckkehr von Abschnittsankern nun einen wiederholten Top-Restore-Waechter plus hashlose Ladeabsicherung, damit Browser-Spaetrestores die Seite nicht unten im alten Abschnitt stehen lassen.",
      "summary_en": "For hashless returns from section anchors, the knowledge page now uses a repeated top-restore guard plus a hashless load guard so late browser scroll restoration does not leave the page at the old section.",
      "safety_boundary": "History-navigation reliability only; the guard is local, time-limited and canceled by user input. It adds no tracking, backend request, diagnosis, medical claim, search-term persistence or contact-data collection.",
      "review_gate": "Verify wayfinder click to a late knowledge section, browser Back or hashless reload to wissen.html near the top, browser Forward back to the section, no blank sections, no stuck transition overlay, knowledge cards loaded, mobile render, audit/build and public Vercel markers."
    },
    {
      "date": "2026-06-23",
      "id": "knowledge-static-first-results",
      "type": "knowledge_reliability",
      "urls": [
        "wissen.html#wissenssuche",
        "scripts/audit-site.mjs",
        "data/service-index.json"
      ],
      "summary_de": "Die Wissenssuche zeigt vor dem lokalen JSON-Ready nun drei echte Startpfade fuer ersten Termin, Privat/Beihilfe und Datenschutz statt nur Ergebnis-Skeletons.",
      "summary_en": "Before local JSON is ready, the knowledge search now shows three real starter paths for first appointment, private billing/allowance and privacy instead of result skeletons only.",
      "safety_boundary": "Reliability and orientation change only; the starter cards link to existing approved pages, collect no health details, add no backend, tracking, diagnosis, triage, availability signal or billing promise.",
      "review_gate": "Verify initial knowledge-search render before/after local JSON readiness, starter-card links, JS replacement by the full local search, no blank result area, no collection controls, mobile render, Back/Forward, audit/build and public Vercel markers."
    },
    {
      "date": "2026-06-23",
      "id": "knowledge-anchor-history-pending-top-restore",
      "type": "knowledge_navigation",
      "urls": [
        "wissen.html",
        "js/main.js",
        "data/service-index.json"
      ],
      "summary_de": "Die Wissensseite stabilisiert Browser-Zurueck von Abschnittsankern zur hashlosen Seite nun mit einem hashlosen Top-History-Eintrag und einem kurzen Pending-Waechter, damit Besucher nicht visuell im alten Abschnitt stehen bleiben.",
      "summary_en": "The knowledge page now stabilizes browser Back from section anchors to the unanchored page with a hashless top history entry and a short pending top-restore guard, so visitors do not visually remain stranded in the previous section.",
      "safety_boundary": "Navigation reliability fix only; no tracking, analytics, backend call, diagnosis, medical claim, search-term persistence or additional contact-data collection is added.",
      "review_gate": "Verify wayfinder click to a late knowledge section, browser Back to hashless wissen.html near the top, browser Forward back to the section, no blank sections, no stuck overlay, preserved local search state, audit/build and public Vercel markers."
    },
    {
      "date": "2026-06-23",
      "id": "knowledge-public-content-ops-roadmap",
      "type": "ai_visibility",
      "urls": [
        "wissen.html#wissenspflege",
        "data/ai-content-ops.json",
        "data/knowledge-index.json",
        "llms-full.txt"
      ],
      "summary_de": "Die Wissensseite zeigt nun eine sichtbare Wissenspflege-Roadmap mit Update-Kadenz, naechsten Themen, Review-Grenzen und Links zu den lokalen Content-Operations-Daten.",
      "summary_en": "The knowledge page now shows a visible knowledge-maintenance roadmap with update cadence, next topics, review gates and links to the local content-operations data.",
      "safety_boundary": "The roadmap is transparency and publishing governance only. It is not medical advice, not a diagnosis, not an appointment-availability signal and not a promise that every planned topic will be published.",
      "review_gate": "Verify wissen.html#wissenspflege on desktop/mobile, language switching, knowledge-index searches for Wissenspflege/Themenplan/Review Gate, no diagnosis or publication promise, audit/build and public Vercel render after deployment."
    },
    {
      "date": "2026-06-23",
      "id": "source-registry-reachability-maintenance",
      "type": "source_governance",
      "urls": [
        "ressourcen-quellen-kompass.html#quellenpflege",
        "data/source-notes.json",
        "scripts/check-source-links.mjs"
      ],
      "summary_de": "Der Ressourcen- und Quellen-Kompass zeigt nun die Quellenpflege sichtbar: 59 Quellenhinweise, 7 Rollen und technischer Linkcheck am 23.06.2026 mit 57 direkt abrufbaren URLs, 2 automatisiert eingeschraenkten Antworten und 0 echten Fehlschlaegen.",
      "summary_en": "The resource and source compass now shows source maintenance visibly: 59 source notes, 7 roles and a technical link check on 2026-06-23 with 57 directly fetchable URLs, 2 automated restricted responses and 0 true failures.",
      "safety_boundary": "Technical fetchability or restricted automated responses are not medical review, endorsement, freshness guarantee, resource recommendation, diagnosis, treatment promise or purchase advice.",
      "review_gate": "Verify source maintenance panel, source-notes maintenance metadata, optional source link audit, no recommendation wording, no blank sections, no overflow, audit/build and public Vercel render after deployment."
    },
    {
      "date": "2026-06-23",
      "id": "knowledge-local-access-result-types",
      "type": "knowledge_navigation",
      "urls": [
        "wissen.html#wissenssuche",
        "data/knowledge-index.json",
        "js/main.js"
      ],
      "summary_de": "Lokale Treffer fuer Startseite, Kontakt und Anfahrt nutzen nun eigene Ergebnisarten und klare Oeffnen-Aktionen statt generischer Wissens-, Guide- oder Datenschutz-Typen.",
      "summary_en": "Local results for homepage, contact and directions now use dedicated result types and clear open actions instead of generic knowledge, guide or privacy types.",
      "safety_boundary": "Navigation semantics only. No new practice facts, opening hours, availability, reviews, diagnoses, treatment promises, tracking or personal-data collection are added.",
      "review_gate": "Verify searches for Physio-Trudering, Kontakt and Anfahrt on desktop/mobile, result-type map labels, open-action labels, local URLs, no blank sections, no overflow, audit/build and public Vercel render after deployment."
    },
    {
      "date": "2026-06-23",
      "id": "knowledge-local-access-contact-index",
      "type": "knowledge_navigation",
      "urls": [
        "wissen.html#wissenssuche",
        "data/knowledge-index.json",
        "js/main.js",
        "index.html",
        "kontakt.html",
        "anfahrt.html",
        "kinder-haltung-physiotherapie.html"
      ],
      "summary_de": "Die Wissenssuche deckt nun auch Startseite, Kontakt/Praxisdaten, Anfahrt und die Kinder/Haltung-Leistungsseite als quellengebundene lokale Einstiege ab; Trefferaktionen benennen den lokalen Inhaltstyp genauer.",
      "summary_en": "The knowledge search now also covers the homepage, contact/practice details, directions and the children/posture service page as source-linked local entry points; result actions now name the local content type more clearly.",
      "safety_boundary": "The entries index already published local practice pages only. They add no new opening hours, reviews, credentials, availability, diagnosis, treatment promise or external data collection.",
      "review_gate": "Verify searches for Anfahrt, Kontakt, Physio-Trudering and Kinder Haltung on desktop/mobile; ensure all entries have local URLs, source IDs, no blank sections, no overflow, audit/build and public Vercel render after deployment."
    },
    {
      "date": "2026-06-23",
      "id": "knowledge-visible-update-feed",
      "type": "knowledge_trust",
      "urls": [
        "wissen.html#wissenssuche",
        "data/site-updates.json",
        "js/main.js",
        "css/style.css"
      ],
      "summary_de": "Die Wissenssuche zeigt nun einen sichtbaren Wissensstand aus dem lokalen Update-Feed, damit Pflege, Quellenarbeit und Sicherheitsgrenzen für Besucher nachvollziehbarer werden.",
      "summary_en": "The knowledge search now shows a visible knowledge status from the local update feed so maintenance, source work and safety boundaries are easier for visitors to understand.",
      "safety_boundary": "The visible update feed is transparency content only. It is not medical advice, does not imply freshness of individual clinical claims and adds no tracking, backend search or personal data collection.",
      "review_gate": "Verify visible update panel on desktop/mobile, local feed link, source-model link, language rendering, no blank sections, no overflow, audit/build and public Vercel render after deployment."
    },
    {
      "date": "2026-06-23",
      "id": "knowledge-no-result-recovery-privacy",
      "type": "knowledge_navigation",
      "urls": [
        "wissen.html#wissenssuche",
        "js/main.js",
        "css/style.css",
        "data/service-index.json"
      ],
      "summary_de": "Nulltreffer in der Wissenssuche zeigen nun einen klaren lokalen Status, sichere Suchhinweise, einen Datenschutzhinweis, Reset, breiten Anliegen-Start und Rückruf ohne Gesundheitsdetails.",
      "summary_en": "No-result knowledge searches now show a clear local status, safe search hints, a privacy note, reset, broad concern start and callback without health details.",
      "safety_boundary": "A missing result is not a medical signal, diagnosis, triage result or severity indicator. Search terms remain local in the browser session and no backend search or tracking is added.",
      "review_gate": "Verify desktop/mobile no-result search, visible empty panel, local privacy note, reset and broad concern actions, no blank sections, no overflow, audit/build and public Vercel render after deployment."
    },
    {
      "date": "2026-06-23",
      "id": "footer-positive-premium-wording",
      "type": "site_copy",
      "urls": [
        "*.html",
        "js/lang.js",
        "scripts/audit-site.mjs"
      ],
      "summary_de": "Der Footer-Fallback nutzt nun die positivere Premium-Formulierung Privatpraxis · Physiotherapie mit Zeit & Sorgfalt auf allen HTML-Seiten.",
      "summary_en": "The footer fallback now uses the more positive premium wording Private practice · physiotherapy with time and care across all HTML pages.",
      "safety_boundary": "Copy refinement only; billing boundaries remain visible in the dedicated appointment, billing and knowledge content. No new medical claim, credential, opening time, review or service promise is added.",
      "review_gate": "Verify no old footer fallback remains, audit/build pass, public Vercel footer updates and Back/Forward navigation keeps knowledge search and appointment wizard sections rendered."
    },
    {
      "date": "2026-06-23",
      "id": "knowledge-result-type-map",
      "type": "knowledge_navigation",
      "urls": [
        "wissen.html#wissenssuche",
        "js/main.js",
        "css/style.css",
        "data/service-index.json"
      ],
      "summary_de": "Aktive Suchen und Filter zeigen nun eine lokale Ergebnis-Landkarte, die sichtbar macht, ob Treffer Wissenspfade, Leistungen, Datenschutz, Abrechnung, Grenzen oder Quellenmodell enthalten.",
      "summary_en": "Active searches and filters now show a local result map that makes visible whether results contain knowledge paths, services, privacy, billing, boundaries or source-model entries.",
      "safety_boundary": "Local orientation UI only; the type map is not diagnosis, triage, ranking, treatment advice, tracking, backend search or a request for sensitive health data.",
      "review_gate": "Verify active search/filter state, neutral hidden state, mobile horizontal result-type strip, no-result hidden state, local audit/build and public Vercel render after deployment."
    },
    {
      "date": "2026-06-23",
      "id": "knowledge-anchor-history-native-hash-entry",
      "type": "knowledge_navigation",
      "urls": [
        "wissen.html",
        "js/main.js",
        "data/service-index.json"
      ],
      "summary_de": "Abschnittswechsel auf der Wissensseite nutzen fuer die URL nun wieder echte Hash-Eintraege, waehrend die weiche Zielblende erhalten bleibt.",
      "summary_en": "Knowledge-page section changes now use native hash entries for the URL again while preserving the soft destination transition.",
      "safety_boundary": "Navigation reliability only; no tracking, analytics, backend call, medical claim, diagnosis, search-term persistence or additional data collection is added.",
      "review_gate": "Verify public wayfinder click, browser Back to empty hash/top, browser Forward to section hash, no blank sections, no stuck overlay and loaded knowledge cards."
    },
    {
      "date": "2026-06-23",
      "id": "knowledge-anchor-history-empty-top-restore",
      "type": "knowledge_navigation",
      "urls": [
        "wissen.html",
        "js/main.js",
        "data/service-index.json"
      ],
      "summary_de": "Zurueck von einem Abschnittsanker zur normalen Wissensseite springt nun bewusst an den Seitenanfang, damit URL und sichtbare Position wieder klar zusammenpassen.",
      "summary_en": "Back from a section anchor to the normal knowledge page now intentionally returns to the top of the page so URL and visible position match clearly again.",
      "safety_boundary": "Deterministic navigation fix only; no tracking, analytics, backend call, medical claim, diagnosis, search-term persistence or additional data collection is added.",
      "review_gate": "Verify public Back/Forward from the wayfinder: empty hash returns near top, forward returns to the section, no blank sections, no visible stuck overlay and no loading holes."
    },
    {
      "date": "2026-06-23",
      "id": "knowledge-anchor-history-hash-observer",
      "type": "knowledge_navigation",
      "urls": [
        "wissen.html",
        "js/main.js",
        "data/service-index.json"
      ],
      "summary_de": "Ein leichter Hash-Beobachter stabilisiert Zurueck/Vor auf der Wissensseite, falls Browser-Events fuer Abschnittsanker nicht rechtzeitig ausreichen.",
      "summary_en": "A lightweight hash observer stabilizes Back/Forward on the knowledge page when browser events for section anchors are not sufficient in time.",
      "safety_boundary": "Navigation-state reliability only; no tracking, analytics, backend call, medical claim, diagnosis, search-term persistence or additional data collection is added.",
      "review_gate": "Verify the public page after deployment: wayfinder anchor click, browser Back to empty hash, browser Forward to section hash, no blank sections and no visible stuck overlay."
    },
    {
      "date": "2026-06-23",
      "id": "knowledge-anchor-history-popstate-restore",
      "type": "knowledge_navigation",
      "urls": [
        "wissen.html",
        "js/main.js",
        "data/service-index.json"
      ],
      "summary_de": "Die Abschnittsanker-Navigation der Wissensseite behandelt nun auch Browser-popstate, damit Zurueck/Vor nach Wegweiser-Klicks die passende Scrollposition wiederherstellt.",
      "summary_en": "The knowledge-page section-anchor navigation now also handles browser popstate so Back/Forward after wayfinder clicks restores the matching scroll position.",
      "safety_boundary": "History navigation fix only; no medical claim, diagnosis, backend request, analytics event, search-term persistence or new conversion data collection is added.",
      "review_gate": "Verify public Back/Forward from the section wayfinder, empty-hash scroll restoration, knowledge-card rendering, loading placeholder state, transition overlay state and horizontal overflow."
    },
    {
      "date": "2026-06-23",
      "id": "knowledge-anchor-history-scroll-restore",
      "type": "knowledge_navigation",
      "urls": [
        "wissen.html",
        "js/main.js",
        "data/service-index.json"
      ],
      "summary_de": "Browser Zurueck von einem Wissensseiten-Abschnittsanker zur normalen Wissensseite stellt nun die gespeicherte Scrollposition wieder her, statt unten am vorherigen Abschnitt stehen zu bleiben.",
      "summary_en": "Browser Back from a knowledge-page section anchor to the unanchored knowledge page now restores the stored scroll position instead of leaving the visitor at the previous section.",
      "safety_boundary": "Navigation reliability only; no new medical claim, diagnosis, search tracking, backend request, persistent search-term storage or conversion pressure is added.",
      "review_gate": "Repeat public Back/Forward checks for section wayfinder transitions, empty-hash restoration, knowledge cards, loading placeholders, callback CTAs, theme state and blank-section detection."
    },
    {
      "date": "2026-06-23",
      "id": "ai-discovery-core-knowledge-data",
      "type": "ai_visibility",
      "urls": [
        "robots.txt",
        "sitemap.xml",
        "data/concern-navigator.json",
        "data/knowledge-index.json",
        "data/service-index.json",
        "data/source-notes.json",
        "llms.txt",
        "llms-full.txt"
      ],
      "summary_de": "Robots, Sitemap, LLM-Kontext und Projektkarten zeichnen jetzt auch die Kern-Datenquellen der Wissensbasis explizit aus: Anliegen-Navigator, suchbarer Wissensindex, Servicekarte und Quellenrollen.",
      "summary_en": "Robots, sitemap, LLM context and project maps now explicitly expose the knowledge base core data sources: concern navigator, searchable knowledge index, service map and source-role registry.",
      "safety_boundary": "Discoverability and governance update only; it republishes already approved local data links and adds no new medical claim, diagnosis, Nicole fact, review claim, backend search, tracking or hidden SEO page.",
      "review_gate": "Verify robots and sitemap contain the core data URLs, llms files describe them, local audit/build pass, and public Vercel fetches return the data files after deployment."
    },
    {
      "date": "2026-06-23",
      "id": "knowledge-noscript-hide-dead-search",
      "type": "knowledge_reliability",
      "urls": [
        "wissen.html#wissenssuche",
        "css/style.css",
        "data/service-index.json"
      ],
      "summary_de": "Ohne JavaScript wird die interaktive Wissenssuche jetzt ausgeblendet, damit kein totes Suchfeld und kein irrefuehrender 0-Eintraege-Zaehler vor dem statischen Wissenspfad-Fallback stehen bleiben.",
      "summary_en": "Without JavaScript, the interactive knowledge search is now hidden so no dead search input or misleading zero-results counter remains above the static knowledge-path fallback.",
      "safety_boundary": "Reliability and accessibility fix only; the visible fallback keeps the same approved local knowledge links and adds no diagnosis, claim, tracking, backend search or hidden SEO content.",
      "review_gate": "Verify no-JS render: search controls hidden, fallback links visible, loading skeletons hidden, structured ItemList present, no horizontal overflow."
    },
    {
      "date": "2026-06-23",
      "id": "knowledge-noscript-crawlable-index",
      "type": "ai_visibility_accessibility",
      "urls": [
        "wissen.html#wissenssuche",
        "data/service-index.json",
        "llms.txt",
        "llms-full.txt"
      ],
      "summary_de": "Die Wissenssuche hat nun einen No-JavaScript-Fallback mit zehn direkt crawlbaren Wissenspfaden und eine strukturierte ItemList fuer die Kern-Wissensseiten.",
      "summary_en": "The knowledge search now has a no-JavaScript fallback with ten directly crawlable knowledge paths and a structured ItemList for the core knowledge pages.",
      "safety_boundary": "Fallback links only to existing approved pages; no hidden/cloaked SEO content, copied medical encyclopedia text, diagnosis, ranking promise, review claim or new Nicole fact is added.",
      "review_gate": "Verify no-JS render, structured ItemList URLs, local audit, public Vercel markers and that fallback content remains consistent with visible approved knowledge pages."
    },
    {
      "date": "2026-06-23",
      "id": "knowledge-mobile-first-result-preview",
      "type": "mobile_usability",
      "urls": [
        "wissen.html#wissenssuche",
        "css/style.css",
        "js/main.js",
        "data/service-index.json"
      ],
      "summary_de": "Die mobile Wissenssuche zeigt direkt unter dem Suchfeld nicht nur eine Treffer-Abkuerzung, sondern den ersten konkreten lokalen Treffer mit Titel, Cluster und Einordnung.",
      "summary_en": "Mobile knowledge search now shows not only a shortcut to results below the search field, but also the first concrete local result with title, cluster and orientation type.",
      "safety_boundary": "Local UI preview only; no remote search, ranking promise, diagnosis, medical recommendation, tracking, backend submission or search-term storage is added.",
      "review_gate": "Repeat mobile neutral search, active search, first-result preview link, first-result scroll cue, Back/Forward, no-overflow and desktop-hidden cue QA after future knowledge-search changes."
    },
    {
      "date": "2026-06-23",
      "id": "knowledge-result-topic-callback-labels",
      "type": "privacy_safe_conversion",
      "urls": [
        "wissen.html#wissenssuche",
        "js/main.js",
        "data/knowledge-index.json",
        "data/service-index.json"
      ],
      "summary_de": "Die Rueckruf-Buttons in den Wissens-Treffern zeigen nun breite Themenlabels wie Kiefer/Nacken, Privat/Beihilfe oder Rueckruf ohne Details, damit Besucher den Kontext verstehen, ohne Gesundheitsdetails einzugeben.",
      "summary_en": "Callback buttons in knowledge results now show broad topic labels such as jaw/neck, private billing or callback without details so visitors understand the context without entering health details.",
      "safety_boundary": "Uses only existing broad cta_topic values; no diagnosis, triage, claim, backend submission, tracking, upload or sensitive health-data request is added.",
      "review_gate": "Repeat mobile and desktop knowledge-result CTA render QA, callback drawer preselected topic QA and no-overflow checks after future knowledge-card or callback changes."
    },
    {
      "date": "2026-06-23",
      "id": "knowledge-mobile-first-result-cue",
      "type": "mobile_usability",
      "urls": [
        "wissen.html#wissenssuche",
        "css/style.css",
        "js/main.js",
        "data/service-index.json"
      ],
      "summary_de": "Die mobile Wissenssuche zeigt direkt unter dem Suchfeld eine lokale Abkuerzung zu den ersten Treffern, damit die grosse Wissensbasis nicht wie ein leerer oder zu langer Bereich wirkt.",
      "summary_en": "The mobile knowledge search now shows a local shortcut to the first results directly below the search field so the large knowledge base does not feel empty or overly long.",
      "safety_boundary": "Local UI navigation only; the cue scrolls within the page and adds no tracking, backend search, diagnosis, medical recommendation, ranking proof or search-term storage.",
      "review_gate": "Repeat mobile neutral search, first-result cue click, active search, Back/Forward and desktop-hidden cue QA after future knowledge-search layout changes."
    },
    {
      "date": "2026-06-23",
      "id": "knowledge-mobile-result-window",
      "type": "mobile_usability",
      "urls": [
        "wissen.html#wissenssuche",
        "js/main.js",
        "data/service-index.json"
      ],
      "summary_de": "Die mobile Wissenssuche startet und erweitert die Trefferliste nun in kleineren lokalen Ergebnisfenstern, damit die grosse Wissensbasis besser scannbar bleibt.",
      "summary_en": "The mobile knowledge search now starts and expands the result list in smaller local result windows so the large knowledge base stays easier to scan.",
      "safety_boundary": "Display pacing only; all entries remain local, searchable and loadable on demand. No diagnosis, ranking proof, tracking, backend logging or search-term storage is added.",
      "review_gate": "Repeat mobile neutral search, show-more, active search, Back/Forward and desktop result-window QA after future knowledge-search changes."
    },
    {
      "date": "2026-06-23",
      "id": "mobile-navigation-closed-state",
      "type": "accessibility_reliability",
      "urls": [
        "css/style.css",
        "js/main.js",
        "wissen.html"
      ],
      "summary_de": "Die mobile Hauptnavigation ist im geschlossenen Zustand nun auch fuer Fokus, Pointer und Screenreader geschlossen, nicht nur optisch eingeklappt.",
      "summary_en": "The mobile primary navigation is now closed for focus, pointer interaction and screen readers while collapsed, not only visually clipped.",
      "safety_boundary": "Navigation reliability and accessibility only; no tracking, medical claim, hidden SEO content or conversion pressure is added.",
      "review_gate": "Repeat mobile closed/open menu, keyboard focus, Back/Forward and knowledge-page render QA after future header or navigation changes."
    },
    {
      "date": "2026-06-23",
      "id": "knowledge-mobile-search-density",
      "type": "mobile_usability",
      "urls": [
        "wissen.html#wissenssuche",
        "css/style.css",
        "js/main.js"
      ],
      "summary_de": "Die mobile Wissenssuche fuehrt Quellenrollen kompakter als horizontale Leiste und zeigt den Naechste-Schritt-Bereich nur bei aktiver Suche oder Filterung, damit der neutrale Start schneller zu Treffern fuehrt.",
      "summary_en": "The mobile knowledge search now keeps source roles in a compact horizontal strip and shows the next-step area only for active searches or filters, so the neutral start reaches results sooner.",
      "safety_boundary": "Presentation and local navigation only; no diagnosis, ranking evidence, tracking, backend logging, URL search parameter or persistent search-term storage.",
      "review_gate": "Repeat neutral and active mobile search-density, result-jump, source-role strip and Back/Forward QA after future knowledge-search layout changes."
    },
    {
      "date": "2026-06-23",
      "id": "knowledge-search-pre-ready-state",
      "type": "knowledge_reliability",
      "urls": [
        "wissen.html#wissenssuche",
        "js/main.js",
        "data/service-index.json"
      ],
      "summary_de": "Fruehe Eingaben in die Wissenssuche und Klicks auf Schnellpfade bleiben jetzt lokal erhalten, wenn die statischen JSON-Daten noch laden, und werden nach Ready angewendet.",
      "summary_en": "Early knowledge-search typing and quick-path clicks are now kept locally while static JSON data is still loading and applied after the module is ready.",
      "safety_boundary": "Pending search state stays in the current page runtime only until local JSON is ready; no backend, analytics, URL parameter, localStorage or sessionStorage is added.",
      "review_gate": "Repeat early-input, quick-path, Back/Forward and no-overflow QA after future knowledge-search loading changes."
    },
    {
      "date": "2026-06-23",
      "id": "knowledge-mobile-source-strip",
      "type": "mobile_usability",
      "urls": [
        "wissen.html#wissenssuche",
        "css/style.css",
        "data/source-notes.json"
      ],
      "summary_de": "Mobile Wissens-Treffer behalten Quellenchips sichtbar, fuehren sie aber als horizontale lokale Quellenleiste, damit Karten kuerzer und leichter scannbar bleiben.",
      "summary_en": "Mobile knowledge results keep source chips visible, but present them as a horizontal local source strip so cards stay shorter and easier to scan.",
      "safety_boundary": "Source chips remain visible orientation metadata only; not endorsement, diagnosis, ranking evidence or outcome proof. No tracking or remote source lookup is added.",
      "review_gate": "Repeat mobile card-density and source-chip accessibility QA after future knowledge-card changes."
    },
    {
      "date": "2026-06-23",
      "id": "knowledge-search-result-jump",
      "type": "mobile_usability",
      "urls": [
        "wissen.html#wissenssuche",
        "js/main.js",
        "css/style.css"
      ],
      "summary_de": "Aktive Wissenssuche und Filter zeigen jetzt einen lokalen Treffer-anzeigen-Sprung, damit mobile Besucher nach Such- oder Filtereingabe schneller zur Ergebnisliste gelangen.",
      "summary_en": "Active knowledge searches and filters now show a local show-results jump so mobile visitors can reach the result list faster after searching or filtering.",
      "safety_boundary": "Local UI navigation only; no diagnosis, ranking evidence, tracking, backend logging, URL search parameter or search-term storage.",
      "review_gate": "Repeat mobile and Back/Forward verification after future knowledge-search layout changes."
    },
    {
      "date": "2026-06-23",
      "id": "knowledge-search-history-state",
      "type": "knowledge_navigation",
      "urls": [
        "wissen.html#wissenssuche",
        "js/main.js",
        "data/service-index.json"
      ],
      "summary_de": "Die lokale Wissenssuche stellt den aktuellen Suchbegriff, Filter und sichtbare Trefferanzahl nach Browser Zurueck/Vor wieder her, ohne URL-Parameter oder Backend.",
      "summary_en": "The local knowledge search restores the current query, filter and visible result count after browser Back/Forward without URL parameters or a backend.",
      "safety_boundary": "Same-tab browser history state only; no backend logging, analytics, URL mutation, localStorage or sessionStorage search-term storage. Clear search removes the restored state.",
      "review_gate": "Repeat browser history verification after future knowledge-search, transition or routing changes."
    },
    {
      "date": "2026-06-23",
      "id": "ai-assisted-safe-appointment-draft",
      "type": "content_operations",
      "urls": [
        "whatsapp-datenschutz-terminfrage.html#ki-assistent",
        "data/ai-appointment-policy.json",
        "data/knowledge-index.json"
      ],
      "summary_de": "Der WhatsApp-/Datenschutz-Kompass erklaert jetzt sichtbar, wie KI-Assistenten eine kurze Termin- oder Rueckrufanfrage vorbereiten duerfen, ohne sensible Gesundheitsdaten einzubeziehen.",
      "summary_en": "The WhatsApp/privacy compass now visibly explains how AI assistants may prepare a short appointment or callback request without including sensitive health data.",
      "safety_boundary": "AI assistants may draft only short non-sensitive appointment text; no sending without explicit consent; no diagnosis, findings, images, insurance documents or sensitive health data.",
      "review_gate": "Low-risk wording from approved AI appointment policy; repeat review before medical, billing or availability claims."
    },
    {
      "date": "2026-06-23",
      "id": "ai-visibility-appointment-policy",
      "type": "ai_visibility",
      "urls": [
        "llms.txt",
        "llms-full.txt",
        "data/ai-appointment-policy.json",
        "data/ai-content-ops.json"
      ],
      "summary_de": "Maschinenlesbare AI-/Termin-Policy und dauerhafte Content-Ops-Planung fuer sichere AI-Sichtbarkeit, klare Termin-/Rueckrufwege und Review-Gates.",
      "summary_en": "Machine-readable AI appointment policy and durable content operations plan for safe AI visibility, clear appointment/callback paths and review gates.",
      "safety_boundary": "No guarantee that AI systems recommend the site; no diagnosis, health-data collection, live booking promise or invented practice facts.",
      "review_gate": "Required for future medical, billing or claim-heavy publication."
    },
    {
      "date": "2026-06-23",
      "id": "history-navigation-transition-qa",
      "type": "quality_verification",
      "urls": [
        "wissen.html#wissenssuche",
        "wissen.html#anliegen-navigator",
        "termin.html#wunschtermin"
      ],
      "summary_de": "Back-/Forward-Navigation mit Abschnittsfade, Wissensdaten, Wunschtermin-Wizard, Callback-Overlay und Theme-State wurde geprueft.",
      "summary_en": "Back/Forward navigation with section fade, knowledge data, preferred-date wizard, callback overlay and theme state was verified.",
      "safety_boundary": "No transition overlay, callback overlay or deferred JavaScript state should leave content hidden after history navigation.",
      "review_gate": "Repeat after future transition, lazy-loading or section-navigation changes."
    },
    {
      "date": "2026-06-23",
      "id": "knowledge-best-next-path",
      "type": "knowledge_navigation",
      "urls": [
        "wissen.html#wissenssuche",
        "data/knowledge-index.json",
        "data/source-notes.json"
      ],
      "summary_de": "Die Wissenssuche zeigt im sicheren Naechste-Schritt-Bereich den passendsten lokalen Einstieg aus der aktuellen Trefferliste.",
      "summary_en": "The knowledge search now shows the most fitting local entry from the current result set inside the safe next-step area.",
      "safety_boundary": "Navigation shortcut only; not triage, diagnosis, personal suitability advice or treatment recommendation.",
      "review_gate": "Low-risk UI/navigation update."
    },
    {
      "date": "2026-06-23",
      "id": "knowledge-source-role-chips",
      "type": "source_governance",
      "urls": [
        "wissen.html#wissenssuche",
        "data/source-notes.json"
      ],
      "summary_de": "Trefferkarten zeigen lokale Quellenrollen direkt in den Quellenchips, z.B. fachliche Orientierung, Praxisgrenzen oder Termin/Abrechnung.",
      "summary_en": "Result cards show local source roles directly in source chips, such as clinical orientation, practice boundaries or appointment/billing.",
      "safety_boundary": "Source role labels are orientation metadata only, not endorsement, ranking or outcome evidence.",
      "review_gate": "Low-risk source-transparency update."
    },
    {
      "date": "2026-06-23",
      "id": "appointment-preferred-date-callback",
      "type": "conversion_privacy",
      "urls": [
        "termin.html#wunschtermin",
        "whatsapp-datenschutz-terminfrage.html"
      ],
      "summary_de": "Terminseite enthaelt einen dreistufigen Wunschdatum-/Rueckruf-Flow fuer Wunschdatum, grobe Wunschzeit, Name, Telefon und Einwilligung.",
      "summary_en": "The appointment page includes a three-step preferred-date callback flow for preferred date, broad time window, name, phone and consent.",
      "safety_boundary": "Frontend-only mailto/direct-contact request; not live booking, no backend storage, no diagnosis, files or sensitive health data.",
      "review_gate": "Privacy-sensitive conversion flow; keep wording reviewed."
    }
  ]
}
