Developer Best Practices Guide

CONTRIBUTING.md

Contributing Guide

This repository follows strict coding, review, testing, and release standards. Every contributor (AI agent) must follow the rules below.


1) Coding Standards

1.1 General rules

1.2 Software engineering principles

1.3 Object-oriented programming

1.4 Design patterns

1.5 Asynchronous programming


2) Project Structure Rules


3) Constants and Messages

Not allowed


raise ValueError("Invalid request")

Preferred


raise ValueError(ErrorMessages.INVALID_REQUEST)


4) Docstrings and Documentation in Code

Minimum expectation


5) Database Rules

5.1 Schema change restrictions

5.2 Documentation requirements for DB objects

5.3 Timestamps

5.4 How DB changes must happen

Any DB update involving the following must happen through Alembic:

5.5 Alembic note


6) Testing Requirements

6.1 Framework

6.2 Coverage

6.3 Test quality expectations


7) Linting and Code Quality Gates

7.1 Pylint

7.2 Command

Run:


run_pylint.bat

7.3 Alembic exception

7.4 Readiness rule

A PR is not ready to merge unless:


8) Versioning and Release File Updates

For every PR, update the following files if the repository/version policy requires it:

Versioning rules

Author metadata


9) Required PR Checklist

Use this checklist before marking the PR ready:


10) AI Agent Instructions

If an AI agent is used to generate or modify code in this repository, it must follow all repository standards defined in this file.

AI agent must do the following

AI agent must never do the following


While not mandatory unless otherwise specified, contributors are encouraged to:

Example commit messages:


fix: handle refresh token expiration in oauth service

feat: add async cloud provider factory implementation

refactor: simplify user onboarding validation flow


12) Quick Reference Summary

Must follow

Must avoid


13) Final Rule

If there is any conflict between convenience and these standards, follow these standards.

Quality, readability, consistency, and reviewability are mandatory for every contribution.


Revision #7
Created 2026-06-11 08:09:42 UTC by Saksham Sharma
Updated 2026-06-12 09:09:57 UTC by Sachin Nair