tibetan-spirit-ops

Tibetan Spirit is a Shopify D2C store selling Himalayan artisan goods — incense, singing bowls, malas, prayer flags, thangkas, statues, ritual supplies. 559 products, 19,400+ orders. I acquired it from Dr. Hun Lye, who sources from artisans in the Drikung Kagyu Buddhist tradition. It’s a business, but it’s also a service to the dharma community. The AI system running behind it reflects both of those obligations.

Claude Code · Supabase · Shopify · Slack

The team

Five people across four countries. I’m in Denver. Jothi runs operations from Jakarta. Dr. Hun Lye is the spiritual director, email-only. Fiona manages the warehouse in Asheville. Omar handles fulfillment for Espíritu Tibetano in Mexico. A CS lead hire is planned for Asheville.

That’s Bahasa Indonesian, Mandarin, Spanish, and English across the team. The agents handle communication in the right language and channel for each person. This isn’t a nice-to-have — it’s how a five-person distributed team actually operates.

Six agents

Each agent is an Opus-class Claude model with its own role, rules, and cost budget. They don’t share a monolithic prompt — each one knows its job and nothing else.

Fulfillment Manager ($2/run) tracks orders, coordinates shipping, and works with Jothi on supplier logistics. Inventory Analyst ($2/run) monitors stock levels, flags restock needs, and runs demand forecasting. CS Drafter($2/run) handles the email pipeline: triage, enrichment, draft. It never sends anything — every draft goes to human review. Marketing Strategist ($2/run) produces campaign briefs, content calendars, and targeting recommendations. Catalog Curator($5/run) rewrites product descriptions through an evaluator-optimizer loop — the higher budget reflects the iteration cycles. Finance Analyst($0.50/run) generates the weekly P&L, tracks COGS, and flags margin issues.

Separately, the ts-email-triage agent runs every thirty minutes via launchd, triaging incoming customer email to shop@tibetanspirit.com. It classifies, drafts replies, runs an Opus review pass, and posts to Slack with low-confidence flagging and a kill switch.

Human-in-the-loop governance

Every consequential action passes through human approval. The specifics depend on the action type:

  • Daily order summary— auto-logged, informational only
  • Weekly P&L— auto-logged, read-only
  • Inventory restock— review required (purchase decision)
  • CS email draft— decision needed (customer-facing)
  • Campaign brief— review required (brand + budget)
  • Product description— review required (cultural sensitivity)

The CS Drafter never sends emails. It drafts them. A human reads the draft, decides, and sends. This is a CCPA ADMT compliance requirement — automated customer-facing decisions need human review and customers need the right to opt out of automated decision-making. We designed the system this way from the start, not as an afterthought.

Six-agent architecture with human-in-the-loop approval chain for Tibetan Spirit operations
Six agents, one approval chain — every customer-facing action goes through human review.

The cultural constraint

These are sacred goods. A singing bowl isn’t a wellness accessory — it’s a ritual instrument. A thangka isn’t wall art. Prayer flags aren’t decorations. Getting the product descriptions wrong isn’t just a branding problem, it’s disrespectful to the tradition the business exists to serve.

That’s why the Catalog Curatorhas the highest per-run budget and why its output always goes through review. The rules governing brand voice and cultural sensitivity are some of the most detailed in the system — ten rules total covering everything from how we describe Buddhist lineage to what marketing language is off-limits.

What’s underneath

Nine skills power the agents: cs-triage, cs-workflow, shopify-query, order-inquiry, fulfillment-flag, margin-reporting, campaign-brief, restock-calc, and description-optimizer. Each skill is a SKILL.md file — a prompt that both a person and Claude can read.

Ten rules govern behavior: brand voice, cultural sensitivity, financial judgment, marketing discipline, CS judgment, and others. Four hooks handle CCPA gating, activity logging, session context, and Slack notifications.

Data lives in Supabase PostgreSQL — product catalog, orders, customers, inventory levels, and COGS tables. The Shopify GraphQL Admin API is the source of truth for store data; Supabase is the operational layer the agents query against.

What’s working, what’s next

The email triage agent is deployed and running every thirty minutes. It handles the highest-volume operational task — incoming customer email — and has been stable.

The six specialized agents have definitions, skills, and rules written. The infrastructure is built. But the full orchestrated workflow — all six agents running in coordination with the approval chain — hasn’t been battle-tested in production at scale. I’m not going to claim metrics I don’t have. This is real infrastructure, actively in development, with the first piece deployed and running.

Next: onboarding the CS lead in Asheville, running the full agent suite in production, and seeing what breaks. The system is designed to be honest about its own confidence — low-confidence classifications get flagged, not auto-resolved. That same honesty applies here. It works. It’s early.