This repository now contains two connected systems:
symphony/: long-running Linear orchestration service for issue-driven agent execution.apps/api+apps/web: trading backend/frontend implementation tracked by Alpha-Kite Linear issues.
launcher/: simple UI to start API, Web, Symphony and open Health / Market / Web App (port 5050)symphony/: core Symphony service implementationapps/api: FastAPI backend (Supabase, Polygon, Schwab, Camelot providers)apps/web: Next.js frontend routed to backend APIsdocs/run-checklist.md: preflight checklist for secrets and executiondocs/symphony-issue-protocol.md: required issue transition/comment protocolapps/api/sql/supabase_schema.sql: base schema + RLS policy scaffold
python3 -m venv .venv
source .venv/bin/activate
python3 -m pip install -r requirements.txt
npm --prefix apps/web installCopy .env.example to .env and set required values.
Core values:
LINEAR_API_KEYLINEAR_PROJECT_ID=d77c9342-536d-41f4-9526-2fd38e65226c(preferred)PROVIDER_MODE=auto|mock|real- Provider credentials (
SUPABASE_*,POLYGON_*,SCHWAB_*,CAMELOT_*)
./scripts/run-launcher.sh
# Open http://localhost:5050 — start API, Web, Symphony and open Health / Market Quote / Web App in browser./scripts/run-symphony.sh
# dashboard/API on http://localhost:8080 when using --port 8080python3 apps/api/main.pyAPI surface:
GET /healthGET /market/quote,GET /market/bars,GET /market/indicatorsGET/POST/DELETE /watchlists/{user_id}POST /auth/session,GET /auth/session/{token}GET /positions/{user_id},GET /orders/{user_id},POST /orders/{user_id}POST /ingest/camelot
npm --prefix apps/web run devSet NEXT_PUBLIC_API_BASE_URL (default http://localhost:8000).
python3 -m pytest -q tests/api
node apps/web/scripts/smoke.js- Frontend target: Vercel (
apps/web) - Backend target: Railway (
apps/api) - Do not commit provider secrets; use platform env settings.
- Create a new issue in Linear under project
Alpha-Kite. - Set state to
Todo, include clear scope and acceptance criteria, and add dependency links (blocked by/blocks) when needed. - Ensure the issue belongs to team
Alpha-Kiteso it matchesWORKFLOW.mdfilters. - Run Symphony (
./scripts/run-symphony.sh) to pick up eligibleTodo/In Progress/In Reviewtasks. - During execution, require issue comments with scope, verification, and blockers before moving to
Done.