This file provides guidance to Claude Code (claude.ai/code) when working with code in this repository.
TarotTALKS is a lookup instrument that maps the Tarot deck (all 78 cards) to TED talks. It helps users discover TED talks based on Tarot cards they've pulled, find cards that match talks they love, and explore curated themes that blend Tarot archetypes with TED content.
This is an early-stage project currently in the design/planning phase. The repository contains:
- Product concept documentation (webapp_concept_01.md)
- Database schema design (webapp_concept_db_01.md)
- No implementation code yet
When implementing, follow the relational database schema outlined in webapp_concept_db_01.md:
- cards: 78 Tarot cards with meanings, keywords, images
- talks: TED/TEDx talks with metadata (title, speaker, URL, duration)
- card_talk_mappings: The interpretive layer linking cards to talks with curatorial notes
- themes: Curated collections (e.g., "Grief & Gratitude", "New Beginnings")
- card_themes and talk_themes: Many-to-many relationships
- Use slugs for all entities to enable clean URLs (
/cards/the-tower) - Keep content (card meanings, talk details) separate from mappings (the curatorial layer)
card_talk_mappingscontains the core value: rationale for why a card and talk pair together- Each mapping has
is_primary(main talk for a card) andstrength(1-5 rating)
- Card → Talks: "I pulled the Tower. What talks should I watch?"
- Talk → Cards: "What card(s) does this talk about vulnerability map to?"
- Theme → Cards & Talks: Browse curated themes with blended recommendations
- Exploration: Random card + talk pairing
- Search: Omnibox search across cards, talks, and themes
From webapp_concept_01.md:
- Mobile-first: Design for vertical scrolling, bottom navigation (Home, Cards, Talks, Themes)
- Progressive disclosure: Show essentials above the fold, hide deep content in accordions/drawers
- Card detail: Show image, name, keywords, 1 primary talk above fold
- Hide full meanings, related cards, journaling prompts below fold
- Quick action focus: Users should be able to "do something" in 1-2 taps
- Desktop enhancements: Side-by-side layouts, spread builders, multi-filter panels as bonus features
Based on the schema design document:
- Database: Start with SQLite for prototyping, migrate to Postgres/Supabase for production
- Backend: The schema supports standard RESTful or GraphQL queries
- Search: Start with SQL
ILIKEqueries, upgrade to full-text search later
- Card images should be stored and referenced via
cards.image_url - Talk thumbnails referenced via
talks.thumbnail_url - Keywords stored as text or JSON arrays
- Curatorial notes split between:
- Short rationale:
card_talk_mappings.rationale_short(1-2 sentences) - Deep essays:
card_talk_mappings.rationale_long(optional)
- Short rationale:
When beginning development, suggested order:
- Database schema setup with core tables (cards, talks, card_talk_mappings)
- Basic API layer for CRUD operations
- Card detail and Talk detail views (the heart of the app)
- Search functionality across entities
- Themes and curated collections
- Advanced features (spreads, journaling, user accounts)
https://tarottalks.app for all URLs referencing the live application.
npm run dev, no localhost). Instead:
- For database migrations: Provide SQL ready to paste into Supabase SQL Editor
- For code changes: After implementation, instruct to deploy and test on live site
- Test URLs should point to
https://tarottalks.app/...
Workflows (slash commands) must exist in both agent platforms:
.claude/commands/— Claude Code slash commands.agent/workflows/— Antigravity workflows
When creating or modifying a workflow, always update both locations. The files should be identical. Current shared workflows: ship.md, completion-drive.md, audit.md.
- X/Twitter Card Validator: https://www.xcardvalidator.com/
- Facebook Sharing Debugger: https://developers.facebook.com/tools/debug/
- LinkedIn Post Inspector: https://www.linkedin.com/post-inspector/