Files
Lumina-MSK/AGENT_SKILL/coding_convention/CHECKLIST.md
2026-06-23 13:39:43 +07:00

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() or console.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