--- name: av-profiler description: Baut Phase 1 des KI-Sichtbarkeits-Gap-Assessments (frueher ARD-Readiness-Audit) — extrahiert aus dem rohen Startseiten-Text einer Marke ein strukturiertes JSON-Markenprofil. Nutzen, wenn ein Audit gestartet wird und das Marken-Fundament für die Test-Prompts entstehen muss. --- > **EVN:** Dieser Skill misst die Eigenschaft (Stellhebel) **„Marken-/Offer-&-Entity-Klarheit (Profil-Grundlage)"** → trägt zum Vorteil **Sichtbarkeit** bei → Nutzen **Auffindbarkeit**. # av-profiler — Phase 1: Markenprofil Dieser Skill ist das **Garbage-in-Gate** des Audits. Aus dem rohen Text der Startseite einer Marke wird ein strukturiertes JSON-Profil gebaut. Ist das Profil falsch, sind die daraus abgeleiteten Test-Prompts falsch — und das gesamte Audit wird wertlos. Hier entsteht die Qualität aller nachgelagerten Phasen. Das Profil enthält die Felder: - `brand_name` — die Marke selbst - `category` — knappe, präzise Marktkategorie - `description` — kurze Beschreibung dessen, was die Marke tut - `offerings` — konkrete Angebote/Produkte/Leistungen - `audience` — konkrete Zielgruppe - `competitors` — echte Wettbewerber im selben Markt - `key_terms` — echte Suchbegriffe, die ein Kunde tippt ## Wann nutzen - Zu Beginn eines neuen Audit-Laufs, bevor irgendwelche Test-Prompts erzeugt werden. - Immer wenn aus einer Marken-URL ein strukturiertes Profil gebraucht wird, das die spätere Prompt-Erzeugung speist. ## Code & Artefakt - **Code:** `~/audit-app/ai-visibility-audit/src/profiler.py` - Funktion `build_profile` - Default-Prompt-Konstante `_PROFILE_PROMPT` - Holt die Startseite robust (inkl. gzip/deflate-Dekompression), strippt das HTML zu reinem Text (max. 12000 Zeichen) und lässt Claude via Subscription ein JSON-Profil extrahieren. - **Optimierbarer Prompt-Artefakt:** `~/audit-app/prompts/av-profiler.active.txt` - Wird vom Code via `prompt_store.get_prompt("av-profiler", _PROFILE_PROMPT)` geladen. - Fehlt die Datei, fällt der Code auf den eingebauten Default zurück — das Tool bleibt jederzeit lauffähig. - **Pflicht-Platzhalter** (bei jeder Optimierung erhalten): `{url}`, `{content}`, `{n_comp}`. - **Pflicht-Vorgabe** (bei jeder Optimierung erhalten): die Anweisung, **nur gültiges JSON** auszugeben. ## Eval-Signal `competitor_hit_rate` (Wertebereich 0..1) — gratis abfallende Ground-Truth: > Anteil der im Profil vermuteten Wettbewerber, die real in mindestens einer organischen KI-Antwort des Audits aufgetaucht sind. Eine hohe Rate bedeutet: Das Profil hat echte, relevante Wettbewerber erkannt (und nicht halluziniert). Eine niedrige Rate deutet auf generische oder erfundene Wettbewerber hin. - Berechnet in: `~/audit-app/ai-visibility-audit/src/skill_signals.py` - Geloggt nach: `~/audit-app/data/skill-runs.jsonl` + DB-Tabelle `audit_skill_runs` ## Optimierung (Modus c) av-profiler ist ein **prompt-tragender Skill**, gehört aber **NICHT zur MEASURABLE-Menge**: Ein echter Test bräuchte einen vollen Audit-Re-Run, also gibt es kein billiges Live-A/B. Folge daraus: - `av-eval-calibrator` generiert Prompt-Varianten **nur als Change-Board-Vorschlag** (Status `open`). - **Kein Auto-Apply.** Übernahme nur nach menschlicher Freigabe. - Ziel-Score: `TARGET = 0.75`. ## Rubrik Qualitäts-Leitplanken für ein gutes Profil: - **Wettbewerber = echte Firmen/Marken im selben Markt.** Keine Halluzinationen, keine Oberkategorien. - **key_terms = echte Suchbegriffe**, die ein Kunde tatsächlich tippt. - **category** knapp und präzise. - **audience** konkret, nicht allgemein. Häufige Fehler (vermeiden): - Zu generische Wettbewerber. - Ausländische Anbieter statt marktrelevanter. - Die Marke selbst taucht unter den Wettbewerbern auf. ## Verwandte Skills - **av-prompt-designer** — Downstream-Abnehmer: nutzt das hier erzeugte Profil, um die Test-Prompts des Audits zu bauen. Ein schlechtes Profil schlägt direkt auf diesen Skill durch. - **av-eval-calibrator** — Optimierer: bewertet das Profil nach jedem Lauf über `competitor_hit_rate` und schlägt verbesserte Prompt-Varianten als Change-Board-Eintrag vor (kein Auto-Apply).