even ▸ CLAUDE.md
updated 2026-02-28
CLAUDE.md
This file provides guidance to Claude Code (claude.ai/code) when working with code in this repository.
Overview
Even is Unicorn.Land’s inequality-driven macro trading decision-support dashboard. It operationalizes an inequality/incentive framework to pick simple, liquid, retail-accessible trades and monitor persistence.
Commands
pnpm install # Install dependencies
pnpm dev # Start dev server (localhost:3000/even)
pnpm build && pnpm start # Production build
pnpm test # Run Jest tests
pnpm lint # ESLint
pnpm db:generate # Generate Prisma client
pnpm db:migrate # Run migrations
pnpm db:seed # Seed database
pnpm db:studio # Open Prisma GUI
pnpm db:reset # Reset database
pnpm setup # Full setup (install + generate + migrate + seed)
# Manual cron triggers (dev server must be running)
pnpm cron:metrics # POST /api/cron/pull-metrics
pnpm cron:news # POST /api/cron/scan-news
pnpm cron:summary # POST /api/cron/weekly-summary
Architecture
Data Flow
Market APIs → Data Adapters (lib/adapters/) → Derived Metrics
→ Rules Engine (lib/rules.ts) → Signals → Alerts → Database (Prisma/SQLite)
Key Directories
even/
├── app/
│ ├── api/ # API routes
│ │ ├── mechanisms/ # Core mechanism CRUD
│ │ ├── trades/ # Trade management
│ │ ├── signals/ # Market signals
│ │ ├── alerts/ # Alert management
│ │ ├── metrics/ # Market metrics
│ │ └── cron/ # Manual trigger endpoints
│ └── even/ # Dashboard pages
│ ├── page.tsx # Main dashboard
│ ├── mechanisms/[id]/ # Mechanism detail view
│ ├── trades/ # Trade list
│ └── alerts/ # Alert list
├── lib/
│ ├── adapters/ # Data providers
│ │ ├── marketData.ts # Stooq, mock providers
│ │ ├── derived.ts # Computed metrics
│ │ └── macro.ts # Macro data (rates, spreads)
│ ├── repositories/ # Database access layer
│ ├── rules.ts # Rules engine (color coding, alerts)
│ └── validators.ts # Zod schemas
├── components/ # React components (shadcn/ui)
└── prisma/ # Database schema & migrations
Data Model
- Mechanism: Core inequality/incentive frameworks with persistence scoring
- Trade: Position tracking with risk management
- Signal: Market data with traffic-light color coding
- Metric: Inequality-aware market tiles
- Alert: System notifications (regime shifts, invalidators)
Market Tiles
| Tile | Computation | Red | Amber | Green |
|---|---|---|---|---|
| Breadth | RSP/SPY | < 0.95 | 0.95-0.98 | > 0.98 |
| Value Growth | IWD/IWF | < 0.80 | 0.80-0.95 | > 0.95 |
| Small/Large | IWM/QQQ | < 0.70 | 0.70-0.80 | > 0.80 |
| Real Rate | Policy - CPI | > 1% | 0-1% | ≤ 0% |
| HY OAS | Spread | > 500bp | 350-500bp | < 350bp |
Alert Rules
- 2+ tiles flip red in 5 days → “NarrativeRegime” alert
- Trade stop breached → “Invalidator” alert
- News analysis score ≥ 70 → “IncentiveShift” alert
Configuration
Environment Variables (.env.local)
DATABASE_URL="file:./dev.db"
NEXT_PUBLIC_APP_URL="http://localhost:3000"
# Optional real data provider API keys
# ALPHA_VANTAGE_API_KEY=""
# TIINGO_API_KEY=""
# NEWS_API_KEY=""
Tech Stack
- Framework: Next.js 14 (App Router)
- Language: TypeScript
- Styling: Tailwind CSS + shadcn/ui
- Charts: Recharts
- Database: SQLite + Prisma ORM
- Testing: Jest + React Testing Library