Skill: user-segmentation-profiler
Purpose
Classify the user into one of three ICP tiers and capture their constraints so all subsequent skills can tailor their output and recommendations appropriately.
Input
- Conversation history or direct user answers about experience, budget, time, and goals.
- Optional: existing
memory/user_profile.md (update if already exists)
Process
Read memory/user_profile.md. If the interviewer already captured shipped products, time, budget, and risk tolerance, do not ask again; go to step 4.
Ask the missing constraint questions in one message, numbered, so the user can answer in one reply:
Three quick questions to calibrate the recommendations:
- Have you shipped a product before? If yes: how many, and did any earn revenue?
- Roughly how many hours per week can you give this, and what monthly budget (USD) for tools or ads?
- How much risk are you comfortable with: low (I need this to work within a few months), medium, or high (I can experiment for a year)?
If the user declines any part, write "unknown" for that field, add it to profile_gaps, and move on. Do not re-ask. Downstream skills treat unknown budget as bootstrap and unknown risk as low, and the decision memo lists the gaps.
Score against the tier rubric below. When evidence is mixed, assign the lower tier and record the caveat in tier_rationale; a wrong upgrade sends a founder into channels they cannot run.
Write strategy_recommendations (3–6 bullets) that follow from the tier and constraints: which channels to prefer, what budget assumptions downstream skills should use, and what pace the kill criteria should assume.
Merge into memory/user_profile.md, preserving every field the interviewer wrote.
Tier Rubric
| Tier |
Assign when |
Downstream effect |
beginner |
No shipped product, no audience, or fewer than 5 hours/week |
Channels with fast feedback only; paid off the table; effort estimates upgraded one level |
builder |
Shipped at least one product but no revenue, or revenue without repeatable acquisition; can build but has not sold |
No adjustment; paid over $500/mo flagged risky |
growth |
Shipped a product that earned revenue AND demonstrates acquisition literacy (talks in CAC, LTV, conversion, channels) |
Paid channels unlocked; effort estimates downgraded one level |
Marketing or growth experience alone is a growth signal, not proof; without shipped revenue assign builder and note "re-segment to growth if a revenue-generating product is confirmed".
Re-segmentation Triggers
Re-run this skill (and note it in the profile) when the user reveals any of: a shipped product not previously mentioned, revenue figures, an audience of meaningful size, a change in hours or budget, or a change in whether this is a main focus or a side project.
Output
Write to memory/user_profile.md (merge with existing if present):
{
"icp_tier": "beginner | builder | growth",
"tier_rationale": "",
"shipped_products": 0,
"revenue_history": "none | some | repeatable | unknown",
"budget_constraint": "low | medium | high | unknown",
"budget_monthly_usd": null,
"time_per_week_hours": null,
"main_focus_or_side_project": "main | side | unknown",
"risk_tolerance": "low | medium | high | unknown",
"profile_gaps": [],
"strategy_recommendations": []
}
Notes
budget_constraint maps to cac-modeler budget tiers: low = bootstrap, medium = lean, high = moderate or serious. unknown is treated as bootstrap.
risk_tolerance sets the pace of kill criteria in decision-memo: low = decide within the RAT window, medium = one extra iteration, high = up to three iterations before dropping.
- The idea-validation workflow re-checks these three fields before cac-modeler (the profile gap gate) and asks them if still missing.
1---2name: user-segmentation-profiler3description: Classifies the user into an ICP tier (beginner/builder/growth) based on experience, constraints, and goals. Run once per user session before any workflow.4---56<!-- version: 0.2.0 | outputs: memory/user_profile.md -->78# Skill: user-segmentation-profiler910## Purpose1112Classify the user into one of three ICP tiers and capture their constraints so all subsequent skills can tailor their output and recommendations appropriately.1314## Input1516- Conversation history or direct user answers about experience, budget, time, and goals.17- Optional: existing `memory/user_profile.md` (update if already exists)1819## Process20211. Read `memory/user_profile.md`. If the interviewer already captured shipped products, time, budget, and risk tolerance, do not ask again; go to step 4.222. Ask the missing constraint questions in **one message**, numbered, so the user can answer in one reply:2324 > Three quick questions to calibrate the recommendations:25 > 1. Have you shipped a product before? If yes: how many, and did any earn revenue?26 > 2. Roughly how many hours per week can you give this, and what monthly budget (USD) for tools or ads?27 > 3. How much risk are you comfortable with: **low** (I need this to work within a few months), **medium**, or **high** (I can experiment for a year)?28293. If the user declines any part, write `"unknown"` for that field, add it to `profile_gaps`, and move on. Do not re-ask. Downstream skills treat `unknown` budget as bootstrap and `unknown` risk as low, and the decision memo lists the gaps.304. Score against the tier rubric below. When evidence is mixed, assign the lower tier and record the caveat in `tier_rationale`; a wrong upgrade sends a founder into channels they cannot run.315. Write `strategy_recommendations` (3–6 bullets) that follow from the tier and constraints: which channels to prefer, what budget assumptions downstream skills should use, and what pace the kill criteria should assume.326. Merge into `memory/user_profile.md`, preserving every field the interviewer wrote.3334### Tier Rubric3536| Tier | Assign when | Downstream effect |37|---|---|---|38| `beginner` | No shipped product, no audience, or fewer than 5 hours/week | Channels with fast feedback only; paid off the table; effort estimates upgraded one level |39| `builder` | Shipped at least one product but no revenue, or revenue without repeatable acquisition; can build but has not sold | No adjustment; paid over $500/mo flagged risky |40| `growth` | Shipped a product that earned revenue AND demonstrates acquisition literacy (talks in CAC, LTV, conversion, channels) | Paid channels unlocked; effort estimates downgraded one level |4142Marketing or growth experience alone is a `growth` **signal**, not proof; without shipped revenue assign `builder` and note "re-segment to growth if a revenue-generating product is confirmed".4344### Re-segmentation Triggers4546Re-run this skill (and note it in the profile) when the user reveals any of: a shipped product not previously mentioned, revenue figures, an audience of meaningful size, a change in hours or budget, or a change in whether this is a main focus or a side project.4748## Output4950Write to `memory/user_profile.md` (merge with existing if present):5152```json53{54 "icp_tier": "beginner | builder | growth",55 "tier_rationale": "",56 "shipped_products": 0,57 "revenue_history": "none | some | repeatable | unknown",58 "budget_constraint": "low | medium | high | unknown",59 "budget_monthly_usd": null,60 "time_per_week_hours": null,61 "main_focus_or_side_project": "main | side | unknown",62 "risk_tolerance": "low | medium | high | unknown",63 "profile_gaps": [],64 "strategy_recommendations": []65}66```6768## Notes6970- `budget_constraint` maps to cac-modeler budget tiers: low = bootstrap, medium = lean, high = moderate or serious. `unknown` is treated as bootstrap.71- `risk_tolerance` sets the pace of kill criteria in decision-memo: low = decide within the RAT window, medium = one extra iteration, high = up to three iterations before dropping.72- The idea-validation workflow re-checks these three fields before cac-modeler (the profile gap gate) and asks them if still missing.