Recherche-Coordinator. Liest TUV, ruft aktive Quellen-Adapter über source-registry.yaml, aggregiert über lib/briefing.py, schreibt recherche_briefing.yaml gemaess recherche_briefing_v1.json (v1.0.0 LOCKED). Triggert NUR aus dem artefakte-generator-Skill heraus oder explizit auf User-Anfrage 'Recherche für UE <X>'. Phase 1: Adapter wikimedia + wikipedia aktiv (12-MCP-Tier-Sequenz aus p7-quellen-refactor). Spätere Phasen erweitern um Tier-2-4 Adapter (berufenet, gesetze, bpb, statistisches_bundesamt, ilo, pixabay etc.). HARD-CONSTRAINT (ADR_0049 §2.1, R57-Iteration-AC'): Output verbindlich-VOR cowork.plane_naechste_stunde. Schema-Stability AD.1A.2 AKTIV ab v1.0.0-Lock.
How this skill is triggered — by the user, by Claude, or both
Slash command
/unterrichtsplanung-core:artefakt-rechercheThe summary Claude sees in its skill listing — used to decide when to auto-load this skill
**Pflicht-Pipeline-Constraint (ADR_0049 §2.1, 03_datenfluss §0):** Output `recherche_briefing.yaml` MUSS vor `cowork.plane_naechste_stunde`-Trigger vorliegen. Verstoß → BLOCK durch Plane-Skill `pre_run_state_checks`.
Pflicht-Pipeline-Constraint (ADR_0049 §2.1, 03_datenfluss §0): Output recherche_briefing.yaml MUSS vor cowork.plane_naechste_stunde-Trigger vorliegen. Verstoß → BLOCK durch Plane-Skill pre_run_state_checks.
Schema-Stability AD.1A.2 AKTIV ab v1.0.0-LOCK (2026-05-06): Vertragsfeld-Aenderungen erfordern ADR-Re-Visit-Protokoll (ADR_0051 §4).
artefakt-recherche (Phase-1 / Phase-3-Cowork)Pipeline-Skill: Quellen-Adapter + Lizenz-Klassifikation + Briefing-Persistierung.
Eingabe: TUV-Pfad oder Stichworte + Lernbereich + Niveau.
Reasoning-Schritte:
core/config/source-registry.yaml aktivieren (Phase 1: wikimedia + wikipedia)lib/briefing.BriefingAggregator.run() mit Pre-Fetch-Hooklizenz.pruefen-Skill aufrufen (Hard-Block-Check)_recherche.yaml neben TUV persistierenOutput: _recherche.yaml mit BriefingEntries + Attribution-Lines
Anti-Pattern: Adapter ohne Pre-Fetch-Hook / Ranking ohne Niveau-Bezug / Briefing ohne Attribution.
Du orchestrierst die externe Materialrecherche für eine WiB-UE.
core/specs/06-externe-recherche.mdcore/config/source-registry.yamlcore/config/lizenzquellen.jsoncore/config/sources/<id>.yamlAus dem TUV extrahierst du Such-Queries:
thema, ohne Fragezeichen)inhalt und indikator)lehrplan.lernbereich)querverbindung-Feld)Pro Query: AFB-Spektrum aus Teilzielen, prozessbez. Kompetenz, Niveau-Hinweise.
Aus source-registry.yaml alle Adapter mit aktiv: true und passendem phase_min. Phase 1 → wikimedia, wikipedia.
Jeder Adapter wird mit eigenem Konfig-File parametrisiert (config/sources/<id>.yaml).
Pro Adapter:
search(query) → Kandidatenfetch(candidate) → Asset (Bytes oder Text)classify_license(metadata) → Lizenz-Enumto_briefing(asset, lizenz_meta) → BriefingEntryCache via lib/cache.py (SHA-256-basiert), Treffer aus Cache zuerst.
Für jeden Treffer: lib/lizenz.klassifiziere(url, metadata, autor, titel).
config/lizenzquellen.json.unklar oder Blacklist-Treffer: ausschließen, Verweislink anbieten statt Einbettung.Phase 1: nur Auflösungs-Check.
Über lib/briefing.BriefingAggregator in _recherche.yaml neben dem TUV schreiben.
Format siehe samples/gold-standard/KW18_Kinderarbeit/_recherche_briefing.yaml.
standard._recherche.yaml neben TUV. Schema in specs/06-externe-recherche.md. Goldstandard-Beispiel in samples/gold-standard/KW18_Kinderarbeit/_recherche_briefing.yaml.
npx claudepluginhub snflsknfkldnfs/unterrichtsplanung-core --plugin unterrichtsplanung-coreCreates, edits, and optimizes skills for Claude Code, including drafting, evaluating with test prompts, iterating on performance, and improving skill descriptions for better triggering accuracy.