- name
- define-customer-profile
- description
- Iteratively craft a CUSTOMER.md document that precisely defines your ideal customer profile (ICP). This is the foundational document from which everything else (product, features, brand) derives. Uses parallel research agents and multi-choice workflow with feedback cycles.
**User request**: $ARGUMENTS
# Customer Profile Skill
Create the foundational CUSTOMER.md document through iterative refinement. This document precisely defines WHO your customer is, their problems, behaviors, and what they value. **Everything else in the product derives from this document.**
> **This is the most important document your product will ever have.** Product decisions, feature prioritization, and even brand guidelines all flow from understanding the customer. Get this right first.
## Overview
This skill supports both **creating a new customer doc** and **refining an existing one**. Users come back to adjust their ICP as they learn more about their market or pivot their product.
**Loop**: Check existing → Discover → Research → Draft → Refine → Repeat until complete
This skill guides you through:
0. **Check Existing** - Look for existing CUSTOMER.md; let user choose to refine or start fresh
1. **Discovery** - Clarifying questions about your product, market, and current understanding (keeps asking until confident)
2. **Research Phase** - Launch parallel agents to research ICP data, market, competitors (optional)
3. **Initial Draft** - Generate first CUSTOMER.md based on inputs + research
4. **Refinement & Completion** - Review sections, validate assumptions, update doc, finalize
**Returning users** can skip to Phase 4 to refine specific sections.
### Where the Value Comes From
The discovery questions give you a solid starting point, but **the real magic happens in Phase 2 (Research) and Phase 4 (Refinement)**:
- Research agents dig into real market data, competitor positioning, and ICP characteristics
- You validate whether the ICP resonates with your actual experience
- Each cycle sharpens the doc until it truly captures YOUR ideal customer
**Discovery log**: `/tmp/customer-discovery-{YYYYMMDD-HHMMSS}.md` - external memory updated after each step.
## Workflow
### Initial Setup (create todos immediately)
**Create todo list** - areas to discover, not steps. List expands as user answers reveal new areas.
**Starter todos**:
```
- [ ] Check for existing CUSTOMER.md; done when existing file read or absence confirmed
- [ ] Discovery questions→log; done when user answers captured
- [ ] Research→log (if requested); done when research findings logged
- [ ] (expand: areas as discovery reveals)
- [ ] Generate initial draft; done when draft created
- [ ] Refinement cycles→log; done when user approves direction
- [ ] Refresh: read full discovery log
- [ ] Finalize document; done when CUSTOMER.md written
```
**Create discovery log** at `/tmp/customer-discovery-{YYYYMMDD-HHMMSS}.md`:
```markdown
# Discovery Log: Customer Profile
Started: {timestamp}
## Discovery Answers
(populated incrementally)
## Research Findings
(populated incrementally)
## Decisions Made
(populated incrementally)
## Refinement Notes
(populated incrementally)
```
### Phase 0: Check for Existing Document
**Mark "Check for existing CUSTOMER.md" todo `in_progress`.**
Before starting discovery, check if the user already has a CUSTOMER.md:
1. **Search for existing doc**: Use Glob to search for `**/CUSTOMER.md` in the current directory and common locations
2. **If found**: Read it and ask the user what they want to do
```
header: "Existing Customer Doc Found"
question: "I found an existing CUSTOMER.md. What would you like to do?"
options:
- "Refine it - update specific sections based on new learnings"
- "Start fresh - create a new customer profile from scratch"
- "Review it - just read through what's there"
```
**If "Refine it"**: Ask which sections need updating, then jump to Phase 4 with targeted questions.
**If "Start fresh"**: Proceed to Phase 1 (Discovery) - will overwrite the existing doc.
**If "Review it"**: Read and display the doc, then ask what they want to do next.
3. **If NOT found**: Proceed directly to Phase 1 (Discovery)
**Mark "Check for existing CUSTOMER.md" todo `completed`.**
### Phase 1: Discovery
**Mark "Discovery questions" todo `in_progress`.**
Use AskUserQuestion tool with multi-choice options for EVERY question. **Put the recommended option FIRST** with "(Recommended)" suffix to reduce cognitive load.
**After EACH question**, append to discovery log:
```markdown
### Q{N}: {question topic}
**Answer**: {user's answer}
**Impact**: {what this reveals about ICP}
**New areas**: {any new todos to add}
```
**Recommendation Strategy**: Since there's no prior document, recommendations are based on:
- Most common patterns for solo devs/indie hackers
- Product type (once selected, informs subsequent recommendations)
- Sensible defaults that apply to most cases
**Question 1: Product Stage**
```
header: "Product Stage"
question: "Where is your product in its lifecycle?"
options:
- "Early stage - have some users, finding PMF (Recommended)"
- "Pre-launch - still building, no customers yet"
- "Growth stage - PMF found, scaling acquisition"
- "Mature - established product, optimizing"
```
Recommendation: "Early stage" is most common for solo devs using this tool.
**Question 2: Product Type**
```
header: "Product Type"
question: "What type of product are you building?"
options:
- "B2B SaaS - software for businesses (Recommended)"
- "Developer tool - for engineers/developers"
- "B2C app - consumer application"
- "Marketplace/Platform - connecting buyers and sellers"
- "Content/Media - newsletter, course, community"
- "Physical product - hardware or tangible goods"
```
Recommendation: "B2B SaaS" is most common. Use selected type to inform later recommendations.
**Question 3: Problem Space** (Free text)
```
header: "Problem"
question: "What core problem does your product solve?"
freeText: true
placeholder: "Describe the main pain point (e.g., 'Teams waste hours manually syncing data between tools')"
```
This is essential context that's hard to multiple-choice. Get 1-2 sentences.
**Question 4: Current Customer Knowledge**
```
header: "Current Understanding"
question: "How well do you know your ideal customer today?"
options:
- "Somewhat - have some customers, seeing some patterns (Recommended)"
- "Very well - I've talked to many, have clear patterns"
- "Vaguely - have hypotheses but not validated"
- "Not at all - need to figure this out from scratch"
```
Recommendation: "Somewhat" - most users have some signal but need help structuring it.
**Question 5: Primary Value Proposition**
```
header: "Value Prop"
question: "What's the PRIMARY value you deliver?"
options:
- "Save time - automation, efficiency (Recommended)"
- "Save money - cost reduction, better ROI"
- "Make money - revenue generation, growth"
- "Reduce risk - security, compliance, reliability"
- "Improve quality - better outcomes, fewer errors"
- "Enable capability - do something previously impossible"
- "Provide enjoyment - entertainment, satisfaction"
```
Recommendation: "Save time" is the most common value prop for SaaS products.
**Question 6: Purchase Decision**
Recommendation based on product type:
- B2B SaaS → "Team lead" or "Individual user"
- Developer tool → "Individual user"
- B2C → "Individual user"
- Enterprise → "Multiple stakeholders"
```
header: "Buyer Type"
question: "Who makes the purchase decision?"
options:
- "Individual user - they buy for themselves (Recommended for B2C/dev tools)"
- "Team lead - buys for their team (Recommended for B2B SaaS)"
- "Executive/C-suite - strategic purchase"
- "Procurement/IT - goes through formal process"
- "Multiple stakeholders - committee decision"
- "No purchase - free product, other monetization"
```
**Question 7: Known Customer Characteristics**
```
header: "Customer Traits"
question: "What do you know about your best customers? (Select all that apply)"
options:
- "Pain intensity (desperate vs nice-to-have) (Recommended)"
- "Specific job title or role (Recommended)"
- "Behavioral patterns (power users, specific workflows)"
- "Company size or type"
- "Technical skill level"
- "Specific industry or vertical"
- "Geographic location"
multiSelect: true
```
Recommendation: "Pain intensity" and "Job title/role" are the most actionable traits for targeting.
**Question 7b: Trait Details (Follow-up)**
For EACH trait selected in Q7, ask a targeted follow-up to capture specifics:
| If Selected | Follow-up Question |
|-------------|-------------------|
| Job title/role | "What specific titles? (e.g., 'Engineering Manager', 'Head of Product')" |
| Company size | "What size range? (e.g., '10-50 employees', 'Series A-B startups')" |
| Technical skill | "What skill level? (e.g., 'Can write code', 'Uses no-code tools')" |
| Industry | "Which industries? (e.g., 'Fintech', 'Healthcare SaaS')" |
| Geographic | "Which regions? (e.g., 'US-based', 'English-speaking markets')" |
| Behavioral | "What behaviors? (e.g., 'Uses Slack daily', 'Already has a workflow')" |
| Pain intensity | "How desperate? (e.g., 'Hair on fire', 'Nice efficiency gain')" |
Use free-text for these follow-ups - the specifics matter and are hard to predict.
**Question 8: What They're NOT**
Recommendation based on product type:
- B2B SaaS (small team) → Recommend "Enterprise" as anti-persona
- Developer tool → Recommend "Beginners" as anti-persona
- B2C consumer → Recommend "Enterprise" as anti-persona
```
header: "Anti-Personas"
question: "Who is explicitly NOT your customer? (Select all that apply)"
options:
- "Enterprise (too slow, complex sales) (Recommended for solo devs)"
- "Price-sensitive buyers (race to bottom) (Recommended)"
- "Beginners (need too much hand-holding)"
- "SMB (can't afford, high churn)"
- "Experts (don't need the product)"
- "Specific industry (bad fit)"
- "Not sure yet - need to figure this out"
multiSelect: true
```
Recommendation: Most solo devs should avoid "Enterprise" (sales cycle too long) and "Price-sensitive" (race to bottom).
**Question 8b: Anti-Persona Details (Follow-up)**
For EACH anti-persona selected in Q8 (except "Not sure yet"), ask why:
| If Selected | Follow-up Question |
|-------------|-------------------|
| Enterprise | "Why avoid enterprise? (e.g., 'Sales cycle too long', '6+ month deals kill us')" |
| SMB | "Why avoid SMB? (e.g., 'Churn too high', 'Can't afford $X/mo')" |
| Beginners | "Why avoid beginners? (e.g., 'Support burden', 'Don't understand the value')" |
| Experts | "Why avoid experts? (e.g., 'Build their own', 'Our solution is too basic')" |
| Price-sensitive | "Why avoid price-sensitive? (e.g., 'Race to bottom', 'High churn')" |
| Specific industry | "Which industries and why? (e.g., 'Healthcare - compliance nightmare')" |
Use free-text - understanding the WHY behind anti-personas is critical.
**Question 9: Research Needs**
Recommendation based on customer knowledge (Q4):
- "Not at all" or "Vaguely" → Recommend "Full research"
- "Somewhat" → Recommend "Light research"
- "Very well" → Recommend "No research"
```
header: "Research"
question: "Do you want me to research your market and competitors to inform the ICP?"
options:
- "Light research - just validate my assumptions (Recommended)"
- "Yes, full research - ICP patterns, competitors, market data (takes longer)"
- "No research - I have enough context, just help me structure it"
```
Default recommendation: "Light research" balances speed with validation.
**Question 10: Additional Context** (Free text)
```
header: "Context"
question: "Anything else I should know?"
freeText: true
placeholder: "Product name, URL, existing customers, specific hypotheses, competitors you know about..."
```
**Question 11: Current State & Triggers** (Free text)
```
header: "Current State"
question: "What does your ICP do TODAY to solve this problem (before your product)?"
freeText: true
placeholder: "e.g., 'They use spreadsheets and manually update them weekly' or 'They don't solve it at all'"
```
```
header: "Triggers"
question: "What triggers them to actively seek a solution?"
freeText: true
placeholder: "e.g., 'When they miss a deadline due to the problem' or 'When a new team member joins and asks why they do it this way'"
```
**Question 12+: Gap-Filling Questions**
After the core questions, assess whether you have enough clarity to proceed. If ANY of these are unclear, ask follow-up questions:
| Gap | Follow-up Needed |
|-----|-----------------|
| Unclear ICP boundaries | "Where exactly is the line between good and bad customers?" |
| Vague pain points | "Can you give me a specific example of when this pain happens?" |
| Unknown current state | "Walk me through what they do today, step by step" |
| Unclear triggers | "What's the moment when they realize they need to solve this?" |
| Missing context | "What else should I know about their world?" |
**Keep asking until you are highly confident** about:
1. Who the ICP is (specific, not vague)
2. Who they are NOT (clear anti-personas)
3. What problem they have (specific pain)
4. What they do today (current state)
5. What triggers them to seek a solution
6. How research should be focused (if requested)
**Todo Expansion Triggers** (add todos when user reveals):
| User Answer Reveals | Add Todo For |
|---------------------|--------------|
| Multiple customer segments | Each segment's characteristics |
| Complex buying process | Purchase journey mapping |
| Industry-specific needs | Industry research |
| Unclear anti-personas | Anti-persona validation |
| New pain points | Pain point prioritization |
Only proceed to Phase 2/3 when gaps are filled.
**Mark "Discovery questions" todo `completed`.**
### Phase 2: Research Phase (If Requested)
**If user requested research, mark "Research" todo `in_progress`.**
If user requested research, launch 2-3 parallel opus agents to gather data. **Skip this phase if user said "No research"**.
**IMPORTANT**: Launch these agents IN PARALLEL (single message with multiple agent invocations):
**Agent 1: ICP Pattern Researcher**
```
Launch Task agent (subagent_type: general-purpose, model: opus) with prompt:
"Research ideal customer profile patterns for [product type] in the [problem space].
Find:
1. Common job titles and roles of buyers
2. Company characteristics (size, stage, industry)
3. Behavioral indicators of high-intent buyers
4. Pain points that drive purchase decisions
5. Typical objections and concerns
View on GitHub