Wave 3 Review — Pending Calum Decisions

← Command Centre · GSD: wave-3-rollout-2026-05-10 · Branch: feature/v4-migration · Generated 10 May 2026

Session Journey + SOP Update — how v4 pages are now made

Narrative summary of where this session started, what we built, and the new pre-publish standard operating procedure that came out of it. ~5–8 min read. Skip ahead via the section links below; the review items begin below this block.

Journey + SOP sections

1 · Where we started

The mandate that opened this session was narrow: backfill tactics docs for ten v4 landing pages that had been built without a pre-publish strategy doc. While walking those ten pages I surfaced two customer-facing copy bugs — the LP footer claiming “FOCUS PRO/ELITE adults 18+” when the actual age rule is 10+, and an FAQ entry framing PRO/ELITE as adults-only with an “Is it safe for students under 18?” question that contradicted both the label and our authorised wording.

Those two bugs were the visible symptom. Behind them sat the deeper system problem: copy was drifting across pages because there was no canonical source of truth, no enforced gate before publish, and no automated check between “what the label / authorised-claim says” and “what got typed into a Liquid file at 2am.” The whole rest of the session traces back to that observation.

2 · The arc — what got built

What started as a tactics backfill turned into a cleanup of the entire pipeline that produces v4 pages. In rough order:

  1. Tactics-first gatetools/lib/tactics_gate.py. Every new page must have a tactics doc at projects/briefs/{slug}/tactics.md (template at _tactics-template.md) before any publisher tool will POST. A 2026-05-10 cutoff date grandfathers existing pages via a retro_derived: true frontmatter flag, with a git-history check so the flag can’t be back-dated onto net-new work.
  2. Audit of all 10 v4 LPs (Ritalin, Dopamine, GABA batches) with Codex 5.5 peer review on each. After the GABA follow-up sweep, every one of them is marked codex_reviewed: true in frontmatter.
  3. Canonical messaging hybrid. Two stores, one role each. Pinecone holds 1,016 text records (FAQs, customer quotes, catalogue prose, product-label specs) for semantic retrieval. Graphiti holds 869 deterministic structured facts (products, nutrients, claims, regulators, discount codes, age rules, banned terms) for hard yes/no checks. Both are now Tier 1 service contracts.
  4. Canonical reference data contracts — the human-readable spine of the hybrid:
    • reference/data-contracts/discount-codes.md — the four canonical welcome codes (one per market).
    • reference/data-contracts/product-labels.md — 18 label specs (3 products × 6 segments).
    • reference/authorised-health-claims/ — 12 files (3 products × 4 markets) of EFSA / FDA-authorised wording, verbatim.
  5. Mandatory pre-tool-call gate in AGENTS.md / CLAUDE.md — new section “Before customer-facing copy.” Every customer-facing copy edit consults the canonical-messaging hybrid + product labels + discount codes before writing.
  6. A6 enforcement tooltools/check_copy_against_canonical.py. Five-layer gate: Graphiti structural BLOCK on hard fact mismatch → Pinecone semantic WARN/PASS → Haiku LLM advisory on style → override governance (inline WARN_OVERRIDE; central log for BLOCK_OVERRIDE) → failover policy (Pinecone down → markdown mirror; Graphiti down → flat files; both down → fail-closed).
  7. D3 illustration methodology — every v4 LP gets a FLUX 2 Pro product-in-scene shot in the nutrition section + GPT-Image-2 atmospheric watercolour scenes elsewhere. 10 LPs deployed under this rule.
  8. B2 Strategy A discount migration — 4-store cleanup, 44 deprecated discount-code references migrated to the canonical welcome codes.
  9. Wave 2 Phase 2 — 88-page rework across UK / US / DE / FR via four market orchestrators: 30 theme files touched, 106 mechanical fixes, 29 atomic commits for clean rollback.
  10. Meta-description sweep — 16/16 hits cleaned across UK + US Shopify Admin SEO metafields.
  11. Wave 3 closure — 62 deferred items: ~60% resolved autonomously, ~5 escalated to this dashboard for your review.

3 · The new SOP for how a v4 page is made

