diff --git a/AGENTS.md b/AGENTS.md index 05e3141..6f74b2d 100644 --- a/AGENTS.md +++ b/AGENTS.md @@ -6,6 +6,8 @@ Application code lives in `src/`. Next.js App Router pages and API route handler Keep data flow consistent: API routes call query functions in `src/lib/queries.ts`, which use `queryRaw()` from `src/lib/db.ts`; client components access APIs through TanStack Query hooks in `src/lib/hooks.ts`. +**Task tracking is the Vikunja board at `https://tasks.bosecamp.com`** (project *Work*, saved filter **finance-app**), which replaced the smarthome repo's `ACTIONS.md` on 2026-07-30. Update the ticket in the same change as the code. See `CLAUDE.md` → "Work tracking". + ## Build, Test, and Development Commands - `npm ci` installs the locked dependency set (Node 22 is used in CI). diff --git a/CLAUDE.md b/CLAUDE.md index 9ee9907..43411db 100644 --- a/CLAUDE.md +++ b/CLAUDE.md @@ -11,6 +11,33 @@ Personal finance tracker. Bank statements are ingested via an N8N workflow (in t - **Auth**: `X-Forwarded-User` header (email) set by Traefik → `participants.email`. In dev/fallback: participant id=1 ("Me") - **Runs at**: port 3000 inside container, exposed on host port 4100, proxied at `https://finance.bosecamp.com` +## Work tracking — the board, not a markdown file + +Outstanding work for this app lives on the Vikunja board at +`https://tasks.bosecamp.com` (project **Work**), which replaced the smarthome +repo's `ACTIONS.md` on 2026-07-30. + +Find this app's work with the saved filter **finance-app**, or +`done = false && labels in `. Note that a ticket can carry +*several* system labels — the receipt→pantry work is labelled `finance-app`, +`pantry-app` **and** `email-ingestion` — so don't assume the finance filter shows +everything that will touch this codebase. + +Epics that own most finance work: **Order & receipt ingestion (ING-7/8/10)**, +**Cashback tracking (ING-6)**, **Utility bills slice**, **Lane C — Ingestion +engine**, **Postgres estate & PG 14 EOL**. + +**Update the ticket in the same change as the code.** The board is only worth +having if its status is true, and the previous system drifted precisely because +status lived somewhere nobody touched while shipping. + +Token and API conventions: smarthome `CLAUDE.md` → "Work tracking". The token is +in smarthome `docker/utilities/.env`; this repo does not carry it. + +**One deadline here is real:** `postgres-personal` runs **PostgreSQL 14, EOL 12 +November 2026** — it holds `statements`, `transactions`, `orders` and +`expense_metadata`. Tracked in the Postgres epic, not here. + ## Common Commands **Deployment is push-to-deploy via Komodo** (since 2026-07-19): pushing to `main` on