2026-05-02 — Carrie interview: customer DMs and support load

Summary

Interviewing carrie about how customer support actually flows today. She’s catching inbound DMs on Discord ad-hoc, applying policies from memory, and looping Panat or DMs in case-by-case. This is exactly the kind of work the Symphony-shape pattern should absorb. Capture before we lose the detail.

The case

D&D attendee bought a ticket, messaged Carrie last-minute saying he can’t attend. Asked for a refund.

  • Carrie’s response: quoted the policy — 48-hour non-refundable transfer policy. Past 48 hours, no refund; before 48 hours, the ticket can transfer.
  • Customer pushed: asked for an exception.
  • Carrie escalated: said she’d ask the DM.
  • DM’s call: no exception. DM wants to get paid.
  • Resolution: policy held.

Policy captured (worth pinning)

Event ticket policy — 48-hour non-refundable transfer:

  • More than 48 hours before event: ticket is transferable (not refundable).
  • Less than 48 hours before event: no refund, no transfer. The seat is committed.
  • Exception path: ask the DM. Default is no, because the DM has been booked and expects to be paid.
  • Underlying principle: DMs are independent contractors; their pay isn’t contingent on attendee follow-through.

This policy lives nowhere durable today. It’s in Carrie’s head and gets re-derived per case. Should be:

  • A reference doc in references (e.g. references/event-ticket-policy.md) that staff and agents can quote.
  • Linked from the Hi.Events / event listing UX so customers see it before purchase.
  • Referenced by marty (Discord bot) when answering refund questions.

The workflow gap

Carrie is the inbound DM endpoint by default. Anyone messaging Dungeon’s Discord routes to her. She handles it manually, copy-paste-style. This doesn’t scale and isn’t tracked anywhere.

The fix has two layers:

  1. Deflect the inbound to the right surface. Auto-reply or canned response template:

    “Hi! For store help, please email [address] or DM marty (our Discord bot) and he’ll route your question. Carrie checks DMs but isn’t always at the shop.”

    This routes work-units to the right surface instead of all landing on Carrie. Email goes to a queue. Marty handles the bot-tractable cases (policy questions, hours, event status).

  2. Make the policy machine-readable. Marty needs the 48-hour policy in his context. Today he doesn’t have it. Easy fix: write the policy doc, ingest into Marty’s prompt or knowledge base.

Why this matters for the platform thesis

This is exactly the operations-category work that agent-coordinated-operations argues should run through the Symphony-shape loop. Today: Carrie DMs → Carrie’s memory → manual policy quote → manual escalation → manual reply. Symphony-shape: customer DM → Marty triage → policy auto-quoted from durable doc → exception path opens an issue → human reviews exception in tracker → response sent.

This is also the second policy-encoding gap in two interviews (after the buffs/promotions question). Pattern: Carrie is carrying institutional knowledge that should be durable. Capturing it is the unblock for letting agents handle the front line.

Action items

  • Write references/event-ticket-policy.md with the 48-hour transfer policy, exception path, and underlying principle (DM pay).
  • Add canned auto-reply template for Carrie’s Discord DMs (“email here / DM Marty”). Decide whether it’s manual copy-paste or a Discord bot auto-response.
  • Stand up the support email address if it doesn’t exist. Confirm Carrie’s preferred address with her.
  • Get the policy into Marty’s context so he can answer refund questions without escalating.
  • Add a Marty intent: “refund / cancellation question” → quote policy, offer exception path.
  • Audit: what other policies live in Carrie’s head only? Continue the interview.

Open questions for the rest of the interview

  • What other categories of inbound does Carrie handle? (membership questions, book recommendations, event signups, returns, special orders, …)
  • How often does she escalate to Panat or DMs?
  • What’s the volume — DMs per week?
  • Which categories does she enjoy handling vs. which are pure overhead?
  • What would she want a bot/agent to handle vs. keep human?

Continued: Marty framework decision