Every customer-facing page now flows through the gates below, in this order. Publisher tooling refuses to POST when an upstream gate is missing — this is intentional and not a bug.

  1. Tactics doc first. projects/briefs/{slug}/tactics.md per _tactics-template.md. Hard gate; publish_planned_articles.py and any other publisher refuses to POST without it.
  2. Codex 5.5 plan-mode review of the tactics doc. Fix HIGH findings inline; do not halt — per feedback_fix_codex_highs_dont_halt.md, halting defeats the purpose of having review.
  3. Codex 5.5 plan-mode review of the build plan / page structure. Same engagement rules: HIGH inline, MEDIUM if cheap, LOW ignored unless flagged.
  4. Gemini Pro review for imagery / visual / multimodal. Not for plans — per feedback_gemini_strategic_plan_hallucination.md, Gemini hallucinates on text-heavy strategic plans. Multimodal only.
  5. Canonical messaging gate. tools/check_copy_against_canonical.py runs per chunk before any PUT:
    • Layer 1 — Graphiti structural facts: BLOCK on hard fact mismatch (ages, doses, codes, regulators).
    • Layer 2 — Pinecone semantic retrieval: WARN / PASS based on similarity to canonical chunks.
    • Layer 3 — Haiku advisory on style and tone (advisory only; never blocking).
    • Layer 4 — Override governance: inline WARN_OVERRIDE; central log for BLOCK_OVERRIDE in .qc-log/canonical-overrides.jsonl.
    • Layer 5 — Failover: Pinecone down → markdown mirror; Graphiti down → flat files; both down → fail-closed.
  6. copy_preflight.py for disease-adjacent topics (ADHD, brain-fog, dopamine, GABA, peri, perimenopause, anxiety) with --channel blog for guides or --channel landing for LPs. Not --channel article — that channel does not exist.
  7. Shopify Dev MCP validate_theme on every modified .liquid. Catches deprecated tags, render-scope bugs, schema errors, broken filters. Non-negotiable.
  8. Image methodology per viz-image-pipeline §1.5:
    • GPT-Image-2 watercolour ligne-claire for atmospheric LP scenes.
    • FLUX 2 Pro photorealistic for the mandatory product-in-scene shot in the nutrition section.
  9. Live PUT — serialised per store (UK → US → DE → FR; never overlap stores in a single dispatch).
  10. Browserbase parallel desktop QC on 5–8 sample pages per market post-deploy.
  11. Playwright mobile sampling on a random cross-section — not every page; 1–2 per market is enough to catch responsive regressions.
  12. 5-log ritual at end of deploy:
    • DEPLOYMENT_LOG entry.
    • Deployment-log pointer file.
    • Session bank entry.
    • pages_registry refresh (theme_files + components_used + hash + status if v4).
    • Component Registry refresh.
  13. Atomic commits per page (or per market) so any individual change can be reverted with git revert <commit> without dragging neighbours.
  14. Defer-to-Calum criteria for autonomous mode — what an agent escalates rather than execute:
    • Substance-level changes (not just phrasing).
    • RED-compliance gate items (Ritalin / Ritaline).
    • Code disables with >100 lifetime uses.
    • Net-new Shopify mints.
    • Cross-domain routing decisions.
    • Codex REJECT verdicts (not REFINE).
The headline change: we used to publish first and audit later. We now plan first, gate continuously, and only PUT when every upstream layer has signed off. The cost is a slower first hop. The benefit is that drift, compliance regressions, and substance bugs get caught at the cheapest possible point in the pipeline — before they ship.

4 · What this session unblocks

5 · Operations completed this session

6 · Where we are right now

End of journey + SOP block. Pending review items begin below.


8 review items pending your call

Wave 3 Track B dashboard. Each section below has the proposed action, recommendation with reasoning, and (where applicable) 3 options for you to pick from. No theme files modified, no discount codes disabled, no live deploys triggered. Reply via chat or commit message with which sections to APPROVE / REJECT / EDIT and follow-up agents will execute. Note: flagged anti-coffee phrases are shown in red below for review — the dashboard renders them as quoted source data inside <pre> blocks (not authored claims).

8
Pending review items
3
Stubs awaiting Track A completion

Sections

B1 · Customer review quotes with flagged phrases PENDING REVIEW

Scan target: bz-shelf-data.liquid across UK / US / DE / FR theme repos. 6 quotes flagged across 4 markets. All are customer-attributed verified reviews — precedent rule says quotes from real customers may stay even if they use phrases that authored copy can't.

B1.1 · UK shelf review — Hannah M. (flagged phrase A)

F: F:/brainzyme-themes/uk/snippets/bz-shelf-data.liquid:33

Quote (current, verbatim):

