# Contributing to ABE Thank you for your interest in contributing to ABE! ## Development Setup 1. Fork and clone the repository 2. Install dependencies: `npm install && cd frontend && npm install` 3. Run migrations: `npm run db:migrate` 4. Start dev servers: `npm run dev` + `cd frontend && npm run dev` ## Architecture Rules Before submitting a PR, ensure your code follows these rules: 1. **Domain layer** — No imports from `kysely`, `express`, `playwright` or any infrastructure 2. **Cross-module communication** — Only via EventBus (no direct module imports) 3. **Use cases** — Must return `Result`, never throw business errors 4. **No `any`** — All new code must have explicit TypeScript types ## Making Changes 1. Create a feature branch from `main` 2. Write tests for new functionality 3. Run the full verification: `npm run build && cd frontend && npm run build && cd .. && npm run test` 4. Submit a pull request ## Commit Messages Follow the pattern: `feat(module): description` or `fix(module): description` ## Reporting Issues Please use [GitHub Issues](https://github.com/your-org/abe/issues) with: - Steps to reproduce - Expected vs actual behavior - ABE version and Node.js version