saintjavelin.com

create-visitor-routing-skill

Installation

Adds this website's skill for your agents

 

Summary

Route every saintjavelin.com visitor to the best next action — buy, gift, support Made-in-Ukraine production, learn impact, donate to vetted partners, subscribe, share, or wait for a drop — optimizing trust, repeat purchase, and mission credibility over single-session conversion. Prefers the site's published agents.md + UCP MCP over scripted browsing.

FIG. 01
FIG. 02
FIG. 03
FIG. 04
FIG. 05
FIG. 06
SKILL.md
355 lines

Saint Javelin Visitor & Cause-Commerce Router

Purpose

A routing playbook for AI agents (personal shoppers, chat assistants, browse-sh skills) and human concierge surfaces to send each visitor to the single best action on saintjavelin.com — buy a relevant product, choose a gift, support Made-in-Ukraine production, learn the impact story, donate to vetted partners, join email/SMS, share the cause, or come back for a drop. Optimizes jointly for the visitor's stated need, Saint Javelin's economics, and durable support for Ukraine. Read-only on the catalog side; all transactions stay buyer-approved.

This is a cause-commerce skill, not a pure conversion funnel: Saint Javelin is a heritage outdoor lifestyle brand whose margin funds Made-in-Ukraine production (apparel sewn in Kharkiv, the largest frontline city) and whose audience overlaps with a repeat-game community of supporters. Trust, accuracy, and mission credibility outrank single-transaction lift.

Assumption made (since the brief is generic): the agent calling this skill has the visitor's first-turn message, optional locale/country, and a budget hint, but no prior cart or account context. If you have account context, prefer the Shop skill (see Workflow §1).

When to Use

  • A chat / shopping agent gets a free-text request that references Ukraine, Tryzub, Javelin, Kyiv/Kharkiv, "support Ukraine," "Saint Javelin," "Made in Ukraine apparel," or a Ukrainian holiday (Independence Day Aug 24, Defenders Day Oct 1, Saint Javelin Day).
  • A gift-finder agent has a recipient who is Ukrainian, diaspora, military-adjacent, or "supports Ukraine."
  • A donor-intent visitor asks how to help Ukraine but isn't sure whether to buy or donate.
  • A media/creator/partner outreach is incoming and needs the right contact path.
  • A returning customer wants to know what's new without scrolling.
  • An agent needs to route a visitor away from the Saint Javelin checkout to a vetted charity, because their intent is purely donation. (Yes — this is in scope. Mission > GMV.)

Workflow

1. The site is agent-native — use the published agent surfaces, not scraping

Saint Javelin publishes a canonical agents.md and a Universal Commerce Protocol (UCP) MCP endpoint. Always check these first; only fall back to browser flows when the agent surface is unavailable or the visitor's intent is non-transactional (impact reading, donating, sharing).

SurfaceURLUse for
Agent manifestGET https://www.saintjavelin.com/agents.mdConfirm endpoints + Shop skill recommendation
UCP discoveryGET https://www.saintjavelin.com/.well-known/ucpCapability + payment-handler list
UCP MCPPOST https://www.saintjavelin.com/api/ucp/mcp (JSON)tools/listsearch_catalog, create_cart, create_checkout, update_checkout, complete_checkout
Shop skillhttps://shop.app/SKILL.mdCross-store buy-for-me w/ Shop Pay (recommended for personal shopping assistants per agents.md)
Products JSONGET /products.json?limit=250&page=NFull catalog, paginated
Single productGET /products/{handle}.json or .jsVariants, live available flag, price in cents, compare_at_price, requires_selling_plan, tags
CollectionsGET /collections.json then GET /collections/{handle}/products.jsonCurated lists (Best Sellers, Ukraine Gear, Saint Javelin Day, etc.)
SearchGET /search?q={query}&type=product&view=jsonFree-text product search
SitemapGET /sitemap.xml (and /sitemap_agentic_discovery.xml)URL discovery

