████████╗███████╗ █████╗ ███╗   ███╗██╗      ██████╗ ██████╗ ███████╗
╚══██╔══╝██╔════╝██╔══██╗████╗ ████║██║     ██╔═══██╗██╔══██╗██╔════╝
   ██║   █████╗  ███████║██╔████╔██║██║     ██║   ██║██████╔╝█████╗  
   ██║   ██╔══╝  ██╔══██║██║╚██╔╝██║██║     ██║   ██║██╔══██╗██╔══╝  
   ██║   ███████╗██║  ██║██║ ╚═╝ ██║███████╗╚██████╔╝██║  ██║███████╗
   ╚═╝   ╚══════╝╚═╝  ╚═╝╚═╝     ╚═╝╚══════╝ ╚═════╝ ╚═╝  ╚═╝╚══════╝

Break things only once.

Shared memory for your team's Claude Code. One agent learns a lesson. Every agent remembers it. No server — just git.

⚡ teamlore — your team already learned this.

   Billy · 3 days ago · mistake · src/payments/**
   "Stripe webhook retries caused double refunds (#412).
    In-memory dedupe fails across pods. Use processed_events."

   break things only once.

Your team already learned this.

Monday:Billy's Claude causes double refunds. She fixes it.

Tuesday: your Claude opens the same file — and almost does it again.

The lesson existed. It was trapped in her session history.

Distill

Your agent turns hard lessons into tiny lore files.

Recall

Teammates' agents load matching lore automatically. ~800 tokens, max 5 entries.

Review

Lore rides the PR. Humans merge. Nothing enters the brain unreviewed.

Lore is code. Review it.

.lore/2026-07-06-stripe-webhook-double-refund.md
---
paths: [src/payments/**]
kind: mistake
by: Billy
---

# Stripe webhook retries cause double refunds

In-memory dedupe fails across pods (#412).
Two workers processed the same retry. Both refunded.

Dedupe on event.id in the processed_events table.
Never trust in-memory state for webhook idempotency.

One memory. One file. ≤120 words. Reviewed like code.

Onboarding is git pull.

Teammates get the brain on their next git pull.