Install
$ agentstack add skill-hugrowth98-superfounder-os-nettoyer-verifier ✓ scanned · ✓ verified, works with Claude Code, Cursor, and more.
Security review
✓ PassedNo issues found. Passed automated security review. · v0.1.0 How review works →
- ✓ Prompt-injection patterns
- ✓ Secret / credential exfiltration
- ✓ Dangerous shell & filesystem operations
- ✓ Untrusted network calls
- ✓ Known-malicious package signatures
What it can access
- ✓ Network access No
- ✓ Filesystem access No
- ✓ Shell / process execution No
- ✓ Environment & secrets No
- ✓ Dynamic code execution No
From automated source analysis of v0.1.0. “Used” means the capability is present in the source — more access means more to trust, not that it’s unsafe.
Verified badge
Passed review? Show it. Paste this badge into your README, it links to the public security report.
Reliability & compatibility
Declared compatibility
Compatibility is declared by the source manifest. End-to-end runtime verification is coming, see below.
We're building live execution health for every listing: tool-call success rate, median latency, uptime, and last-checked timestamps, measured, not self-reported. It isn't live yet, so we don't show numbers we can't stand behind.
How agent discovery & health will work →About
Une base B2B perd environ 2 % de ses emails par mois : une liste de six mois envoie 11 à 15 % de ses messages dans le vide, et au-delà de 3 % de bounce le domaine d'envoi se fait classer en spam. Un email cherché par FullEnrich arrive avec son statut, pour 1 crédit s'il est trouvé ; une réputation de domaine abîmée se répare en plusieurs semaines.
Ressources
{SKILL_BASE}/ressources/hygiene-liste.md: statuts et actions, seuils, calendrier, règle "ne relance que si vide", normalisation colonne par colonne.{SKILL_BASE}/ressources/conseils-list-building.md: la liste de contrôle avant remise àcold-email.{SKILL_BASE}/ressources/prospeo-recherche.md, section 4 : le contrôle sur 20 adresses, à faire sur toute liste venue d'un fournisseur (Prospeo, FullEnrich ou autre) avant le premier envoi.
Méthode
- Lisez le fichier, comptez les lignes, repérez les colonnes. Renommez les colonnes de la source vers les noms de
docs/conventions-gtm.mdsection 8 (firstNamedevientprenom,companyNamedeviententreprise,jobTitledevienttitre). Conservez les colonnes de la source que vous ne savez pas mapper, après les colonnes normalisées. - Normalisez le texte, colonne par colonne, selon
hygiene-liste.md: emojis et symboles hors des prénoms et noms, casse Prénom Nom, suffixes juridiques hors des entreprises, segment après une barre verticale hors des titres, domaines nus, URL LinkedIn sans paramètres, téléphones en international. Montrez 10 lignes avant et après, attendez le oui si plus de 20 % des lignes changent. - Séparez les lignes selon
email: vide (rien à faire ici : canal LinkedIn ou téléphone, outrouver_emailviasourcer-personnes), rempli sansemail_statut(adresse importée, non vérifiée), rempli avec un statut de moins de 30 jours (rien à faire), rempli avec un statut de plus de 30 jours oudate_extractionde plus de 30 jours (à re-chercher). - Il n'existe pas de vérification d'une adresse existante : FullEnrich ne vérifie que les emails qu'il trouve. Sur les lignes sans statut ou au statut de plus de 30 jours, relancez
trouver_emailavec--force(1 crédit par email trouvé, le statut FullEnrich remplace l'adresse importée). Une ligne où rien n'est trouvé reste non vérifiée : elle ne part qu'avec--sans-verification, déconseillé. Annoncez le coût, lancez sur 50 lignes, montrez la répartition, puis le reste. - Appliquez les actions :
INVALIDetINVALID_DOMAINsont re-cherchés partrouver_emailsans--force(une seule fois, aveclinkedin_urlsi présent) et, si rien ne revient,emailest vidé ;NOT_FOUNDreste sans email ; une adresse générique (contact@, info@, rh@, ce n'est pas un statut, elle se repère à la main) exclut d'une séquence email, sauf entreprise locale sans autre adresse, où la ligne reste pour le téléphone ;CATCH_ALLetUNKNOWNrestent, marqués, à envoyer par petits lots. - Calculez le bounce attendu : part des
CATCH_ALLetUNKNOWNdans la liste. Au-dessus de 20 %, proposez de basculer ces lignes sur LinkedIn ou de les envoyer dans un lot séparé. Sur une liste qui vient d'un fournisseur, faites le contrôle sur 20 adresses : 20 adresses prises au hasard dans la vraie liste, passées dans un vérificateur que l'utilisateur contrôle (pas le statut du fournisseur), et le taux de rebond obtenu comparé à ce que le fournisseur annonce. Si ça tient, le lot part ; sinon, la liste est en cause avant le texte. - Rendez le rapport : lignes traitées, champs modifiés par colonne, répartition des statuts, couverture email (part des lignes en
DELIVERABLEouHIGH_PROBABILITY), lignes sans statut, lignes exclues et pourquoi, date de la prochaine vérification. Next step :dedoublonner-listecontre le CRM si ce n'est pas fait, sinoncold-email.
Exécution
| Étape | Verbe | Skill d'exécution | Entrée | Sortie | |---|---|---|---|---| | 1 et 2 | aucun, traitement local | interne | le CSV source | colonnes renommées et normalisées : prenom, nom, titre, entreprise, domaine, linkedin_url, email, telephone | | 4 | trouver_email avec --force | trouver-email | prenom, nom, domaine ou linkedin_url des lignes sans statut ou au statut de plus de 30 jours | email, email_statut | | 5 | trouver_email | trouver-email | prenom, nom, domaine, puis linkedin_url, lignes en INVALID ou INVALID_DOMAIN | email, email_statut | | 5, tiers A sans email | trouver_telephone | trouver-telephone | linkedin_url | telephone |
Sortie : trouver-email__.csv, toutes les lignes, email_statut renseigné sur chaque ligne passée par FullEnrich (vide = non vérifié), exclu et raison_exclusion sur les adresses génériques.
Repères
| Repère | Valeur | |---|---| | Taux de bounce visé | sous 1 % | | Seuil d'arrêt des envois | 3 % de bounce | | Décroissance des emails | 22 à 30 % par an, environ 2 % par mois | | Âge maximum d'un statut avant re-vérification | 30 jours | | Part de CATCH_ALL et UNKNOWN tolérée dans un envoi | 20 % au plus, en lots séparés | | Couverture email avant remise à cold-email | 70 % en DELIVERABLE ou HIGH_PROBABILITY | | Bounce doux | 3 essais à 4 h, 24 h, 48 h, puis dur | | Re-recherche (--force) des CATCH_ALL et UNKNOWN | chaque mois | | Rafraîchissement des titres | chaque trimestre, ou au-delà de 90 jours |
Template
Nettoyage et vérification : ( lignes)
Colonnes renommées : normalisée>, ...
Champs modifiés : prenom , nom , entreprise , titre
Emails : vides , sans statut ou statut > 30 j (re-cherchés avec --force) , statut
Statuts : DELIVERABLE + HIGH_PROBABILITY (), CATCH_ALL , UNKNOWN , INVALID + INVALID_DOMAIN (vidés), NOT_FOUND , sans statut (non vérifiés), génériques (exclus ou téléphone)
Couverture email envoyable : Bounce attendu si envoi des CATCH_ALL et UNKNOWN :
Exclues : ()
Prochaine vérification :
Sortie : trouver-email__.csv
Règles
- Une adresse sans
email_statutest non vérifiée : elle ne part pas, sauf--sans-verification(déconseillé). Le rapport dit combien de lignes sont dans ce cas ; on ne promet jamais une liste "100 % vérifiée". - Une adresse
INVALIDouINVALID_DOMAINne reste jamais dansemail. - Une adresse absente reste absente : aucun email construit à partir d'un format de domaine.
- On ne re-cherche pas un email dont le statut a moins de 30 jours, on n'enrichit pas une cellule remplie.
- La normalisation ne touche ni aux colonnes de données (dates, scores, statuts) ni aux URL au-delà du nettoyage indiqué.
- Une entreprise locale garde son adresse générique et sa ligne : le canal sera l'appel.
- Le rapport nomme la
sourcequi a produit le plus d'INVALID: au-delà de 3 %, elle se remplace.
Exemples
- "Ma liste est prête à envoyer ?" : comptage des lignes sans statut et des statuts de plus de 30 jours, re-recherche avec
--force; réponse attendue : couverture envoyable, bounce attendu, lignes restées sans statut, exclusions, et oui ou non avec ce qui manque. - "Nettoie les prénoms, y'a des emojis partout" : normalisation des colonnes texte, 10 lignes avant et après ; réponse attendue : le CSV normalisé et le nombre de champs modifiés par colonne.
- "J'ai 4 % de bounce sur ma dernière campagne" : arrêt des envois, re-recherche avec
--forcedes adresses sans statut ou anciennes, retrait desINVALID, lot séparé pour lesCATCH_ALLetUNKNOWN, source fautive identifiée ; réponse attendue : la liste re-cherchée, le bounce attendu sous 1 %, et la source à remplacer.
Source & license
This open-source skill is cataloged on AgentStack and links to its original source — we do not rehost the code.
- Author: hugrowth98
- Source: hugrowth98/superfounder-os
- License: MIT
Install and usage instructions live in the source repository linked above.
Reviews
No reviews yet, be the first.
Write a review
Versions
- v0.1.0 Imported from the upstream source.