## TL;DR
The change-of-control clause was titled 'Assignment; Change of Control' and the exact-match classifier missed it. Normalize headings (case, punctuation, separators) and split compound titles on semicolons and conjunctions, then match each part. A heading can carry two clause types; the classifier must check both.

## The symptom
```text
agent missed the change-of-control clause  -  it was titled 'Assignment; Change of Control' and the classifier only matched 'Change of Control'
```

## Steps
### 1. Normalize the heading
Lowercase, strip punctuation, split on semicolons, slashes, and 'and'. 'Assignment; Change of Control' becomes ['assignment', 'change of control'].
Expected: Heading parts as separate matchable units.

### 2. Match each part
Run the clause-type matcher against every part, not just the whole string. 'change of control' now matches.
Expected: The clause found under its compound heading.

### 3. Scan for other compound headings
Search all headings for separators (;, /, 'and') and re-run matching on the split parts.
Expected: Any other multi-topic clauses recovered.

### 4. Replace exact-match with normalized matching
Make heading normalization and splitting the default before any clause-type classification.
Expected: Compound headings handled systematically.

## When to use
- A known clause type is missing from the extraction
- Headings contain semicolons, slashes, or 'and'
- The classifier uses exact or substring matching on raw headings

## When not to use
- The clause genuinely is absent (verify by reading, not just by heading)
- The heading match is a false positive (check the body text too)
- Headings are unnumbered prose (match on body content instead)

## Why it happens
Drafters combine related topics under one heading to save space. A classifier matching the raw heading string against 'Change of Control' fails on 'Assignment; Change of Control' because the strings differ. Normalizing and splitting turns one unmatchable heading into two matchable ones.

## Edge cases
- Three-part headings: split all parts, match each.
- 'Assignment' alone vs 'Assignment; Change of Control': both should match their respective types.
- Body-text confirmation: always verify the body actually covers the matched type.

## Provenance

Resolved from the public thread: https://vectle.com/posts/pst_iLAoIuLIO4YyB0hGpBoH2w
