-- Migration 075: Planungs-KI Phase E — Semantik-Enrichment + Pfad-QA Prompts INSERT INTO ai_prompts ( slug, display_name, description, template, category, output_format, output_schema, is_system_default, default_template, active, sort_order ) SELECT 'planning_exercise_query_semantics', 'Planungs-Übungssuche Semantik', 'Erweitert deterministisches Semantic Brief um must/exclude phrases und Entwicklungsbogen.', $t$Du bist Assistent für Kampfsport-Trainer bei der semantischen Analyse von Planungs-Anfragen. Ziel: JSON für ein Semantic Brief — präzise Kernbegriffe, Ausschlüsse, Entwicklungsbogen. Nutze das bestehende Brief als Basis; ergänze/verfeinere, ersetze aber keine eindeutige Technik-Identität. Anfrage: {{search_query}} Bestehendes Brief (deterministisch): {{semantic_brief_json}} Regeln: - must_phrases: konkrete Technik-/Themen-Phrasen aus der Anfrage (z. B. "mae geri", nicht nur "geri") - exclude_phrases: konkurrierende Techniken/Themen, die NICHT gemeint sind - development_arc: geordnete Phasen aus: einstieg, grundlage, vertiefung, anwendung, perfektion - semantic_strength: 0.0–1.0 (höher bei spezifischer Technik/Thema) - primary_topic: Hauptthema in wenigen Worten - topic_type: technique | focus | method | skill | general Antworte NUR mit JSON: { "primary_topic": "Mae Geri", "topic_type": "technique", "must_phrases": ["mae geri"], "exclude_phrases": ["mawashi geri", "sakuto geri"], "development_arc": ["einstieg", "grundlage", "vertiefung", "perfektion"], "semantic_strength": 0.9, "rationale": "Kurz auf Deutsch" }$t$, 'training', 'json', '{"type":"object","properties":{"must_phrases":{"type":"array"},"exclude_phrases":{"type":"array"},"development_arc":{"type":"array"},"semantic_strength":{"type":"number"}}}'::jsonb, true, NULL, true, 12 WHERE NOT EXISTS (SELECT 1 FROM ai_prompts WHERE slug = 'planning_exercise_query_semantics'); INSERT INTO ai_prompts ( slug, display_name, description, template, category, output_format, output_schema, is_system_default, default_template, active, sort_order ) SELECT 'planning_exercise_path_qa', 'Planungs-Pfad QA', 'Semantische Qualitätsprüfung eines vorgeschlagenen Übungspfads inkl. Lücken und Brücken.', $t$Du bist Assistent für Kampfsport-Trainer und prüfst einen vorgeschlagenen Übungspfad. Ziel-Anfrage: {{goal_query}} Semantic Brief: {{semantic_brief_json}} Schritte (JSON): {{steps_json}} Erkannte Lücken: {{gaps_json}} Eingefügte Brücken: {{bridge_inserts_json}} Prüfe: 1. Deckt der Pfad das Hauptthema der Anfrage ab (nicht nur Oberbegriffe)? 2. Ist die Reihenfolge didaktisch sinnvoll (Einstieg → Vertiefung → Ziel)? 3. Sind Sprünge zwischen benachbarten Schritten zu groß? 4. Sind Brücken-Übungen sinnvoll oder überflüssig? 5. Fehlen wichtige Zwischenschritte? Antworte NUR mit JSON: { "overall_ok": true, "quality_score": 0.85, "topic_coverage": "Kurz: wie gut das Hauptthema abgedeckt ist", "issues": ["…"], "sequence_notes": ["…"], "recommendations": ["…"] }$t$, 'training', 'json', '{"type":"object","required":["overall_ok"],"properties":{"overall_ok":{"type":"boolean"},"quality_score":{"type":"number"},"issues":{"type":"array"},"sequence_notes":{"type":"array"},"recommendations":{"type":"array"}}}'::jsonb, true, NULL, true, 13 WHERE NOT EXISTS (SELECT 1 FROM ai_prompts WHERE slug = 'planning_exercise_path_qa'); UPDATE ai_prompts SET default_template = template WHERE slug IN ('planning_exercise_query_semantics', 'planning_exercise_path_qa') AND (default_template IS NULL OR TRIM(default_template) = '');