optional chaining when updating existing code or adding new code
## Architecture Guidelines
- **Frontend/Backend Separation**: Frontend code (`static/`) MUST NOT import from backend code (`lib/`)
- Frontend should use API calls
Steady5 mentions in 2 weeks
No other project uses it yet
19k10mo agoReviewMountCreate a free account to mount
symlink to this file; edit `AGENTS.md`.
Read `ARCHITECTURE.md` before non-trivial backend, frontend, runtime, plugin, Box, MCP, persistence, or SDK (`sdk/`) changes. This file is the working checklist; `ARCHITECTURE.md
19k19d agoReviewMountCreate a free account to mount
backend lives in `packages/player/src-tauri/src/`. Modules:
- `bridge/` - bidirectional RPC. Lets Rust servers call into the frontend (`Bridge::call` emits a `bridge:request` event, frontend replies via the `bridge_respond` command).
- `http
19k41d agoReviewMountCreate a free account to mount
internal tools, workflows, API integrations, background jobs, and UIs. Rust backend + Svelte 5 frontend.
## Workflow
1. **Understand**: Before coding, explore the codebase (see Code Navigation below). Use `outline` to understand
19k6d agoReviewMountCreate a free account to mount
index. Under herdr the two server panes
sit in the worktree's `backend/` and `frontend/`, so match on `cwd`:
```bash
herdr pane list --workspace "$HERDR_WORKSPACE_ID"
```
Under webmux they
Steady25 mentions in 2 weeks
No other project uses it yet
19k6d agoReviewMountCreate a free account to mount
Frontend (Svelte 5)
- **Coding patterns**: MUST use the `svelte-frontend` skill when writing Svelte code
- **Validation**: `docs/validation.md` — `npm run check:fast` (2s) for iteration, `npm run check` (50s) for final
Steady25 mentions in 2 weeks
No other project uses it yet
19k6d agoReviewMountCreate a free account to mount
some
worker. When you split workers, keep `-B` on at least one of them.
### Frontend
Install dependencies only when needed, then run the dev server:
```bash
cd frontend
npm install
18k3y agoReviewMountCreate a free account to mount
mixed. Handed a menu of
languages, the model sometimes picks one off it.
The frontend already knows the intended language — the Template Hub selector,
or the research language while research
No other project uses it yet
18k34d agoReviewMountCreate a free account to mount
built.
## Build / run
Node.js 24 + npm; keep `frontend/package-lock.json` in sync.
```shell
cd frontend && npm ci && npm run build && cd .. # REQUIRED before any go build/test
./sh/build.sh # frontend + versioned static binary
18k4y agoReviewMountCreate a free account to mount
architecture and its relationship to the Cargo workspace.
### Commands
- Use `pnpm` for frontend packages; `harper-desktop/package.json` pins `pnpm@10.10.0`.
- Dev app: `just dev-desktop` from repo root. It builds
Steady15 mentions in 2 weeks
No other project uses it yet
18k8d agoReviewMountCreate a free account to mount
data persistence.
- **Size**: Large monorepo (~840MB, ~1M+ lines of code)
- **Backend**: Ruby on Rails
- **Frontend**: Node.js, npm, TypeScript
- **Database**: PostgreSQL (required)
- **Architecture**: New UI uses server-rendered HTML with Hotwire
17k5y agoReviewMountCreate a free account to mount
structure and research | [DOCS_STYLE_GUIDE.md](.claude/docs/DOCS_STYLE_GUIDE.md) |
| New, moved, or restructured docs | [write-docs skill](.claude/skills/write-docs/SKILL.md) |
| Frontend | [site/AGENTS.md](site/AGENTS.md) |
For changes under `site/src/`, also read [FRONTEND_PATTERNS.md](.claude/docs/FRONTEND_PATTERNS.md). When you modify frontend code
17k2d agoReviewMountCreate a free account to mount
Frontend Development Guidelines
Read [Frontend Patterns](../.claude/docs/FRONTEND_PATTERNS.md) before changing `site/src/`. It is the canonical contract for FE1 through FE10.
## Frontend contract
- **FE1:** UI behavior changes should have behavior coverage
17k2d agoReviewMountCreate a free account to mount
base folders without approval.
- Do not change the application's dependencies without approval.
## Frontend Bundling
- If the user doesn't see a frontend change reflected in the UI, it could
Steady2 mentions in 2 weeks
No other project uses it yet
17k6mo agoReviewMountCreate a free account to mount
database migrations
make makemigrations # Create new migrations
make resetdb # Flush DB + create superuser (admin/admin)
```
### Frontend (TypeScript/Next.js)
```bash
# From src/frontend/apps/impress/:
yarn dev # Development server (port 3000)
yarn build # Production build (includes
17k4d agoReviewMountCreate a free account to mount