EvalLedger is meant to behave like infrastructure, not a demo. Changes should leave the registry easier to reason about, test, and operate.
- Run
make devto bring up Postgres, Redis, MinIO, the API, the worker, and the frontend. - Apply schema changes with
make migrate. - Seed local benchmark records with
make seed. - Run
make lintandmake testbefore pushing.
- Keep FastAPI handlers async all the way through.
- Prefer structured
AppErrorresponses over raw exceptions. - When adding schema changes, include an Alembic migration in the same branch.
- Add or update tests whenever auth, validation, storage, or contamination behavior changes.
- Preserve the editorial, research-institution visual tone.
- Keep internal routes wired with
next/link. - Use typed API helpers from
frontend/lib/api.tsinstead of inlinefetchcalls. - Add or update Playwright and unit coverage when shipping new user flows.
- Every migration should be forward-only and reversible.
- Name migrations after the operational change, not an internal ticket.
- Document cross-service rollout order whenever a migration changes runtime expectations.
- Update
docs/maintainers/migration-policy.mdif the migration introduces a new maintenance rule.
- Lint, type, and test checks are green locally.
- README or docs are updated if the workflow changed.
- New routes return structured errors.
- New operational surfaces include at least one verification path.