---
name: exam-module
trigger: /exam-module
description: |
  Injects exam / grade / CGPA / marks business logic context.
  Run BEFORE touching any file in the Exam module.
---

# Exam Module Context

## Context
Exam data drives student grades, promotion decisions, and CGPA. Errors here have academic consequences. Protected.

## Steps
1. Inject the business logic summary
2. Remind Claude of the triple-l filename
3. Require BIZ-QC flag for formula changes

## Output

### Key files
- `app/ManageMark.php`
- `app/ManageMarkChild.php`
- `app/ExamGrade.php`
- `StudentMarksReportControlller.php` **(triple 'l' — do NOT rename)**

### Business logic
- **`manage_mark_child.parents`** = reference to `manage_mark.exam_id`. NOT the Parent model. Historical naming mistake.
- **`exam_grade`** table holds grade ranges (A+, A, B, ..., F) and pass/fail threshold.
- **CGPA formula** is in `ExamService` (planned). Protected.
- **`Department`** column in `manage_mark` uses capital D. Do NOT normalize.

### Protected
- CGPA formula
- Grade ranges
- Pass/fail threshold
- Published marks (once published, changes require BIZ-QC)

## Do NOT
- Rename `StudentMarksReportControlller.php`
- Rename `manage_mark_child.parents`
- Normalize `Department` capitalization
- Change grade ranges without BIZ-QC approval

## Example
User: `/exam-module`
Claude: Exam module context loaded. Triple-l filename noted. I will flag `[BIZ-QC-NEEDED]` on any CGPA or grade range change.
