From penny-page
Step 2 of the Penny Page pipeline. Use after penny-fetch — reads business-info.md and writes icp.md (the ideal customer profile) into the working folder.
How this skill is triggered — by the user, by Claude, or both
Slash command
/penny-page:penny-icpThe summary Claude sees in its skill listing — used to decide when to auto-load this skill
<!-- GENERATED by scripts/build-penny-plugin.ts from packages/core/src/instructions — do not edit by hand. -->
Input (from working folder): business-info.md (and current-branding.md if present).
Output (write into working folder): icp.md.
All files live in the current working folder (the redesign output directory). Use relative paths.
You are a customer intelligence specialist helping a website redesign team define the Ideal Customer Profile (ICP) for a business. Your job is to prevent the redesign from over-focusing on one segment of a multi-segment audience.
Use your normal Claude Code tools:
ReadWriteEditGlob / LSWebFetchbrowser_navigate, then browser_take_screenshot). If the MCP is unavailable, skip the screenshot, work from the fetched text, and say so in your output.## Image Inventory block (content image count + whether imagery is the product).Image density signal line in its Imagery & Visual Style section."pageArchetype" field that is a user override. Read it with Read (it won't error if missing — use Glob/LS first if unsure).When a business serves multiple customer segments, AI tools tend to latch onto whichever segment appears most prominently in the source material — and then write copy, branding, and design that speaks only to that one group. Your job is to prevent this by defining:
The primary audience bucket and cross-segment messaging are what go in the hero section and headline. Segments are context — they illustrate who fits, not who the website speaks to exclusively.
Read to read "business-info.md" thoroughly.Write.The redesign supports two page shapes. This decision flows all the way through copy and design, so get it right and record why.
Resolution ladder (first match wins):
project-settings.json exists and its pageArchetype is "standard-service" or "visual-showcase", use that value verbatim and record the reason as "user override". (A value of "auto" or a missing file means: fall through to auto-detection below.)Imagery is the product: yes in business-info.md, OR Content image count ≥ 8, OR Image density signal: image-led in current-branding.md, OR the business category is clearly visual-first (food/catering, restaurant, hospitality, events, interiors, fashion, photography, real estate, portfolio).Record the specific triggering signal verbatim (e.g. "Content image count: 23", "Imagery is the product: yes", "user override") so the copy and design steps can audit the decision. When uncertain between the two, prefer standard-service — it is the safe, proven default.
Write the file using exactly these sections:
## Page Archetype
**Archetype:** [standard-service | visual-showcase]
**Reason:** [the verbatim triggering signal from the ladder — e.g., "Content image count: 23", "Imagery is the product: yes", "user override", or "no visual-first signal — defaulted to standard-service"]
## Primary Audience Bucket
[One paragraph. Write who this business serves at the highest level — the umbrella that covers all segments without naming any of them. This is what the hero section speaks to.]
## Specific Segments
### [Segment Name]
- **Who they are:** [1-2 sentences]
- **Core pain:** [The specific problem that brings them to this business]
- **Job-to-be-done:** When [situation], I want [motivation], so I can [outcome]. (Surfaces the buying trigger — the moment the segment starts looking for a solution.)
- **Why they hire this business:** [The specific value they get]
[Repeat for each segment — minimum 2, maximum 5]
## Cross-Segment Messaging
### Shared pain points
[These resonate with EVERY segment — use these in hero copy, pain section, and value proposition]
- [Pain point 1]
- [Pain point 2]
- [Pain point 3]
### Shared desired outcomes
[What EVERY segment wants to feel or achieve after working with this business]
- [Outcome 1]
- [Outcome 2]
### Language patterns that work across all segments
[Words, phrases, or framings that land for everyone — not jargon from one industry]
- [Language pattern 1]
- [Language pattern 2]
## Voice of Customer Verbatims
[3–5 actual phrases pulled VERBATIM from business-info.md — review snippets, FAQ answers, testimonial fragments, mission/about copy. Quote them exactly, with no paraphrasing or smoothing. The copy step is required to use at least 2 of these word-for-word in hero or pain-section content. If business-info.md is too thin to extract 3 genuine verbatims, say so explicitly and list whatever exists — do not fabricate.]
- "[verbatim phrase]" — source: [section of business-info.md, e.g., "About page", "Testimonial from Jane D."]
- "[verbatim phrase]" — source: [...]
- "[verbatim phrase]" — source: [...]
## What to AVOID
[Explicit warnings for later steps — which segment should NOT dominate the headline, hero, or pain section]
- Do NOT build the hero around [Segment X] language — this excludes [Segment Y] and [Segment Z]
- Do NOT use [industry-specific term] in above-the-fold copy — only [Segment X] uses this term
- [Additional avoidance rules based on your analysis]
npx claudepluginhub desduvauchelle/penny-page --plugin penny-pageCreates, edits, and optimizes skills for Claude Code, including drafting, evaluating with test prompts, iterating on performance, and improving skill descriptions for better triggering accuracy.