Implementation Roadmap — Application Documentation and Operations Manual¶
Rencana eksekusi documentation-first. Scope utamanya adalah memperoleh kebenaran yang cukup untuk menulis manual; bukan melakukan refactor fitur atau mempromosikan release.
| Metadata | Nilai |
|---|---|
| Last reviewed | 2026-09-04 |
| Mode | Server development; documentation-first |
| Workspace | /home/scola/odoo |
| Parent contract | Release Readiness hub |
| Gate | Documentation Confidence Gates |
| Attendance development | Deferred di domain Kehadiran |
1. Prinsip eksekusi¶
- Inspect first. Telusuri route, component, service, API, controller, model, state, side effect, dan runtime sebelum menulis langkah.
- Business rule bukan inference. Perilaku code dicatat sebagai fakta teknis;
actor, approval, exception, dan recovery yang belum disahkan diberi status
REQUIRES_BUSINESS_CONFIRMATION. - Satu canonical article. Tidak ada compatibility/legacy alias baru. Artikel duplikat ditandai superseded, inbound link dipindahkan, kemudian diarsipkan.
- Per-surface readiness. Satu artikel aman dapat diterbitkan meski domain lain masih blocked. Full-catalog certification bukan prasyarat drafting.
- Backend authoritative. Menu dan route menjelaskan UX; ACL, record rule, capability, company/record scope, dan controller menentukan akses sebenarnya.
- Tenant-specific evidence. Perbedaan profile, entitlement, konfigurasi, dan version tidak digeneralisasi.
- No runtime mutation. Recon dokumentasi bersifat read-only. Bug yang ditemukan masuk backlog; perbaikan code/deploy mengikuti workflow terpisah.
- Change-protected GBN. GoldenBabyNTree bukan sandbox dokumentasi. Verifikasi menggunakan operasi read-only atau evidence aman, kecuali bugfix tersendiri telah diotorisasi.
2. Model pekerjaan¶
Setiap unit dokumentasi memakai alur berikut:
Inventory → Trace → Classify → Resolve minimum blockers → Draft → Walkthrough → Publish → Maintain
| Tahap | Output |
|---|---|
| Inventory | Daftar surface dan halaman kanonis dengan denominator tetap. |
| Trace | Peta UI/API/data/RBAC/state/downstream. |
| Classify | Fakta code/runtime/business dipisahkan dari inference/gap. |
| Resolve | Hanya blocker esensial untuk instruksi aman yang ditutup atau surface dinyatakan blocked. |
| Draft | Domain SSOT, operation manual, role/task guide, troubleshooting. |
| Walkthrough | Pengguna representatif menyelesaikan tugas pada served profile. |
| Publish | Review, link check, metadata, owner, version, dan changelog lulus. |
| Maintain | Code/product change memperbarui doc dan evidence pada perubahan yang sama. |
3. Work package dan ownership¶
| Work package | Accountable | Kontributor wajib |
|---|---|---|
| Governance/IA | Documentation Owner | Product, FE Platform, Support |
| Product/business contract | Product Owner domain | School SME, Operations, Support |
| UI/API/data trace | Engineering Owner domain | FE, BE, QA |
| RBAC/privacy | Security Owner | DPO, Engineering, Product |
| Runtime verification | QA/Release Owner | Ops, domain owner |
| Operation manual | Documentation Owner | Implementator, Support, QA |
| User guide | Documentation Owner | Role representative, UX, Support |
| Publication/maintenance | Documentation Owner | Engineering leads, Product, Ops |
Nama individu dan target date dicatat pada tracker eksekusi, bukan diasumsikan di
SSOT. Tanpa accountable reviewer, unit tetap BLOCKED.
4. D0 — Governance, denominator, dan cleanup¶
Tujuan¶
Membekukan aturan dokumentasi dan daftar sebenarnya dari artikel yang harus ada.
Pekerjaan¶
- tetapkan taxonomy: domain SSOT, architecture/API reference, operation manual, user task guide, role guide, troubleshooting, runbook, QA, audit, archive;
- buat template inventory halaman dan template operation manual sesuai README;
- inventaris semua docs aktif beserta owner, audience, last verified, status, inbound/outbound link, dan canonical replacement;
- inventaris current app/menu/route/component dari code, lalu tandai canonical, detail-only, internal, placeholder, duplicate, dan obsolete;
- rekonsiliasi tenant lifecycle: GBN protected production; Rejis/Al-Jabbar/SDN onboarding; Spansa dormant; semua sebagai full-SKU pilot/hardening scope;
- hapus
SC-NEWSdari kontrak dokumentasi dan tempatkanscola_newsdi Core; - buat obsolete-doc register. Dokumen berisiko diberi banner superseded segera;
pemindahan ke
_archive/hanya setelah inbound-link check; - hilangkan status global atau persentase yang denominator-nya tidak tetap.
Exit D0¶
- DCG-01 dan DCG-02 lulus;
- tidak ada dua artikel aktif mengklaim sebagai SSOT untuk hal yang sama;
- seluruh dokumen aktif memiliki status dan last verified;
- denominator page/article disetujui dan dapat dihitung.
5. D1 — Platform access dan tenant operations¶
Scope¶
W00 login, session, active role, app/menu/navigation, user provisioning, entitlement, company context, password/session recovery, serta tenant lifecycle.
Pekerjaan¶
- trace login/session/logout, role switch, menu filtering, route guard, backend capability, company switch, stale/expired session, dan direct API negatives;
- dokumentasikan arti role aktif tanpa menjanjikan isolasi yang tidak ditegakkan backend;
- dokumentasikan setup user, assignment, reset/revocation, dan audit;
- susun tenant bootstrap checklist, safe verification, health/log review, backup/restore boundary, dan escalation;
- susun profile appendix untuk multi-company, jenjang, timezone, entitlement, dan feature flags;
- buat runbook preservasi Spansa dan onboarding checklist Rejis/Al-Jabbar/SDN;
- audit semua petunjuk lama yang menyebut mutable deploy atau topology usang.
Exit D1¶
- admin/implementator dapat membuat user yang benar dan membuktikan effective access tanpa superadmin;
- unauthorized/foreign-company behavior diketahui dan tidak disamarkan sebagai “menu tidak muncul”;
- GBN protection dan tenant lifecycle tertulis konsisten di semua manual;
- DCG-03 sampai DCG-07 lulus untuk W00.
6. D2 — Master data dan onboarding¶
Scope¶
W01 academic master/timetable dan W02 student/parent onboarding.
Pekerjaan W01¶
- urutkan prerequisite: company/unit, tahun ajaran, semester/term, jenjang, kelas/rombel, mata pelajaran, guru, jam pelajaran, timetable/session;
- petakan create/edit/archive/activate dan dampak downstream;
- dokumentasikan validation, effective date, conflict, correction, dan safe retry;
- buat checklist awal tahun ajaran dan troubleshooting jadwal tidak muncul.
Pekerjaan W02¶
- telusuri manual create, import async yang benar-benar supported, parent link, account activation, class/rombel assignment, dan cross-company scope;
- bedakan person, student, user, parent, employee, dan enrollment identity;
- dokumentasikan duplicate/matching, partial failure, retry, correction, archive, serta data sensitif;
- buat onboarding checklist dan reconciliation report yang dapat diulang.
Exit D2¶
- satu sekolah kosong dapat dibawa ke roster-ready state dengan checklist yang dapat diverifikasi;
- setiap langkah memiliki expected state dan downstream impact;
- import/retry tidak didokumentasikan bila atomicity/recovery belum terbukti;
- DCG-03 sampai DCG-08 lulus per artikel W01/W02.
7. D3 — Operasi sekolah prioritas¶
7.1 W05 kehadiran status quo¶
- gunakan hanya capability
CURRENT_IMPLEMENTATIONpada domain SSOT; - trace per-lesson, daily, pickup/lobby, portal/rekap, correction, date/timezone, notification, privacy, dan company/record scope yang aktual;
- dokumentasikan feature flag/mode sebagai prerequisite, bukan fitur universal;
- lakukan bugfix melalui workstream engineering terpisah bila consistency, duplicate, retry, authorization, atau data-integrity failure terkonfirmasi;
- jangan memasukkan policy engine, fingerprint, SKU migration, consent, atau liveness V2 ke operation manual status quo.
7.2 W03 admissions¶
- petakan setup periode/form, pendaftar, review, decision, enrollment handoff, actor/maker-checker, correction, notification, dan rejection privacy;
- selaraskan public applicant guide, panitia manual, admin troubleshooting, dan student/fees bridge tanpa menduplikasi artikel.
7.3 W10 billing/payment¶
- petakan charge/invoice, payment, allocation, discount/scholarship bila supported, receipt, reversal/refund/correction, closing, dan accounting bridge;
- tegaskan segregation of duties, immutable references, idempotency, dan reconciliation; instruksi finansial tidak diterbitkan bila recovery ambigu.
7.4 W16 news¶
- tetapkan
scola_newssebagai satu canonical publishing surface diSC-CORE; - dokumentasikan draft/publish/audience/read/notification/expiry dan correction;
- artikel atau SKU
SC-NEWSlama dipindahkan ke superseded register tanpa alias produk.
Exit D3¶
- operasi harian prioritas memiliki domain SSOT, operation manual, role/task guide, troubleshooting, dan cross-domain handoff;
- walkthrough berhasil pada profile representatif tanpa langkah improvisasi;
- setiap unresolved risk muncul sebagai
BLOCKED/limitation, bukan instruksi.
8. D4 — Full-SKU pilot domain waves¶
Urutan dapat disesuaikan menurut tenant demand, tetapi satu domain harus mencapai exit sebelum Documentation Owner membuka terlalu banyak draft paralel.
| Wave | Domain | Manual minimum |
|---|---|---|
| D4-A | HR/payroll/staff attendance | Setup employee, contract/period, daily ops, approval/correction, payroll handoff, privacy, device/method limitations. |
| D4-B | Finance/accounting | Chart/setup, posting, approval, reconciliation, period close, correction/reversal, audit/export. |
| D4-C | LMS/CBT/report card | Setup, enrollment, content/assessment, attempt/grade, publication, correction, recovery, academic handoff. |
| D4-D | Student services | Counseling, discipline, leave, extracurricular/alumni where actually supported; privacy and restricted records. |
| D4-E | Library/inventory/operations | Catalog/master, transaction, stock/circulation, correction, count/close, device/barcode boundary. |
| D4-F | Foundation/governance/integration | Cross-unit scope, read vs mutation, analytics freshness, Dapodik/BOS controlled-pilot limits, reconciliation/escalation. |
Setiap wave:
- membekukan denominator surface;
- menjalankan inventory/trace/classification;
- menutup blocker minimum atau mengecualikan artikel dengan status jelas;
- menghasilkan domain SSOT + operation manual + task/role guide;
- menjalankan role/company/privacy/error walkthrough;
- mencatat accepted denominator dan blocked remainder.
Exit D4¶
Semua full-SKU pilot surface memiliki disposition: PUBLISHED,
INTERNAL_ONLY, CONTROLLED_PILOT, BLOCKED, atau OBSOLETE. Tidak ada surface
aktif tanpa owner dan status dokumentasi.
9. D5 — Manual end-to-end dan cross-domain¶
Dokumen domain saja belum cukup untuk operasi sekolah. Susun runbook lintas domain:
- bootstrap tenant hingga go-live;
- awal tahun ajaran dan kenaikan periode;
- penerimaan → student/parent identity → billing → roster;
- timetable → kehadiran → penilaian → rapor;
- employee onboarding → attendance → payroll;
- payment → accounting reconciliation → period close;
- daily/weekly/monthly operational checklist;
- user access review dan entitlement review;
- backup, restore drill, rollback, incident triage, escalation, dan evidence collection;
- dormant-tenant preservation/reactivation;
- feature activation/deactivation tanpa penghapusan data.
Setiap handoff menetapkan producer, artifact/state, consumer, failure visibility, reconciliation, recovery owner, dan SLA/escalation. Jangan membuat handoff bisnis yang tidak ada hanya karena model teknis saling terhubung.
Exit D5¶
- operator dapat menyelesaikan lifecycle utama tanpa berpindah ke dokumen historis atau meminta langkah tribal knowledge;
- setiap critical handoff memiliki reconciliation dan recovery;
- GBN/onboarding/dormant tenant runbook terpisah dan tidak saling tertukar.
10. D6 — Acceptance, publication, dan discoverability¶
Pemeriksaan otomatis¶
- Markdown/link/anchor validation;
- duplicate title/canonical article detection;
- required metadata/schema validation;
- route/path/API reference validation terhadap inventory;
- forbidden terms/stale SKU/obsolete hostname scan;
- secret/PII scan pada screenshot, example, dan evidence;
- orphan and inbound-link check sebelum archive.
Walkthrough manusia¶
- role representative mengikuti artikel dari clean session;
- implementator melakukan setup pada fixture/profile yang disebut;
- Support menjalankan error/recovery/escalation scenario;
- QA membandingkan UI, API outcome, state, dan downstream impact;
- Security/DPO mereview artikel sensitif;
- Documentation Owner menguji bahasa, search, related links, dan accessibility.
Publication rules¶
- artikel menyebut audience, scope, prerequisites, last verified, version/profile, owner, serta limitation;
- screenshot tidak menjadi satu-satunya petunjuk dan tidak membawa data nyata;
- artikel blocked tidak masuk navigasi pengguna sebagai alur siap pakai;
- archive tidak muncul di search/help utama;
- changelog menyebut artikel yang ditambah, diganti, atau ditarik.
Exit D6¶
- DCG-01 sampai DCG-08 lulus untuk denominator program;
- broken link, duplicate canonical, dan unlabelled obsolete document = 0;
- walkthrough pass/required = 100%,
0 FAIL,0 SKIP; prerequisite mismatch menghasilkanBLOCKED, bukan PASS.
11. Prioritas perbaikan bug yang ditemukan saat dokumentasi¶
Program dokumentasi tidak memperbaiki code secara diam-diam. Temuan ditangani:
| Kelas | Tindakan dokumentasi | Tindakan engineering |
|---|---|---|
| Security/privacy/cross-tenant/data loss | Hentikan artikel dan tandai BLOCKED. |
Containment dan fix prioritas tertinggi, lalu re-verification. |
| Workflow tidak dapat selesai/recover | Jangan terbitkan instruksi seolah aman. | Reproduce, fix, regression, runtime rebind. |
| UI/API/state inconsistency | Catat fakta dan affected articles. | Satu canonical behavior, test, lalu doc sync. |
| Cosmetic/minor wording | Boleh lanjut bila tidak menyesatkan. | Backlog dengan owner; perbaiki bersama doc bila murah/aman. |
| Future attendance architecture | Tetap di plan deferred. | Tidak dikerjakan sampai tranche tersendiri diotorisasi. |
12. Tracking dan pelaporan¶
Progress dilaporkan per wave/domain dengan denominator eksplisit:
| Metrik | Rumus |
|---|---|
| Inventory coverage | page records accepted / canonical pages required |
| Trace coverage | fully traced pages / inventory accepted |
| Draft coverage | articles drafted / articles required |
| Publish coverage | articles accepted / articles required |
| Walkthrough coverage | passed required cases / required cases |
| Open blockers | jumlah per severity dan affected article |
| Staleness | artikel melewati review date / artikel published |
Laporan tidak boleh menggabungkan PASS historis dari FE/BE/DB/tenant berbeda. Release identity hanya dicantumkan ketika relevan dengan runtime verification; branch HEAD tidak disebut production hanya karena lebih baru.
13. Definition of done per artikel¶
Satu artikel selesai jika:
- memiliki satu canonical location dan tidak menduplikasi artikel aktif lain;
- seluruh langkah cocok dengan current route/DOM dan backend behavior;
- actor/capability/scope serta prerequisite benar;
- expected outcome, downstream effect, error, safe retry, correction/recovery, dan escalation dijelaskan;
- fakta code/runtime/business dapat ditelusuri;
- limitation dan tenant/profile boundary eksplisit;
- link, glossary, metadata, privacy, dan accessibility review lulus;
- walkthrough oleh audience representatif lulus tanpa improvisasi;
- owner dan next review date ditetapkan.
14. Definition of done keseluruhan¶
Program selesai saat seluruh denominator D0–D6 memiliki disposition final, semua
artikel PUBLISHED memenuhi §13, seluruh BLOCKED surface dikeluarkan dari janji
operasional, dan maintenance rule membuat dokumentasi ikut berubah bersama produk.
Production release tetap memerlukan quality gate dan authorization tersendiri.