affinity-diagram — Claude Code skill: cluster qualitative data
This skill groups observations and quotes from interviews into themed clusters and writes insight statements. Useful when you have many sources to synthesise.
npx skills add Owl-Listener/designer-skills --skill affinity-diagram -a claude-codeWhat affinity-diagram does
The skill pulls individual observations, quotes and notes out of raw data, then clusters them bottom-up instead of starting from predefined categories. Each cluster gets a descriptive label, clusters roll up into 3-5 top-level themes, and every theme gets an insight statement answering the "so what?" question. Insights are then ranked by impact on design decisions.
There is a separate sampling rule. Every observation is tagged with a participant ID (P1, P2, P3...) before grouping, and after clustering the skill checks that each participant shows up at least once in the output. If someone is missing, it goes back. A pattern found in a single interview is flagged as single-source rather than dropped. That guards against the usual LLM failure: themes built from the first transcript or two, with the rest fitted to them retroactively.
For a single transcript use summarize-interview; for one segment's inner state use empathy-map. Reach for this one when you have multiple sources.
What it helps with
- merge observations from several interviews into shared themes
- tag every observation with a participant ID before grouping
- check that no participant dropped out of the output
- write an insight statement for each theme
- rank insights by their impact on decisions
Example prompts for the agent
- Build an affinity diagram from the interview notes in research/
- Cluster the data from three transcripts and verify every participant appears in the output
- Lay out the theme hierarchy and write insight statements for each
How to install affinity-diagram
1Skills CLI (Vercel)
npx skills add Owl-Listener/designer-skills --skill affinity-diagram -a claude-code2Manually: put the files in place
~/.claude/skills/affinity-diagram/SKILL.mdCopy the whole skill folder; for one project use .claude/skills/affinity-diagram/
1Skills CLI (Vercel)
npx skills add Owl-Listener/designer-skills --skill affinity-diagram -a codex2Manually: put the files in place
.agents/skills/affinity-diagram/SKILL.mdFor all projects use ~/.agents/skills/
1Skills CLI (Vercel)
npx skills add Owl-Listener/designer-skills --skill affinity-diagram -a cursor2Manually: put the files in place
.cursor/skills/affinity-diagram/SKILL.mdCursor also reads .agents/skills/ and .claude/skills/
1GitHub CLI
gh skill install Owl-Listener/designer-skills affinity-diagram2Manually: put the files in place
.github/skills/affinity-diagram/SKILL.md1Skills CLI (Vercel)
npx skills add Owl-Listener/designer-skills --skill affinity-diagram -a gemini-cli2Platform CLI
gemini skills install https://github.com/Owl-Listener/designer-skills --path design-research/skills/affinity-diagramManually: put the files in place
.devin/skills/affinity-diagram/SKILL.mdThe legacy .windsurf/skills/ path still works
Skills CLI (Vercel)
npx skills add Owl-Listener/designer-skills --skill affinity-diagram -a opencodeClaude.ai
Zip the folder and upload it in Settings → Capabilities → Skills
Step by step, with commands for each platform: How to install skills in Claude Code: five ways
Questions about affinity-diagram
How do I install affinity-diagram in Claude?
Run npx skills add Owl-Listener/designer-skills --skill affinity-diagram -a claude-code. The skill lands at ~/.claude/skills/affinity-diagram/SKILL.md.
What does affinity-diagram do?
It extracts individual observations and quotes from raw data, groups them into clusters bottom-up, labels the themes and writes an insight statement for each. It then notes frequency, intensity and connections between themes.
How is affinity-diagram different from summarize-interview?
summarize-interview handles one transcript, while affinity-diagram works across multiple sessions or sources. For one segment's inner state there is empathy-map.
Source text
SKILL.md · MIT
--- name: affinity-diagram description: Cluster many qualitative data points into themes and insight statements. Use when synthesising across multiple sessions or sources. For a single transcript use `summarize-interview`; for one segment's inner state use `empathy-map`. --- # Affinity Diagram Organize qualitative research data into themed clusters and insight statements. ## Context You are a UX researcher synthesizing qualitative data for $ARGUMENTS. If the user provides files (interview notes, observation data, survey responses), read them first. ## Instructions 1. **Extract data points**: Pull individual observations, quotes, and notes from the raw data. 2. **Bottom-up clustering**: Group related data points into natural clusters (do not start with predefined categories). 3. **Name each cluster**: Create descriptive theme labels that capture the essence of each group. 4. **Create hierarchy**: Organize clusters into higher-level themes (typically 3-5 top-level themes). 5. **Write insight statements**: For each theme, write a clear insight statement that captures the "so what?" 6. **Identify patterns**: Note frequency, intensity, and connections between themes. 7. **Prioritize**: Rank insights by impact on design decisions. 8. Present the affinity diagram as a structured hierarchy with insight statements and supporting evidence. ## Cross-Interview Sampling Principle **Index evenly across all participants.** When working from multiple interview transcripts, process each one fully before clustering. Do not over-represent early transcripts or the most recent input. - Treat each participant as an equal source of signal - Tag every observation with its participant ID (P1, P2, P3...) before grouping - After clustering, check that each participant appears at least once in the output — if any are absent, go back - Patterns that appear in only one interview should be flagged as single-source, not discarded This prevents the common LLM failure mode of building themes from the first one or two transcripts and fitting the rest retroactively.
© Owl-Listener · MIT · Owl-Listener/designer-skills