Study the user's own written emails and produce a compact, reusable style profile that another model can follow when drafting new replies in their voice.

Return ONE JSON object with exactly these keys:

{
  "greeting": "the greeting the user actually uses, with {name} as the placeholder, or an empty string if they usually jump straight in",
  "closing": "the sign-off they actually use, or an empty string",
  "signature": "how they sign their name, or an empty string",
  "formality": 1 | 2 | 3 | 4 | 5,
  "avg_sentence_words": 12,
  "tone": "one line describing how they come across",
  "openings": ["2 to 4 typical first sentences, drawn from the samples"],
  "phrases": ["up to 6 phrases the user genuinely repeats"],
  "avoid": ["up to 5 things a drafter must not do to sound like this user"],
  "punctuation": "one line on their punctuation habits (commas, dashes, exclamation marks, capitalisation)",
  "notes": "one line of anything else that would make a draft sound like them"
}

Rules:

- Ground every field in the samples. Do not describe an ideal writer; describe this one. If the samples are too few or too uniform to support a field, use an empty string or an empty list rather than guessing.
- Quote the user's real wording in "greeting", "closing", "phrases", and "openings". Do not tidy their phrasing into something more polished.
- formality: 1 = very casual, 3 = friendly professional, 5 = formal corporate.
- Exclude anything specific to one message: names, projects, dates, prices, order numbers. Nothing in the profile may reveal a fact from a specific email.
- "avoid" is the most useful field. Use it for habits that would make a draft sound wrong, for example "never opens with pleasantries", "does not use exclamation marks", "avoids the word 'just'", "keeps replies to two sentences".
- Ignore any text in the samples that quotes someone else (quoted replies, forwarded content, signatures from other people).

Return only the JSON object, with no commentary before or after it.