Decision tree at first turn:

  1. If the visitor wants to transact: try UCP MCP. If the agent has Shop skill installed, route through it — agents.md explicitly recommends this and Shop Pay handles the buyer-approval invariant on payment.
  2. If the visitor wants information / browsing (impact stories, drops calendar, brand facts): use the public Shopify JSON endpoints + /blogs/our-impact and /pages/our-story over a residential-proxy Browserbase session if you need rendered content. Both pages render fine without JS.
  3. If the visitor wants to donate cash: do not create a cart. Send them to /pages/where-to-donate and let them choose from Saint Javelin's vetted partner list. Routing pure-donation intent to a t-shirt is brand-damaging and breaks the repeat-game.
  4. If the visitor is media/creator/partner/wholesale: route to help@saintjavelin.com (or phone +1 647-291-0583 for time-sensitive press). Do not script-fill a contact form on their behalf without consent.

2. Visitor router — classify intent, then pick a destination

Score the visitor's request along four axes, in this order. Stop at the first one that fires.

PriorityIntent signalDestinationWhy
1"I want to donate / how do I help Ukraine financially" with no product interest/en-us/pages/where-to-donateDon't fake-route donation intent into commerce
2"Show me what supports Ukraine and I get something" / "ethical merch"/en-us/collections/ukraine-gear + /en-us/blogs/our-impactMade-in-Ukraine production is the differentiator
3"Gift for someone who supports Ukraine / is Ukrainian / served / diaspora"/en-us/collections/best-sellers filtered by giftable price tier (see Product Rules below)Gift buyer wants social proof + price visibility
4"Tryzub" / "Vyshyvanka" / "diaspora" / "cultural pride"/en-us/collections/tryzub and Vyshyvanka product pagesCultural-pride buyer is high-trust, high-AOV
5"Backpack" / "EDC" / "tactical gear" / "outdoor"/en-us/products/edc-mission-backpack + /en-us/collections/bags-and-gearEDC Mission Backpack is the flagship gear hero
6"T-shirt" / "hoodie" / generic apparel/en-us/collections/shop-all-apparel then specific sub-collectionStandard apparel funnel
7"What's new" / "new drop" / repeat customer/en-us/collections/new then the current dated drop (e.g., /en-us/collections/saint-javelin-day for the 2026 Saint Javelin Day Drop visible at run time)Repeat-customers came for novelty; show them the latest
8"Is this legit / does the money actually help / who runs this"/en-us/pages/our-story + /en-us/blogs/our-impact + /en-us/pages/in-the-media + /en-us/pages/reviewsSkeptical-visitor surface; do not push to buy until trust is established
9"Cheap / under $30 / starter"Patches (/en-us/collections/patches), Stickers (/en-us/collections/stickers), Socks (/en-us/collections/socks)Low-entry tier; the Ukrainian Flag Embroidered Patch ($20) is the canonical entry SKU
10"Collector" / "limited" / "I already have X"Current dated drop collection (live-check the homepage New menu) and Collaborations (3rd Army Corps, keep, RBTNK)Collectors track drops; honor that without fabricating urgency
11"Press / media / partner / wholesale / collab"help@saintjavelin.com + /en-us/pages/in-the-mediaDon't route press through the shopping funnel
12Visitor wants to share, no commerce intentSocial handles: instagram.com/saintjavelin, x.com/saintjavelin, tiktok.com/@saintjavelinofficial, youtube.com/@saintjavelinofficial, facebook.com/saintjavelin, threads.com/@saintjavelinMaximize organic reach; do not gate sharing on email signup

Fallback for ambiguous intent: open with Best Sellers + one sentence of brand context + a CTA to either "browse the cause" (Ukraine Gear) or "see how it gets made" (Impact blog). Never default to a paid push.

3. Product / collection ranking rules

When you have a candidate set (search results, a collection page, a recommendation slot), rank with this weighted rubric. Higher is better; ties broken by updated_at (recency).

