---
name: mager.konjugieren
description: "Phase-2-Skill (T-30-2) für Mager-Konjugation: TUV-L-Perspektive ('Die SuS benennen drei Merkmale, indem sie...') → AB-S-Perspektive ('Du benennst drei Merkmale, indem du...'). Hybrid-Ansatz: deterministische Regel-Logik mit kuratiertem Operator-Pool-Verb-Table (46 Operatoren aus afb_I/II/III) + Subjekt-Pronomen-Rewrite + Trennverb-Handling. LLM-Fallback (`from llm import complete`, ADR 0031) für unbekannte Verben oder komplexe Satz-Strukturen. Triggert aus `aufgabe.formulieren` oder explizit 'Mager konjugieren <text>'. Ersetzt L-Perspektive im AB-Output (Schauseite, ADR 0008) — Lösungsblatt-Manifest behält L-Perspektive für Lehrkraft-Sicht."
domain_scope: universal
schema_pin: tuv_v2
phase: phase_2
mode: cowork-first
skill_typ: atomar
adr_refs: [ADR_0008, ADR_0019, ADR_0023, ADR_0026, ADR_0031, ADR_0032]
---

# Skill `mager.konjugieren` (Phase-2 / Phase-3-Cowork)

## Reasoning-Anleitung (Cowork-Mode, ADR 0032 Phase-3)

In Cowork-Sessions konjugiert Claude den Text SELBST (Deutsch-Sprachkompetenz inhärent).
CLI-Mode nutzt `core/skills/mager.konjugieren/konjugieren.py` (deterministisch + LLM-Hybrid).

### Eingabe-Erwartung

Text mit L-Perspektive ("Die SuS X-en, indem sie Y-en, was daran erkennbar wird, dass sie Z-en")
ODER aufrufender Skill (z. B. `aufgabe.formulieren`) liefert Pre-Konjugations-Text.

### Reasoning-Schritte für Claude

1. **Subjekt-Pronomen-Rewrite**:
   - "Die SuS" / "Die Schülerinnen und Schüler" / "Die SchülerInnen" / "Die Lernenden" → "Du"
   - "sie" in Subordinate-Klauseln (nach `indem` / `dass` / `weil` / `obwohl` / `sodass` / `wenn` / `da`) → "du"
2. **Verb-Konjugation 3.Pl → 2.Sg DU-Form**:
   - Stamm + "st" (Default)
   - Stamm endet auf -d/-t/-chn/-ffn/-gn → +"est" (z. B. "arbeiten → arbeitest", "deuten → deutest")
   - Stamm endet auf -s/-ß/-x/-z/-tz → nur +"t" (z. B. "tanzen → tanzt", "ergänzen → ergänzt")
   - -eln/-ern → drop final -n + "st" (z. B. "wandeln → wandelst", "ändern → änderst")
3. **Trennverb-Pattern** (15 Präfixe ab/an/auf/aus/ein/mit/nach/vor/zu/hin/her/los/weiter/gegenüber/heraus/durch/fort):
   - Prefix bleibt am Klauselende, Stamm wird konjugiert + nach vorn
   - "Die SuS arbeiten X heraus" → "Du arbeitest X heraus"
   - "Die SuS grenzen X ab" → "Du grenzt X ab"
4. **Modal-Verben** (irregulär):
   - können → kannst / müssen → musst / sollen → sollst / dürfen → darfst / wollen → willst
5. **Idempotenz-Check**: Wenn Input bereits S-Perspektive (kein "Die SuS" / kein "indem sie") → no-op return
6. **Diagnostik**: Liste der Ersetzungen für Audit-Trail

### Output-Format

```yaml
text_konjugiert: |
  <konjugierter Text in S-Perspektive>
diagnostik:
  ersetzungen:
    - {muster: "Die SuS", ersetzt_durch: "Du"}
    - {verb: "benennen", konjugiert: "benennst", regel: "default"}
  lücken: []  # Verben ohne Konjugationsregel — Claude markiert + bittet Lehrkraft
```

### Anti-Pattern (Cowork-Mode verboten)

- Substantive auf -en als Verben fehl-konjugieren ("der Wagen", "der Garten" bleiben unverändert)
- AFB-Tags / Mager-Notation in den konjugierten Text einfügen
- Subjekt-Pronomen "sie" außerhalb Subordinate-Kontext rewriten (z. B. "sie ist freundlich" bleibt)
- Trennverb-Präfix entfernen (Pattern muss erhalten bleiben)

