Amélioration des Profils d'Auteurs
Cette compétence remplit les champs manquants des profils d'auteurs (bio, avatar, site web, réseaux sociaux) via une recherche web.
Aperçu du Flux de Travail
Phase 1 : Identification de l'Auteur
└─ Trouver et valider le fichier auteur
Phase 2 : Recherche Parallèle (uniquement pour les champs manquants)
├─ Agent WebSearch 1 : bio/parcours
├─ Agent WebSearch 2 : URL avatar
└─ Agent WebSearch 3 : site web + réseaux sociaux
Phase 3 : Revue Utilisateur (ÉTAPE BLOQUANTE)
└─ Présenter les résultats, attendre l'approbation
Phase 4 : Sauvegarder l'Auteur Amélioré
└─ Mettre à jour les champs frontmatter
Phase 5 : Vérification Qualité
└─ Exécuter pnpm lint:fix && pnpm typecheck
Phase 1 : Identification de l'Auteur
1.1 Trouver le Fichier Auteur
Accepter un slug d'auteur, un nom ou un nom partiel comme argument :
- Essayez d'abord la correspondance exacte du slug : Vérifiez si
content/authors/{slug}.mdexiste (convertir les espaces en traits d'union, mettre en minuscules) - Si pas de correspondance exacte : Utilisez Grep pour rechercher le nom dans les fichiers auteurs :
Pattern Grep : "name:.*{terme de recherche}" avec glob : "content/authors/*.md"
Résultats :
- Une seule correspondance → continuer avec ce fichier
- Plusieurs correspondances → lister les options pour que l'utilisateur choisisse
- Aucune correspondance → lister les auteurs disponibles
1.2 Identifier les Champs Manquants
Lire le fichier auteur et vérifier quels champs sont manquants ou vides :
Champs obligatoires (toujours présents) :
nameslug
Champs optionnels à améliorer :
bio- Parcours professionnel et expertiseavatar- URL de la photo de profilwebsite- URL du site web personnelsocials.twitter- Identifiant Twitter/Xsocials.github- Nom d'utilisateur GitHubsocials.linkedin- Nom d'utilisateur LinkedInsocials.youtube- Chaîne YouTube
Un champ est "manquant" si :
- Il n'existe pas dans le frontmatter
- Il existe mais est vide (
""ounull)
Si tous les champs sont déjà remplis, informez l'utilisateur et proposez de mettre à jour des champs spécifiques.
Phase 2 : Recherche Parallèle
Lancer jusqu'à 3 agents WebSearch en parallèle en fonction des champs manquants :
**Agent 1 - Bio/Parcours :**
Outil Task avec subagent_type : "general-purpose"
invite : "Utilise WebSearch pour trouver les informations de parcours professionnel de [Nom Auteur].
Requête : '[Nom Auteur]' bio parcours expertise
Extrait : Titre du poste, entreprise, domaines d'expertise, projets notables.
Retourne : Une bio professionnelle de 1 à 2 phrases."
**Agent 2 - URL Avatar :**
Outil Task avec subagent_type : "general-purpose"
invite : "Utilise WebSearch pour trouver une URL de photo de profil pour [Nom Auteur].
Requête : '[Nom Auteur]' site:github.com OR site:twitter.com
Extrait : Nom d'utilisateur GitHub ou identifiant Twitter pour construire l'URL de l'avatar.
Retourne : URL de l'avatar (préférer le format GitHub : https://github.com/{username}.png)"
**Agent 3 - Site Web et Réseaux Sociaux :**
Outil Task avec subagent_type : "general-purpose"
invite : "Utilise WebSearch pour trouver les profils de réseaux sociaux de [Nom Auteur].
Requête : '[Nom Auteur]' twitter github linkedin youtube
Extrait : Site web personnel, identifiant Twitter, nom d'utilisateur GitHub, profil LinkedIn, chaîne YouTube.
Retourne : Liste des profils trouvés avec URLs/identifiants."
Ne lancer que les agents pour les champs manquants. Si la bio existe déjà, sautez l'Agent 1.
Collectez tous les résultats via TaskOutput (bloquant).
Phase 3 : Revue Utilisateur (ÉTAPE BLOQUANTE)
Il s'agit d'une étape d'approbation obligatoire. Présentez les modifications proposées avant de sauvegarder.
3.1 Présenter les Modifications
Affichez les mises à jour proposées sous forme de tableau comparatif :
## Mises à jour proposées pour [Nom Auteur]
| Champ | Actuel | Proposé |
|-------|--------|---------|
| bio | (vide) | "Fondateur de X, créateur de Y..." |
| avatar | (vide) | "https://github.com/username.png" |
| website | (vide) | "https://example.com" |
| socials.twitter | (vide) | "username" |
| socials.github | (vide) | "username" |
| socials.linkedin | (vide) | "username" |
| socials.youtube | (vide) | (non trouvé) |
3.2 Demander l'Approbation
Utilisez l'outil AskUserQuestion :
question: "Sauvegarder ces modifications dans le profil auteur ?"
header: "Revue"
multiSelect: false
options:
- label: "Sauvegarder"
description: "Mettre à jour le fichier auteur avec ces valeurs"
- label: "Modifier"
description: "Dites-moi ce qu'il faut changer"
- label: "Annuler"
description: "Ne pas modifier le fichier"
3.3 Gérer la Réponse
- Sauvegarder : Passer à la Phase 4
- Modifier : Appliquer les retours utilisateur, montrer un aperçu mis à jour
- Annuler : Quitter sans modifications
Ne PAS passer à la Phase 4 sans approbation explicite de l'utilisateur.
Phase 4 : Sauvegarder l'Auteur Amélioré
4.1 Mettre à Jour le Frontmatter
Utilisez l'outil Edit pour mettre à jour uniquement les champs approuvés :
Avant :
---
name: "John Doe"
slug: "john-doe"
bio: ""
avatar: ""
website: ""
socials:
twitter: ""
github: ""
linkedin: ""
youtube: ""
---
Après :
---
name: "John Doe"
slug: "john-doe"
bio: "Ingénieur logiciel spécialisé dans les systèmes distribués..."
avatar: "https://github.com/johndoe.png"
website: "https://johndoe.dev"
socials:
twitter: "johndoe"
github: "johndoe"
linkedin: "johndoe"
youtube: ""
---
4.2 Préserver les Valeurs Existantes
Critique : Ne jamais écraser les valeurs existantes non vides sauf demande explicite :
- Conservez
nameetsluginchangés - Mettez à jour uniquement les champs vides/manquants
- Préservez tous les champs personnalisés supplémentaires
4.3 Confirmation
Signalez à l'utilisateur :
Mis à jour : content/authors/{slug}.md
- bio : ajouté
- avatar : ajouté
- website : ajouté
- socials.twitter : ajouté
- socials.github : ajouté
Phase 5 : Vérification Qualité
Exécutez le linter et la vérification de type pour détecter tout problème :
pnpm lint:fix && pnpm typecheck
Si des erreurs sont trouvées, corrigez-les avant de terminer la tâche.
Récupération d'Erreur
| Erreur | Récupération |
|---|---|
| Auteur non trouvé | Lister les auteurs disponibles dans content/authors/ |
| Aucun champ manquant | Informer l'utilisateur, proposer de mettre à jour des champs spécifiques |
| Échec de WebSearch | Essayer des motifs de requête alternatifs |
| L'utilisateur rejette les modifications | Permettre l'édition ou l'annulation |
| Impossible de trouver l'info | Marquer le champ comme "(non trouvé)", continuer avec les autres |
Liste de Vérification Qualité
Avant de sauvegarder, vérifiez :
- Le fichier auteur existe dans
content/authors/ - Seuls les champs vides/manquants sont mis à jour
- La bio fait 1-2 phrases, ton professionnel
- L'URL de l'avatar est valide (préférez le format GitHub)
- Les identifiants sociaux sont uniquement des noms d'utilisateur (pas d'URL)
- Les valeurs existantes non vides sont préservées
- L'utilisateur a explicitement approuvé les modifications