Audrey Path Engine — Architecture Thinking

Status: Working doc — canonical architecture reference for the audrey workstream Date: 2026-05-13 Domain: audreyinc.com (Shopify scarf shop) Reader of derived dashboards: Dan (private) Horizon: Daily A/B testing through 31 Dec 2026


1. Context


2. Mental model shift

audreyinc.com is not a static site. It is a parameterised path engine with Shopify as the checkout backend. Every visitor arrives via a distinct intent signal (ad source, agent recommendation, organic search, referral) and should land in a journey tuned to that intent. The site has surface area; the engine has logic.

This shift unlocks three things in parallel: - A/B testing as an everyday operation, not an occasional campaign. - Agentic discoverability (LLMs as a real traffic source). - Attribution down to “which path converted which segment.”


3. The Path Engine — four layers

3.1 Variant Library (pre-generated)

3.2 Routing Worker

3.3 Attribution Layer

3.4 Selector Intelligence (later)


4. Top-of-funnel: 5 canonical use cases

These are stable, indexable, agent-citable URLs designed as the destination an LLM or search engine sends a buyer to. Each use case sits above the variant routing — i.e., a use case is the canonical URL, and variant routing happens within it based on traffic source.

Structure: - Stable URL (never expires): audreyinc.com/<category>/<intent> - Canonical schema.org markup describing recipient profile, occasion, price range. - Dual-audience copy: human-readable AND answers the implicit agent retrieval query. - 3–5 active variants per use case, refreshed weekly.

The 5 use cases themselves are the next decision to lock. They are load-bearing — URL taxonomy, schema, prompt design, and variant scope all flow from them. Proposed working session: 20-min divergence (12–15 candidates) → collapse to 5 covering real conversion potential.


5. Agentic discoverability

audreyinc.com should be findable and citable by LLM agents (Claude, Perplexity, ChatGPT, future native shopping agents).

Implementation surface:


6. Daily dashboard companion

The dashboard at dashboard.audreyinc.com is the operational heartbeat of the engine.

6.1 Voice

6.2 Brief shape (5-part)

  1. Vital signs — revenue, sessions, conversion rate, AOV vs 7d/28d baseline.
  2. What shifted — one or two real anomalies in the shopping path.
  3. The opportunity — narrative thread, typically a leak or underexploited segment.
  4. Yesterday’s test verdict — ship / kill / extend.
  5. Today’s test — one concrete A/B hypothesis launchable in Shopify before next brief.

The last line is the lock. 06:00 prescribes; 18:00 reports early read; loop closes daily.

6.3 Cadence


7. Sequencing decision — what to build first

Three candidate first steps were considered: (a) brief template against real Shopify+CDN, security layer, and DNS provider sitting in front of dare.co.uk.">CF fields, (b) voice/system prompt, (c) experiment ledger schema.

Decision: Draft (a) and (b) as a single pass, not strict sequence.

Practical first task: 45-min spike to draft brief template against actual Shopify Admin GraphQL field names + voice prompt v0, side by side. Lands as a single tracked artefact in this repo. Unblocks the build. (Done — see audrey_dashboard_brief_template_2026-05-13.)


8. Cost reality


9. Attribution flow (closing the loop)

Visitor arrives (LLM agent / ad / referral / organic)
   ↓
Worker reads signal → selects variant slug
   ↓
Variant served → cookie set (served_variant_id, discovery_channel)
   ↓
Visitor browses → checkout (Shopify)
   ↓
Shopify webhook → enrichment service joins purchase to variant
   ↓
Event stream: (variant_id, segment, converted, AOV)
   ↓
Daily brief surfaces winners / losers / open tests

Within 60 days: empirical data on which discovery channels drive buyers vs browsers, surfaced in the morning brief.


10. Adjacent pattern (reusable plumbing)

Three instances now exist of the same engine shape:

Instance Status Voice Data sources
dashboard.dare.co.uk Live Dry-witty observer Cloudflare Analytics
dashboard.audreyinc.com In build (placeholder live) Growth partner Shopify Admin GraphQL + CDN, security layer, and DNS provider sitting in front of dare.co.uk.">CF Analytics
Portfolio health snapshot Queued TBD TBD

The spine: scheduled trigger → typed data fetcher(s) → brief builder → LLM variant generator → selector → renderer → deploy.

With instance #3 incoming, the cost of not extracting the spine into a template engine (drift between voices, divergent error handling, three places to update on model changes) starts to exceed the cost of extracting it. Recommend extraction work happens before portfolio health begins, not after.


11. Open questions / next decisions

  1. Lock the 5 use cases. Load-bearing. Nothing else proceeds cleanly without them.
  2. Draft brief template + voice prompt v0 as single tracked artefact (the 45-min spike). (Done — audrey_dashboard_brief_template_2026-05-13)
  3. Decide: Worker in front of full Shopify domain vs. dedicated landing subdomain vs. dedicated path prefix? Affects Shopify integration depth.
  4. MCP server timing: build now (learn the surface) or defer until agent commerce signals are clearer?
  5. Variant generation prompts: one master prompt + per-use-case modifiers, or fully separate prompts per use case?
  6. When to extract the shared engine spine into a template repo — before or after portfolio health begins?

12. Reference IDs and locations

Source: audrey_path_engine_architecture_2026-05-13.md · Rendered 2026-05-13 14:48