### Helper-Scripts (CLI-Mode)

- `core/skills/mager.konjugieren/konjugieren.py` — Stdlib-only deterministisch + LLM-Hybrid-Fallback
- VERB_TABLE mit 66 kuratierten Verben für Test-Determinismus
- Cowork-Mode: Claude konjugiert ohne Helper-Pflicht (Sprachkompetenz inhärent)

Aufgabe: Mager-formulierte Lernziele (3.Pl Indikativ Präsens, "Die SuS X-en") in S-Perspektive (2.Sg Indikativ Präsens, "Du X-st") überführen — schauseitenfähig für Aufgabentexte.

## Pflicht-Kontextdateien

1. `core/config/operatoren.yaml` — AFB-Pool-Operatoren (Whitelist für Konjugations-Validierung)
2. `decisions/0008-schauseite-vs-formalstruktur.md` — Schauseite-Trennung (S-Perspektive nur in Aufgabentexten, nicht im Lösungsblatt-Manifest)
3. `decisions/0031-llm-provider-abstraction.md` — LLM-Fallback bei Konjugations-Lücken

## Eingabeparameter

```yaml
text: |
  Die SuS benennen Merkmale von Kinderarbeit, indem sie den Bildkontrast deuten,
  was daran erkennbar wird, dass sie mindestens drei Merkmale zum Tafelbild beitragen.
modus: deterministisch | hybrid     # Default: hybrid (LLM-Fallback bei Lücken)
fallback_provider: mock | anthropic # nur bei modus=hybrid
tuv_meta: {}                        # für DSGVO-Hard-Block (durchgereicht an llm.complete)
```

## Output-Schema

```yaml
text_konjugiert: |
  Du benennst Merkmale von Kinderarbeit, indem du den Bildkontrast deutest,
  was daran erkennbar wird, dass du mindestens drei Merkmale zum Tafelbild beiträgst.
diagnostik:
  ersetzungen:
    - {muster: "Die SuS", ersetzt_durch: "Du"}
    - {verb: "benennen", konjugiert: "benennst", regel: "table"}
    - {verb: "deuten", konjugiert: "deutest", regel: "regel_d_t_e"}
    - {verb: "beitragen", konjugiert: "beiträgst", regel: "table_separable"}
  lücken: []                  # Verben ohne Mapping (LLM-Fallback in hybrid-Mode)
  llm_fallback_calls: 0
```

## Konjugations-Regeln (deterministischer Pfad)

### 1. Subjekt-Pronomen-Rewrite
| Muster | Ersetzung |
|---|---|
| `Die SuS` | `Du` |
| `Die Schülerinnen und Schüler` | `Du` |
| `Die SchülerInnen` | `Du` |
| `sie` (in `indem sie X-en`-Subordinate nach SuS-Main) | `du` |
| `sie` (in `dass sie X-en`-Resultat) | `du` |

### 2. Verb-Konjugation 3.Pl → 2.Sg

**Kuratiertes Table für 46 Operator-Pool-Verben** (afb_I/II/III aus operatoren.yaml):

- `benennen → benennst`, `nennen → nennst`, `aufzählen → zählst auf` (Trennverb)
- `bezeichnen → bezeichnest`, `markieren → markierst`, `ordnen → ordnest`
- `zuordnen → ordnest zu` (Trennverb), `gliedern → gliederst`, `ergänzen → ergänzt`
- `verbinden → verbindest`, `wiedergeben → gibst wieder` (Trennverb)
- `beschreiben → beschreibst`, `erläutern → erläuterst`, `erklären → erklärst`
- `vergleichen → vergleichst`, `gegenüberstellen → stellst gegenüber` (Trennverb)
- `darstellen → stellst dar` (Trennverb), `analysieren → analysierst`
- `untersuchen → untersuchst`, `charakterisieren → charakterisierst`
- `anwenden → wendest an` (Trennverb), `durchführen → führst durch` (Trennverb)
- `beurteilen → beurteilst`, `bewerten → bewertest`, `erörtern → erörterst`
- `diskutieren → diskutierst`, `entwickeln → entwickelst`, `argumentieren → argumentierst`
- `überprüfen → überprüfst`, `reflektieren → reflektierst`, `gestalten → gestaltest`
- (vollständige Liste in `verb_table.py`)