Sidebar from the Carrie thread — Panat asked whether to expand Marty or rebuild on a modern agent framework now that the landscape has matured. Researched SOTA (Claude Agent SDK, LangGraph 2.0, Pydantic AI, Mastra, OpenAI Agents SDK, CrewAI, Letta).

Decision: expand, don’t rebuild. No framework justifies the rewrite cost for a single-persona Discord bot with ~10 tools. Move to Claude Agent SDK as the agent loop, add Langfuse observability, extract personas to YAML, defer dedicated memory.

Full plan in marty-roadmap. Three-week sequencing, every step shippable independently.

Key product decision that fell out of the framework question: two personas, one service. Marty stays the wizard book bot. A second persona (shopkeeper, name TBD) handles refunds, hours, events, member questions. Same infra, same Discord bot, intent-routed. Preserves Marty’s character while letting ops have its own register.

Continued: hot items / RSS as agent research entry point

Carrie raised inventory tracking — keeping track of hot items we should have ordered.

Confirmed: marty/src/discord_bot/feeds.py is a weekly RSS poller (Questing Beast, Sabre Games OSR News, Ten Foot Pole), dedupes via Redis, posts to rpg-news. Pure RSS digest. No AI today.

This is the right entry point for AI-driven research jobs. Not rip out — extend.

Plan:

  1. Curate a second RSS feed set for trending/upcoming books (Publishers Weekly, Locus, Tor.com, Hardcover trending, Bookseller, /r/Fantasy + /r/printSF, trusted Substacks).
  2. Post weekly to #trending-books using the same plumbing.
  3. Layer an agent over the feed: cross-reference against current inventory (Square read), sales velocity, customer book-club picks, Carrie’s curation principles. Output a digest of “we should order N copies of these M titles, here’s why.”
  4. Not auto-ordering. Output → Discord + GitHub issue in dungeonbooks/ops → Carrie/Panat reviews.

This is the Symphony loop applied to inventory: durable input (RSS) → agent execution (research) → tracked output (issue) → human review → action. Cost-bounded (runs once per cycle, not per message), deterministic input source, easy to audit.

Generalizes: RSS-of-events → “what should we host?”, RSS-of-RPG-news → “what zines should we stock?”, etc.

Sequencing: don’t build the research layer until Agent SDK refactor + Langfuse + Square read tool are done. Otherwise the agent can’t ground recommendations and we can’t audit what it did. Captured in three-week-sequencing week 3.

Continued: brand audit — too heavy metal, losing cozy/feminine audience

Carrie surfaced a real brand problem. The Marty wizard logo and aesthetic skew masculine — heavy metal, dungeon-crawler, OSR, sword-and-sorcery. We’re losing the cozy/feminine audience as a result. This is a product/brand finding, not just a persona one.

Implications cascade in two directions:

Implication 1: Shopkeeper is the natural counterweight

Shopkeeper voice spec was already deferred to Carrie (shopkeeper-voice-spec-carrie-writes-the-first-draft). This sharpens it: Shopkeeper is deliberately the cozy/feminine register Marty isn’t. Not generic-corporate-warm. Specifically: cozy fantasy, romantasy, book club, slice-of-life, picture books, illustrated middle grade, literary fiction, the parts of the store Marty’s wizard voice doesn’t sell well.

This is also a clean answer to “what is Shopkeeper’s name and visual identity”:

  • Shopkeeper is not a wizard. Different archetype. Possibilities Carrie should pick from: a librarian, a tea-shop owner, a hedge witch, a botanist, a cartographer, a cat (literal or anthropomorphized), a barista who reads everything, a grandmother in a cardigan, a fae character, a botanical illustrator. Carrie’s call.
  • Visual identity should be deliberately not sword-and-sorcery — softer line work, botanical, illuminated-manuscript, watercolor, pastel-but-not-saccharine.
  • Voice carries the same weight. Where Marty is “lowercase chill wizard,” Shopkeeper might be “warm, observant, gives the kind of book recommendation a librarian who knows you would give.”

