# Hair Combs & Brushes: research notes

Date: 2026-10-25. **Scope**: combs and brushes used to detangle, smooth, part, section, or style human head hair at home or by a stylist — plastic/wood/metal/horn combs, nit/detection combs, and boar-bristle, nylon, mixed, cushion, paddle, vent, round-barrel and flexible-tooth detangling brushes. One register; the three splits below (tool type, goal, hair texture) divide the bundle instead of forking into separate registers.

**Out of scope, left to siblings**: makeup brushes and sponges (`makeup-brushes`), shaving brushes (`razor_blade_shaving_brush_bows`), bath/body brushes and loofahs (`loofahs`), heated styling tools and hair rollers (`hair-shears`, which also owns rollers and styling accessories), pet combs/brushes (`pet-grooming`), and cleaning brushes (`cleaning_tool_brushes`, `brush_stamp_tools`). Beard combs are kept in this register (no sibling leaf names beard care, and beard combs are mechanically ordinary combs with the same tooth-spacing logic); this is noted as a judgement call, not a sourced fact.

Quote labels: **verbatim** = I read the sentence myself in raw text (curl into the scratchpad, or occasionally a `pdftotext`/HTML-strip pass) or the page is a JSON-LD/alt-text string I grepped directly. **fetched excerpt** = the WebFetch tool summarised or lightly reworded a page I did not read raw. **search excerpt** = from a search-engine results summary (WebSearch was exhausted for this session before I could use it — see "Could not reach" below — so none of the numbers in this register rest on a search excerpt; the handful of WebFetch calls that preceded the exhaustion message are marked fetched excerpt). A search-excerpt-only number does not go in category.json; nothing here needed to lean on one because WebSearch was unavailable almost from the start.

## Seed

Seed script output, recorded verbatim:

> === Example entry (from an unrelated category) ===
> category: bedsheets — "the expert split is often not the number everyone advertises. Thread count is the generic trap here. Weave is what changes how the sheet feels and sleeps." (full `weave` facet entry, elided here; see `examples/bedsheets-weave.md`)
>
> === Persona ===
> A dermatologist, who thinks in what the active does at this concentration and what the rest of the formula is for
>
> 1. What is the combs equivalent of the example above?
> 2. What would this persona notice first about combs that a typical buyer would not?

Answers:

1. Bristle material (boar / nylon / mix) is this category's thread-count-equivalent generic trap: it's the spec every listing leads with, but it isn't the number that predicts how the tool behaves — tooth/bristle **spacing** and **flexibility** are, because they decide whether the tool tensions hair (shine, smoothing) or lets it pass without pulling (gentleness on curls, detangling). Survived the data check: this maps cleanly onto Mason Pearson's own framing (pure boar = shine, boar+nylon = shine plus detangling, nylon = "thicker hair needs tougher love") and onto the Wikipedia Hairbrush/Comb entries, which describe tight boar bristle as "designed to increase tension" and wide, flexible teeth as designed to be gentle on knots. Kept as the `tooth_spacing` and `brush_bristle_material`/`comb_tooth_material` facets and as the register's two trade-offs.

2. A dermatologist (who thinks about what touches the scalp and in what concentration/frequency) would notice first that brushing is a mechanical, not chemical, stressor on the hair shaft and scalp — the thing varying by "concentration" here is how much tension and friction a given tool applies per stroke, and on which hair state (wet vs dry). That is exactly what AAD's own hair-care guidance addresses: wide-tooth comb instead of brush on wet hair, comb curly hair in the shower before rinsing conditioner, let straight hair dry before combing. Survived: this became the `hair_texture` split and its branch into curly/coily hair, and the judgement about not dry-brushing curly/coily hair. Dropped: a tempting parallel to "active ingredient concentration" (e.g., treating "static charge" as the comb's analogue of an active) did not survive, because I could not find a second, independent, hair-specific source measuring static by material — see the single-source caveat on that judgement below.

## Sources and what each supports

### Standards, regulatory and health bodies

