- Add scripts/setup-db.ts to programmatically create missing PocketBase collections (period_logs, dailyLogs) with proper relation fields - Fix dark mode visibility across settings, login, calendar, and dashboard components by using semantic CSS tokens and dark: variants - Add db:setup npm script and document usage in AGENTS.md - Update vitest config to include scripts directory tests Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
66 lines
1.8 KiB
Markdown
66 lines
1.8 KiB
Markdown
# ABOUTME: Operational notes for Ralph autonomous development loops.
|
|
# ABOUTME: Contains build/test commands and codebase patterns specific to PhaseFlow.
|
|
|
|
## Build & Run
|
|
|
|
- Dev server: `pnpm dev`
|
|
- Build: `pnpm build`
|
|
- Start production: `pnpm start`
|
|
|
|
## Validation
|
|
|
|
Run these after implementing to get immediate feedback:
|
|
|
|
- Tests: `pnpm test:run`
|
|
- Lint: `pnpm lint`
|
|
- Lint fix: `pnpm lint:fix`
|
|
- Typecheck: `pnpm tsc --noEmit`
|
|
|
|
## Operational Notes
|
|
|
|
- Database: PocketBase at `NEXT_PUBLIC_POCKETBASE_URL` env var
|
|
- Deployment config: `../alo-cluster/services/phaseflow.hcl` (Nomad job)
|
|
- Garmin tokens encrypted with AES-256 using `ENCRYPTION_KEY` (32 chars)
|
|
- Path aliases: `@/*` maps to `./src/*`
|
|
- Pre-commit hooks: Biome lint + Vitest tests via Lefthook
|
|
|
|
## Database Setup
|
|
|
|
PocketBase requires these collections: `users`, `period_logs`, `dailyLogs`.
|
|
|
|
To create missing collections:
|
|
```bash
|
|
POCKETBASE_ADMIN_EMAIL=admin@example.com \
|
|
POCKETBASE_ADMIN_PASSWORD=yourpassword \
|
|
pnpm db:setup
|
|
```
|
|
|
|
The script reads `NEXT_PUBLIC_POCKETBASE_URL` from your environment and creates any missing collections. It's safe to run multiple times - existing collections are skipped.
|
|
|
|
## Codebase Patterns
|
|
|
|
- TDD required: Write tests before implementation
|
|
- All files start with 2-line ABOUTME comments
|
|
- No mock mode: Use real data and APIs only
|
|
- Never use `--no-verify` for git commits
|
|
- Commit format: Descriptive message + Claude footer
|
|
|
|
## Tech Stack
|
|
|
|
| Layer | Choice |
|
|
|-------|--------|
|
|
| Framework | Next.js 16 (App Router) |
|
|
| Runtime | Node.js 24 |
|
|
| Database | PocketBase |
|
|
| Validation | Zod |
|
|
| Testing | Vitest + jsdom |
|
|
| Linting | Biome |
|
|
|
|
## File Structure
|
|
|
|
- `src/app/` - Next.js pages and API routes
|
|
- `src/components/` - React UI components
|
|
- `src/lib/` - Business logic utilities
|
|
- `src/types/` - TypeScript type definitions
|
|
- `specs/` - Feature specifications for Ralph
|