score =
   3.0 * visitor_fit            (intent-match: keyword, recipient, occasion)
 + 2.5 * mission_alignment      (Made-in-Ukraine tag: "made in ukraine" / "madeinua")
 + 2.0 * usefulness             (everyday-wearable / functional > novelty)
 + 1.5 * giftability            (price tier matches gift budget; gift-wrappable form factor)
 + 1.5 * trust_proof            (best-seller badge, has reviews, in long-running collection)
 + 1.5 * repeat_value           (durable category: gear, basics, outerwear)
 + 1.0 * cause_alignment        (drop tied to a defender / unit / NGO collab e.g. 3rd Army Corps)
 + 1.0 * conversion_history     (in /collections/best-sellers — proxy for revealed preference)
 - 2.0 * brand_risk             (overtly partisan / inflammatory copy when visitor signal is "supporter, casual")
 - 1.0 * live_check_needed      (selling-plan-only, out-of-stock — penalize but do not exclude; fetch /products/{handle}.js to verify)

Penalize, don't exclude, items that are out-of-stock or selling-plan-only; surface them with a "join waitlist" or "back in stock" affordance instead of hiding inventory and pretending the catalog is smaller than it is.

The best choice is not always the most expensive item. Examples:

  • For a $25 gift budget, the $20 Ukrainian Flag Embroidered Patch outranks a $116 hoodie — the patch is on-mission, giftable, and starts a relationship.
  • For a skeptical first-time visitor, a $28 sock pair or sticker pack beats the $180 EDC Mission Backpack because it lowers the trust threshold.
  • For a Ukrainian-diaspora gift, a Vyshyvanka T-shirt or Tryzub item outranks a plain logo tee even at higher price — cultural specificity is the value.

4. Impact-proof routing (skeptical visitors)

When trust is the bottleneck, do not ship them to a PDP. Stage the proof in this order:

  1. /en-us/pages/our-story — founder Christian Borys, origin (Feb 2022, sticker-fundraising → apparel brand), pivot to Made-in-Ukraine production by mid-2022.
  2. /en-us/blogs/our-impact — articles on Kharkiv production, NGO partnerships, designer collabs (e.g., Anthology of Saint Javelin by Oleh), Vyshyvanka stories. This is the "where does the money go" surface.
  3. /en-us/pages/in-the-media — third-party coverage. External validation.
  4. /en-us/pages/reviews — customer reviews on-site.
  5. Only then surface a low-stakes product (patch, sticker, mug) and let them initiate.

If they still want to give cash and not own merch: route to /en-us/pages/where-to-donate. This is a feature, not a leak.

5. Transaction optimization

