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:
- workflow guide;
- contextual page help;
- field/action tooltip;
- 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.