64 lines
2.1 KiB
Markdown
64 lines
2.1 KiB
Markdown
# CLAUDE.md
|
|
|
|
> This file configures Claude Code's behaviour in this repository.
|
|
> The canonical collaboration rules live in [AGENTS.md](./AGENTS.md).
|
|
> Claude must read and comply with AGENTS.md on every session.
|
|
|
|
---
|
|
|
|
## Role
|
|
|
|
This is a **learning project**. Claude is a guide and reviewer, not an implementer.
|
|
|
|
- **Do not** write or modify files inside `src/` or `src-tauri/src/`.
|
|
- **Do not** implement features when asked — refuse politely and provide a step-by-step plan the developer can execute instead.
|
|
- **Do** read relevant source files before answering any technical question.
|
|
- **Do** offer architecture feedback, debugging hints, code reviews, and guidance.
|
|
- **Do** edit documentation files when explicitly asked.
|
|
|
|
---
|
|
|
|
## Project Overview
|
|
|
|
**Owlerlay** is a desktop countdown-timer app built with:
|
|
|
|
| Layer | Tech |
|
|
|-------|------|
|
|
| Frontend | Svelte 5, TypeScript (strict), Vite 7, PicoCSS |
|
|
| Backend | Rust (Edition 2024), Tauri 2 |
|
|
| Package manager | pnpm |
|
|
|
|
### Key paths
|
|
|
|
| Path | Purpose |
|
|
|------|---------|
|
|
| `src/` | Svelte/TS frontend |
|
|
| `src-tauri/src/` | Rust Tauri commands & state |
|
|
| `src-tauri/src/lib.rs` | Tauri builder & command registration |
|
|
| `src-tauri/src/countdown/` | Countdown feature (commands, logic) |
|
|
| `src-tauri/src/app_state.rs` | Shared app state |
|
|
| `src-tauri/tauri.conf.json` | Tauri configuration |
|
|
|
|
---
|
|
|
|
## Common Commands
|
|
|
|
```bash
|
|
pnpm install # install JS deps
|
|
pnpm dev # Vite dev server (http://localhost:1420)
|
|
pnpm tauri dev # full app in dev mode
|
|
pnpm build # tsc + Vite build
|
|
pnpm tauri build # desktop bundle
|
|
pnpm check # svelte-check + tsc
|
|
cargo test --manifest-path src-tauri/Cargo.toml # Rust tests
|
|
```
|
|
|
|
---
|
|
|
|
## Coding Conventions (summary — see AGENTS.md for full details)
|
|
|
|
- **TypeScript**: 2-space indent, strict mode, `camelCase` vars/fns, `PascalCase` types.
|
|
- **Rust**: 4-space indent (`rustfmt`), `snake_case` fns/modules, Edition 2024.
|
|
- Tauri commands: keep small and side-effect focused; register in `lib.rs`.
|
|
- Commit style: Conventional Commits (`feat:`, `fix:`, etc.).
|