2.0 KiB
2.0 KiB
Checklist: coding_convention
Instructions: For each item below, mark whether the change complies with the rule.
Python Conventions
- File names use snake_case (e.g.,
patient_service.py) - Class names use PascalCase (e.g.,
PatientService) - Function and variable names use snake_case (e.g.,
get_patient_by_id) - Constants use UPPER_SNAKE_CASE (e.g.,
MAX_PATIENTS_PER_PAGE) - Line length does not exceed 100 characters
- Every public function, class, and module has a docstring
- Docstrings follow Google/NumPy style (Args, Returns, Side Effects)
- No
print()statements; logging is used instead - Exceptions are typed and not overly broad (avoid bare
except:) - FastAPI routers use
APIRouter(prefix=...)
TypeScript/React Conventions
- File names use snake_case (e.g.,
patient_list.tsx) - Component names use PascalCase (e.g.,
PatientList) - Hook names use
useSnakeCase(e.g.,usePatientData) - Follows Airbnb JavaScript/TypeScript style guide
- No
console.log()in production code (use proper logging)
Error Handling
- No
print()orconsole.log()for error reporting - Errors are logged at appropriate level (debug/info/warn/error)
- Custom exceptions are used where appropriate
- Exceptions are not swallowed without handling
RBAC
- Only use role constants:
RO_RADIOLOGIST,RO_THERAPIST - No hard-coded role strings in conditionals
- Role checks are centralized where possible
Configuration
- No hard-coded endpoints, API keys, or configuration values
- Configuration loaded via environment variables or secrets/
secrets/directory is properly gitignored- No secrets in code, logs, or comments
Commit Messages
- Commit message follows Conventional Commits format
- Type is one of: feat, fix, docs, style, refactor, perf, test, build, ci, chore, revert
- Scope is provided when applicable
- Subject is imperative, lowercase, no trailing period