{
  "ok": true,
  "schema": "contentkueche.online_readiness.v1",
  "app_capability_marker": "fast-pitch-status-v69-20260625",
  "build_revision": "unknown",
  "build_revision_source": "",
  "mode": "team_ready",
  "database": {
    "ready": true,
    "backend": "postgres",
    "env_var": "PITCHPROD_DATABASE_URL",
    "message_de": "Postgres-State ist aktiv; mehrere Personen koennen denselben Pitch-Bearbeitungsstand nutzen."
  },
  "shared_dashboard_state": {
    "ready": true,
    "backend": "postgres",
    "message_de": "Zwischenstaende, Review-Haken, Preiseingaben und Feedback werden im gemeinsamen Postgres-State gespeichert."
  },
  "file_storage": {
    "ready": true,
    "uploads_ready": true,
    "run_file_restore_ready": true,
    "backend": "object_storage",
    "missing_required_env_vars": [],
    "message_de": "Object Storage und Upload-Gate sind aktiv; sensible Pitchdateien bleiben trotzdem reine Entwürfe."
  },
  "integrations": {
    "ok": true,
    "mode": "online_upload_flow_ready",
    "summary_de": "Upload, Entwürfe und Paketdownload sind nutzbar; SharePoint ist optional noch offen.",
    "next_action_de": "Mit Pitch-Ordner-Upload arbeiten; SharePoint spaeter verbinden, wenn der direkte Ordnerzugriff gebraucht wird.",
    "ready_count": 5,
    "total_count": 6,
    "missing_for_full_online": [
      "SharePoint"
    ],
    "services": [
      {
        "id": "project_state",
        "label": "Projekt-State",
        "configured": true,
        "owner": "System",
        "purpose_de": "Speichert angelegte Pitches und Bearbeitungsstände.",
        "status_de": "State-Backend: postgres.",
        "next_action_de": "Bereit fuer Multi-User-State.",
        "pitch_lead_action_de": "Keine Aktion noetig; Pitch-State liegt in Postgres."
      },
      {
        "id": "database",
        "label": "Datenbank",
        "configured": true,
        "owner": "Admin",
        "purpose_de": "Dauerhafte Online-Speicherung fuer mehrere Nutzerinnen und Nutzer.",
        "status_de": "Team-State ist dauerhaft gespeichert.",
        "next_action_de": "Bereit fuer gemeinsame Pitch-Bearbeitung.",
        "pitch_lead_action_de": "Keine Aktion noetig."
      },
      {
        "id": "object_storage",
        "label": "Object Storage",
        "configured": true,
        "owner": "Admin",
        "purpose_de": "Persistente Online-Ablage fuer hochgeladene Quellen, Run-Artefakte, Prüfdateien und erzeugte Office-Dateien.",
        "status_de": "S3/Object Storage vollstaendig konfiguriert.",
        "next_action_de": "Bereit fuer geschützte Ordner-Uploads.",
        "pitch_lead_action_de": "Ordner-Uploads sind online persistent vorbereitet; Abgabe, Signatur und externe Weitergabe bleiben gesperrt."
      },
      {
        "id": "make",
        "label": "KI-Erstellung",
        "configured": true,
        "owner": "Admin / AI Ops",
        "purpose_de": "Erstellt Entwürfe fuer Anforderungen, Legal, Konzept, Preis, Referenzen und QA.",
        "status_de": "KI-Erstellung ist verbunden. Bei Problemen Verbindung testen.",
        "preferred_trigger_method": "scenario_run",
        "required_scopes_de": "Make-Token braucht mindestens scenarios:read, scenarios:write, scenarios:run; fuer Ergebnisabruf zusaetzlich Data-Store-Leserechte.",
        "next_action_de": "Bereit fuer Entwürfe. Bei Problemen Verbindung testen.",
        "pitch_lead_action_de": "Keine Aktion noetig; KI-Laeufe starten im Pitch."
      },
      {
        "id": "ahrefs",
        "label": "Ahrefs Research",
        "configured": true,
        "owner": "Admin / Research-Agent",
        "purpose_de": "Optionaler Keyword- und Recherchekontext fuer Konzept- und Storyboard-Artefakte.",
        "status_de": "REST-Key als AHREFS_API_KEY hinterlegt und als funktionsfähig bestätigt.",
        "next_action_de": "Ahrefs ist einsatzbereit. Kein Pitch-Lead-Schritt nötig.",
        "check_url": "/api/admin/ahrefs-check",
        "pitch_lead_action_de": "Keine Pitch-Aktion noetig; wenn Ahrefs gesperrt ist, laufen Konzeptentwürfe ohne Keyworddaten weiter."
      },
      {
        "id": "sharepoint",
        "label": "SharePoint",
        "configured": false,
        "owner": "Admin / Microsoft 365",
        "purpose_de": "Listet den gewaehlten Pitch-Ordner rekursiv und holt Quellen fuer Source Coverage.",
        "next_action_de": "Microsoft App/Graph-Zugriff oder Make SharePoint Connector verbinden.",
        "pitch_lead_action_de": "Optional: Pitch-Ordner hochladen; SharePoint kann spaeter angebunden werden."
      }
    ]
  },
  "human_review_policy": {
    "offer_submission_allowed": false,
    "sharepoint_upload_allowed": false,
    "signature_allowed": false,
    "message_de": "Auch im Team-Onlinebetrieb bleiben finale Abgabe, Upload, Signatur und rechtliche/commercial Freigabe menschlich gesperrt."
  },
  "next_actions_de": []
}