Initial project scaffold and agent docs.

Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
vader
2026-05-23 11:16:12 +01:00
commit b820b69ce6
8 changed files with 254 additions and 0 deletions
+31
View File
@@ -0,0 +1,31 @@
# Copy into a new Cursor chat (fill brackets, delete this line)
## Session
- Type: [learning | implementation | debug]
- Phase: [e.g. Phase 4 — Context discipline]
- Project: financeOne (`/home/duarte/development/financeOne`)
## Stack
- Next.js, React, TypeScript, Tailwind (planned — see README)
- Verify: `npm run lint && npm test` (when scaffold exists)
## How I want replies
- Concise and direct; no fluff or long summaries unless I ask.
- Ask me anything unclear (scope, constraints, tradeoffs) before big changes.
## My profile
- Senior dev/architect; learning Cursor.
- Minimal diffs; match existing patterns; short tradeoff notes when choices matter.
- Do not commit/push unless I ask; no secrets in chat.
## Goal (this chat)
[One sentence — what “done” looks like]
## Already decided
- Repo prepared: README, AGENTS.md, `.cursor/rules/`, `.gitignore`, `.env.example`
## Attachments
@README.md @AGENTS.md @.cursor/rules/
---
[Phase title and your questions below]
+20
View File
@@ -0,0 +1,20 @@
---
description: Core FinanceOne project standards for all work
alwaysApply: true
---
# FinanceOne — core
## Responses
- Concise, direct, plain language. No filler or fancy phrasing.
- Ask 13 specific questions when scope, constraints, or approach is unclear — do not guess on large changes.
## Code
- Minimal, focused diffs; match existing style and layout.
- Read `AGENTS.md` and `README.md` before multi-file edits.
- No commit, push, or git config changes unless the user explicitly asks.
- No secrets in repo; `.env.local` locally; names in `.env.example` only.
- Money: integer minor units or a decimal library — not JS `number` for currency math.
- Prefer `@` references over whole-repo search when the task names files or areas.
+13
View File
@@ -0,0 +1,13 @@
---
description: TypeScript conventions for FinanceOne
globs: **/*.{ts,tsx}
alwaysApply: false
---
# TypeScript
- Prefer explicit return types on exported functions and API handlers.
- Avoid `any`; use `unknown` and narrow, or small domain types.
- Use `import type` for type-only imports.
- Colocate types with features; shared types in a dedicated `types` module when reused.
- Handle errors explicitly; do not swallow failures without logging or user-visible feedback.
+13
View File
@@ -0,0 +1,13 @@
---
description: React and Next.js UI patterns for FinanceOne
globs: **/*.{tsx,css}
alwaysApply: false
---
# Web UI
- Next.js App Router: default to Server Components; add `"use client"` only for interactivity.
- Accessible markup: labels on inputs, semantic headings, keyboard-friendly controls.
- Tailwind: reuse spacing and color patterns from nearby components; avoid one-off magic values when a token exists.
- Forms: validate on client for UX and on server for security; show clear error messages.
- Loading and empty states for lists (accounts, transactions).
+10
View File
@@ -0,0 +1,10 @@
# Copy to .env.local and fill in. Do not commit real values.
# App
NEXT_PUBLIC_APP_URL=http://localhost:3000
# Database (when added)
# DATABASE_URL=
# Auth (when added)
# AUTH_SECRET=
+40
View File
@@ -0,0 +1,40 @@
# Dependencies
node_modules/
# Build / framework
.next/
out/
dist/
build/
.turbo/
.vercel/
# Environment and secrets
.env
.env.*
!.env.example
# Logs and debug
*.log
npm-debug.log*
yarn-debug.log*
yarn-error.log*
pnpm-debug.log*
# Testing
coverage/
.nyc_output/
# IDE / OS
.idea/
.vscode/
*.swp
.DS_Store
Thumbs.db
# TypeScript
*.tsbuildinfo
# Misc
.cache/
*.pem
+58
View File
@@ -0,0 +1,58 @@
# FinanceOne — agent guide
For Cursor Agent and other coding agents in this repo.
## How to respond
- **Be concise**: short paragraphs, bullets when listing. Match reply length to the task.
- **Be direct**: state facts, decisions, and next steps. No filler, hype, or “great question” openers.
- **No fluff**: skip long preambles, repeated summaries, and engagement closers unless the user asks.
- **Ask when it helps**: if scope, constraints, or “done” is unclear — or there are multiple valid approaches — ask **13 specific questions** before a large change. Do not guess and build the wrong thing.
- **Say what you need**: missing file paths, env, repro steps, or preferences? Ask once, clearly.
## Project
Personal finance web app. Small, reviewable diffs; match existing patterns.
## Before you change code
1. Read `README.md` for stack and verify commands.
2. Stay within the users request; no drive-by refactors.
3. Prefer `@` file references over whole-repo search when the task names files or areas.
## Conventions
- **TypeScript**: strict types; avoid `any` unless justified in a comment.
- **React / Next.js**: App Router; server components by default; `"use client"` only when needed.
- **Styling**: Tailwind utilities; match nearby components.
- **Money**: minor units (cents) or a decimal library — never raw floats for currency.
- **Secrets**: never commit `.env`, keys, or tokens; names only in `.env.example`.
## Verification
After substantive changes (when `package.json` exists):
```bash
npm run lint
npm test
```
UI changes: note manual checks or use browser tooling if configured.
## Git
- Commit only when the user explicitly asks.
- No force-push to `main` / `master`.
- Do not skip git hooks unless the user asks.
## Domain
- **Accounts**: cash, credit, investment — clear balance semantics each.
- **Transactions**: signed amounts; categories/tags optional but consistent.
- **Reports**: aggregate from stored transactions; document timezone (UTC vs user locale).
## Out of scope unless requested
- New major dependencies
- Large architectural rewrites
- CI/CD or deployment changes
+69
View File
@@ -0,0 +1,69 @@
# FinanceOne
Personal finance web application — budgets, accounts, transactions, and reporting.
## Stack (planned)
| Layer | Choice |
|-------|--------|
| Runtime | Node.js 20+ |
| Framework | Next.js (App Router) |
| Language | TypeScript |
| Styling | Tailwind CSS |
| Package manager | npm |
Adjust this table when the scaffold is generated or the stack changes.
## Prerequisites
- Node.js 20 or later
- npm 10+
## Getting started
The application scaffold is not generated yet. After `package.json` exists:
```bash
npm install
cp .env.example .env.local # fill values locally; never commit secrets
npm run dev
```
Open [http://localhost:3000](http://localhost:3000).
## Scripts
| Command | Purpose |
|---------|---------|
| `npm run dev` | Local development server |
| `npm run build` | Production build |
| `npm run start` | Run production build |
| `npm run lint` | ESLint |
| `npm test` | Unit / integration tests |
Scripts appear in `package.json` once the app is scaffolded.
## Environment variables
See [.env.example](.env.example). Copy to `.env.local` for local development.
## Project layout (target)
```
financeOne/
├── src/ # application source (after scaffold)
├── public/
├── .cursor/rules/ # Cursor agent guardrails
├── AGENTS.md # agent workflow and conventions
└── README.md
```
## Cursor / agents
- Read [AGENTS.md](AGENTS.md) first: concise replies, ask when unclear, then conventions and verify steps.
- Rules: `.cursor/rules/`. Chat starter: `.cursor/chat-context-template.md`.
- Verify: `npm run lint` and `npm test` when available.
## License
Private / unlicensed unless stated otherwise.