Lewati ke isi

Documentation priority normalization

Backlog prioritas artefak dokumentasi, bukan user guide dan bukan penilaian ukuran component.

Last verified: 2026-08-08 Mode: server development Workspace root: /home/scola/odoo Frontend baseline: 0275f7061e6e892b1f860eeb825c6f6a21851888 Backend baseline: 44425cc81d8d281ec76e9336c30b3e109a7fc473 Status: Inferred from code — prioritas adalah keputusan planning yang dihitung dari bukti; fakta implementasi tetap dibedakan dari inferensi dan keputusan bisnis.

1. Tujuan dan batas

Dokumen ini mengganti prioritas recon P0–P3. Nilai lama hanya mendeteksi bentuk statis seperti mutation, form, atau ukuran component; nilai tersebut tidak dipakai sebagai input prioritas baru. Daftar workflow berasal dari docs/recon/workflow-candidates.md:18-37, sedangkan route aliases dan shared components dideduplikasi memakai docs/recon/page-relationships.md:41-206.

Prioritas di sini menjawab kapan empat jenis artefak perlu dikerjakan:

  1. workflow guide;
  2. contextual page help;
  3. field/action tooltip;
  4. troubleshooting.

D0 tidak otomatis mengizinkan penulisan. Jika surface terkena Blocker A, nilai workflow/tooltip normatif menjadi D3 — blocked, meskipun criticality bisnisnya tinggi. Warning keselamatan atau troubleshooting yang tidak mengajarkan tindakan tidak aman dapat tetap lebih tinggi.

2. Metode perhitungan

2.1 Demand score

Setiap workflow diberi skor 0–3 pada tujuh dimensi. Hasilnya adalah inferensi planning, bukan fakta produk.

Kode Faktor Bobot Pertanyaan
G importance for school go-live 3 Apakah sekolah dapat mulai beroperasi tanpa proses ini?
F frequency of use 2 Seberapa sering aktor menjalankannya?
A number of affected roles 1 Berapa banyak kelompok aktor yang terkena?
E consequence of user error 3 Seberapa besar dampak data, uang, akademik, atau keselamatan?
C workflow centrality 2 Apakah proses ini menjadi prasyarat proses lain?
S support burden 2 Seberapa mungkin proses menghasilkan tiket bantuan?
D dependencies on other modules 1 Seberapa luas downstream atau prerequisite lintas modul?

Demand = 3G + 2F + A + 3E + 2C + 2S + D, rentang 0–42.

2.2 Readiness dan risk gates

Gate Arti Dampak planning
R2 Kontrak route, permission, state, dan outcome cukup stabil Boleh masuk backlog penulisan sesuai demand
R1 Implementasi ada tetapi butuh runtime atau business confirmation terbatas Draft hanya setelah acceptance criteria verifikasi dipenuhi
R0 Defect, ownership, permission, tenant scope, atau canonical surface belum aman Workflow/tooltip normatif menjadi D3
S0 Tidak ada risiko khusus teridentifikasi Tidak ada modifier
S1 Kesalahan berkonsekuensi tinggi tetapi guard tampak tersedia Prioritaskan confirmation/warning/tooltips
S2 Security/privacy/tenant issue belum selesai Terapkan Blocker A; jangan mengajarkan behavior

Open risks yang memicu R0/S2 terdapat di docs/recon/open-questions.md:12-42. Taxonomy core versus add-on versus internal mengikuti docs/modular/product-tier-and-feature-flags.md:37-100.

2.3 Arti D0–D3 per artefak

Priority Workflow guide Contextual page help Field/action tooltip Troubleshooting
D0 Wajib untuk go-live dan siap/bersyarat jelas Dibutuhkan di titik kerja harian Field atau aksi salah pakai dapat merusak proses inti Gangguan dapat menghentikan operasi sekolah
D1 Penting untuk operasi rutin atau siklus utama Sering dipakai atau kompleks Ambigu/high-impact pada proses harian Masalah berulang dengan recovery yang dapat diajarkan
D2 Optional, musiman, atau lebih jarang Bantuan untuk add-on/halaman sekunder Penjelasan membantu tetapi tidak kritis Masalah add-on/low-frequency
D3 Tunda: blocked, legacy, duplicate, beta, placeholder, internal Tidak dipasang atau hanya deprecation notice Jangan menjelaskan kontrak yang belum stabil Hanya catatan internal/known issue sampai siap

