# TASKS — F-005 Identity: register, login, sessions

- [ ] TASK-001 deps: argon2 + @fastify/cookie; justify in spec/tech.md
- [ ] TASK-002 migrations/002_identity.js (identity_users + identity_sessions, reversible)
- [ ] TASK-003 domain: user.ts, session.ts, errors.ts, ports.ts
- [ ] TASK-004 application: register-user.ts, login.ts, logout.ts, login-rate-limiter.ts
- [ ] TASK-005 infrastructure: argon2 hasher, pg repos, session-token
- [ ] TASK-006 api: identity.routes.ts (zod via parseJson, error mapping, cookie)
- [ ] TASK-007 index.ts public API
- [ ] TASK-008 foundation wiring: pool.createPool(connectionString), config COOKIE_SECURE, buildApp(pool, cookieSecure), server.ts pool creation
- [ ] TASK-009 unit tests: rate limiter + session token (module-scoped)
- [ ] TASK-010 integration tests: full flows against real PostgreSQL (app-scoped itest)
- [ ] TASK-011 run lint + boundaries + typecheck + build + test + test:integration + verify.sh
