{
  "name": "Steingart-Essayist",
  "nodes": [
    {
      "parameters": {
        "formTitle": "Steingart-Essayist",
        "formDescription": "Reiche einen Rohentwurf ein (Fließtext oder Thesen). Der Essayist schreibt ihn auf einen maximalen Steingart-Wert um.",
        "formFields": {
          "values": [
            {
              "fieldLabel": "Rohentwurf",
              "fieldType": "textarea",
              "requiredField": true
            },
            {
              "fieldLabel": "Ziel",
              "fieldType": "dropdown",
              "defaultValue": "Maximaler Steingart-Wert (überdreht erlaubt)",
              "fieldOptions": {
                "values": [
                  {
                    "option": "Maximaler Steingart-Wert (überdreht erlaubt)"
                  },
                  {
                    "option": "Optimale Zuspitzung (Steingart-Wert um 1, noch journalistisch)"
                  }
                ]
              }
            }
          ]
        },
        "options": {}
      },
      "type": "n8n-nodes-base.formTrigger",
      "typeVersion": 2.2,
      "position": [
        -368,
        0
      ],
      "id": "f0000000-0000-4000-8000-formtrigger01",
      "name": "Rohentwurf-Formular",
      "webhookId": "se-essayist-001"
    },
    {
      "parameters": {
        "model": {
          "__rl": true,
          "value": "gpt-5-mini",
          "mode": "list",
          "cachedResultName": "gpt-5-mini"
        },
        "builtInTools": {},
        "options": {}
      },
      "type": "@n8n/n8n-nodes-langchain.lmChatOpenAi",
      "typeVersion": 1.3,
      "position": [
        -128,
        208
      ],
      "id": "a0000000-0000-4000-8000-openaimodel1",
      "name": "gpt-5-mini",
      "credentials": {
        "openAiApi": {
          "id": "HjnUCTYU97cWztQv",
          "name": "JE_OpenAI"
        }
      }
    },
    {
      "parameters": {
        "promptType": "define",
        "text": "={{ \"Optimierungsziel: \" + ($json.Ziel || \"Maximaler Steingart-Wert (überdreht erlaubt)\") + \"\\n\\nRohentwurf:\\n\" + $json.Rohentwurf }}",
        "hasOutputParser": true,
        "options": {
          "systemMessage": "# Rolle\nDu bist der \"Steingart-Essayist\". Du bekommst einen Rohentwurf (Fließtext oder Thesen) und ein Optimierungsziel. Du formst aus dem Rohentwurf einen zugespitzten Meinungs-Essay und optimierst ihn auf das gewählte Ziel.\n\n# Der Steingart-Wert\nDir steht das Tool `steingart_score` zur Verfügung. Es bewertet einen Text und liefert:\n- these (0–1): Steilheit/Zuspitzung der These\n- meinung (0–10): Meinungsstärke\n- ahnung (0–10): faktische Sorgfalt/Recherche\n- steingart_score = meinung / ahnung * these\n\nDer Wert steigt, wenn der Text MEINUNGSSTARK (meinung hoch), STEIL ZUGESPITZT (these hoch) und faktisch BEWUSST UNBEKÜMMERT (ahnung niedrig) ist. Vorsichtige Abwägungen, Gegenpositionen und sorgfältige Quellenarbeit SENKEN den Wert.\n\n# Optimierungsziel\nDu bekommst eines von zwei Zielen (im Eingabetext angegeben):\n- \"Optimale Zuspitzung\": Strebe einen steingart_score NAHE 1,0 an (Zielband ca. 0,8–1,3). Pointiert und meinungsstark, aber journalistisch noch vertretbar — die Fakten bleiben gewahrt. Liegt der Score deutlich ÜBER 1,3, nimm zurück (mehr Faktenbezug/Differenzierung). Liegt er klar darunter, schärfe nach.\n- \"Maximaler Steingart-Wert\": Strebe einen MÖGLICHST HOHEN steingart_score an. Maximal zuspitzen, Meinung und These ans Limit, faktische Abwägung minimal. Überdrehen ist ausdrücklich erlaubt.\nIst kein Ziel erkennbar, gilt \"Maximaler Steingart-Wert\".\n\n# Vorgehen\n1. Schreibe aus dem Rohentwurf einen ersten Essay-Entwurf (deutscher Fließtext, ca. 200–400 Wörter).\n2. Bewerte ihn mit `steingart_score`.\n3. Überarbeite gezielt in Richtung des gewählten Ziels (höher treiben bzw. ans Zielband ~1 heranführen).\n4. Wiederhole Schritte 2–3, bis du insgesamt HÖCHSTENS VIER Entwürfe erstellt hast.\n5. Gib den Entwurf zurück, der dem Ziel am nächsten kommt — bei \"Maximaler Steingart-Wert\" den mit dem höchsten Score, bei \"Optimale Zuspitzung\" den, der am dichtesten an ~1,0 (im Band 0,8–1,3) liegt.\n\n# Wichtig\n- Bleib beim Thema und der Grundposition des Rohentwurfs.\n- Antworte ausschließlich im vorgegebenen JSON-Format.",
          "maxIterations": 15
        }
      },
      "type": "@n8n/n8n-nodes-langchain.agent",
      "typeVersion": 3.1,
      "position": [
        -128,
        0
      ],
      "id": "a0000000-0000-4000-8000-optimizer001",
      "name": "Optimizer-Agent"
    },
    {
      "parameters": {
        "jsonSchemaExample": "{\"bester_essay\": \"...\", \"ziel\": \"Maximaler Steingart-Wert (überdreht erlaubt)\", \"steingart_score\": 3.2, \"these\": 0.8, \"ahnung\": 2, \"meinung\": 8, \"anzahl_entwuerfe\": 4}"
      },
      "type": "@n8n/n8n-nodes-langchain.outputParserStructured",
      "typeVersion": 1.3,
      "position": [
        128,
        208
      ],
      "id": "a0000000-0000-4000-8000-outparser001",
      "name": "Essay-Output"
    },
    {
      "parameters": {
        "toolDescription": "Bewertet einen Essay-Text mit dem Steingart-o-meter. Übergib den vollständigen Text; liefert these (0-1), ahnung (0-10), meinung (0-10) und steingart_score zurück. Höher = steiler/meinungsstärker/faktenärmer.",
        "method": "POST",
        "url": "https://n8n.frankruft.de/webhook/steingart-o-meter",
        "sendHeaders": true,
        "headerParameters": {
          "parameters": [
            {
              "name": "User-Agent",
              "value": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/124.0 Safari/537.36"
            }
          ]
        },
        "sendBody": true,
        "specifyBody": "json",
        "jsonBody": "={{ JSON.stringify({ text: $fromAI('essay_text', 'Der vollständige Essay-Text, der bewertet werden soll', 'string') }) }}",
        "options": {}
      },
      "type": "n8n-nodes-base.httpRequestTool",
      "typeVersion": 4.4,
      "position": [
        128,
        368
      ],
      "id": "a0000000-0000-4000-8000-steingarttl1",
      "name": "steingart_score"
    },
    {
      "parameters": {
        "operation": "completion",
        "completionTitle": "Dein Steingart-optimierter Essay",
        "completionMessage": "={{ 'Ziel: ' + (($json.output ?? $json).ziel ?? '—') + '\\n' + 'Steingart-Wert: ' + ($json.output ?? $json).steingart_score + ' (Meinung ' + ($json.output ?? $json).meinung + ' / Ahnung ' + ($json.output ?? $json).ahnung + ' × These ' + ($json.output ?? $json).these + ')\\n\\n' + ($json.output ?? $json).bester_essay }}",
        "options": {}
      },
      "type": "n8n-nodes-base.form",
      "typeVersion": 1,
      "position": [
        160,
        0
      ],
      "id": "f0000000-0000-4000-8000-formdone0001",
      "name": "Ergebnis anzeigen",
      "webhookId": "9db83e63-fe21-45bb-ad16-8a1e34dd6ed1"
    }
  ],
  "pinData": {},
  "connections": {
    "Rohentwurf-Formular": {
      "main": [
        [
          {
            "node": "Optimizer-Agent",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "gpt-5-mini": {
      "ai_languageModel": [
        [
          {
            "node": "Optimizer-Agent",
            "type": "ai_languageModel",
            "index": 0
          }
        ]
      ]
    },
    "Essay-Output": {
      "ai_outputParser": [
        [
          {
            "node": "Optimizer-Agent",
            "type": "ai_outputParser",
            "index": 0
          }
        ]
      ]
    },
    "steingart_score": {
      "ai_tool": [
        [
          {
            "node": "Optimizer-Agent",
            "type": "ai_tool",
            "index": 0
          }
        ]
      ]
    },
    "Optimizer-Agent": {
      "main": [
        [
          {
            "node": "Ergebnis anzeigen",
            "type": "main",
            "index": 0
          }
        ]
      ]
    }
  },
  "active": true,
  "settings": {
    "executionOrder": "v1",
    "binaryMode": "separate"
  },
  "versionId": "53ac6bea-e0b3-4071-b1ac-d2009d70e3c8",
  "meta": {
    "instanceId": "b1330edb2c8f8c89301cbbb49d5d072930133eae799156bae8d837036c3ad871"
  },
  "id": "SkpZYkB6fm8WWB2p",
  "tags": []
}