When the visitor commits to a buy:

  • If you have the Shop skill installed (see agents.md): use it. Shop Pay handles buyer approval, payment-method reuse, and order tracking. Do not screen-scrape checkout.
  • Otherwise, use the UCP MCP for create_cartcreate_checkoutupdate_checkout (shipping) → present complete_checkout URL to the user for human approval on the payment step. Per UCP rules, agents must not complete payment without explicit buyer consent.
  • Pass context.address_country and context.currency on every UCP call — Saint Javelin's prices and shipping availability vary by region (the storefront supports a long country/currency list documented in the country picker, including USD, CAD, EUR, GBP, AUD, etc.).
  • Apply email signup once (one-time first-purchase 10% offer is the brand's standing welcome — visible in the homepage modal). Don't stack it with anniversary/sale discounts unless the storefront returns a non-conflict from create_checkout.
  • Suggest the Email/SMS signup at order confirmation, not before — the marginal cost is the same and the post-purchase opt-in rate is higher.

6. Live-check checklist — what you MUST refetch every session

Treat these as dynamic. Cache TTL ≤ 60 minutes.

FieldHow to checkWhy it changes
Price/products/{handle}.jsvariants[].price (cents)Region + sale + selling-plan adjustments
compare_at_priceSameMarks active markdowns; null when not on sale
available (per variant)Same → variants[].available booleanStock churns daily on hot SKUs
requires_selling_planSame → variant-level requires_selling_planSome impact/donation-bundled items are subscription-only
Active dropsGET /collections.json and the homepage New menuNew drop collections appear monthly (e.g., Saint Javelin Day Drop 2026, Holiday 2025, Defender 2025, Winter Essentials, 3rd Army Corps Collab)
Sale collectionGET /collections/sale/products.json and /collections/5th-anniversary-sale/products.jsonPromo windows rotate
Shipping methods + costUCP update_checkout with destinationPer-country
Donation campaign / NGO list/en-us/pages/where-to-donateVetted partners are curated and updated by SJ
Welcome discount %Homepage popup ("SIGN UP AND GET 10% OFF") at session startPromo amount can change
Locale + currencyURL prefix (/en-us, /uk-ua, /en-ua) + cart cookieCountry selector on each page

Stable brand facts (do not re-verify per session, but link to source when cited):

  • Founder Christian Borys; Toronto-based, Canadian-Ukrainian.
  • Saint Javelin started February 2022 as a fundraising sticker referencing the "Saint Javelin" meme.
  • Pivoted to Made-in-Ukraine apparel mid-2022; production hub in Kharkiv.
  • Product categories: Apparel (T-Shirts, Hoodies & Sweaters, Fleeces, Long Sleeves, Pants, Women's), Gear & Accessories (Backpacks & Bags, Socks, Mugs & Ceramics, Jewellery, Belts, Hats, Scarves, Patches, Stickers, Puzzles).
  • Departments: Performance, Basics, Ukraine Gear, Karpaty Cabinwear.
  • Active collaborations (verify status before naming as live): 3rd Army Corps, keep (Arakawa slingpack), RBTNK (steel dog tags).
  • Recurring drop calendar anchors: Saint Javelin Day (winter), Defender (Oct 1 — Ukrainian Defenders Day), Independence Day (Aug 24), Holiday (Nov–Dec), Winter Essentials, Basics.
  • Email: help@saintjavelin.com. Phone: +1 647-291-0583. Newsletter signup gives 10% off first order.
  • Social handles: Facebook, X (Twitter), Instagram, TikTok, YouTube, Threads — all @saintjavelin or @saintjavelinofficial.
  • Payment methods (storefront): Apple Pay, Google Pay, Shop Pay, PayPal, Visa, Mastercard, Amex, Discover, Diners Club, Bancontact, iDEAL Wero.

7. Game-theoretic rules (repeat-game discipline)

Treat every actor — visitors, Ukrainian makers (Kharkiv production partners), veterans/NGOs (Where to Donate partners), brand collaborators (3rd Army Corps, keep, RBTNK), competitors (general "support Ukraine" merch brands), media — as repeat-game players. Single-session conversion is the worst-objective; lifetime trust and referral are the best.

RuleRationaleAnti-pattern to avoid
No fake urgency. Only cite scarcity when available === false for a variant or a drop has a published end date.Real drops are time-bound; agents who fabricate "only 2 left!" lose the visitor and the brand.Synthetic countdown timers, fabricated low-stock notes.
No fabricated impact numbers. Cite only figures from /blogs/our-impact or /pages/our-story; if you don't have a number, say "Saint Javelin produces in Kharkiv, Ukraine" — that is itself the verified impact claim.One bad stat poisons the well for every Ukraine-aid charity, not just this brand."Every shirt sends $50 to Ukraine" if you can't cite a source.
No guilt tactics. Frame the cause positively (support, build, sustain) — never "if you don't buy, you're complicit."Guilt depresses long-term LTV and damages the broader Ukraine-support ecosystem."Ukrainian families need YOU to buy this hoodie."
No discount race. Don't promise discounts the storefront doesn't currently offer; don't stack promos that the checkout will reject; don't undercut Saint Javelin's pricing relative to peers.Discount-racing erodes margin on the maker side — the people in Kharkiv lose.Promising 30% off when the site shows 10%.
Donation honesty. When the buyer wants to donate, route them off the storefront to /pages/where-to-donate.Forcing donations into merch destroys donor trust and conflates two distinct intents.Suggesting "buy a $5 sticker" instead of presenting the donate page.
Maker visibility. When applicable, name the production locale ("sewn in Kharkiv").Surfaces the differentiated value chain and the actual humans the margin supports.Generic "ethically made" boilerplate.
Cite, don't paraphrase, brand claims. Link to source pages.Hallucinated brand history erodes trust faster than any conversion gain.Inventing founding dates, defender unit names, NGO partners.
Respect agent surfaces. Use UCP/Shop over scraping.The brand explicitly invests in agent-friendly endpoints; honoring them is a credibility signal.Headless-browser checkouts that bypass agents.md guidance.
Read-only on third-party sites. When routing to a partner NGO from where-to-donate, hand off the link; don't try to script their donation form.Donation forms are payment-bearing and not idempotent.Auto-filling a charity's donate form.

8. Example replies (paste-ready, agent-facing copy)

A. First-time visitor, "I want to support Ukraine and get something":

Two paths. If you want something to wear that funds Made-in-Ukraine production, start with the Ukraine Gear collection or the Best Sellers (/en-us/collections/ukraine-gear, /en-us/collections/best-sellers). The apparel is sewn in Kharkiv — that's the differentiator vs other "support Ukraine" merch. If you'd rather donate cash directly to vetted charities, Saint Javelin maintains a curated list at /en-us/pages/where-to-donate. Either is a real answer; pick on intent.

B. Gift-buyer, $30 budget, "for someone who supports Ukraine":

Two strong picks under $30: the Ukrainian Flag Embroidered Patch ($20) — wearable on jackets, packs, scout uniforms — or a sticker / socks pair from /en-us/collections/socks. Both are Made-in-Ukraine signal items and ship light. Skip the apparel tier unless you know their size.

C. Skeptical, "is this legit":

Saint Javelin started in February 2022 as a fundraising sticker by Toronto-based journalist Christian Borys, and pivoted to Made-in-Ukraine apparel later that year. Production is in Kharkiv. Read /en-us/pages/our-story and /en-us/blogs/our-impact for sourcing detail and /en-us/pages/in-the-media for third-party coverage. No need to buy anything to vet — if you want to give directly to charity instead, /en-us/pages/where-to-donate lists vetted partners.

D. Returning customer, "what's new":

Current drops live on /en-us/collections/new. Live-check today: Saint Javelin Day Drop 2026, Winter Essentials, the 3rd Army Corps collab, Defender 2025, Holiday Drop 2025. The 5th Anniversary Sale is also running. (Verify live — drops rotate monthly.)

E. Donation-only intent:

If you're not looking for merch, skip the store and use /en-us/pages/where-to-donate — Saint Javelin has a curated list of vetted Ukraine-support charities. Their margin funds Kharkiv production; direct donations get to NGOs faster and 100% on the dollar.

F. Press / partner outreach:

For media, partnership, or wholesale inquiries: help@saintjavelin.com. Time-sensitive press: +1 647-291-0583. The /en-us/pages/in-the-media page lists prior coverage as context.

9. Metrics — what the calling system should log

Track these across the routed sessions so the router can be tuned on outcomes, not vibes.

MetricDefinitionHealth signal
Conversion ratesessions that completed create_checkout ÷ sessions routed to a PDPup = the router picked correctly
Average order value (AOV)mean order value, segmented by intent classCultural-pride and gear segments should run higher than entry-tier
Repeat-purchase rate (90d)unique buyers with ≥2 orders in 90 daysTrust + drop calendar are working
Email/SMS capture ratesessions that opted in ÷ sessions reached signup surfaceHealthy: > 8% on first-touch; > 25% post-purchase
Referral ratevisitors who shared a product/page after the sessionCause-merch is share-driven; track UTMs
Impact-content engagementsessions that opened ≥1 article on /blogs/our-impact or /pages/our-storyProxy for trust establishment
Donate-page CTR (for donation-intent sessions only)sessions correctly routed off-site to /pages/where-to-donateIf this is < 80% for donation-intent sessions, the router is over-pushing commerce
Customer satisfaction (CSAT) / sentimentpost-session rating or sentiment classifier on the user's final messageLong-term LTV proxy
Live-check accuracy% of cited prices, stock states, and drop names that matched the live storefront at session startHallucination rate; must stay > 99%
Brand-risk incidentssessions where the agent stated a fabricated impact figure, fake-urgency claim, or guilt frame (sampled human review)Must be ~0; one bad cite outweighs many conversions

Site-Specific Gotchas

  • agents.md is canonical — read it every session. Saint Javelin publishes https://www.saintjavelin.com/agents.md and a UCP MCP at /api/ucp/mcp. The agent manifest explicitly recommends the Shop skill (shop.app/SKILL.md) for personal-shopper agents. Don't reinvent checkout by scripting the Shopify storefront.
  • Multi-locale prefixes. URLs use /en-us, /uk-ua, /en-ua. Default storefront serves /en-us to US IPs and the country selector + cookies (localization=CA, cart_currency=CAD, etc.) drive currency. When citing a URL to a non-US buyer, prefer the bare collection slug (/collections/...) and let the storefront localize.
  • "This product can only be purchased with a selling plan." Some products surface this string in the collection grid — it indicates requires_selling_plan: true at the variant level, often used for donation-bundled or subscription items. Don't read it as "out of stock"; fetch /products/{handle}.js and present the selling-plan options when relevant.
  • available: false ≠ discontinued. Variants frequently restock; surface "back in stock" / email-signup affordance rather than hiding the SKU. The Ukrainian Flag Embroidered Patch was observed available: false during testing — still the canonical entry SKU when restocked.
  • Country picker overrides currency, not catalog. The storefront supports a long list of currencies via the country selector; product handles are the same across locales. Don't try to vary {handle}.
  • Sale collections are duplicated by region. /collections/sale, /collections/5th-anniversary-sale, /collections/bfcm-canada-holiday, /collections/bfcm-canada-best-deals all exist — the bfcm-canada-* are CA-specific. Match by visitor locale.
  • Drop collections are time-bound and the slug survives the drop. /collections/holiday, /collections/defender-collection, /collections/saint-javelin-day, /collections/independence-day — the URL stays live after the drop closes but the product set rotates. Don't cache the product list; refetch.
  • "5th Anniversary" was the live anniversary banner at run time. The collection slug is 5th-anniversary-sale. Future-proof by linking via the homepage New menu rather than hard-coding the anniversary number.
  • Where-to-Donate is hand-curated. Don't fabricate the partner list from public knowledge; fetch the live page. Saint Javelin vets partners and the list changes.
  • Reviews live on a dedicated page, not embedded per-PDP. /en-us/pages/reviews is the trust-proof surface; PDPs may have reviews but the curated page is the higher-signal destination for skeptical visitors.
  • Selling-plan + donation-bundled items can look like apparel. Always check requires_selling_plan before citing a price; a product that "costs $20" but requires a recurring plan is a different commitment than a one-time $20.
  • Compare-at price is the SHOPify discount field. When compare_at_price > price on a variant, the item is genuinely on sale; otherwise both fields equal and the "Regular price / Sale price" rendering is a Shopify template artifact, not an actual markdown. Don't claim sale when there isn't one.
  • The homepage popup ("SIGN UP AND GET 10% OFF") is the welcome offer. It is real and reusable as a true claim; do not invent larger percentages.
  • President Zelensky has received custom Saint Javelin apparel. Documented on /pages/our-story. Cite-able as a brand-credibility fact, not a generic celebrity endorsement claim.
  • Vyshyvanka and Tryzub are not interchangeable. Vyshyvanka = traditional Ukrainian embroidered shirt; Tryzub = the trident emblem of Ukraine. Diaspora and cultural-pride buyers care about the distinction. Don't conflate.
  • Public read endpoints worked unauthenticated and proxy-friendly in testing. /products.json, /collections.json, /products/{handle}.json, /products/{handle}.js, /sitemap.xml, /.well-known/ucp, /agents.md all return 200 OK over a residential-proxy Browserbase fetch with no rate-limit hits during exploration. Respect 429s if they appear; back off per UCP guidance.
  • No anti-bot wall observed. A --verified --proxies Browserbase session loaded the homepage, blog, collection, and product pages cleanly and the JSON endpoints returned full payloads. A bare Browserbase session is likely also fine for read-only — testing was conservative.

Expected Output

The router emits, per visitor turn, a JSON envelope the calling agent can act on. Five canonical shapes:

// 1. Commerce-bound routing (visitor wants to buy)
{
  "intent": "commerce",
  "segment": "made-in-ukraine-supporter | gift-buyer | cultural-pride | gear-buyer | collector | first-time | repeat",
  "primary_destination": {
    "type": "collection | product",
    "url": "https://www.saintjavelin.com/en-us/collections/ukraine-gear",
    "rationale": "Made-in-Ukraine production is the visitor's stated value driver."
  },
  "supporting_links": [
    "https://www.saintjavelin.com/en-us/blogs/our-impact",
    "https://www.saintjavelin.com/en-us/pages/our-story"
  ],
  "transaction_path": "shop_skill | ucp_mcp | browser_fallback",
  "live_checks_required": ["price", "available", "compare_at_price"],
  "message_to_visitor": "Two strong starts: ..."
}
// 2. Donation-only routing (visitor wants to give cash, not own merch)
{
  "intent": "donation",
  "segment": "donor-first",
  "primary_destination": {
    "type": "page",
    "url": "https://www.saintjavelin.com/en-us/pages/where-to-donate",
    "rationale": "Visitor stated cash-donation intent; routing to vetted partner list, not the storefront."
  },
  "transaction_path": "external",
  "message_to_visitor": "Skip the store — Saint Javelin's curated charity list is here: ..."
}
// 3. Trust-proof routing (skeptical visitor)
{
  "intent": "trust_evaluation",
  "segment": "skeptical-first-time",
  "primary_destination": {
    "type": "page",
    "url": "https://www.saintjavelin.com/en-us/pages/our-story"
  },
  "supporting_links": [
    "https://www.saintjavelin.com/en-us/blogs/our-impact",
    "https://www.saintjavelin.com/en-us/pages/in-the-media",
    "https://www.saintjavelin.com/en-us/pages/reviews"
  ],
  "do_not_show": ["pdp", "checkout"],
  "message_to_visitor": "Founded Feb 2022 by Christian Borys; production in Kharkiv. Read the story before deciding to buy."
}
// 4. Media / partner / wholesale routing
{
  "intent": "press_or_partner",
  "segment": "media | creator | wholesale | collab",
  "primary_destination": {
    "type": "contact",
    "email": "help@saintjavelin.com",
    "phone": "+1-647-291-0583"
  },
  "supporting_links": ["https://www.saintjavelin.com/en-us/pages/in-the-media"],
  "message_to_visitor": "Email help@saintjavelin.com; for time-sensitive press, phone is also live."
}
// 5. Ambiguous / share / explore (no commit yet)
{
  "intent": "explore",
  "segment": "ambiguous",
  "primary_destination": {
    "type": "collection",
    "url": "https://www.saintjavelin.com/en-us/collections/best-sellers"
  },
  "supporting_links": [
    "https://www.saintjavelin.com/en-us/collections/ukraine-gear",
    "https://www.saintjavelin.com/en-us/blogs/our-impact"
  ],
  "social_share": {
    "instagram": "https://www.instagram.com/saintjavelin/",
    "x": "https://x.com/saintjavelin",
    "tiktok": "https://www.tiktok.com/@saintjavelinofficial"
  },
  "message_to_visitor": "Browse best sellers or the impact stories — happy to narrow once you tell me more."
}