Commerce · Personal Shopper · Configurable
Grace turns intent into action.
She gathers purchase intent across every utility — the filter you need for Schneider, the medication refill for Doolittle, the winter tires KITT budgeted for — and returns best-price options, one click from buying.
What she does
- Gathers real purchase actions from every app on the shared data spine.
- Sources best-price options across retailers — with the constraints you set.
- Packaged as Grace for Merchants to guide your own buyers to yes, on your store.
- One click from action. Not a shopping cart. A curated buy assist.
Configurable to you
Preferred retailers, spending caps, delivery windows, brand preferences, and tone are all configurable per household or per merchant deployment.
Voice & accessibility — first principles
Grace uses the macOS & iOS system voice and honours the shopper's Accessibility settings — larger text, VoiceOver, Reduce Motion, and Personal Voice. Every recommendation is legible before it's spoken; every action confirmable before it's placed.
The plan — what we're trying to achieve
PurchaseRequest in → ranked Offers out. A meticulous personal shopping curator, per-tenant from day one, recommend-only from the invariant. Plan Grace · PRD v1.0 · 2026-08-24
Recommend-only
Grace never buys. The human always clicks. That invariant survives every feature.
Fixed merchant panel
Amazon · Home Depot · Walmart · Shopify UCP. The panel doesn't grow — how we query and present it does.
3-of-7 slotted offers
Seven slots (Exact · Amazon affiliate · UCP catalog · Shopify UCP · Preferred-category · HD · Walmart). Three shown by preference; "Show 2 more" reveals 4-5, then 6-7.
Four filter modes
fastest · cheapest_sku · cheapest_landed · best_fit. Every offer ranks under every filter, so the tradeoff is always explainable.
Match score, always shown
Every offer carries match_score + match_basis rendered in the UI. Grace never hides how confident she is.
Affiliate, transparently disclosed
Amazon URLs rewrite with the tenant's Associates tag at Offer construction; the UI discloses the tag. Per-tenant opt-out supported.
Schema.org meta-search
Every adapter emits Product + Offer + Brand + AggregateRating + Review. Tiered queries: GTIN → MPN+Brand → Brand+Model+Size → Name+Brand → Name.
Sheet-as-config
Per-tenant preferences live in a Google Sheet (Grace Config). You own the config; Grace reads it. First family-wide Sheet-as-config pattern.
Household purchase history
Grace reads your household's actual purchases from Schneider (contract schneider-purchases/1). She recommends against what you already own.