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

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

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