# Musical Instrument Care & Maintenance: research notes

Date: 2026-10-25. Scope: consumable and tool products bought to clean, polish, protect from humidity, and lubricate a musical instrument *after* purchase — polishes and cleaners matched to a surface finish, case humidity-control packs and systems, and valve/slide/cork/key lubricants — across the four instrument families that actually carry distinct care chemistry: string (guitar, bass, violin family, ukulele), brass and woodwind, piano (acoustic), and drums/percussion (shells, hardware, cymbals).

**Not in scope, and why**, per the sibling leaves in `catalog.json` under `supplies > gear`:
- Strings, reeds, mouthpieces, picks and drumheads themselves are the `guitar-picks` leaf (`Strings, Reeds, Mouthpieces, Picks & Drumheads`). This register covers products used *on* strings (a string cleaner/lubricant) or *on* reeds, never the string or reed itself.
- Cases, bags and instrument stands are the `musical-instrument-cases` leaf. A case humidifier pack sits physically inside a case, but functionally it is a climate-control consumable, not a case/bag/stand, so it stays here — same logic as the lamps register keeping socket lamps and built-in LED lamps in one register split by `light_source`.
- Replacement parts and fittings (pickups, hardware) are `musical-instrument-parts`. Install tools for those parts are not care products.
- Effects pedals/controllers (`musical-pedals`) and playing accessories — capos, slides, straps, shoulder rests (`musical-playing-accessories`) — are used *while* playing, not to maintain the instrument, so they stay with their own leaves.
- Tuners, metronomes and music stands (`metronomes` leaf) are practice tools, not care products.
- Camera accessories/bags share the `gear-standard.jsonc` file with musical-instrument accessories only because both are "gear"; no product overlap.

Quote labels: **verbatim** = I personally read the sentence in the page's raw HTML text (stripped of tags with a short Python script after curl, or in the markdown a `r.jina.ai` render returned) and it appears exactly as quoted. **fetched excerpt** = a tool summarised or lightly reworded a page I had open. **search excerpt** = from a search-engine summary only. No search-excerpt-only numbers are used below; WebSearch's session budget was exhausted before I started (see "Script and tool problems").

## Seed

Seed run (recorded verbatim):
```
=== Example entry (from an unrelated category) ===
category: car-tyres
what this shows: a number that is on every listing and still needs a judgement
attached, because experts know it only compares within one manufacturer's range.
[treadwear_grade facet shown]
=== Persona ===
A field biologist, who thinks in what survives abuse in the rain
```

1. The musical-instrument-care equivalent of treadwear grade is the relative-humidity percentage printed on a case humidity pack ("maintains 45-50% RH"). It is on every two-way pack's own product page, buyers compare it, and it needs a judgement attached: it is the *target* the pack's chemistry is built to hold, not a guarantee for every case, climate or instrument, and generic single-direction humidifiers don't carry a comparable number at all. **Survived the data check**: the 45-50% figure is on D'Addario's own product page and a 40-60% band is independently stated by a string-instrument retailer (Fiddlershop) — see Sources. Kept as the `target_rh_percent` facet.
2. A field biologist (who thinks about what survives abuse in the rain, i.e. environmental exposure) would notice first that the real threat to most of these products isn't visible grime, it's ambient humidity swings nobody can see happening — the same instinct that flags mould risk in a damp field kit flags string-instrument crack risk from a dry winter room. A typical buyer reaches for a polish; the biologist would ask about the room first. **Survived**: this became the `care_task` split (clean/polish vs. humidity control vs. lubrication) and the `humidity_system_type` split, both of which treat humidity as its own first-order problem rather than folding it into "cleaning."

## Sources and what each supports

All fetched directly (curl with a browser user-agent, or `r.jina.ai` as a rendering proxy for JS-heavy Shopify pages) on 2026-10-25 from `/private/tmp/claude-501/-Users-amnbh-Desktop-dev-zamana/94e1e673-5231-41fe-8b68-7a624ab5c8d8/scratchpad/musical-instrument-care/`. WebSearch could not be used (budget exhausted before this run started); every page below was located by walking each brand's own `sitemap.xml` (and sub-sitemaps) rather than by search, per the lesson about citing pages the author never actually saw.

