{
  "updated": "2026-08-09",
  "version": "ai-content-ops-v1",
  "purpose": "Durable publishing and update plan for AI visibility, GEO/AEO clarity and citation-worthy patient orientation. This plan does not promise that AI systems will recommend the site.",
  "public_roadmap_url": "wissen.html#wissenspflege",
  "principles": [
    "people-first content before search-engine-first content",
    "crawlable textual content with stable URLs",
    "source-linked updates from approved local data and source notes",
    "no invented Nicole facts, reviews, opening hours, certifications or outcomes",
    "no diagnosis, healing promise, urgency scoring or treatment guarantee",
    "no collection of sensitive health data in content, callback or automation flows",
    "review gate for medical, billing or claim-heavy publication"
  ],
  "cadence": {
    "weekly_light": [
      "refresh data/site-updates.json with implemented low-risk UX, privacy or source-governance changes",
      "validate sitemap freshness for changed public URLs and machine-readable policy files",
      "run local audit and build before publishing"
    ],
    "monthly_editorial": [
      "review topic backlog against source-notes and service-index",
      "prepare one service-linked knowledge page or substantial knowledge-index expansion if sources are ready",
      "review source registry for stale external URLs or policy-sensitive sources",
      "update llms.txt and llms-full.txt summaries when public content changes materially"
    ],
    "quarterly_governance": [
      "audit do-not-claim rules against public pages, JSON-LD, llms files, AI docs and data files",
      "review privacy language for callback, WhatsApp and appointment request flows",
      "check whether any factual practice details need confirmation from Nicole before publication"
    ]
  },
  "marketing_campaign": {
    "folder": "Doku/Marketing/Jahreskampagne_2026_2027/",
    "period": "2026-07 to 2027-06",
    "status": "structured internal campaign backend, full-year draft packages, review preflight, review evidence routing, review decision entry helpers, human review command center, approval record entry helpers, release authorization entry helpers, publication record entry helpers, review-inbox QA, review-import projection, approval-inbox QA, operator calendar/task export and review workflow, not automatic publication",
    "active_month_routine": "Doku/Marketing/Jahreskampagne_2026_2027/13_Juli_2026_Monatsroutine.md",
    "active_month": "2026-07",
    "backend": {
      "source": "Doku/Marketing/Jahreskampagne_2026_2027/campaign-backend.json",
      "publication_state": "Doku/Marketing/Jahreskampagne_2026_2027/campaign-publication-state.json",
      "validator": "scripts/campaign-ops.mjs",
      "public_safe_summary": "data/campaign-ops-summary.json",
      "public_safe_publication_queue": "data/campaign-publication-queue.json",
      "public_safe_distribution_plan": "data/campaign-distribution-plan.json",
      "public_safe_review_gate": "data/campaign-review-gate.json",
      "public_safe_review_intake": "data/campaign-review-intake.json",
      "public_safe_review_workbench": "data/campaign-review-workbench.json",
      "public_safe_review_inbox_status": "data/campaign-review-inbox-status.json",
      "public_safe_review_inbox_qa": "data/campaign-review-inbox-qa.json",
      "public_safe_review_import_projection": "data/campaign-review-import-projection.json",
      "public_safe_review_import_plan": "data/campaign-review-import-plan.json",
      "public_safe_approval_import_plan": "data/campaign-approval-import-plan.json",
      "public_safe_review_session_status": "data/campaign-review-session-status.json",
      "public_safe_review_session_bundle_status": "data/campaign-review-session-bundle-status.json",
      "public_safe_review_session_workbook_status": "data/campaign-review-session-workbook-status.json",
      "public_safe_review_decision_contract": "data/campaign-review-decision-contract.json",
      "public_safe_review_decision_entry_status": "data/campaign-review-decision-entry-status.json",
      "public_safe_approval_prep": "data/campaign-approval-prep.json",
      "public_safe_export_manifest": "data/campaign-export-manifest.json",
      "public_safe_copy_prep": "data/campaign-copy-prep-status.json",
      "public_safe_review_handoff": "data/campaign-review-handoff-status.json",
      "public_safe_decision_log": "data/campaign-decision-log.json",
      "public_safe_release_readiness": "data/campaign-release-readiness.json",
      "public_safe_release_authorization_status": "data/campaign-release-authorization-status.json",
      "public_safe_release_authorization_entry_status": "data/campaign-release-authorization-entry-status.json",
      "public_safe_execution_cockpit": "data/campaign-execution-cockpit.json",
      "public_safe_go_live_control": "data/campaign-go-live-control.json",
      "public_safe_publication_ledger_status": "data/campaign-publication-ledger-status.json",
      "public_safe_publication_inbox_qa": "data/campaign-publication-inbox-qa.json",
      "public_safe_publication_import_plan": "data/campaign-publication-import-plan.json",
      "public_safe_publication_record_entry_status": "data/campaign-publication-record-entry-status.json",
      "public_safe_action_feed": "data/campaign-action-feed.json",
      "public_safe_operator_calendar_status": "data/campaign-operator-calendar-status.json",
      "public_safe_human_review_command_center": "data/campaign-human-review-command-center.json",
      "public_safe_approval_record_entry_status": "data/campaign-approval-record-entry-status.json",
      "generated_dashboard": "Doku/Marketing/Jahreskampagne_2026_2027/_generated/campaign-dashboard.md",
      "active_review_packet": "Doku/Marketing/Jahreskampagne_2026_2027/_generated/2026-07-review-packet.md",
      "internal_publication_queue": "Doku/Marketing/Jahreskampagne_2026_2027/_generated/publication-queue.md",
      "internal_distribution_board": "Doku/Marketing/Jahreskampagne_2026_2027/_generated/distribution-board.md",
      "internal_approval_board": "Doku/Marketing/Jahreskampagne_2026_2027/_generated/approval-board.md",
      "approval_record_template": "Doku/Marketing/Jahreskampagne_2026_2027/_generated/approval-record-template.json",
      "internal_review_intake": "Doku/Marketing/Jahreskampagne_2026_2027/_generated/review-intake.md",
      "review_workbench": "Doku/Marketing/Jahreskampagne_2026_2027/_generated/review-workbench.md",
      "review_decision_inbox": "Doku/Marketing/Jahreskampagne_2026_2027/review-decision-inbox.json",
      "review_inbox_board": "Doku/Marketing/Jahreskampagne_2026_2027/_generated/review-inbox.md",
      "review_inbox_qa_board": "Doku/Marketing/Jahreskampagne_2026_2027/_generated/review-inbox-qa.md",
      "review_decision_template": "Doku/Marketing/Jahreskampagne_2026_2027/_generated/review-decision-template.json",
      "review_import_projection": "Doku/Marketing/Jahreskampagne_2026_2027/_generated/review-import-projection.md",
      "review_import_projection_command": "npm run campaign:review-import:projection",
      "review_import_plan": "Doku/Marketing/Jahreskampagne_2026_2027/_generated/review-import-plan.md",
      "approval_record_inbox": "Doku/Marketing/Jahreskampagne_2026_2027/approval-record-inbox.json",
      "approval_import_plan": "Doku/Marketing/Jahreskampagne_2026_2027/_generated/approval-import-plan.md",
      "review_session_intake": "Doku/Marketing/Jahreskampagne_2026_2027/_generated/review-session-intake.md",
      "review_session_decision_template": "Doku/Marketing/Jahreskampagne_2026_2027/_generated/review-session-decision-template.json",
      "review_session_bundle": "Doku/Marketing/Jahreskampagne_2026_2027/_generated/review-session-bundle.md",
      "review_decision_inbox_scaffold": "Doku/Marketing/Jahreskampagne_2026_2027/_generated/review-decision-inbox-scaffold.json",
      "review_decision_contract": "Doku/Marketing/Jahreskampagne_2026_2027/_generated/review-decision-contract.md",
      "review_decision_inbox_seed": "Doku/Marketing/Jahreskampagne_2026_2027/_generated/review-decision-inbox-seed.json",
      "review_decision_entry_kit": "Doku/Marketing/Jahreskampagne_2026_2027/_generated/review-decision-entry-kit.md",
      "review_decision_entry_sheet": "Doku/Marketing/Jahreskampagne_2026_2027/_generated/review-decision-entry-sheet.json",
      "review_decision_entry_kit_command": "npm run campaign:review-decision:entry-kit",
      "approval_prep_board": "Doku/Marketing/Jahreskampagne_2026_2027/_generated/approval-prep.md",
      "export_manifest_board": "Doku/Marketing/Jahreskampagne_2026_2027/_generated/export-manifest.md",
      "copy_review_deck": "Doku/Marketing/Jahreskampagne_2026_2027/_generated/copy-review-deck.md",
      "human_review_handoff": "Doku/Marketing/Jahreskampagne_2026_2027/_generated/human-review-handoff.md",
      "decision_ledger": "Doku/Marketing/Jahreskampagne_2026_2027/_generated/decision-ledger.md",
      "revision_board": "Doku/Marketing/Jahreskampagne_2026_2027/_generated/revision-board.md",
      "release_readiness_board": "Doku/Marketing/Jahreskampagne_2026_2027/_generated/release-readiness-board.md",
      "asset_request_template": "Doku/Marketing/Jahreskampagne_2026_2027/_generated/asset-request-template.json",
      "release_authorization_board": "Doku/Marketing/Jahreskampagne_2026_2027/_generated/release-authorization-board.md",
      "release_authorization_template": "Doku/Marketing/Jahreskampagne_2026_2027/_generated/release-authorization-template.json",
      "release_authorization_inbox": "Doku/Marketing/Jahreskampagne_2026_2027/release-authorization-inbox.json",
      "release_authorization_entry_kit": "Doku/Marketing/Jahreskampagne_2026_2027/_generated/release-authorization-entry-kit.md",
      "release_authorization_entry_sheet": "Doku/Marketing/Jahreskampagne_2026_2027/_generated/release-authorization-entry-sheet.json",
      "release_authorization_entry_kit_command": "npm run campaign:release-authorization:entry-kit",
      "execution_cockpit": "Doku/Marketing/Jahreskampagne_2026_2027/_generated/execution-cockpit.md",
      "go_live_control": "Doku/Marketing/Jahreskampagne_2026_2027/_generated/go-live-control.md",
      "action_feed": "Doku/Marketing/Jahreskampagne_2026_2027/_generated/action-feed.md",
      "operator_calendar": "Doku/Marketing/Jahreskampagne_2026_2027/_generated/operator-calendar.ics",
      "operator_task_export": "Doku/Marketing/Jahreskampagne_2026_2027/_generated/operator-task-export.csv",
      "human_review_command_center": "Doku/Marketing/Jahreskampagne_2026_2027/_generated/human-review-command-center.md",
      "human_review_command_center_command": "npm run campaign:human-review:command-center",
      "approval_record_entry_kit": "Doku/Marketing/Jahreskampagne_2026_2027/_generated/approval-record-entry-kit.md",
      "approval_record_entry_sheet": "Doku/Marketing/Jahreskampagne_2026_2027/_generated/approval-record-entry-sheet.json",
      "approval_record_entry_kit_command": "npm run campaign:approval-record:entry-kit",
      "publishing_ledger": "Doku/Marketing/Jahreskampagne_2026_2027/_generated/publishing-ledger.md",
      "publication_record_inbox": "Doku/Marketing/Jahreskampagne_2026_2027/publication-record-inbox.json",
      "publication_inbox_qa_board": "Doku/Marketing/Jahreskampagne_2026_2027/_generated/publication-inbox-qa.md",
      "publication_import_plan": "Doku/Marketing/Jahreskampagne_2026_2027/_generated/publication-import-plan.md",
      "publication_record_entry_kit": "Doku/Marketing/Jahreskampagne_2026_2027/_generated/publication-record-entry-kit.md",
      "publication_record_entry_sheet": "Doku/Marketing/Jahreskampagne_2026_2027/_generated/publication-record-entry-sheet.json",
      "publication_record_entry_kit_command": "npm run campaign:publication-record:entry-kit",
      "publication_record_contract": "Doku/Marketing/Jahreskampagne_2026_2027/_generated/publication-record-contract.md",
      "publication_record_template": "Doku/Marketing/Jahreskampagne_2026_2027/_generated/publication-record-template.json",
      "export_directory": "Doku/Marketing/Jahreskampagne_2026_2027/_generated/exports",
      "months": 12,
      "campaign_slots": 48,
      "blocked_slots": 48,
      "pending_review_slots": 48,
      "active_review_intake_requests": 4,
      "active_review_workbench_forms": 4,
      "active_review_workbench_due_now": 1,
      "review_workbench_required_gate_checks": 11,
      "review_workbench_channel_checks": 9,
      "review_inbox_pending_decisions": 0,
      "review_inbox_ready_for_approval_record": 0,
      "review_inbox_qa_active_session_slots": 2,
      "review_inbox_qa_missing_session_decisions": 2,
      "review_inbox_qa_importable_decisions": 0,
      "review_inbox_qa_dry_run_writes_state": false,
      "review_inbox_qa_creates_approval_records": false,
      "public_verify_command": "npm run verify:public",
      "review_import_projection_importable_decisions": 0,
      "review_import_projection_approval_entry_slots": 0,
      "review_import_projection_publishable_now": 0,
      "review_import_projection_writes_state": false,
      "review_import_projection_creates_records": false,
      "review_import_ready": 0,
      "review_import_approval_prep_candidates": 0,
      "review_import_auto_apply_enabled": false,
      "approval_import_ready": 0,
      "approval_import_approved_for_export": 0,
      "approval_import_blocked_records": 0,
      "approval_import_creates_publication_records": false,
      "approval_import_public_final_copy": false,
      "approval_prep_ready_decisions": 0,
      "approval_prep_missing_approval_records": 0,
      "export_manifest_packages_expected": 0,
      "export_manifest_blocked_slots": 48,
      "export_manifest_existing_packages": 0,
      "export_manifest_missing_packages": 0,
      "export_manifest_stale_packages": 0,
      "export_manifest_content_mismatch_packages": 0,
      "export_manifest_exact_match": true,
      "copy_prep_active_channel_candidates": 9,
      "copy_prep_waiting_human_review": 9,
      "copy_prep_visual_concepts_to_review": 5,
      "review_handoff_slots": 2,
      "review_handoff_channel_candidates": 5,
      "review_handoff_gate_checks": 5,
      "review_handoff_visual_concepts": 3,
      "review_session_slots": 2,
      "review_session_due_now": 1,
      "review_session_next_7_days": 1,
      "review_session_gate_checks": 5,
      "review_session_channel_decisions": 5,
      "review_session_bundle_slots": 2,
      "review_session_scaffold_decisions": 2,
      "review_session_draft_package_refs": 5,
      "review_decision_contract_slots": 2,
      "review_decision_contract_gate_decisions": 5,
      "review_decision_contract_channel_decisions": 5,
      "review_decision_entry_slots": 2,
      "review_decision_entry_due_now": 1,
      "review_decision_entry_next_7_days": 1,
      "review_decision_entry_gate_decisions_required": 5,
      "review_decision_entry_channel_decisions_required": 5,
      "review_decision_entry_missing_decisions": 2,
      "review_decision_entry_importable_after_entry": 0,
      "review_decision_entry_creates_review_decision_records": false,
      "review_decision_entry_public_copy": false,
      "review_decision_entry_public_final_copy": false,
      "review_decision_entry_is_approval": false,
      "review_decision_entry_is_publication": false,
      "approval_records_require_review_decision_records": true,
      "ready_for_decision": 0,
      "human_decision_records": 0,
      "changes_requested": 0,
      "approved_for_approval_record": 0,
      "approval_records": 0,
      "release_ready_slots": 0,
      "release_authorizations": 0,
      "release_authorization_ready_slots": 0,
      "release_authorization_manual_release_enabled": false,
      "release_authorization_publication_records_created": false,
      "release_authorization_entry_slots": 0,
      "release_authorization_entry_missing_entries": 0,
      "release_authorization_entry_importable_after_entry": 0,
      "release_authorization_entry_creates_release_records": false,
      "release_authorization_entry_creates_publication_records": false,
      "release_authorization_entry_public_final_copy": false,
      "active_visual_asset_tasks": 5,
      "execution_stage": "human_review_decision_needed",
      "active_execution_due_now": 1,
      "go_live_can_publish_now": 0,
      "go_live_active_due_now": 1,
      "go_live_human_review_needed": 48,
      "go_live_missing_export_packages": 48,
      "go_live_missing_publication_records": 48,
      "publication_ledger_records": 0,
      "publication_ledger_missing_records": 48,
      "publication_ledger_post_publish_sync_needed": 0,
      "publication_ledger_tracking_parameters": 0,
      "publication_inbox_pending_records": 0,
      "publication_import_ready": 0,
      "publication_import_existing_records": 0,
      "publication_import_publishes_content": false,
      "publication_import_sync_imported": false,
      "publication_import_apply_creates_publication_records_only": true,
      "publication_record_entry_slots": 0,
      "publication_record_entry_channels": 0,
      "publication_record_entry_missing_entries": 0,
      "publication_record_entry_importable_after_entry": 0,
      "publication_record_entry_creates_publication_records": false,
      "publication_record_entry_publishes_content": false,
      "publication_record_entry_public_final_copy": false,
      "publication_record_entry_public_copy_hashes": false,
      "action_feed_due_now": 1,
      "action_feed_next_7_days": 1,
      "action_feed_next_30_days": 3,
      "action_feed_can_publish_now": 0,
      "operator_calendar_events": 48,
      "operator_task_export_rows": 48,
      "operator_calendar_immediate_events": 2,
      "operator_calendar_active_month_events": 4,
      "operator_calendar_can_publish_now": 0,
      "human_review_command_center_due_now": 1,
      "human_review_command_center_next_7_days": 1,
      "human_review_command_center_next_30_days": 3,
      "human_review_command_center_active_month_actions": 4,
      "human_review_command_center_command_slots": 5,
      "human_review_command_center_active_entry_slots": 2,
      "human_review_command_center_missing_entry_decisions": 2,
      "human_review_command_center_importable_review_decisions": 0,
      "human_review_command_center_creates_review_decision_records": false,
      "human_review_command_center_creates_approval_records": false,
      "human_review_command_center_creates_publication_records": false,
      "human_review_command_center_public_copy": false,
      "human_review_command_center_public_final_copy": false,
      "approval_record_entry_slots": 0,
      "approval_record_entry_active_month_slots": 0,
      "approval_record_entry_missing_approval_entries": 0,
      "approval_record_entry_importable_after_entry": 0,
      "approval_record_entry_approved_review_decision_records": 0,
      "approval_record_entry_pending_approval_inbox_records": 0,
      "approval_record_entry_creates_approval_records": false,
      "approval_record_entry_creates_publication_records": false,
      "approval_record_entry_creates_export_packages": false,
      "approval_record_entry_public_final_copy": false,
      "approved_export_slots": 0,
      "ready_for_manual_publish": 0,
      "published_or_partly_published": 0,
      "publication_boundary": "No automatic publication and no unreviewed post copy in the public summary. After approval_records and matching export packages, deliberate human release authorization is required before any manual publication record; that gate does not publish or create publication_records, and public status must not expose final copy, patient data, credentials or copy hashes. The publication record entry kit is an evidence-entry helper only after real manual publication; it creates no publication_records and publishes nothing. The publication-record inbox is evidence-only after real manual publication; QA and import dry-runs do not write state, and apply writes publication_records only.",
      "public_safe_draft_package_status": "data/campaign-draft-package-status.json",
      "public_safe_review_preflight_status": "data/campaign-review-preflight-status.json",
      "draft_package_index": "Doku/Marketing/Jahreskampagne_2026_2027/_generated/draft-package-index.md",
      "review_preflight_board": "Doku/Marketing/Jahreskampagne_2026_2027/_generated/review-preflight-board.md",
      "draft_package_directory": "Doku/Marketing/Jahreskampagne_2026_2027/_generated/draft-packages",
      "draft_package_months": 12,
      "draft_package_slots": 48,
      "draft_package_channel_candidates": 73,
      "draft_package_visual_concepts": 38,
      "draft_package_public_copy": false,
      "review_preflight_total_channel_candidates": 73,
      "review_preflight_ready_for_human_review": 73,
      "review_preflight_hard_blocks": 0,
      "review_preflight_missing_gate_coverage": 51,
      "review_preflight_public_copy": false,
      "review_session_workbook": "Doku/Marketing/Jahreskampagne_2026_2027/_generated/review-session-workbook.md",
      "review_session_workbook_slots": 2,
      "review_session_workbook_copy_candidate_blocks": 5,
      "review_session_workbook_gate_rows": 5,
      "review_session_workbook_channel_rows": 5,
      "review_session_workbook_decision_scratchpads": 2,
      "review_session_workbook_public_copy": false,
      "review_session_workbook_is_approval": false,
      "public_safe_approval_inbox_qa": "data/campaign-approval-inbox-qa.json",
      "approval_inbox_qa_board": "Doku/Marketing/Jahreskampagne_2026_2027/_generated/approval-inbox-qa.md",
      "approval_inbox_qa_pending_approvals": 0,
      "approval_inbox_qa_ready_for_manual_import": 0,
      "approval_inbox_qa_approved_review_decisions": 0,
      "approval_inbox_qa_dry_run_writes_state": false,
      "approval_inbox_qa_creates_approval_records": false,
      "approval_inbox_qa_creates_publication_records": false,
      "approval_inbox_qa_creates_export_packages": false,
      "approval_inbox_qa_public_final_copy": false,
      "public_safe_review_evidence_status": "data/campaign-review-evidence-status.json",
      "review_evidence_pack": "Doku/Marketing/Jahreskampagne_2026_2027/_generated/review-evidence-pack.md",
      "active_review_evidence_slots": 4,
      "active_review_evidence_session_slots": 2,
      "active_review_evidence_gate_items": 11,
      "active_review_evidence_ready_slots": 4,
      "active_review_evidence_missing_gate_attention": 0,
      "active_review_evidence_supplemental_attention_slots": 0,
      "public_safe_review_decision_entry_sheet_qa": "data/campaign-review-decision-entry-sheet-qa.json",
      "review_decision_entry_sheet_qa_board": "Doku/Marketing/Jahreskampagne_2026_2027/_generated/review-decision-entry-sheet-qa.md",
      "review_decision_entry_sheet_qa_command": "npm run campaign:review-decision:sheet-qa",
      "review_decision_entry_sheet_apply_command": "npm run campaign:review-decision:sheet-apply",
      "review_decision_entry_sheet_rows": 2,
      "review_decision_entry_sheet_ready_for_inbox_import": 0,
      "review_decision_entry_sheet_placeholders": 2,
      "review_decision_entry_sheet_apply_writes_review_decision_inbox_only": true,
      "review_decision_entry_sheet_apply_creates_review_decision_records": false,
      "review_decision_entry_sheet_qa_public_copy": false,
      "review_decision_entry_sheet_qa_public_final_copy": false
    },
    "active_candidates": [
      "first enquiry without diagnosis or health details",
      "preferred-date callback request, not live booking",
      "WhatsApp short appointment question without sensitive data",
      "local browser knowledge search with no backend search-term transfer"
    ],
    "required_artifacts": [
      "annual strategy and positioning plan",
      "quarterly themes",
      "monthly posting calendar",
      "local/private-patient search-intent map",
      "topic backlog linked to services and knowledge pages",
      "post drafts for website, social, local search and AI discoverability",
      "image concepts and reusable visual directions",
      "campaign asset checklist",
      "publishing and review workflow",
      "structured campaign backend with generated dashboard, active-month review packet, public review gate, public review intake, public review workbench, public review evidence status, public review inbox status, public review inbox QA, public review import projection, public review import plan, public approval-inbox QA, public review session status, public review session bundle status, public review session workbook status, public review decision contract, public approval prep, public approval record entry status, public export manifest, public copy prep status, public draft package status, public review preflight status, public human review handoff status, public decision log, public release readiness, public release authorization status, public release authorization entry status, public execution cockpit, public go-live control, public publication ledger status, public publication inbox QA, public publication import plan, public publication record entry status, public action feed, public operator calendar status, public human review command center, approval board, approval-record template, review-intake board, review workbench, review-decision inbox, review-inbox board, review-inbox QA board, review-decision template, review-import projection, review-import plan, review-session intake, review-session decision template, review-session bundle, review-session workbook, review-decision inbox scaffold, review-decision contract, review-decision inbox seed, approval-record entry kit, approval-record entry sheet, approval-prep board, export-manifest board, copy-review deck, human-review handoff, decision ledger, revision board, release-readiness board, release-authorization board, release-authorization template, release-authorization entry kit, release-authorization entry sheet, release-authorization inbox, publication-record entry kit, publication-record entry sheet, asset-request template, execution cockpit board, go-live control board, action feed board, operator calendar, operator task export, human-review command center, publication queue, distribution board, publishing ledger, publication-record inbox, publication-inbox QA board, publication-import plan, publication-record contract, publication-record template, export-readiness directory and public-safe summaries, review-preflight board",
      "review decision entry kit and editable sheet as internal operator helpers; public status shows only decision-entry progress and counts, not approval or publication",
      "approval record entry kit and editable sheet as internal operator helpers after real approved review decisions; public status shows only zero/ready counts and never exposes final copy or creates records",
      "lightweight changelog",
      "market-adjustment notes over time"
    ],
    "review_boundaries": [
      "no fake reviews, fake urgency, exaggerated claims or copied medical encyclopedia content",
      "no diagnosis, healing promise, urgency scoring or treatment guarantee",
      "no collection or publication request for sensitive health data",
      "AI-generated images may be symbolic but must never represent Nicole Gatz",
      "medical or billing-heavy campaign content requires review before publication",
      "after approval_records and matching export packages, deliberate human release authorization is required before any manual publication record; the gate does not publish, does not create publication_records and public status exposes no final copy, patient data, credentials or copy hashes",
      "release authorization entry kit and editable sheet are internal operator helpers after approval_records and exact matching export packages; the public status exposes only readiness counts and routing, creates no release_authorization_records or publication_records, publishes nothing and exposes no final copy, copy hashes, patient data or platform credentials",
      "publication record entry kit and editable sheet are internal operator helpers after real manual publication; the public status exposes only evidence-entry readiness counts and routing, creates no publication_records, publishes nothing, imports no post-publish sync and exposes no final copy, copy hashes, patient data or platform credentials",
      "publication-record inbox may be used only after real manual publication; QA and import plan expose evidence-readiness counts only, apply writes publication_records only, and no publication, approval record, release authorization or post-publish sync is created automatically",
      "review evidence status and evidence pack route prompts and reconciled gate coverage only; they are not human review, not approval evidence, create no records and expose no copy or final copy",
      "review session bundle and inbox scaffold prepare reviewer handoff only; they are not human review, not approval, not auto-apply and expose no copy or final copy",
      "review session workbook is internal review context only; the public status exposes counts and routing only, while the workbook itself may contain draft candidates for human review but creates no decisions, approval records, export packages or publication records",
      "review decision entry status exposes only decision-entry progress and counts; the internal kit and editable sheet are operator helpers refreshed with npm run campaign:review-decision:entry-kit, not approval, not publication, and public status contains no post copy, final copy, patient data, diagnosis data, platform credentials or sensitive data",
      "operator calendar and task CSV are internal scheduling exports only; public status exposes counts and paths, not approval evidence, final copy, release authorization, platform credentials, patient data or publication permission",
      "human review command center is a public-safe routing summary for due-now, next-7-days and next-30-days human-review actions; it creates no review decisions, approval records, publication records, release authorization, public copy or final copy, and exposes no patient data, platform credentials or sensitive data",
      "approval record entry kit and editable sheet are internal operator helpers after genuine approved review_decision_records; the public status exposes only readiness counts, creates no approval records, export packages or publication records, and must not expose final copy, patient data, platform credentials or sensitive data"
    ]
  },
  "source_registry": {
    "canonical_file": "data/source-notes.json",
    "last_reachability_audit": "2026-06-23",
    "directly_fetchable_source_urls": 57,
    "restricted_but_responding_source_urls": 2,
    "failed_source_urls": 0,
    "public_explanation_url": "ressourcen-quellen-kompass.html#quellenpflege",
    "categories": [
      "practice_context",
      "privacy_contact",
      "health_info_quality",
      "ux_accessibility",
      "local_market",
      "appointment_billing",
      "clinical_orientation"
    ],
    "rules": [
      "new clinical claims require a source note and cautious wording",
      "local competitor sources are for positioning context only, not ranking or review claims",
      "privacy and appointment automation must cite privacy_contact or appointment_billing sources",
      "resource recommendations remain candidates until reviewed"
    ]
  },
  "content_library": {
    "source": "data/content-library.json",
    "admin_url": "admin/content-library.html",
    "documentation": "Doku/Marketing/Jahreskampagne_2026_2027/15_Content_Library_400.md",
    "builder": "scripts/build-content-library.mjs",
    "item_count": 400,
    "base_topic_count": 100,
    "editorial_variant_count": 4,
    "pillar_count": 10,
    "status": "public-safe candidates; no final copy, approval or automatic publication",
    "review_boundary": "Every item must pass its listed review gates. Items marked requires_practice_confirmation stay blocked until Nicole confirms the real offer and operating conditions."
  },
  "topic_backlog": [
    {
      "id": "first-visit-private-self-pay-faq",
      "priority": "high",
      "intent": "private patient first visit questions",
      "target_urls": [
        "erster-termin-privatpraxis.html",
        "termin.html",
        "privatabrechnung-beihilfe-wissen.html"
      ],
      "source_categories": [
        "appointment_billing",
        "privacy_contact"
      ],
      "review_gate": "required before publishing billing-sensitive or policy-sensitive claims"
    },
    {
      "id": "cmd-jaw-neck-appointment-prep",
      "priority": "high",
      "intent": "CMD jaw neck physiotherapy Munich Trudering private",
      "target_urls": [
        "cmd-kiefer-nacken-wissen.html",
        "cmd-kiefer-physiotherapie.html"
      ],
      "source_categories": [
        "clinical_orientation",
        "practice_context",
        "privacy_contact"
      ],
      "review_gate": "required before adding new clinical claims"
    },
    {
      "id": "scoliosis-schroth-home-practice-boundaries",
      "priority": "medium",
      "intent": "scoliosis Schroth orientation private physiotherapy",
      "target_urls": [
        "skoliose-haltung-wissen.html",
        "skoliose-schroth-therapie.html"
      ],
      "source_categories": [
        "clinical_orientation",
        "practice_context"
      ],
      "review_gate": "required before new exercise or outcome claims"
    },
    {
      "id": "whatsapp-callback-privacy-faq",
      "priority": "high",
      "intent": "safe appointment question WhatsApp callback physiotherapy",
      "target_urls": [
        "whatsapp-datenschutz-terminfrage.html",
        "whatsapp-datenschutz-terminfrage.html#ki-assistent",
        "termin.html#wunschtermin"
      ],
      "source_categories": [
        "privacy_contact",
        "appointment_billing"
      ],
      "review_gate": "low-risk updates allowed if copied from approved policy wording"
    },
    {
      "id": "knowledge-base-source-compass-updates",
      "priority": "medium",
      "intent": "how sources are used on the Physio-Trudering website",
      "target_urls": [
        "ressourcen-quellen-kompass.html",
        "wissen.html#wissenssuche"
      ],
      "source_categories": [
        "health_info_quality",
        "ux_accessibility",
        "privacy_contact"
      ],
      "review_gate": "low-risk updates allowed if no new medical claim is added"
    }
  ],
  "local_search_intents": [
    "private physiotherapy Munich Trudering",
    "Physio Trudering private patient appointment",
    "Beihilfe physiotherapy Munich Trudering",
    "self-pay physiotherapy callback Trudering",
    "CMD jaw neck physiotherapy Trudering",
    "Schroth scoliosis physiotherapy Munich east",
    "pelvic floor recovery physiotherapy private appointment",
    "safe WhatsApp appointment question physiotherapy"
  ],
  "automation_policy": {
    "allowed_without_medical_review": [
      "draft site-updates feed entries for already implemented changes",
      "validate URLs, sitemap entries, llms references and JSON syntax",
      "prepare non-medical summaries of published pages",
      "flag stale source URLs or missing source notes",
      "prepare drafts from approved policy wording without publishing",
      "refresh the review decision entry kit, editable sheet and public-safe entry status as operator helpers without creating approval, publication, copy or sensitive data",
      "refresh the approval record entry kit, editable sheet and public-safe entry status as operator helpers only after genuine approved review_decision_records, without creating approval records, export packages, publication records or public final copy",
      "refresh the release authorization entry kit, editable sheet and public-safe entry status as operator helpers only after approval_records and exact matching export packages, without creating release_authorization_records, publication_records, public final copy or copy hashes",
      "refresh the publication record entry kit, editable sheet and public-safe entry status as operator helpers only after real manual publication, without creating publication_records, publishing content, importing post-publish sync, public final copy or copy hashes",
      "validate campaign-backend.json, campaign-publication-state.json, review-decision-inbox.json, approval-record-inbox.json, release-authorization-inbox.json and publication-record-inbox.json and regenerate dashboard, review packet, review gate, review intake, review workbench, review evidence status, review inbox status, review import projection, review import plan, review session status, review session intake, review session decision template, review decision contract, review decision inbox seed, approval record entry status, approval prep, export manifest, copy prep status, human review handoff, decision log, release readiness, release authorization status, release authorization entry status, execution cockpit, go-live control, publication record entry status, publication inbox QA, publication import plan, action feed, operator calendar status, approval board, approval-record template, approval record entry kit, approval record entry sheet, review-intake board, review inbox board, review-decision template, review-import projection, review-import plan, approval-prep board, export-manifest board, copy-review deck, human-review handoff, decision ledger, revision board, release-readiness board, release-authorization board, release-authorization template, release-authorization entry kit, release-authorization entry sheet, publication-record entry kit, publication-record entry sheet, asset-request template, execution cockpit board, go-live control board, publication-inbox QA board, publication-import plan board, action feed board, operator calendar, operator task export, publication queue, distribution board, publishing ledger, export readiness and public-safe campaign summaries without publishing draft post copy"
    ],
    "requires_review_before_publishing": [
      "new clinical explanations",
      "new treatment suitability language",
      "billing or reimbursement interpretation",
      "claims about Nicole, certifications, opening hours, reviews or availability",
      "resource recommendations that could influence purchases or self-treatment",
      "campaign slots moving from draft to approved or published status",
      "any export package that contains final website, local-search, social or AI-summary copy"
    ],
    "never_allowed": [
      "publish invented facts",
      "publish diagnosis or healing promises",
      "collect or process sensitive patient details",
      "auto-send personal data without explicit user consent",
      "generate hidden/cloaked SEO pages"
    ]
  },
  "ai_readable_outputs": [
    "llms.txt",
    "llms-full.txt",
    "data/concern-navigator.json",
    "data/knowledge-index.json",
    "data/service-index.json",
    "data/source-notes.json",
    "data/ai-appointment-policy.json",
    "data/ai-content-ops.json",
    "data/content-library.json",
    "data/site-updates.json",
    "data/campaign-ops-summary.json",
    "data/campaign-publication-queue.json",
    "data/campaign-distribution-plan.json",
    "data/campaign-review-gate.json",
    "data/campaign-review-intake.json",
    "data/campaign-review-workbench.json",
    "data/campaign-review-evidence-status.json",
    "data/campaign-review-inbox-status.json",
    "data/campaign-review-inbox-qa.json",
    "data/campaign-review-import-projection.json",
    "data/campaign-review-import-plan.json",
    "data/campaign-approval-import-plan.json",
    "data/campaign-approval-record-entry-status.json",
    "data/campaign-review-session-status.json",
    "data/campaign-review-session-bundle-status.json",
    "data/campaign-review-session-workbook-status.json",
    "data/campaign-review-decision-contract.json",
    "data/campaign-review-decision-entry-status.json",
    "data/campaign-approval-prep.json",
    "data/campaign-export-manifest.json",
    "data/campaign-copy-prep-status.json",
    "data/campaign-draft-package-status.json",
    "data/campaign-review-handoff-status.json",
    "data/campaign-decision-log.json",
    "data/campaign-release-readiness.json",
    "data/campaign-release-authorization-status.json",
    "data/campaign-release-authorization-entry-status.json",
    "data/campaign-execution-cockpit.json",
    "data/campaign-go-live-control.json",
    "data/campaign-publication-ledger-status.json",
    "data/campaign-publication-inbox-qa.json",
    "data/campaign-publication-import-plan.json",
    "data/campaign-publication-record-entry-status.json",
    "data/campaign-action-feed.json",
    "data/campaign-operator-calendar-status.json",
    "data/campaign-human-review-command-center.json",
    "ai/CONTENT_OPERATIONS.md",
    "data/campaign-review-preflight-status.json",
    "data/campaign-review-inbox-qa.json",
    "data/campaign-approval-inbox-qa.json"
  ],
  "verification_gates": [
    "npm run audit",
    "npm run build",
    "public Vercel fetch for robots.txt, sitemap.xml, llms.txt, llms-full.txt, core knowledge data files and AI policy/data files after deployment",
    "browser or fetch verification for public appointment and knowledge URLs touched by the update",
    "browser Back/Forward verification for section transitions, section hash replaceState behavior without a same-page history trap, direct hash loads, restored same-tab knowledge-search state, pre-ready knowledge-search input, non-empty pre-ready source/status line, static intent starter links before local JSON readiness and JS replacement by the full local intent buttons, static first-result starter cards with scan headers before local JSON readiness and JS replacement by the full local search, static concern starter cards before local JSON readiness and JS replacement by the full local concern navigator, mobile concern navigator and practice atlas horizontal snap rails without document overflow, mobile authority drawers for source/update transparency, knowledge next-step Wunschtermin bridge without search-term transfer, neutral, active and no-result mobile knowledge-search density, visible no-result recovery with local privacy note, visible local knowledge-status update feed, mobile result-window size, mobile first-result cue, mobile first-result preview, no-JavaScript knowledge-path fallback, hidden no-JavaScript dead search controls, structured knowledge ItemList, knowledge result topic-specific callback labels, mobile scan-first result card rank/type headers, active result-type map, result-jump controls, mobile source-chip/source-role strips, closed/open mobile navigation focus state, callback CTAs, theme state and JS-enhanced knowledge/appointment modules",
    "hash Back/Forward restores on wissen.html re-check the requested target section after layout settles so URL hash and visible section stay aligned",
    "oversized reveal containers on long knowledge sections become visible once they intersect the viewport so JS-enhanced content cannot remain hidden as an opacity-zero hole",
    "appointment request-brief bridge links to termin.html#wunschtermin without moving the preferred-date wizard above direct contact, without live-booking wording and without health-data collection",
    "active knowledge-search next-step CTA headings do not echo free-text search queries into callback or preferred-date contact paths",
    "after public content-operations roadmap changes, verify wissen.html#wissenspflege, data/ai-content-ops.json public_roadmap_url, knowledge-index search entries, review-gate wording, no diagnosis or publication promise, no blank sections, mobile render and public Vercel markers",
    "after source registry maintenance changes, verify ressourcen-quellen-kompass.html#quellenpflege, source maintenance metadata, optional source link audit, no recommendation wording, no blank sections and public Vercel render",
    "after local access result-type changes, verify dedicated practice_profile, contact and directions result types, action labels and result-map labels on desktop/mobile",
    "after local access/contact index changes, verify searches for Anfahrt, Kontakt, Physio-Trudering and Kinder Haltung on desktop/mobile, with local URLs, source chips, no blank sections and no personal-data collection",
    "after year-long marketing campaign changes, verify campaign folder files, annual strategy, quarterly themes, monthly calendar, local/private search intents, service-linked topic backlog, post drafts, image direction, asset checklist, publishing/review workflow, changelog, market-adjustment notes, medical/billing/privacy review gates and no invented claims",
    "after campaign backend changes, run npm run campaign:ops or npm run campaign:validate, verify campaign-backend.json, campaign-publication-state.json, review-decision-inbox.json, approval-record-inbox.json, release-authorization-inbox.json, publication-record-inbox.json, generated campaign dashboard, active-month review packet, review gate, review intake, review workbench, review evidence pack, review evidence status, review inbox status, review import projection, review import plan, approval import plan, approval record entry status, review session status, review session bundle status, review session workbook status, review session intake, review session decision template, review session bundle, review session workbook, review decision inbox scaffold, review decision contract, review decision inbox seed, review decision entry kit, review decision entry sheet, review decision entry status, approval record entry kit, approval record entry sheet, approval prep, export manifest, copy prep status, human review handoff, decision log, release readiness, release authorization status, release authorization entry status, execution cockpit, go-live control, publication ledger status, publication record entry status, publication inbox QA, publication import plan, action feed, operator calendar status, human review command center, approval board, approval-record template, review-intake board, review-inbox board, review-decision template, review-import projection, review-import plan, approval-import plan, approval-prep board, export-manifest board, copy-review deck, human-review handoff, decision ledger, revision board, release-readiness board, release-authorization board, release-authorization template, release authorization entry kit, release authorization entry sheet, publication-record entry kit, publication-record entry sheet, publication-inbox QA board, publication-import plan board, action feed board, operator calendar, operator task export, human-review command center board, publication queue, distribution board, publishing ledger, publication-record contract, publication-record template, export README, data/campaign-ops-summary.json, data/campaign-publication-queue.json, data/campaign-distribution-plan.json, data/campaign-review-gate.json, data/campaign-review-intake.json, data/campaign-review-workbench.json, data/campaign-review-evidence-status.json, data/campaign-review-inbox-status.json, data/campaign-review-inbox-qa.json, data/campaign-review-import-projection.json, data/campaign-review-import-plan.json, data/campaign-approval-inbox-qa.json, data/campaign-approval-import-plan.json, data/campaign-approval-record-entry-status.json, data/campaign-review-session-status.json, data/campaign-review-session-bundle-status.json, data/campaign-review-session-workbook-status.json, data/campaign-review-decision-contract.json, data/campaign-review-decision-entry-status.json, data/campaign-approval-prep.json, data/campaign-export-manifest.json, data/campaign-copy-prep-status.json, data/campaign-draft-package-status.json, data/campaign-review-preflight-status.json, data/campaign-review-handoff-status.json, data/campaign-decision-log.json, data/campaign-release-readiness.json, data/campaign-release-authorization-status.json, data/campaign-release-authorization-entry-status.json, data/campaign-execution-cockpit.json, data/campaign-go-live-control.json, data/campaign-publication-ledger-status.json, data/campaign-publication-record-entry-status.json, data/campaign-publication-inbox-qa.json, data/campaign-publication-import-plan.json, data/campaign-action-feed.json, data/campaign-operator-calendar-status.json, data/campaign-human-review-command-center.json, campaign:review-session:bundle for focused bundle/scaffold regeneration, campaign:review-session:workbook for focused internal workbook regeneration, campaign:review-decision:entry-kit for focused entry kit/sheet refresh, campaign:review-import:projection before review import apply, campaign:approval-record:entry-kit for focused approval-record entry kit/sheet refresh, campaign:release-authorization:entry-kit for focused release authorization entry kit/sheet refresh, campaign:publication-record:entry-kit for focused publication-record entry kit/sheet refresh, campaign:operator-calendar for focused ICS/CSV regeneration, campaign:human-review:command-center for focused command-center refresh, campaign:review-import:dry-run before campaign:review-import:apply, campaign:approval-inbox:qa before campaign:approval-import:dry-run, campaign:approval-import:dry-run before campaign:approval-import:apply, campaign:release-authorization:dry-run before campaign:release-authorization:apply, campaign:publication-inbox:qa before campaign:publication-import:dry-run, campaign:publication-import:dry-run before campaign:publication-import:apply, no automatic publication, no unreviewed public post copy, no invented Nicole facts, no diagnosis/healing promise, no sensitive health-data request, no platform credentials, no review-import projection as approval/import/publication permission, no approval record without approved review_decision_record, no approval-record entry kit or sheet as approval/publication permission, no release authorization entry kit or sheet as release/publication permission, no publication-record entry kit or sheet as publication/import permission, no public final-copy from review import projection, approval record entry status, release authorization entry status, publication record entry status or approval import plan, no publication record from approval import, no stale, missing or content-mismatched export packages, deliberate human release authorization after approval_records and matching export packages before any manual publication record, release authorization does not publish or create publication_records, publication record entry kit does not publish or create publication_records, no public final-copy hashes, no publication record without approval/export evidence and release authorization, publication-record inbox entries only after real manual publication, publication import writes publication_records only, publication import does not publish or import post-publish sync, no tracking parameters in public URLs by default, no operator calendar or CSV row as approval/publication permission, no human review command center row as approval/publication permission, no decision entry kit or sheet as approval/publication permission, no asset publication without approval record and audit/build",
    "after review decision entry kit changes, verify data/campaign-review-decision-entry-status.json, _generated/review-decision-entry-kit.md, _generated/review-decision-entry-sheet.json and npm run campaign:review-decision:entry-kit; public status must expose only decision-entry progress/counts and no post copy, final copy, patient data, diagnosis data, platform credentials or sensitive data",
    "after approval record entry kit changes, verify data/campaign-approval-record-entry-status.json, _generated/approval-record-entry-kit.md, _generated/approval-record-entry-sheet.json and npm run campaign:approval-record:entry-kit; public status must expose only approval-entry readiness counts after genuine approved review_decision_records and no public final copy, patient data, platform credentials, approval records, export packages or publication records",
    "after release authorization entry kit changes, verify data/campaign-release-authorization-entry-status.json, _generated/release-authorization-entry-kit.md, _generated/release-authorization-entry-sheet.json and npm run campaign:release-authorization:entry-kit; public status must expose only release-entry readiness counts after approval_records and exact matching export packages and no public final copy, copy hashes, patient data, platform credentials, release authorization records or publication records",
    "after publication record entry kit changes, verify data/campaign-publication-record-entry-status.json, _generated/publication-record-entry-kit.md, _generated/publication-record-entry-sheet.json and npm run campaign:publication-record:entry-kit; public status must expose only publication-evidence entry readiness counts after real manual publication and no public final copy, copy hashes, patient data, platform credentials, publication_records, publication action or post-publish sync import",
    "after deployment, run npm run verify:public to fetch Vercel robots.txt, sitemap.xml, llms files and public-safe campaign JSON markers"
  ]
}