This means Shopkeeper isn’t just an ops bot. It’s also a second book-recommendation persona for the audience Marty doesn’t reach. That’s a much stronger product than “support bot” — it’s a brand expansion that happens to also handle policies.

Implication 2: Brand audit beyond bots

Marty’s logo is the visible brand mark for Dungeon’s Discord. If the bot’s mascot is the brand’s mascot, masculine bot = masculine brand. Audit surfaces the wizard appears on:

If we’re going to fix this, the bot is one surface but not the whole problem. Worth a deliberate brand audit pass with Carrie on what each surface signals to a cozy-fantasy / romantasy reader walking in or scrolling.

Strategic note

This is an audience-and-positioning question, not an aesthetic preference. The cozy/feminine audience for indie bookstores is bigger than the OSR/heavy-metal audience by a wide margin. Romantasy alone is one of the largest fiction segments right now. Losing that audience because the brand reads “boys’ club” is a real business cost.

The fix is not to dilute Marty. Marty serves the OSR/metal/sword-and-sorcery audience well, and that audience matters at Dungeon specifically (D&D nights, RPG zines, Mana Pool customers). The fix is to add a parallel persona and visual line that explicitly signals “this store is also for you” to the cozy/romantasy/literary audience. Two doors, same store. Shopkeeper is the second door.

Continued: Luna — young wizard apprentice

Panat’s proposal in response: spin out a distinct persona named Luna, a young wizard apprentice. Same source code as Marty (same agent SDK, same tool dispatch, same observability), different character.

This is the right move and it sharpens the brand strategy. Important nuance: Luna stays in-universe with Marty — both wizards, shared world — but signals a completely different audience.

The “young wizard apprentice” archetype maps directly to the cozy-fantasy tradition we’re underserving:

  • Tamora Pierce (Alanna, Daine), Diana Wynne Jones (Howl, Sophie), Patricia C. Wrede, T. Kingfisher, Naomi Novik (Scholomance, Uprooted), Margaret Rogerson, Olivia Atwater, Travis Baldree (Legends & Lattes).
  • Studio Ghibli (Kiki’s Delivery Service, Howl’s Moving Castle).
  • Little Witch Academia, The Owl House, magical-girl tradition.
  • A Wizard’s Guide to Defensive Baking, the whole cozy-magical-school subgenre.

The wizard frame doesn’t have to be heavy metal. It can be cozy magical-girl. Luna sits squarely in that lane.

Strategic benefits:

  • Lore continuity. Luna and Marty share a world. They can refer to each other (“Marty’s been in a mood lately, sorry,” “ask Luna, she actually likes that romantasy stuff,” etc.). The store has a cast, not just a mascot. Cast is more resilient than mascot.
  • Generational counterweight. Marty is immortal-burnt-out-polymath. Luna is young-curious-still-learning. The age contrast is itself the audience signal — younger readers, cozy readers, readers who want a recommender who’s enthusiastic rather than world-weary.
  • Visual range expands without contradicting. Marty stays the heavy-metal wizard for OSR/D&D/metal audiences. Luna gets the watercolor / illuminated-manuscript / cottagecore visual line. Same store, two doors, neither dilutes the other.
  • Voice range expands. Marty: “lowercase chill burnt-out wizard.” Luna: still casual, but warmer, more curious, more enthusiastic, asks questions, talks about the books like she just finished them. Studious in a fun way, not a corporate way.
  • Sells different books credibly. “Marty recommends romantasy” reads as the bot doing a job. “Luna recommends romantasy” reads as the recommender’s actual taste. Authenticity is what makes book recs land.

Architectural placement

This refines the multi-persona architecture in marty-roadmap:

  • Shopkeeper is the platform persona-template (role). Each shop instantiates one.
  • Luna is Dungeon’s instance of the Shopkeeper template (named character). Phil at Victory Point would have his own named instance — different name, different character, configured for his store’s audience and policies.
  • Marty stays Dungeon-specific. Doesn’t ship to partner shops. Luna also doesn’t ship to partner shops as Luna — she’s Dungeon’s character. The template ships; the instances are per-shop.

