Autorenprofile erweitern
Diese Fähigkeit füllt fehlende Felder in Autorenprofilen (Bio, Avatar, Website, soziale Medien) durch Websuche aus.
Ablaufübersicht
Phase 1: Autorenidentifikation
└─ Autorendatei finden und validieren
Phase 2: Parallele Recherche (nur für fehlende Felder)
├─ WebSearch-Agent 1: Bio/Hintergrund
├─ WebSearch-Agent 2: Avatar-URL
└─ WebSearch-Agent 3: Website + soziale Medien
Phase 3: Benutzerüberprüfung (VERPFLICHTENDER STOPP)
└─ Ergebnisse präsentieren, auf Genehmigung warten
Phase 4: Erweiterten Autor speichern
└─ Frontmatter-Felder aktualisieren
Phase 5: Qualitätsprüfung
└─ pnpm lint:fix && pnpm typecheck ausführen
Phase 1: Autorenidentifikation
1.1 Autorendatei finden
Nimm einen Autor-Slug, Namen oder Teilnamen als Argument an:
- Zuerst exakte Slug-Übereinstimmung versuchen: Prüfe, ob
content/authors/{slug}.mdexistiert (Leerzeichen in Bindestriche umwandeln, Kleinbuchstaben) - Wenn keine exakte Übereinstimmung: Verwende Grep, um den Namen in Autorendateien zu suchen:
Grep-Muster: "name:.*{Suchbegriff}" mit Glob: "content/authors/*.md"
Ergebnisse:
- Eine Übereinstimmung → mit dieser Datei fortfahren
- Mehrere Übereinstimmungen → Optionen zur Auswahl auflisten
- Keine Übereinstimmung → verfügbare Autoren auflisten
1.2 Fehlende Felder identifizieren
Lese die Autorendatei und prüfe, welche Felder fehlen oder leer sind:
Erforderliche Felder (immer vorhanden):
nameslug
Optionale Felder zur Erweiterung:
bio- Beruflicher Hintergrund und Fachwissenavatar- URL zum Profilbildwebsite- URL der persönlichen Websitesocials.twitter- Twitter/X-Handlesocials.github- GitHub-Benutzernamesocials.linkedin- LinkedIn-Benutzernamesocials.youtube- YouTube-Kanal
Ein Feld gilt als „fehlend“, wenn:
- Es nicht im Frontmatter existiert
- Es existiert, aber leer ist (
""odernull)
Wenn alle Felder bereits ausgefüllt sind, informiere den Benutzer und biete an, bestimmte Felder zu aktualisieren.
Phase 2: Parallele Recherche
Starte bis zu 3 WebSearch-Agenten parallel, basierend darauf, welche Felder fehlen:
**Agent 1 - Bio/Hintergrund:**
Task-Tool mit subagent_type: "general-purpose"
prompt: "Verwende WebSearch, um berufliche Hintergrundinformationen zu [Autorname] zu finden.
Abfrage: '[Autorname]' Bio Hintergrund Fachwissen
Extrahiere: Berufsbezeichnung, Unternehmen, Fachgebiete, bemerkenswerte Projekte.
Gib zurück: Eine professionelle Kurzbio von 1-2 Sätzen."
**Agent 2 - Avatar-URL:**
Task-Tool mit subagent_type: "general-purpose"
prompt: "Verwende WebSearch, um eine Profilbild-URL für [Autorname] zu finden.
Abfrage: '[Autorname]' site:github.com OR site:twitter.com
Extrahiere: GitHub-Benutzername oder Twitter-Handle, um die Avatar-URL zu konstruieren.
Gib zurück: Avatar-URL (bevorzuge GitHub-Format: https://github.com/{benutzername}.png)"
**Agent 3 - Website und soziale Medien:**
Task-Tool mit subagent_type: "general-purpose"
prompt: "Verwende WebSearch, um Social-Media-Profile für [Autorname] zu finden.
Abfrage: '[Autorname]' Twitter GitHub LinkedIn YouTube
Extrahiere: Persönliche Website, Twitter-Handle, GitHub-Benutzername, LinkedIn-Profil, YouTube-Kanal.
Gib zurück: Liste der gefundenen Profile mit URLs/Handles."
Starte nur Agenten für fehlende Felder. Wenn die Bio bereits existiert, überspringe Agent 1.
Sammle alle Ergebnisse über TaskOutput (blockierend).
Phase 3: Benutzerüberprüfung (VERPFLICHTENDER STOPP)
Dies ist ein obligatorischer Genehmigungsschritt. Präsentiere die vorgeschlagenen Änderungen, bevor du sie speicherst.
3.1 Änderungen präsentieren
Zeige die vorgeschlagenen Aktualisierungen als Vergleichstabelle an:
## Vorgeschlagene Aktualisierungen für [Autorname]
| Feld | Aktuell | Vorgeschlagen |
|-------|---------|---------------|
| bio | (leer) | "Gründer von X, Entwickler von Y..." |
| avatar | (leer) | "https://github.com/benutzername.png" |
| website | (leer) | "https://beispiel.de" |
| socials.twitter | (leer) | "benutzername" |
| socials.github | (leer) | "benutzername" |
| socials.linkedin | (leer) | "benutzername" |
| socials.youtube | (leer) | (nicht gefunden) |
3.2 Genehmigung anfordern
Verwende das AskUserQuestion-Werkzeug:
question: "Diese Änderungen am Autorenprofil speichern?"
header: "Überprüfen"
multiSelect: false
options:
- label: "Speichern"
description: "Aktualisiere die Autorendatei mit diesen Werten"
- label: "Bearbeiten"
description: "Sag mir, was geändert werden soll"
- label: "Abbrechen"
description: "Datei nicht ändern"
3.3 Antwort verarbeiten
- Speichern: Fahre mit Phase 4 fort
- Bearbeiten: Wende Benutzerfeedback an, zeige aktualisierte Vorschau
- Abbrechen: Beende ohne Änderungen
Fahre NICHT mit Phase 4 ohne explizite Benutzerzustimmung fort.
Phase 4: Erweiterten Autor speichern
4.1 Frontmatter aktualisieren
Verwende das Bearbeitungswerkzeug, um nur die genehmigten Felder zu aktualisieren:
Vorher:
---
name: "Max Mustermann"
slug: "max-mustermann"
bio: ""
avatar: ""
website: ""
socials:
twitter: ""
github: ""
linkedin: ""
youtube: ""
---
Nachher:
---
name: "Max Mustermann"
slug: "max-mustermann"
bio: "Softwareentwickler mit Schwerpunkt auf verteilten Systemen..."
avatar: "https://github.com/maxmustermann.png"
website: "https://maxmustermann.dev"
socials:
twitter: "maxmustermann"
github: "maxmustermann"
linkedin: "maxmustermann"
youtube: ""
---
4.2 Vorhandene Werte beibehalten
Wichtig: Überschreibe niemals vorhandene nicht-leere Werte, es sei denn, es wird explizit verlangt:
- Behalte vorhandene
name- undslug-Werte unverändert bei - Aktualisiere nur Felder, die leer/fehlend waren
- Behalte alle zusätzlichen benutzerdefinierten Felder bei
4.3 Bestätigung
Melde dem Benutzer:
Aktualisiert: content/authors/{slug}.md
- bio: hinzugefügt
- avatar: hinzugefügt
- website: hinzugefügt
- socials.twitter: hinzugefügt
- socials.github: hinzugefügt
Phase 5: Qualitätsprüfung
Führe Linter und Typprüfung aus, um Probleme zu erkennen:
pnpm lint:fix && pnpm typecheck
Wenn Fehler gefunden werden, behebe sie, bevor die Aufgabe abgeschlossen wird.
Fehlerbehebung
| Fehler | Behebung |
|---|---|
| Autor nicht gefunden | Verfügbare Autoren in content/authors/ auflisten |
| Keine fehlenden Felder | Benutzer informieren, anbieten, bestimmte Felder zu aktualisieren |
| WebSearch schlägt fehl | Alternative Abfragemuster versuchen |
| Benutzer lehnt Änderungen ab | Bearbeitung oder Abbruch erlauben |
| Keine Informationen gefunden | Feld als „(nicht gefunden)“ markieren, mit anderen fortfahren |
Qualitätscheckliste
Vor dem Speichern überprüfen:
- Autorendatei existiert in
content/authors/ - Nur leere/fehlende Felder werden aktualisiert
- Bio ist 1-2 Sätze, professioneller Ton
- Avatar-URL ist gültig (bevorzuge GitHub-Format)
- Soziale Handles sind nur Benutzernamen (keine URLs)
- Vorhandene nicht-leere Werte bleiben erhalten
- Benutzer hat Änderungen explizit genehmigt