Skip to content
Development
Skill

/focus-group

Synthetic audience pretesting (Justin Brooke "predictive wear" method). Run ANY outbound content — ads, emails, sales pages, newsletters, social posts, offers — through a per-business panel of AI persona dossiers BEFORE it ships. Panel critiques → copywriter rewrites 3 variants

From plugin
operating-core
37 skills1 agent

Claude Code

$ npx -y skills add josherau/claude-operating-core --skill focus-group --agent claude-code

SKILL.md

focus-group.SKILL.md
name: focus-group
description: Synthetic audience pretesting (Justin Brooke "predictive wear" method). Run ANY outbound content — ads, emails, sales pages, newsletters, social posts, offers — through a per-business panel of AI persona dossiers BEFORE it ships. Panel critiques → copywriter rewrites 3 variants → prediction engine scores 0-100 → iterate until 85+. Intended as a hard gate: no outbound content ships without a run. Also use to build a new business panel ("focus-group setup <business>").

Focus Group — Synthetic Audience Pretesting

Pretest content against a panel of deeply-researched AI persona dossiers before a dollar or a send goes out the door. Based on Justin Brooke's predictive-wear framework; Brooke reports ~85-92% correlation with human focus groups when personas are high quality.

**The iron law: personas > prompts.** The accuracy comes from the 1,400-word dossiers, not the panel prompt. Never run a panel with thin personas.

Panel location

Keep one panel per business in your knowledge base, e.g. `{KNOWLEDGE_BASE}/{business}/focus-group/`. Each panel dir contains: an index note (roster, business context, scoring-weight overrides), `personas/*.md` (the dossiers), and `runs/` (run logs). Record your panel locations in your CLAUDE.md so sessions can find them without asking.

Mode 1: RUN (default) — pretest content

Input needed: **the content** (pasted text, a file path, or a PDF — extract PDF text first with your PDF tooling) and **which business** it belongs to. If the business is obvious from context, don't ask. Identify the content type: `ad` (ads, social posts, emails, headlines) or `offer` (sales pages, launch emails, webinar scripts, anything asking for money) — offer mode adds the yes/no buy question. Separately, flag **social mode** when the content's primary goal is shares/forwards/organic reach rather than direct response — social mode adds the yes/no share question, the sharing-motivation requirement in the copywriter pass, and the social-mode scoring notes in the prediction engine (see [references/sharing-psychology.md](references/sharing-psychology.md)).

