Synthèse automatique
Guide un créateur de produit à travers un entretien en cinq phases — contexte, découverte de la douleur via les 5 Pourquoi, formation d'hypothèses, recherche parallèle et sélection — pour aboutir à un profil de client idéal (ICP) étayé par la recherche.
Points forts
- Impose une seule question à la fois, avec une règle d'arrêt explicite qui empêche l'agent de répondre à la place de l'utilisateur
- Utilise les 5 Pourquoi avec des critères concrets pour distinguer une douleur de surface d'un socle émotionnel
- Propose systématiquement l'option « Pas sûr (besoin de recherche) » et consigne les incertitudes comme questions ouvertes
- Lance des agents de recherche en parallèle pour valider chaque hypothèse avant la sélection
Limites
- Dépend d'outils interactifs propres à Claude Code (AskUserQuestion, Task), ce qui limite sa portabilité
- Le SKILL.md fourni est tronqué au milieu du format de la phase d'hypothèses
- Ne produit qu'une sortie stratégique : aucune collecte de données réelles ni analyse quantitative
À utiliser lorsqu'on lance un produit ou qu'on le repositionne et qu'il faut définir, valider ou actualiser un profil de client idéal.
À éviter lorsqu'il faut une estimation quantitative du marché ou lorsque l'ICP est déjà validé et qu'il ne reste qu'à le documenter.
Analyse de sécurité
SûrThis is a purely conversational research/writing skill. Its tools (Read, Write, Glob, WebSearch, AskUserQuestion, Task) are used for reading context, writing an ICP document, searching the web for validation, and asking the user questions — all legitimate and non-destructive. There is no shell execution, no network exfiltration of secrets, no obfuscated payloads, and no instruction to bypass safety controls; the explicit STOP RULE actually restricts autonomous behavior in a safe way.
Aucun point d'attention détecté
Comment cette analyse est faiteExemples
Help me define the ICP for my product — I'm building a Slack app that summarizes long threads for busy engineering managers.I want to update our ICP. We're a B2B analytics tool and our current target customer persona feels way too broad.Who should I sell to? I'm launching a habit-tracking app and I'm torn between targeting students and working professionals.name: icp-builder description: > Build the ICP section of your PMF context layer. Use when user says "define ICP", "ideal customer", "target audience", "customer persona", "who should I sell to", "who is my customer", "target market", "customer avatar", or wants to update their ICP. allowed-tools: Read, Write, Glob, WebSearch, AskUserQuestion, Task
ICP Builder
You help product builders define who their Ideal Customer Profile is as part of their PMF context layer. You produce 3 hypotheses, drill to emotional bedrock using the 5 Whys method, launch parallel research agents to validate each, and help the user pick the strongest one.
Your Role
- Strategic mentor helping define a research-backed ICP
- Ask ONE question at a time
- Drill past surface-level answers to emotional bedrock
- Use research to validate assumptions
- Output a focused, evidence-backed ICP that Claude can reference
Core Rules
- Ask ONE question at a time.
- STOP RULE: After calling AskUserQuestion, your turn MUST END immediately. Do not generate any further text, call any other tools, or proceed to the next phase. The user's actual response — not your prediction of it — determines what happens next. This rule is non-negotiable regardless of how much context you have. NEVER auto-answer questions.
- Include "Not sure (needs research)" option on every question — adds to Open Questions with context
- Never pressure to guess — uncertainty is valuable data
- Reference specific previous answers in follow-up questions
- Keep it focused — we want useful context, not exhaustive profiles
The Flow
5 phases: Context → Pain Discovery → Hypothesis Formation → Research → Compare & Select
Phase A: Context & Broad Target (2 questions)
Q1: Product context
"What are you building? Describe your product or idea in a sentence or two."
Q2: Broad target
"Who do you imagine using this? Think about the type of person or role — not a specific company or name."
Use AskUserQuestion with role suggestions based on Q1 context. Make the question self-contained:
- GOOD: "Which type of person do you imagine using [product]?"
- BAD: header "Target" + question "Which type?"
Phase B: Pain Discovery with 5 Whys (3-6 questions)
Q3: Surface pain
"What's the biggest frustration [target from Q2] faces that [product from Q1] helps with?"
Q4-Q6+: 5 Whys drilling (conditional)
After each pain answer, evaluate depth using these criteria:
SURFACE-LEVEL (keep drilling):
- Process problem ("they have to manually X")
- Technical jargon without emotional weight
- Symptom without personal consequence
- Could describe anyone, not specific to this persona
EMOTIONAL BEDROCK (stop drilling):
- Names a feeling ("terrified," "embarrassed," "losing sleep")
- Identity threat ("I look incompetent," "I'm failing my team")
- Visceral consequence ("my stomach drops," "I dread Monday mornings")
- Personal stakes ("I could lose my job," "my reputation is at risk")
Each follow-up MUST reference the specific previous answer:
- BAD: "Why does that matter?"
- GOOD: "When [specific thing they said], what does that actually feel like for them day-to-day?"
Max 5 rounds of drilling. If emotional bedrock is not reached after 5 rounds, use the deepest answer available and flag it in Open Questions as needing further exploration.
Phase C: Hypothesis Formation (2-3 questions)
Q7: Filtering the first hypothesis
"Now let's get specific. Within [broad target], who feels this pain MOST acutely? Think about what makes them different — their company stage, tools they use, something that recently happened to them, the alternatives they currently rely on."
Synthesize Hypothesis 1 from the full conversation (persona + filters + emotional pain) and display it:
┌───────────────────────────────────────────────────────────────┐
│ HYPOTHESIS 1: [Short name] │
├───────────────────────────────────────────────────────────────┤
│ Who: [Role] + [filters: company type, tools, events, etc.] │
│ Pain: [Emotional bedrock — the visceral version] │
│ Surface symptom: [The technical/process problem underneath] │
└───────────────────────────────────────────────────────────────┘
Q8: Second & third hypotheses
"Let's think of two more potential customer profiles. These should be different slices — different roles, different filters, or a different pain angle. Who else might desperately need [product]?"
Use AskUserQuestion with 2-3 Claude-generated suggestions (different persona angles derived from the conversation) + "I have my own idea."
For each additional hypothesis, apply compressed 5 Whys (1-2 follow-ups max — user is now warmed up to the depth pattern). If user picks "Not sure (needs research)" for hypothesis 3, suggest one based on adjacent markets or contrasting personas and add it to Open Questions.
After all 3 are formed, display them together for confirmation before research:
┌───────────────────────────────────────────────────────────────┐
│ YOUR 3 ICP HYPOTHESES │
├───────────────────────────────────────────────────────────────┤
│ │
│ 1. [Name]: [Filtered persona] — "[Pain]" │
│ 2. [Name]: [Filtered persona] — "[Pain]" │
│ 3. [Name]: [Filtered persona] — "[Pain]" │
│ │
│ Ready to research these? I'll search for real evidence │
│ that each persona exists and feels this pain. │
└───────────────────────────────────────────────────────────────┘
Use AskUserQuestion to confirm: "Ready to research these 3 hypotheses? I'll search for real evidence that each persona exists and feels this pain." Options: "Let's go" / "I want to adjust one first"
Phase D: Parallel Research (automated — no user questions)
Launch 3 Task agents in parallel using subagent_type: "general-purpose". Each agent gets:
Research agent prompt (per hypothesis):
Research this ICP hypothesis by searching the web for real evidence.
HYPOTHESIS:
- Persona: [Full filtered description]
- Pain: [Emotional bedrock pain]
- Product context: [What the product does]
RESEARCH TASKS:
1. Search for evidence the pain is real and actively discussed
2. Search for existing solutions they use (validates pain worth solving)
3. Find how this persona describes themselves and their situation — identity labels, community phrases, and self-recognition language (e.g., "I'm a senior dev who...", "as someone who..."). These will be used later for value proposition targeting.
4. Map where this persona hangs out online — both where they CONSUME content (passive) and where they TALK and engage (active). Be specific: exact subreddit names, Discord servers, Slack communities, YouTube channels, newsletters, podcasts, influencers/thought leaders they follow, conferences they attend. This data is critical for outreach and ad targeting later.
SCORING (be honest, not optimistic):
- Pain Intensity (1-5): Is this pain actively discussed? Are people paying for imperfect solutions?
- Market Accessibility (1-5): Are there clear, specific channels to reach this persona? Can you name them?
- Evidence Strength (1-5): How much real-world evidence exists across sources?
RETURN FORMAT (use exactly this structure):
SCORES:
- Pain Intensity: [1-5] — [one-sentence justification]
- Market Accessibility: [1-5] — [one-sentence justification]
- Evidence Strength: [1-5] — [one-sentence justification]
KEY FINDINGS:
1. [Specific source, quote, or data point]
2. [Specific source, quote, or data point]
3. [Specific source, quote, or data point]
SELF-RECOGNITION LANGUAGE:
- [How they describe themselves in forums/communities]
- [Identity labels and phrases they use]
- [What would make them stop and say "that's me"]
WHERE THEY HANG OUT:
Passive (consume content):
- [Specific YouTube channels, newsletters, podcasts, blogs]
- [Influencers/thought leaders they follow]
Active (talk and engage):
- [Specific subreddits, Discord servers, Slack communities, forums]
- [Conferences, meetups, Twitter/X communities]
OVERALL ASSESSMENT:
[One-sentence assessment]
SUGGESTED REFINEMENTS:
[Any suggested refinements to the hypothesis based on what you found]
Fallback: If the Task tool is unavailable or fails, perform research sequentially using WebSearch directly.
While research is running, display:
┌───────────────────────────────────────────────────────────────┐
│ RESEARCHING YOUR HYPOTHESES... │
├───────────────────────────────────────────────────────────────┤
│ │
│ Searching for real-world evidence for each persona. │
│ This takes a moment. │
│ │
└───────────────────────────────────────────────────────────────┘
Phase E: Compare & Select (1-2 questions)
Display research results side by side:
┌───────────────────────────────────────────────────────────────┐
│ RESEARCH RESULTS │
├───────────────────────────────────────────────────────────────┤
│ │
│ 1. [Name] │
│ [One-line persona + filters] │
│ Pain: "[Emotional bedrock]" │
│ Pain ████░ 4 │ Access ███░░ 3 │ Evidence ████░ 4 │
│ → [Key finding sentence] │
│ │
│ 2. [Name] │
│ [One-line persona + filters] │
│ Pain: "[Emotional bedrock]" │
│ Pain ███░░ 3 │ Access ████░ 4 │ Evidence ███░░ 3 │
│ → [Key finding sentence] │
│ │
│ 3. [Name] │
│ [One-line persona + filters] │
│ Pain: "[Emotional bedrock]" │
│ Pain ██░░░ 2 │ Access ████░ 4 │ Evidence ██░░░ 2 │
│ → [Key finding sentence] │
│ │
├───────────────────────────────────────────────────────────────┤
│ Higher scores = stronger evidence. But trust your gut too │
│ — founder resonance matters. │
└───────────────────────────────────────────────────────────────┘
Score bar rendering: Use filled blocks (█) for the score value and empty blocks (░) for the remainder out of 5.
Use AskUserQuestion: "Which ICP do you want to build your product around?" Options: the 3 hypothesis names + "Help me decide"
If "Help me decide": Recommend the hypothesis with the highest combined score, but acknowledge gut feeling matters. Ask again.
Gap Fill (conditional)
After selection, check if the selected hypothesis has all downstream fields: goals, language, channels. Ask 1-2 quick questions ONLY for missing fields:
- "What does success look like for [selected ICP]?" (if goals missing)
- "What phrases might they use when describing this pain? How do they describe themselves?" (if language/self-recognition missing)
- "Where can you find them online?" (if channels missing)
B2B KPIs (conditional): If the selected ICP is a B2B persona (a role within a company, not an individual consumer), ask:
- "How does [ICP identity] measure success in their role? What KPIs or metrics does their boss care about?"
This populates the "How They Measure Success" section in the output. These KPIs are used downstream by the value-prop-builder (Magnet should map to their success metrics) and the landing-generator (Benefits section for B2B pages).
Output
Save to pmf/icp.md using the template from templates/outputs/icp.md.
The output file must include:
- AI instruction comments marking selected vs. alternative ICPs
- The selected ICP at the top with all fields populated
- Research validation scores and key evidence
- Alternative hypotheses below the divider, marked as reference only
- "Why not selected" reason for each alternative
Progress Display
Show progress only at the END (not after each question):
┌───────────────────────────────────────────────────────────────┐
│ ICP DEFINED │
├───────────────────────────────────────────────────────────────┤
│ │
│ Selected: [Hypothesis name] │
│ Who: [Filtered persona summary] │
│ Pain: "[Emotional bedrock]" │
│ Evidence: Pain [X]/5 │ Access [X]/5 │ Evidence [X]/5 │
│ │
│ Saved to: pmf/icp.md │
│ │
└───────────────────────────────────────────────────────────────┘
Updating Existing ICP
If pmf/icp.md already exists:
- Read the current file
- Show summary to user (selected ICP + alternatives)
- Ask what they want to update (defer to update-icp command menu)
- Update only the relevant sections
- Save the updated file
AskUserQuestion Best Practices
IMPORTANT: The header creates a visual divider — use sparingly (1 word max) or omit.
- Make questions self-contained — include all context in the question text
- Don't rely on text above the question to provide context
- BAD: "Which type?" with header "Target"
- GOOD: "Which type of YouTube learner is your ideal customer?"
Attribution
Created by Adi Shmorak, The P/MF Detective Star on GitHub if this helped | Feedback: adi@adidacta.com
Du fichier au premier essai
Le téléchargement contient exactement le contenu affiché sur cette fiche. Cette copie peut différer de la dernière version du dépôt source.
Consulter la source et ses fichiers annexesCe téléchargement contient uniquement SKILL.md. Les scripts, références, modèles et dépendances éventuels ne sont pas inclus. Récupérez les fichiers nécessaires depuis la source en conservant leur arborescence avant de poursuivre.
1. Télécharger le fichier
Télécharger SKILL.mdDepuis la racine d’un projet de test, enregistrez le fichier sous .skill-downloads/icp-builder-ms1aw4cd/SKILL.md, ou utilisez la commande suivante. Ce dossier sert à examiner la skill avant son installation.
Commande pour macOS/Linux ou WSL : un shell POSIX et curl sont nécessaires. Sous Windows sans WSL, utilisez le bouton de téléchargement et créez le dossier manuellement.
mkdir -p '.skill-downloads/icp-builder-ms1aw4cd' && curl --fail --show-error --location 'https://skills-guides.com/api/skills/icp-builder-ms1aw4cd/download' --output '.skill-downloads/icp-builder-ms1aw4cd/SKILL.md.part' && mv '.skill-downloads/icp-builder-ms1aw4cd/SKILL.md.part' '.skill-downloads/icp-builder-ms1aw4cd/SKILL.md'2. Vérifier les prérequis
Lisez SKILL.md avant de l’utiliser. Si le fichier cite des scripts ou services externes, examinez-les et préparez les accès nécessaires dans votre environnement de test.
Outils déclarés par l’auteur (à vérifier dans votre agent) : Read, Write, Glob, WebSearch, AskUserQuestion, Task
Aucune section de prérequis reconnue dans ce fichier. Cela ne signifie pas qu’il est autonome : les bibliothèques, outils et accès peuvent être cités ailleurs dans le contenu ou dans le dépôt source.
Les plateformes de la fiche sont des indications du catalogue. Les chemins ci-dessous suivent la documentation des outils ; ils ne prouvent pas que cette skill y a été exécutée. Aucune version minimale de ces outils n’est attestée pour cette fiche.
3. Charger la skill
Après vérification, copiez le dossier complet dans le projet avec l’une des commandes ci-dessous, puis ouvrez une nouvelle session de l’outil. La commande s’arrête si un dossier du même nom existe déjà : comparez les fichiers avant de le remplacer.
Claude Code
test -f '.skill-downloads/icp-builder-ms1aw4cd/SKILL.md' && test -s '.skill-downloads/icp-builder-ms1aw4cd/SKILL.md' && mkdir -p '.claude/skills' && test ! -e '.claude/skills/icp-builder' && cp -R '.skill-downloads/icp-builder-ms1aw4cd' '.claude/skills/icp-builder'OpenSkills
OpenSkills doit déjà être installé. La procédure locale install/read est contrôlée avec OpenSkills 1.5.0, qui exige Node.js ≥ 20.6.0. Aucun slug du catalogue n’est résolu automatiquement.
Installation officielle d’OpenSkillsopenskills install './.skill-downloads/icp-builder-ms1aw4cd'openskills read 'icp-builder-ms1aw4cd'La lecture doit afficher le contenu du fichier installé et son dossier de base. Elle ne lance ni la skill ni ses dépendances.
Pour un agent qui lit AGENTS.md, synchronisez ensuite l’index. Cette commande modifie AGENTS.md : relisez le diff avant de l’utiliser.
openskills syncMode manuel ou autre outil : joignez SKILL.md à une conversation, ou ouvrez-le dans un agent capable de lire les fichiers. Ajoutez les ressources annexes nécessaires. Il n’existe pas de dossier universel reconnu par tous les outils.
4. Faire un premier essai
Utilisez une entrée courte et fictive : un endpoint d’API, un petit document ou un brief d’interface. Dans une nouvelle conversation, joignez le fichier ou donnez son chemin à l’agent, puis adaptez cette demande :
Lis .skill-downloads/icp-builder-ms1aw4cd/SKILL.md et applique ses instructions à cet exemple : [décrire une entrée de test]. Indique les fichiers, dépendances ou accès qui manquent. Produis le résultat demandé par la skill sans inventer de données ni exécuter de script non examiné.Résultat attendu : une sortie correspondant aux instructions de la skill, ou une liste précise des prérequis manquants. Une simple confirmation de lecture ne valide pas le premier usage. Si une ressource externe est indisponible, ce parcours reste à tester.
Lecteur PDF
Productivite
Lit et extrait le texte de fichiers PDF (rapports, contrats, tableurs). Gère les fichiers locaux, les URL et les pièces jointes WhatsApp. Utilisez-le dès qu'un contenu PDF est nécessaire, même sans demande explicite.
Workflows de messagerie Discord
Productivite
Utilisez l'outil message pour envoyer, modifier et modérer des messages Discord avec des composants interactifs.
Aperçu interactif des verdicts
Productivite
Générer un aperçu HTML interactif des verdicts (garder/supprimer) pour la revue par le mainteneur, puis traiter le JSON de retour.