- Create a feature branch:
feature/your-feature-name - Follow conventions in claude.md
- Write tests for new features
- Run tests and linting before committing
- Submit a pull request
See claude.md Code Conventions section for:
- TypeScript conventions
- React patterns
- File naming
- Testing guidelines
-
Install dependencies:
pnpm install
-
Install Rust and Tauri prerequisites:
- Follow Tauri Prerequisites Guide
-
Copy
.env.exampleto.envand configure:cp .env.example .env
-
Start development server:
pnpm tauri:dev
- Run unit tests:
pnpm test - Run E2E tests:
pnpm test:e2e - Generate coverage:
pnpm test:coverage
Write tests for all new features:
- Unit tests in
tests/unit/ - Integration tests in
tests/integration/ - E2E tests in
tests/e2e/
Follow Conventional Commits:
feat:New featurefix:Bug fixdocs:Documentation changesrefactor:Code refactoringtest:Test changeschore:Build/config changes
Example: feat: add wiki-link autocomplete
- Ensure all tests pass:
pnpm test && pnpm test:e2e - Run type checking:
pnpm typecheck - Run linting:
pnpm lint - Format code:
pnpm format - Update documentation if needed
- Request code review
- Address review feedback
- Squash commits before merging
- Use TypeScript strict mode (no
anywithout justification) - Prefer functional components over class components
- Extract logic into custom hooks
- Keep components small and focused
- Use meaningful variable and function names
- Local-First: All data stored locally first
- Feature-Based: Organize code by feature, not by type
- Atomic Design: Component hierarchy (atoms → molecules → organisms → templates)
- Type Safety: Leverage TypeScript for runtime safety
If you have questions, please:
- Check claude.md for detailed guidelines
- Look at existing code for patterns
- Open an issue for discussion