**Regel-Fallback** für unbekannte regelmäßige Verben:
- Default: stem + "st" (z. B. `lesen → liest`)
- stem endet auf -d, -t, -chn, -ffn, -gn → stem + "est" (z. B. `arbeiten → arbeitest`, `deuten → deutest`)
- stem endet auf -s, -ß, -x, -z, -tz → stem + "t" (z. B. `tanzen → tanzt`, `setzen → setzt`)
- Verb endet auf -eln/-ern → drop final -n (z. B. `wandeln → wandelst`, `ändern → änderst`)

### 3. Trennverb-Pattern

Trennbare Präfixe: `ab-, an-, auf-, aus-, ein-, mit-, nach-, vor-, weg-, zu-, hin-, her-, los-, weiter-, gegenüber-, heraus-, durch-`

Beispiel: "Die SuS arbeiten den Hauptaspekt heraus" → "Du arbeitest den Hauptaspekt heraus" (Wortstellung erhalten).

## Hybrid-Modus

Wenn ein Verb im deterministischen Pfad keinen Treffer findet (`lücken` non-empty):

1. LLM-Call via `from llm import complete` mit:
   - System: "Konjugiere ein deutsches Verb (3.Pl → 2.Sg DU-Form). Antworte NUR mit der Konjugation, kein Fließtext."
   - User: `<verb>` (3.Pl-Form)
2. Response wird gegen Whitelist-Regex gefiltert (`^[\wäöüß-]+( \w+)?$` für Trennverben)
3. Bei Validierungs-FAIL: Original-Verb mit Warning bestehen lassen (degraded_mode=True)

## Anti-Pattern (verboten)

- **L-Perspektive im Aufgabentext** — Schauseite-Verstoß ADR 0008. Lösungsblatt-Manifest behält L-Perspektive für Lehrkraft-Sicht.
- **Direkte LLM-Calls** außerhalb von `from llm import complete` — bricht ADR 0031.
- **Sklavische Wortlaut-Übernahme** ohne Konjugations-Diagnostik — Output muss Ersetzungs-Trail liefern für Audit.
- **Mass-Rewrite ohne Pre-Flight-Validate** — wenn Input keine erkennbare L-Perspektive enthält, raise oder no-op (statt blind transformieren).

## Test-Cases (Pflicht für T-30-2-Closure)

1. PASS Standard-Mager: "Die SuS benennen X" → "Du benennst X"
2. PASS Trennverb: "Die SuS arbeiten X heraus" → "Du arbeitest X heraus"
3. PASS Subjekt-Drift: "Die SuS X-en, indem sie Y-en" → "Du X-st, indem du Y-st"
4. PASS Resultat-Klausel: "..., dass sie Z-en" → "..., dass du Z-st"
5. PASS Schreibvariante: "Die Schülerinnen und Schüler X-en" → "Du X-st"
6. PASS Stamm-Endung: "ordnen → ordnest", "ergänzen → ergänzt"
7. PASS -ern/-eln: "wandern → wanderst", "wandeln → wandelst"
8. EDGE Hilfsverb: "Die SuS können X tun" → "Du kannst X tun"
9. EDGE Unbekanntes Verb: "Die SuS frobnitzen X" → degraded_mode=True (oder LLM-Fallback in hybrid)
10. EDGE No-op bei Input ohne L-Perspektive: "Du benennst X" bleibt unverändert (idempotent)

## Output-Files

Skill liefert KEINE Files — Output ist `dict` an Aufrufer (`aufgabe.formulieren` oder Test-Code). Persistierung übernimmt Aufrufer.

## ADR-Cross-Refs

- **ADR 0008:** Schauseite (S-Perspektive) vs. Formalstruktur (L-Perspektive im Manifest)
- **ADR 0019:** Graceful-Degrade bei Konjugations-Lücken (`degraded_mode=True`)
- **ADR 0023:** Hook-Coverage — kein eigener Hook, läuft als Skill-Pipeline
- **ADR 0026:** Cross-Project-Lesson — Klasse-2-Pattern (Operatoren-Pool-Konsistenz aus escape-game-generator)
- **ADR 0031:** LLM-Provider-Abstraction — Hybrid-Modus-Fallback nur via `from llm import complete`
