From rethink-surveys
Design, critique, or scaffold surveys grounded in Caroline Jarrett, Dillman, and Tourangeau methods. Use when designing a new survey, critiquing an existing one, scoring or clustering responses, or turning questions into an app. Triggers on "survey", "questionnaire", "user research", "customer discovery", "intent capture", "interview script", "lint my survey", "score responses", or "how to ask better questions". When the bundled MCP server is connected, prefer its deterministic tools (`critique_survey`, `get_template`, `design_survey_session`, `score_response`, `cluster_responses`) over manual reasoning. Captures real past behavior over hypotheticals, supports text/voice/AI-interviewer modalities, and includes templates for event organizers, startup founders, and gig-economy workers.
How this skill is triggered — by the user, by Claude, or both
Slash command
/rethink-surveys:rethink-surveysThe summary Claude sees in its skill listing — used to decide when to auto-load this skill
A survey is a conversation with a busy person. Design it like one.
A survey is a conversation with a busy person. Design it like one.
This skill packages a framework for designing, critiquing, and operationalizing surveys that capture real intent — not satisficed checkbox approval. Built from the experience of designing the Proxymate muShanghai survey (which surfaced bugs in ~6 hours of testing that a category-checkbox flow would have hidden for weeks).
The bundled rethink-survey-mcp-server exposes the skill's deterministic operations as MCP tools, its canonical content as MCP resources, and three framing prompts as slash-prompts. When available, prefer them over reasoning from memory.
critique_survey for lint, get_template for a use-case starter, design_survey_session for the staged wizard, score_response for a single response, cluster_responses for a batch./turn-into-app codegen).rethink://principles, rethink://principles/{id}, rethink://structure/4-part, rethink://question-library/{part}, rethink://use-case/{event|founder|gig}, rethink://scoring/rubrics, rethink://modality/decision-tree, rethink://anti-patterns./jarrett-review (Caroline Jarrett-style review), /design-coaching (Socratic design questions), /mom-test-check (Rob Fitzpatrick founder-discovery lint).If the MCP server isn't connected, all of the below still works from this skill's reference files. For details on tool inputs/outputs, fallback rules, and prompt framing, read references/mcp-integration.md.
/design-survey — interactive design session: research goal → audience → hypotheses → questions → modality → output schema. Walks the user through 5–8 decisions, each with explicit trade-offs. Reuses templates where appropriate./critique-survey — paste-in review: identify leading questions, double-barreled items, satisficing bait, missing behavioral anchors, demographic-for-demographic noise. Returns a Jarrett-style critique with concrete rewrites./turn-into-app — implementation handoff: takes a finalized question set and produces app scaffold (TanStack Start / Next.js / pure HTML, plus Supabase or simple JSON storage). User picks the stack; this command emits the code.If the user's intent is unclear, ask: "Are you (a) starting fresh, (b) reviewing something you already wrote, or (c) ready to ship — meaning: turn an existing question set into an app?"
Every survey-design decision routes back to one of these. Memorize.
For the why behind each principle (Tourangeau's 4-stage cognitive model, satisficing theory, etc.) read references/design-principles.md.
This is the structural skeleton every well-designed survey shares. Use it as a checklist:
| Part | Purpose | Example questions | Failure mode |
|---|---|---|---|
| 1. Discovery (open-ended) | Capture authentic frame before constraining it | "What's the one thing you're worried about?" / "Last time X, what did you do?" | Skipping → checkbox-only data with zero novelty |
| 2. Diagnostic (targeted, structured) | Make responses analyzable across users | Severity 1–5 with anchors / Frequency / Workaround text | Skipping → can't cluster or rank |
| 3. Intent & prioritization | Surface willingness, urgency, willingness-to-pay | Top-3 priorities / WTP buckets / "When would help most?" | Skipping → no demand signal, can't prioritize |
| 4. Segmentation & follow-up | Cohort the respondent + qualify for follow-up | Who-are-you / Group composition / Contact + split consent | Skipping → can't compare cohorts, no interview pipeline |
For each question, tag it with which part it serves. Questions that don't clearly belong to one part are usually candidates for cutting.
For battle-tested question patterns by part (with EN+ZH parallel text and trade-off notes), read references/question-library.md.
Match modality to context:
Default rule: start with form + optional voice on the discovery question. Add AI-interviewer only if the research goal requires probing depth that a flat form can't deliver.
For the full UX/UI guide (with React/HTML scaffolds and storage schema recommendations), read references/multimodal-ux.md.
| Show as form field | Ask via AI |
|---|---|
| Multiple-choice with finite known options | Open-ended diagnosis with potential follow-up |
| Numeric or scale (with behavioral anchors) | Causal explanation: "Why did that happen?" |
| Demographic/segmentation | Workaround: "What did you try first?" |
| Consent checkboxes | Edge cases the form options don't cover |
AI is for the parts where you don't know what answers to expect. Form is for the parts where you do.
After collection, every response should map to:
pain_unit — the specific worry/problem captured in the discovery question, ideally with a cluster ID assigned by post-hoc LLM enrichmentseverity (1–5 with behavioral anchors)willingness_to_pay (bucket or numeric range, currency-localized for bilingual audiences)workaround_strength — derived from whether the respondent has an existing fallback (text length + sentiment)segment — derived from screening/segmentation answersinterview_score — composite for ranking interview-call candidates: severity × specificity × wtp_weight × consent_research_call × novelty_bonusFor the full intent-scoring math (composite formula, tag taxonomy, cluster assignment heuristics), read references/scoring-framework.md.
Three full templates with research goal, target respondent, hypotheses, full question set, branching, and output schema:
When the user names a use case that matches one of the three (or wants to fork from one), read references/use-cases.md.
If design_survey_session MCP tool is available, prefer it: call with stage: start, then iterate add_question, then finalize. Otherwise walk through manually:
get_template if MCP is up, else read references/use-cases.md.If critique_survey MCP tool is available, call it with the pasted survey and surface the typed CritiqueReport. Fetch rethink://principles/{id} if a flagged item needs explanation. Otherwise lint manually:
score_response. Batch → call cluster_responses. Both return rubric prompts + JSON Schema; the host LLM (you) then executes the extraction.references/scoring-framework.md.No MCP tool for this — codegen stays host-side.
/design-survey.references/multimodal-ux.md.references/mcp-integration.md — full MCP tool/resource/prompt reference: when to call each tool, expected inputs/outputs, fallback rules. Read when first deciding tool-vs-manual, or when a tool call needs disambiguation.references/design-principles.md — Jarrett, Dillman, Tourangeau primer + satisficing theory. Read when designing from scratch and the user wants the why.references/question-library.md — battle-tested question patterns by part, with EN+ZH parallel text. Read when proposing specific questions.references/use-cases.md — three full templates: event organizers, startup founders, gig-economy workers. Read when the user names a matching use case.references/multimodal-ux.md — UX/UI patterns + React scaffolds. Read when running /turn-into-app.references/scoring-framework.md — full intent-scoring math + cluster taxonomy. Read when ranking or clustering responses.Creates structured, bite-sized implementation plans from specs or requirements before writing code. Useful for breaking down multi-step tasks into testable steps with file structure and task boundaries.
npx claudepluginhub p/wenjix-rethink-surveys-plugins-rethink-surveys