# Laputa App

Personal knowledge and life management desktop app built with Tauri v2 + React + TypeScript + BlockNote.

## Documentation

- 📐 [ARCHITECTURE.md](docs/ARCHITECTURE.md) — System design, tech stack, data flow
- 🧩 [ABSTRACTIONS.md](docs/ABSTRACTIONS.md) — Core abstractions and models
- 🚀 [GETTING-STARTED.md](docs/GETTING-STARTED.md) — How to navigate the codebase
- 🎨 [THEMING.md](docs/THEMING.md) — Theme system and customization

## Quick Start

### Prerequisites

- Node.js 20+
- pnpm 8+
- Rust (latest stable)
- macOS (for development)

### Setup

```bash
# Install dependencies
pnpm install

# Install git hooks (optional but recommended)
.github/hooks/install-hooks.sh

# Run dev server
pnpm dev

# Open in browser (mock mode)
open http://localhost:5173

# Or run in Tauri
pnpm tauri dev
```

### Testing

```bash
# Frontend tests
pnpm test

# Backend tests
cargo test

# Coverage
pnpm test:coverage

# E2E tests
pnpm test:e2e
```

### Code Quality

```bash
# Lint
pnpm lint

# Rust checks
cargo clippy
cargo fmt --check

# CodeScene (via Claude Code)
claude 'Check code health with CodeScene MCP'
```

## Development Workflow

See [CLAUDE.md](CLAUDE.md) for coding guidelines and workflow.

**Key principles:**
- Small, atomic commits
- Test as you go
- Visual verification mandatory
- Documentation updated with code changes

## CI/CD

GitHub Actions runs on every push/PR:
- ✅ Tests (frontend + Rust)
- 📊 Coverage (70% threshold)
- 🎨 Lint & format
- ⚠️ Documentation check

See [.github/SETUP.md](.github/SETUP.md) for CI/CD configuration.

## Git Hooks

Pre-commit hook checks code health before every commit. See [.github/HOOKS.md](.github/HOOKS.md) for details.

## License

Private repository — not licensed for public use.