- **AAD (American Academy of Dermatology), "Healthy hair tips"**, https://www.aad.org/public/everyday-care/hair-scalp-care/hair/healthy-hair-tips. Fetched raw with curl (`aad.html`, 146,353 bytes) and read as stripped text. **Verbatim**: "Hair is delicate when it's wet, so use a wide-tooth comb instead of a brush to detangle wet hair." "If you have thick, curly hair, the best time to comb is in the shower before rinsing out your conditioner." "If you have straight hair, let your hair dry a bit before combing." "Slowly comb the ends of your hair first then keep combing higher to detangle your hair with minimal damage." Supports: the `hair_texture` split's curly/coily branch, the wide-tooth-comb-for-wet-hair fact, and the `primary_goal`=detangling technique note.
- **NHS (UK), "Head lice and nits"**, https://www.nhs.uk/conditions/head-lice-and-nits/. Fetched raw with curl (`nhs.html`, 39,099 bytes). **Verbatim**: "You can do this by combing their hair with a special fine-toothed comb (detection comb)." "It usually takes about 10 minutes to comb short hair, and 20 to 30 minutes for long, frizzy or curly hair." "Do wet combing on days 1, 5, 9 and 13 to catch any newly hatched head lice." Supports: the `tooth_spacing` facet's `nit_fine` value and the detection-combing judgement. The 10/20–30-minute duration and the day-1/5/9/13 schedule are real NHS guidance but are single-sourced (NHS only) and not load-bearing numbers in category.json; they are context here, not a cited figure in the register.
- **CDC, head lice page**. Tried `https://www.cdc.gov/lice/about/head-lice.html` and three other CDC URL guesses; all returned HTTP 403 (Akamai "Access Denied") to curl. One WebFetch call (before the WebSearch budget message, using WebFetch's own fetch path rather than mine) returned a **fetched excerpt**: "A fine-toothed louse comb may help you find lice." This corroborates the NHS fact qualitatively (fine-tooth comb used for lice) but I never saw the CDC page's raw text, so it is not cited as a standalone reference in category.json — it is folded into the NHS-based judgement as a second, weaker, named source in the judgement's note, not as its own reference entry, per the rule that a search/fetch-only excerpt doesn't carry a claim alone.

### Material and mechanism (primers)

- **Wikipedia, "Hairbrush"**, https://en.wikipedia.org/wiki/Hairbrush. Fetched raw with curl (`hairbrush_wiki.html`, 153,039 bytes), content extracted from the `#mw-content-text` div. **Verbatim**: "A round brush can be used for styling and curling hair, especially by a professional stylist, often with a hair dryer." "A paddle brush is used to straighten hair and tame fly-aways." "For babies with fine, soft hair, many bristle materials are not suitable due to the hardness; some synthetic materials and horse/goat hair bristles are used instead." "Round brush: ... Some have a metal or ceramic base which is designed to heat up during blow drying." "Cushion brush: Bristles are mounted on a rubber cushion or mat for added flexibility, to minimize hair breakage during detangling." "Paddle brush: A wide base allows more exposure while blow drying; flexible teeth are designed to minimize breakage, though some believe it does not work." "Detangler brush: Features such as widely spaced, flexible, nylon teeth are designed to be gentle on tangled or knotted hair." "Boar bristle brush: Tightly spaced boar-hair bristles are designed to increase tension while brushing, to smooth the hair." "Straight hair typically looks smoother when brushed. Curly hair tends to expand when brushed while dry." "Common materials used for bristles include boar bristle, horsehair, nylon, stainless steel and goat hair." Supports: `brush_form` values and definitions, `brush_bristle_material` values, the curly-hair-expands-when-brushed-dry fact (paired with AAD for the `hair_texture` branch), and the `barrel_material` facet.
- **Wikipedia, "Comb"**, https://en.wikipedia.org/wiki/Comb. Fetched raw with curl (`comb_wiki.html`, 320,552 bytes). **Verbatim**: "Combs can be made out of a number of materials, most commonly plastic, metal, or wood." "Wooden combs are largely made of boxwood, cherry wood, or other fine-grained wood." "A hairdressing comb may have a thin, tapered handle for parting hair and close teeth. Common hair combs usually have wider teeth halfway and finer teeth for the rest of the comb." "Boxwood combs ... are unique as they do not generate static electricity, and are gentle to the skin." "[Cheap, easily available] plastic combs ... generate static electricity and may even disrupt the hair cuticle creating frizz and increasing hair damage." "Specialized combs such as 'flea combs' or 'nit combs' can be used to remove macroscopic parasites ... A comb with teeth fine enough to remove nits is sometimes called a 'fine-toothed comb'." Supports: `comb_tooth_material` values and the static/frizz judgement, and `tooth_spacing`'s `nit_fine` value (second, independent source alongside NHS). **Caveat**: the boxwood/no-static claim is specific to one material (boxwood, in the context of Japanese kushi combs) and is still a single primer source for the general "low-static material" claim — I looked for a second, independent (ideally measured) source and could not reach one; see "Could not reach."

### Brand spec pages (what leading brands say about their own bristle/tooth design)

- **Mason Pearson** (leading boar-bristle brush maker, London, since 1885), https://www.masonpearson.com/. Fetched raw with curl (`masonpearson.html`, 122,606 bytes). **Verbatim**: "Our ethically-sourced boar bristles are hand selected for the consistency in colour, stiffness and thickness that make our hairbrushes a style icon ... that creates that coveted shine." (Pure Boar Bristle) "Our best of both worlds combination, that delivers the shine you crave in tandem with enhanced detangling qualities." (Boar Bristle & Nylon) "Thicker hair needs tougher love. We've developed our vegan-friendly nylon tuft to gently detangle without damage." (Nylon) Supports: the `brush_bristle_material` facet's three main values and the shine-vs-detangling trade-off. **Single-sourced**: this is the brand's own marketing copy, not an independent reviewer; I tried four other sources (Cleveland Clinic, WebMD, VeryWellHealth, a UK trichology body) to corroborate independently and all four were unreachable (404/DNS errors — see "Could not reach"). The judgement built on this is marked medium confidence, not high, for that reason.
- **Wet Brush**, https://www.wetbrush.com/. Fetched raw with curl (`wetbrush.html`, 339,146 bytes). **Verbatim**: "What is Ionic Technology? Ionic technology in the brush releases negative ions to help restore balance back to strands, reducing frizz, static, and flyaways." Supports: the vocabulary entry and judgement on "ionic"/negative-ion marketing claims. This is the *only* source for that mechanism description, and it is the brand's own unverified claim — I could not find any independent measurement of it, so the register treats it as a vocabulary/judgement item (low confidence, flagged as unverified), not as a facet with its own filter/annotation role. I dropped an earlier draft `ionic_or_negative_ion_claim` boolean facet for this reason — see "Trimmed detail."
- **Tangle Teezer**, https://www.tangleteezer.com/. Fetched raw with curl (`tangleteezer.html`, 1,147,676 bytes). I first used WebFetch on this domain and it returned a **fetched excerpt** claiming "The long teeth detangle, removing knots ... while the short teeth smooth and leave the hair glossy and frizz-free" — but when I curled the same homepage raw and searched for "two-tier", "two tier", and "teeth technology", none of that sentence appeared in the raw text. This is exactly the failure mode the brief warns about (a figure attributed to a page that doesn't contain it), so I dropped that quote entirely. What *does* appear verbatim in the raw HTML is an image `alt` attribute: `alt="New next generation teeth technology on the Tangle Teezer Complete Carebrush"`, repeated five times, which only supports the weaker, generic fact that Tangle Teezer markets a distinct, branded tooth design — not the specific long-tooth/short-tooth mechanism. The register cites Tangle Teezer only for that weaker fact, as a second brand alongside Wikipedia's independent "Detangler brush" description for the `brush_form` value `detangling_flex`.

### Could not reach

Logged so the gaps are visible rather than silently papered over:
- CDC's own lice pages (all URLs tried returned 403 from an Akamai edge block to curl).
- `web.archive.org` snapshots: WebFetch cannot fetch archive.org at all in this session ("unable to fetch"), and the one CDC snapshot I did pull via curl (`http://web.archive.org/web/20240301210347/...`) was a 620-byte stub with no body text.
- Cleveland Clinic, WebMD, VeryWellHealth, and a UK trichology association (all 404 or DNS failures) — tried as independent corroboration for the boar-vs-nylon claim.
- Olivia Garden, Spornette, Sam Villa, T3, Drybar, Denman, Kent Brushes, the original Wet Brush "our-story" page — tried for a sourced round-brush barrel-diameter range; all 404'd, DNS-failed, or TLS-cert-mismatched. **No numeric barrel-diameter range appears anywhere in category.json as a result** — I dropped the facet rather than invent a range (see "Trimmed detail").
- Reddit's r/HaircareScience wiki (WebFetch cannot fetch reddit.com), NaturallyCurly (redirects to an unrelated dead domain), Byrdie, Good Housekeeping, SELF, Britannica (all blocked for WebFetch).
- `html.duckduckgo.com` and `www.bing.com` by direct curl, tried once WebSearch reported its budget was used, specifically to find a second independent source for the boar/nylon-vs-hair-type claim. DuckDuckGo returned a bot challenge page; Bing returned an empty body. I did not keep trying search-engine scraping beyond this, per the brief's instruction to fall back to direct fetches, known sites, and archive snapshots rather than search-engine workarounds.
- WebSearch itself: exhausted ("this session has used its web search budget (200 of 200 WebSearch calls)") on my first three queries, before I had used any of that budget on this task myself — the 200-call budget was already spent by other work in this environment. All research after that point is WebFetch/curl only, as instructed.

## Data points used for derived metrics

None. I looked for a number experts compute in their head for this category — a cost-per-use, a bristles-per-row ratio, anything like tyres' treadwear or power banks' Wh-per-dollar — and did not find one that survived the two-source bar or that an expert actually described computing. Brush/comb pricing is driven by material and brand, not by a unit an expert divides by. `derived_metrics` is omitted from category.json (it's an optional array in the schema) rather than populated with something invented.

## Against the existing add-on schema

Current state: `supplies/personal/add-ons/comb.jsonc` has exactly one field:
```
"bristle_type": "enum [boar_natural, nylon, mixed_boar_nylon, metal_pins, silicone, plastic, no_bristles_comb, other, unspecified] | null"
```//Hair Combs & Brushes

| This register's facet | Proposed kind (AGENTS.md vocabulary) | Relation to `bristle_type` |
|---|---|---|
| `tool_type` (comb / brush / comb_and_brush_combo) | **Vertical anchor** — the fact this whole category is understood through, and the one thing currently *missing* from the schema. | Not present today. `bristle_type`'s own enum smuggles this in sideways via the value `no_bristles_comb`, which is really "this is a comb, not a brush" wearing a bristle-material costume. I'd add `tool_type` as its own field and let `comb_tooth_material`/`brush_bristle_material` (below) be conditionally null on the wrong branch, the same pattern `weight_capacity` already uses for mobility aids in `personal-standard.jsonc`. |
| `brush_bristle_material` (boar_natural, nylon, boar_nylon_mix, silicone_flex, metal_pins, other, unspecified) | Vertical anchor, brush branch. | Maps closely onto `bristle_type`, once `no_bristles_comb` is removed (handled by `tool_type` instead) and `metal_pins` is clarified as a *brush* value (metal/wire pin cushion brushes exist) rather than a stray comb concept. |
| `comb_tooth_material` (plastic, wood_or_horn, metal, carbon_fiber, mixed, unspecified) | Vertical anchor, comb branch. | **New**. Today a comb can only be described as `no_bristles_comb`, `other`, `plastic`, `silicone` or `unspecified` under the brush-shaped enum — wood, horn, metal and carbon-fibre combs (all real, sourced above) have nowhere to go. |
| `tooth_spacing` (wide, medium, fine, nit_fine) | **Hard filter** — buyers filter on this ("I need a wide-tooth comb", "I need a nit comb"), and it is absent today. | New field. |
| `brush_form` (paddle, round_barrel, vent, cushion, detangling_flex) | Hard filter / category-defining sub-type, brush branch. | New field. Today nothing distinguishes a round styling brush from a flat paddle brush from a Denman-style cushion brush; all would just carry a `bristle_type` value with no shape information. |
| `barrel_material` (ceramic, metal, boar_bristle, plastic, unspecified; null unless `brush_form` is `round_barrel` or `vent`) | Hard filter on the round/vent subset only — nullable, following the `replacement_compatibility_raw` nullable pattern already in `personal-standard.jsonc`. | New field. |

**Noise this register would not add as structured fields**, per AGENTS.md rule 4/5 — these are real facts but belong in the vertical's `high_signal_markdown`, not as new enum fields, because they are marketing phrasing or low-density claims rather than a value every row needs:
- "Ionic"/negative-ion claims (single-brand, unverified mechanism — see Wet Brush source above).
- The specific "two-tier"/"next-generation teeth" branded language (brand marketing, not a comparable spec across brands).
- Handle ergonomics, grip material, colour/finish — all photo-visible per AGENTS.md rule 1, and generic across every supplies category (fails this skill's own generic test too).
- `replacement_compatibility_raw` (from `personal-standard.jsonc`) is essentially always null for this category — combs and brushes are not consumable/refillable in the way razor blades or toothbrush heads are. Not noise exactly, just inapplicable; I'd leave it as-is since it's a shared field, not propose removing it.
- `sizing.weight_capacity` (from `personal-standard.jsonc`) does not apply; also leave as-is, shared field.
- `sizing.dimensions`/`sizing.weight` (from `supplies-standard.jsonc`): overall comb/brush length and weight are eyeballable from the product photo in the overwhelming majority of listings (per AGENTS.md rule 1's dimension test), except possibly for travel-size vs full-size, which is itself usually stated in the title/photo. I did not find a "bought-by-number" dimension this category's buyers compare the way bedsheet buyers compare pocket depth, so I am not proposing anything for the `sizing` block.

## Branches

Only the three split facets (`tool_type`, `primary_goal`, `hair_texture`) carry `branches`, per the schema. Each leg below is traced to a specific sentence already quoted in "Sources" above or to a stated fact elsewhere in this file; no leg needed a chain of more than two stated facts.

1. **`tool_type` = comb** → `then_ask`: `comb_tooth_material`, `tooth_spacing`. `makes_irrelevant`: `brush_form`, `brush_bristle_material`, `barrel_material`. Trace: a comb has no bristles and no barrel by definition (Wikipedia Comb: "made of a shaft and teeth"; Wikipedia Hairbrush's brush-only forms — round/paddle/vent/cushion/detangler — all describe bristle or barrel constructions a single-row-of-teeth comb does not have).
2. **`tool_type` = brush** → `then_ask`: `brush_bristle_material`, `brush_form`. `makes_irrelevant`: `tooth_spacing`, `comb_tooth_material`. Trace: same pair of Wikipedia definitions, the other direction — a brush's defining spec is its bristles and form, not a single tooth row.
3. **`tool_type` = comb_and_brush_combo** → `then_ask`: `comb_tooth_material`, `brush_bristle_material`. No `makes_irrelevant`: a combo item genuinely carries both sets of facts, so neither branch of facets drops out. Trace: this value exists because combo tools are a real, if small, sub-case (a comb on one face, bristles on the other); nothing in the sources says either face stops mattering.
4. **`primary_goal` = heat_styling** → `then_ask`: `brush_form`, `barrel_material`. `makes_irrelevant`: `tooth_spacing`, `comb_tooth_material`. Trace (two-fact chain, written out): Wikipedia Hairbrush says round brushes are "used with a blow dryer" and "some have a metal or ceramic base which is designed to heat up during blow drying" — barrels and heat-retentive bases are a brush-only, round/vent-only concept; a comb has no barrel to heat, so tooth spacing and comb material stop being the relevant question once the goal is heat styling with a barrel brush.
5. **`primary_goal` = detangling** → `then_ask`: `tooth_spacing`. `makes_irrelevant`: `barrel_material`. Trace: the same Wikipedia sentence above ties `barrel_material` specifically to blow-dry styling, not detangling; detangling's relevant spec is spacing/flexibility (Wikipedia Detangler brush: "widely spaced, flexible ... teeth ... designed to be gentle on tangled or knotted hair"; NHS/Wikipedia Comb on wide/fine tooth spacing).
6. **`primary_goal` = scalp_care** → `makes_irrelevant`: `barrel_material`, `tooth_spacing`. Trace: scalp-massage tools in the sources are cushion brushes (Wikipedia: "Bristles are mounted on a rubber cushion or mat") — a brush-form fact, not a barrel-heat fact or a tooth-spacing fact; `then_ask` is left as `brush_bristle_material`, `brush_form` (same as the general `tool_type`=brush branch, no new facet introduced here).
7. **`hair_texture` = curly or coily** → `then_ask`: `tooth_spacing`. `makes_irrelevant`: `barrel_material`. Trace (two-fact chain, written out): Wikipedia Hairbrush states "Curly hair tends to expand when brushed while dry," and AAD states curly hair should be combed "in the shower before rinsing out your conditioner" with a wide-tooth comb rather than a brush — chaining these two stated facts, a curly/coily answer routes toward tooth spacing (favouring wide) and away from barrel-brush heat styling, because the sourced guidance for this texture is wet detangling, not dry barrel-brush styling. I did not make `brush_form` fully irrelevant here (only `barrel_material`), because paddle and detangling-flex brush forms remain genuinely in use on curly hair in the sources; only the heat-barrel sub-case is contraindicated by the "brushed while dry" fact.
8. **`hair_texture` = straight or wavy** → `then_ask`: `brush_bristle_material`. Trace: Mason Pearson's own shine framing (boar bristle "creates that coveted shine") and Wikipedia's "Straight hair typically looks smoother when brushed" together make bristle material (natural vs synthetic, for shine) the next relevant question once texture is straight/wavy; no fact in the sources makes anything irrelevant on this branch, so there is no `makes_irrelevant` here.

Dropped leg: I considered `hair_texture` = curly/coily → `makes_irrelevant`: `brush_form` entirely (not just `barrel_material`), reasoning that curly hair is rarely brush-styled at all. I dropped this because I could not trace it to a stated sentence — the sources support avoiding *dry* barrel-brush heat styling, not brushing in general (cushion and detangling-flex brush forms are explicitly fine on curly hair per the Wikipedia detangler description), so the stronger claim would not survive a blind check.

## Trimmed detail

- **Barrel diameter (mm), dropped entirely.** I tried seven brand/retailer sources (Olivia Garden, Spornette, Sam Villa, T3, Drybar, Denman, a WikiHow explainer) looking for a sourced round-brush-diameter-to-curl-size range, the way a leading brand's size chart would give one. All seven failed to load (404, DNS failure, or TLS cert mismatch — listed in "Could not reach"). Rather than state "a bigger barrel gives a looser curl" with no source, I left it out of `barrel_material`'s `why_experts_care` and out of the register as a separate facet. If a future run can reach a brand size chart, `barrel_diameter_mm` (numeric, mm, sort_key/filter, relevant only when `brush_form` = round_barrel) would be the natural addition.
- **"Ionic"/negative-ion claim, dropped as a facet, kept as vocabulary + judgement.** Single-sourced to Wet Brush's own homepage copy; no independent measurement found. A full facet (with `roles`, `priority`, `backfill_cost`) would overstate how settled this is. It appears in `vocabulary` (defined, so a buyer who meets the term on a listing isn't left guessing) and in one low-confidence `judgement` flagging it as an unverified brand claim.
- **CDC's specific lice-detection numbers (duration, day-1/5/9/13 schedule), kept as context only, not cited claims.** NHS is the only source I actually read raw text from; CDC blocked every curl attempt. I did not promote the duration/day-schedule into a judgement or facet value beyond the existence of `nit_fine` tooth spacing, because doing so would rest on one source for a specific number, against the two-source rule.
- **Beard combs.** No sibling leaf in `catalog.json` names beard care, and a beard comb's teeth and material follow the exact same spacing/material logic as a head-hair comb, so I kept beard combs inside this register's scope rather than silently dropping them or inventing a value for them. This is a scope judgement, not a sourced fact — flagged here in case a future beard-specific leaf is added to the catalog, in which case this overlap should move there.
- **`comb_and_brush_combo`** as a `tool_type` value is a thin, low-volume real product (two-sided brush/comb travel tools) rather than a major catalog segment; I kept it as a value so the split is exhaustive, but it carries no dedicated branch facets beyond the union of the other two, per house convention of not padding branches where nothing changes.

## Script bug found (reported, not fixed here)

`scripts/render.py` line 141 renders a trade-off's `see_more_branch` as `Board branch: "..."` — e.g. this register's "What you give up" section reads `Board branch: "More shine, less detangling power."`. That string is almost certainly a typo for something like `See-more branch:`; "Board branch" isn't a term used anywhere else in the skill, the schema, or STYLE.md. I did not edit `render.py` (out of scope per the brief) and left `category.md` as the script produced it. Flagging here and in the structured report back.

## Corrections (2026-10-26)

- Added the missing `shine_and_smoothing` branch to `primary_goal` (`then_ask`: `brush_bristle_material`; `makes_irrelevant`: `tooth_spacing`, `barrel_material`), fixing the split's four values having only three branches.
- Added `barrel_diameter_mm` (numeric, mm, nullable, round_barrel/vent only), sourced to Kent Brushes (verbatim: "For tight curls, you'll need a narrow brush, whilst for big, bouncy waves, you'll require a larger version"; 33-70mm across its round-brush product names) and Denman (independent brand; "Extra Small" curling-brush variant explicitly 25mm), clearing the two-source bar notes.md had previously failed on seven dead sources.
- Added a `vocabulary` entry for "Vent brush", the one `brush_form` value surfaced in the cold-start question with no gloss.
- Reworded `primary_goal`'s `question`/`cold_start_question` from "...smooth hair..." to "...add shine and smoothness..." so the option names its own value (`shine_and_smoothing`) in full; still 12 words.
- Rejected required fix #5 (boar-bristle-shine claim resting on Mason Pearson's own copy): no edit made. It is already carried at `confidence: medium` in `judgements` with a note naming the single-source weakness, which is the correct and sufficient treatment per house style (see the identical treatment already given the static/frizz claim) — nothing here was underselling or overselling it, so there was nothing to correct.
