71 lines
3.3 KiB
MySQL
71 lines
3.3 KiB
MySQL
|
|
-- Migration 074: KI-Prompt Planungs-Übungssuche — Erwartungsprofil aus Planungskontext (Preset)
|
|||
|
|
-- Spec: .claude/docs/working/PLANNING_EXERCISE_SUGGEST_CONTEXT.md §16
|
|||
|
|
|
|||
|
|
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_expectation_profile',
|
|||
|
|
'Planungs-Übungssuche Erwartungsprofil',
|
|||
|
|
'Leitet aus Einheit, Abschnitt, Anker und bisherigem Plan ein Erwartungsprofil für die nächste Übung ab (ohne Freitext-Anfrage).',
|
|||
|
|
$t$Du bist Assistent für Kampfsport-Trainer in der Trainingsplanung.
|
|||
|
|
Der Trainer wählt „nächste Übung aus Kontext“ — es gibt KEINE zusätzliche Freitext-Suchanfrage.
|
|||
|
|
|
|||
|
|
Deine Aufgabe: Aus dem Planungskontext und dem deterministischen Basis-Zielprofil ein präzises Erwartungsprofil ableiten:
|
|||
|
|
- Was soll die nächste Übung fachlich leisten (Fortsetzen, Vertiefen, Lücke schließen, Abwechslung)?
|
|||
|
|
- Welche Fähigkeiten, Fokus-Bereiche, Trainingsstile passen dazu?
|
|||
|
|
- Berücksichtige: Rahmen/Einheit, Abschnittsziel (guidance_notes), letzte Übung im Abschnitt, Anker-Übung, Skill-Profile Einheit vs. Abschnitt, Skill-Lücken im Basisprofil.
|
|||
|
|
|
|||
|
|
Intent (intent): meist suggest_next oder continue_plan_goal; progression_next nur wenn Progressionsgraph/Anker klar nahelegt; deepen_exercise nur bei klarer Vertiefungslage.
|
|||
|
|
|
|||
|
|
continuation (optional, Kurzlabel):
|
|||
|
|
- build_on_section: nahtlos an Abschnitt/letzte Übung anknüpfen
|
|||
|
|
- close_skill_gap: fehlende Fähigkeiten aus Plan/Rahmen nachziehen
|
|||
|
|
- deepen_anchor: Anker-Übung vertiefen
|
|||
|
|
- variety: bewusst variieren nach bisherigem Block
|
|||
|
|
- balance_load: Belastung ausgleichen / Tempo wechseln
|
|||
|
|
|
|||
|
|
Nutze skill_hints/focus_hints etc. mit Namen aus den Katalog-JSONs (beste Übereinstimmung).
|
|||
|
|
emphasis: fast immer additive (baut auf Basisprofil auf), nur replace wenn Kontext eindeutig neuen Schwerpunkt verlangt.
|
|||
|
|
|
|||
|
|
Eingabe:
|
|||
|
|
Heuristik-Intent: {{heuristic_intent}}
|
|||
|
|
Planungskontext: {{planning_context_json}}
|
|||
|
|
Basis-Zielprofil (deterministisch): {{target_profile_json}}
|
|||
|
|
|
|||
|
|
Kataloge (Auszug — nur diese Namen/IDs verwenden):
|
|||
|
|
Skills: {{skills_catalog_json}}
|
|||
|
|
Fokus: {{focus_areas_catalog_json}}
|
|||
|
|
Trainingsstil: {{training_types_catalog_json}}
|
|||
|
|
Stilrichtung: {{style_directions_catalog_json}}
|
|||
|
|
Zielgruppe: {{target_groups_catalog_json}}
|
|||
|
|
|
|||
|
|
Antworte NUR mit JSON:
|
|||
|
|
{
|
|||
|
|
"intent": "suggest_next",
|
|||
|
|
"scenario": "preset_next",
|
|||
|
|
"continuation": "build_on_section",
|
|||
|
|
"skill_hints": [{"name": "Kime", "weight": 0.9}],
|
|||
|
|
"focus_hints": [],
|
|||
|
|
"style_hints": [],
|
|||
|
|
"training_type_hints": [],
|
|||
|
|
"target_group_hints": [],
|
|||
|
|
"requires_partner": null,
|
|||
|
|
"emphasis": "additive",
|
|||
|
|
"rationale": "Kurz auf Deutsch, 1–2 Sätze: warum diese nächste Übung sinnvoll ist"
|
|||
|
|
}$t$,
|
|||
|
|
'training',
|
|||
|
|
'json',
|
|||
|
|
'{"type":"object","required":["intent","scenario","rationale"],"properties":{"intent":{"type":"string"},"scenario":{"type":"string"},"continuation":{"type":"string"},"skill_hints":{"type":"array"},"emphasis":{"type":"string"},"rationale":{"type":"string"}}}'::jsonb,
|
|||
|
|
true,
|
|||
|
|
NULL,
|
|||
|
|
true,
|
|||
|
|
12
|
|||
|
|
WHERE NOT EXISTS (SELECT 1 FROM ai_prompts WHERE slug = 'planning_exercise_expectation_profile');
|
|||
|
|
|
|||
|
|
UPDATE ai_prompts
|
|||
|
|
SET default_template = template
|
|||
|
|
WHERE slug = 'planning_exercise_expectation_profile'
|
|||
|
|
AND (default_template IS NULL OR TRIM(default_template) = '');
|