From 266502eeecd25fd18b615581dcd91b2caa2a198b Mon Sep 17 00:00:00 2001 From: Chris Parsons Date: Thu, 16 Apr 2026 16:11:37 -0700 Subject: [PATCH] Fix standings discrepancy on change. --- AGENTS.md | 34 ++++++++++++++++++++++ app/components/league/StandingsPreview.tsx | 5 ++-- 2 files changed, 36 insertions(+), 3 deletions(-) create mode 100644 AGENTS.md diff --git a/AGENTS.md b/AGENTS.md new file mode 100644 index 0000000..9b0fa0f --- /dev/null +++ b/AGENTS.md @@ -0,0 +1,34 @@ +# AGENTS.md + +Brackt.com is a fantasy sports drafting platform (React Router 7 + SSR, Socket.IO, PostgreSQL/DrizzleORM, Clerk auth). + +## Commands + +```bash +npm run dev # development with HMR +npm run typecheck # TypeScript check +npm run db:generate # generate Drizzle migration +npm run db:migrate # apply migrations +npm run test:run # unit tests (once) +npm run test:e2e:headless # Cypress E2E +npm run test:all # everything +``` + +## Critical Rules + +**Routes**: Every new route file must also be registered in `app/routes.ts` — React Router 7 does not auto-discover files. Forgetting this causes a silent 404. See [routing guide](docs/agents/routing.md). + +**Database**: Always query through `app/models/` — never write Drizzle queries directly in route files. + +**Tests**: Required for all new features. Do not consider a feature complete until tests pass. See [testing guide](docs/agents/testing.md). + +**Drizzle migrations**: Never manually create migration SQL or edit `_journal.json`. Always use `npm run db:generate`. See [database guide](docs/agents/database.md). + +## Reference Docs + +- [Architecture](docs/agents/architecture.md) — server layout, DB layer, Socket.IO events +- [Domain Models](docs/agents/domain-models.md) — draft system and sports data models +- [Database](docs/agents/database.md) — migration rules, scoring event date gotcha +- [Routing](docs/agents/routing.md) — route registration, admin routes +- [Testing](docs/agents/testing.md) — what tests are required and where they live +- [Auth](docs/agents/auth.md) — Clerk patterns, ownership validation diff --git a/app/components/league/StandingsPreview.tsx b/app/components/league/StandingsPreview.tsx index f951a53..ffb93f3 100644 --- a/app/components/league/StandingsPreview.tsx +++ b/app/components/league/StandingsPreview.tsx @@ -89,13 +89,12 @@ function RankChangeIndicator({ change }: { change: number }) { } function PointChangeIndicator({ change }: { change: number }) { - const sign = change >= 0 ? "+" : ""; if (change >= 0) { - return {sign}{change.toFixed(1)}; + return ▲{Math.round(change)}; } return ( - {sign}{change.toFixed(1)} + ▼{Math.abs(Math.round(change))} ); }