# Role Scorer

Scorer bertanggung jawab melakukan review kualitas paket dan mempublish hasil tes resmi. Role ini memastikan konten layak dipakai dan hasil peserta menjadi laporan resmi.

## Menu Utama

- Scorer Dashboard
- Review Paket
- Publish Result

## Hak Akses

- Melihat daftar paket yang perlu direview.
- Membuka workspace review paket.
- Review paket per section, group, passage, dan soal.
- Memberi status review per soal.
- Menambahkan komentar review.
- Melihat hasil ujian.
- Publish atau unpublish result.
- Membuka score report dan PDF sertifikat.

## Workflow Review Paket

```mermaid
flowchart TD
    A["Buka Scorer > Review Paket"] --> B["Pilih paket"]
    B --> C["Buka halaman review"]
    C --> D["Pilih section"]
    D --> E["Pilih group/passage"]
    E --> F["Review soal aktif"]
    F --> G["Set status per soal"]
    G --> H{"Semua layak?"}
    H -->|Ya| I["Approve/publish paket"]
    H -->|Tidak| J["Catatan revisi"]
```

## Status Review Soal

- `approved`: soal layak digunakan.
- `needs_revision`: soal perlu diperbaiki oleh author.
- `flagged`: soal perlu perhatian khusus.
- `rejected`: soal tidak layak dipakai.

## Workflow Review Listening

1. Buka paket review.
2. Pilih section Listening.
3. Pilih group Part A, Part B, atau Part C.
4. Cek audio cue, label, prompt soal, opsi, dan kunci.
5. Putar konteks audio jika tersedia.
6. Beri status dan komentar per soal.

## Workflow Review Structure

1. Pilih section Structure.
2. Cek group `Structure` dan `Written Expression`.
3. Pastikan soal nomor 1-15 cocok untuk sentence completion.
4. Pastikan soal nomor 16-40 cocok untuk error identification.
5. Periksa satu kunci jawaban yang benar.
6. Beri status review.

## Workflow Review Reading

1. Pilih section Reading.
2. Pilih passage.
3. Cek keterbacaan passage.
4. Cek jumlah soal per passage.
5. Cek tipe soal jika digunakan.
6. Pastikan opsi dan kunci jawaban benar.
7. Beri status dan komentar.

## Workflow Publish Result

```mermaid
flowchart TD
    A["Buka Scorer > Publish Result"] --> B["Cari peserta atau sesi"]
    B --> C["Review skor dan status"]
    C --> D{"Data valid?"}
    D -->|Ya| E["Publish Result"]
    D -->|Tidak| F["Tahan result dan cek ulang"]
    E --> G["Nomor sertifikat dan verification code dibuat"]
    G --> H["Score report dan PDF tersedia"]
```

## Catatan Scoring

- Skor section berasal dari raw correct yang dikonversi memakai `score_conversions`.
- Fresh install wajib memiliki conversion table inti.
- Result belum resmi sampai scorer melakukan publish.
- Certificate number disimpan permanen saat result dipublish.

## Praktik Baik

- Jangan publish result jika ada sesi yang belum jelas statusnya.
- Periksa incident proctor sebelum publish result resmi.
- Gunakan komentar review yang spesifik agar author mudah memperbaiki.
- Untuk official package, jangan mengabaikan blocker quality checklist.
