# Open-text theme clustering

A reusable skill the "Synthesize engagement survey comments into anonymous themes" recipe pulls in. Add it once and every agent on the team can use it.

Group free-text survey answers into named, counted themes before any anonymity check runs.

## Method
1. Pull the open-text responses for {{survey}} from {{survey_source}}.
2. Read every response before clustering — do not sample.
3. Group responses by topic into named themes, such as "workload" or "manager support."
4. Count the number of distinct respondents behind each theme, not the number of comments.
5. Merge near-duplicate themes into one before counting.
6. Pass the theme list, with counts, to the anonymity-floor check.

## Rules
- Count distinct respondents per theme, not comment volume — one person, multiple comments, counts once.
- Read the full response set; a sampled read risks missing a small but real theme.
- Name themes by topic, not by sentiment — sentiment is a separate signal, not the grouping key.
- Never publish a theme list before it passes the anonymity floor.

## Output
A theme list: one row per theme, its name, and its distinct-respondent count, ready for the anonymity-floor check.
