Discussion-guide distillation

Step-1 proof for docs/design-discussion-lens.md: the parse prompt (col 3) turns a researcher's real guide (col 1) into the author-recognisable structure the lens navigates by (col 2) — terse nav labels + the one-line intent that later routes quotes to each question. Two real, US-federal public-domain 18F guides, reproduced verbatim (attribution in footer). The distillations here are the hand-authored target the col-3 prompt is written to reproduce, before the LLM is wired.

1

Input

18F · public domain

Introduction

Hello, my name's [moderator], and I'm going to walk you through today's session… my office is currently working with [partner] to [broad purpose]. Joining us are [observers].

I'd like to begin by thanking you for making time… we'd like to keep this session to [duration]. Does that still work for you?

During this session, I'll start by asking you a few questions around your work. Later on, I'll ask you to share your screen and accomplish a few tasks using the website we're evaluating.

Please be aware that there are no wrong answers… I'll ask you to think aloud as much as possible: to describe what you're looking at and what you're trying to do.

With your permission, I'd like to record this call… Is that okay? Finally, I want to confirm that you've received a participant agreement — is that correct?

Warm up

Before we take a look at the site, I'd like to hear a little bit about you — what's your occupation? What do you do all day?

Does your work require a specific kind of training or experience?

What are your goals in doing your work? What motivates you?

Setup screen sharing

The first thing I'd like you to do is share your screen… make sure to close anything you don't want recorded.

Please look at this page and tell me what you make of it: What are your first impressions? What is this site for? You can scroll, but don't click on anything just yet.

Task completion (2–3 tasks)

Now I'm going to ask you to respond to the following scenarios. I'll read each scenario out loud and share the text via chat.

Example: Imagine you're working on a collaborative training application… Using this website, show me how you would identify whether or not your system will require completing a privacy impact assessment.

Follow up

You mentioned [something they said out loud] earlier and I didn't want to jump in at that time. Can you say more about that?

What are your thoughts about these concepts, generally?

Wrap up

Thank you so much for your time. Before we finish, what did we forget to ask about?

Would you be open to speaking with us again in the future?

Who else should we talk to?

Introduction

Hello, my name's [moderator], and I'm going to walk you through today's session. [Explains partnership purpose, introduces observers, confirms duration.]

There are no wrong answers. As you go about using the [prototype], I'll ask you to think aloud as much as possible… With your permission, I'd like to record this call.

Warm up

What's your occupation? What do you do all day?

What kind of person does your kind of work, generally?

What are your goals in doing your work? What motivates you?

A specific topic

If you had to explain this in the simplest terms possible, how would you do it?

How does [topic] tie back to your goals in doing your work?

What do you do when you have questions about [topic]?

What's one thing you wish were more straightforward about [topic]?

Demo

When was the last time you did [task]? Tell me more.

Do you mind sharing your screen?

Can you show me how you do [task]?

Wrap up

Thank you so much for your time. Before we finish, what did we forget to ask about?

Would you be open to speaking with us again in the future?

Who else should we talk to?

2

Distilled

DiscussionGuide
Opening instruction
Consent, think-aloud, recording — no evidence to route.
Warm-up pattern
The participant's role, expertise, and what drives their work.
folds: occupation & daily work · training / experience · goals & motivation
First impressions opinion
Unaided — can they tell what the site is for before touching it.
folds: first impressions · what is this site for
Tasks task
Whether they complete the scenarios, and where they struggle.
folds: the privacy-impact-assessment scenario
Follow-up opinion
Reopen earlier remarks; their general reaction to the concepts.
folds: "say more about that" · overall thoughts
Wrap-up
What we missed, recontact, and who else to talk to.
folds: what we forgot · speak again? · who else?
Opening instruction
Purpose, observers, think-aloud, recording consent — no evidence to route.
Warm-up pattern
The participant's role, who does this kind of work, and what motivates them.
folds: occupation & daily work · who does this work · goals & motivation
The topic pattern
Their mental model of the topic and their friction with it.
folds: explain it simply · topic ↔ goals · where they turn for help · biggest friction
Show me task
The last real instance, then the observed workflow (not the described one).
folds: last time you did X · show me how you do it
Wrap-up
What we missed, recontact, and who else to talk to.
folds: what we forgot · speak again? · who else?
3

Prompt

markdown · schema in YAML

bristlenose/llm/prompts/parse-discussion-guide.md

# Parse a discussion guide You are given the full text of a user-research discussion guide (topic guide, interview guide, or moderated-usability script) written by a researcher. Parse it — never invent or drop. A guide is a THINKING TOOL, deliberately over- prepared — most of its questions are never asked verbatim. It is NOT a script or a checklist. Rules - FIND THE GUIDE'S OWN TOP-LEVEL INTENTIONS — its thematic spine (e.g. CONTEXT, AWARENESS…). Typically ~5–12 for a ~60-min session (≈5 min each, less warm-up + thanks). Discover them from THIS guide; never assume names or impose a template. These are the BUCKETS. - Everything under a bucket — big questions, follow-ups, bulleted probes, parenthetical watch-fors — FOLDS into it as `scaffold`: preparation depth + match material. Do NOT promote it to top-level or make it its own bin. - BUCKET gives: · `terse` ≤4-word nav label (the spine word). · `intent` the whole TERRITORY this bucket explores, synthesised from all its scaffold. This is the rich field quotes match against — a quote is "in the territory", rarely a direct answer to any one question. · `kind` questions | task | instruction. · `stance_axis` opinion | pattern | none. · `scaffold` the folded questions/probes, kept verbatim (for matching + reading). - Consent, logistics, agenda, and any WELFARE / SAFEGUARDING / DISTRESS block = instruction, NEVER a routable bucket ("Do you feel safe?" is welfare, not data). - Preserve the guide's real order + irregular structure (a non-spine preamble is fine). Return JSON matching the schema.

Output schema (Pydantic; shown as YAML)

DiscussionGuide: buckets: # 5–12 top-level intentions - terse: str # "Context" intent: str # the territory it explores kind: questions|task|instruction stance_axis: opinion|pattern|none scaffold: # folded depth — NOT bins - verbatim: str # a big-Q or probe, kept

Then, per quote (routing)

# match the quote against each bucket's # intent + scaffold (its whole territory); # route to the best bucket, else UNROUTED. # no 1:1 question-to-answer expected.

Sources — both guides are US-federal public domain (18F / GSA), reproduced verbatim: 18F Usability Test Guide · 18F In-Depth Interview Guide. Wider openly-licensed corpus consulted: gov.uk Service Manual — moderated usability testing (OGL) · Digital.gov — how to conduct a usability test (public domain) · GitLab Handbook — writing a discussion guide (CC BY-SA) · NN/g — Writing an Effective Guide for a UX Interview. Distillations are hand-authored to the col-3 prompt's target output.