--- name: av-prompt-designer description: Erzeugt in Phase 2 realistische, journey-verteilte Test-Such-Prompts für KI-Suchmaschinen aus dem BrandProfile — nutzen, wenn ein AI-Visibility-Gap-Assessment (frueher ARD-Readiness-Audit) Prompts braucht oder diese Stufe optimiert werden soll. --- # av-prompt-designer — Test-Prompt-Generator (Phase 2) Hier lebt die „Professionalität" des Audits: Die Prompts müssen echte Nutzerintention spiegeln, natürlich klingen (ganze Fragen, keine Keywords) und über die Customer Journey verteilt sein. Schwache Prompts → schwaches Audit. ## Wann nutzen - Phase 2 eines KI-Sichtbarkeits-Gap-Assessments: aus dem `BrandProfile` (Output von **av-profiler**) Test-Such-Prompts erzeugen, die ein echter Kunde EINER KI-SUCHMASCHINE stellen würde. - Verteilt über die Customer Journey — im Standard-Cold-Audit **18 Prompts = 6 Discovery/Awareness + 6 Comparison + 6 Decision** (Verteilung aus `settings.PROMPT_DISTRIBUTION`; **branded = 0**). - `branded` existiert als **optionale vierte Stufe**, ist im Standard-Cold-Audit aber **deaktiviert**: Gemessen wird, ob die KI die Marke **UNGESTÜTZT** nennt — ohne dass der Markenname in der Frage vorkommt. - Kernregel: Nur `branded`-Prompts (falls aktiviert) dürfen den Markennamen nennen. `awareness`/`comparison`/`decision` dürfen ihn NICHT nennen — sonst lässt sich nicht messen, ob die KI die Marke von selbst aufbringt. ## Code & Artefakt - Code: `~/audit-app/ai-visibility-audit/src/prompts.py` — Funktion `generate_prompts`, Default `_PROMPT_GEN`. - Input: `BrandProfile` (aus av-profiler). Verteilung: `settings.PROMPT_DISTRIBUTION`. - Optimierbarer Prompt: `~/audit-app/prompts/av-prompt-designer.active.txt`, geladen via `prompt_store.get_prompt("av-prompt-designer", _PROMPT_GEN)`. - Platzhalter (bei Optimierung ERHALTEN): `{distribution}`, `{brand}`, `{category}`, `{description}`, `{offerings}`, `{audience}`, `{key_terms}`. - Ausgabeformat (beibehalten): nur gültiges JSON `{"prompts":[{"text","stage"}]}`. ## Eval-Signal Signal (0..1) = **signal_yield × journey_coverage** - `signal_yield` = Anteil organischer Prompts, die ≥1 Marken- ODER Wettbewerber-Nennung erzeugten. Ein Prompt ohne jede Nennung ist eine verschwendete Sonde. - `journey_coverage` = abgedeckte Phasen / 4 (im Standard-Cold-Audit mit `branded = 0` liegt das erreichbare Maximum bei 0.75). - Berechnung: `src/skill_signals.py`. Geloggt nach `skill-runs.jsonl` + DB. ## Optimierung (Modus c, messbar → Auto-Apply) - Dieser Skill ist **prompt-tragend** UND in der **MEASURABLE**-Menge. - **av-eval-calibrator** kann ein echtes LIVE-A/B fahren (günstiger Proxy: erzeugt mit Baseline vs. Variante Prompts und misst Natürlichkeit × Stage-Abdeckung). - Schlägt die Variante die Baseline um Marge **0.05** → **MODUS C: AUTO-APPLY** (neue Version aktiv, alte archiviert, Audit-Trail). - Sonst: Change-Board-Vorschlag. - Ziel: `TARGET=0.75`. ## Rubrik Gut: - Prompts klingen wie echte Nutzerfragen. - Keine Marke in nicht-branded Stages. - Bandbreite an Intentionen: Problem, Vergleich, Kaufentscheidung. - Branchen- und sprachgerecht (deutscher Markt → deutsche Prompts). Fehler: - Keyword-Stichworte statt Fragen. - Marke versehentlich in awareness. - Alle Prompts zu ähnlich. ## Verwandte Skills - Upstream: **av-profiler** (liefert das BrandProfile). - Engine: **av-search-framing**. - Optimierer: **av-eval-calibrator**. Stand: 2026-07-10 (Feedback-Rework v2.1)