# Contributing to SupportHub API Thank you for contributing to SupportHub API. Please review the following guidelines before submitting changes. --- ## Branch Naming Convention - `feature/`: New domain feature or infrastructure addition - `bugfix/`: Bug fix - `refactor/`: Code restructuring without functional changes - `chore/`: Tooling, dependency, or documentation updates --- ## Commit Message Format Use Conventional Commits: ```text (): [optional body] ``` Examples: - `feat(ticketing): add ticket priority calculator strategy` - `fix(queue): resolve BullMQ connection leak on shutdown` - `chore(deps): update fastify to 4.26.2` --- ## Architecture Rules 1. **Self-Contained Modules**: Every domain feature belongs in `src/modules//`. 2. **Public Boundary**: Expose public domain interfaces strictly via `index.ts`. Deep cross-module imports are prohibited. 3. **Layer Isolation**: - `HTTP Route / Controller` -> Calls `Service` - `Service` -> Calls `Repository` / `Engine` - `Repository` -> Calls `PrismaClient` / `Database` - Controllers **MUST NOT** directly query Prisma. 4. **Architecture Check**: Run `npm run architecture:check` before committing. --- ## Code Quality & Verification Gates Before submitting a Pull Request, all of the following local commands must pass: ```bash npm run typecheck npm run architecture:check npm run lint npm run format:check npm run test npm run build ``` --- ## Pull Request Guidelines 1. Create a PR against `main`. 2. Provide a clear description of changes and design decisions. 3. Ensure CI pipeline checks pass completely.