---
name: identifikationsfigur.validiere_kongruenz
description: "VALIDATE-Skill für Konsistenz-Audits zwischen TUV-Frontmatter und Stammbaum-File. Phase-3.6 (T-35-A7-2). Triggert: 'Prüfe TUV-Kongruenz', 'Audit-Check Pre-Persist', 'Konsistenz-Test 3-Ebenen-Verzahnung'. Verb-Anker VALIDATE/PRÜFE. Aufrufer: cowork.audit_pre_commit."
domain_scope: universal
schema_pin: tuv_v2
phase: phase_3_6
mode: cowork-first
skill_typ: atomar
adr_refs: [ADR_0014, ADR_0017, ADR_0024, ADR_0032, ADR_0034, ADR_0036]
---

# Atomarer Skill `identifikationsfigur.validiere_kongruenz`

## Trigger

Aufgerufen aus `cowork.audit_pre_commit` (Pflicht-Subskill vor TUV-Persist) oder explizit:
- "Validiere Identifikationsfigur-Kongruenz für TUV X"
- "Pre-Commit-Check Identifikationsfiguren"
- "Audit Beziehungs-Schema Sequenz X"

## Validierungs-Pflichten (3-Ebenen-Kongruenz)

### Ebene 1: TUV ↔ Sequenz-Pool

| Check | PASS-Kriterium |
|---|---|
| TUV-Frontmatter `identifikationsfigur.id` | exists in sequenz_pool.identifikationsfiguren |
| TUV-Frontmatter `bezugspersonen_aktiv` | alle in sequenz_pool.identifikationsfiguren |
| TUV-UE-Position | matched ue_mapping in sequenz_pool |

### Ebene 2: Sequenz-Pool ↔ Jahresplan (falls Jahresplan vorhanden)

| Check | PASS-Kriterium |
|---|---|
| Identifikationsfigur-Doppelnutzung | keine Figur in 2 unverbundenen Sequenzen |
| Generations-Bogen-Konsistenz | Familien-Beziehungen nicht widersprüchlich |
| Epochen-Konsistenz | alle Figuren in passendem Zeitraum |

### Ebene 3: Beziehungs-Schema-Konsistenz

| Check | PASS-Kriterium |
|---|---|
| Beziehungs-Block | exists wenn ≥2 Figuren in pool |
| Reziproke Beziehungen | wenn A.bezugspersonen.B exists, dann B.bezugspersonen.A exists ODER aus narrativen Gründen einseitig |
| Pflicht-Verwendung-Phasen | pflicht_verwendung_phasen.hinfuehrung dokumentiert (Round-21-Pflicht) |
| Biographische Brücken | nicht-leer pro Beziehung |

## Pflicht-Kontext

1. TUV-Frontmatter (Source-of-Check)
2. Sequenz-Pool-File (`core/fach/<fach>/sequenzen/<lernbereich>_<thema>.yaml` mit `identifikationsfiguren_pool`-Block)
3. Optional: Jahresplan (`core/fach/<fach>/jahresplan_<klasse>.yaml`)

## Reasoning-Schritte

1. **TUV-Frontmatter parsen**: identifikationsfigur.id + bezugspersonen_aktiv + ue_position
2. **Sequenz-Pool laden**: identifikationsfiguren-Liste + beziehungen + ue_mapping
3. **Ebene-1-Checks**: TUV-Anker im Pool vorhanden?
4. **Optional Jahresplan-Load**: Generations-Bogen + Doppelnutzungs-Check
5. **Ebene-2-Checks** (falls Jahresplan): Konsistenz Sequenz-Pool ↔ Jahresplan
6. **Ebene-3-Checks**: Beziehungs-Schema-Konsistenz im Pool selbst
7. **Findings-Aggregation**: Severity-Mapping pro Check (PASS / MED / HIGH / BLOCK)
8. **Bilanz**: kongruenz_status PASS (alle Checks PASS) | FAIL (≥1 BLOCK) | PARTIAL (HIGH/MED-Items)

## Output-Schema

```yaml
identifikationsfigur_kongruenz_audit:
  audit_id: <uuid>
  tuv_target: <pfad>
  sequenz_pool: <pfad>
  jahresplan: <pfad oder null>
  durchgefuehrt: <iso>

  ebene_1_tuv_sequenz:
    - check: tuv_identifikationsfigur_in_pool
      status: PASS | BLOCK
      details: <text>
    - check: tuv_bezugspersonen_in_pool
      status: PASS | HIGH
      details: <text>
    - check: tuv_ue_position_matched_mapping
      status: PASS | MED
      details: <text>

  ebene_2_pool_jahresplan:
    - check: identifikationsfigur_doppelnutzung
      status: PASS | HIGH
    - check: generations_bogen_konsistenz
      status: PASS | MED
    - check: epochen_konsistenz
      status: PASS | HIGH

  ebene_3_beziehungs_schema:
    - check: beziehungs_block_exists
      status: PASS | BLOCK
    - check: reziproke_beziehungen
      status: PASS | MED
    - check: pflicht_verwendung_phasen
      status: PASS | HIGH
    - check: biographische_bruecken_nicht_leer
      status: PASS | MED

  aggregierte_severity: PASS | PARTIAL | FAIL
  exit_code: 0 | 1 | 2
  findings: [<liste pro non-PASS-check>]
  empfehlung: <text>
```

## Anti-Pattern

- TUV-Identifikationsfigur ohne Sequenz-Pool-Eintrag (Schema-Drift)
- Beziehungs-Schema-Verletzung ungereinigt persistieren
- Epochen-Inkonsistenz toleriert (Anna 1850 + Smartphone)
- Validator-Skip via Override ohne Pflicht-Begründung in `_meta.audit_override_reason`
- Audit-Findings ohne Severity-Mapping

## Integration in cowork.audit_pre_commit

Pflicht-Subskill ergänzt audit_validators-Reihenfolge:

```
1. validate_tuv_corpus.py
2. lint_disclaimer_wrapper.py
3. validate_module_scope.py
4. check_mcp_availability.py
5. validate_lizenz_attribution.py
6. validate_niveau_konsistenz.py
7. Rhythmisierungs-Check (Phase-3.5.C)
8. identifikationsfigur.validiere_kongruenz (Phase-3.6.A7 NEU)
```

Default-Severity-Mapping in `audit_validators.yaml`:
- Ebene-1-FAIL: BLOCK (TUV-Schema-Verstoß)
- Ebene-2-FAIL: HIGH (Architektur-Drift)
- Ebene-3-FAIL: HIGH (Round-21-User-Empirie-Pflicht-Verstoß)

## Cross-Refs

- ADR 0014 Identifikationsfigur-Pattern
- ADR 0017 Two-Tier-Architektur
- ADR 0024 Audit-Pattern (6-RA-Severity-Calibration)
- ADR 0034 Pipeline-Skill-Workflow (audit-Skill-Komposition)
- ADR 0036 Persona-Agent-System (Komplementär)
- core/skills/identifikationsfigur.generiere_pool/SKILL.md (Generator)
- core/skills/cowork.audit_pre_commit/SKILL.md (Aufrufer)
- T-35-A7-2 Phase-3.6-Stage-A
