bundles/planning/skills/icp/SKILL.md
Discover and document a product's Ideal Customer Profile as a durable .agents/memory/icp.md — segments ranked by revenue potential, each with acute pain, willingness-to-pay, buying trigger, and churn reasons. Use when a user says "define our ICP", "who is our customer", "who are we selling to", "document our ideal customer", or before roadmap-analyzer / roadmap-to-milestones need a customer to prioritize against.
npx skillsauth add shipshitdev/library icpInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
Produce one durable artifact: .agents/memory/icp.md, the ranked answer to "who do
we sell to, and why do they pay." It is the input that lets roadmap-analyzer weigh
features by revenue instead of guesswork, and lets roadmap-to-milestones sequence
work toward MRR. Ground it in what the product already says about itself before
asking the founder anything.
This skill does not build features or write roadmaps. It interviews, then writes the ICP doc — and writes it only after the draft is confirmed.
Inputs:
Outputs:
.agents/memory/icp.md written (created or updated).Creates/Modifies:
.agents/memory/icp.md only, and only after the user approves the draft.External Side Effects:
Confirmation Required:
.agents/memory/icp.md. Show the full draft first.Delegates To:
roadmap-analyzer once the ICP exists — it scores features against these segments.interview when the question is a single feature's requirements, not the whole
customer.Before any question, mine the product's own signals — the founder should never be asked what the repo already states:
.agents/memory/ (especially memory.md, context.md) and README for stated
audience or positioning..agents/memory/icp.md — if present, this run refines it, not
replaces it blind.Summarize the scan in three bullets: who the product seems built for, what pricing implies about budget, and where the audience is still ambiguous.
Ask at most three questions at a time. Ground each in the scan — never ask what step 1 already answered. The dimensions that decide whether a segment is worth building for, in priority order:
roadmap-analyzer needs to score retention work.Stop when each in-scope segment has these eight filled or explicitly marked unknown. Do not interrogate past that — a thin but honest ICP beats an invented rich one.
Order segments by realistic revenue contribution, not by how many exist. For each, weigh: budget × how acute the pain × how fast they buy × how well the product already serves them. Name a single primary segment — the one the roadmap should optimize for — and mark the rest secondary or "not yet". A founder serving three segments equally is usually serving none well; say so.
Show this in full and wait for approval before writing:
# ICP — <product>
_Last updated: <date>. Maintained by the `icp` skill; consumed by
`roadmap-analyzer` and `roadmap-to-milestones`._
## Primary segment: <name>
- **Who:** <company size / role / context>
- **Job-to-be-done:** <the outcome, in their words>
- **Acute pain:** <what breaks today, how often, painkiller vs vitamin>
- **Willingness to pay:** <budget range, who signs the check>
- **Buying trigger:** <the event that converts them>
- **Current alternative:** <what they use now; the price ceiling it sets>
- **Churn / abandonment reasons:** <why they leave or never activate>
- **Expansion path:** <what makes them pay more over time>
- **Why primary:** <one line on revenue leverage>
## Secondary segments
### <name> — <one line, why secondary / when to revisit>
<same eight fields, briefer>
## Not our ICP (explicitly)
- <segment we will not optimize for, and why — guards against scope creep>
## Revenue implications for the roadmap
- **Land:** <what unblocks a sale to the primary segment>
- **Retain:** <what churn reason the roadmap must remove>
- **Expand:** <what unlocks the expansion path>
## Open questions
- <unknown to validate with real customers, or "None">
Only after the user approves, write .agents/memory/icp.md (create the directory if
absent). Report the path and recommend the next step: roadmap-analyzer to turn this
into a revenue-ranked backlog.
development
TypeScript refactoring and modernization guidelines from a principal specialist perspective. This skill should be used when refactoring, reviewing, or modernizing TypeScript code to ensure type safety, compiler performance, and idiomatic patterns. Triggers on tasks involving TypeScript type architecture, narrowing, generics, error handling, or migration to modern TypeScript features.
tools
Resolves TypeScript and JavaScript problems across type-level programming, performance, monorepo management, migration, and modern tooling. Invoke when diagnosing "type instantiation excessively deep" errors, migrating JS to TS, configuring strict tsconfig, debugging module resolution, or choosing between Biome/ESLint/Turborepo/Nx.
tools
Turborepo monorepo build system guidance. Triggers on: `turbo.json`, task pipelines, `dependsOn`, caching, remote cache, the `turbo` CLI, `--filter`, `--affected`, CI optimization, environment variables, internal packages, monorepo structure, and package boundaries. Use when the user configures tasks or workflows, creates packages, sets up a monorepo, shares code between apps, runs changed packages, debugs cache behavior, or works in an `apps/` plus `packages/` workspace.
tools
Provides Tailwind CSS v4 performance optimization and best practices guidelines. Triggers when writing, reviewing, or refactoring Tailwind CSS v4 code; when working with Tailwind configuration, @theme directive, utility classes, responsive design, dark mode, container queries, or CSS generation optimization.