- `daddario_humidipak_maintain` — D'Addario, "Humidipak Maintain Guitar Humidifier Packs" product page (`daddario.com/products/humidipak-maintain-guitar-humidifier-packs`, found via `sitemap_products_2.xml`). **Verbatim** (grep'd from the stripped HTML, appears three times on the page in slightly different wording): "automatically maintains the optimal 45-50% relative humidity level within your instrument case"; "Packets last between 2-6 months and should always be kept in a sealed case"; "Using Boveda's two-way humidity control technology, Humidipak automatically adds or depletes moisture to maintain the ideal humidity level of 45%-50% RH." Supports `target_rh_percent`'s range, `humidity_system_type`'s two-way definition, and `replacement_cycle_months`'s 2-6 month range.
- `fiddlershop_humidity_boveda` — Fiddlershop (violin-family retailer), "Humidity Control And Your New Instrument" (`fiddlershop.com/blogs/fiddlershop-blog/humidity-control-and-your-new-instrument`, found via its blog sitemap). **Verbatim**: "wooden instruments need to be stored at a stable 40-60% RH (relative humidity)"; "we recommend replacing any Boveda actively in use every 3 months"; "Should I use a fabric holder with Boveda in an instrument case? Yes"; "It will add humidity in dry conditions, and removes humidity [in humid conditions]" (reconstructed from two adjacent sentences, both read directly). A different, independent company from D'Addario, so this is the second source for the 40-60%/45-50% RH band and for the two-way mechanism. Supports `target_rh_percent` (wider 40-60% band), `humidity_system_type`, `replacement_cycle_months` (3-month variant).
- `taylor_guitar_polish_qa` — Taylor Guitars, "Taylor Guitar Polish, 4 oz." product Q&A (`taylorguitars.com/taylorware/guitar-care/taylor-guitar-polish-4-oz`, found via Taylor's sitemap under `taylorware/guitar-care`). **Verbatim** customer-support answers: "This product is safe for cellulose lacquer" (re: nitro); "A small amount yes [of silicone]. Not nearly enough to cause any issues with your guitar finish"; "No need for polish with a satin finish. We recommend our Taylor satin cleaner"; "The polish can be used on any gloss (shiny, reflective) finish. For satin, matte finishes the satin cleaner is recommended." Supports `finish_sheen` (gloss vs. satin/matte needs a different product) and the `silicone_free` judgement.
- `taylor_fretboard_conditioner` — Taylor Guitars, "Taylor Fretboard Conditioner, 2 oz." product page (same sitemap path). **Verbatim**: "Leaves no oils, silicone or waxy residue"; "This will work well on any unfinished wood fretboard." Used only as trimmed detail (see below), not promoted to its own facet.
- `stewmac_colortone_cleaner` — StewMac, "ColorTone Clean + Shine" product page (`stewmac.com/luthier-tools-and-supplies/supplies/cleaners-and-lubricants/colortone-clean--shine-polish/`, found via StewMac's sitemap). **Verbatim**: "No grit or abrasives, safe for lacquer, nitro, poly, and shellac/French polish finishes." A second, independent brand's product confirms that mainstream cleaners are explicitly formulated and labelled by finish compatibility, the same pattern as Taylor's gloss/satin split.
- `yamaha_brass_woodwind_accessories` — Yamaha USA, "Brass and Woodwind Accessories" category page (`usa.yamaha.com/products/musical_instruments/winds/accessories/valve_oil_slide_oil/index.html`). **Verbatim** (the page's own product list, read from stripped HTML): "Trombone Slide Lubricant... Valve Oil... Trombone Slide Cream... Slide Grease Synthetic tuning slide grease keeps your tuning slides moving smoothly... Synthetic Cork Grease... Synthetic Tuning Slide Oil... Rotor Spindle Oil Rotor Lever Oil High quality synthetic oil for rotary valves... Light Key Oil... Medium Key Oil... Heavy Key Oil... Silver Polish Lacquer Polish Metal Polish." Supports `lubricant_type` (valve oil, slide oil/cream/grease, cork grease are sold as distinct products) and `surface_metal_finish` (silver/lacquer/metal polish sold separately).
- `zildjian_cymbal_polish` — Zildjian, "Zildjian Cymbal Cleaning Polish" product page (`zildjian.com/products/zildjian-cymbal-cleaning-polish`, found via Zildjian's product sitemap). **Verbatim**: "Use this polish on brilliant finish cymbals only"; "Not for use on traditional, patina, or natural finishes." Second, independent confirmation (percussion, not string/brass) of the finish-matching principle; the single most load-bearing qualitative claim in this register.
- `damppchaser_home` — Dampp-Chaser Corporation homepage (`dampp-chaser.com`). **Verbatim**: "Our Piano Life Saver System is specifically designed to maintain the perfect humidity level for your piano... This comprehensive system not only dehumidifies but also humidifies"; "[Damp Defender] lacks a humidity controller, it is not suitable for use in pianos." Supports extending `humidity_system_type`/`target_rh_percent` to the piano family and the `instrument_family` = piano branch.

### Added during the 2026-10-25 blind-check fix pass (fetched excerpt, via WebFetch; no raw-HTML grep this time, see "Script and tool problems")

- `dw_drums_lacquer_finish` — DW Drums Workshop, "Exploring Lacquer" (`dwdrums.com/stories/the-workshop/exploring-lacquer/`, found via DW's `sitemap.xml`). Fetched excerpt: drum shells receive a primer sealant then two coats of clear lacquer for a "low-gloss shimmer." Supports `finish_sheen` applying to drum shells (gloss side).
- `dw_drums_satin_oil_finish` — DW Drums Workshop, "Satin Oil Shines" (same sitemap). Fetched excerpt: "Satin Oil finishes are never sealed and are always an open-grain drum sound," and skip the buffing step lacquer finishes get. Supports `finish_sheen` applying to drum shells (satin side) — confirms the gloss/satin dimension is real for shells, not just cymbals.
- `musicnomad_pro_strength_guitar_polish` — MusicNomad, "Guitar Polish, Pro Strength Formula" product page (found via the brand's `guitar-care` collection FAQ, then the product URL). Fetched excerpt: usable on nickel/chrome/stainless tuners, pickup covers and bridge to remove oxidation; explicit warning it can strip thin gold plating. Supports moving `surface_metal_finish` into the `string` branch's `then_ask`.
- `getzen_care_maintenance` — Getzen, "Care & Maintenance" accessories page (`getzen.com/accessories/care-maintenance/`). Fetched excerpt: valve oil, trombone slide cream, and tuning slide grease listed as separate named products (no cork grease on this page). Second, independent brand confirming two of `lubricant_type`'s three values; cork grease itself remains single-sourced to Yamaha.
- `cornell_fhsa_hazardous_substance_definition` — Cornell Law School Legal Information Institute, 15 U.S.C. §1261 (Federal Hazardous Substances Act definitions). Fetched excerpt: defines "hazardous substance" generically by property (toxic, corrosive, irritant, flammable, etc.) and lists exclusions (pesticides, food/drug/cosmetic, certain fuels, tobacco) that do not include instrument-care products — i.e., no instrument-specific carve-out either way. Supports the "no dedicated regulator" judgement.
- `oasis_humidifier_faq` — Oasis Humidifiers FAQ page. Fetched excerpt: directs use "whenever your guitar is in an area where the relative humidity is less than 50%" and to remove it in humid seasons rather than leave it — i.e., it only adds moisture. Supports `add_only` as a real, named product type for `humidity_system_type`.
- `fiddlershop_humidity_collection` — Fiddlershop, "Humidity Control" collection page (different URL from the already-cited blog post). Fetched excerpt: lists Dampit, Stretto and D'Addario models as add-only humidifiers, Boveda as two-way, and hygrometers as monitoring-only; no standalone absorb-only (desiccant/silica) product appears on this page. Second source for `add_only`; `absorb_only` remains unconfirmed by any fetched source — see "Corrections" below.

## Data points used for derived metrics

- `annual_humidity_cost` = `price / replacement_cycle_months * 12`. Depends on the retail price (always present) and `replacement_cycle_months` (researched per listing). Built from the 2-6 month range in `daddario_humidipak_maintain` and the 3-month figure in `fiddlershop_humidity_boveda` — both describing the same mechanism (Boveda-licensed two-way packs) at different ends of a real range, not a disagreement.

## Against the existing add-on schema

`musical_instrument_care.jsonc` is currently empty (`{}`, comment only). `gear-standard.jsonc` supplies only `compatibility_raw` (free text of what the product fits) and `supplies-standard.jsonc` supplies `high_signal_markdown` and the generic `sizing` block. Field-kind vocabulary (enum/boolean/number/string) and the four-field test (vertical anchor / category quality currency / hard filter / sizing) are from `zamana-expertise/AGENTS.md`.

| Register facet | Proposed add-on field | Kind | Why (AGENTS.md test) |
|---|---|---|---|
| `instrument_family` | `instrument_family` | `enum [string, brass_or_woodwind, piano, drums_or_percussion, unspecified]` | Vertical anchor for this leaf — every item is built for exactly one family, dense on every title, cheap to extract. |
| `care_task` | `care_task` | `enum [clean_or_polish, control_humidity, lubricate_moving_parts, unspecified]` | Hard filter — a buyer filters on the job before the brand; stated in the title almost always. |
| `finish_sheen` | `finish_sheen_compat` | `enum [gloss, satin_or_matte, any, unspecified]` | Hard filter — using a gloss polish on a satin finish is the single most common instrument-care mistake found in research; worth augmenting even though it needs a brand-page read, not a listing bullet. |
| `surface_metal_finish` | `metal_finish_compat` | `enum [lacquered, silver_plated, raw_or_patina, any, unspecified]` | Hard filter, same reasoning, for brass/woodwind/drums; usually recoverable from the product title ("Silver Polish") at low cost. |
| `lubricant_type` | `lubricant_type` | `enum [valve_oil, slide_oil_or_grease, cork_grease, not_applicable, unspecified]` | Hard filter and near-vertical-anchor for the lubrication slice of this leaf; always in the title. |
| `target_rh_percent` | `target_rh_percent` | `number \| null` | Category quality currency *for the humidity-control slice only* — the number buyers compare two-way packs on — but it is not dense enough across the whole leaf (single-direction humidifiers don't carry one) to be a top-level anchor; still worth augmenting for the SKUs that have it. |
| `humidity_system_type` | `humidity_system_type` | `enum [two_way, add_only, absorb_only, not_applicable, unspecified]` | Hard filter — determines whether the product can even work in a given climate; usually inferable from the product name ("two-way", "automatic"). |
| `replacement_cycle_months` | *(none — markdown)* | — | Not dense or normalised enough across brands (D'Addario states a range, others state a single number, some omit it) to be a reliable structured field; keep in `high_signal_markdown`. |
| `silicone_free` | *(none — markdown)* | — | A marketing bullet on some listings, absent on most; not dense enough to commit to augmenting, and the underlying claim is disputed (see Judgements). Keep as a markdown signal, not a structured filter. |

Fields this register considers noise if added as new structured fields: a separate numeric "viscosity" field for key oil (Yamaha sells three tiers but I found no sourced rule for which one a given instrument needs, so it would be a number nobody could use to filter) and a generic "abrasiveness" field (no brand states this as a comparable number; it is restated qualitatively inside `surface_metal_finish`'s own definition instead).

## Branches

Traced to the specific register sentences/facts below; every leg chains to a stated fact, no invented ones.

- `instrument_family` = `string` → `then_ask: [finish_sheen, surface_metal_finish]`, `makes_irrelevant: [lubricant_type]`. Traced: Taylor's own support answers (`taylor_guitar_polish_qa`) are string-instrument-specific and turn entirely on gloss vs. satin; Yamaha's lubricant lineup (`yamaha_brass_woodwind_accessories`) is wind-instrument hardware that string instruments don't have (no valves, slides or key mechanisms). **Revised 2026-10-25**: `surface_metal_finish` moved from `makes_irrelevant` to `then_ask` — `musicnomad_pro_strength_guitar_polish` confirms guitar hardware (nickel/chrome/stainless tuners, bridge) oxidizes and needs a dedicated polish distinct from body polish, with the same plating-strip risk the facet already describes for brass/cymbals, so it was wrong to call it irrelevant for the string family.
- `instrument_family` = `brass_or_woodwind` → `then_ask: [surface_metal_finish, lubricant_type]`, `makes_irrelevant: [finish_sheen]`. Traced: `yamaha_brass_woodwind_accessories` lists silver/lacquer/metal polish and valve/slide/cork lubricants as this family's whole care aisle. **Revised 2026-10-25**: `target_rh_percent`, `humidity_system_type` and `replacement_cycle_months` removed from `makes_irrelevant` (finish_sheen stays irrelevant — the metal-finish facet substitutes for it, that part was never in question). The old branch flatly closed off humidity for the *whole* combined family, but the "Trimmed detail" entry below says wood-woodwind bore-cracking from dry air is a real, just-unsourced concern — true for metal brass, open for wooden woodwinds. Rather than invent a figure or split the family's values, the three humidity facets are now left neutral (neither asked nor barred) for this branch until a wood-woodwind RH source is found.
- `instrument_family` = `piano` → `then_ask: [finish_sheen]`, `makes_irrelevant: [lubricant_type, surface_metal_finish]`. Traced: `damppchaser_home` extends the two-way humidity mechanism to pianos (chained fact: Humidipak and Piano Life Saver both "add and remove moisture" per the two sourced quotes), and a piano cabinet is lacquered wood like a guitar body, so the gloss/satin logic from `taylor_guitar_polish_qa` carries over by the same "wood + lacquer" mechanism; pianos have no user-facing valves, slides or corks.
- `instrument_family` = `drums_or_percussion` → `then_ask: [surface_metal_finish, finish_sheen]`, `makes_irrelevant: [lubricant_type, target_rh_percent, humidity_system_type, replacement_cycle_months]`. Traced: `zildjian_cymbal_polish`'s brilliant-vs-patina split is the sourced fact for cymbals; no sourced lubrication or humidity-control product exists for drums in the sources I reached, so those stay dropped, not guessed. **Revised 2026-10-25**: `finish_sheen` moved from `makes_irrelevant` to `then_ask` — the register's own `mechanism.families` entry describes drum shells as "lacquered or wrapped," and `dw_drums_lacquer_finish`/`dw_drums_satin_oil_finish` (DW Drums' own Workshop articles) confirm drum shells really do carry a sealed lacquer/"low-gloss shimmer" finish versus an unsealed, open-grain satin-oil finish — the same gloss/satin dimension `finish_sheen` already covers for guitars. The old branch contradicted the register's own family description; asking `finish_sheen` for drum shells (cymbals keep using `surface_metal_finish`) resolves it. Both DW sources are the same brand (single brand, two pages) — a second, independent drum-shell-finish source was sought (Yamaha drums, Pearl, Ludwig, Tama, Groove Juice, British Drum Co., SJC) but every attempt 404'd, 403'd, or failed DNS; flagged as single-brand evidence rather than held back further.
- `care_task` = `control_humidity` → `then_ask: [humidity_system_type, target_rh_percent, replacement_cycle_months]`, `makes_irrelevant: [finish_sheen, surface_metal_finish, lubricant_type, silicone_free]`. Traced directly: the three facts in `daddario_humidipak_maintain` and `fiddlershop_humidity_boveda` are all about this one task; a buyer who needs humidity control is not, in the same purchase, choosing a polish or an oil.
- `care_task` = `lubricate_moving_parts` → `then_ask: [lubricant_type]`, `makes_irrelevant: [finish_sheen, surface_metal_finish, silicone_free, target_rh_percent, humidity_system_type, replacement_cycle_months]`. Traced: `yamaha_brass_woodwind_accessories` is the only lubrication source and it names only brass/woodwind parts.
- `care_task` = `clean_or_polish` → `then_ask: [finish_sheen, surface_metal_finish, silicone_free]`, `makes_irrelevant: [lubricant_type, target_rh_percent, humidity_system_type, replacement_cycle_months]`. Traced: both finish facets and the silicone judgement come entirely from cleaning/polish sources (Taylor, StewMac, Yamaha's polish line, Zildjian).

No branch is attached to `humidity_system_type` (the third split): once climate is known there is nothing further sourced to ask, so per the rule ("only list a branch where the answer really changes the path") none is written.

## Trimmed detail

- Fretboard conditioning (`taylor_fretboard_conditioner`): a real, sourced product ("for unfinished wood fretboard," "no silicone or waxy residue") but it is a narrow sub-case of `finish_sheen` for necks specifically, only relevant to fretted string instruments with an unfinished board (maple boards are usually lacquered and excluded by the same product's own Q&A; ebony/rosewood usually are not). Promoting it to a full facet would double-count `finish_sheen`'s narrowing for a small slice of the catalog, so it stays as a note under `finish_sheen`'s definition rather than its own facet.
- Yamaha's three key-oil viscosities (light/medium/heavy) are real and sourced, but I found no second source stating a rule for which viscosity suits which instrument or climate, so no facet asserts a selection rule. Mentioned only in the `lubricant_type` vocabulary entry as "light, medium or heavy, chosen by feel."
- Reed and mouthpiece care (reed cases, reed conditioning packs) sits right on the boundary with the `guitar-picks` sibling leaf, which owns reeds and mouthpieces themselves. Humidity-controlled reed cases are a real product, but I treated them as the sibling's territory (a reed-specific accessory) rather than adding a reed-specific branch here, to avoid the "do not swallow a sibling's products" instruction; flagging this boundary call for a maintainer to revisit if the sibling's own register doesn't pick it up.
- Wood woodwind bore-cracking from dry air (clarinet, oboe) is widely discussed in player communities but I could not fetch a page stating a specific RH target or product within this run's time; left out of the register rather than guessed, and `brass_or_woodwind`'s branch makes humidity facets irrelevant as a result (see Branches).

## Script and tool problems

- `WebSearch` reported its session budget (200 of 200 calls) was already used before any search in this task ran, so every source below was reached by direct fetch: walking each brand's own `sitemap.xml` (and nested product/article sitemaps) to find the right URL, then `curl` with a browser user-agent, falling back to `r.jina.ai` as a rendering proxy for a handful of JS-rendered Shopify storefronts (`oasishumidifiers.com`, `conn-selmer.com`) where static HTML had no text in it. An attempt to use `r.jina.ai` as a proxy for a search-engine query (not a direct page) was blocked by the permission system's auto-mode classifier as a likely attempt to route around the search budget; I did not retry it and relied on sitemap-walking instead, which is slower but produced only pages I actually read.
- `hetmanlubricants.com` (a well-known valve-oil brand) did not resolve via DNS from this environment; dropped rather than substituted with an unverified figure.
- `martinguitar.com`, `dampit.com`, `corycare.com` and `conn-selmer.com/en-us/support/instrument-care` either 404'd, returned a near-empty parked-domain response, or (for Conn-Selmer) rendered only the site's shared navigation shell with no page-specific text through the available tools; none contributed a claim.
- No problems with `validate.py`, `render.py` or `viewer.py` themselves to report.

### 2026-10-25 fix pass

- `WebSearch` reported its 200-call session budget already exhausted before this pass started, the same problem the original run hit — every source below was reached by guessing a brand's own URL pattern or walking its `sitemap.xml`, then `WebFetch`.
- Pages that failed and were dropped rather than substituted: `usa.yamaha.com/.../drums/accessories/index.html` and `pearldrum.com/support/how-to-care-for-your-drums` (403); `ludwig-drums.com/finishes`, `cpsc.gov/.../FHSA-Requirements`, `sjcdrums.com/pages/finish-care`, `britishdrumco.com/pages/finish-care`, `oasishumidifiers.com/products/oh-6-case-humidifier`, `oasishumidifiers.com/pages/how-it-works`, `musicnomadcare.com/sitemap.xml` (404); `groovejuicedrums.com` (DNS did not resolve); `tamadrums.com/products/finishes` (TLS/SSL error); `dampit.com` (parked-domain redirect, not the live brand site). None of these contributed a claim.
- A second, independent (non-DW) source for the drum-shell gloss/satin distinction specifically was sought and not found within this pass; `finish_sheen`'s drum-shell evidence is single-brand (DW, two pages) — flagged honestly rather than left unfixed or invented.
- A source naming `absorb_only` as a real product (the counterpart to the now-confirmed `add_only`) was sought on Fiddlershop's humidity-control collection page and not found; it remains the one `humidity_system_type` value with no named product behind it. Not invented; left as an open gap.

## Corrections after the blind check (2026-10-25)

Blind checker's report: `check.md`, 8 required fixes, most severe the `drums_or_percussion`/`finish_sheen` self-contradiction. Each line below is one fix; "Branches" section above updated in place for every leg touched.

1. `drums_or_percussion` branch: moved `finish_sheen` from `makes_irrelevant` to `then_ask` (now asked alongside `surface_metal_finish`), and added `dw_drums_lacquer_finish`/`dw_drums_satin_oil_finish` as evidence on the `finish_sheen` facet and `mechanism.evidence`. Resolves the contradiction with `mechanism.families`' "lacquered or wrapped shells" — the most severe finding.
2. `replacement_cycle_months`: re-attributed the range's `typical` text from "Boveda's own guidance" to "Fiddlershop recommends," matching what the cited page (a retailer, not Boveda) actually says.
3. "No dedicated safety or health regulator..." judgement: added `cornell_fhsa_hazardous_substance_definition` (15 U.S.C. §1261) as evidence and rewrote the note to state what that statute actually says — hazardous substances defined generically by property, no instrument-specific category either way.
4. `brass_or_woodwind` branch: removed `target_rh_percent`, `humidity_system_type` and `replacement_cycle_months` from `makes_irrelevant`, leaving them neutral instead of flatly irrelevant, because the wood-woodwind half of this combined family has a real, unsourced bore-cracking concern (see "Trimmed detail"). `finish_sheen` stays irrelevant — unaffected by this finding.
5. `string` branch: moved `surface_metal_finish` from `makes_irrelevant` to `then_ask`, added `musicnomad_pro_strength_guitar_polish` as evidence. Guitar/violin-family plated hardware does tarnish and has its own dedicated polish, same risk the facet already describes for brass and cymbals; this was never researched before and was wrongly marked irrelevant.
6. `humidity_system_type`'s `backfill_cost` changed from `low` to `medium`, matching its own `backfill_note`'s "brand page only" problem — the same basis already used for `finish_sheen` and `target_rh_percent`.
7. `care_task`'s cold-start question (both the split's `question` and the facet's `cold_start_question`) reworded from "Clean the surface, control humidity, or lubricate parts?" to "Polish your instrument, control case humidity, or lubricate parts?" — names the instrument and the case so the question no longer reads unchanged for leather goods or camera gear.
8. Added a second source for two of the three flagged single-sourced claims: `getzen_care_maintenance` (valve oil and tuning-slide grease as separate products, corroborating `lubricant_type`) and `oasis_humidifier_faq` + `fiddlershop_humidity_collection` (confirming `add_only` is a real, named product type for `humidity_system_type`). Not fully resolved: cork grease specifically (Getzen doesn't sell it) and `absorb_only` (no product found anywhere fetched) remain single- or zero-sourced — logged above under "Script and tool problems," not papered over.

No findings were rejected; all eight required fixes were actionable and are addressed above, two (4 and 8) only partially — both documented rather than forced past what the sources actually support.
