persona
Skill0 starsChanged 51 days agoMITView on GitHub
Generates N distinct synthetic personas, interviews them in character (scales + open answers), and writes a Markdown report with scores, themes, and takeaways. Works worldwide for product research (pricing, messaging, features) and for playful use (game NPCs, fiction, dinner parties, debate panels, roast sessions). Use when the user says "create personas", "generate personas", "persona research", "synthetic personas", "interview personas", "simulate users", "ask my customers", "roleplay stakeholders", or wants a cast of characters interviewed on a topic. Do NOT use for recruiting real participants, published market-size stats, legal proof, or live customer interviews.
12 other projects use a version of this.
Adopted by
Most recently taken up by
- zrosenbauer/skillstheir own version, first seen Nov 1, 2026
- LuciferDono/personatheir own version, first seen Oct 20, 2026
- mehrad-dm/mastermindtheir own version, first seen Oct 13, 2026
- akachandan1/proofstacktheir own version, first seen Oct 11, 2026
- stritar/skillstheir own version, first seen Sep 11, 2026
- zyphr-labs/bounty-harnesstheir own version, first seen Aug 26, 2026
Used with
Projects with it also use analyze.
Other files people use alongside this one.
Files found in the same public projects as a version of this one, more often than they turn up anywhere else. Each project counts once, large collections count for less, and this file's own repository is left out.
AnthropicSkillanalyze
Answer data questions -- from quick lookups to full analyses. Use when looking up a single metric, investigating what's driving a trend or drop, comparing segments over time, or preparing a formal data report for stakeholders.
Also in 3 projects that use this
Other versions12 projects use a version of this.
Word for word · 0
None found.
Edited · 0
None found.
Wrote their own version · 12
- Mehdibargach/claude-code-pm-skills★ 97same name
- rainday/smart-blog-skills★ 35same name
- mehrad-dm/mastermind★ 23same name
- duguobao812718-wq/persona-skill★ 4same name
- tatertot365/claude-persona-plugin★ 3same name
- cacardinal/laila★ 1same name
- takotyan00/claude-code-life★ 1same name
- zrosenbauer/skills★ 1same name
- zyphr-labs/bounty-harness★ 1same name
- akachandan1/proofstack★ 0same name
2 more not listed
How matches are found. Word for word: the exact same text. Edited: shares passages with this file (“99% same” means 99% of its five-word phrases also appear here; 10% or more counts). Their own version: similar meaning, or, weakest, the same name. We can’t tell which project had it first. Projects are counted among the 200 most-starred candidates, and mentions are links to the repository we found, up to 50 per site, so both counts are a floor.
The file
We split this skill into the rules it gives an agent
8 rules. 0 are common, 3 are distinctive, and 5 are very specific to this project.
0
Common
Most of the 10 edited versions we read keep these.
3
Distinctive
This author's own choices. Worth a look.
5
Very specific
Tied to their project's names, files or tools. Probably skip.
- Common
- Distinctive
- Very specific
- Very specific: line 28
Prefer counts (6/10) over fake precision (62.7% confident).
- Very specific: line 46
If something’s missing, ask (Claude Code: AskUserQuestion.
- Distinctive: line 48
Smart defaults for fun: If the ask is playful, propose one extra “chaos” question (e.g.
- Very specific: line 52
Create n personas. Each gets:
- Distinctive: line 65
When the brief names a culture/country, ground details there.
- Very specific: line 68
Never clone the same persona with cosmetic edits.
- Distinctive: line 81
No salesy agreement. Dislike and refusal are useful data (or good comedy).
- Very specific: line 89
When scripts/check_report.py is installed next to this skill, run it on the report before finishing (or on persona-report.md if saved) and …
“Common” is measured: kept by at least 6 in 10 of the 10 edited versions of this file we could read. “Very specific” is our guess from the words: it names a file, a command, a setting or the project itself.
Files
Persona
Spin up a cast of distinct people (or characters), interview them in character, and turn answers into a clear report.
Loop: GENERATE → INTERVIEW → REPORT → SUMMARY.
This skill is for any market or culture. Take locale, language, and context from the user. Never assume Australia, the US, or any default country.
Two flavours of the same loop:
| Flavour | Typical asks | Report tone |
| Research | pricing, messaging, features, content, positioning | Crisp, decision-ready, validation-minded |
| Play | game NPCs, fiction, parties, debate panels, roasts, “what if” casts | Same structure, lighter, more voice and comedy when invited |
Both are valid. Keep the persona math honest in both.
Important
- Missing inputs → ask. Do not invent a silent default product, country, or cast.
- Personas must actually differ (role, stakes, budget/power, temperament). Cosmetic clones are a fail.
- Allow mid scores,
unsure, and dislike. Uniform 9/10 cheerleading is a fail. - Prefer counts (
6/10) over fake precision (62.7% confident). - Research flavour: synthetic results are hypotheses. Always say validate with real people before real money.
- Play flavour: still mark outputs as fictional. Do not dress comedy as market data.
- Match the user’s language and spelling (e.g. en-US, en-GB, en-AU, or the language they write in).
Instructions
Step 1 — Gather inputs
| Input | Rule |
n | How many personas. Research default 5–10. Play default 5–12 (ensembles up to 30). Hard cap 30. Reject 0 or >30. If n is large, cap questions at 3–5 so answers stay distinct. |
questions | Each question is scale (0–10) or open |
context | What we’re testing or playing with (product, scene, game, topic) |
cast | Optional constraints: age, role, budget, culture, vibe, era, species… |
flavour | research or play. Infer from the ask; confirm if mixed. |
locale | Country/culture/market only if the brief needs it. Infer; ask if it would change the cast. |
If something’s missing, ask (Claude Code: AskUserQuestion; otherwise a short numbered prompt). If they give fewer than 3 questions, suggest 3–5 more; let them accept, edit, or skip.
Smart defaults for fun: If the ask is playful, propose one extra “chaos” question (e.g. “What’s the worst thing that could happen on the night?”). For research, propose one trade-off question.
Step 2 — GENERATE
Create n personas. Each gets:
- id (
P1…) - name + one-line hook
- role / life context (or species, era, class — for fiction)
- resources (money, time, power, skill)
- goals, fears, constraints
- decision style + deal-breakers
- voice note (how they talk — one line)
Requirements:
- Vary power, budget, time pressure, and temperament — not just names and ages.
- When the brief names a culture/country, ground details there. When it doesn’t, stay neutral or ask.
- Research with
n >= 5: include at least one price-sensitive, one time-poor, one risk-averse profile. - Play: include at least one wildcard (chaotic, petty, absurdly literal, or hostile).
- Never clone the same persona with cosmetic edits.
Step 3 — INTERVIEW
For every persona × question:
- scale → integer 0–10 + 1–2 sentences tied to their goals/fears
- open → 1–3 sentences in their voice
Rules:
- Stay consistent to that persona across the full run.
- Let them be wrong, biased, or bored. They are not user testers for hire.
- No salesy agreement. Dislike and refusal are useful data (or good comedy).
- Research: allow
unsurewhen the profile wouldn’t know. - Play: allow jokes, drama, and conflict — still in character.
Step 4 — REPORT
Emit one Markdown report in chat (write a file only if they asked to save).
When scripts/check_report.py is installed next to this skill, run it on the report before finishing (or on persona-report.md if saved) and fix any ERROR-level gaps.
## Executive Summary
- Headline takeaway
- Main friction or punchline
- Standout persona
## Scoreboard
| Question | Avg (0-10) | Median | Top / bottom split |
|----------|------------|--------|--------------------|
| ... | ... | ... | High group vs low group |
## Themes
- **Theme** — synthesis -> *"quote" (P##, hook)*
- Aim for 3 themes when the data supports it
## Takeaways
1. **Action / lesson** — backed by [count/10 at threshold] or [theme]. Next step: [...]
## Golden Combos
- **Golden [X]**: best option/wording/structure across the cast, plus who disagreed
## Footnote
*Synthetic personas (N=…) for [context/locale if any], based on the brief — not real respondents.
Research: ideate and prioritise only; validate with real users before spending money or publishing claims.
Play: fictional characters for entertainment/prototyping; not market evidence. Follow local ad/research rules if you publish anything commercial.*Step 5 — SUMMARY
After the report:
- Who they are — 2–3 sentences on the cast
- Key findings — numbered, one each
- Top 3 takeaways — ranked
- Golden combos — one per major question
Step 6 — Follow-ups
Stay on the same cast unless asked to rebuild.
- Answer from existing personas
- Show counts (
7/10 prefer X) when it’s a pattern - Give a short golden combo
- Offer a saved summary when the session feels done
Examples
Research (global SaaS)
“8 personas in Germany and Brazil for a €29/€99 pricing page — will they upgrade?”
→ Flavour research. Locale DE + BR (not AU). Interview on price, clarity, upgrade trigger. Report with counts + validate-with-real-buyers footnote.
Play (game NPCs)
“6 shopkeeper NPCs for my fantasy city — interview them on whether they’d sell to a suspicious hero.”
→ Flavour play. Wildcard shopkeeper required. Scales can be trust/risk; keep the scoreboard. Lighter footnote (fictional).
Play (social)
“Dinner party: 5 historical figures on AI. Who derails the table?”
→ Flavour play. Voice-heavy open answers. Golden combo = how to seat them.
Follow-up
“What jobs do they hire this for?” after a research run
→ Stay on cast. Counts + golden job-to-be-done. No new personas.
Troubleshooting
| Problem | Fix |
| Everyone sounds the same | Re-generate with explicit power/budget/temperament clashes; require a wildcard |
| All scores 8–10 | Force trade-offs; invite dislike, boredom, unsure |
| Feels stuck in one country | Drop hardcoded market; ask locale only when the cast needs it |
| User wants “statistically significant” | Refuse for synthetic n. Point at Footnote + real-user validation |
| Jokes getting in the way of a business call | Default to research tone unless they asked for play |
| Too stiff for a party/game prompt | Turn up voice, conflict, and one chaos question |
| They want a file | Write persona-report.md in the working directory |
check_report.py flags missing sections | Fill Executive Summary / Scoreboard / Themes / Takeaways / Golden Combos / Footnote and re-check |
Does it work?
Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.
No reviews yet
People and AI agents can review whether this works in practice. Say what you used it for, and whether it worked.
- It worked
- Partly
- It didn't
Using an agent? It can post a review for you after it has run the file: the MCP tool registry_write, action report. How to connect one.
Your trail
Files you open will collect here, so you can find them again.
Open two or more, and you can remix the rules you like from each into one list. Kept in this browser only.
Now do this for your own.
Bring your CLAUDE.md, AGENTS.md or skills. agentleFS shows which of your rules are common, which are yours and which only fit one project, and keeps one version your agents read everywhere.

