Prose-style & consumer-language sweep — 2026-06-09 (batch 9, ingredients)
Counts: P1 0 · P2 14 · P3 21. Report-only; no pages were edited.
Pages scanned (25): saltine-crackers.md, seafood.md, semi-skimmed-milk.md, sesame-oil.md, shark.md, shellfish.md, skim-milk.md, soft-drink-bases.md, soy-based-infant-formula.md, soy-protein-isolate.md, soy.md, soybean-oil.md, spices.md, sports-drink-bases.md, squash.md, strawberries.md, sunflower-oil.md, sunflower-seeds.md, tea.md, teething-and-snacks.md, tinned-fish.md, tomato-paste.md, tomato-soup.md, tomato.md, tortilla-chips.md
Stubs/previously-covered skipped (6): salt.md (provisional_scaffold), seaweed.md (covered batch 1), soy-milk.md (provisional_scaffold), spinach.md (covered batch 1), sweet-potato.md (covered batch 1), swordfish.md (provisional_scaffold).
Clean pages (no findings): sunflower-seeds.md, tinned-fish.md, tomato-soup.md, tomato.md.
Next run resumes at wiki/ingredients/turkey.md.
Dominant pattern this batch
Oil-family “modest” cascade. soybean-oil.md and sunflower-oil.md each use “modest” three to five times across different sections without ever anchoring to a ppb value — exactly the same pattern flagged for rapeseed-oil.md in batch 7. This is now clearly a template-level issue for the oil-ingredient pages. A single editing pass across all oil pages should replace “modest baseline Pb-and-Cd,” “modest rates,” “modest additional metals from packaging,” and “modest net change” with the actual corpus ppb values or a note that no quantified data are available.
Dairy family repeats the batch 6/7 pattern. semi-skimmed-milk.md and skim-milk.md each declare dairy metal contributions “negligible” and products “low-risk” without per-ppb anchors — repeating the pattern in fromage-frais (batch 5) and reduced-fat-milk (batch 8). The same fix applies: replace “negligible” with “at or below detection limits (TDS data)” and link the specific profile data.
seafood.md:312–318 new bold variant. The seafood hub page uses bold paragraph-opening labels for analyte categories (Methylmercury, Cadmium, Inorganic arsenic, Total arsenic) in a synthesis/orientation section. This is closer to a legitimate catalog (each labels a discrete analyte with a cross-reference) but the paragraphs are prose, not a bullet list. Flag and let the editor decide.
soy.md:107–115 new bold variant. The soy page uses bold labels for derivative types (Soy oil, Soy protein isolate, Tofu, Soy milk, Fermented soy) in a derivatives section. Same structural assessment: discrete catalog in prose paragraphs, closer to legitimate than the generic lever labels, but not in a bullet list.
P1 — consumer safe/dangerous without anchor
| Page | Line | Offending text | Why | Suggested fix | Claim-adjacent? |
|---|---|---|---|---|---|
| (none found) | — | — | — | — | — |
P2 — bullets-in-prose & other qualifiers
| Page | Line | Offending text | Why | Suggested fix | Claim-adjacent? |
|---|---|---|---|---|---|
| saltine-crackers.md | 99 | Salt (NaCl)...contributes negligible metals / Vegetable shortening or oil...is similarly low-risk after industrial refining | ”Negligible” for food-grade salt metals and “low-risk” for refined fat without ppb; both are mechanistically defensible but unanchored | Replace “negligible metals” with “metals below detection limits in food-grade salt”; replace “low-risk” with “metals at or below detection limits per TDS data for refined oils” | no — mechanism is sound; the trigger words are “negligible” and “low-risk” |
| semi-skimmed-milk.md | 95 | Dairy is a low-risk matrix for heavy metals / is generally low (for dairy metals in commercial herds) | “Low-risk matrix” and “generally low” without ppb; the supporting TDS data exist for fluid milk but are not cited in this sentence | Anchor: “Dairy is a low-metal matrix; Pb in fluid milk is typically below [X ppb] and Cd below [Y ppb] per TDS data (see reduced-fat-milk profile)” | ⚠ yes — this is the orientation paragraph for a high-traffic dairy-category page |
| semi-skimmed-milk.md | 132 | Its metal contribution in all these applications is negligible given the near-zero baseline / the resulting dried product remains low-risk | ”Negligible” for the milk-fraction contribution and “low-risk” for dried semi-skimmed milk without ppb | Rephrase: “Its metal contribution is at or below detection limits given the near-zero fluid-milk baseline; the dried product concentrates metals ~10× from the near-zero baseline but remains well below regulatory limits” | no — near-zero baseline is accurate; “negligible” and “low-risk” are the triggers |
| skim-milk.md | 155 | the resulting powder remains low-risk | ”Low-risk” for skim milk powder after spray-drying concentration without ppb | Rephrase: “the resulting powder, though concentrating metals ~10×, remains well below the relevant regulatory limits for dairy given the near-zero fluid baseline” | no — mechanistic claim; anchor to regulatory limits makes it concrete |
| skim-milk.md | 159 | The near-zero metal content of skim milk means its contribution...is negligible | ”Negligible” for the skim milk contribution to formulated products without ppb | Rephrase: “at or below detection limits means the skim milk fraction does not drive the metal profile of any downstream formulated product” | no — TDS data (all ND) cited earlier in page; “negligible” is the trigger |
| soy.md | 56 | Pb is generally low except where contaminated soil is involved | ”Generally low” for soy Pb without ppb; the contamination profile table carries Pb data | Anchor: “Pb is typically below [X ppb] in commercial non-contaminated-soil soybean supply (profile below); elevated in produce from documented contaminated-soil regions” | no — same pattern as legumes.md and non-soy-protein.md from prior batches |
| soybean-oil.md | 94 | modest baseline Pb-and-Cd from upstream seed agronomy | ”Modest baseline” without ppb; same oil-family pattern flagged in rapeseed-oil.md (batch 7) and sunflower-oil.md (this batch) | Anchor from the profile table: “baseline Pb of [X ppb] and Cd of [Y ppb] from upstream seed agronomy (see contamination profile below)“ | no — profile carries the data; “modest” is the trigger |
| sunflower-oil.md | 94 | the seed itself carries a modest soil-derived metal load / Sunflower oil is consistently among the lowest-metal-load edible oils | ”Modest” and “lowest-metal-load” without ppb; the corpus data exist | Anchor: “the seed carries Pb typically [X ppb] and Cd [Y ppb] per corpus data; sunflower oil sits in the lower range of the edible-oil metals distribution (profile below)“ | no — both claims are supportable but unanchored |
| sunflower-oil.md | 98 | the seed accumulates Pb and Cd from soil...at modest rates relative to leafy vegetables | ”Modest rates” for Pb/Cd uptake without quantification; the comparison to leafy vegetables is relative without numbers for either | Rephrase: “the seed accumulates Pb and Cd at lower rates than leafy vegetables (Pb [X ppb] vs leafy-vegetable [A–B ppb])” — insert corpus values | no — comparative mechanism claim; numbers would complete it |
| sunflower-oil.md | 123/127/153 | the net change is modest (refining); picks up modest additional metals from packaging-migration (shelf life); contribute modest additional metals (tin/Al packaging) | Three “modest” qualifiers in different sections without ppb; same cascade as rapeseed-oil.md and soybean-oil.md | Batch-fix across all oil pages: replace each “modest” with either a corpus ppb value or “no corpus-specific quantification is available for this commodity; see the Charfi 2026 olive-oil packaging-comparison data for order-of-magnitude context” | no — oil-family template issue; each instance lacks the same ppb anchor |
| tea.md | 123 | post-fermentation aging for pu-erh tea can produce modest additional Al concentration | ”Modest additional Al concentration” for pu-erh aging without ppb; the sentence acknowledges “this is not quantified in the loaded corpus” | Rephrase: “post-fermentation aging for pu-erh tea can produce additional Al concentration (magnitude not quantified in the current corpus; flagged for future characterisation when pu-erh-specific data are ingested)“ | no — the absence-of-data acknowledgement is already there; “modest” adds an unanchored magnitude claim |
| teething-and-snacks.md | 125 | even at modest per-serving metal levels | ”Modest per-serving metal levels” for teething-and-snacks products without a ppb or per-serving dose value | Rephrase: “even at single-digit-ppb per-serving metal levels (Pb, Cd at or below 10 ppb in most commercially available products)” — or anchor to relevant test data | ⚠ yes — infant/toddler context; “modest” understates the per-body-weight-adjusted exposure argument that is the reason the sentence exists |
| strawberries.md | 155 | the modest Cd values documented in the TDS data, the contribution is small relative to higher-risk ingredients | ”Modest Cd values” and “small” for the strawberry Cd contribution at typical inclusion levels; TDS median (8.5 ppb) IS cited in the prior paragraph. Borderline — the anchor is proximate. | Minor: replace “the modest Cd values” with “the documented TDS Cd (median 8.5 ppb)” — no information loss, removes the unanchored qualifier | no — the TDS data is cited in the same paragraph; this is a borderline but clean fix |
| tortilla-chips.md | 99 | The salt added during frying and seasoning contributes negligible metals | ”Negligible” for flavoring-salt metal contribution without ppb; mechanism is that food-grade salt is low in metals | Rephrase: “The salt added during frying and seasoning contributes metals below detection limits at typical inclusion levels, assuming food-grade salt is used” | no — same pattern as saltine-crackers.md salt finding |
P3 — em dashes & inline bold
| Page | Line | Offending text | Why | Suggested fix | Claim-adjacent? |
|---|---|---|---|---|---|
| sesame-oil.md | 73 | sesame plants are documented Cd accumulators — sesame seeds carry Cd at concentrations multiples higher than most other oilseeds | Em dash connecting the category label to its elaborating evidence clause | Replace with a semicolon: “sesame plants are documented Cd accumulators; sesame seeds carry Cd at concentrations…“ | no |
| sesame-oil.md | 91–101 | **Sourcing levers** (...)... through **Packaging and storage levers** (...)... | Six bold lever-label paragraph openers; systemic pattern. | Convert to bulleted list with bold labels or use ### Lever type sub-headings. | no |
| seafood.md | 312–318 | **Methylmercury**..., **Cadmium**..., **Inorganic arsenic**..., **Total arsenic**... | Four bold paragraph-opening labels for analyte categories in a synthesis/orientation section. Each names a discrete analyte with a cross-reference; closer to a legitimate catalog than the generic lever labels, but in prose paragraphs rather than a bullet list. | Convert to a bullet list with bold definition labels (legitimate catalog per the task guidance) or remove bold and use the analyte as a plain-text paragraph opener. | no |
| seafood.md | 346–356 | **Sourcing levers** (...)... through **Agronomic and formulation levers**... | Bold lever-label paragraph openers in the Mitigation section; systemic pattern. | Same fix as above. | no |
| shellfish.md | 233 | bivalves filter large volumes of water — an oyster filters 5-50 liters per day — and concentrate dissolved and particle-bound metals | Em-dash pair around an illustrative parenthetical; same pattern as molluscs.md:114 (batch 7). | Replace with parentheses: “bivalves filter large volumes of water (an oyster filters 5–50 liters per day) and concentrate dissolved and particle-bound metals” | no |
| shellfish.md | 261–267 | **Sourcing levers** (...)... through **Packaging and storage levers** (...)... | Four bold lever-label paragraph openers; systemic pattern. | Same fix as above. | no |
| soft-drink-bases.md | 129 | sweetener choice (HFCS vs cane sugar vs non-nutritive sweetener — different baseline impurity profiles) | Em dash inside a parenthetical, connecting a list item to a characterising clause | Replace with a comma: “(HFCS vs cane sugar vs non-nutritive sweetener, each with different baseline impurity profiles)“ | no |
| soft-drink-bases.md | 141–151 | **Sourcing levers** (...)... through **Packaging and storage levers** (...)... | Six bold lever-label paragraph openers; systemic pattern. | Same fix as above. | no |
| soy-based-infant-formula.md | 148–158 | **Sourcing levers** (...)... through **Packaging and storage levers** (...)... | Six bold lever-label paragraph openers; systemic pattern. | Same fix as above. | no |
| soy.md | 107–115 | **Soy oil**..., **Soy protein isolate**..., **Tofu**..., **Soy milk**..., **Fermented soy**... | Five bold paragraph-opening labels for derivative types in the “Processing effects / Ingredient-derivative risk” section. Each names a discrete product type. Closer to a legitimate catalog, but these are prose paragraphs, not a bullet list. | Convert to a bullet list with bold definition labels (legitimate catalog), or remove bold and let the derivative name stand as plain text. | no |
| soy.md | 129–139 | **Sourcing levers** (...)... through **Packaging and storage levers** (...)... | Six bold lever-label paragraph openers; systemic pattern. | Same fix as above. | no |
| soy-protein-isolate.md | 131 | (a documented agronomic phenomenon — soy yields are Al-stress-sensitive in acidic soils because of root-zone Al toxicity, and the surviving plant tissue carries elevated Al) | Em dash inside a parenthetical, connecting the label to its elaborating mechanism clause | Replace with a comma: “(a documented agronomic phenomenon: soy yields are Al-stress-sensitive in acidic soils because of root-zone Al toxicity…)“ | no |
| soy-protein-isolate.md | 139 | US Midwest soybean production, Brazilian soybean production, Argentine soybean production, Chinese domestic soybean production, European soybean production — each carrying different Al/Cd profiles | Em dash connecting an enumerated list to a characterising clause | Replace with parentheses or a comma at list end: ”(…, European soybean production, each carrying different Al/Cd profiles reflecting regional soil characteristics)“ | no |
| soy-protein-isolate.md | 151–161 | **Sourcing levers** (...)... through **Packaging and storage levers** (...)... | Six bold lever-label paragraph openers; systemic pattern. | Same fix as above. | no |
| spices.md | 94 | Spices — the broad seasoning category covering ground and whole dried plant parts (turmeric, paprika, cinnamon, black pepper, cumin, coriander, chili, cardamom, cloves, and dozens more) — sit at the top of the food-system heavy-metals risk distribution | Em-dash pair around an extended appositive in the opening sentence of running prose | Replace with parentheses: “Spices (the broad seasoning category covering ground and whole dried plant parts: turmeric, paprika, cinnamon, black pepper, cumin, coriander, chili, cardamom, cloves, and dozens more) sit at the top of the food-system heavy-metals risk distribution” | no |
| sports-drink-bases.md | 139–149 | **Sourcing levers** (...)... through **Packaging and storage levers** (...)... | Six bold lever-label paragraph openers; systemic pattern. | Same fix as above. | no |
| squash.md | 127 | summer squash, winter squash, pumpkin — broadly similar baselines but pumpkin in particular accumulates moderate Cd | Em dash connecting a cultivar list to a qualifying clause in running prose | Replace with parentheses: “(summer squash, winter squash, pumpkin; broadly similar baselines, but pumpkin in particular accumulates moderate Cd)“ | no |
| squash.md | 139–149 | **Sourcing levers** (...)... through **Packaging and storage levers** (...)... | Six bold lever-label paragraph openers; systemic pattern. | Same fix as above. | no |
| teething-and-snacks.md | 141–151 | **Sourcing levers** (...)... through **Packaging and storage levers** (...)... | Six bold lever-label paragraph openers; systemic pattern. | Same fix as above. | no |
| shark.md | 93–99 | **Sourcing levers** (...)..., **Consumption-pattern levers**..., **Testing and QC levers** (...)..., **Processing, formulation, agronomic, and packaging levers**... | Four bold lever-label paragraph openers (three levers combined into one paragraph for the last entry); systemic pattern. | Same fix as above. | no |
| tomato-paste.md | 95–105 | **Sourcing levers** (...)... through **Packaging and storage levers** (...)... | Six bold lever-label paragraph openers; systemic pattern. | Same fix as above. | no |