.cursor/skills/nazim-class-subjects/SKILL.md
Enforces the two-step subject assignment workflow for Nazim academic features. Use when building exams, grades, attendance, timetables, or any feature that needs subjects for a class. Covers class_subject_templates vs class_subjects, class_academic_year_id filtering.
npx skillsauth add AHMADJAN-New/nazim-web nazim-class-subjectsInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
The app uses a two-step subject assignment workflow. Academic features must use class_subjects, not subjects directly.
class_subject_templatesclass_subjects| Feature | Use | Do NOT Use |
|---------|-----|------------|
| Exams | Subjects from class_subjects | subjects directly |
| Grades/Assessments | Link to class_subjects | subjects |
| Attendance | Per class_subjects | Per subjects |
| Timetables | Build from class_subjects | subjects |
| Reports | Based on class_subjects | subjects |
// ✅ CORRECT: Get subjects for a class academic year
const { data: classSubjects } = useClassSubjects(classAcademicYearId, organizationId);
// ❌ WRONG: All subjects without class context
const { data: subjects } = useSubjects(organizationId);
class_subjects for academic-year featuresclass_academic_year_idclass_subject_templates before Step 2 assignmentsubjects without class_subjectsBefore allowing assignment in Step 2: subject must exist in class_subject_templates for that class.
tools
Toast notifications for Nazim. Use when showing success/error/info messages. ALWAYS use showToast from @/lib/toast with translation keys; never toast from sonner directly. RTL positioning is automatic.
tools
Enforces status badge patterns for Nazim UI. Use when displaying status in tables, cards, or dialogs. Covers Badge variants, semantic colors, statusBadgeVariant, statusOptions with color.
development
Enforces mobile-first responsive patterns for Nazim UI. Use when building pages, tables, forms, charts, or buttons. Covers page container, FilterPanel, tabs, grids, tables, charts, cards, buttons.
development
PDF and Excel report generation for Nazim. Use when adding or changing reports. Backend uses ReportService and ReportConfig; frontend uses useServerReport. Covers branding, DateConversionService, RTL, acceptance criteria.