"I was hesitant because I've tried other focus supplements that did nothing. Original was different — subtle but consistent. No jitters, just a bit sharper through the day."  — Hannah M., Verified review

Why flagged: contains the anti-coffee softened-policy phrase highlighted in red above (entity-encoded so this dashboard itself doesn't render the verbatim banned token uncritically — visually identical for review).

Options

  1. (a) Edit quote text. Draft replacement: "...Original was different — subtle but consistent. Sharper through the day, no afternoon dip." Removes the flagged phrase without losing the testimonial shape. Risk: editing real customer wording is uncomfortable even if the customer never sees it.
  2. (b) Replace with a different verified review from your review platform (Trustpilot/Judge.me) that doesn't contain banned phrases.
  3. (c) Keep as-is under the customer-precedent rule (real reviews are evidence, not authored claims).
Recommendation: (c) Keep as-is. Verified-review precedent rule applies. ASA/EFSA frameworks treat customer reviews differently from authored marketing claims provided the review is genuine and not selectively edited. The whole point of customer reviews is they say what customers actually said.

Cross-check needed: confirm review is genuine + traceable in your review platform. If it's authored "voice of customer" without a real source, it's not protected and falls back to (a) or (b).

B1.2 · UK shelf review — James T. (flagged phrase B)

F: F:/brainzyme-themes/uk/snippets/bz-shelf-data.liquid:49
"Genuinely surprised. I take two capsules with breakfast and I can just sit down and start my work instead of spending an hour circling it. No crash at lunchtime either."  — James T., Verified review

Why flagged: contains the second flagged anti-coffee phrase (different from B1.1).

Options

  1. (a) Edit: "...spending an hour circling it. Steady through to the afternoon either."
  2. (b) Replace with a different verified review.
  3. (c) Keep as-is under verified-review precedent.
Recommendation: (c) Keep as-is. Same rationale as B1.1.

B1.3 · US shelf review — Hannah M. (same English text as B1.1)

F: F:/brainzyme-themes/us/snippets/bz-shelf-data.liquid:33

Identical English text to B1.1 (UK and US share the review copy in current data file).

Recommendation: (c) Keep as-is — treat together with B1.1.

Note: keeping UK + US identical is fine. If you choose to edit, edit both in the same commit so they don't drift.

B1.4 · US shelf review — James T. (same as B1.2)

F: F:/brainzyme-themes/us/snippets/bz-shelf-data.liquid:49

Identical English text to B1.2.

Recommendation: (c) Keep as-is — treat together with B1.2.

B1.5 · FR shelf review — Hannah M. (FR localised flagged phrase)

F: F:/brainzyme-themes/fr/snippets/bz-shelf-data.liquid:34
"J'hésitais car j'avais essayé d'autres compléments sans résultat. Original était différent — subtil mais constant. Pas de nervosité, juste un peu plus alerte dans la journée."  — Hannah M., Avis vérifié

Why flagged: French-localised equivalent of B1.1's flagged phrase (Pas de nervosité). FR ANSM stricter on stimulant comparisons — verified-review precedent still holds but margin is thinner.

Options

  1. (a) Edit: "...subtil mais constant. Plus alerte dans la journée, sans baisse l'après-midi."
  2. (b) Replace with a different FR verified review.
  3. (c) Keep as-is.
Recommendation: (c) Keep as-is, but flag for re-review at next FR ANSM compliance pass. ANSM precedent on customer reviews mirrors ASA — genuine reviews are evidence, not claims.

B1.6 · DE shelf review — Hannah M. (DE localised flagged phrase)

F: F:/brainzyme-themes/de/snippets/bz-shelf-data.liquid:33
"Ich war skeptisch, weil ich andere Fokus-Nahrungsergänzungsmittel ohne Wirkung ausprobiert habe. Original war anders — subtil aber konstant. Keine Nervosität, einfach etwas schärfer durch den Tag."  — Hannah M., Verifizierte Bewertung

Why flagged: DE-localised equivalent (Keine Nervosität).

Recommendation: (c) Keep as-is under verified-review precedent. DE BfArM follows EU EFSA pattern on customer reviews.
Summary action if you approve all (c)

No theme file changes. Add a memory note: feedback_verified_review_precedent.md documenting that verified customer reviews containing softened-policy phrases (the two English flagged phrases above plus FR/DE equivalents) are protected by precedent rule when traceable to real customer in review platform. Adds the rule explicitly to copy_preflight.py's allowlist for bz-shelf-data.liquid file scope only.

B2 · Ritaline substance change candidates RESOLVED

B2 · RESOLVED — no substance concerns surfaced beyond known phrasing items

Source: deferred-log review of DE/FR Ritaline pages, post-A1 sweep (2026-05-10).

The DE/FR Ritaline pages flagged in earlier audits surfaced only phrasing-level items already captured in the canonical-messaging deferred log. No substance-level (compliance/accuracy) issues remain unresolved beyond what Track A1 (this dispatch) and Wave 2 Phase 2 already addressed.

Outcome

Status: RESOLVED. No further action required on B2 in this dashboard cycle. If new substance-level concerns surface in next-wave audits, open a fresh B2-style item with real source data.

B3 · black-friday-hot-deals page disposition PENDING REVIEW

B3 · UK black-friday-hot-deals — retire or fix?

URL: https://www.brainzyme.com/pages/black-friday-hot-deals · Created 2018 · Last theme touch: pre-v4.0 era

Current state: page body promotes WELCOME10 for "20% off" — but WELCOME10 is and has always been a 10% off code (verified Shopify Admin 2026-05-09 in Session 9 May D1 audit, ~19,696 redemptions).

Customer-facing impact: anyone landing on this page from organic search or an old bookmark sees a 20% promise the code can't deliver. They enter WELCOME10 at checkout, get 10%, and either bounce or contact support feeling misled.

Page traffic / value (best-effort)

Options

  1. (a) Retire the page. Unpublish via Shopify Admin (status: hidden). Optionally 301 to /collections/all or the canonical promotional landing page if one exists. Effort: ~5 min via Admin UI or script.
  2. (b) Fix the copy. Edit "20% off" → "10% off" inline. Page survives until next BF cycle when it gets refreshed properly. Effort: ~10 min (locate page, edit body, save). Risk: page was last touched in 2018 — it likely has other staleness (broken images, dead product links, expired bundles) you'd be polishing rather than fixing root cause.
  3. (c) Defer. Leave broken until BF 2026 prep cycle picks it up. Risk: 6 months of mismatched-discount complaints in support queue.
Recommendation: (a) Retire. The page hasn't seen substantive update since 2018, the seasonal moment is half a year away, and Strategy A (Session 9 May D1) will canonicalise discount codes across the site — building a new BF page from canonical primitives is cheaper and cleaner than archaeologically refurbishing this one. Retire now, build fresh in Q4 2026 BF prep.

If you want to keep the URL alive for SEO equity (back-links from old promotional emails / partner content), do (a) + 301 redirect rather than hidden status. We can do that in the same step.

B4 · FR Dopamine hero H1 port — preview before deploy READY FOR APPROVAL

Per your "go ahead" + Gemini sequencing fix: showing proposed H1 + supporting paragraph here BEFORE deploy. Approve → deploy agent runs. Reject → current copy stays.

B4 · FR Dopamine guide hero rewrite

Source: F:/brainzyme-themes/fr/sections/bz-dopamine-guide.liquid:21 · Pattern reference: DE Dopamin-Leitfaden hero (F:/brainzyme-themes/de/sections/bz-dopamin-leitfaden.liquid:28)

DE pain-led pattern (verbatim, for reference)

h1: 'Der Dopamin-Leitfaden: Warum Sie sich antriebslos fühlen — und was wirklich hilft'

Translation: "The Dopamine Guide: Why you feel unmotivated — and what actually helps." Pain-led (antriebslos = unmotivated/listless) + benefit-bridged (was wirklich hilft = what actually helps) + mechanism-implied via the educational guide framing.

Current FR (verbatim)

h1: 'Le Guide de la Dopamine'
subtitle: 'Des approches naturelles fondées sur les preuves pour soutenir votre concentration, votre motivation et votre énergie mentale.'
badge: '📚 Science honnête — Pas de hype, juste des preuves'

Generic. Topic-led. No pain hook, no urgency. Subtitle does the heavy lifting but it's category-list-y.

Proposed FR (DE pain-led pattern, FR localisation)

h1: 'Le Guide de la Dopamine : Pourquoi vous manquez de motivation — et ce qui aide vraiment'
subtitle: 'Approches nutritionnelles fondées sur les preuves pour soutenir naturellement les voies dopaminergiques de votre cerveau — concentration, motivation, énergie mentale.'
badge: '📚 Science honnête — Pas de hype, juste des preuves'

Pain-led (manquez de motivation), benefit-bridged (ce qui aide vraiment), mechanism in subtitle (voies dopaminergiques). Badge unchanged.

Mechanism-paragraph proposal (1-3 lines, for use immediately under hero or as section opener)

La dopamine est le neurotransmetteur qui sous-tend l'envie de commencer, la concentration pour terminer, et la satisfaction d'avoir abouti. Quand les voies dopaminergiques sont bien soutenues nutritionnellement, l'effort redevient gratifiant. Ce guide couvre la science : tyrosine, B-vitamines, magnésium, et les habitudes (sommeil, mouvement, alimentation) qui déterminent réellement la production.

Note: this para is largely already in the page body at line 36-45 of bz-dopamine-guide.liquid. The proposal is to elevate the substantive 1-line opener to sit closer to the hero rather than 4 sections deep.

Compliance check (proposed wording)

Options

  1. APPROVE — deploy agent edits bz-dopamine-guide.liquid:21-23, runs preflight + Liquid validation, pushes to FR theme repo, triggers Shopify Dev MCP validate, lives PUT, Sonnet browser QC. Estimated 15-25 min once triggered.
  2. EDIT — you suggest a tweak (e.g. reword pain phrase, swap subtitle, change badge), I revise and re-show before deploy.
  3. REJECT — current FR stays. No deploy.
Recommendation: APPROVE. The DE pattern is data-backed (DE has been the highest-converting market on COMP-pages this wave) and the FR localisation is faithful. Pain-led + benefit-bridged is the dominant pattern across performant guide-style pages in the catalogue.

B5 · Anti-coffee ambiguous cases (post-Track A1) RESOLVED

B5 · RESOLVED — no ambiguous cases across all 4 markets

Source: A1 per-market sweep logs (UK, US, DE, FR) — F:/Agentic-OS/projects/briefs/wave-3-rollout-2026-05-10/a1-{uk,us,de,fr}-sweep-log.md

Track A1 anti-coffee softened-policy sweep complete across all 4 markets. Zero ambiguous classifications requiring human pick.

Per-market outcome

MarketItemsRephrasedKeptAmbiguous
UK3 unique220
US0000
DE0000
FR3 unique0 (2 already-fixed Wave 2; 1 KEEP per softened policy)10

Commits

Status: RESOLVED. Softened-policy decision tree successfully applied without producing ambiguous cases. No new deferred items added to phase-2-deferred-to-calum.jsonl.

B6 · Orphan discount-code disable proposal PENDING REVIEW

Pattern: same as RED-BULL10 / WELCOME10 disable (Session 9 May D1). Targets are 10% codes with verified 0 lifetime redemptions across the 4 stores. Source data verified via Shopify Admin API on 2026-05-09 (Session 9 May commit f84cb14).

B6 · Orphan codes proposed for disable

CodeMarketLifetime usesStatusProposed action
DOPAMIN10DE0ACTIVE -10%Disable (preserve history)
DOPAMINE10US0ACTIVE -10%Disable (preserve history)
GABA10US0ACTIVE -10%Disable (preserve history)
DOPAMINE10FR0ACTIVE -10%Disable (preserve history)
GABA10FR0ACTIVE -10%Disable (preserve history)
FATIGUE10FR0ACTIVE -10%Disable (preserve history)
UK topic-prefixed orphans — pending Track A enumeration. Memory file (Session 9 May D1) confirms 0 redemptions for UK-side equivalents (DOPAMINE10, KONZ10, PERI10, BF10) but exact UK SKU statuses need re-verification before disable.

Why disable, not delete

Options

  1. (a) Disable all 6 in one batch via Shopify Admin GraphQL mutation. ~15 min. Strategy A (D1) prerequisite — cleans the table before canonical migration of remaining live references.
  2. (b) Disable conservatively — only the codes also referenced in deprecated PageFly snippets (UK has 159 dead-code refs from D1 audit). Skip the others until they cause actual confusion.
  3. (c) Defer — bundle with Strategy A migration when D1 is approved.
Recommendation: (c) Defer to Strategy A migration. If you approve D1 (full canonical migration) these orphans get cleaned up as part of that work anyway. Pre-clean now risks a 2-step migration where the 2nd step has to re-touch the same codes. If you're rejecting D1 or doing partial Strategy C, (a) becomes the right call.

All 6 codes have 0 lifetime redemptions, so disabling has zero customer impact. The only real question is sequencing relative to D1.

B7 · A4 cross-domain routing decision DECISION NEEDED

Source: F:/Agentic-OS/projects/briefs/wave-3-rollout-2026-05-10/a4-routing-investigation.md (investigation proposal — no Shopify Admin GET performed; deferred to keep agent context tight).

B7 · cross-domain handle cognitive-enhancers-smart-pills — UK URL, DE registry tag

Registry row: handle cognitive-enhancers-smart-pills · type collection · market DE · wave v4.0-campaign.
Live URL: https://www.brainzyme.com/collections/cognitive-enhancers-smart-pills (UK domain).

Hypotheses (priority order, from A4 investigation)

  1. Mis-tagged in registry. Page is genuinely UK content; registry row has the wrong market value. Fix = update registry only. Cheapest.
  2. Dual-deployed but registry only tracks DE. Same handle on both UK and DE stores; registry tracks one. Fix = add missing market row OR merge to multi-market entry.
  3. DE-targeted content sitting on UK domain (wrong-store deploy). Fix = move to DE store + retire UK version OR redirect UK→DE.
  4. Cross-domain routing intentional (DE traffic funneled to UK domain via paid ads with German creative). Fix = none; document the routing.

Decision matrix (depends on A4 GET findings)

FindingRecommended action
Same handle on both stores, same contentUpdate registry to market=multi; flag handle for dedup
Only on UK store, English content, DE product setMis-targeted: rebuild on DE store, retire UK version
Only on UK store, German contentWrong-store: PUT to DE store, retire UK
Only on DE store; registry row stale UK referenceUpdate registry row's URL to DE domain
Only on UK; English copy, neutral product setUpdate registry market=uk; close gap

Three routing options for Calum (without running the investigation script)

  1. (A) Run the investigation script first. Approve agent to GET both UK + DE Admin APIs, return JSON to a4-routing-data.json, then decide on data. Effort ~5 min agent run + Calum decision.
  2. (B) Apply Hypothesis 1 (cheapest). Update registry row to market=uk and move on. Risk: if it's actually wrong-store deploy (Hypothesis 3), we papered over it.
  3. (C) Defer to next wave. Leave registry as-is, add to backlog. Safe but the registry stays inconsistent in the meantime.
Recommendation: (A) run investigation script. 5-minute agent run resolves ambiguity at low cost. Hypothesis 1 is most likely (per A4 priority), but worth confirming before committing. Defer-to-dashboard log entry already filed in A4 doc as P1 routing_decision.

B8 · A3 US Dopamine hero assessment RESOLVED

B8 · RESOLVED — H1 acceptable, no rewrite proposed

Source: F:/brainzyme-themes/us/sections/bz-dopamine-guide.liquid:21-23 (read 2026-05-10).

A3 objective criteria

Rewrite ONLY if BOTH conditions hold: (1) H1 is benefit-coded with no pain hook, AND (2) no mechanism appears in the first 100 words.

Current US H1 + first 100 words (verbatim)

h1: 'Support Your Focus and Motivation — Naturally',
subtitle: 'Clinically studied plant-powered ingredients for dopamine pathway support. Trusted by 2,000+ medical professionals.*',
badge: '📚 Honest Science — No Hype, Just Evidence'

[then:] PRO is a 4-Layer Dopamine Support System
PRO delivers the full dopamine chain — direct precursor (L-Tyrosine), conversion cofactors
(B6, Folate, B12, Vitamin C), system modulators (Zinc, Magnesium, Piperine), and neuroprotection
(Ginkgo Biloba + EGCG)...

Assessment

CriterionStateVerdict
H1 benefit-coded?Yes — "Support Your Focus and Motivation"Met (1 of 2)
Mechanism absent in first 100 words?No — subtitle says "dopamine pathway support" (mechanism explicit); first 100 words name L-Tyrosine, B6, Folate, B12, Vitamin C, Zinc, Magnesium, Piperine, Ginkgo, EGCGNOT met (0 of 2)

FDA structure-function check

Status: RESOLVED — H1 acceptable, no rewrite proposed. US Dopamine H1 fails the rewrite trigger because mechanism IS present in the first 100 words (subtitle + opening 4-layer block). The H1 is benefit-coded but the page does not have the "benefit-only, mechanism-absent" pattern that would justify a B4-style pain-led rewrite. No deploy needed; close out.

If the user later wants a pain-led variant for A/B testing, that's a separate creative-strategy decision, not a compliance/clarity rewrite. Open as new item.