AI Manual

Codebase map

Where things live in each repo. When user asks "fix X", look here first.

slabtrack

slabtrack/
├── backend/
│   ├── server.js                  # Express entry, ~1000 lines
│   ├── routes/                    # 80+ route files, mounted in server.js
│   │   ├── curator.routes.js      # Strategist + lot suggestions + ToT bridge (3000 lines)
│   │   ├── channels.routes.js     # Channel engage/disengage
│   │   ├── sale-lock.routes.js    # Cross-channel sale-lock coordination
│   │   ├── sync-command-center.routes.js  # Reconciler + drift detection
│   │   ├── ecosystem-transfer.routes.js   # Inbound webhooks from satellites
│   │   ├── psa.routes.js          # PSA cert lookup
│   │   ├── consignment.routes.js  # Consignor + payouts
│   │   └── ... ~75 more
│   ├── services/
│   │   ├── strategist/            # allocator.js, lot-builder.js, team-cities.js
│   │   ├── channels/              # registry.js + per-channel adapters
│   │   ├── channel-scoring/       # comp_value priority chain
│   │   ├── sync-reconciler.js     # Drift detection + auto-fix
│   │   ├── sale-lock-service.js   # Sale-lock atomic acquire/complete/release
│   │   ├── pricing/               # SCPro + eBay scrape
│   │   └── scan/                  # AI vision card ID
│   ├── jobs/                      # Cron tasks
│   │   ├── automationCron.js
│   │   └── syncReconcileCron.js
│   ├── middleware/                # auth.js, admin.js
│   └── database/                  # db.js, schema.sql, migrations/
├── frontend/
│   ├── src/
│   │   ├── pages/                 # 60+ React pages — Strategist (2700 lines), Curator, etc.
│   │   ├── components/            # Shared + admin/
│   │   ├── context/               # AuthContext, BundleContext
│   │   ├── api/                   # API client modules
│   │   └── App.jsx                # Routes + layout
│   └── public/
│       └── docs/                  # ← THIS DOC TREE
└── docs/                          # Source-of-truth markdown for engineers (legacy)

thisorthat

thisorthat/
├── src/
│   ├── app/
│   │   ├── (public marketplace pages)
│   │   │   ├── browse/            # /browse — main marketplace grid
│   │   │   ├── listing/[id]/      # Individual listing detail
│   │   │   ├── pull/              # Pull commit page
│   │   │   ├── flip-cart/         # Multi-card flip cart
│   │   │   ├── play/[id]/         # Play result + verification
│   │   │   └── simulation/        # Auto-play demo
│   │   ├── api/
│   │   │   ├── webhook/ingest/    # ← SlabTrack publishes here, auto-creates Listings
│   │   │   ├── stripe/webhook/    # ← Stripe events, settles plays + refunds
│   │   │   ├── play/{flip,pull}/  # Game commit + reveal
│   │   │   ├── payment/           # Payment intent (manual capture)
│   │   │   ├── shipping/          # Shippo label printing
│   │   │   ├── orders/            # Order management + refund
│   │   │   ├── listings/          # Listing CRUD
│   │   │   └── admin/             # Admin tools (normalize-lot-spreads, etc.)
│   │   ├── seller/                # Operator order dashboard
│   │   ├── collection/            # Staged cards from SlabTrack
│   │   └── admin/                 # Admin home + sub-pages
│   ├── components/
│   │   ├── marketplace/           # FilterRail, SearchCombobox, CardDetailDrawer, ListingCard
│   │   ├── pull/                  # PullTrayDrawer
│   │   └── (other UI)
│   ├── lib/
│   │   ├── stripe.ts              # ← getStripe() singleton, API version pinned here
│   │   ├── games/                 # flip.ts, pull.ts (game logic)
│   │   ├── blockchain/solana.ts   # On-chain anchoring
│   │   ├── pull-store.ts          # zustand pull stack store
│   │   ├── cart-store.ts          # zustand flip cart store
│   │   ├── sale-lock.ts           # Client of SlabTrack's sale-lock service
│   │   └── notify.ts              # Buyer email
│   └── middleware.ts              # Auth + CORS
└── prisma/
    └── schema.prisma              # Listing, FlipConfig, Pull, Order, etc.