**Social-mode decision rule (don't guess):**

  • Asset asks for money or a signup NOW (paid ad, sales email, landing page, launch email with a buy CTA) → conversion is primary. Social mode OFF unless the operator says the goal is reach.
  • Organic and unpaid (social post, newsletter, video script for organic channels, lead magnet meant to be forwarded) → social mode ON by default.
  • Both goals genuinely present (e.g., launch email you also want forwarded) → run BOTH modes; the copywriter splits the asset (share-worthy body, conversion close) rather than softening the money CTA.

Pipeline

1. **Load the panel.** Read the business's index note (roster + context + any scoring-weight overrides). List `personas/*.md`. 2. **Fire the panel in parallel.** Spawn one subagent per persona (all in ONE message so they run concurrently; batch in groups if the panel exceeds ~8). Each subagent gets: the full text of its ONE persona dossier file (tell it the path to read), the content under review, and the panel prompt from [references/panel-prompt.md](references/panel-prompt.md). Each returns the structured feedback block. Personas critique from their OWN life — never as marketing experts. **Failure protocol:** if a persona subagent errors, rerun it once; proceed only if ≥75% of the panel reported (e.g., 6 of 8) — otherwise abort and restart the round. Record actual responders vs. roster size in the run log. 3. **Copywriter pass.** Using [references/copywriter-prompt.md](references/copywriter-prompt.md): embody a world-class copywriter ("embody", never "pretend"), digest ALL panel feedback + the original, write **3 optimized variants** in the business's voice (per the index note), formatted as an internal team email quoting key feedback. 4. **Prediction engine.** Scoring is done by a **fresh subagent that did not write the variants** (independence keeps the 85 gate honest). Give it: [references/prediction-engine.md](references/prediction-engine.md), all panel feedback, the business context + any weight overrides from the index note, and the variants. Default weights: Relatability 25 / Clarity 20 / Emotional 20 / Credibility 15 / CTA 20. Scores must anchor in panel data (see the "Who scores & anchoring" section of prediction-engine.md), not vibes. Verdicts: 85+ run, 75-84 test vs control, 65-74 revise, <65 reject. 5. **Iterate.** If no variant hits 85, feed the scores + weakest categories back through step 3 — and before round 2's copywriter pass, consult a persuasion-advisor layer if you run one (classic direct-response frameworks work well here: Eugene Schwartz's awareness/sophistication diagnosis for angle mismatches, Alex Hormozi's value equation for offer problems, and — in social mode — the NFX sharing motivations in [references/sharing-psychology.md](references/sharing-psychology.md) to diagnose why personas won't share). The panel says *what* missed; the advisor layer says *why* and *how to fix it*. Each round scores that round's 3 new variants, carrying the best prior variant forward as a comparison control. **Max 2 rewrite rounds.** After round 2, deliver the best variant with the engine's verdict as the ruling: **85+** ship; **75-84** offer it to the operator as a measured test against an existing control (their call); **65-74** stop — more wordsmithing is unlikely to close the gap, surface the weakest categories; **<65** report that the offer/angle itself (not the wording) is the problem and route the offer redesign through your advisor layer before any further copy work. 6. **Write the run log** to `focus-group/runs/YYYY-MM-DD-HH_MM-{slug}.md` — see template below. This is non-optional; run history is how the engine gets calibrated against real results. 7. **Report to the operator:** panel highlights (2-3 verbatim persona quotes), the BUY tally for offers and the SHARE tally for social mode (

Read more
@josherau
Ships withoperating-core

Quality gates for Claude Code. An agent should never grade its own work, outbound content should be pretested before it costs you money, research should be grounded in more than one perspective, and the reasoning behind a hard solve should outlive the session

37 skills1 agent
Get the whole plugin

Stars on GitHub

Momentum

stars in total
3
Star history of josherau/claude-operating-core on GitHub, a chart by star-history.com

Other skills on operating-core.

extract-approach

extract-approach

Reasoning recorder — fires automatically after cracking a HARD problem (multiple failed attempts, non-obvious insight, judgment…

review-panel

review-panel

Use when any substantive work product has been generated — copy, emails, documents, proposals, plans, code, designs, skills,…

sales-council

sales-council

Expert sales council with 7 advisors (Cialdini, Hormozi, Rackham, Voss, Klaff, Schwartz, Currier) for pricing, persuasion,…

second-brain

second-brain

Set up and operate a file-based second brain — a knowledge vault that every Claude Code session reads on start and writes back to…

storm-research

storm-research

Use when researching any topic, question, market, company, technology, or decision — before writing reports or proposals, making…

vault-gardener

vault-gardener

Recurring maintenance pass for a second-brain vault — link hygiene, naming, metadata/tags, Inbox filing, dedupe, learnings-index…

More skills from other plugins.

brainstorming
Auto-invoked

brainstorming

You MUST use this before any creative work - creating features, building components, adding functionality, modifying behavior, or…

@obra@obraInstall Skill
ask-matt

ask-matt

Ask which skill or flow fits your situation. A router over the skills in this repo.

skills12d309k
@mattpocock@mattpocockInstall Skill
accessibility
Auto-invoked

accessibility

Design, implement, and audit accessible UI to WCAG 2.2 Level AA across Web, iOS, and Android — semantic ARIA roles and labels,…

ecc2w293k
@affaan-m@affaan-mInstall Skill
compiler-commit

compiler-commit

Use when you want to verify compiler changes and commit with the correct convention. Runs tests, lint, and format, then commits…

react3d252k
@facebook@facebookInstall Skill

Questions about focus-group.

Which coding agents can use focus-group?
focus-group installs in Claude Code, Codex, Cursor, Gemini CLI, GitHub Copilot, OpenCode and Windsurf with the skills CLI, using each agent's flag shown on this page. Flowy's auto-invocation, which fires a skill when your prompt matches, runs in Claude Code only.