Same infrastructure: persona-as-YAML, same tool dispatch, intent-routed inside one Discord bot user. Mention @marty (or whatever the bot user is) and the right persona answers based on what’s asked. Persona handoff is observable: “Luna here — Marty’s better at OSR stuff, but for this one I’ve got you.”

Open questions on Luna

  • Is Luna Marty’s apprentice specifically (relational lore: she’s learning from him), or just a young wizard who works at the store too? The first is cuter and gives them dialogue. The second avoids putting Luna in a subordinate position to a male character — which would undermine the whole point of the brand-diversification move.
    • Likely answer: not Marty’s apprentice. Luna apprentices to someone else (an offstage mentor, “the head librarian at the magical archives where she trained,” etc.) and works at Dungeon Books because she’s interested in the curation. She and Marty are colleagues. Different specialties. She’s not subordinate to him.
  • Does Luna have her own foundational books/influences listed in the system prompt the way Marty does (Three Hearts and Three Lions, SICP, Roger Bacon)? Yes — and they should be the cozy-fantasy canon. Carrie should pick.
  • Visual rendering: who draws Luna? Does the visual direction need to be locked before voice spec, or can voice ship first and visuals follow?
  • Does Luna have any tools Marty doesn’t? Probably yes long-term (cozy-genre-specific rec tools, romantasy / book-club integrations). Defer.

Action items (revised)

  • Carrie: confirm/refine the Luna concept. Specifically: Luna’s relationship to Marty (colleagues, not apprentice/master), Luna’s specialty genres, Luna’s vibe.
  • Carrie + Panat: brand audit pass — list every surface where Marty’s wizard imagery appears, decide which need a counterweight or replacement.
  • Get a visual identity for Shopkeeper before week 3 of the marty-roadmap (when shopkeeper persona stands up). Doesn’t need to be a finished logo — needs to be a clear visual direction.
  • Update marty-roadmap Shopkeeper voice spec to specifically target cozy/romantasy/literary audience as a co-equal goal alongside ops.
  • Audit guild-visual-direction and guild-1bit-aesthetic — is Guild’s visual identity also pulling masculine? If so, is there a cozy lane in Guild’s design language?
  • Consider: does the website’s first-impression visual (logo, hero image, color palette) signal the same masculine brand? Worth A/B-ing with cozy-audience friends.

Cross-references

Continued: Pync reframe — precision medicine AI for dogs

Separate research thread, unrelated to the Carrie/Marty work above. Studied Donald Rubin / MultiPlan (already captured at donald-rubin and rubin-model-lessons) and Will Manidis / ScienceIO as parallels for Pync.

Reframe: Pync is not a smart collar company. The collar is the data-acquisition wedge. The platform is the product. B2B customers are pet insurers, veterinary pharma, vet clinic networks, and pet food companies. Tempus is the structural analog.

Why the analog holds: every regulatory and consent constraint blocking “Patient 360” in human healthcare (HIPAA, FDA, IRB, hospital IT procurement) does not exist in pet healthcare. The ScienceIO “Flatiron for everything” thesis applies more cleanly to dogs than to humans.

MultiPlan date correction: MultiPlan was founded in 1970, not 1980 as widely reported. Confirmed via 1996 Crain’s NY Business and Rubin’s own Big Think interview. Already corrected in donald-rubin.

Full thesis, B2B map, sequencing, and open questions in pync-precision-medicine-thesis. Treat as hypothesis, not pitch — the collar at pre-seed with no vet integrations doesn’t yet support “precision medicine AI” credibly. Sequencing has to be explicit before this story is told to investors.

Action items

  • Decide whether this is the Pync pitch or a separate company concept.
  • Pressure-test the precision-medicine framing against the current Pync team’s actual credibility with pharma/insurer buyers.
  • Define the data-density milestone (active collars, breeds, dog-years) at which Trupanion/Zoetis conversations are real.
  • Define the minimum vet integration that makes the “platform” framing land in a Series A pitch.