What is missing, overlooked, or undecided. Items are grouped by how they block work.
22 gaps identifiedGroup A blocks buildsReviewed July 23, 2026
Group A: Open decisions that block builds
Resolve before dependent feature ships
GAP-001
Pre-order charge model
Charge at ship vs charge now changes plugin choice, Stripe flow, refund policy language, and the legal terms on the page. Client decision required. Blocks WS-1 final build (not the mockup review).
GAP-002
Pre-order terms
No cancellation/refund language exists for pre-orders. The Return Policy page was written for standard orders. Needs a short pre-order terms block, client approved. Blocks WS-1 launch.
GAP-003
One equine page or two
Tess is revising an equine page markup with client comments while WS-1 specs a pre-order page. Decide whether these are the same page (pre-order module embedded in the equine product page) or a campaign page that later 301s into the permanent product page. Recommendation: one page that converts from pre-order state to in-stock state on the availability date, avoiding a redirect and preserving ad history.
GAP-004
Dosing calibration
The Figma design arrived and resolved the dosing model: shake ranges per weight band, one universal table for cats, dogs, small animals, birds, and reptiles. What remains blocked is the container-duration and subscription-cadence math, which needs a shakes-per-container calibration (grams per shake) from the client or the Maine facility. The mockup uses a flagged placeholder. Also verify the Figma table matches the printed labels exactly, and confirm the design's approval provenance with the client. Resolved (July 23): brand sheets confirm teal is the sitewide primary; all mockups retokenized. Remaining color question: whether the equine label blue equals brand dark #003E44 (check Tess's label file).
GAP-005
Plugin selections
Pre-orders, affiliates (AffiliateWP vs SliceWP), reviews (Judge.me vs Reviews for WooCommerce), store locator. Each needs a license decision and admin owner. Blocks WS-1, WS-4, WS-5, WS-6 builds.
GAP-006
Discount code economics
BLOOM10 and the store-suggestion thank-you code are placeholders. Value, single-use enforcement, stacking rules with the 5% subscription discount, and abuse controls (rate limiting code issuance per email) need definition. Blocks WS-8 and locator suggest-a-store reward.
Group B: Overlooked in the original 8 workstreams
Needs to be owned before production
GAP-007
Navigation placement
No decision on where the calculator, quiz, locator, and affiliate pages live in the site nav. Recommendation: "Learn" becomes a hub housing calculator, quiz, comparison page, and game; locator joins the footer and the Shop dropdown; affiliates in footer.
GAP-008
Mobile navigation in mockups
The mockup nav simply hides below 900px; no hamburger menu was mocked. Production uses the live theme's mobile nav, but flag it so nobody copies the mockup header as-is.
GAP-009
Email flows behind the tags
The tracking plan defines capture tags (equine-waitlist, calculator-lead, quiz-{sku}, game-lead, wholesale-inquiry, store-suggestion) but the flows those tags trigger are unwritten. This is Brandon's email workstream; the tags are the contract between web and email. At minimum the equine-waitlist flow must exist before WS-1 launch or captured leads go cold.
GAP-010
Equine photography shot list
Client photography is the stated blocker on the equine page. Nobody has told the client exactly what shots are needed. A one-page shot list (hero transparent bottle, in-use at feed, scale reference, label close-up) removes the excuse loop. Cheap to produce, high unblock value.
GAP-011
Claims registry
The approvals crisis happened because approved language lived in scattered emails. This package repeatedly says "approved claims only" but no single registry exists. brand-inputs/README defines the registry schema; the client-provided brand info should populate it. Once it exists, every page, email, and game fact toast cites a claim ID. This is the single highest-leverage process fix in the package.
GAP-012
Legacy /pages/ audit is incomplete
Two legacy Shopify-era pages were found (Founders Story, Further Reading) plus the Storeify locator remnant. A full crawl of /pages/* and any other Shopify-era paths has not been done. REDIRECT-MAP.csv marks these as audit-pending.
GAP-013
SEO metadata for new pages
Titles, meta descriptions, and schema (FAQ schema on calculator/quiz, Product + Review schema on PDPs, LocalBusiness schema unnecessary but store data feeds locator) are unspecified. Comparison page especially needs deliberate metadata since it targets non-brand search.
GAP-014
Sitemap and internal linking
New pages need XML sitemap inclusion and deliberate internal links (blog posts about omega-3 should link to quiz and calculator; product pages link to calculator).
GAP-015
Locator data ownership
Who adds stores as retail accounts open? Assign to whoever manages wholesale relationships; the locator is only as credible as its freshness. Verify the LB Healthy Pet Markets relationship is current before featuring it.
GAP-016
Accessibility pass
Mockups carry basics (focus states, labels, aria, reduced-motion). Production needs a real audit: canvas game needs a keyboard-alternative note and the score readable by screen readers; color contrast of the placeholder green on white must be re-checked against final extracted tokens.
GAP-017
Privacy policy touch
New forms introduce marketing tagging and a game issuing codes by email. Confirm the privacy policy's marketing section covers this; likely a one-line addition.
GAP-018
Analytics wiring beyond capture
GTM events are mapped in TRACKING-PLAN.md, but purchase conversion verification after any URL migration, and a pre-order conversion label distinct from standard purchases in Google Ads, need explicit QA steps.
Group C: Risks to keep visible
Monitor, do not ignore
GAP-019
Credential transition
Site, WooCommerce, and Stripe access are still consolidating from the prior operator. Every build in this package assumes admin access. Backup access path exists but should be verified before Week 1.
GAP-020
Client approval bandwidth
Eight workstreams generate a lot of approval requests for a client who rejects rather than edits. Mitigation: batch approvals into one weekly review using the demo suite portal, and route everything through the claims registry so approvals are of claims once, not copy every time.
GAP-021
Naming migration timing
The Krumble/Cell-abrate retirement touches product URLs, the wholesale LP, legacy pages, Amazon (currently paused pending redesigns), and ad final URLs. It must ship as one coordinated release. The package treats it as cross-cutting; it deserves its own release checklist when scheduled.
GAP-022
Scope vs the 3-week clock
Only WS-1 has a deadline. Everything else is elective sequencing. If resourcing tightens, the cut line is: WS-1, then WS-2/WS-3 (conversion tools), then WS-6 (channel), then WS-4/WS-5 (community), then WS-7/WS-8 (campaign).
What is deliberately out of scope
Out of scope
Email flow copywriting (Brandon's workstream; contract is the tag taxonomy)
Amazon store updates (client-sequenced after companion redesigns)
Organic social content (covered by the existing pillars program)
Any change to checkout, shipping, or subscription pricing