first commit
This commit is contained in:
@@ -0,0 +1,65 @@
|
||||
# Contributing to SupportHub API
|
||||
|
||||
Thank you for contributing to SupportHub API. Please review the following guidelines before submitting changes.
|
||||
|
||||
---
|
||||
|
||||
## Branch Naming Convention
|
||||
|
||||
- `feature/<short-description>`: New domain feature or infrastructure addition
|
||||
- `bugfix/<short-description>`: Bug fix
|
||||
- `refactor/<short-description>`: Code restructuring without functional changes
|
||||
- `chore/<short-description>`: Tooling, dependency, or documentation updates
|
||||
|
||||
---
|
||||
|
||||
## Commit Message Format
|
||||
|
||||
Use Conventional Commits:
|
||||
|
||||
```text
|
||||
<type>(<scope>): <short summary>
|
||||
|
||||
[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/<group>/<module>`.
|
||||
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.
|
||||
Reference in New Issue
Block a user