user-segmentation-profiler · diff
git:20260413.e24c93f to git:20260906.e7c44bd
35 added, 17 removed. Audit A to A.
---
name: user-segmentation-profiler
description: Classifies the user into an ICP tier (beginner/builder/growth) based on experience, constraints, and goals. Run once per user session before any workflow.
---
- <!-- version: 0.1.0 | outputs: memory/user_profile.md -->
+ <!-- version: 0.2.0 | outputs: memory/user_profile.md -->
# 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
- <!-- TODO: Add full interview questions and scoring rubric -->
+ 1. 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.
+ 2. Ask the missing constraint questions in **one message**, numbered, so the user can answer in one reply:
- 1. Ask the user about shipped apps (count, revenue, outcome).
- 2. Ask about available time per week and budget for ads/tools.
- 3. Ask about risk tolerance (need income vs. exploring).
- 4. Score against the tier rubric below.
- 5. Write output to `memory/user_profile.md`.
+ > Three quick questions to calibrate the recommendations:
+ > 1. Have you shipped a product before? If yes: how many, and did any earn revenue?
+ > 2. Roughly how many hours per week can you give this, and what monthly budget (USD) for tools or ads?
+ > 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)?
+ 3. 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.
+ 4. 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.
+ 5. 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.
+ 6. Merge into `memory/user_profile.md`, preserving every field the interviewer wrote.
+
### Tier Rubric
- | Tier | Criteria |
- |---|---|
- | `beginner` | No shipped apps, no audience, needs full guidance |
- | `builder` | Some experience, weak GTM/validation skills |
- | `growth` | Understands CAC/LTV, wants leverage and scale |
+ | 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):
```json
{
"icp_tier": "beginner | builder | growth",
- "budget_constraint": "low | medium | high",
- "time_per_week_hours": 0,
- "risk_tolerance": "low | medium | high",
+ "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
- <!-- TODO: Handle case where user refuses to answer questions -->
- <!-- TODO: Define re-segmentation trigger (e.g., user reveals new info mid-session) -->
+ - `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.