2.4 Aturan khusus empat artefak

  • Workflow guide memerlukan actor, owner, state, reversal, permission, dan downstream outcome yang stabil.
  • Contextual help diprioritaskan oleh frekuensi, konsekuensi kesalahan, dan beban kognitif pada satu halaman; route alias tidak mendapat artikel sendiri.
  • Tooltip diprioritaskan oleh ambiguitas field, irreversibility, sensitivity, dan efek lintas modul; filter biasa bukan D0.
  • Troubleshooting diprioritaskan oleh frekuensi kegagalan, kemampuan user melakukan recovery aman, serta besarnya gangguan operasi.
  • Security risk menaikkan prioritas warning/troubleshooting, tetapi menurunkan prioritas penulisan prosedur mutasi sampai perbaikan diterima.

3. Workflow documentation priority

Skor di kolom Demand menggunakan rubric §2.1. Blocked merujuk register documentation-blockers.md; ID final harus tetap sama setelah review lintas file.

ID Workflow/surface Demand Gate Workflow Context Tooltip Troubleshoot Planning rationale and evidence
W00 Login, session, active role, apps/menu 42 R1/S1 D0 D0 D1 D0 Semua role bergantung pada akses awal. assigned_roles kini dinormalisasi di src/stores/auth.store.js:366-367 dan dibaca switcher di src/components/RoleSwitcher.vue:135-136, tetapi canonical-role dan active-role authorization masih memerlukan keputusan (docs/recon/open-questions.md:58-60). Inferred from code.
W01 Academic master to timetable 37 R1/S1 D0 D0 D0 D0 Core SC-CORE, menjadi prerequisite sesi, attendance, LMS, dan rapor (docs/recon/workflow-candidates.md:18; docs/recon/page-relationships.md:16). Ownership/locking master belum disahkan. Inferred from code.
W02 Student onboarding 39 R1/S1 D0 D0 D0 D0 Core dan downstream luas (docs/recon/workflow-candidates.md:19). Import sekarang asynchronous melalui job/status di src/views/AdminViews/StudentDatabase/UploadSiswa.vue:764-803; create/import route masih memiliki view/manage drift. Workflow manual boleh diprioritaskan, subflow import menunggu blocker permission + runtime. Inferred from code.
W03 SPMB applicant to enrolled student 26 R0/S2 D3 D2 D3 D2 School-standard add-on, bukan SC-CORE (docs/modular/product-tier-and-feature-flags.md:47-64); state/approver/enrollment belum disahkan dan config mutation/tenant scope bermasalah (docs/recon/open-questions.md:25). Public read-only help dapat direncanakan terpisah. Inferred from code.
W04 CBT exam lifecycle 29 R1/S1 D2 D1 D1 D1 Professional add-on dengan konsekuensi submit/grade tinggi; late submit, reopen, retry, dan sinkron nilai belum disahkan (docs/recon/workflow-candidates.md:21). Prioritas berlaku hanya tenant berentitlement. Inferred from code.
W05 Daily student attendance 42 R0/S2 D3 (target D0) D3 (target D0) D3 (target D0) D0 Sangat penting untuk go-live, tetapi normative workflow/help/tooltips diblokir oleh BLK-A19 first-save ACL, BLK-A20 roster integrity, BLK-A21 correction state, BLK-A22 status normalization, dan BLK-A23 proof privacy; BLK-B04/BLK-B05 menahan principal CTA dan reuse guide. Troubleshooting aman tetap D0 untuk eskalasi, tanpa menormalkan defect. Bukti pilot: pilot-attendance-plan.md §11–16 dan pilot-attendance-traceability.md W05-M04–M09/A08–A12/P10. Confirmed from code + planning gate.
W06 Employee self-attendance 27 R1/S1 D2 D1 D1 D1 Add-on, harian untuk pegawai, tetapi GPS/face/device dan correction policy belum disahkan (docs/recon/workflow-candidates.md:23). Pisahkan tegas dari W05. Inferred from code.
W07 Gradebook to report card 37 R1/S1 D1 D1 D1 D1 Siklus akademik penting dan current HEAD telah menguatkan weekly-approval guard: route registry memakai capability spesifik, controller memeriksa access/company, dan model memiliki decision helper (documentation-blockers.md NB-01; ../custom_addons_scola/gcgscola/scola_platform_support/api_route_access.py:74-76; ../custom_addons_scola/gcgscola/scola_lms/controllers/lms_weekly_approval_api.py:20-82,123-220; ../custom_addons_scola/gcgscola/scola_lms/models/weekly_teacher_report.py:258-289). D1 tetap bersyarat pada runtime UAT approver, teacher, self-approval, dan unrelated-company. Confirmed from code; Requires runtime verification.
W08 Promotion and retention 28 R0/S1 D3 D3 D3 D3 Controller memanggil helper yang tidak ada dan policy threshold butuh konfirmasi (docs/recon/open-questions.md:16; docs/recon/workflow-candidates.md:25). Blocked by defect.
W09 HR to payroll and payslip 30 R0/S2 D3 D2 D3 D2 Add-on dengan data remunerasi sensitif; view capability tampak membuka data admin terlalu luas (docs/recon/open-questions.md:18). Self-payslip read-only dapat direncanakan setelah scope runtime terbukti. Inferred from code.
W10 Billing and payment 32 R0/S2 D3 D1 D3 D1 School-standard add-on dan high-impact; config mutation serta detail scope perlu diperbaiki (docs/recon/open-questions.md:25; docs/recon/workflow-candidates.md:27). Parent read/payment-status troubleshooting dapat dipisah dari admin mutations. Inferred from code.
W11 Accounting transaction lifecycle 24 R0/S2 D3 D3 D3 D2 Professional add-on, SoD dan company scoping belum aman (docs/recon/open-questions.md:20; docs/recon/workflow-candidates.md:28). Jangan menulis langkah posting/reconcile. Inferred from code.
W12 BOS/RKAS procurement 28 R0/S2 D3 D3 D3 D2 Approval berpotensi menggandakan commitment dan attachment policy belum ada (docs/recon/open-questions.md:21; docs/recon/workflow-candidates.md:29). Inferred from code.
W13 Stock opname 20 R1/S1 D2 D1 D1 D1 Optional dan periodik, tetapi adjustment dapat mengubah stok; freeze/posting owner belum disahkan (docs/recon/workflow-candidates.md:30). Inferred from code.
W14 Library circulation 23 R0/S1 D3 D2 D3 D2 Optional; queue concurrency, lost/damaged state, dan fine posting belum stabil (docs/recon/open-questions.md:27; docs/recon/workflow-candidates.md:31). Search/catalog read-only dapat didokumentasikan terpisah. Inferred from code.
W15 Counseling and student affairs 29 R0/S2 D3 D3 D3 D2 Sensitive cases dan approval yang mengubah points/attendance belum scoped secara aman (docs/recon/open-questions.md:17,19; docs/recon/workflow-candidates.md:32). Inferred from code.
W16 News publication 26 R0/S2 D3 D3 D3 D2 Dua publication system coexist dan legacy exposure belum aman (docs/recon/open-questions.md:34-35; docs/recon/workflow-candidates.md:33). Tentukan canonical system dahulu. Inferred from code.
W17 Complaint intake and triage 23 R0/S2 D3 D3 D3 D2 Internal complaint/config API tampak terbuka ke semua authenticated users (docs/recon/open-questions.md:14; docs/recon/workflow-candidates.md:34). Public submission warning saja belum cukup untuk menutup internal risk. Inferred from code.
W18 Messaging and notification 31 R0/S2 D3 D3 D3 D1 Sering dipakai dan support-heavy, tetapi membership/company/attachment privacy belum aman (docs/recon/open-questions.md:36-37; docs/recon/workflow-candidates.md:35). Troubleshooting D1 hanya boleh memuat recovery aman, bukan scope yang belum ditegakkan. Inferred from code.
W19 Dapodik sync 23 R0/S2 D3 D3 D3 D2 Optional, jarang, tetapi destructive/cross-tenant impact tinggi dan rollback belum didefinisikan (docs/recon/open-questions.md:22; docs/recon/workflow-candidates.md:36). Inferred from code.
W20 RFID attendance ingestion 26 R0/S2 D3 D3 D3 D2 Optional extension; failed event ditandai processed dan device/card CRUD memakai read-named capability (docs/recon/open-questions.md:26; docs/recon/workflow-candidates.md:37). Inferred from code.