slabtrack-storefront

slabtrack-storefront/
├── src/
│   ├── app/
│   │   ├── [slug]/                # Public storefront — multi-tenant root
│   │   │   ├── page.tsx           # Storefront home + hero + grid
│   │   │   ├── cards/[id]/        # Card detail (slide-over preferred)
│   │   │   ├── cart/              # Cart + checkout
│   │   │   ├── wants/             # Want board
│   │   │   ├── sell/              # Sell-to-shop
│   │   │   └── wishlist/          # Saved cards
│   │   ├── dashboard/[slug]/      # Operator dashboard per shop
│   │   │   ├── inventory/
│   │   │   ├── orders/
│   │   │   ├── theme/             # ← Theme Studio
│   │   │   ├── settings/
│   │   │   ├── wants/
│   │   │   └── buying/
│   │   └── api/
│   │       ├── stripe/
│   │       │   ├── checkout/      # ← Creates Checkout Session, idempotency-keyed
│   │       │   ├── webhook/       # ← Order paid/failed, sale-lock complete
│   │       │   ├── refund/[orderId]/
│   │       │   └── connect/       # Express onboarding (onboard, refresh, return)
│   │       ├── shippo/buy-label/[orderId]/
│   │       └── storefronts/[slug]/
│   │           ├── theme/         # PUT — Theme Studio saves
│   │           └── cards/         # Publish cards from SlabTrack
│   ├── components/
│   │   ├── ShopBrowser.tsx        # Faceted shop grid client wrapper
│   │   ├── ShopFilterRail.tsx
│   │   ├── ShopCardDrawer.tsx     # Slide-over card detail
│   │   ├── HeroSpotlight.tsx      # Right-rail rotating spotlight
│   │   ├── FeaturedCarousel.tsx
│   │   ├── StickyCartBar.tsx
│   │   ├── StorefrontThemeProvider.tsx
│   │   └── ShopLogo.tsx           # Logo with onError fallback
│   └── lib/
│       ├── storefront-theme.ts    # Resolver + presets + palettes
│       ├── stripe.ts              # Singleton
│       ├── shippo.ts              # Buy-label helper
│       ├── sale-lock.ts           # Client of SlabTrack's service
│       ├── cart-store.ts          # Per-shop cart (zustand persist)
│       ├── wishlist-store.ts      # Per-shop wishlist (zustand persist)
│       └── saved-searches-store.ts
├── public/
│   └── slabtrack-logo.png         # Default SlabTrack-branded logo
└── prisma/
    └── schema.prisma              # Storefront, StorefrontCard, Order, etc.

Key files to grep when you don't know where to look

If user mentions...Look in...
Strategist, allocator, commitslabtrack/backend/routes/curator.routes.js + backend/services/strategist/
Channels, command bridge, syncslabtrack/backend/services/channels/, sync-reconciler.js, routes/sync-command-center.routes.js
Sale-locks, double-sale preventionslabtrack/backend/services/sale-lock-service.js
Flip / Pull mechanicsthisorthat/src/lib/games/
Provably-fair, Solana anchoringthisorthat/src/lib/blockchain/solana.ts
Theme Studioslabtrack-storefront/src/lib/storefront-theme.ts + app/dashboard/[slug]/theme/
Stripe webhooks{thisorthat,slabtrack-storefront}/src/app/api/stripe/webhook/route.ts
Shipping labelsthisorthat/src/app/api/shipping/route.ts + slabtrack-storefront/src/app/api/shippo/buy-label/[orderId]/route.ts
Browse filters / searchthisorthat/src/components/marketplace/FilterRail.tsx + slabtrack-storefront/src/components/ShopFilterRail.tsx