Founder consumer skill
The consumer panel.
by Jakeschincariol·MIT license·★ 322 Stars on the repo·GitHub ↗
npx degit Jakeschincariol/founder-skill/skills/founder-consumer#main ~/.claude/skills/founder-consumerChecked ·commit main
Inside this skill
SKILL.md · the author's own words# founder-consumer The craziest part of the pack. Instead of guessing whether people will buy, you ask a hundred of them, each one a sub-agent playing a specific buyer drawn from your target customer. You are the moderator. You never answer for a buyer. What the user typed after `/founder-consumer`: `$ARGUMENTS` ## The tool All bookkeeping goes through `panel.py` in this skill's folder: ```bash python3 "${CLAUDE_SKILL_DIR}/panel.py" <command> ```
Word-for-word excerpt, not a result. Read the full SKILL.md ↓
Files of Founder consumer
Show the full text127 lines
founder-consumer
The craziest part of the pack. Instead of guessing whether people will buy, you ask a hundred of them, each one a sub-agent playing a specific buyer drawn from your target customer. You are the moderator. You never answer for a buyer.
What the user typed after /founder-consumer: $ARGUMENTS
The tool
All bookkeeping goes through panel.py in this skill's folder:
python3 "${CLAUDE_SKILL_DIR}/panel.py" <command>
Below, PANEL means exactly that. If the path is not expanded, use the base
directory Claude Code printed for this skill. State lives in founder/panel/.
Step 1: the target customer
Write founder/customer.json (shape: customer.example.json in this folder):
business, andtarget: who the customer is, in one specific line.segments: 2 to 4 groups with ashareand anincomerange [low, high].behaviours: 4 to 8 buying behaviours with ashareand ahowline (daily regular, deal hunter, reads every review, loyal to a competitor...).objections: the 4 to 8 doubts this kind of buyer really has.habits(optional): everyday context lines that make a buyer concrete.
Ground it in something real. Use what the user knows about their customers, and
if /founder-competitors ran, the complaints in founder/competitors.md. If the
user has real customer data (interviews, reviews, survey answers), prefer it to
your guesses and say which parts are guesses. Show the user the profile in a few
lines and let them correct it before you deal: a wrong customer makes the whole
panel wrong.
Step 2: the pitch
Write founder/pitch.md: what a buyer would actually see. The product, the price,
where and how to get it, any opening offer. Three to six plain lines, no
superlatives, nothing the business cannot deliver. Every buyer sees exactly this.
Step 3: deal and run
PANEL init --customer founder/customer.json --pitch founder/pitch.md --n 100
PANEL prompts
init deals the persona cards (same seed, same cards; the seed is recorded).
prompts writes one brief per buyer and lists them in waves of 10. For each wave,
send ONE message with one Agent tool call per buyer in that wave (the Agent tool
is called Task in older Claude Code versions):
subagent_type:general-purposedescription:panel <id>prompt:Read <brief path> and follow it exactly. It is your whole brief.
Wait for the whole wave before the next one. Claude Code runs about 10 tool calls at once by default, so 100 buyers is 10 waves. After the last wave:
PANEL check # lists missing or broken answers
PANEL prompts # rewrites briefs for those only; run them once more
PANEL tally
If a buyer printed its JSON in its reply instead of writing the file (it happens),
file its own reply with PANEL save <id> and the reply on stdin; save refuses
anything that is not a valid answer. A buyer that fails twice is left out and
counted in the results. Never write an answer for a buyer yourself.
Before a 100-buyer run, tell the user it is 100 sub-agent calls and suggest
--quick (20 buyers) for a first look. Sub-agents write one file each into
founder/panel/answers/; in the default permission mode that is one approval per
file, so suggest accept-edits mode (Shift+Tab) for the run.
Step 4: read it to the user
PANEL tally writes founder/panel/results.md and results.json. Give the user:
- The headline: "40 buy · 60 pass" and the buy rate.
- Who buys and who doesn't: the segment and behaviour rows that differ most.
- Why they pass: the top three reasons with one quote each, as written.
- What would flip a no: the most repeated answers.
- One sentence on what to change before spending money, and which skill does it (pricing, offer, marketing).
Honest limits, say them once
These are simulated buyers. They are good at surfacing objections, segments and wording you had not thought of, and bad at predicting real conversion: language models lean agreeable, so treat the buy rate as an upper bound. Confirm the big calls with real people (a waitlist, a pre-sale, a landing page with a price) before signing anything. Do not present panel quotes as customer testimonials.
The brief every buyer gets
panel.py fills the card into a fixed template (see BRIEF in the script): who
the buyer is (name, age, segment, income, buying behaviour, a habit, the doubt
that comes to mind), the pitch word for word, an instruction not to be agreeable
and not to invent facts, and the exact JSON to write: buys, purchases in the first
month, a reason code, the reason in their own voice, their main objection, what
would change their mind, and four price answers (too cheap, a bargain, getting
expensive, too expensive). Never edit a brief for one buyer.
Output
founder/customer.json, founder/pitch.md, founder/panel/ (cards, briefs,
answers, results). Next: /founder-pricing reads the price answers,
/founder-offer and /founder-marketing read the objections.
| 1 | |
| 2 | name founder-consumer |
| 3 | description >- |
| 4 | The consumer panel. Spins up a swarm of buyer sub-agents (default 100, --quick |
| 5 | for 20) trained on the user's target customer, each with a different income, |
| 6 | age, buying behaviour and objection, shows every one the same pitch, and runs |
| 7 | the business through 100 buyer scenarios to see who buys, who doesn't, and why. |
| 8 | Tallies the answers into buy rates by segment, the reasons people pass in their |
| 9 | own words, what would flip a no, and price answers for founder-pricing. Use when |
| 10 | the user says "would people buy this", "test it on customers", "run the |
| 11 | consumer panel", "simulate buyers", "who is my customer", or "validate demand". |
| 12 | argument-hint "[--n 100 | --quick] [--seed S]" |
| 13 | |
| 14 | |
| 15 | # founder-consumer |
| 16 | |
| 17 | The craziest part of the pack. Instead of guessing whether people will buy, you |
| 18 | ask a hundred of them, each one a sub-agent playing a specific buyer drawn from |
| 19 | your target customer. You are the moderator. You never answer for a buyer. |
| 20 | |
| 21 | What the user typed after `/founder-consumer`: `$ARGUMENTS` |
| 22 | |
| 23 | ## The tool |
| 24 | |
| 25 | All bookkeeping goes through `panel.py` in this skill's folder: |
| 26 | |
| 27 | |
| 28 | python3 "${CLAUDE_SKILL_DIR}/panel.py" <command> |
| 29 | |
| 30 | |
| 31 | Below, `PANEL` means exactly that. If the path is not expanded, use the base |
| 32 | directory Claude Code printed for this skill. State lives in `founder/panel/`. |
| 33 | |
| 34 | ## Step 1: the target customer |
| 35 | |
| 36 | Write `founder/customer.json` (shape: `customer.example.json` in this folder): |
| 37 | |
| 38 | `business`, and `target`: who the customer is, in one specific line. |
| 39 | `segments`: 2 to 4 groups with a `share` and an `income` range [low, high]. |
| 40 | `behaviours`: 4 to 8 buying behaviours with a `share` and a `how` line |
| 41 | (daily regular, deal hunter, reads every review, loyal to a competitor...). |
| 42 | `objections`: the 4 to 8 doubts this kind of buyer really has. |
| 43 | `habits` (optional): everyday context lines that make a buyer concrete. |
| 44 | |
| 45 | Ground it in something real. Use what the user knows about their customers, and |
| 46 | if `/founder-competitors` ran, the complaints in `founder/competitors.md`. If the |
| 47 | user has real customer data (interviews, reviews, survey answers), prefer it to |
| 48 | your guesses and say which parts are guesses. Show the user the profile in a few |
| 49 | lines and let them correct it before you deal: a wrong customer makes the whole |
| 50 | panel wrong. |
| 51 | |
| 52 | ## Step 2: the pitch |
| 53 | |
| 54 | Write `founder/pitch.md`: what a buyer would actually see. The product, the price, |
| 55 | where and how to get it, any opening offer. Three to six plain lines, no |
| 56 | superlatives, nothing the business cannot deliver. Every buyer sees exactly this. |
| 57 | |
| 58 | ## Step 3: deal and run |
| 59 | |
| 60 | |
| 61 | PANEL init --customer founder/customer.json --pitch founder/pitch.md --n 100 |
| 62 | PANEL prompts |
| 63 | |
| 64 | |
| 65 | `init` deals the persona cards (same seed, same cards; the seed is recorded). |
| 66 | `prompts` writes one brief per buyer and lists them in waves of 10. For each wave, |
| 67 | send ONE message with one Agent tool call per buyer in that wave (the Agent tool |
| 68 | is called Task in older Claude Code versions): |
| 69 | |
| 70 | `subagent_type`: `general-purpose` |
| 71 | `description`: `panel <id>` |
| 72 | `prompt`: `Read <brief path> and follow it exactly. It is your whole brief.` |
| 73 | |
| 74 | Wait for the whole wave before the next one. Claude Code runs about 10 tool calls |
| 75 | at once by default, so 100 buyers is 10 waves. After the last wave: |
| 76 | |
| 77 | |
| 78 | PANEL check # lists missing or broken answers |
| 79 | PANEL prompts # rewrites briefs for those only; run them once more |
| 80 | PANEL tally |
| 81 | |
| 82 | |
| 83 | If a buyer printed its JSON in its reply instead of writing the file (it happens), |
| 84 | file its own reply with `PANEL save <id>` and the reply on stdin; `save` refuses |
| 85 | anything that is not a valid answer. A buyer that fails twice is left out and |
| 86 | counted in the results. Never write an answer for a buyer yourself. |
| 87 | |
| 88 | Before a 100-buyer run, tell the user it is 100 sub-agent calls and suggest |
| 89 | `--quick` (20 buyers) for a first look. Sub-agents write one file each into |
| 90 | `founder/panel/answers/`; in the default permission mode that is one approval per |
| 91 | file, so suggest accept-edits mode (Shift+Tab) for the run. |
| 92 | |
| 93 | ## Step 4: read it to the user |
| 94 | |
| 95 | `PANEL tally` writes `founder/panel/results.md` and `results.json`. Give the user: |
| 96 | |
| 97 | The headline: "40 buy · 60 pass" and the buy rate. |
| 98 | Who buys and who doesn't: the segment and behaviour rows that differ most. |
| 99 | Why they pass: the top three reasons with one quote each, as written. |
| 100 | What would flip a no: the most repeated answers. |
| 101 | One sentence on what to change before spending money, and which skill does it |
| 102 | (pricing, offer, marketing). |
| 103 | |
| 104 | ## Honest limits, say them once |
| 105 | |
| 106 | These are simulated buyers. They are good at surfacing objections, segments and |
| 107 | wording you had not thought of, and bad at predicting real conversion: language |
| 108 | models lean agreeable, so treat the buy rate as an upper bound. Confirm the big |
| 109 | calls with real people (a waitlist, a pre-sale, a landing page with a price) |
| 110 | before signing anything. Do not present panel quotes as customer testimonials. |
| 111 | |
| 112 | ## The brief every buyer gets |
| 113 | |
| 114 | `panel.py` fills the card into a fixed template (see `BRIEF` in the script): who |
| 115 | the buyer is (name, age, segment, income, buying behaviour, a habit, the doubt |
| 116 | that comes to mind), the pitch word for word, an instruction not to be agreeable |
| 117 | and not to invent facts, and the exact JSON to write: buys, purchases in the first |
| 118 | month, a reason code, the reason in their own voice, their main objection, what |
| 119 | would change their mind, and four price answers (too cheap, a bargain, getting |
| 120 | expensive, too expensive). Never edit a brief for one buyer. |
| 121 | |
| 122 | ## Output |
| 123 | |
| 124 | `founder/customer.json`, `founder/pitch.md`, `founder/panel/` (cards, briefs, |
| 125 | answers, results). Next: `/founder-pricing` reads the price answers, |
| 126 | `/founder-offer` and `/founder-marketing` read the objections. |
| 127 |
Discussion
Alternatives
Browse more free Claude skills or everything in Product.