4. Contextual page-help priority

Route di bawah adalah canonical family; alias/shared components tidak dihitung ulang. Evidence deduplication: docs/recon/page-relationships.md:41-206.

Priority Canonical page family Included routes/components Why and gate Status
D0 Access and navigation /login, forced password flow, /apps, role switcher Entry point seluruh role; contextual help harus menjelaskan context role tanpa menjanjikan backend permission reduction. src/stores/auth.store.js:366-367; src/components/RoleSwitcher.vue:135-136. Inferred from code; active-role semantics require product decision
D0 Academic setup /academic-year, grade level, course, study group/batch, lesson hours, timetable Data ini menjadi prerequisite attendance dan domain akademik lain (docs/recon/page-relationships.md:16; API map docs/recon/page-relationships.md:777-781). Inferred from code
D0 Student master /students, /students/create, /students/import, student detail, parent linkage Go-live prerequisite; import punya progress/error complexity (src/views/AdminViews/StudentDatabase/UploadSiswa.vue:764-803). Create/import help tetap blocked sampai manage guard diterima. Inferred from code; partial Blocker A
D3 (target D0) W05 attendance input /faculty/attendance, /faculty/attendance/sheet/:id, /attendance/home, relevant admin correction page Harian dan high consequence, tetapi contextual instruction ditahan sampai acceptance BLK-A19, BLK-A20, BLK-A21, dan BLK-A22 lulus; BLK-B04 harus menyelaraskan principal/VP CTA. Shared hub alias /admin-staff/students/attendance bukan artikel terpisah (docs/recon/page-relationships.md:92,388-390). Blocked by defect; target D0 after acceptance
D3 (target D0) W05 attendance read /student/attendance, /parent/attendance, wali/admin recap canonical routes Lintas role dan support-heavy, tetapi BLK-A22 menahan semantics status dan BLK-A23 menahan raw proof/privacy payload; existing wording dibekukan oleh BLK-B05. Blocked by defect; target D0 after acceptance
D1 Core dashboards and schedules Teacher/homeroom/student/parent/admin dashboard, my schedule, class roster Membantu discovery dan prasyarat W01/W02/W05; tidak perlu mendokumentasikan setiap dashboard alias. Inferred from code
D1 Enabled add-on task pages CBT runner/proctor, LMS assignment, report-card read, fee read/payment status, self-attendance Naik ke D1 hanya bila SKU terpasang dan surface lolos readiness gate. Add-on default off di src/config/featureFlagFragments/moduleFeatureFlags.js:2-16. Confirmed from code + planning inference
D2 Optional operational pages Inventory read/report, library catalog/member read, HR personal read, SPMB public read Kurang universal atau musiman; mutation subflows mengikuti blocker masing-masing. Inferred from code
D3 Blocker-A mutation pages Approval/post/reconcile/sync/import/config pages yang terdaftar di blocker register Contextual instructions dapat mengajarkan unsafe behavior; hanya tampilkan temporary disablement/support escalation bila produk memilihnya. Inferred from code
D3 Placeholder/internal/legacy/duplicate /register, enam /lab-technician/* stub, provider/control-plane, redirects/aliases, legacy announcements Bukan supported end-user surface sampai keputusan/fix. Stub evidence docs/recon/open-questions.md:44-53. Confirmed from code; disposition requires product decision

5. Field-level tooltip priority

Tooltip harus menjelaskan konsekuensi sebelum aksi; tooltip tidak boleh menggantikan backend validation atau approval guard.

Priority Field/action family Candidate pages Required explanation Gate/evidence
D3 (target D0) Attendance date, session/batch, status H/S/I/A/Telat W05 teacher/admin input Scope record, arti status, dan tanggal efektif BLK-A20/BLK-A22; backend _line_status collapses excused ke Izin di ../custom_addons_scola/gcgscola/scola_attendance/controllers/attendance_api_mixin.py:63-73. Tooltip normatif menunggu exact-roster dan glossary acceptance.
D3 (target D0) Complete/finalize/reopen/cancel/correct attendance W05 stateful pages Irreversibility, correction window, notification outcome BLK-A21; save regular menulis langsung done tanpa correction reason/window/audit contract di ../custom_addons_scola/gcgscola/scola_attendance/controllers/attendance_api_mixin.py:4307-4334.
D3 (target D0) Izin reason, evidence file, without-proof Attendance sheet Data sensitif, siapa dapat melihat, format/batas file, pengaruh status BLK-A23; serializer memasukkan raw proof di ../custom_addons_scola/gcgscola/scola_attendance/controllers/attendance_api_mixin.py:2795-2796 dan save menerima payload proof tanpa server validation di :4323-4324.
D0 Academic year/term start/end and active status Academic setup Dependency ke jadwal/sesi, overlap, dan risiko perubahan setelah dipakai Validation inventory docs/recon/workflow-candidates.md:43; owner/lock unresolved
D0 Rombel, course, classroom Academic/student forms Bedakan kelompok belajar, tingkatan/mapel, dan ruang fisik Canonical concept rule di docs/ai-guidelines/AI_AGENT_MASTER_GUIDE.md:265-278
D0 Student import template, duplicate identity, strict/create-account/idempotency options, job outcome /students/import Record yang akan dibuat/ditautkan, retry-safe behavior, partial failure, dan error export Job calls src/views/AdminViews/StudentDatabase/UploadSiswa.vue:769-803; permission/runtime acceptance required
D0 after unblock Approve/post/publish/execute/sync/delete actions Finance, BOS, report, news, Dapodik, promotion State transition, owner, downstream, reversal, audit Currently D3/blocked; open risks docs/recon/open-questions.md:12-42
D0 after unblock Sensitive identifiers, salary, counseling notes, complaints, attachments Sensitive modules Visibility, masking, retention, export/no-screenshot policy DPO decision required; security findings docs/recon/open-questions.md:17-18,36-37
D1 Thresholds, grading rules, fee/payment config, stock adjustment, library fine Enabled add-ons Unit, default, validation range, and downstream calculation Workflow rows docs/recon/workflow-candidates.md:21,27,30-31; only after module readiness
D2 Search, sort, display-only filters, pagination, report period Read-only lists/reports Scope/filter semantics only where labels remain ambiguous Low error consequence; planning inference
D3 Stub controls, internal diagnostics, aliases Placeholder/internal/duplicate surfaces Do not author tooltip docs/recon/open-questions.md:44-53; confirmed placeholder status

6. Troubleshooting priority

Priority Problem family Safe scope of article Evidence/readiness
D0 Login, expired session, forced password, missing role/menu Identity checks, active assigned role, entitlement/module availability, admin escalation All roles; assigned-role behavior changed at current HEAD (src/stores/auth.store.js:366-367) and needs runtime regression check
D0 Academic prerequisite missing Missing year/term/batch/course/faculty/schedule; which owner must correct it W01 centrality docs/recon/workflow-candidates.md:18
D0 Student import queued/partial/failed/duplicate Job progress, safe retry/idempotency, row error handling, when not to re-upload Current async implementation src/views/AdminViews/StudentDatabase/UploadSiswa.vue:764-803; new since recon, runtime acceptance required
D0 Attendance roster/session empty Check selected date, batch enrollment, timetable/session, assignment, mode Existing generic article already covers part of this at docs/user-guide/troubleshooting/absensi.md:17-32; must be revalidated before reuse
D0 Attendance save/offline/duplicate/conflict Connection/outbox state, wait/retry rules, duplicate-safe behavior, escalation Offline queue exists in src/services/attendance/studentAttendance.service.js:4-46; backend uniqueness is in recon W05 evidence
D0 Parent/student cannot see attendance Correct linked child/student, date/mode, completed state, refresh versus missing data Existing text at docs/user-guide/troubleshooting/absensi.md:7-15 is reusable only after traceability review
D1 Enabled learning/reporting/payment workflow failure Assignment timeout, CBT submit, report visibility, payment proof/status LMS save/idempotency changed after recon; billing/report authorization gates must be cleared before prescriptive recovery
D1 Messaging/notification not delivered User-safe refresh, preference check, support escalation; do not promise retry/quiet hours Notification ownership/privacy unresolved (docs/recon/open-questions.md:36-37)
D2 Optional device/integration failures RFID/Dapodik/face/GPS operator diagnostics and escalation High consequence but module-specific; unsafe retry/sync steps remain D3 until fixed
D3 Placeholder, deprecated route, internal platform State “not supported” or redirect to canonical surface; no procedural recovery Product decision required

7. Authoring queue and dependencies

Sequence Backlog tranche Entry criteria Exit artifact
0 Resolve cross-cutting Blocker A and workshop decisions Owners accept role glossary, view/manage, tenant scope, canonical modules, state/approval glossary Updated blocker register with accepted decisions
1 W05 pilot ATT-D01–D17 diputuskan; acceptance BLK-A19, BLK-A20, BLK-A21, BLK-A22, dan BLK-A23 lulus; BLK-B04 route/CTA parity dan BLK-B05 guide reconciliation selesai; permission, tenant, privacy, dan cross-role runtime smoke diterima Seven pilot artifacts listed in pilot-attendance-plan.md
2 Core go-live set W00/W01/W02 permission and runtime baselines accepted; student-import delta verified Access/navigation, academic setup, onboarding workflow/help/tooltips/troubleshooting
3 School-standard and enabled add-ons Installed/entitled module inventory per target tenant; module-specific blockers cleared D1/D2 package-specific documentation
4 Deprecation/internal cleanup Canonical route/system decisions and redirects approved Deprecation notes; no separate guide for duplicate/internal surfaces

8. Refresh delta affecting priority

Delta after recon Planning impact Evidence Status
Role switcher restricts choices to backend assigned_roles W00 remains D0, but active-role backend authorization still needs explicit acceptance src/components/RoleSwitcher.vue:135-136; src/stores/auth.store.js:366-367 Confirmed from code; runtime semantics require verification
Curriculum/mobile menu discovery changed Do not copy 2026-08-05 screenshots/menu ordering; regenerate navigation evidence before authoring Current app fragments and src/config/apps/roleApps.js; commits cade8665, 9f424d85 Confirmed from git/code
LMS assignment save gained timeout/idempotency handling Troubleshooting can be revised only after runtime behavior is verified src/services/lms/assignment.service.js; commits 430d9e7d, 0394557c Confirmed from code; Requires runtime verification
Student import became queued job with progress polling Existing import documentation is stale; field/help/troubleshooting are D0 after permission/runtime gate src/views/AdminViews/StudentDatabase/UploadSiswa.vue:764-803; backend scola_core/models/student_import_job.py Confirmed from code; Requires runtime verification
Parent identity resolution changed across portal consumers Parent-facing attendance/read docs must reverify child linkage and multi-child selection backend scola_core/utils/portal_identity.py; commit f86b628 Confirmed from code; Requires runtime verification
W05 source history has no post-recon change Static W05 mapping remains current, but runtime data/permissions were not tested in this planning stage Latest relevant FE attendance commit predates recon; current route metadata at src/router/attendanceRoutes.js:29-198 and src/router/teacherRouteFragments/attendance.js:30-85 Confirmed from git/code; Requires runtime verification

9. Acceptance criteria for priority backlog

  • Every planned article identifies one canonical route/component family; aliases are redirects or “also reachable from”, not separate articles.
  • Every D0/D1 workflow has a traceable owner, actor, prerequisite, state, downstream effect, recovery path, and permission contract.
  • Blocker A surfaces remain D3 for normative writing until their acceptance criteria pass.
  • Optional modules carry package/entitlement scope; documentation never implies availability to every tenant.
  • Tooltip backlog identifies the backend validation or the missing business decision; copy alone is not accepted as enforcement.
  • Troubleshooting recommends only idempotent/reversible user actions; otherwise it escalates to the named owner.
  • Current route/menu/API/runtime evidence is refreshed immediately before writing, because the current delta already invalidated parts of the 2026-08-05 snapshot.