From bb184e95f697fe887a0fb3ce02bca7449d9c1e83 Mon Sep 17 00:00:00 2001 From: ysmn <115535709+man612@users.noreply.github.com> Date: Thu, 3 Sep 2026 15:43:50 +0700 Subject: [PATCH 01/24] Refine README voice and project story --- README.md | 262 +++++++++++++++++++----------------------------------- 1 file changed, 90 insertions(+), 172 deletions(-) diff --git a/README.md b/README.md index 90e26ed..2c518af 100644 --- a/README.md +++ b/README.md @@ -1,11 +1,11 @@

- Ramu — structured AI learning workspace untuk ChatGPT Projects - Ramu — structured AI learning workspace untuk ChatGPT Projects + Ramu — workspace belajar terstruktur untuk ChatGPT Projects + Ramu — workspace belajar terstruktur untuk ChatGPT Projects

- Structured AI learning workspace untuk ChatGPT Projects.
- Source grounding, learning guardrails, context isolation, source governance, dan eval yang dapat diperiksa ulang. + Workspace belajar terstruktur untuk ChatGPT Projects.
+ Satu mata kuliah, satu Project, dengan konteks, sumber, dan pola bantuan yang tetap rapi dari waktu ke waktu.

@@ -27,68 +27,39 @@ --- -## Ramu itu apa? +## Tentang Ramu -Ramu adalah **framework workspace belajar untuk ChatGPT Projects**. Satu mata kuliah ditempatkan di satu Project yang memiliki Project Instructions, course pack, source yang sesuai, dan guardrail belajar. +Ramu menyiapkan satu ChatGPT Project untuk setiap mata kuliah. Project Instructions mengatur perilaku dasar, course pack memberi konteks mata kuliah, dan source registry membantu menjaga rujukan yang berubah dari waktu ke waktu. -Ramu bukan model AI, bukan LMS, bukan backend yang menerima file mahasiswa, dan bukan kumpulan jawaban tugas. Website Ramu bersifat statis; materi pribadi tetap ditambahkan pengguna langsung ke ChatGPT Project masing-masing. +Tujuannya sederhana: saat sebuah mata kuliah dipakai berbulan-bulan, konteksnya tidak perlu dibangun ulang setiap chat, materi lama tidak mudah bercampur dengan aturan terbaru, dan bantuan AI tetap mengikuti kebutuhan belajar atau tugas yang sedang dikerjakan. -> Nama **Ramu** berasal dari kata *meramu*: menyatukan konteks, sumber, materi, aturan belajar, dan pemeriksaan menjadi ruang belajar yang siap dipakai. +> Nama **Ramu** berasal dari kata *meramu*: menyatukan konteks, sumber, materi, aturan belajar, dan pemeriksaan menjadi satu ruang belajar yang siap dipakai. -## Kenapa tidak cukup chat biasa? +### Berawal dari kebutuhan nyata -AI sudah mampu menjelaskan materi, tetapi workspace kuliah yang berjalan lama memiliki masalah lain: konteks antarmata kuliah bisa bercampur, aturan tugas terlupa, source lama dipakai seolah terbaru, versi course pack konflik, atau AI terlalu cepat memberi jawaban akhir. +Ramu awalnya saya buat untuk membantu seseorang yang dekat dengan saya, yang saat itu sudah masuk Semester 2. Karena kebutuhan belajarnya dimulai dari sana, Semester 2 menjadi pack pertama yang benar-benar dipakai. Setelah fondasinya cukup matang, periode lain mulai dilengkapi supaya perjalanan akademiknya bisa ditelusuri dengan lebih rapi. -Ramu menjaga lima lapisan: +Karena itu, urutan pack di katalog mengikuti **urutan akademik**, bukan urutan kapan pack tersebut dibuat. Sejarah pengembangannya bisa berbeda dengan urutan semester, dan itu memang wajar untuk proyek yang tumbuh dari kebutuhan nyata. -| Lapisan | Yang dijaga | -|---|---| -| **Referensi** | otoritas source, canonical source, tanggal verifikasi, freshness | -| **Instruksi** | aturan kampus/tutor/rubrik, integritas, prompt-injection boundary | -| **Zona konteks** | mata kuliah dan learner state tidak tercampur | -| **Materi** | BMP/materi/screenshot/PDF dipakai sebagai content, bukan instruksi liar | -| **Asesmen** | bantuan bertahap, checking, review queue, behavior contract | - -## Multi-pack yang benar-benar dipakai - -Pack pertama Ramu adalah **Universitas Terbuka · S1 Akuntansi · Semester 2 · 2026/2027**. Semester 3 sekarang menjadi **real second pack** pertama yang menggunakan discovery, source governance, site, dan validation matrix yang sama tanpa hardcode path baru. - -```text -packs/ -├── index.json -├── universitas-terbuka/ -│ ├── source-registry.json -│ ├── evals/ # rule reusable untuk semua pack UT -│ └── s1-akuntansi/ -│ └── 2026-2027/ -│ ├── semester-02/ -│ └── semester-03/ -└── institusi-lain/ # ketika ada pack yang layak ditambahkan -``` +## Cara kerjanya -[`packs/index.json`](packs/index.json) adalah katalog machine-readable. Setiap entry menunjuk `manifest.json` pack. Validator, GitHub Pages, Manual Eval Kit, dan Behavior Evals menemukan pack melalui katalog/manifest—bukan melalui path Semester 2/3 yang ditulis di source code. +Satu mata kuliah ditempatkan di satu Project. Di dalamnya ada beberapa lapisan yang punya tugas berbeda: -Pack membedakan dua hal: - -- `maintainer: ramu` → **Ramu Maintained**; -- `maintainer: community` → **Community maintained**. - -Istilah “maintained” dipakai agar tidak memberi kesan pack tersebut resmi diterbitkan universitas. Ramu tetap proyek independen. - -### Periode akademik yang tidak mengunci “semester” - -Manifest/katalog punya dua metadata periode yang sengaja dipisahkan: - -- `period_id` → identifier machine-safe dan stabil, misalnya `semester-02`, `semester-03`, `trimester-01`, atau `term-fall`; -- `period_label` → label yang benar-benar ditampilkan ke manusia, misalnya `Semester 2`, `Semester 3`, `Trimester 1`, atau `Fall Term`. +| Bagian | Fungsinya | +|---|---| +| **Project Instructions** | aturan dasar saat AI membantu belajar atau mengerjakan tugas | +| **Course pack** | konteks, karakter materi, workflow, dan pemeriksaan khusus mata kuliah | +| **Project Sources** | BMP, materi tutor, rubrik, screenshot, atau file lain yang memang dibutuhkan | +| **Source registry** | mencatat sumber resmi, fungsi sumber, tanggal review, dan konflik yang perlu diawasi | +| **Behavior eval** | menyimpan failure mode penting supaya perubahan prompt/pack bisa diuji ulang | -Ramu **tidak memiliki field universal bernama `semester`**. Semester hanyalah salah satu bentuk academic period. Pack UT saat ini memakai `semester-02` dan `semester-03`; institusi yang memakai trimester, quarter, term, summer session, atau struktur lain tidak perlu dipaksa ke konsep semester. +Website hanya membantu memilih pack, menyalin instruksi, dan mengunduh course pack. File kuliah pribadi tetap masuk langsung ke ChatGPT Project pengguna. -Nama Project harus diawali `period_label`, misalnya `Semester 3 • AKM II`, **bukan** `S3 • AKM II`. Singkatan `S2`/`S3` mudah dibaca sebagai jenjang pendidikan. Identifier internal seperti `.s2`, `.s3`, folder `semester-03/`, atau versi `2026-2027.s3.1` tetap boleh ringkas karena itu identity mesin, bukan label pengguna. +## Pack yang tersedia -## Paket yang tersedia sekarang +Saat ini ada dua pack aktif untuk **Universitas Terbuka · S1 Akuntansi · 2026/2027**. -### UT S1 Akuntansi 2026/2027 — Semester 2 +### Semester 2 — 16 SKS | Project | Mata kuliah | SKS | |---|---|---:| @@ -98,9 +69,9 @@ Nama Project harus diawali `period_label`, misalnya `Semester 3 • AKM II`, **b | `Semester 2 • Ekonomi Mikro` | ECON4102 Pengantar Ekonomi Mikro | 3 | | `Semester 2 • Manajemen` | EMBS4101 Manajemen | 4 | -Total **16 SKS**. Manifest: [`semester-02/manifest.json`](packs/universitas-terbuka/s1-akuntansi/2026-2027/semester-02/manifest.json). +Manifest: [`semester-02/manifest.json`](packs/universitas-terbuka/s1-akuntansi/2026-2027/semester-02/manifest.json) -### UT S1 Akuntansi 2026/2027 — Semester 3 +### Semester 3 — 20 SKS | Project | Mata kuliah | SKS | |---|---|---:| @@ -112,29 +83,56 @@ Total **16 SKS**. Manifest: [`semester-02/manifest.json`](packs/universitas-terb | `Semester 3 • AKM II` | EACC4205 Akuntansi Keuangan Menengah II | 3 | | `Semester 3 • Belajar di Era Digital` | MKDI4202 Belajar di Era Digital | 3 | -Total **20 SKS**. Manifest: [`semester-03/manifest.json`](packs/universitas-terbuka/s1-akuntansi/2026-2027/semester-03/manifest.json). - -Semester 3 diverifikasi ulang terhadap **Katalog Kurikulum UT 2026/2027 edisi Juli 2026**, Pedoman Sistem Penyelenggaraan 2026/2027, dan halaman BMP aktif. Pack tidak menyalin metadata lama secara otomatis: AKM II current sudah memakai `EACC4205` baru dan BP/BPro, bukan metadata historis `EKMA4313`. +Manifest: [`semester-03/manifest.json`](packs/universitas-terbuka/s1-akuntansi/2026-2027/semester-03/manifest.json) -Source UT pusat berada di registry institusi. Semester 3 juga mempunyai registry pack sendiri untuk halaman BMP dan claim yang memang spesifik pada periodenya. Materi kuliah berhak cipta tidak disalin ke repository. +Semester 3 direview ulang terhadap Katalog Kurikulum UT 2026/2027 edisi Juli 2026, Pedoman Sistem Penyelenggaraan 2026/2027, dan halaman BMP aktif. Review ini penting karena beberapa metadata sudah berbeda dari tahun sebelumnya, terutama AKM II yang sekarang memakai `EACC4205` dan berstatus BP/BPro. ## Mulai dari satu mata kuliah -Tidak perlu setup seluruh periode untuk mencoba Ramu. +Tidak perlu menyiapkan satu semester sekaligus. 1. buka [site Ramu](https://man612.github.io/ramu/); 2. pilih pack yang sesuai; 3. pilih satu mata kuliah; -4. buat ChatGPT Project dengan nama yang diberikan manifest; -5. pasang Project Instructions melalui Project settings; -6. unggah satu course pack melalui Sources; -7. mulai belajar seperti biasa. +4. buat ChatGPT Project dengan nama yang ditampilkan; +5. pasang Project Instructions; +6. unggah course pack sebagai Project Source; +7. mulai gunakan Project tersebut. -Kalau satu Project terasa berguna, baru tambahkan Project lain. Progress setup disimpan lokal di browser berdasarkan `pack id`, bukan dikirim ke server Ramu. +Kalau pola ini terasa berguna, baru tambahkan mata kuliah lain. Progress setup di website disimpan lokal di browser berdasarkan `pack id`. -## Composable eval suites +Panduan lengkap: [`docs/PANDUAN-SETUP-CHATGPT.md`](docs/PANDUAN-SETUP-CHATGPT.md). -Ramu tidak lagi menganggap eval hanya terdiri dari `core + pack`. Setiap manifest menyusun ordered `eval_suites` dari aturan paling umum menuju paling spesifik: +## Struktur pack + +`packs/index.json` menjadi katalog utama. Setiap entry menunjuk ke `manifest.json`, lalu manifest menghubungkan course pack, source registry, Project Instructions, dan eval suite yang diperlukan. + +```text +packs/ +├── index.json +└── universitas-terbuka/ + ├── source-registry.json + ├── evals/ + └── s1-akuntansi/ + └── 2026-2027/ + ├── semester-02/ + └── semester-03/ +``` + +Tooling membaca katalog dan manifest, jadi penambahan pack tidak membutuhkan daftar semester yang di-hardcode ke validator atau website. + +Periode akademik memakai dua field: + +- `period_id` untuk identity mesin, misalnya `semester-03` atau `term-fall`; +- `period_label` untuk label pengguna, misalnya `Semester 3` atau `Fall Term`. + +Dengan model ini, struktur yang sama tetap bisa dipakai institusi yang menggunakan trimester, quarter, term, atau sistem periode lain. + +Nama Project memakai `period_label` lengkap, misalnya `Semester 3 • AKM II`. Bentuk `S2`/`S3` dihindari pada UI karena mudah terbaca sebagai jenjang pendidikan; singkatan tetap dipakai pada ID internal seperti `.s3` atau versi `2026-2027.s3.1`. + +## Eval yang bisa dikomposisi + +Setiap pack menyusun eval dari aturan paling umum ke yang paling spesifik: ```text core @@ -146,36 +144,22 @@ program (opsional) pack ``` -Dua pack UT yang tersedia saat ini mempunyai wiring: +Pack UT yang aktif saat ini memakai: ```text core → universitas-terbuka → semester-02 core → universitas-terbuka → semester-03 ``` -**Core eval** menangkap failure mode lintas seluruh Ramu: data yang hilang, sitasi palsu, integritas tugas, retrieval practice, learner state, source freshness, prompt injection, dan konflik versi pack. - -**Institution eval** menangkap perilaku yang berlaku untuk banyak pack pada institusi yang sama. E14, misalnya, menguji konflik source pusat vs regional berdasarkan source registry Universitas Terbuka. Case ini period-neutral dan berada di `packs/universitas-terbuka/evals/`, bukan dicopy ke setiap semester. - -**Program eval** disediakan untuk aturan yang suatu hari berlaku lintas periode pada satu program tetapi tidak otomatis berlaku ke program lain. Scope ini belum diperlukan oleh pack yang tersedia sekarang. +`core` memuat failure mode yang berlaku luas, misalnya sitasi palsu, prompt injection, context leak, source freshness, learner state, dan academic integrity. Suite institusi menyimpan aturan yang memang khas UT, seperti konflik katalog pusat dengan halaman regional. Skenario yang hanya masuk akal untuk mata kuliah/periode tertentu tetap berada dekat pack-nya. -**Pack eval** menyimpan skenario yang benar-benar membutuhkan course/periode tertentu. Semester 2 memiliki case seperti aturan pajak vs BMP dan jurnal AKM I. Semester 3 menambahkan E17–E24 untuk tax-currentness, AKM II old-vs-current metadata, continuity kasus PRATON, SIA requirement/control, relevant cost, business evidence, language tutoring, dan uncertainty policy GenAI. +Validator memastikan urutan suite benar, identity antardokumen cocok, dan ID regression case tidak saling menimpa. -Suite yang lebih spesifik boleh mengubah default runtime behavior eval, tetapi **ID case tidak boleh mengganti/menimpa case suite sebelumnya**. Validator mewajibkan core pertama, pack terakhir, urutan scope tidak boleh mundur, dan ID case harus unik setelah seluruh suite digabung. +Detail: [`evals/README.md`](evals/README.md). -Detail format: [`evals/README.md`](evals/README.md). +## Validasi -## Tidak punya API tetap bisa diuji - -Ramu memiliki tiga lapisan validation: - -| Jalur | API? | Fungsi | -|---|---:|---| -| **Static CI** | tidak | manifest, pack catalog, period metadata, display naming, source registry, eval-suite wiring, contract marker, site wiring | -| **Manual Behavior Validation** | tidak | menjalankan case langsung di ChatGPT Projects asli | -| **Automated Behavior Eval** | ya, opsional | regression/benchmark melalui Responses API + model judge | - -Static validation lokal: +Sebagian besar pemeriksaan bisa dijalankan tanpa OpenAI API. ```bash python scripts/validate_repo.py @@ -186,111 +170,45 @@ python scripts/run_behavior_evals.py --dry-run \ --pack id.ut.accounting-s1.2026-2027.s3 ``` -Membuat checklist manual tanpa API: +Manual Eval Kit menghasilkan checklist untuk pengujian langsung di ChatGPT Projects: ```bash python scripts/prepare_manual_eval.py \ --pack id.ut.accounting-s1.2026-2027.s3 ``` -Atau gunakan **Actions → Manual Eval Kit**. Workflow tersebut tidak membutuhkan secret dan menghasilkan checklist dari seluruh eval suite yang dideklarasikan pack. Checklist juga mencatat suite asal tiap case agar failure dapat diperbaiki pada scope yang benar. - -Automated API eval tetap tersedia bila suatu saat API digunakan: - -```bash -python scripts/run_behavior_evals.py \ - --pack id.ut.accounting-s1.2026-2027.s3 \ - --candidate-model \ - --grader-model -``` - -Ramu sengaja tidak mengunci nama model permanen. - -## Source governance - -Registry source berscope: - -```text -sources/registry.json global/runtime -packs//source-registry.json institusi -packs/////source-registry.json pack bila diperlukan -``` - -Setiap pack menyebut `source_registries` yang menjadi dependency-nya. Source mempunyai `authority`, `canonical_for`, `verified_at`, `review_interval_days`, `watch`, dan `status`. - -Source Watch mencari seluruh registry tersebut. URL yang hidup bukan bukti fakta masih terbaru; URL yang gagal juga bukan bukti fakta berubah. Update `verified_at` harus mengikuti review manusia. +Automated behavior eval melalui API tetap tersedia sebagai QA tambahan, tetapi tidak menjadi syarat untuk memakai Ramu atau menjalankan static CI. -## CI yang tumbuh bersama jumlah pack +## Sumber dan perubahan yang perlu diawasi -`Validate Ramu` memiliki dua tahap utama: +Registry source dapat hidup di scope global, institusi, program, atau pack. Setiap entry mencatat antara lain `authority`, `canonical_for`, `verified_at`, `review_interval_days`, `watch`, dan `status`. -1. validasi katalog/manifest/period metadata/display name/source/site secara keseluruhan; -2. matrix dry-run untuk **setiap pack** di `packs/index.json`. +Source Watch memeriksa umur review dan reachability URL. URL yang masih hidup tidak otomatis berarti isinya masih benar; sebaliknya, URL yang gagal dibuka juga belum membuktikan faktanya berubah. Tanggal verifikasi baru diperbarui setelah sumbernya benar-benar direview. -Job akhir selalu bernama **`validate`**, sehingga branch protection dapat memakai satu required status check walaupun jumlah pack bertambah. Penambahan Semester 3 harus menghasilkan matrix job kedua secara otomatis; workflow tidak diberi path S3 khusus. - -Validator memastikan `period_id` machine-safe dan sama antara katalog/manifest, setiap `project_name` diawali ` • `, serta site generic tidak kembali membentuk label `Semester ...` dari field khusus semester. Validator eval memastikan suite mengikuti urutan `core → institution → program → pack`, metadata suite cocok dengan file contracts/behavior, dan tidak ada ID regression case yang saling menimpa. - -Dependency GitHub Actions dipin ke full commit SHA agar tag dependency tidak menjadi bagian supply-chain yang dapat bergerak diam-diam. +Detail pendekatan ini ada di [`docs/SUMBER-DAN-VALIDASI.md`](docs/SUMBER-DAN-VALIDASI.md). ## Status pack -- `source-verified` — source utama sudah diperiksa, behavior belum diklaim penuh; -- `verified` — source + behavior validation relevan telah direview sesuai standar release saat itu; +- `source-verified` — sumber utama sudah diperiksa; behavior belum diklaim selesai sepenuhnya; +- `verified` — source dan behavior validation yang relevan sudah direview; - `community` — kontribusi komunitas yang belum mencapai status maintained/verified; -- `experimental` — masih diuji; -- `deprecated` — tidak direkomendasikan untuk penggunaan baru. - -Status `verified` tetap snapshot terhadap **pack version + contract version + tanggal + runtime/product/model yang diuji**, bukan jaminan AI selalu benar. - -## Prompt injection +- `experimental` — masih dalam tahap pengujian; +- `deprecated` — sudah digantikan atau tidak lagi direkomendasikan untuk penggunaan baru. -Project Source, PDF, web, screenshot, dan metadata diperlakukan sebagai **content**, bukan otomatis sebagai instruksi yang boleh menimpa Project Instructions. Ramu memiliki contract/eval untuk source injection, tetapi tidak mengklaim “prompt-injection proof”. Failure baru yang ditemukan pengguna sebaiknya diubah menjadi regression case. - -## Struktur repository - -```text -ramu/ -├── core/ prinsip universal -├── protocols/ belajar, tugas, review, latihan -├── learning/ learner-state contracts/templates -├── packs/ catalog + institusi/program/periode/course pack + scoped eval -├── sources/ source global + freshness policy -├── evals/ core eval, manual tooling docs, results ignored -├── schemas/ kontrak katalog/manifest/registry/contracts/behavior eval -├── scripts/ discovery, validator, freshness, eval runner -├── docs/ riset, arah proyek, validasi, pilot, release process -├── site/ GitHub Pages catalog-driven -└── .github/ CI, manual/API eval, source watch, Pages -``` +Status tersebut adalah snapshot terhadap versi pack, tanggal, dan environment yang diuji. Ia bukan jaminan bahwa model AI akan selalu menghasilkan jawaban yang benar. -## Menambah periode / program / universitas lain +## Batas proyek -Prinsipnya bukan mengedit `app.js` atau validator. Buat pack + manifest + source yang relevan, tentukan `period_id` + `period_label`, pilih reusable eval suite yang memang berlaku, tambahkan suite pack-nya, lalu daftarkan ke `packs/index.json`. Semester 3 UT sekarang menjadi contoh nyata bahwa pack kedua dapat masuk lewat mekanisme tersebut; sistem kalender lain tetap menggunakan metadata periode mereka sendiri. Panduan contributor ada di [`CONTRIBUTING.md`](CONTRIBUTING.md). +Ramu fokus pada konfigurasi workspace belajar dan cara mengujinya. Ia tidak ditujukan untuk menyimpan bank jawaban tugas, menggantikan LMS kampus, menyalin materi berhak cipta, atau menjanjikan model AI kebal terhadap error dan prompt injection. -Validator akan menolak manifest yang tidak terdaftar, entry katalog yang menunjuk file hilang, `period_id` tidak valid/berbeda dengan manifest, ID source/eval duplikat, course yang tidak self-describing, wiring suite yang tidak lengkap/urutannya salah, atau nama Project yang tidak sesuai label periode pack. +Pack `maintainer: ramu` berarti pack tersebut dipelihara di repository utama. Istilah itu tidak berarti pack diterbitkan atau disahkan oleh universitas. Proyek ini independen dari Universitas Terbuka, institusi pendidikan lain, dan OpenAI. -## Landasan dan batas klaim +## Berkontribusi -Desain belajar Ramu mengambil inspirasi dari riset active learning, tutoring, self-regulated learning, retrieval practice, dan guardrails penggunaan generative AI. Referensi dan batas interpretasinya ada di [`docs/LANDASAN-PEMBELAJARAN.md`](docs/LANDASAN-PEMBELAJARAN.md). +Issue dan PR terbuka untuk bug, source yang berubah, perbaikan dokumentasi, eval baru, tooling, atau pack tambahan. Mulai dari [`CONTRIBUTING.md`](CONTRIBUTING.md). -Riset tersebut bukan bukti bahwa Ramu sendiri otomatis efektif. Public beta tetap membutuhkan penggunaan nyata, manual behavior validation, dan pengumpulan failure mode. Lihat [`docs/PILOT-PUBLIC-BETA.md`](docs/PILOT-PUBLIC-BETA.md). +Untuk masalah keamanan, lihat [`SECURITY.md`](SECURITY.md). Untuk pertanyaan umum, lihat [`SUPPORT.md`](SUPPORT.md). -## Release dan kontribusi +## Lisensi -- [`CHANGELOG.md`](CHANGELOG.md) -- [`docs/RELEASE-PROCESS.md`](docs/RELEASE-PROCESS.md) -- [`CONTRIBUTING.md`](CONTRIBUTING.md) -- [`SECURITY.md`](SECURITY.md) -- [`CODE_OF_CONDUCT.md`](CODE_OF_CONDUCT.md) -- [MIT License](LICENSE) - ---- - -

- Pilih pack → coba satu mata kuliah → nilai perilakunya → perluas kalau memang berguna. -

- -

- Proyek independen. Bukan layanan resmi institusi pendidikan mana pun maupun OpenAI. -

\ No newline at end of file +Kode dan dokumentasi repository menggunakan [MIT License](LICENSE). Materi kuliah, BMP, rubrik, dan source eksternal tetap mengikuti hak cipta serta ketentuan pemiliknya masing-masing. From 054df992ee5860376e94bb002c96680da15d4c5c Mon Sep 17 00:00:00 2001 From: ysmn <115535709+man612@users.noreply.github.com> Date: Thu, 3 Sep 2026 15:44:24 +0700 Subject: [PATCH 02/24] Refresh project direction and architecture prose --- docs/ARAH-PROYEK.md | 176 +++++++++++++++++++++++--------------------- 1 file changed, 92 insertions(+), 84 deletions(-) diff --git a/docs/ARAH-PROYEK.md b/docs/ARAH-PROYEK.md index b146ee3..05ff1a2 100644 --- a/docs/ARAH-PROYEK.md +++ b/docs/ARAH-PROYEK.md @@ -1,56 +1,61 @@ # Arah Proyek +Dokumen ini menjelaskan bentuk Ramu sebagai proyek: apa yang ingin dijaga, bagaimana pack disusun, dan bagian mana yang sebaiknya tetap generik ketika periode atau institusi baru ditambahkan. + ## Tujuan -Ramu menyediakan konfigurasi workspace akademik yang bisa dipasang ke platform AI tanpa memaksa mahasiswa belajar prompt engineering. +Ramu menyiapkan workspace akademik yang bisa dipasang ke platform AI tanpa mengharuskan pengguna memahami prompt engineering atau struktur repository. + +Implementasi saat ini memakai **ChatGPT Projects**. Core, pack, source registry, dan eval sengaja disimpan sebagai artefak terpisah dari UI produk, sehingga bagian yang masih relevan dapat dipakai kembali bila platform utama berubah di masa depan. + +## Dua lapisan utama + +Secara arsitektur ada dua lapisan besar: + +1. **Core** — prinsip, protocol, learner-state contract, aturan sumber, dan failure mode yang berlaku luas. +2. **Pack** — konteks institusi, program, tahun akademik, periode, mata kuliah, sumber, versi, dan eval yang memang spesifik pada konteks tersebut. -Implementasi pertama memakai **ChatGPT Projects**, tetapi format core dan pack tidak dibuat sebagai dokumentasi produk OpenAI semata. Jika platform utama berubah, course context, source governance, aturan belajar, dan kontrak evaluasi tetap dapat digunakan kembali melalui adapter/panduan baru. +Eval di dalam pack dapat dikomposisi dari beberapa scope: -## Arsitektur +```text +core → institution → program → pack +``` -Secara produk, Ramu tetap punya dua lapisan besar: +`institution` dan `program` opsional. Aturan ditempatkan pada scope paling sempit yang masih benar-benar reusable, supaya case yang sama tidak perlu disalin ke setiap semester. -1. **Core** — prinsip, protocol, learner-state contract, source rules, dan failure mode universal yang seharusnya dapat dipakai lintas kampus/prodi. -2. **Pack** — konteks institusi + program + tahun akademik + periode beserta mata kuliah, sumber, versi, identity, dan wiring evaluasinya. +## Katalog pack -Di dalam pack, evaluasi tidak lagi diasumsikan hanya `core + pack`. Manifest menyusun **ordered `eval_suites`** agar rule yang reusable dapat ditempatkan pada scope yang tepat: `core → institution → program → pack`. +`packs/index.json` adalah pintu masuk tooling. Setiap entry menunjuk ke satu `manifest.json`, lalu validator, website, Manual Eval Kit, dan behavior eval membaca detail pack dari sana. -`packs/index.json` adalah katalog machine-readable. Setiap entry menunjuk satu `manifest.json`. Tooling tidak boleh mengunci path atau jenis periode tertentu; validator, website, manual eval, dan automated behavior eval harus menemukan pack melalui katalog/manifest. +Struktur UT S1 Akuntansi saat ini: ```text packs/ ├── index.json -├── universitas-terbuka/ -│ ├── source-registry.json -│ ├── evals/ # rule/eval reusable untuk UT -│ └── s1-akuntansi/ -│ └── 2026-2027/ -│ ├── semester-02/ -│ └── semester-03/ # saat tersedia -└── universitas-lain/ # saat ada pack terverifikasi/request +└── universitas-terbuka/ + ├── source-registry.json + ├── evals/ + └── s1-akuntansi/ + └── 2026-2027/ + ├── semester-02/ + └── semester-03/ ``` -Folder `semester-02/` di atas adalah identitas pack UT sekarang, bukan struktur yang diwajibkan Ramu untuk semua institusi. +Path tersebut adalah bentuk pack UT yang tersedia sekarang, bukan template wajib untuk seluruh institusi. ## Unit utama -- **Core** — prinsip umum yang jarang berubah. -- **Pack catalog** — daftar pack yang dapat ditemukan tooling/site. -- **Pack manifest** — metadata identity institusi/program/periode, course list, source registry, ordered `eval_suites`, dan version. -- **Machine identity** — `institution_id`, `program_id`, dan pack `id` yang stabil; terpisah dari label manusia. -- **Period metadata** — `period_id` untuk mesin + `period_label` untuk manusia; tidak ada field universal `semester`. -- **Course pack** — konfigurasi siap upload untuk satu mata kuliah. -- **Project Instructions** — perilaku runtime yang ditempel ke Project. -- **Eval suite `core`** — failure mode universal seperti hallucinated citation, prompt injection, source freshness, dan state/version conflict. -- **Eval suite `institution`** — rule yang berlaku lintas pack pada satu institusi, misalnya cara menyelesaikan konflik source pusat-vs-regional UT. -- **Eval suite `program`** — rule reusable pada satu program studi bila memang ada failure mode yang tidak layak dinaikkan ke institusi. -- **Eval suite `pack`** — behavior yang benar-benar spesifik periode/mata kuliah pada pack aktif. -- **Source registry** — dapat berscope global, institusi, program, atau pack agar tidak menjadi satu file raksasa. -- **Site** — membaca katalog + manifest, bukan hardcode satu semester/jenis kalender tertentu. +- **Pack catalog** — daftar pack yang bisa ditemukan tooling dan site. +- **Manifest** — identity, periode, daftar mata kuliah, source registry, eval suite, versi, dan metadata pack. +- **Course pack** — konteks dan workflow khusus satu mata kuliah. +- **Project Instructions** — aturan runtime yang dipasang ke ChatGPT Project. +- **Source registry** — sumber yang dipakai beserta authority, fungsi, freshness, dan claim penting. +- **Eval suite** — regression case pada scope core, institusi, program, atau pack. +- **Site** — antarmuka untuk memilih pack, menyalin instruksi, dan mengambil course pack. -## Kontrak identity +## Identity mesin dan label manusia -Ramu memisahkan identity mesin dari label manusia. Contoh pack pertama: +Identity mesin dibuat stabil dan terpisah dari label yang dilihat pengguna. Contoh: ```text institution_id: universitas-terbuka @@ -60,26 +65,28 @@ program_id: universitas-terbuka.s1-akuntansi program: S1 Akuntansi ``` -Label manusia boleh diperbaiki atau dilokalkan tanpa mengubah identity mesin. Sebaliknya, satu `institution_id`/`program_id` tidak boleh dipakai ulang untuk entitas berbeda. `program_id` dibuat unik secara global karena program scope dapat direferensikan lintas pack dan periode. +Label dapat diperbaiki tanpa mengganti ID. Sebaliknya, ID yang sudah merujuk satu entitas tidak dipakai ulang untuk entitas lain. -Identity tersebut menjadi trust boundary untuk komposisi data: +Identity juga dipakai saat menyusun eval dan registry: -- eval scope `institution` harus memakai `scope_ref == institution_id`; -- eval scope `program` harus memakai `scope_ref == program_id`; -- eval scope `pack` harus memakai `scope_ref == pack id`; -- scoped source registry harus membawa identity yang cocok dengan pack yang mendeklarasikannya. +- scope `institution` merujuk `institution_id`; +- scope `program` merujuk `program_id`; +- scope `pack` merujuk `id` pack; +- scoped source registry membawa identity yang sesuai dengan pack yang menggunakannya. -Dengan begitu, pack institusi A tidak dapat lolos validation bila tanpa sengaja menarik suite/registry scoped milik institusi B. +Validator lintas-file memeriksa hubungan ini supaya sebuah pack tidak tanpa sengaja menarik registry atau suite milik konteks lain. -## Kontrak periode akademik +## Periode akademik -Ramu membedakan identitas mesin dari label pengguna: +Periode memakai dua metadata: ```text period_id: semester-02 period_label: Semester 2 ``` +`period_id` bersifat machine-safe dan stabil. `period_label` mengikuti istilah yang benar-benar digunakan institusi dan menjadi prefix nama Project. + Pack lain dapat memakai bentuk seperti: ```text @@ -94,11 +101,11 @@ period_id: term-fall period_label: Fall Term ``` -`period_id` harus lower-case/machine-safe dan stabil untuk tooling. `period_label` mengikuti istilah resmi/manusiawi yang digunakan institusi dan menjadi prefix nama Project. Generic tooling tidak boleh menyimpulkan bahwa seluruh academic period adalah semester. +Dengan begitu tooling tidak perlu berasumsi bahwa setiap institusi memakai semester. ## Komposisi eval -Setiap manifest menyusun suite dari scope paling umum ke paling spesifik. +Manifest menyusun suite dari aturan paling umum menuju paling spesifik: ```text core @@ -110,76 +117,77 @@ program (opsional) pack ``` -Pack UT S1 Akuntansi Semester 2 saat ini memakai: +Pack UT yang tersedia sekarang memakai: ```text core → universitas-terbuka → id.ut.accounting-s1.2026-2027.s2 +core → universitas-terbuka → id.ut.accounting-s1.2026-2027.s3 ``` -Contohnya, regression case konflik katalog pusat dan halaman regional UT berada pada suite institusi Universitas Terbuka. Semester 3 UT nanti dapat memakai suite yang sama tanpa menyalin case tersebut. Sebaliknya, universitas lain tidak ikut membawa rule UT. +Konflik katalog pusat dengan halaman regional UT, misalnya, berada pada suite institusi karena masalah itu dapat muncul pada lebih dari satu periode. Sebaliknya, current-vs-old metadata AKM II Semester 3 tetap berada pada pack Semester 3 karena konteksnya memang spesifik. -Validator menjaga beberapa invariant: +Validator menjaga beberapa invariant penting: -- suite core harus menjadi lapisan pertama; -- suite pack harus menjadi lapisan terakhir; -- scope tidak boleh mundur dari yang lebih spesifik ke lebih umum; -- `scope_ref` harus cocok dengan `institution_id`, `program_id`, atau pack `id` sesuai scope; -- ID case harus tetap unik setelah seluruh suite digabung; -- behavior dan contract case harus tetap berpasangan. +- core berada di awal dan pack di akhir; +- scope tidak mundur dari yang lebih spesifik ke yang lebih umum; +- `scope_ref` cocok dengan identity manifest; +- ID case tetap unik setelah seluruh suite digabung; +- contract dan behavior case tetap berpasangan. -Behavior defaults boleh dioverride oleh suite yang lebih spesifik dan muncul kemudian, tetapi regression case yang memiliki ID sama tidak boleh ditimpa diam-diam. +Behavior `defaults` boleh dioverride oleh suite yang lebih spesifik, tetapi regression case dengan ID yang sama tidak boleh tertimpa diam-diam. ## Schema dan semantic validation -JSON di Ramu memiliki dua lapis validation yang sengaja dipisahkan: +Validasi dibagi dua karena masalah yang diperiksa juga berbeda. -1. **JSON Schema Draft 2020-12** memeriksa bentuk setiap katalog, manifest, source registry, contract, dan behavior file. Schema Ramu sendiri juga diperiksa terhadap meta-schema Draft 2020-12. -2. **Semantic/cross-file validation** memeriksa invariant yang membutuhkan hubungan antardokumen: identity catalog↔manifest, identity scoped registry/eval, file existence, source dependency, jumlah SKS, suite ordering, duplicate case ID, dan wiring contract↔behavior. +**JSON Schema Draft 2020-12** memeriksa bentuk katalog, manifest, source registry, contract, dan behavior file. Schema-nya sendiri ikut divalidasi terhadap meta-schema. -Schema tidak dianggap dokumentasi dekoratif. CI harus benar-benar menjalankan instance validation terhadap schema yang dipublish. Sebaliknya, JSON Schema tidak dipaksa melakukan pekerjaan lintas-file yang lebih jelas dan auditable di semantic validator. +**Semantic/cross-file validation** memeriksa hubungan yang tidak cukup dinyatakan dalam satu JSON file: identity catalog↔manifest, scoped registry/eval, keberadaan file, source dependency, total SKS, suite ordering, duplicate case ID, dan wiring contract↔behavior. + +Keduanya dijalankan di CI. ## Maintainer pack -Field `maintainer` membedakan asal pemeliharaan tanpa memakai istilah “official” yang bisa disalahartikan sebagai resmi dari kampus: +Field `maintainer` menunjukkan siapa yang memelihara pack di repository: + +- `ramu` — **Ramu Maintained**, direview dan dipelihara di repository utama; +- `community` — kontribusi komunitas dengan ownership/review yang harus terlihat jelas. -- `ramu` — **Ramu Maintained**, dipelihara/review langsung dalam repository utama; -- `community` — kontribusi komunitas yang ownership/review-nya harus terlihat jelas. +Status ini tidak menyatakan bahwa pack resmi diterbitkan universitas. Source resmi tetap dinilai terpisah dari siapa yang memelihara pack. -Status sumber dan status maintainer adalah dua hal berbeda. Community pack tetap bisa memiliki source resmi, dan Ramu Maintained pack tetap tidak boleh mengklaim sebagai layanan resmi universitas. +## Versioning -## Prinsip versioning +Data akademik selalu dipasangkan dengan tahun akademik, periode, `pack_version`, dan tanggal verifikasi. Jika kurikulum berubah, perubahan masuk ke jalur tahun/periode/versi yang sesuai; pack lama tetap dapat ditelusuri sebagai snapshot. -Data akademik selalu ditulis bersama tahun akademik, `period_id`/`period_label`, `pack_version`, dan tanggal verifikasi. Jika kurikulum berubah, pack baru dibuat pada jalur versi/tahun/periode yang sesuai; pack lama tidak diam-diam ditimpa seolah masih berlaku. +Beberapa versi memiliki fungsi berbeda: -`packs/index.json` memiliki version untuk kontrak katalog dan `schema_version` manifest berubah bila bentuk kontrak manifest berubah. `contract_version` dapat berubah ketika wiring/format kontrak evaluasi berubah. `pack_version` mengikuti isi/config course pack yang benar-benar dipakai mahasiswa. Karena itu migrasi metadata/identity tidak otomatis berarti course pack mahasiswa perlu versi baru. +- `packs/index.json.version` untuk kontrak katalog; +- `schema_version` untuk bentuk manifest; +- `contract_version` untuk kontrak evaluasi; +- `pack_version` untuk isi/config course pack yang dipakai pengguna. -Jika dua course pack untuk konteks yang sama terpasang sekaligus, versi yang sesuai manifest aktif diprioritaskan dan versi lama sebaiknya dihapus dari Project Sources. +Perubahan metadata internal tidak otomatis berarti course pack perlu versi baru. Sebaliknya, perubahan yang memengaruhi isi/config yang benar-benar dipakai perlu dicatat pada `pack_version`. ## Status pack -- `source-verified` — data dan aturan utama sudah diperiksa terhadap sumber primer, tetapi behavior belum dinyatakan terverifikasi penuh. -- `verified` — sumber + behavior validation yang relevan sudah direview sesuai standar release saat itu. -- `community` — kontribusi pihak lain yang belum memenuhi level maintained/verified penuh. -- `experimental` — format/workflow/pack masih diuji. -- `deprecated` — pack sudah digantikan atau tidak lagi layak direkomendasikan untuk penggunaan baru. +- `source-verified` — data dan aturan utama sudah diperiksa terhadap sumber primer; behavior belum diklaim selesai sepenuhnya; +- `verified` — source dan behavior validation yang relevan sudah direview sesuai standar release saat itu; +- `community` — kontribusi pihak lain yang belum mencapai level maintained/verified; +- `experimental` — format atau workflow masih diuji; +- `deprecated` — sudah digantikan atau tidak lagi direkomendasikan untuk penggunaan baru. -Status `verified` tetap berupa snapshot terhadap pack version + tanggal + environment/model/product state yang diuji, bukan janji keluaran AI selalu sama selamanya. +`verified` tetap sebuah snapshot terhadap versi, tanggal, dan environment yang diuji. Bukan janji bahwa output model akan selalu sama atau selalu benar. -## Validasi tanpa dan dengan API +## Validasi tanpa API -Ramu tidak membutuhkan OpenAI API untuk dipakai mahasiswa. +Penggunaan normal dan static validation tidak membutuhkan OpenAI API. -- JSON Schema + static semantic validation: otomatis dan gratis; -- manual validation di ChatGPT Projects: gratis dan menguji runtime produk yang sebenarnya; -- automated API behavior eval: opsional sebagai regression/benchmark tambahan ketika API tersedia. +- JSON Schema + semantic validation berjalan lokal/CI; +- manual validation dijalankan langsung di ChatGPT Projects; +- automated behavior eval melalui API tersedia sebagai QA tambahan. -Static CI memeriksa schema, identity, period metadata, menggabungkan ordered eval suites setiap pack, dan memeriksa wiring seluruh case. Manual Eval Kit menggunakan suite yang sama untuk menghasilkan checklist tanpa API. +Manual Eval Kit memakai suite yang sama untuk menghasilkan checklist tanpa API. -## Bukan target Ramu +## Di luar ruang lingkup -- menyimpan jawaban tugas massal; -- menyalin BMP/materi berhak cipta; -- menjadi LMS pengganti kampus; -- menebak nilai akhir mahasiswa; -- menjanjikan keluaran AI selalu benar atau kebal prompt injection; -- mengunci pengguna ke satu sistem kalender akademik, model, plan, fitur tambahan, atau vendor untuk selamanya. +Ramu tidak diarahkan menjadi bank jawaban tugas, LMS pengganti kampus, tempat menyimpan materi berhak cipta, atau sistem yang mengklaim AI selalu benar. Fokusnya tetap pada workspace belajar, sumber yang bisa ditelusuri, dan cara menguji perilaku penting saat pack berkembang. From 94e2beec5802123664d730eb777b4c83b71d99d4 Mon Sep 17 00:00:00 2001 From: ysmn <115535709+man612@users.noreply.github.com> Date: Thu, 3 Sep 2026 15:44:45 +0700 Subject: [PATCH 03/24] Tighten learning rationale prose --- docs/LANDASAN-PEMBELAJARAN.md | 52 +++++++++++++++++------------------ 1 file changed, 26 insertions(+), 26 deletions(-) diff --git a/docs/LANDASAN-PEMBELAJARAN.md b/docs/LANDASAN-PEMBELAJARAN.md index 0f27398..e226137 100644 --- a/docs/LANDASAN-PEMBELAJARAN.md +++ b/docs/LANDASAN-PEMBELAJARAN.md @@ -1,12 +1,12 @@ # Landasan Pembelajaran Ramu -Ramu tidak dirancang sebagai mesin yang selalu memberi jawaban secepat mungkin. Tujuan utamanya adalah membantu mahasiswa menyelesaikan kebutuhan kuliah sambil tetap membangun kemampuan yang dapat digunakan tanpa AI. +Ramu dibuat untuk membantu mahasiswa menyelesaikan kebutuhan kuliah tanpa mengorbankan proses belajarnya. Karena itu, desainnya tidak berhenti pada “jawaban benar”, tetapi juga mengatur kapan bantuan perlu diberikan, kapan pengguna perlu mencoba sendiri, dan bagaimana progres dibawa ke sesi berikutnya. -## 1. AI tutor membutuhkan scaffolding, bukan hanya jawaban yang benar +## 1. Scaffolding lebih berguna daripada sekadar jawaban cepat -Kestin dkk. (2025) melaporkan randomized controlled trial pada mahasiswa yang membandingkan AI tutor berbasis prinsip pedagogis dengan active learning di kelas. Desain tutor menekankan scaffolding dan praktik pedagogis, bukan sekadar akses ke model bahasa. +Kestin dkk. (2025) melaporkan randomized controlled trial pada mahasiswa yang membandingkan AI tutor berbasis prinsip pedagogis dengan active learning di kelas. Tutor tersebut menekankan scaffolding, feedback, pengelolaan cognitive load, dan self-pacing—bukan sekadar akses ke model bahasa. -Implikasi untuk Ramu: +Implikasinya: - mode belajar memakai tangga bantuan; - worked example diikuti pengurangan bantuan; @@ -14,49 +14,49 @@ Implikasi untuk Ramu: Sumber: Kestin, G., Miller, K., Klales, A., et al. (2025). *AI tutoring outperforms in-class active learning: an RCT introducing a novel research-based design in an authentic educational setting*. Scientific Reports, 15, 17458. https://doi.org/10.1038/s41598-025-97652-6 -## 2. Bantuan tanpa guardrail dapat meningkatkan performa saat AI tersedia tetapi merusak belajar mandiri +## 2. Bantuan berlebihan bisa mengganggu belajar mandiri -Bastani dkk. (2025) menemukan bahwa akses generative AI dapat meningkatkan performa ketika alat tersedia, tetapi kelompok dengan akses tanpa guardrail dapat tampil lebih buruk ketika AI kemudian dicabut. Tutor dengan safeguards berbasis hint mengurangi dampak negatif tersebut. +Bastani dkk. (2025) menemukan bahwa akses generative AI dapat meningkatkan performa saat alat tersedia, tetapi kelompok yang mendapat bantuan tanpa guardrail dapat tampil lebih buruk ketika AI kemudian dilepas. Tutor dengan safeguards berbasis hint mengurangi dampak tersebut. -Implikasi untuk Ramu: +Karena itu: -- intent `belajar` dan `latihan ujian` tidak langsung membocorkan semua jawaban; -- mahasiswa diberi giliran mencoba; -- bantuan dinaikkan hanya jika diperlukan; -- latihan ujian membedakan jawaban mandiri dan jawaban setelah hint. +- intent `belajar` dan `latihan ujian` tidak langsung membuka seluruh jawaban; +- mahasiswa diberi ruang untuk mencoba; +- bantuan dinaikkan bila memang diperlukan; +- latihan membedakan jawaban mandiri dari jawaban setelah hint. Sumber: Bastani, H., Bastani, O., Sungu, A., et al. (2025). *Generative AI without guardrails can harm learning: Evidence from high school mathematics*. Proceedings of the National Academy of Sciences, 122(26), e2422633122. https://doi.org/10.1073/pnas.2422633122 -## 3. Self-regulated learning perlu state yang terlihat dan dapat diperbarui +## 3. Progress perlu terlihat, bukan hanya tersimpan samar di memory -Systematic mapping review Banihashem dkk. (2025) memetakan 84 studi pada persilangan AI dan self-regulated learning. Banyak implementasi AI berperan dalam personalisasi, tutoring, assessment, prediction, dan dukungan proses regulasi belajar. +Systematic mapping review Banihashem dkk. (2025) memetakan 84 studi di persilangan AI dan self-regulated learning. Banyak implementasi memakai AI untuk personalisasi, tutoring, assessment, prediction, dan dukungan proses regulasi belajar. -Implikasi untuk Ramu: +Di Ramu, temuan ini diterjemahkan menjadi learner state yang dapat dilihat dan diperbaiki: - kemajuan penting tidak hanya dibiarkan sebagai memory implisit; -- tersedia learner state, mastery map, misconception log, dan review queue; -- catatan harus dapat diperbaiki atau dihapus oleh mahasiswa; -- status penguasaan harus berdasarkan bukti dari latihan/pekerjaan, bukan karena materi pernah dijelaskan AI. +- mastery map, misconception log, dan review queue dapat menyimpan progres yang relevan; +- catatan bisa dikoreksi atau dihapus; +- status penguasaan didasarkan pada bukti dari latihan/pekerjaan, bukan karena materi pernah dijelaskan AI. Sumber: Banihashem, S. K., Bond, M., Bergdahl, N., Khosravi, H., & Noroozi, O. (2025). *A systematic mapping review at the intersection of artificial intelligence and self-regulated learning*. International Journal of Educational Technology in Higher Education, 22, 50. https://doi.org/10.1186/s41239-025-00548-8 -## 4. Grounding sumber membantu, tetapi freshness dan hallucination tetap perlu diawasi +## 4. Grounding membantu, tetapi sumber tetap perlu diawasi -Li dkk. (2025) meninjau 51 studi RAG untuk aplikasi pendidikan. Review tersebut menyoroti manfaat retrieval untuk factual accuracy dan knowledge freshness sekaligus masalah yang masih tersisa: hallucination, kelengkapan retrieval, timeliness, dan multimodality. +Li dkk. (2025) meninjau 51 studi RAG untuk aplikasi pendidikan. Review tersebut menunjukkan manfaat retrieval untuk factual accuracy dan knowledge freshness, sekaligus menyoroti masalah yang masih tersisa seperti hallucination, kelengkapan retrieval, timeliness, dan multimodality. -Ramu saat ini tidak menjalankan vector RAG sendiri; ChatGPT Project dan file mata kuliah menjadi lapisan grounding pengguna. Karena itu Ramu menambahkan source registry dan freshness policy agar sumber yang digunakan memiliki fungsi, otoritas, dan tanggal verifikasi yang eksplisit. +Ramu tidak menjalankan vector RAG sendiri. ChatGPT Project dan file mata kuliah menjadi lapisan grounding pengguna, sementara source registry mencatat fungsi sumber, otoritas, dan tanggal review agar perubahan bisa ditelusuri. Sumber: Li, Z., Wang, Z., Wang, W., Hung, K., Xie, H., & Wang, F. L. (2025). *Retrieval-augmented generation for educational application: A systematic survey*. Computers and Education: Artificial Intelligence, 8, 100417. https://doi.org/10.1016/j.caeai.2025.100417 -## Prinsip desain yang diturunkan +## Prinsip yang dipakai -Dari temuan di atas, Ramu memakai prinsip berikut: +Dari landasan di atas, desain pembelajaran mengikuti beberapa prinsip: 1. bantuan adaptif, bukan answer dump sebagai default; 2. active recall sebelum melihat jawaban pada mode latihan; -3. pengurangan bantuan setelah mahasiswa mulai mampu; +3. bantuan dikurangi setelah mahasiswa mulai mampu; 4. learner state eksplisit dan dapat dikoreksi; -5. source hierarchy dan freshness yang dapat diaudit; -6. eval/regression contract agar guardrail tidak hilang saat prompt berkembang. +5. source hierarchy dan freshness dapat diperiksa ulang; +6. behavior eval dipakai agar guardrail penting tidak hilang saat prompt atau pack berkembang. -Riset ini tidak berarti satu desain akan cocok untuk semua mahasiswa atau semua mata kuliah. Protokol Ramu tetap harus proporsional terhadap tujuan pengguna, aturan kampus, karakter materi, dan bukti dari pemakaian nyata. +Prinsip tersebut bukan resep universal. Cara bantuan tetap perlu menyesuaikan tujuan pengguna, aturan kampus, karakter mata kuliah, dan bukti dari pemakaian nyata. From d83aa58d2f554cf6a5fef5f327005bf3f3016104 Mon Sep 17 00:00:00 2001 From: ysmn <115535709+man612@users.noreply.github.com> Date: Thu, 3 Sep 2026 15:45:15 +0700 Subject: [PATCH 04/24] Simplify active setup guide --- docs/PANDUAN-SETUP-CHATGPT.md | 120 +++++++++++++++------------------- 1 file changed, 53 insertions(+), 67 deletions(-) diff --git a/docs/PANDUAN-SETUP-CHATGPT.md b/docs/PANDUAN-SETUP-CHATGPT.md index 9dc0c0a..cc6c6f5 100644 --- a/docs/PANDUAN-SETUP-CHATGPT.md +++ b/docs/PANDUAN-SETUP-CHATGPT.md @@ -1,78 +1,66 @@ # Panduan Setup Ramu di ChatGPT -Panduan ini untuk pengguna yang ingin langsung memakai Ramu tanpa perlu memahami GitHub, prompt engineering, schema, atau tooling di belakangnya. +Panduan ini untuk pengguna yang ingin langsung memakai Ramu tanpa perlu memahami schema, eval, atau struktur repository. -Ramu memakai **pack**. Satu pack mewakili konteks akademik tertentu—misalnya institusi, program studi, tahun akademik, dan periode belajar. Kamu tidak perlu memasang seluruh pack sekaligus; untuk mencoba Ramu, cukup siapkan **satu mata kuliah dulu**. +Satu **pack** mewakili konteks akademik tertentu: institusi, program studi, tahun akademik, dan periode. Tidak perlu memasang seluruh pack sekaligus. Mulai dari satu mata kuliah yang benar-benar sedang dipakai. -## Pilih pack yang sesuai +## Pilih pack Buka [site Ramu](https://man612.github.io/ramu/) lalu pilih pack yang sesuai. -Pack Ramu Maintained yang tersedia untuk UT S1 Akuntansi 2026/2027 saat ini: +Pack yang tersedia untuk UT S1 Akuntansi 2026/2027: - **Semester 2** — 5 mata kuliah, 16 SKS; - **Semester 3** — 7 mata kuliah, 20 SKS. -Nama Project selalu memakai label periode secara penuh. Contoh Semester 3: +Nama Project memakai label periode secara penuh, misalnya: -- `Semester 3 • Lab Perpajakan` -- `Semester 3 • Kewirausahaan Digital` -- `Semester 3 • Akuntansi Manajemen` -- `Semester 3 • SIA` -- `Semester 3 • Bahasa Inggris` +- `Semester 2 • Perpajakan` - `Semester 3 • AKM II` -- `Semester 3 • Belajar di Era Digital` - -Ramu sengaja menulis **Semester 2/3** secara penuh pada nama yang dilihat pengguna. Singkatan `S2` atau `S3` tidak dipakai sebagai label Project karena di Indonesia mudah dibaca sebagai jenjang pendidikan. ID internal seperti `.s2`, `.s3`, `semester-02/`, atau `semester-03/` tetap boleh dipakai oleh tooling. - -Untuk pack lain, gunakan nama Project yang ditampilkan oleh halaman setup pack tersebut. Manifest pack memiliki `period_label` agar periode dapat ditulis jelas, termasuk bila suatu institusi memakai istilah lain seperti trimester atau term. +- `Semester 3 • Bahasa Inggris` -## Langkah 1 — pilih satu mata kuliah +Bentuk `S2`/`S3` dihindari pada nama yang dilihat pengguna karena mudah terbaca sebagai jenjang pendidikan. ID internal tetap boleh ringkas, misalnya `.s3` atau `semester-03/`. -Jangan setup seluruh periode hanya untuk mengetes Ramu. +## 1. Pilih satu mata kuliah -Pilih satu mata kuliah yang memang sedang dipakai. Misalnya **Perpajakan** pada Semester 2 atau **AKM II** pada Semester 3. +Pilih mata kuliah yang memang sedang digunakan. Tidak perlu menyiapkan seluruh semester hanya untuk mencoba workflow-nya. -## Langkah 2 — buat ChatGPT Project +## 2. Buat ChatGPT Project 1. Buka ChatGPT. 2. Pilih **New Project**. -3. Gunakan nama Project yang diberikan Ramu, misalnya `Semester 3 • AKM II`. -4. Gunakan **Project-only memory** agar konteks Project tidak bercampur dengan percakapan di luar Project. +3. Gunakan nama Project yang ditampilkan Ramu, misalnya `Semester 3 • AKM II`. +4. Pilih **Project-only memory** agar konteks Project tetap terpisah dari percakapan di luar Project. -Nama menu ChatGPT dapat berubah seiring pembaruan produk. Jika letaknya berbeda, cari pengaturan yang setara di Project settings. +Pada eligible Project yang sudah ada, pengaturan memory dapat diubah melalui **Project settings → Memory**. Shared Project tetap memakai Project-only memory. Nama atau posisi menu dapat berubah mengikuti versi aplikasi; yang dicari adalah fungsi yang setara. -## Langkah 3 — pasang Project Instructions +## 3. Pasang Project Instructions -Pada halaman setup Ramu untuk pack aktif, tekan **Salin instruksi**. +Di halaman setup pack, tekan **Salin instruksi**. -Di ChatGPT buka: +Kemudian buka: `Project → ⋯ → Project settings → Project Instructions` -lalu tempel Project Instructions tersebut. +Tempel instruksi tersebut di sana. -Project Instructions **bukan Project Source**. Ia adalah aturan runtime untuk cara Ramu menangani konteks, sumber, tugas, pembelajaran, dan guardrail. +Project Instructions adalah aturan runtime untuk cara AI menangani konteks, sumber, tugas, dan pola bantuan. Ia berbeda dari Project Source. -## Langkah 4 — tambahkan course pack +## 4. Tambahkan course pack -Pada halaman setup Ramu: +Di halaman setup: -1. pilih mata kuliah yang sedang disiapkan; +1. pilih mata kuliah; 2. tekan **Unduh paket (.txt)**; -3. kembali ke Project ChatGPT; -4. buka area **Sources** atau **Project Sources**; -5. gunakan kontrol untuk menambahkan atau mengunggah file, lalu pilih course pack yang baru diunduh. +3. kembali ke ChatGPT Project; +4. buka **Sources** atau **Project Sources**; +5. unggah course pack yang baru diunduh. -Nama tombol dan opsi untuk menambahkan source dapat berbeda antar akun, plan, atau versi aplikasi. Jika ChatGPT menyediakan cara untuk memakai ulang file yang sudah tersimpan di Library atau source lain, opsi yang setara tersebut juga dapat digunakan. +Course pack menjadi konteks tetap untuk mata kuliah tersebut. BMP, materi kelas, screenshot soal, rubrik, atau file pribadi ditambahkan sendiri ketika memang dibutuhkan. -Course pack menjadi source tetap untuk Project tersebut. BMP, materi kelas, screenshot soal, rubrik, atau file pribadi tetap ditambahkan sendiri oleh pengguna ketika diperlukan; materi berhak cipta tidak disimpan di repo Ramu. +## 5. Mulai gunakan -## Langkah 5 — langsung gunakan - -Begitu satu Project selesai, langsung pakai. Tidak perlu menunggu semua mata kuliah selesai disiapkan. - -Contoh: +Begitu satu Project siap, langsung pakai seperti chat biasa. ```text aku belum paham bagian ini @@ -90,9 +78,9 @@ cek jawabanku ini feedback tutor kemarin ``` -Kalau Project pertama terasa berguna, baru ulangi pola yang sama untuk mata kuliah lain. +Kalau Project pertama terasa berguna, baru ulangi langkah yang sama untuk mata kuliah lain. -## Course pack UT S1 Akuntansi Semester 2 +## Course pack Semester 2 | Nama Project | Mata kuliah | Course pack | |---|---|---| @@ -102,7 +90,7 @@ Kalau Project pertama terasa berguna, baru ulangi pola yang sama untuk mata kuli | `Semester 2 • Ekonomi Mikro` | ECON4102 Pengantar Ekonomi Mikro | `ECON4102-ekonomi-mikro.md` | | `Semester 2 • Manajemen` | EMBS4101 Manajemen | `EMBS4101-manajemen.md` | -## Course pack UT S1 Akuntansi Semester 3 +## Course pack Semester 3 | Nama Project | Mata kuliah | Course pack | |---|---|---| @@ -114,49 +102,47 @@ Kalau Project pertama terasa berguna, baru ulangi pola yang sama untuk mata kuli | `Semester 3 • AKM II` | EACC4205 Akuntansi Keuangan Menengah II | `EACC4205-akm-2.md` | | `Semester 3 • Belajar di Era Digital` | MKDI4202 Belajar di Era Digital | `MKDI4202-belajar-era-digital.md` | -Nama Project berasal dari `project_name` pada manifest pack. Contributor tidak perlu membuat format nama sendiri. +Nama Project berasal dari `project_name` pada manifest pack, jadi formatnya tidak perlu dibuat sendiri. ### Catatan Semester 3 2026/2027 -Semester 3 tidak dibuat dengan menyalin metadata tahun sebelumnya. Katalog pusat UT 2026/2027 dan halaman BMP aktif menunjukkan beberapa perubahan, terutama **AKM II** yang sekarang memakai bahan ajar `EACC4205` baru dan berstatus BP/BPro. Laboratorium Perpajakan juga memakai metadata current 2026/2027 dan mempunyai prasyarat EACC4104. +Semester 3 direview dari source 2026/2027, bukan disalin dari metadata tahun sebelumnya. Perubahan paling besar ada pada **AKM II**: bahan ajar current memakai `EACC4205`, dan mata kuliahnya sekarang berstatus BP/BPro. Laboratorium Perpajakan juga memakai metadata current 2026/2027 serta memiliki prasyarat EACC4104. -Karena itu, jangan memakai course pack atau metadata Semester 3 lama untuk Project 2026/2027 hanya karena nama mata kuliahnya sama. +Gunakan pack yang sesuai tahun akademik aktif walaupun nama mata kuliahnya terlihat sama dengan tahun sebelumnya. ## Memory dan pemisahan konteks -Ramu memakai satu Project per mata kuliah supaya file, riwayat, source, dan learner state tidak bercampur. - -Gunakan **Project-only memory**. Pada eligible Project yang sudah ada, pengaturan memory dapat diubah melalui **Project settings → Memory**; perubahan dapat membutuhkan beberapa jam untuk berlaku. Shared Project tetap memakai Project-only memory. Jika kamu sedang berada di Project AKM II tetapi ingin membahas Lab Perpajakan, lebih baik pindah Project daripada menyimpan progres pajak ke learner state AKM II. +Satu mata kuliah ditempatkan di satu Project supaya source, file, riwayat tugas, dan progres belajarnya tidak bercampur dengan mata kuliah lain. -Jika dari suatu sesi muncul konteks belajar yang perlu dibawa ke chat berikutnya, minta Ramu membuat **Catatan Belajar Terbaru**. Bila ChatGPT menyediakan opsi untuk menyimpan hasil ke Project atau menjadikannya Project Source, catatan itu dapat disimpan ke Project. Ketika catatan baru menggantikan versi lama, hapus versi lama supaya dua state yang bertentangan tidak dipakai bersamaan. +Jika sesi menghasilkan konteks yang perlu dibawa ke chat berikutnya, minta **Catatan Belajar Terbaru**. Bila ChatGPT menyediakan opsi untuk menyimpannya ke Project atau Project Sources, catatan tersebut bisa dipakai sebagai state eksplisit. Hapus versi lama setelah digantikan supaya dua state yang bertentangan tidak aktif bersamaan. -## Mengatur file agar Project tetap bersih +## Menjaga Project tetap rapi -- course pack Ramu dapat menjadi source tetap; -- BMP/materi kelas ditambahkan bila memang relevan; -- screenshot soal biasanya cukup dikirim pada chat yang sedang dikerjakan; +- course pack dapat menjadi source tetap; +- BMP dan materi kelas ditambahkan bila relevan; +- screenshot soal biasanya cukup dikirim di chat yang sedang dikerjakan; - rubrik sebaiknya ikut dikirim jika tugas memilikinya; -- file lama yang sudah tidak diperlukan dapat dihapus; -- jangan memasang dua versi course pack untuk mata kuliah yang sama sekaligus. +- file yang sudah tidak dipakai dapat dihapus; +- hindari memasang dua versi course pack untuk mata kuliah yang sama sekaligus. -Batas file per Project bergantung pada produk/paket ChatGPT dan dapat berubah. Dokumentasi OpenAI yang tercatat di source registry Ramu menjadi acuan untuk perubahan produk, bukan angka yang di-hardcode permanen di course pack. +Batas file dan detail UI ChatGPT dapat berubah. Dokumentasi produk yang dicatat di source registry dipakai untuk memantau perubahan tersebut, bukan angka atau posisi tombol yang di-hardcode ke course pack. ## Privasi -Ramu adalah site statis dan tidak memiliki backend untuk menerima file kuliah pribadi. File pribadi ditambahkan langsung oleh pengguna ke ChatGPT. +Website Ramu bersifat statis. File kuliah pribadi masuk langsung ke ChatGPT Project, bukan ke server Ramu. -Pengaturan apakah percakapan boleh digunakan untuk peningkatan model berada di **Data Controls** akun ChatGPT dan bukan syarat penggunaan Ramu. +Pengaturan penggunaan percakapan untuk peningkatan model berada di **Data Controls** akun ChatGPT dan terpisah dari setup Ramu. -## Tentang Study Mode +## Study Mode -Dokumentasi OpenAI saat ini menyatakan **Study Mode tidak berlaku pada Project conversations**. Ramu tidak bergantung pada Study Mode: pola bantuan belajar berasal dari Project Instructions, protocols, dan course pack, sehingga scaffolding, retrieval practice, dan tutoring behavior tetap tersedia di dalam Project tanpa Study Mode. +Dokumentasi OpenAI yang direview saat ini menyatakan **Study Mode tidak berlaku pada Project conversations**. Workflow belajar di Ramu berasal dari Project Instructions, protocols, dan course pack, jadi Project tetap dapat memakai scaffolding dan retrieval practice tanpa Study Mode. -## Kalau UI ChatGPT berubah +## Jika UI ChatGPT berubah -ChatGPT Projects adalah produk yang dapat berubah. Karena itu panduan Ramu berpegang pada fungsi, bukan hanya posisi tombol: +Fokus pada fungsinya: -- **Project Instructions** → aturan runtime Ramu; -- **Sources** → course pack dan materi yang memang perlu menjadi konteks Project; -- **Project-only memory** → pemisahan konteks antarmata kuliah. +- **Project Instructions** → aturan runtime; +- **Sources / Project Sources** → course pack dan materi yang perlu menjadi konteks; +- **Project-only memory** → pemisahan konteks Project. -Jika nama atau lokasi menu berubah, gunakan fungsi yang setara dan cek dokumentasi produk terbaru. +Jika label atau posisi menu berubah, gunakan fungsi yang setara dan cek dokumentasi produk terbaru. From 4d9da2a2b8d89f51d306f92a3f2d28df02db52b0 Mon Sep 17 00:00:00 2001 From: ysmn <115535709+man612@users.noreply.github.com> Date: Thu, 3 Sep 2026 15:45:55 +0700 Subject: [PATCH 05/24] Clarify source and validation documentation --- docs/SUMBER-DAN-VALIDASI.md | 167 +++++++++++++++++++----------------- 1 file changed, 88 insertions(+), 79 deletions(-) diff --git a/docs/SUMBER-DAN-VALIDASI.md b/docs/SUMBER-DAN-VALIDASI.md index 05e8fb0..0fa1a91 100644 --- a/docs/SUMBER-DAN-VALIDASI.md +++ b/docs/SUMBER-DAN-VALIDASI.md @@ -1,66 +1,66 @@ # Sumber dan Validasi -Ramu membedakan **sumber resmi**, **literatur akademik**, dan **sinyal komunitas**. Ketiganya berguna, tetapi fungsinya tidak sama dan tidak disimpan selamanya dalam satu registry raksasa. +Sumber di repository dibedakan berdasarkan fungsi, bukan sekadar domain. Dokumen resmi, literatur akademik, halaman regional, dan diskusi komunitas bisa sama-sama berguna, tetapi tidak punya bobot yang sama untuk setiap klaim. -## Registry berscope +## Registry berdasarkan scope -Source machine-readable dibagi menurut scope: +Source machine-readable dapat berada di beberapa level: -- [`../sources/registry.json`](../sources/registry.json) — source global/runtime seperti dokumentasi platform AI; -- `packs//source-registry.json` — source institusi; -- registry program/pack dapat ditambahkan bila memang diperlukan. +- [`../sources/registry.json`](../sources/registry.json) — source global/runtime, misalnya dokumentasi platform AI; +- `packs//source-registry.json` — source yang berlaku pada tingkat institusi; +- registry program atau pack — dipakai bila sumbernya memang lebih sempit. -Setiap `manifest.json` pack menyebut `source_registries` yang menjadi dependency. Validator memastikan source yang dirujuk manifest benar-benar ada dan ID source tidak duplikat lintas registry. +Setiap `manifest.json` menyebut `source_registries` yang menjadi dependency pack. Validator memeriksa keberadaan registry, kecocokan identity, dan keunikan source ID. -Setiap entry source memiliki: +Entry source menyimpan beberapa metadata penting: -- `authority` — penerbit/otoritas; -- `canonical_for` — jenis klaim yang boleh menjadikannya sumber utama; -- `verified_at` — kapan terakhir diperiksa manusia; -- `review_interval_days` — kapan perlu review ulang; -- `watch` — apakah source watch mencoba URL; +- `authority` — penerbit atau otoritas; +- `canonical_for` — jenis klaim yang boleh menjadikannya rujukan utama; +- `verified_at` — tanggal terakhir source benar-benar diperiksa; +- `review_interval_days` — interval review; +- `watch` — apakah URL ikut dipantau; - `status` — `active`, `secondary`, atau `signal-only`. -Dengan cara ini, “domain resmi” tidak otomatis berarti “sumber kanonik untuk semua klaim”. +Dengan model ini, sebuah halaman bisa resmi tetapi tetap hanya menjadi sumber sekunder untuk klaim tertentu. -## Claim-level evidence +## Evidence per klaim -Source yang sama dapat memuat beberapa klaim dengan umur dan tingkat kepastian berbeda. Bahkan dokumentasi resmi dalam authority yang sama dapat tidak sinkron. Karena itu registry juga dapat menyimpan `claims` terpisah. +Satu source dapat memuat beberapa klaim dengan tingkat kepastian dan umur yang berbeda. Dokumentasi resmi juga kadang tidak sinkron antarhalaman. Karena itu registry dapat menyimpan `claims` terpisah. Setiap claim mencatat: - `status`: `confirmed`, `conflicted`, `needs-review`, atau `deprecated`; - `summary`: klaim yang sedang dinilai; -- `evidence`: source ID, locator/bagian dokumen, dan observation yang benar-benar ditemukan saat review; -- `reviewed_at` + `review_interval_days` khusus claim tersebut; -- `operational_policy` untuk claim `conflicted`, supaya runtime/UX Ramu tetap punya fallback yang aman tanpa berpura-pura konflik sudah selesai. +- `evidence`: source ID, locator, dan observation dari review; +- `reviewed_at` + `review_interval_days`; +- `operational_policy` untuk claim `conflicted`, agar workflow tetap punya fallback tanpa berpura-pura konfliknya sudah selesai. -Dengan struktur ini, Ramu dapat mengatakan “dua halaman resmi masih berbeda” tanpa harus menjadikan seluruh domain/source sebagai tidak tepercaya. +Jadi konflik dua halaman resmi bisa dicatat sebagai konflik pada klaim tertentu tanpa menurunkan kepercayaan terhadap seluruh domain. -## Source hierarchy Universitas Terbuka +## Hierarki source Universitas Terbuka -Untuk data kurikulum/aturan UT, prioritasnya: +Untuk data kurikulum dan aturan UT, urutan prioritasnya: -1. katalog/pedoman pusat Universitas Terbuka untuk tahun akademik yang sesuai; -2. laman fakultas/program studi pusat dan halaman BMP resmi; -3. laman UT Daerah sebagai pelengkap bila tidak bertentangan dengan source kanonik; -4. forum/komunitas sebagai sinyal masalah UX, bukan aturan akademik. +1. katalog/pedoman pusat UT untuk tahun akademik yang sesuai; +2. halaman fakultas/program studi pusat dan BMP resmi; +3. halaman UT Daerah sebagai pelengkap bila tidak bertentangan dengan source pusat; +4. forum/komunitas sebagai sinyal masalah atau pengalaman pengguna, bukan aturan akademik. -Registry institusinya berada di [`../packs/universitas-terbuka/source-registry.json`](../packs/universitas-terbuka/source-registry.json). +Registry institusi: [`../packs/universitas-terbuka/source-registry.json`](../packs/universitas-terbuka/source-registry.json). -Sumber pusat 2026/2027 yang menjadi dependency pack UT saat review 3 September 2026: +Source pusat yang direview untuk pack 2026/2027 pada 3 September 2026: - **Katalog Kurikulum Program Studi FEB, FHISIP, FKIP, FST UT 2026/2027**, cetakan Juli 2026; - **Pedoman Sistem Penyelenggaraan Universitas Terbuka 2026/2027**, Juni 2026; -- laman resmi Program Studi S1 Akuntansi FEB UT. +- halaman resmi Program Studi S1 Akuntansi FEB UT. -Halaman regional tetap dicatat sebagai `secondary`. Pada review Semester 3, halaman UT Daerah yang masih memuat metadata AKM II lama menjadi bukti nyata bahwa domain resmi regional dapat tertinggal dari katalog pusat. Karena itu regression E14 sekarang bersifat **period-neutral**: source regional tidak menjadi kanonik untuk struktur kurikulum atau metadata mata kuliah ketika berbeda dari katalog pusat. +Halaman regional tetap dicatat karena berguna untuk mendeteksi drift. Pada review Semester 3, salah satu halaman UT Daerah masih menampilkan metadata AKM II lama. Regression E14 menangkap failure mode ini pada scope institusi: ketika metadata regional berbeda dari katalog pusat, struktur kurikulum dan metadata mata kuliah mengikuti source pusat yang current. -## Pack UT S1 Akuntansi 2026/2027 +## UT S1 Akuntansi 2026/2027 ### Semester 2 -Katalog pusat mencatat Semester 2 sebanyak **16 SKS**: +Katalog pusat mencatat **16 SKS**: - EACC4104 Perpajakan — 3 SKS; - EACC4103 Akuntansi Keuangan Menengah I — 3 SKS; @@ -68,11 +68,11 @@ Katalog pusat mencatat Semester 2 sebanyak **16 SKS**: - ECON4102 Pengantar Ekonomi Mikro — 3 SKS; - EMBS4101 Manajemen — 4 SKS. -Katalog menandai EACC4103 AKM I sebagai BP/BPro. Detail akademik seperti ini milik pack, bukan core Ramu. +EACC4103 AKM I ditandai BP/BPro. Detail seperti ini disimpan di pack karena terkait langsung dengan periode dan mata kuliah. ### Semester 3 -Semester 3 adalah **real second-pack test** pertama Ramu. Katalog pusat Juli 2026 mencatat **20 SKS**: +Katalog pusat Juli 2026 mencatat **20 SKS**: - EACC4206 Laboratorium Perpajakan — 2 SKS — II.1 — BPr/BPro; - MKDI4203 Kewirausahaan di Era Digital — 3 SKS — I.1; @@ -82,92 +82,101 @@ Semester 3 adalah **real second-pack test** pertama Ramu. Katalog pusat Juli 202 - EACC4205 Akuntansi Keuangan Menengah II — 3 SKS — II.3 — BP/BPro; - MKDI4202 Belajar di Era Digital — 3 SKS — II.5 — WT. -Review tidak memakai Semester 3 tahun sebelumnya sebagai template fakta. Perbandingan current-vs-old menemukan perubahan operasional yang material: +Review Semester 3 dilakukan dari source current, bukan dengan menyalin tahun sebelumnya. Beberapa perbedaan yang memengaruhi pack: -- **EACC4205 AKM II** current 2026/2027 memakai BMP baru `EACC4205` Edisi 1 tahun 2026 dan berstatus BP/BPro; metadata historis `EKMA4313 Edisi 3` tidak dipakai sebagai current truth; -- **EACC4206 Laboratorium Perpajakan** current slot ujian II.1, BPr/BPro, dan mempunyai prasyarat EACC4104 Perpajakan; -- **MKDI4201 Bahasa Inggris** current row S1 Akuntansi mencantumkan T; -- **MKDI4202 Belajar di Era Digital** current row mencantumkan WT. +- **EACC4205 AKM II** memakai BMP `EACC4205` Edisi 1 tahun 2026 dan berstatus BP/BPro; metadata historis `EKMA4313 Edisi 3` tidak dipakai sebagai current truth; +- **EACC4206 Laboratorium Perpajakan** memakai slot II.1, BPr/BPro, dengan prasyarat EACC4104; +- **MKDI4201 Bahasa Inggris** mencantumkan layanan T; +- **MKDI4202 Belajar di Era Digital** mencantumkan WT. -Pedoman 2026/2027 mengonfirmasi EACC4205 dan EACC4206 berada dalam kelompok praktik/berpraktik S1 Akuntansi. Pembelajaran diarahkan pada PRATON, studi kasus/problem solving berkesinambungan; untuk pola BPro terkait, PRATON berkontribusi 60%, UAS 40%, dan mahasiswa minimal mengerjakan 5 dari 8 tugas. +Pedoman 2026/2027 juga mengonfirmasi EACC4205 dan EACC4206 berada dalam kelompok praktik/berpraktik. Untuk pola BPro terkait, PRATON berkontribusi 60%, UAS 40%, dan minimal 5 dari 8 tugas perlu dikerjakan. Kasus PRATON dapat berkesinambungan sehingga state tugas sebelumnya tidak boleh diisi dengan tebakan. -Semester 3 mempunyai registry pack sendiri di [`../packs/universitas-terbuka/s1-akuntansi/2026-2027/semester-03/source-registry.json`](../packs/universitas-terbuka/s1-akuntansi/2026-2027/semester-03/source-registry.json). Registry tersebut menyimpan tujuh halaman BMP aktif Perpustakaan UT serta claim eksplisit untuk perubahan AKM II dan aturan Lab Perpajakan/PRATON. +Semester 3 memiliki registry pack sendiri di [`../packs/universitas-terbuka/s1-akuntansi/2026-2027/semester-03/source-registry.json`](../packs/universitas-terbuka/s1-akuntansi/2026-2027/semester-03/source-registry.json) untuk tujuh halaman BMP aktif dan claim yang memang spesifik pada periode tersebut. -Pack tetap tidak menyalin BMP atau materi berhak cipta ke repository. +Materi kuliah berhak cipta tidak disalin ke repository. -## Period metadata +## Metadata periode -Pack Semester 2 memakai `period_id: semester-02` dan `period_label: Semester 2`; Semester 3 memakai `semester-03` + `Semester 3`. +Semester 2 memakai: -Field generic Ramu tidak bernama `semester`. Institusi yang memakai trimester, quarter, term, atau academic session lain tetap menggunakan `period_id` + `period_label` sesuai sistem mereka. +```text +period_id: semester-02 +period_label: Semester 2 +``` + +Semester 3 memakai `semester-03` + `Semester 3`. + +Tooling hanya bergantung pada `period_id` dan `period_label`. Institusi lain dapat memakai trimester, quarter, term, atau academic session tanpa perlu dipaksa ke field khusus semester. ## Konflik source resmi -Failure mode source pusat vs regional adalah regression case tingkat **institusi Universitas Terbuka**, bukan case yang dicopy ke setiap periode. Pack UT lain reuse suite institusi yang sama; universitas lain dapat mendefinisikan hierarchy source/eval mereka sendiri tanpa mewarisi aturan UT. +Konflik pusat-vs-regional UT disimpan sebagai regression tingkat institusi supaya pack UT lain bisa memakai aturan yang sama tanpa menyalin case tersebut. -Konflik juga dapat terjadi di dalam authority yang sama. Karena itu status claim hanya diubah setelah evidence current benar-benar direview. +Konflik juga bisa muncul di dalam authority yang sama. Status claim baru diubah setelah evidence current direview. -Pada review dokumentasi OpenAI **3 September 2026**, dua konflik produk yang sebelumnya dicatat sudah dapat ditutup berdasarkan guidance resmi current: +Pada review dokumentasi OpenAI **3 September 2026**: - eligible existing Project dapat mengubah memory melalui **Project settings → Memory**; shared Project tetap project-only; -- Study Mode **tidak berlaku pada Project conversations** menurut artikel Study Mode dan guidance Projects current. +- Study Mode tidak berlaku pada Project conversations menurut guidance resmi current. -Ramu tetap tidak menjadikan Study Mode dependency. Data Controls untuk akun personal tetap diperlakukan sebagai pilihan akun pengguna, bukan syarat Ramu. +Data Controls pada akun personal tetap merupakan pilihan akun pengguna dan bukan dependency setup. ## Source freshness -`python scripts/check_source_freshness.py` menemukan seluruh registry global dan `packs/**/source-registry.json`, lalu memeriksa source **dan claim**. +`python scripts/check_source_freshness.py` menemukan registry global dan `packs/**/source-registry.json`, lalu memeriksa source serta claim. -Workflow **Source Freshness Watch** berjalan mingguan. Gate mencakup: +Workflow **Source Freshness Watch** berjalan mingguan dan memeriksa: -- umur `verified_at` source; +- umur `verified_at`; - reachability URL untuk `watch: true`; -- retry terbatas agar kegagalan jaringan sesaat tidak langsung menjadi failure final; +- retry terbatas untuk kegagalan jaringan sementara; - keberadaan source ID yang dipakai evidence claim; - `operational_policy` untuk conflicted claim; - umur `reviewed_at` claim. -Source/claim yang overdue meminta review. Watched URL yang tetap gagal setelah retry juga meminta review ketika scheduled workflow memakai `--fail-on-network`. Output checker dibawa ke GitHub Actions Job Summary dan issue review supaya source/error yang bermasalah dapat diidentifikasi. +Source atau claim yang melewati interval review akan ditandai. Watched URL yang tetap gagal setelah retry juga menjadi bahan review ketika scheduled workflow berjalan dengan `--fail-on-network`. -Namun: +Beberapa batas penting: -- URL hidup bukan bukti isi masih terbaru; -- URL gagal bukan bukti fakta berubah; -- perubahan HTML/hash bukan otomatis perubahan aturan; -- satu halaman resmi dapat memuat bagian dengan freshness berbeda; -- `verified_at`/`reviewed_at` hanya diperbarui setelah maintainer benar-benar membaca evidence yang relevan. +- URL hidup belum membuktikan isi masih terbaru; +- URL gagal belum membuktikan fakta berubah; +- perubahan HTML belum tentu perubahan aturan; +- satu halaman dapat memuat bagian dengan freshness berbeda; +- `verified_at` dan `reviewed_at` baru diperbarui setelah evidence-nya dibaca kembali. -Ramu sengaja tidak memakai hash HTML mentah sebagai kebenaran semantik untuk halaman dinamis. +Hash HTML mentah tidak dipakai sebagai kebenaran semantik untuk halaman dinamis. -## Validasi pack, period metadata, dan eval suites +## Validasi pack dan eval -`python scripts/validate_repo.py` memeriksa semua manifest yang terdaftar di `packs/index.json`, `period_id`/`period_label`, source dependency, course file, total SKS, version marker, Project Instructions, serta seluruh ordered `eval_suites` yang dipakai pack. +`python scripts/validate_repo.py` memeriksa manifest yang terdaftar di `packs/index.json`, metadata periode, source dependency, course file, total SKS, version marker, Project Instructions, dan ordered `eval_suites`. -`period_id` harus machine-safe dan sama antara katalog dengan manifest. `period_label` wajib eksplisit untuk UI. Site validator juga menolak asumsi `item.semester`/`manifest.semester` atau fallback yang membentuk `Semester ...`, supaya generic tooling tidak kembali mengunci satu jenis kalender akademik. +Site validator juga memeriksa agar tooling tetap generic dan tidak kembali membangun periode dari asumsi field `semester`. -Eval dapat disusun dari scope paling umum ke paling spesifik: +Eval disusun sebagai: ```text core → institution → program → pack ``` -Scope `institution` dan `program` bersifat opsional. Validator memastikan core berada di awal, pack berada di akhir, scope tidak mundur, `scope_ref` cocok, ID case tidak duplikat setelah merge, dan setiap contract case mempunyai behavior case yang sesuai. +Scope `institution` dan `program` opsional. Validator memastikan urutan tidak mundur, `scope_ref` cocok dengan manifest, ID case unik setelah digabung, dan setiap contract case memiliki behavior case yang sesuai. + +Semester 3 menambahkan E17–E24 untuk failure mode yang benar-benar spesifik: tax-currentness, metadata lama vs current AKM II, continuity kasus PRATON, requirement/control SIA, relevant cost, business evidence, tutoring Bahasa Inggris, dan ketidakpastian isi kebijakan GenAI UT. -Semester 3 menambahkan regression E17–E24 untuk failure mode yang memang pack-specific: tax-currentness, AKM II old-vs-current metadata, state kasus PRATON, SIA requirement/control, relevant cost, business evidence, language tutoring, dan ketidakpastian policy GenAI. +CI menjalankan dry-run eval per pack dari `packs/index.json`. Saat Semester 3 ditambahkan, matrix kedua muncul otomatis tanpa path khusus S3 di workflow. -CI menjalankan dry-run eval **per pack** melalui matrix yang dibangun dari `packs/index.json`. Jadi penambahan Semester 3 harus menghasilkan job eval-wiring kedua tanpa menulis path baru di workflow. +## Dokumentasi produk ChatGPT/OpenAI -## ChatGPT/OpenAI sebagai source produk +Fitur produk berubah lebih cepat daripada kurikulum akademik. Karena itu source produk disimpan di registry global dengan interval review yang lebih pendek. -Fitur ChatGPT berubah lebih cepat daripada kurikulum akademik sehingga dokumentasi produk berada di global registry dengan interval review lebih pendek. Ramu tidak menjadikan nama model, Study Mode, atau satu detail UI sebagai dependency permanen bila workflow inti dapat dibuat lebih netral. +Snapshot 3 September 2026 mencatat: -Pada review **3 September 2026**: +- dokumentasi Projects sebagai source utama untuk workspace, files/sources, Project Instructions, dan memory; +- release notes untuk kronologi perubahan produk; +- existing-Project memory sebagai claim `confirmed` pada eligible Project; +- Study Mode di Project conversations sebagai `confirmed` tidak tersedia; +- Data Controls FAQ sebagai source pengaturan penggunaan percakapan/data; +- label UI diperlakukan sebagai detail yang bisa berubah, sehingga panduan lebih mengutamakan fungsi daripada posisi tombol. -- dokumentasi Projects menjadi source utama untuk workspace Project, files/sources, Project Instructions, dan memory; -- release notes dipakai untuk kronologi perubahan produk; -- existing-Project memory saat ini berstatus `confirmed` dapat diubah untuk eligible Project; -- Study Mode di Project conversations saat ini berstatus `confirmed` tidak tersedia; -- Data Controls FAQ tetap menjadi source utama untuk pengaturan penggunaan percakapan/data ChatGPT; -- label tombol Project Sources dapat berubah, sehingga setup Ramu menjelaskan fungsi tanpa menjadikan satu label UI sebagai kontrak permanen. +Registry produk: [`../sources/registry.json`](../sources/registry.json). -Source/claim produk yang direview ada di [`../sources/registry.json`](../sources/registry.json). Tanggal verifikasi source dan review claim harus dibaca sebagai snapshot, bukan cap “benar selamanya”. +Semua tanggal review di repository adalah snapshot, bukan cap bahwa sebuah source akan tetap benar selamanya. From bdcee567c8b011c4ff3085501347977a324e0228 Mon Sep 17 00:00:00 2001 From: ysmn <115535709+man612@users.noreply.github.com> Date: Thu, 3 Sep 2026 15:46:26 +0700 Subject: [PATCH 06/24] Make contribution guide more direct --- CONTRIBUTING.md | 154 +++++++++++++++++++++++++----------------------- 1 file changed, 81 insertions(+), 73 deletions(-) diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index 5896b98..241bdb1 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -1,107 +1,115 @@ # Berkontribusi ke Ramu -Terima kasih sudah ingin membantu Ramu. Kontribusi paling berguna adalah perubahan yang membuat perilaku belajar lebih dapat diuji, sumber lebih dapat dipercaya, setup lebih mudah, atau pack lebih mudah dipelihara. +Kontribusi yang paling berguna biasanya jatuh ke salah satu dari empat hal: memperbaiki perilaku belajar, memperjelas setup, menjaga source tetap benar, atau membuat pack/tooling lebih mudah dipelihara. -## Sebelum membuat perubahan +## Sebelum mulai -1. Jangan menambahkan BMP, modul, materi kuliah berbayar, kunci jawaban, atau dokumen lain yang tidak boleh didistribusikan ulang. -2. Untuk fakta akademik, prioritaskan sumber resmi dan masukkan source ke registry dengan scope yang tepat. -3. Pisahkan fakta terverifikasi dari asumsi, pengalaman komunitas, dan keputusan desain. -4. Jangan mengunci runtime ke satu nama model AI. Model/plan dapat berubah; kontrak Ramu harus tetap masuk akal ketika model berganti. -5. Jangan menyebut pack Ramu sebagai pack “resmi” dari universitas. Gunakan `maintainer: ramu` (Ramu Maintained) atau `maintainer: community`. -6. Gunakan label periode yang jelas untuk pengguna. Jangan memakai `S2`, `S3`, dan bentuk singkat serupa sebagai pengganti “Semester 2/3” pada nama Project karena dapat tertukar dengan jenjang pendidikan. -7. Pisahkan label manusia dari identity mesin. Nama institusi/program boleh berubah tampilannya, tetapi `institution_id`, `program_id`, dan `pack id` harus stabil dan tidak boleh dipakai ulang untuk entitas berbeda. +Beberapa aturan dasar: -## Jalur kontribusi +1. jangan commit BMP, modul berbayar, kunci jawaban, atau materi lain yang tidak boleh didistribusikan ulang; +2. fakta akademik perlu ditopang source resmi yang sesuai; +3. bedakan fakta terverifikasi, asumsi, pengalaman komunitas, dan keputusan desain; +4. jangan mengunci runtime ke satu nama model AI; +5. pack yang dipelihara di repository utama tetap proyek independen, bukan pack resmi universitas; +6. gunakan label periode yang jelas pada UI, misalnya `Semester 3`, bukan `S3`; +7. jaga `institution_id`, `program_id`, dan pack `id` tetap stabil setelah dipakai. + +## Jenis kontribusi + +Yang cocok dibawa lewat issue atau PR antara lain: - dokumentasi dan onboarding; - protocol, Project Instructions, atau course pack; -- perubahan/kerusakan source resmi; -- behavior eval untuk failure mode realistis; +- source resmi yang berubah atau tidak sinkron; +- behavior eval untuk failure mode yang bisa direproduksi; - validator, source watcher, site, atau tooling eval; - pack periode/program/institusi baru. ## Menambah pack baru -Tooling Ramu menemukan pack melalui [`packs/index.json`](packs/index.json). Jangan menambahkan path baru ke JavaScript atau Python secara manual. +Tooling menemukan pack dari [`packs/index.json`](packs/index.json). Hindari menambahkan daftar path baru secara manual ke JavaScript atau Python. -Untuk pack baru: +Urutan kerja yang disarankan: -1. buat struktur `packs/////`; -2. tentukan `institution_id` yang stabil dan machine-safe untuk institusi tersebut; -3. tentukan `program_id` yang stabil dan unik secara global untuk program tersebut; +1. buat `packs/////`; +2. tentukan `institution_id` yang stabil dan machine-safe; +3. tentukan `program_id` yang stabil dan unik secara global; 4. buat `manifest.json` mengikuti `schemas/pack-manifest.schema.json`; -5. tentukan `period_id` machine-safe, misalnya `semester-03`, `trimester-01`, `quarter-fall`, atau `term-02`; -6. tentukan `period_label` yang manusiawi sesuai istilah institusi, misalnya `Semester 3`, `Trimester 1`, `Fall Quarter`, atau `Term 2`; -7. taruh course pack di folder `courses/` dan Project Instructions di pack tersebut; -8. pakai registry yang sudah ada atau buat scoped `source-registry.json` jika source-nya belum punya tempat yang tepat; scoped registry harus membawa identity institusi/program/pack yang sesuai; -9. tentukan eval suite yang benar-benar berlaku untuk pack tersebut; -10. buat eval khusus pack di `/evals/contracts.json` dan `/evals/behavior.json`; -11. daftarkan semua suite berurutan pada `eval_suites` di manifest; `scope_ref` harus menunjuk identity mesin yang sesuai; -12. daftarkan pack di `packs/index.json` dengan identity, `period_id`, dan `period_label` yang sama dengan manifest; +5. isi `period_id`, misalnya `semester-03`, `trimester-01`, atau `term-fall`; +6. isi `period_label` sesuai istilah manusiawi yang dipakai institusi; +7. tambahkan Project Instructions dan course pack; +8. pakai registry yang sudah ada atau buat scoped `source-registry.json` jika diperlukan; +9. pilih eval suite pada scope yang tepat; +10. buat eval khusus pack bila memang ada failure mode pack-specific; +11. susun `eval_suites` dari umum ke spesifik; +12. daftarkan pack di `packs/index.json`; 13. jalankan seluruh validasi sebelum membuka PR. -Field penting: +Field yang paling sering disentuh: -- `institution_id`: identity mesin stabil untuk institusi, misalnya `universitas-terbuka`; -- `institution`: label manusia, misalnya `Universitas Terbuka`; -- `program_id`: identity mesin unik secara global untuk program, misalnya `universitas-terbuka.s1-akuntansi`; -- `program`: label manusia, misalnya `S1 Akuntansi`; -- `status`: `source-verified`, `verified`, `community`, `experimental`, atau `deprecated`; -- `maintainer`: `ramu` atau `community`; -- `period_id`: ID periode untuk mesin, lower-case dan stabil, misalnya `semester-02`, `trimester-01`, atau `term-fall`; -- `period_label`: label periode yang dilihat manusia, misalnya `Semester 2`, `Trimester 1`, atau `Fall Term`; -- `project_name`: harus diawali ` • `, misalnya `Semester 2 • AKM I`; -- `source_registries`: registry yang memang menjadi dependency pack; -- `eval_suites`: ordered suite `core → institution → program → pack` yang memang berlaku untuk pack; -- `focus`: deskripsi pendek setiap mata kuliah untuk site; jangan hardcode focus di front-end. +- `institution_id` — identity mesin institusi; +- `institution` — label institusi untuk manusia; +- `program_id` — identity mesin program; +- `program` — label program; +- `status` — `source-verified`, `verified`, `community`, `experimental`, atau `deprecated`; +- `maintainer` — `ramu` atau `community`; +- `period_id` — ID periode machine-safe; +- `period_label` — label periode untuk UI; +- `project_name` — diawali ` • `; +- `source_registries` — registry yang menjadi dependency pack; +- `eval_suites` — urutan suite yang berlaku; +- `focus` — deskripsi pendek mata kuliah untuk site. -Ramu sengaja tidak memiliki field universal bernama `semester`. Semester hanyalah salah satu bentuk academic period. Pack yang memang memakai semester cukup merepresentasikannya melalui `period_id`/`period_label`. Identifier pack, folder, atau versi internal boleh tetap ringkas seperti `.s2`, `semester-02/`, atau `2026-2027.s2.1` bila itu memang identitas pack tersebut; generic tooling tidak boleh mengasumsikan semua pack mengikuti bentuk itu. +Periode tidak disimpan dalam field universal `semester`. Pack yang memang memakai semester cukup memakai `period_id`/`period_label`, sementara institusi lain dapat menggunakan istilah kalender mereka sendiri. ## Memilih scope eval -Jangan copy sebuah regression case hanya karena pack baru membutuhkan perilaku yang sama. Tempatkan case pada scope paling sempit yang masih benar-benar reusable: +Letakkan regression case pada scope paling sempit yang masih reusable: + +- `core` — berlaku untuk semua pack, misalnya sitasi palsu atau prompt injection; +- `institution` — berlaku lintas pack dalam satu institusi; +- `program` — berlaku lintas periode pada satu program; +- `pack` — membutuhkan konteks periode atau mata kuliah tertentu. + +Jangan copy case yang sama ke banyak pack hanya karena semuanya membutuhkan perilaku tersebut. -- `core` → berlaku untuk semua pack Ramu, misalnya sitasi palsu atau prompt injection; -- `institution` → berlaku lintas program/periode pada satu institusi, misalnya aturan source governance Universitas Terbuka; -- `program` → berlaku lintas periode pada satu program, tetapi tidak otomatis untuk program lain; -- `pack` → membutuhkan mata kuliah/periode/course pack tertentu. +Setiap suite memiliki `suite_id`, `scope`, dan—selain core—`scope_ref`. -Setiap suite memiliki `suite_id`, `scope`, dan—selain core—`scope_ref`. `scope_ref` bukan label bebas: +`scope_ref` harus cocok dengan identity manifest: -- `institution` harus sama dengan `institution_id` manifest; -- `program` harus sama dengan `program_id` manifest; -- `pack` harus sama dengan `id` pack; -- `core` tidak boleh mempunyai `scope_ref`. +- `institution` → `institution_id`; +- `program` → `program_id`; +- `pack` → pack `id`; +- `core` → tanpa `scope_ref`. -File contracts dan behavior harus mendeklarasikan metadata yang sama dengan manifest. ID case harus unik setelah semua suite digabung; suite yang lebih spesifik **tidak mengganti** case milik suite sebelumnya. +Contract dan behavior file harus mendeklarasikan metadata yang sama. ID case tetap unik setelah seluruh suite digabung. -Urutan di manifest harus dari umum ke spesifik. Contoh: +Contoh urutan: ```text core → institution:universitas-terbuka → pack:id.ut.accounting-s1.2026-2027.s2 ``` -atau bila ada rule khusus S1 Akuntansi lintas periode: +Jika suatu hari ada aturan khusus S1 Akuntansi lintas periode: ```text core → institution:universitas-terbuka → program:universitas-terbuka.s1-akuntansi → pack: ``` -Behavior `defaults` diproses berurutan, sehingga suite yang lebih spesifik boleh mengubah default runtime seperti threshold/token untuk case berikutnya. Perubahan default harus disengaja dan dijelaskan di PR. +Behavior `defaults` diproses berurutan, jadi suite yang lebih spesifik boleh mengubah default runtime. Perubahan tersebut harus jelas di PR. ## Memilih scope source -- `sources/registry.json` → global/runtime, misalnya dokumentasi platform; registry global tidak membawa identity institusi/program/pack; -- `packs//source-registry.json` → source institusi dan wajib membawa `institution_id` + label institusi; -- registry program → wajib membawa `institution_id`, `program_id`, dan label manusianya; -- registry pack → wajib membawa identity institusi + program + `pack_id`. +- `sources/registry.json` → global/runtime; +- `packs//source-registry.json` → institusi; +- registry program → membawa identity institusi + program; +- registry pack → membawa identity institusi + program + `pack_id`. -Cross-file identity validator memastikan pack tidak dapat diam-diam memakai scoped registry atau eval suite milik institusi/program lain. ID source tetap harus unik lintas seluruh registry. Source sekunder atau community signal tidak boleh diam-diam menjadi kanonik hanya karena berada di domain resmi. +Source ID harus unik lintas registry. Halaman sekunder atau community signal juga tidak otomatis menjadi kanonik hanya karena domainnya resmi. -## Validasi tanpa API +## Validasi lokal -Gunakan Python 3.12 atau versi kompatibel. Dependency di `requirements-dev.txt` hanya untuk validation tooling dan bukan dependency runtime mahasiswa. +Gunakan Python 3.12 atau versi kompatibel. ```bash python -m pip install -r requirements-dev.txt @@ -114,40 +122,40 @@ python scripts/check_source_freshness.py python scripts/run_behavior_evals.py --dry-run --pack ``` -`validate_schemas.py` melakukan dua hal berbeda dari semantic validator: memastikan setiap schema Ramu sendiri valid sebagai JSON Schema Draft 2020-12, lalu memvalidasi katalog, semua manifest, semua source registry, dan semua eval JSON terhadap schema yang dipublish. `validate_repo.py` dan `validate_scope_identities.py` tetap diperlukan untuk invariant lintas-file yang tidak cukup dinyatakan oleh satu JSON Schema instance. +`validate_schemas.py` memeriksa schema dan instance JSON. `validate_repo.py` serta `validate_scope_identities.py` menangani invariant lintas-file yang lebih tepat diperiksa secara semantik. -Untuk daftar pack: +Daftar pack: ```bash python scripts/list_pack_ids.py ``` -Untuk membuat checklist yang dapat diuji langsung di ChatGPT Projects tanpa OpenAI API: +Checklist manual tanpa API: ```bash python scripts/prepare_manual_eval.py --pack ``` -Workflow **Manual Eval Kit** melakukan hal yang sama melalui GitHub Actions tanpa secret dan tanpa biaya API. +Workflow **Manual Eval Kit** menyediakan jalur yang sama lewat GitHub Actions. -## Behavior eval dengan API — opsional +## Behavior eval dengan API -Automated behavior eval adalah lapisan QA tambahan, bukan dependency untuk mahasiswa atau syarat agar static CI berjalan. Jika digunakan, `OPENAI_API_KEY`, candidate model, grader model, dan pack dipilih eksplisit pada workflow **Behavior Evals**. +Automated behavior eval adalah QA tambahan. Bila digunakan, `OPENAI_API_KEY`, candidate model, grader model, dan pack dipilih saat workflow dijalankan. Jangan memasukkan API key ke commit, issue, artifact, screenshot, atau log publik. ## Pull request -Buat PR sekecil mungkin dan jelaskan: +PR yang baik menjelaskan: - masalah yang diperbaiki; -- scope eval/source/pack yang terpengaruh; -- source yang digunakan bila mengubah fakta akademik; -- cara memverifikasi perubahan; -- risiko atau hal yang belum diuji. +- scope yang berubah; +- source yang dipakai bila ada perubahan fakta akademik; +- cara memverifikasi hasil; +- hal yang belum diuji atau risiko yang masih tersisa. -Jika perubahan menyentuh guardrail, source routing, state, atau perilaku tutor, tambahkan/perbarui eval yang relevan pada scope yang tepat. Failure mode universal masuk core; aturan institusi/program jangan diduplikasi ke setiap pack; skenario yang benar-benar membutuhkan course pack tertentu tetap dekat dengan pack. +Jika perubahan menyentuh guardrail, source routing, learner state, atau perilaku tutor, tambahkan/perbarui eval pada scope yang sesuai. ## Prinsip review -Perubahan tidak dinilai dari panjang prompt atau dokumentasinya. Yang dicari adalah perilaku yang jelas, sumber yang dapat ditelusuri, manifest yang self-describing, identity institusi/program yang stabil, period metadata yang tidak mengunci satu sistem kalender, label yang tidak membingungkan pengguna, setup yang mudah, dan cara nyata untuk menguji ulang perubahan tersebut. +Yang dicari bukan dokumentasi paling panjang, tetapi perubahan yang bisa dipahami dan diuji ulang: source jelas, identity stabil, metadata periode konsisten, setup tetap sederhana, dan failure mode penting punya tempat untuk direproduksi. From 999bfa1d268b5d8643aa4a9fd1334668dc4dc579 Mon Sep 17 00:00:00 2001 From: ysmn <115535709+man612@users.noreply.github.com> Date: Thu, 3 Sep 2026 15:46:40 +0700 Subject: [PATCH 07/24] Make support guidance concise --- SUPPORT.md | 28 ++++++++++++++-------------- 1 file changed, 14 insertions(+), 14 deletions(-) diff --git a/SUPPORT.md b/SUPPORT.md index 7a0d6eb..af98ea6 100644 --- a/SUPPORT.md +++ b/SUPPORT.md @@ -1,23 +1,23 @@ -# Dukungan Ramu +# Dukungan -Ramu masih berstatus **Public Beta**. Dukungan diberikan secara best-effort melalui repository ini. +Ramu masih berstatus **Public Beta** dan dipelihara sebagai proyek independen. Bantuan diberikan secara best-effort melalui repository ini. ## Sebelum membuka issue -- Untuk mulai memakai Ramu, buka [halaman setup](https://man612.github.io/ramu/setup.html). -- Untuk detail setup ChatGPT Projects, baca [Panduan Setup Ramu](docs/PANDUAN-SETUP-CHATGPT.md). -- Untuk aturan kontribusi, baca [CONTRIBUTING.md](CONTRIBUTING.md). -- Untuk masalah keamanan, baca [SECURITY.md](SECURITY.md) sebelum membagikan detail. +- mulai dari [halaman setup](https://man612.github.io/ramu/setup.html); +- untuk detail ChatGPT Projects, baca [Panduan Setup](docs/PANDUAN-SETUP-CHATGPT.md); +- untuk kontribusi, baca [CONTRIBUTING.md](CONTRIBUTING.md); +- untuk laporan keamanan, baca [SECURITY.md](SECURITY.md) lebih dulu. -## Pilih jalur yang tepat +## Pilih jalur yang sesuai -- **Bug / perilaku tidak sesuai** → gunakan form `Bug atau perilaku tidak sesuai`. -- **Source resmi berubah / berbeda** → gunakan form `Sumber berubah atau tidak dapat diakses`. -- **Minta pack periode, program, atau institusi baru** → gunakan form `Minta pack baru`. -- **Pertanyaan umum yang tidak cocok dengan form di atas** → blank issue boleh digunakan dengan konteks yang cukup. +- **Bug / perilaku tidak sesuai** → form `Bug atau perilaku tidak sesuai`; +- **Source resmi berubah / berbeda** → form `Sumber berubah atau tidak dapat diakses`; +- **Minta pack baru** → form `Minta pack baru`; +- **Pertanyaan lain** → blank issue boleh digunakan selama konteksnya cukup. -## Jangan kirim ke issue publik +## Jangan kirim data sensitif ke issue publik -Jangan unggah API key, token, data pribadi, raw transcript, tugas atau rubrik privat, BMP/modul berbayar, maupun materi berhak cipta yang tidak boleh didistribusikan ulang. +Hindari API key, token, data pribadi, transcript mentah, tugas/rubrik privat, BMP/modul berbayar, atau materi lain yang tidak boleh didistribusikan ulang. -Ramu tidak menyediakan dukungan resmi dari Universitas Terbuka, institusi pendidikan lain, maupun OpenAI. Untuk masalah akun, billing, atau layanan platform, gunakan kanal dukungan resmi penyedia terkait. +Untuk masalah akun, billing, atau layanan ChatGPT/UT/platform lain, gunakan kanal dukungan resmi penyedia terkait. Repository ini bukan kanal dukungan resmi Universitas Terbuka maupun OpenAI. From 1001984c1e7e1126bc33468aff70f76d5ff83f60 Mon Sep 17 00:00:00 2001 From: ysmn <115535709+man612@users.noreply.github.com> Date: Thu, 3 Sep 2026 15:46:54 +0700 Subject: [PATCH 08/24] Tighten security policy wording --- SECURITY.md | 20 ++++++++++---------- 1 file changed, 10 insertions(+), 10 deletions(-) diff --git a/SECURITY.md b/SECURITY.md index b743ba8..ca1e313 100644 --- a/SECURITY.md +++ b/SECURITY.md @@ -1,29 +1,29 @@ # Security Policy -Ramu tidak menjalankan server atau menyimpan akun mahasiswa sendiri, tetapi tetap memiliki risiko keamanan pada prompt, sumber, file yang diunggah, dan tooling evaluasi. +Ramu berjalan sebagai konfigurasi dan tooling di atas layanan AI pihak ketiga. Tidak ada server aplikasi atau akun mahasiswa yang dikelola repository ini, tetapi risiko tetap ada pada prompt, source, file, workflow, dan tooling evaluasi. ## Versi yang didukung -Security fix diprioritaskan untuk **current `main`** dan **public-beta release terbaru**. Tag beta lama tetap dipertahankan sebagai snapshot yang dapat ditelusuri, tetapi tidak dijanjikan menerima backport untuk setiap perbaikan. +Perbaikan keamanan diprioritaskan untuk **current `main`** dan **public-beta release terbaru**. Tag beta lama dipertahankan sebagai snapshot dan tidak selalu menerima backport. -Jika masalah hanya muncul pada release lama, periksa dulu apakah masalah tersebut masih ada pada release terbaru sebelum membuat laporan publik. +Jika masalah hanya muncul pada release lama, cek dulu apakah masih dapat direproduksi pada versi terbaru. ## Yang termasuk isu keamanan Contohnya: -- prompt injection dari source/course material yang dapat mengubah guardrail Ramu; -- source poisoning atau source routing yang membuat informasi tidak tepercaya diperlakukan sebagai sumber resmi; -- secret/API key yang dapat bocor melalui workflow, artifact, log, atau contoh konfigurasi; +- prompt injection dari source/course material yang dapat mengubah guardrail; +- source poisoning atau routing yang membuat sumber tidak tepercaya dianggap resmi; +- API key/secret bocor lewat workflow, artifact, log, atau contoh konfigurasi; - file atau instruksi yang menyebabkan data pribadi/sensitif tersalin ke output publik; -- perubahan tooling yang membuat hasil eval terlihat lulus padahal gate tidak benar-benar dijalankan. +- tooling yang membuat eval terlihat lulus padahal gate sebenarnya tidak dijalankan. ## Pelaporan -Untuk masalah yang tidak mengandung detail sensitif, buka GitHub Issue dengan reproduksi minimal dan dampaknya. +Masalah tanpa detail sensitif dapat dilaporkan lewat GitHub Issue dengan reproduksi minimal dan dampaknya. -Untuk kerentanan yang memerlukan detail sensitif, gunakan GitHub private vulnerability reporting / Security Advisory repository bila fitur tersebut tersedia. Jangan menempelkan API key, token, data pribadi, materi kuliah privat, atau exploit yang belum diperbaiki ke issue publik. +Untuk kerentanan yang memerlukan detail sensitif, gunakan GitHub private vulnerability reporting / Security Advisory bila tersedia. Jangan menaruh API key, token, data pribadi, materi kuliah privat, atau exploit yang belum diperbaiki di issue publik. ## Batas keamanan -Ramu adalah lapisan konfigurasi dan evaluasi di atas layanan AI yang digunakan pengguna. Ramu tidak dapat menjamin perilaku model pihak ketiga, uptime layanan, kebijakan privasi platform, atau bahwa setiap jawaban AI selalu benar. Guardrail dan eval di repo digunakan untuk mengurangi failure mode yang diketahui, bukan sebagai jaminan keamanan absolut. +Guardrail dan eval membantu mengurangi failure mode yang sudah diketahui, tetapi tidak bisa menjamin perilaku model pihak ketiga, uptime layanan, kebijakan privasi platform, atau akurasi setiap jawaban AI. Klaim keamanan sebaiknya selalu dibaca dalam batas tersebut. From dd9985fe399f780a4b622947b8dab38a56056fad Mon Sep 17 00:00:00 2001 From: ysmn <115535709+man612@users.noreply.github.com> Date: Thu, 3 Sep 2026 15:47:05 +0700 Subject: [PATCH 09/24] Refine code of conduct tone --- CODE_OF_CONDUCT.md | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/CODE_OF_CONDUCT.md b/CODE_OF_CONDUCT.md index 84c55de..9cc0b57 100644 --- a/CODE_OF_CONDUCT.md +++ b/CODE_OF_CONDUCT.md @@ -1,17 +1,17 @@ # Code of Conduct -Ramu menerima kontribusi dari mahasiswa, pengembang, pengajar, dan pengguna AI dengan tingkat pengalaman yang berbeda. Diskusi harus fokus pada masalah, bukti, desain, dan dampak perubahan—bukan merendahkan orang yang melaporkan masalah atau belum memahami bagian teknis tertentu. +Kontribusi bisa datang dari mahasiswa, developer, pengajar, atau pengguna AI dengan tingkat pengalaman yang berbeda. Diskusi sebaiknya tetap fokus pada masalah, bukti, desain, dan dampak perubahan. ## Yang diharapkan -- Jelaskan kritik secara spesifik dan dapat ditindaklanjuti. -- Bedakan fakta terverifikasi, asumsi, dan pengalaman pribadi. -- Hormati privasi; jangan meminta atau mempublikasikan data pribadi, credential, atau materi kuliah privat. -- Jangan menggunakan issue/PR untuk membagikan kunci jawaban, hasil plagiarisme, atau materi yang tidak boleh didistribusikan. -- Terima koreksi ketika sumber atau implementasi menunjukkan hal yang berbeda. +- Kritik dibuat spesifik dan sebisa mungkin dapat ditindaklanjuti. +- Fakta, asumsi, dan pengalaman pribadi dibedakan dengan jelas. +- Privasi dijaga; jangan meminta atau mempublikasikan data pribadi, credential, atau materi kuliah privat. +- Issue/PR bukan tempat membagikan kunci jawaban, hasil plagiarisme, atau materi yang tidak boleh didistribusikan. +- Koreksi diterima ketika source atau implementasi menunjukkan hal yang berbeda. ## Yang tidak diterima -Pelecehan, ancaman, serangan personal, diskriminasi, doxxing, spam, atau publikasi data/credential orang lain tidak diterima di ruang komunitas Ramu. +Pelecehan, ancaman, serangan personal, diskriminasi, doxxing, spam, dan publikasi data/credential orang lain tidak diterima. -Maintainer dapat mengedit, menyembunyikan, atau menutup kontribusi yang melanggar aturan ini dan dapat membatasi partisipasi berulang yang merusak diskusi. +Kontribusi yang melanggar aturan ini dapat diedit, disembunyikan, atau ditutup. Partisipasi juga dapat dibatasi bila pelanggaran berulang mengganggu diskusi. From 205aa4c28fed042602dfba52513084ff47dce6ea Mon Sep 17 00:00:00 2001 From: ysmn <115535709+man612@users.noreply.github.com> Date: Thu, 3 Sep 2026 15:47:28 +0700 Subject: [PATCH 10/24] Make design research notes more direct --- docs/RISET-DAN-DASAR-DESAIN.md | 48 ++++++++++++++++++---------------- 1 file changed, 26 insertions(+), 22 deletions(-) diff --git a/docs/RISET-DAN-DASAR-DESAIN.md b/docs/RISET-DAN-DASAR-DESAIN.md index 2fd1fed..2b6b2e1 100644 --- a/docs/RISET-DAN-DASAR-DESAIN.md +++ b/docs/RISET-DAN-DASAR-DESAIN.md @@ -1,50 +1,54 @@ # Riset dan Dasar Desain -Ramu tidak dibangun dari asumsi bahwa prompt yang panjang otomatis menghasilkan pendamping belajar yang baik. Struktur proyek diturunkan dari dokumentasi produk, riset pembelajaran, RAG pendidikan, self-regulated learning, serta masalah nyata yang muncul pada penggunaan Project jangka panjang. +Struktur Ramu tidak dibangun dari asumsi bahwa prompt panjang otomatis menghasilkan pendamping belajar yang baik. Keputusan desainnya ditarik dari dokumentasi produk, riset pembelajaran, RAG pendidikan, self-regulated learning, dan masalah yang muncul saat Project dipakai dalam jangka panjang. ## 1. AI sebaiknya membimbing, bukan selalu mengambil alih -Randomized controlled trial Kestin dkk. (2025) pada mahasiswa menemukan AI tutor yang sengaja dirancang dengan praktik pedagogis dapat menghasilkan learning gain tinggi dan waktu belajar lebih singkat dibanding kondisi active-learning yang diuji. Desain yang mereka tekankan mencakup active learning, pengelolaan cognitive load, scaffolding, feedback yang tepat waktu, akurasi, dan self-pacing. +Randomized controlled trial Kestin dkk. (2025) pada mahasiswa menemukan AI tutor yang dirancang dengan praktik pedagogis dapat menghasilkan learning gain tinggi dan waktu belajar lebih singkat dibanding kondisi active-learning yang diuji. Desain tutor menekankan active learning, cognitive load, scaffolding, feedback, akurasi, dan self-pacing. -Hal penting lain dari penelitian tersebut: **system prompt saja tidak selalu cukup** untuk menjaga urutan scaffolding pada soal multipart. Karena itu Ramu memisahkan instruksi, course context, workflow, dan verifier. +Salah satu catatan penting dari penelitian itu adalah bahwa **system prompt saja tidak selalu cukup** untuk menjaga urutan scaffolding pada soal multipart. Di Ramu, alasan ini ikut mendorong pemisahan Project Instructions, course context, workflow, dan verifier. -Bastani dkk. (PNAS, 2025) juga menunjukkan akses GenAI tanpa guardrail dapat meningkatkan performa saat bantuan tersedia tetapi menimbulkan dampak buruk ketika bantuan dilepas; desain tutor dengan safeguards mengurangi masalah tersebut. Implikasinya untuk Ramu: mode belajar, review, dan latihan tidak boleh otomatis berubah menjadi generator jawaban final. +Bastani dkk. (PNAS, 2025) juga menunjukkan GenAI tanpa guardrail dapat menaikkan performa saat bantuan tersedia tetapi merugikan performa ketika bantuan dilepas. Tutor dengan safeguards mengurangi masalah tersebut. + +Implikasinya: mode belajar, review, dan latihan tidak otomatis berubah menjadi generator jawaban final. Sumber: - https://doi.org/10.1038/s41598-025-97652-6 - https://doi.org/10.1073/pnas.2422633122 -## 2. Self-regulated learning harus tetap dimiliki mahasiswa +## 2. Self-regulated learning tetap perlu dimiliki mahasiswa + +Systematic mapping review Banihashem dkk. (2025) terhadap 84 studi menemukan penggunaan AI untuk SRL banyak berfokus pada adaptive/personalized systems, intelligent tutoring, assessment/evaluation, prediction, dan profiling. -Systematic mapping review Banihashem dkk. (2025) terhadap 84 studi menemukan penggunaan AI untuk SRL banyak berfokus pada adaptive/personalized systems, intelligent tutoring, assessment/evaluation, prediction, dan profiling. Ramu menerjemahkannya menjadi alur: +Workflow Ramu menerjemahkan ide tersebut menjadi alur: **pahami → rencanakan → kerjakan → periksa → refleksikan → perbaiki** -Feedback tutor tidak berhenti sebagai satu chat; hasilnya dapat diringkas menjadi lesson learned yang dipakai pada tugas berikutnya. +Feedback tutor juga tidak perlu berhenti sebagai satu chat. Bagian pentingnya bisa diringkas menjadi lesson learned atau learner state yang dipakai pada pekerjaan berikutnya. Sumber: - https://doi.org/10.1186/s41239-025-00548-8 ## 3. Materi eksternal lebih aman daripada mengandalkan ingatan model -Systematic survey RAG untuk pendidikan (2025) merangkum 51 studi dan menunjukkan manfaat retrieval untuk meningkatkan grounding, freshness, dan kredibilitas jawaban pendidikan. Namun RAG tetap memiliki tantangan: hallucination, kelengkapan sumber, timeliness, dan multimodality. +Systematic survey RAG untuk pendidikan (2025) merangkum 51 studi dan menunjukkan manfaat retrieval untuk grounding, freshness, dan kredibilitas jawaban pendidikan. Masalah seperti hallucination, kelengkapan sumber, timeliness, dan multimodality tetap ada. -Ramu tidak menjalankan vector database sendiri. Prinsip yang diambil adalah **grounding**: course pack memberi aturan sumber, sementara BMP/rubrik/materi mahasiswa dimasukkan sebagai sumber Project saat diperlukan. +Repository ini tidak menjalankan vector database. Prinsip yang diambil adalah **grounding**: course pack memberi aturan dan konteks, sementara BMP, rubrik, materi, screenshot, atau file pengguna ditambahkan ke Project saat diperlukan. Sumber: - https://doi.org/10.1016/j.caeai.2025.100417 -## 4. Project harus kecil dan fokus +## 4. Project kecil lebih mudah dijaga -Dokumentasi OpenAI menyatakan Project dapat memakai percakapan lain dalam Project sebagai konteks. Dengan project-only memory, Project tidak mengambil percakapan dari luar. +Dokumentasi OpenAI menyatakan Project dapat memakai percakapan lain di Project yang sama sebagai konteks. Dengan project-only memory, konteks dari luar Project dipisahkan. -Di sisi komunitas, pengguna Project jangka panjang berulang kali meminta retrieval yang lebih eksplisit, memory yang lebih transparan, dan kontrol lebih baik atas pengetahuan Project. Dalam salah satu respons komunitas resmi, OpenAI Support juga menyarankan mempertahankan running project summary untuk pekerjaan panjang. Sinyal ini bukan spesifikasi produk, tetapi cukup relevan sebagai failure mode yang perlu diantisipasi. +Di komunitas, penggunaan Project jangka panjang juga memunculkan permintaan berulang soal retrieval yang lebih eksplisit, memory yang lebih transparan, dan kontrol yang lebih baik atas knowledge Project. Sinyal komunitas bukan spesifikasi produk, tetapi berguna untuk mengenali failure mode. -Karena itu default Ramu: +Default yang dipakai: - satu mata kuliah satu Project; - satu pekerjaan besar satu chat; -- source eksplisit untuk keputusan/feedback penting; +- source eksplisit untuk keputusan atau feedback penting; - hindari satu Project besar untuk seluruh semester. Sumber resmi: @@ -56,28 +60,28 @@ Sinyal komunitas: - https://community.openai.com/t/feature-request-bring-project-scoped-retrieval-to-chatgpt/1385141 - https://community.openai.com/t/persistent-project-workspaces/1385395 -## 5. Academic integrity harus mengikuti konteks kampus/tugas +## 5. Academic integrity mengikuti konteks kampus dan tugas Panduan Kemdiktisaintek 2025, UNESCO, dan sumber regulator pendidikan tinggi internasional sama-sama menekankan penggunaan GenAI yang human-centred, menjaga agency mahasiswa, privasi, transparansi, dan integritas assessment. -Ramu tidak memaksakan satu kebijakan AI untuk semua kampus. Course pack harus membedakan aturan institusi, tutor, dan tugas. Jika sebuah assessment melarang penggunaan AI untuk menghasilkan jawaban, sistem tetap boleh membantu memahami konsep atau mereview pekerjaan sesuai aturan yang berlaku, tetapi tidak mengabaikan larangan tersebut. +Tidak ada satu kebijakan AI yang cocok untuk semua kampus atau tugas. Course pack perlu mengikuti aturan institusi, tutor, dan rubrik yang berlaku. Jika sebuah assessment membatasi penggunaan AI untuk menghasilkan jawaban, bantuan dialihkan ke pemahaman konsep, review, atau bentuk lain yang masih sesuai aturan tersebut. Sumber: - https://kemdiktisaintek.go.id/library/book/122191 - https://www.unesco.org/en/articles/guidance-generative-ai-education-and-research - https://www.teqsa.gov.au/guides-resources/higher-education-good-practice-hub/gen-ai-knowledge-hub/gen-ai-academic-integrity-and-assessment-reform -## 6. Ramu perlu diuji, bukan hanya terlihat bagus +## 6. Desain perlu diuji ulang -LLM bersifat nondeterministic. Pack yang terasa bagus pada satu percobaan belum tentu konsisten pada skenario lain. +LLM bersifat nondeterministic. Pack yang terasa baik pada satu percobaan belum tentu konsisten pada skenario lain. -Folder `evals/` menyimpan skenario manual yang sengaja menguji failure mode penting, misalnya: +Folder `evals/` menyimpan case yang sengaja menekan failure mode penting, misalnya: - screenshot soal terpotong; -- konflik modul lama vs regulasi baru; +- konflik modul lama dengan regulasi baru; - sitasi yang tidak bisa diverifikasi; - kesalahan hitung; - rubrik yang lebih spesifik daripada default pack; -- feedback tutor yang harus dibawa ke pekerjaan berikutnya. +- feedback tutor yang perlu dibawa ke pekerjaan berikutnya. -Pack baru sebaiknya tidak diberi status `Terverifikasi` hanya karena dokumentasinya lengkap; minimal harus lolos skenario inti yang relevan dengan bidangnya. +Status pack karena itu tidak hanya bergantung pada seberapa lengkap dokumentasinya. Source, static validation, manual behavior check, dan evidence penggunaan nyata tetap dinilai secara terpisah. From ae32113534b6eb999ea3f1aaa4b11f748dd312c6 Mon Sep 17 00:00:00 2001 From: ysmn <115535709+man612@users.noreply.github.com> Date: Thu, 3 Sep 2026 15:47:50 +0700 Subject: [PATCH 11/24] Simplify release process documentation --- docs/RELEASE-PROCESS.md | 107 ++++++++++++++++++---------------------- 1 file changed, 49 insertions(+), 58 deletions(-) diff --git a/docs/RELEASE-PROCESS.md b/docs/RELEASE-PROCESS.md index 1492f2e..af9bf70 100644 --- a/docs/RELEASE-PROCESS.md +++ b/docs/RELEASE-PROCESS.md @@ -1,101 +1,92 @@ -# Proses Release Ramu +# Proses Release -Dokumen ini menjaga agar release Ramu menjadi snapshot yang dapat ditelusuri, bukan sekadar label yang dipindahkan mengikuti `main`. +Release diperlakukan sebagai snapshot yang bisa ditelusuri, bukan label yang ikut bergerak bersama `main`. -## Prinsip versi +## Versi -Ramu mengikuti Semantic Versioning sebagai bahasa perubahan: +Ramu memakai Semantic Versioning selama public beta: -- `0.x.0-beta` — perubahan fitur/arsitektur yang cukup berarti selama public beta; -- `0.x.y-beta` — perbaikan kompatibel yang tidak mengubah kemampuan utama; -- release tanpa `-beta` hanya dipertimbangkan setelah behavior validation dan pilot pengguna memberi evidence yang cukup. +- `0.x.0-beta` — perubahan fitur atau arsitektur yang cukup berarti; +- `0.x.y-beta` — perbaikan kompatibel tanpa perubahan kemampuan utama; +- release tanpa `-beta` baru layak dipertimbangkan setelah behavior validation dan pilot memberi evidence yang cukup. Release yang sudah terbit: -- `v0.1.0-beta` = public-beta baseline pertama; -- `v0.2.0-beta` = fondasi multi-pack + identity/schema validation + eval/security hardening + validation-gated Pages; -- `v0.2.1-beta` = patch website dan UX: copy lebih langsung, custom pack picker, setup wording defensif, dan desktop visual scale lebih compact. +- `v0.1.0-beta` — baseline public beta pertama; +- `v0.2.0-beta` — fondasi multi-pack, identity/schema validation, eval/security hardening, dan Pages yang gated oleh validation; +- `v0.2.1-beta` — patch website/UX dan setup copy. -Jangan memindahkan atau reuse tag release yang sudah dipublikasikan. Jika repository berubah setelah release, perubahan tersebut tetap berada di `Unreleased` sampai versi berikutnya memang dibuat. +Tag release yang sudah dipublikasikan tidak dipindahkan atau dipakai ulang. Perubahan setelah release tetap berada di `Unreleased` sampai versi berikutnya dibuat. -## Validation dan deployment chain +## Validation dan deployment -Setiap push ke `main` harus menjalankan workflow **Validate Ramu**, termasuk perubahan dokumentasi/workflow. +Setiap push ke `main` menjalankan **Validate Ramu**, termasuk perubahan dokumentasi dan workflow. -GitHub Pages bukan gate paralel. Workflow **Deploy Pages** dipicu setelah run `Validate Ramu` selesai dan hanya melakukan deploy bila: +**Deploy Pages** berjalan setelah Validate Ramu selesai dan hanya deploy bila: - upstream conclusion = `success`; - upstream event = `push`; - upstream branch = `main`. -Pages checkout `workflow_run.head_sha`, sehingga commit yang dipublish adalah SHA yang benar-benar baru lolos validation, bukan sekadar keadaan `main` terbaru ketika deploy dimulai. +Pages checkout `workflow_run.head_sha`. Dengan begitu commit yang diterbitkan adalah SHA yang memang baru lolos validation, bukan keadaan `main` lain yang kebetulan lebih baru saat deploy berjalan. -Dependabot dapat membuat PR untuk dependency GitHub Actions dan dependency validation Python. Full-SHA pin tetap dipertahankan; update dependency tetap diperlakukan seperti PR biasa dan harus melewati validation sebelum merge. Jangan auto-merge dependency update hanya karena berasal dari Dependabot. +Dependency GitHub Actions dipin ke full commit SHA. Dependabot boleh membuka update, tetapi PR dependency tetap direview dan melewati validation seperti perubahan lain. -## Sebelum membuat release +## Sebelum release -1. Pastikan target commit sudah berada di `main`. -2. Pastikan workflow **Validate Ramu** hijau pada commit tersebut. -3. Pastikan run **Deploy Pages** downstream untuk SHA tersebut hijau bila release menyertakan site/pack/schema yang dipublish. Jangan menganggap Pages run untuk SHA lain sebagai bukti. -4. Periksa `CHANGELOG.md` dan pindahkan item `Unreleased` ke versi yang akan dirilis **sebelum tag dibuat**. -5. Periksa source review date. Jangan mengubah `verified_at` hanya supaya terlihat baru; tanggal harus mencerminkan review manusia sungguhan. -6. Pastikan status behavior validation ditulis apa adanya. Static CI tidak sama dengan bukti bahwa semua respons model lolos. -7. API **tidak wajib** untuk membuat public-beta release. Manual validation di ChatGPT Projects dan status pilot harus tetap dijelaskan terpisah. -8. Pastikan tidak ada Dependabot/dependency PR relevan yang sengaja ditinggalkan hanya untuk membuat release terlihat hijau; review perubahan dependency secara normal. +1. Pastikan target commit sudah ada di `main`. +2. Pastikan **Validate Ramu** hijau pada SHA tersebut. +3. Jika release menyentuh site/pack/schema yang dipublish, cek **Deploy Pages** downstream untuk SHA yang sama. +4. Pindahkan item `Unreleased` di `CHANGELOG.md` ke versi yang akan dirilis sebelum membuat tag. +5. Periksa tanggal review source. Jangan memperbarui `verified_at` hanya agar terlihat baru. +6. Tulis status behavior validation apa adanya. Static CI bukan bukti bahwa seluruh respons model sudah lolos. +7. API tidak wajib untuk public-beta release; manual validation dan status pilot tetap dicatat terpisah. +8. Review dependency PR yang relevan secara normal, jangan menahannya hanya demi membuat release terlihat bersih. ## Membuat release di GitHub -Dari repository: - 1. buka **Releases → Draft a new release**; -2. buat **tag baru**, jangan reuse/memindahkan tag release lama; -3. targetkan tag ke commit `main` yang sudah divalidasi; -4. gunakan versi Semantic Versioning sesuai perubahan, misalnya `v0.2.2-beta` untuk patch kompatibel berikutnya atau `v0.3.0-beta` untuk perubahan kemampuan yang lebih berarti; +2. buat tag baru; +3. targetkan ke commit `main` yang sudah divalidasi; +4. pilih versi sesuai perubahan; 5. beri judul yang menjelaskan fokus release; -6. gunakan generated release notes sebagai bahan bantu bila berguna, lalu kurasi terhadap `CHANGELOG.md`; -7. tandai **Set as a pre-release** selama status Ramu masih public beta; -8. cek ulang seluruh release notes sebelum publish. +6. gunakan generated release notes sebagai bahan bantu bila berguna, lalu cocokkan dengan `CHANGELOG.md`; +7. tandai **Set as a pre-release** selama status masih public beta; +8. cek ulang notes sebelum publish. -Release immutability sudah digunakan untuk release Ramu terbaru. Pertahankan setting tersebut agar tag dan asset release yang sudah dipublikasikan tidak dapat diubah diam-diam. +Release immutability yang sudah digunakan sebaiknya tetap dipertahankan agar tag dan asset release tidak dapat berubah diam-diam. ## Setelah publish -1. buka tag release dan pastikan SHA-nya sama dengan commit `main` yang memang diniatkan; -2. bandingkan release lama → release baru dan pastikan perubahan penting tercakup di notes; -3. cek bahwa release berstatus pre-release bila masih beta; -4. pastikan `CHANGELOG.md` sudah mempunyai section versi dan compare link yang benar; -5. simpan snapshot release notes di `docs/` bila release membawa perubahan yang perlu dirujuk dari repository; +1. pastikan tag menunjuk SHA yang benar; +2. bandingkan release lama dengan release baru; +3. cek status pre-release bila masih beta; +4. pastikan `CHANGELOG.md` punya section dan compare link yang sesuai; +5. simpan snapshot release notes di `docs/` bila memang perlu dirujuk dari repository; 6. jangan menaikkan status pack menjadi `verified` hanya karena release berhasil dibuat. -## Aturan klaim +## Cara menulis klaim release -Release notes boleh mengatakan: +Klaim yang aman dan bisa diperiksa misalnya: - static/schema/identity validation aktif; -- Pages hanya deploy setelah validated main push; +- Pages deploy setelah validated main push; - Manual Eval Kit tersedia; -- behavior contracts dan critical must-pass gates tersedia; -- source telah direview pada tanggal tertentu; -- pilot/manual validation sedang atau sudah dilakukan dengan cakupan yang disebutkan. - -Release notes jangan mengatakan: - -- “semua jawaban akurat”; -- “prompt-injection proof”; -- “terbukti meningkatkan nilai”; -- “fully validated”; +- behavior contracts dan critical gates tersedia; +- source direview pada tanggal tertentu; +- pilot/manual validation dilakukan dengan cakupan yang disebutkan. -kecuali benar-benar ada evidence yang sesuai dengan klaim tersebut. +Hindari klaim seperti “semua jawaban akurat”, “prompt-injection proof”, “terbukti meningkatkan nilai”, atau “fully validated” tanpa evidence yang benar-benar mendukungnya. ## Automated Behavior Evals -Automated eval melalui OpenAI API tetap opsional. Bila digunakan: +Eval melalui OpenAI API tetap opsional. Bila digunakan: - API key hanya disimpan sebagai repository secret; - candidate dan judge dipilih saat run; -- sebisa mungkin candidate dan judge berbeda; +- candidate dan judge sebaiknya berbeda bila memungkinkan; - hasil model judge tetap perlu sampling/review manusia; -- critical case wajib lulus selain memenuhi aggregate threshold; -- kegagalan yang reproducible diubah menjadi regression case. +- critical case harus lulus selain memenuhi aggregate threshold; +- failure yang reproducible masuk regression case. -Tidak adanya saldo/API key tidak boleh memblokir static validation, Manual Eval Kit, penggunaan Ramu, atau pilot pengguna. +Ketiadaan API key atau saldo tidak memblokir static validation, Manual Eval Kit, penggunaan normal, atau pilot. From e1b97b25496818113e4b5c2bb617ff7ab70b462f Mon Sep 17 00:00:00 2001 From: ysmn <115535709+man612@users.noreply.github.com> Date: Thu, 3 Sep 2026 15:48:13 +0700 Subject: [PATCH 12/24] Make pilot guide practical and proportional --- docs/PILOT-PUBLIC-BETA.md | 120 +++++++++++++++++++------------------- 1 file changed, 60 insertions(+), 60 deletions(-) diff --git a/docs/PILOT-PUBLIC-BETA.md b/docs/PILOT-PUBLIC-BETA.md index 1331fb9..530490d 100644 --- a/docs/PILOT-PUBLIC-BETA.md +++ b/docs/PILOT-PUBLIC-BETA.md @@ -1,48 +1,48 @@ -# Pilot Public Beta Ramu +# Pilot Public Beta -Dokumen ini dipakai untuk menguji apakah Ramu benar-benar dapat dipasang dan digunakan mahasiswa dalam kondisi nyata, bukan hanya terlihat rapi di repository. +Pilot dipakai untuk melihat apakah setup dan penggunaan Ramu benar-benar masuk akal di kondisi nyata. Fokusnya mencari friction dan failure mode, bukan membuktikan klaim besar tentang peningkatan nilai atau hasil belajar. -Pilot adalah **field evidence kecil untuk menemukan friction dan failure mode**. Pilot 5–10 orang bukan eksperimen terkontrol dan tidak boleh dipakai sendirian untuk mengklaim Ramu meningkatkan nilai, hasil belajar, atau mewakili seluruh populasi mahasiswa. +Pilot kecil 5–10 orang tetap berguna untuk menemukan masalah, tetapi bukan eksperimen terkontrol dan tidak mewakili seluruh populasi mahasiswa. ## Target awal -Mulai dari **5–10 mahasiswa yang benar-benar cocok dengan pack yang diuji**. Untuk pack awal berarti mahasiswa yang relevan dengan Universitas Terbuka · S1 Akuntansi · Semester 2 · 2026/2027. +Mulai dari **5–10 mahasiswa yang cocok dengan pack yang sedang diuji**. Untuk baseline awal, targetnya adalah pengguna yang relevan dengan UT S1 Akuntansi 2026/2027. -Tujuannya bukan mengejar star GitHub, melainkan mengetahui: +Hal yang ingin diketahui: -- apakah pengguna dapat mengaktifkan satu Project; -- seberapa cepat mereka mencapai manfaat pertama; -- langkah setup mana yang gagal atau membingungkan; -- failure mode tutor yang muncul di penggunaan nyata; -- apakah mereka kembali dalam 7 hari; -- apakah setelah satu mata kuliah mereka memilih memasang mata kuliah lain. +- apakah satu Project bisa disiapkan tanpa kebingungan besar; +- seberapa cepat pengguna sampai pada manfaat pertama; +- langkah setup mana yang paling sering gagal; +- behavior tutor apa yang bermasalah di penggunaan nyata; +- apakah Project dipakai lagi dalam 7 hari; +- apakah setelah satu mata kuliah pengguna memilih menambah mata kuliah lain. ## Skenario minimum -Setiap peserta diminta: +Setiap peserta mencoba: -1. memasang **satu mata kuliah terlebih dahulu**, bukan seluruh pack; +1. memasang **satu mata kuliah terlebih dahulu**; 2. menjalankan satu sesi memahami konsep yang belum dikuasai; -3. meminta Ramu mengecek jawaban buatan sendiri; +3. meminta pengecekan terhadap jawaban buatan sendiri; 4. memakai satu materi/screenshot/PDF yang memang mereka punya; -5. kembali memakai Project yang sama pada hari berbeda bila masih relevan. +5. kembali ke Project yang sama pada hari berbeda bila masih relevan. -Setelah satu Project berhasil dan manfaatnya terasa, baru tawarkan setup mata kuliah lain. +Mata kuliah lain baru ditambahkan setelah Project pertama benar-benar bisa dipakai. -## Jangan simpan dataset peserta di repository +## Data peserta tidak masuk repository -Individual chat dan data peserta bukan artifact publik Ramu. Jangan commit: +Jangan commit data individual seperti: - nama, email, nomor mahasiswa, username, atau direct identifier lain; - row per peserta; - transcript/chat mentah; - screenshot atau isi tugas/materi mentah; - credential/token; -- kutipan feedback yang mudah mengidentifikasi seseorang. +- feedback yang mudah mengidentifikasi seseorang. -Yang boleh menjadi evidence repository hanyalah **angka agregat, kategori failure, tema feedback yang sudah disanitasi, dan regression linkage**. +Evidence publik cukup berupa **angka agregat, kategori failure, tema feedback yang sudah disanitasi, dan regression linkage**. -## Membuat summary lokal +## Menyiapkan summary lokal Gunakan tooling pilot tanpa API: @@ -54,7 +54,7 @@ python scripts/pilot_evidence.py prepare \ --output evals/manual/results/pilot-summary.json ``` -`evals/manual/results/` di-ignore Git sehingga draft tidak sengaja terpublish. +`evals/manual/results/` di-ignore Git agar draft tidak ikut terpublish. Saat pilot dimulai: @@ -64,14 +64,14 @@ python scripts/pilot_evidence.py finalize \ --start-now ``` -Setelah angka agregat diubah, jalankan lagi: +Setelah count diperbarui: ```bash python scripts/pilot_evidence.py finalize evals/manual/results/pilot-summary.json python scripts/pilot_evidence.py validate evals/manual/results/pilot-summary.json ``` -Saat periode pilot benar-benar selesai: +Saat pilot selesai: ```bash python scripts/pilot_evidence.py finalize \ @@ -79,28 +79,30 @@ python scripts/pilot_evidence.py finalize \ --complete-now ``` -Tooling menghitung metrik dan readiness dari count yang dicatat; jangan mengedit nilai `metrics` atau `readiness` secara manual. +Tooling menghitung `metrics` dan `readiness` dari count. Field hasil perhitungan tersebut tidak perlu diedit manual. ## Data agregat yang dicatat -Summary menyimpan funnel dan metrik proses berikut: +Summary menyimpan: -- `started` — peserta yang benar-benar mulai mencoba; -- `setup_completed` — berhasil setup satu Project; -- `first_value_reached` — berhasil mencapai sesi yang dianggap memberi manfaat pertama; -- `return_7d_eligible` dan `returned_within_7d` — denominator/numerator return use; -- `multi_course_adopted` — memilih memasang mata kuliah tambahan; -- `setup_completed_without_live_help` — setup selesai tanpa maintainer mengambil alih proses; +- `started` — peserta yang benar-benar mulai; +- `setup_completed` — berhasil menyiapkan satu Project; +- `first_value_reached` — sampai pada sesi yang dianggap memberi manfaat pertama; +- `return_7d_eligible` dan `returned_within_7d` — denominator/numerator penggunaan ulang; +- `multi_course_adopted` — memilih menambah mata kuliah; +- `setup_completed_without_live_help` — setup selesai tanpa maintainer mengambil alih; - bucket **time-to-first-value**: `<5m`, `5–15m`, `15–30m`, `>30m`, atau unknown; -- aggregate setup/behavior failure category; -- sanitized feedback theme; -- regression `P001`, `P002`, ... untuk failure yang perlu ditindaklanjuti. +- kategori setup/behavior failure; +- tema feedback yang sudah disanitasi; +- regression `P001`, `P002`, dan seterusnya untuk masalah yang perlu ditindaklanjuti. -Rate dihitung tooling dari count tersebut. CI juga menolak funnel mustahil seperti `first_value_reached > setup_completed` atau jumlah bucket waktu yang tidak sama dengan jumlah first-value. +CI menolak data agregat yang secara logika tidak mungkin, misalnya `first_value_reached > setup_completed` atau jumlah bucket waktu yang tidak cocok dengan count first-value. ## Regression dari pilot -Failure yang material ditulis sebagai regression agregat, bukan transcript. Contoh kategori: +Masalah material dicatat sebagai regression agregat, bukan transcript. + +Kategori yang tersedia antara lain: - fabrication; - source-selection; @@ -111,44 +113,42 @@ Failure yang material ditulis sebagai regression agregat, bukan transcript. Cont - learner-state; - setup. -Jika dapat direproduksi, hubungkan ke behavior case `E..` yang sudah ada atau buat eval regression baru pada scope paling tepat. +Jika masalah bisa direproduksi, hubungkan ke behavior case `E..` yang sudah ada atau tambahkan case baru pada scope yang tepat. -Regression yang `critical: true`, `reproducible: true`, dan masih `open` membuat readiness pilot menjadi **BLOCKED**. +Regression dengan `critical: true`, `reproducible: true`, dan status `open` membuat readiness menjadi **BLOCKED**. ## Arti readiness -Tooling hanya memiliki empat status: +Tooling memakai empat status: - `INCOMPLETE` — pilot/protocol belum selesai; -- `INSUFFICIENT_SAMPLE` — pilot selesai tetapi peserta yang mulai belum mencapai minimum yang dideklarasikan; -- `BLOCKED` — ada reproducible critical regression yang masih terbuka; -- `REVIEW_READY` — summary cukup lengkap untuk review manusia. - -Tidak ada status `PASS`, `STABLE`, atau `VALIDATED` otomatis dari pilot. +- `INSUFFICIENT_SAMPLE` — pilot selesai tetapi jumlah peserta belum mencapai minimum; +- `BLOCKED` — ada critical regression yang reproducible dan masih terbuka; +- `REVIEW_READY` — summary cukup lengkap untuk direview manusia. -`REVIEW_READY` berarti evidence cukup untuk dibaca bersama evidence lain. Ia **bukan** bukti statistik, bukan causal claim, dan bukan keputusan release otomatis. +`REVIEW_READY` berarti evidence sudah cukup rapi untuk dibaca bersama evidence lain. Ia bukan bukti statistik atau keputusan release otomatis. -## Publish summary bila memang perlu +## Mempublikasikan summary -Setelah privacy review dan review angka dilakukan manusia, sanitized summary yang ingin menjadi evidence publik dapat disalin ke: +Setelah privacy review dan pengecekan angka, sanitized summary yang memang perlu menjadi evidence publik dapat disalin ke: ```text evidence/pilots/*.json ``` -CI akan memvalidasi schema serta invariant agregat setiap summary yang dipublish. Lihat [`../evidence/pilots/README.md`](../evidence/pilots/README.md). +CI akan memvalidasi schema dan invariant agregat. Lihat [`../evidence/pilots/README.md`](../evidence/pilots/README.md). -## Kriteria sebelum mempertimbangkan status lebih tinggi +## Sebelum menaikkan status -Public beta tidak sama dengan tervalidasi penuh. Sebelum status pack/release yang lebih tinggi dipertimbangkan, minimal: +Public beta belum berarti behavior sudah tervalidasi penuh. Sebelum mempertimbangkan status yang lebih tinggi, periksa minimal: - static/schema/identity/site CI hijau; -- full manual E01–E16 di ChatGPT Projects sudah dijalankan dan direview; -- critical manual behavior case tidak FAIL; -- pilot mencapai minimum yang dideklarasikan atau kekurangannya dijelaskan eksplisit; -- critical failure dari pilot sudah diperbaiki/didokumentasikan dan, bila reproducible, masuk regression eval; -- setup satu mata kuliah dapat diselesaikan pengguna baru tanpa bantuan maintainer terus-menerus; -- source resmi aktif dan claim produk masih dalam interval review; -- tidak ada blocker lisensi, secret, atau materi berhak cipta di repo. - -Automated API benchmark tetap QA tambahan opsional dan bukan pengganti manual Projects + field evidence. +- manual behavior case yang relevan sudah dijalankan dan direview; +- critical case tidak FAIL; +- pilot mencapai minimum yang dideklarasikan atau kekurangannya dijelaskan; +- critical failure pilot sudah diperbaiki/didokumentasikan dan masuk regression bila reproducible; +- pengguna baru dapat menyiapkan satu mata kuliah tanpa bantuan terus-menerus; +- source resmi masih aktif dan berada dalam interval review; +- tidak ada blocker lisensi, secret, atau materi berhak cipta di repository. + +Automated API benchmark tetap menjadi QA tambahan, bukan pengganti manual Projects atau evidence penggunaan nyata. From 15c8ad318172ae92fe244855fc8b5fee96f2f879 Mon Sep 17 00:00:00 2001 From: ysmn <115535709+man612@users.noreply.github.com> Date: Thu, 3 Sep 2026 15:48:31 +0700 Subject: [PATCH 13/24] Refresh Semester 2 pack readme voice --- .../2026-2027/semester-02/README.md | 41 +++++++++---------- 1 file changed, 19 insertions(+), 22 deletions(-) diff --git a/packs/universitas-terbuka/s1-akuntansi/2026-2027/semester-02/README.md b/packs/universitas-terbuka/s1-akuntansi/2026-2027/semester-02/README.md index 2b9d69c..e459947 100644 --- a/packs/universitas-terbuka/s1-akuntansi/2026-2027/semester-02/README.md +++ b/packs/universitas-terbuka/s1-akuntansi/2026-2027/semester-02/README.md @@ -1,16 +1,14 @@ # UT S1 Akuntansi — Semester 2 -Paket ini disiapkan untuk **Semester 2 S1 Akuntansi Universitas Terbuka tahun akademik 2026/2027**. +Pack ini untuk **Semester 2 S1 Akuntansi Universitas Terbuka tahun akademik 2026/2027**. -**Status:** Sumber terverifikasi +**Status:** source-verified **Terakhir diperiksa:** 14 Agustus 2026 **Total:** 16 SKS -## Kalau ingin langsung menggunakan Ramu +## Mulai pakai -Kamu tidak perlu memahami kode mata kuliah atau struktur folder repo. - -Di ChatGPT, buat lima Project berikut: +Tidak perlu memahami struktur repository. Pilih mata kuliah yang sedang dipakai, lalu buat ChatGPT Project dengan nama berikut: 1. `Semester 2 • Perpajakan` 2. `Semester 2 • AKM I` @@ -18,18 +16,19 @@ Di ChatGPT, buat lima Project berikut: 4. `Semester 2 • Ekonomi Mikro` 5. `Semester 2 • Manajemen` -Ramu sengaja menulis **Semester 2** secara penuh pada nama Project. Singkatan `S2` tidak dipakai sebagai label tampilan karena mudah tertukar dengan jenjang pendidikan S2/Magister. Singkatan `s2` tetap boleh muncul pada ID atau path internal repo karena bagian itu hanya untuk mesin/tooling. +Label **Semester 2** ditulis penuh supaya tidak tertukar dengan jenjang S2/Magister. Singkatan `s2` tetap dipakai pada ID atau path internal yang hanya dibaca tooling. + +Ikuti [panduan setup](../../../../../docs/PANDUAN-SETUP-CHATGPT.md): buat satu Project, pasang Project Instructions, lalu unggah course pack mata kuliahnya sebagai Project Source. -Ikuti [panduan setup Ramu](../../../../../docs/PANDUAN-SETUP-CHATGPT.md). Polanya sama untuk semua mata kuliah: buat Project, tempel Project Instructions, lalu unggah paket mata kuliah yang sesuai. +## File pack -## File yang digunakan +Project Instructions yang dipakai seluruh mata kuliah Semester 2: -**Project Instructions — digunakan pada semua Project** [PROJECT-INSTRUCTIONS.md](PROJECT-INSTRUCTIONS.md) -**Paket mata kuliah — satu file untuk setiap mata kuliah** +Course pack: -| Mata kuliah | Paket mata kuliah | +| Mata kuliah | File | |---|---| | Perpajakan | [EACC4104-perpajakan.md](courses/EACC4104-perpajakan.md) | | AKM I | [EACC4103-akm-1.md](courses/EACC4103-akm-1.md) | @@ -37,9 +36,9 @@ Ikuti [panduan setup Ramu](../../../../../docs/PANDUAN-SETUP-CHATGPT.md). Polany | Ekonomi Mikro | [ECON4102-ekonomi-mikro.md](courses/ECON4102-ekonomi-mikro.md) | | Manajemen | [EMBS4101-manajemen.md](courses/EMBS4101-manajemen.md) | -Setelah setup selesai, repo GitHub ini tidak perlu dibuka setiap kali ada tugas. Kegiatan sehari-hari tetap dilakukan di ChatGPT. +Setelah setup selesai, aktivitas sehari-hari tetap dilakukan di ChatGPT Project. Repository hanya perlu dibuka lagi ketika ingin memperbarui pack atau memeriksa dokumentasi. -## Mata kuliah Semester 2 +## Mata kuliah | Mata kuliah | Kode | SKS | |---|---|---:| @@ -49,19 +48,17 @@ Setelah setup selesai, repo GitHub ini tidak perlu dibuka setiap kali ada tugas. | Pengantar Ekonomi Mikro | ECON4102 | 3 | | Manajemen | EMBS4101 | 4 | -Data tersebut mengikuti **Katalog Kurikulum UT 2026/2027 edisi Juli 2026**. - -## Catatan penting untuk AKM I +Data mengikuti **Katalog Kurikulum UT 2026/2027 edisi Juli 2026**. -AKM I ditandai dalam katalog pusat UT sebagai mata kuliah berpraktik dengan bimbingan online. Pedoman penyelenggaraan UT 2026/2027 juga menjelaskan PRATON yang berbasis studi kasus dan pemecahan masalah. +## Catatan AKM I -Karena itu, paket AKM I memiliki pemeriksaan yang lebih ketat untuk jurnal, perhitungan, dan soal kasus dibanding mata kuliah yang lebih banyak berisi teori. +AKM I ditandai katalog pusat sebagai mata kuliah berpraktik dengan bimbingan online. Pedoman Penyelenggaraan UT 2026/2027 juga menjelaskan PRATON berbasis studi kasus dan problem solving. -Untuk detail aturan PRATON, perbedaan data antarhalaman UT, dan sumber yang digunakan Ramu, lihat [Sumber dan Validasi](../../../../../docs/SUMBER-DAN-VALIDASI.md). +Course pack AKM I karena itu memberi perhatian lebih pada jurnal, perhitungan, konsistensi kasus, dan state yang dibutuhkan dari pekerjaan sebelumnya. -## Keterangan teknis UT +Detail source, PRATON, serta cara menangani perbedaan antarhalaman UT ada di [Sumber dan Validasi](../../../../../docs/SUMBER-DAN-VALIDASI.md). -Bagian ini hanya diperlukan kalau ingin memahami kode layanan pada katalog UT: +## Kode layanan UT - `T` — layanan TTM/Tuweb untuk SIPAS Semi; - `WT` — wajib Tuton untuk SIPAS Penuh/Plus; From bd2b399e4e9643b152c08f099ace79309c42298a Mon Sep 17 00:00:00 2001 From: ysmn <115535709+man612@users.noreply.github.com> Date: Thu, 3 Sep 2026 15:48:55 +0700 Subject: [PATCH 14/24] Refresh Semester 3 pack readme voice --- .../2026-2027/semester-03/README.md | 80 ++++++++++--------- 1 file changed, 43 insertions(+), 37 deletions(-) diff --git a/packs/universitas-terbuka/s1-akuntansi/2026-2027/semester-03/README.md b/packs/universitas-terbuka/s1-akuntansi/2026-2027/semester-03/README.md index 04c2c96..89e3709 100644 --- a/packs/universitas-terbuka/s1-akuntansi/2026-2027/semester-03/README.md +++ b/packs/universitas-terbuka/s1-akuntansi/2026-2027/semester-03/README.md @@ -1,16 +1,16 @@ # UT S1 Akuntansi — Semester 3 -Paket ini disiapkan untuk **Semester 3 S1 Akuntansi Universitas Terbuka tahun akademik 2026/2027**. +Pack ini untuk **Semester 3 S1 Akuntansi Universitas Terbuka tahun akademik 2026/2027**. -**Status:** Sumber terverifikasi +**Status:** source-verified **Terakhir diperiksa:** 3 September 2026 **Total:** 20 SKS -## Kalau ingin langsung menggunakan Ramu +## Mulai pakai -Di ChatGPT, buat Project sesuai mata kuliah yang sedang dipakai. Tidak perlu menyiapkan semuanya sekaligus. +Pilih mata kuliah yang sedang digunakan. Tidak perlu menyiapkan seluruh Semester 3 sekaligus. -Nama Project Semester 3: +Nama Project: 1. `Semester 3 • Lab Perpajakan` 2. `Semester 3 • Kewirausahaan Digital` @@ -20,14 +20,17 @@ Nama Project Semester 3: 6. `Semester 3 • AKM II` 7. `Semester 3 • Belajar di Era Digital` -Ikuti [panduan setup Ramu](../../../../../docs/PANDUAN-SETUP-CHATGPT.md): buat Project, pasang Project Instructions, lalu unggah **satu** course pack yang sesuai sebagai Project Source. +Ikuti [panduan setup](../../../../../docs/PANDUAN-SETUP-CHATGPT.md): buat satu Project, pasang Project Instructions, lalu unggah course pack yang sesuai sebagai Project Source. -## File yang digunakan +## File pack + +Project Instructions: -**Project Instructions — digunakan pada semua Project Semester 3** [PROJECT-INSTRUCTIONS.md](PROJECT-INSTRUCTIONS.md) -| Mata kuliah | Course pack | +Course pack: + +| Mata kuliah | File | |---|---| | Laboratorium Perpajakan | [EACC4206-laboratorium-perpajakan.md](courses/EACC4206-laboratorium-perpajakan.md) | | Kewirausahaan di Era Digital | [MKDI4203-kewirausahaan-era-digital.md](courses/MKDI4203-kewirausahaan-era-digital.md) | @@ -37,7 +40,7 @@ Ikuti [panduan setup Ramu](../../../../../docs/PANDUAN-SETUP-CHATGPT.md): buat P | Akuntansi Keuangan Menengah II | [EACC4205-akm-2.md](courses/EACC4205-akm-2.md) | | Belajar di Era Digital | [MKDI4202-belajar-era-digital.md](courses/MKDI4202-belajar-era-digital.md) | -## Mata kuliah Semester 3 — current 2026/2027 +## Mata kuliah 2026/2027 | Kode | Mata kuliah | SKS | Ujian | Praktik/layanan | |---|---|---:|---|---| @@ -49,58 +52,61 @@ Ikuti [panduan setup Ramu](../../../../../docs/PANDUAN-SETUP-CHATGPT.md): buat P | EACC4205 | Akuntansi Keuangan Menengah II | 3 | II.3 | BP · BPro | | MKDI4202 | Belajar di Era Digital | 3 | II.5 | WT | -Data mengikuti **Katalog Kurikulum UT 2026/2027 edisi Juli 2026**. Metadata course material juga dibandingkan dengan halaman BMP aktif Perpustakaan UT dan aturan praktik dibandingkan dengan **Pedoman Sistem Penyelenggaraan UT 2026/2027**. +Data mengikuti **Katalog Kurikulum UT 2026/2027 edisi Juli 2026**. Metadata bahan ajar dibandingkan dengan halaman BMP aktif Perpustakaan UT, sedangkan aturan praktik mengacu pada **Pedoman Sistem Penyelenggaraan UT 2026/2027**. -## Yang berubah dibanding data Semester 3 sebelumnya +## Perubahan dibanding data lama -Jangan menyalin metadata Semester 3 tahun lalu ke pack ini. Review 3 September 2026 menemukan beberapa perubahan yang memengaruhi workflow Ramu: +Semester 3 direview ulang dari source current karena beberapa metadata sudah berubah dari tahun sebelumnya: -- **AKM II berubah besar:** current 2026/2027 memakai bahan ajar `EACC4205 Akuntansi Keuangan Menengah II`, BMP Edisi 1 tahun 2026, dan sekarang ditandai **BP/BPro**. Metadata lama `EKMA4313 Edisi 3` adalah konteks historis, bukan current pack truth. -- **Laboratorium Perpajakan:** current slot ujian `II.1`, tetap BPr/BPro, dan mempunyai prasyarat EACC4104 Perpajakan. -- **Bahasa Inggris:** current row S1 Akuntansi mencantumkan layanan `T`. -- **Belajar di Era Digital:** current row mencantumkan `WT`. -- halaman regional/arsip dapat tertinggal dari katalog pusat; source registry Ramu karena itu tetap menjadikan katalog pusat sebagai kanonik untuk struktur dan metadata kurikulum. +- **AKM II** sekarang memakai `EACC4205 Akuntansi Keuangan Menengah II`, BMP Edisi 1 tahun 2026, dan berstatus **BP/BPro**. `EKMA4313 Edisi 3` tetap berguna sebagai konteks historis, tetapi bukan current pack truth. +- **Laboratorium Perpajakan** memakai slot ujian `II.1`, BPr/BPro, dengan prasyarat EACC4104 Perpajakan. +- **Bahasa Inggris** mencantumkan layanan `T` pada row S1 Akuntansi current. +- **Belajar di Era Digital** mencantumkan `WT`. -## Dua mata kuliah praktik Semester 3 +Halaman regional atau arsip dapat tertinggal dari katalog pusat. Untuk struktur dan metadata kurikulum, source pusat current tetap menjadi rujukan utama. + +## Mata kuliah praktik ### EACC4206 — Laboratorium Perpajakan -Mata kuliah ini menekankan aplikasi perpajakan. Untuk BPro, PRATON wajib; katalog/pedoman 2026/2027 mencatat minimal 5 dari 8 tugas, kontribusi PRATON 60%, dan UAS 40%. Kasus dapat berkesinambungan, sehingga course pack tidak boleh mengarang state tugas sebelumnya. +Fokusnya aplikasi perpajakan. Pada pola BPro, PRATON wajib; pedoman 2026/2027 mencatat minimal 5 dari 8 tugas, kontribusi PRATON 60%, dan UAS 40%. + +Kasus dapat berkesinambungan. Bila tugas lanjutan membutuhkan state sebelumnya, course pack meminta data yang benar daripada mengisi opening state dengan asumsi. -Karena perpajakan sensitif waktu, Ramu juga memisahkan konteks **BMP/soal** dari **aturan pajak terkini**. +Perpajakan juga sensitif terhadap waktu, jadi konteks **BMP/soal** dipisahkan dari **aturan pajak terkini** ketika keduanya berbeda. ### EACC4205 — AKM II -AKM II sekarang menggunakan BMP EACC4205 yang baru dan masuk workflow BP/BPro. Course pack menekankan jurnal, pengukuran, penyajian/pengungkapan, perhitungan, PSAK, dan konsistensi kasus PRATON. +AKM II memakai BMP EACC4205 yang baru dan masuk workflow BP/BPro. Course pack memberi perhatian pada jurnal, pengukuran, penyajian/pengungkapan, perhitungan, PSAK, dan konsistensi state kasus PRATON. AKM II juga termasuk mata kuliah prasyarat TAPS. -## Mata kuliah Semester 3 yang menjadi prasyarat TAPS +## Prasyarat TAPS dari Semester 3 -Katalog UT 2026/2027 mencantumkan tiga mata kuliah Semester 3 dalam daftar prasyarat TAPS S1 Akuntansi: +Katalog UT 2026/2027 mencantumkan: - EACC4205 Akuntansi Keuangan Menengah II; - EMBS4326 Akuntansi Manajemen; - EACC4207 Sistem Informasi Akuntansi. -Metadata ini dipakai untuk memberi konteks pentingnya mata kuliah, bukan untuk mengubah syarat kelulusan secara otomatis jika katalog UT di masa depan berubah. +Informasi ini memberi konteks pentingnya mata kuliah pada kurikulum current. Jika katalog berubah, source terbaru tetap menjadi acuan. ## Source registry dan eval -Semester 3 memiliki [source-registry.json](source-registry.json) sendiri untuk halaman BMP aktif dan claim yang memang spesifik pada pack ini. Source institusi tetap berada di [`../../../source-registry.json`](../../../source-registry.json). +[source-registry.json](source-registry.json) menyimpan halaman BMP aktif dan claim yang spesifik pada Semester 3. Source tingkat institusi tetap berada di [`../../../source-registry.json`](../../../source-registry.json). -Regression suite Semester 3 menambahkan E17–E24 untuk menguji antara lain: +Regression E17–E24 mencakup antara lain: -- Lab Perpajakan: konteks soal/BMP vs aturan terkini; -- AKM II: metadata lama vs current 2026/2027; -- dependency state pada kasus PRATON lanjutan; -- SIA: requirement/control sebelum flowchart; -- Akuntansi Manajemen: relevant cost untuk keputusan; -- Kewirausahaan Digital: hipotesis vs evidence pasar; -- Bahasa Inggris: tutoring sebelum rewrite penuh; -- Belajar di Era Digital: tidak mengarang isi kebijakan GenAI UT. +- BMP/soal pajak vs aturan terkini; +- metadata lama vs current AKM II; +- state kasus PRATON lanjutan; +- requirement/control sebelum flowchart SIA; +- relevant cost pada Akuntansi Manajemen; +- hipotesis vs evidence pasar pada Kewirausahaan Digital; +- tutoring sebelum full rewrite pada Bahasa Inggris; +- ketidakpastian isi kebijakan GenAI UT pada Belajar di Era Digital. -## Keterangan teknis UT +## Kode layanan UT - `T` — layanan TTM/Tuweb untuk SIPAS Semi; - `WT` — wajib Tuton untuk SIPAS Penuh/Plus; @@ -108,4 +114,4 @@ Regression suite Semester 3 menambahkan E17–E24 untuk menguji antara lain: - `BPr` — mata kuliah berpraktikum; - `BPro` — mata kuliah berpraktik/berpraktikum dengan bimbingan online wajib. -Ramu adalah proyek independen dan bukan layanan resmi Universitas Terbuka. Materi kuliah berhak cipta tidak disalin ke repository. +Pack ini dipelihara sebagai bagian dari proyek independen dan bukan layanan resmi Universitas Terbuka. Materi kuliah berhak cipta tidak disalin ke repository. From d1aecfb1e23b45883b3638cfe3dab897721b055e Mon Sep 17 00:00:00 2001 From: ysmn <115535709+man612@users.noreply.github.com> Date: Thu, 3 Sep 2026 15:49:44 +0700 Subject: [PATCH 15/24] Refine public site copy and fix current pack wording --- site/index.html | 42 +++++++++++++++++++++--------------------- 1 file changed, 21 insertions(+), 21 deletions(-) diff --git a/site/index.html b/site/index.html index b8ff984..edf126d 100644 --- a/site/index.html +++ b/site/index.html @@ -3,10 +3,10 @@ - + - + @@ -27,8 +27,8 @@

Public beta · mulai dari satu mata kuliah

-

Workspace ChatGPT per mata kuliah, dengan aturan sumber dan evaluasi yang jelas.

-

Ramu menyediakan Project Instructions dan course pack untuk menjaga konteks mata kuliah, prioritas sumber, aturan tugas, dan pola bantuan. Repository-nya memvalidasi struktur pack, sumber, dan behavior regression.

+

Satu ChatGPT Project untuk tiap mata kuliah, supaya konteks belajarnya tetap rapi.

+

Project Instructions mengatur cara bantuan diberikan, course pack membawa konteks mata kuliah, dan source yang penting bisa ditelusuri ketika aturan atau materi berubah.

5mata kuliah tersedia
1Project untuk mulai
βpublic beta
@@ -46,47 +46,47 @@

Workspace ChatGPT per mata kuliah, dengan aturan sumber dan evaluasi yan
Ramu itu apa?
-

Ramu adalah konfigurasi belajar untuk ChatGPT Projects.

Pengguna cukup membuat Project, menyalin Project Instructions, lalu mengunggah course pack mata kuliah. Tidak perlu memahami schema, eval, atau struktur repository.

Di sisi repository, Ramu menyimpan kontrak pack, source registry, protokol, dan behavior eval agar perubahan bisa diperiksa secara konsisten.

+

Workspace belajar yang disiapkan per mata kuliah.

Buat Project, pasang Project Instructions, lalu tambahkan course pack mata kuliahnya. Setelah itu Project bisa dipakai seperti chat biasa tanpa harus menjelaskan konteks dari nol setiap kali.

Awalnya saya susun pola ini untuk membantu seseorang yang dekat dengan saya ketika sudah masuk Semester 2. Dari kebutuhan kecil itu, strukturnya berkembang supaya bisa dipakai ulang untuk mata kuliah dan periode lain.

-
Tanpa Ramu

Chat biasa tidak punya kontrak khusus untuk mata kuliah.

  • konteks mata kuliah perlu dijelaskan ulang;
  • sumber baru dan lama mudah tercampur;
  • aturan tugas bisa terlewat;
  • AI dapat terlalu cepat memberi jawaban akhir.
-
Dengan Ramu

Setiap mata kuliah memakai konfigurasi Project sendiri.

  • konteks mata kuliah sudah tersedia;
  • prioritas sumber lebih jelas;
  • bantuan mengikuti guardrail;
  • perilaku penting punya regression eval.
+
Chat biasa

Konteks kuliah mudah tersebar di banyak percakapan.

  • materi perlu dijelaskan ulang;
  • sumber lama dan baru mudah bercampur;
  • aturan tugas bisa terlewat;
  • bantuan kadang terlalu cepat menuju jawaban akhir.
+
Dengan Ramu

Setiap mata kuliah punya ruang dan konfigurasi sendiri.

  • konteks mata kuliah sudah tersedia;
  • prioritas sumber lebih jelas;
  • pola bantuan mengikuti kebutuhan belajar;
  • failure mode penting dapat diuji ulang.
-

Cara pakai

Mulai dari satu Project.

Untuk public beta, pasang satu mata kuliah terlebih dahulu. Setelah Project itu siap dan bisa dipakai, tambahkan mata kuliah lain bila diperlukan.

+

Cara pakai

Mulai dari satu Project.

Pilih mata kuliah yang sedang dipakai. Setelah Project pertama siap dan terasa berguna, baru tambahkan mata kuliah lain.

01
Langkah awal

Siapkan 1 Project.

  1. Pilih pack yang sesuai.
  2. Pilih satu mata kuliah.
  3. Pasang Project Instructions lewat Project settings.
  4. Unduh course pack lalu unggah ke Project Sources.
Buka panduan setup →
-
02
Setelah Project pertama siap

Gunakan seperti chat biasa. Tambah Project lain bila perlu.

Buka ChatGPTPilih ProjectKirim soal atau materi
“aku belum paham bagian ini”“bantu aku latihan tanpa langsung kasih kunci”“cek jawabanku”“ini feedback tutor kemarin”
+
02
Setelah siap

Gunakan seperti chat biasa.

Buka ChatGPTPilih ProjectKirim soal atau materi
“aku belum paham bagian ini”“bantu aku latihan tanpa langsung kasih kunci”“cek jawabanku”“ini feedback tutor kemarin”
-

Cara kerja Ramu

Yang diatur Ramu di setiap Project.

Project Instructions mengatur perilaku dasar. Course pack memberi konteks mata kuliah. Repository memeriksa struktur, sumber, dan regression eval.

-

Prioritas sumber

Sumber dipilih berdasarkan jenis pertanyaan, otoritas, dan masa berlakunya.

-

Aturan tugas

Rubrik, instruksi tutor, dan ketentuan kampus diprioritaskan.

-

Konteks mata kuliah

Satu mata kuliah ditempatkan di satu Project agar konteks tidak bercampur.

-

Materi utama

BMP, bahan tutor, soal, dan materi kelas digunakan saat tersedia.

-

Behavior regression

Guardrail penting disimpan sebagai contract dan diuji lewat behavior eval.

+

Cara kerja

Yang dibawa ke setiap Project.

Project Instructions mengatur perilaku dasar. Course pack membawa konteks mata kuliah. Repository menyimpan sumber dan regression case yang perlu diperiksa ulang.

+

Prioritas sumber

Sumber dipilih berdasarkan pertanyaan, otoritas, dan masa berlakunya.

+

Aturan tugas

Rubrik, instruksi tutor, dan ketentuan kampus tetap menjadi acuan utama.

+

Konteks mata kuliah

Satu mata kuliah ditempatkan di satu Project agar riwayat dan file tidak bercampur.

+

Materi utama

BMP, bahan tutor, soal, dan materi kelas dipakai saat tersedia.

+

Regression check

Perilaku penting disimpan sebagai case agar perubahan bisa diuji ulang.

- Pilih pack Ramu + Pilih pack
-

Setiap pack memiliki institusi, program, tahun akademik, periode, source registry, dan eval sendiri.

+

Setiap pack membawa periode, daftar mata kuliah, source yang relevan, dan eval-nya sendiri.

Ramu Maintained pack

UT · S1 Akuntansi · Semester 2

Memuat metadata pack…

Public beta

Memuat mata kuliah…

-
Kenapa satu Project per mata kuliah?

Supaya file, source, riwayat tugas, dan konteks tidak bercampur. Kamu tetap bisa mulai dari satu Project saja.

Setup pack ini
+
Kenapa satu Project per mata kuliah?

Supaya file, source, riwayat tugas, dan progresnya tidak bercampur. Mulai dari satu Project saja sudah cukup.

Setup pack ini
-

Batas Ramu

Hal yang tetap perlu diperiksa pengguna.

01

Materi berhak cipta tidak disalin ke repository

BMP atau bahan kelas yang kamu miliki ditambahkan sendiri ke Project saat diperlukan.

02

Informasi yang berubah perlu dicek ulang

Aturan kampus, regulasi, dan fitur produk AI dapat berubah. Gunakan sumber resmi terbaru.

03

Ramu tidak bergantung pada satu model

Nama model tidak dikunci. Automated behavior eval hanya menjadi lapisan QA tambahan.

04

Validasi manusia tetap diperlukan

Static CI dan regression test tidak menggantikan pengujian langsung di ChatGPT Projects.

+

Yang perlu diperhatikan

Beberapa hal tetap perlu dicek pengguna.

01

Materi kuliah tetap milik sumber aslinya

BMP atau bahan kelas ditambahkan sendiri ke Project saat diperlukan, bukan disalin ke repository.

02

Informasi yang berubah perlu dicek ulang

Aturan kampus, regulasi, dan fitur produk AI dapat berubah. Gunakan source current untuk keputusan yang sensitif waktu.

03

Model AI bisa berganti

Konfigurasi tidak dikunci ke satu nama model. Automated behavior eval hanya menjadi lapisan QA tambahan.

04

Pengujian manusia tetap penting

Static CI dan regression test tidak menggantikan pengujian langsung di ChatGPT Projects.

-

Pertanyaan umum

Hal yang perlu diketahui sebelum memakai Ramu.

Apakah Ramu aplikasi atau model AI baru?

Bukan. Ramu adalah framework konfigurasi, source governance, dan evaluasi untuk ChatGPT Projects.

Apakah hanya untuk UT S1 Akuntansi?

Pack yang tersedia saat ini adalah UT S1 Akuntansi Semester 2. Arsitektur repository mendukung penambahan periode, program, dan institusi lain sebagai pack terpisah.

Harus setup semua Project sekaligus?

Tidak. Mulai dari satu mata kuliah, lalu tambahkan Project lain bila diperlukan.

Butuh OpenAI API?

Tidak untuk memakai Ramu. API hanya diperlukan untuk automated behavior eval opsional. Static CI dan tooling manual tetap dapat dipakai tanpa API.

Apakah Ramu resmi dari kampus atau OpenAI?

Tidak. Ramu adalah proyek independen. Data akademik dan fitur platform tetap dirujuk dari sumber resmi masing-masing.

+

Pertanyaan umum

Sebelum mulai.

Apakah Ramu aplikasi atau model AI baru?

Bukan. Ini konfigurasi workspace, source tracking, dan eval untuk ChatGPT Projects.

Apakah hanya untuk UT S1 Akuntansi?

Pack aktif saat ini adalah UT S1 Akuntansi Semester 2 dan Semester 3 tahun akademik 2026/2027. Struktur repository juga mendukung periode, program, dan institusi lain sebagai pack terpisah.

Harus setup semua Project sekaligus?

Tidak. Mulai dari satu mata kuliah, lalu tambahkan Project lain bila diperlukan.

Butuh OpenAI API?

Tidak untuk penggunaan normal. API hanya diperlukan untuk automated behavior eval opsional; static validation dan Manual Eval Kit tetap bisa berjalan tanpa API.

Apakah ini resmi dari kampus atau OpenAI?

Tidak. Ramu adalah proyek independen. Data akademik dan fitur platform tetap dirujuk dari source resmi masing-masing.

-
Public beta

Pilih satu mata kuliah dan mulai setup.

Pack periode, program, atau institusi lain dapat ditambahkan tanpa mengubah core Ramu.

Buka setup
+
Public beta

Pilih satu mata kuliah dan mulai setup.

Pack lain bisa ditambahkan tanpa mengubah cara dasar workspace ini bekerja.

Buka setup
From 65c077014825054023911088dcb3dfadc2cda1e1 Mon Sep 17 00:00:00 2001 From: ysmn <115535709+man612@users.noreply.github.com> Date: Thu, 3 Sep 2026 15:50:12 +0700 Subject: [PATCH 16/24] Simplify setup page copy --- site/setup.html | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) diff --git a/site/setup.html b/site/setup.html index ce876b2..d88a86f 100644 --- a/site/setup.html +++ b/site/setup.html @@ -3,14 +3,14 @@ - + - - + + - Setup pack Ramu + Setup Ramu @@ -33,18 +33,18 @@

Memuat metadata pack…

-

Public beta · setup satu mata kuliah dulu

Siapkan satu Project Ramu.

Pilih satu mata kuliah, pasang Project Instructions, lalu unggah course pack. Setelah Project pertama selesai dan bisa dipakai, ulangi langkah yang sama untuk mata kuliah lain bila diperlukan.

Pack aktifMemuat pack…
  • Memuat mata kuliah…

Tidak perlu menyiapkan semua mata kuliah sekaligus.

+

Public beta · mulai dari satu mata kuliah

Siapkan satu ChatGPT Project.

Pilih mata kuliah yang sedang dipakai, pasang Project Instructions, lalu unggah course pack. Project lain bisa menyusul setelah yang pertama siap.

Pack aktifMemuat pack…
  • Memuat mata kuliah…

Tidak perlu menyiapkan semua mata kuliah sekaligus.

-
1

Cek sebelum membuat Project

Gunakan Project-only memory.

Untuk Project baru, pilih Project-only memory saat membuat Project. Untuk eligible Project yang sudah ada, buka ⋯ → Project settings → Memory lalu pilih Project-only memory. Perubahan dapat membutuhkan beberapa jam untuk berlaku; Shared Project tetap memakai Project-only memory.

ChatGPTSettingsPersonalizationMemory
Perbedaan tampilan ChatGPT

Nama menu dan tata letak dapat berbeda antar versi aplikasi. Dokumentasi OpenAI saat ini menyatakan Study Mode tidak berlaku pada Project conversations; Ramu tidak bergantung pada Study Mode.

Privasi

Data Controls adalah pengaturan akun ChatGPT dan bukan syarat Ramu. Site Ramu bersifat statis; file kuliah pribadi diunggah langsung ke Project ChatGPT, bukan ke server Ramu.

+
1

Sebelum membuat Project

Gunakan Project-only memory.

Untuk Project baru, pilih Project-only memory. Pada eligible Project yang sudah ada, buka ⋯ → Project settings → Memory lalu pilih opsi yang sama. Perubahan dapat membutuhkan beberapa waktu untuk berlaku; Shared Project tetap memakai Project-only memory.

ChatGPTSettingsPersonalizationMemory
UI bisa berbeda

Nama menu dan tata letak dapat berubah antarversi aplikasi. Dokumentasi OpenAI yang direview saat ini menyatakan Study Mode tidak berlaku pada Project conversations; workflow belajar di sini tidak membutuhkan Study Mode.

Privasi

Data Controls adalah pengaturan akun ChatGPT. Website ini statis; file kuliah pribadi diunggah langsung ke ChatGPT Project, bukan ke server Ramu.

-
2

Untuk pack aktif

Pasang Project Instructions.

Project Instructions berisi aturan runtime Ramu. Setelah membuat Project, buka ⋯ → Project settings → Project Instructions, lalu tempel teks Ramu. Course pack mata kuliah ditambahkan terpisah sebagai Project Source.

PROJECT INSTRUCTIONSInstruksi pack aktif

Salin satu kali untuk Project yang sedang disiapkan.

Lihat teks

+
2

Untuk pack aktif

Pasang Project Instructions.

Project Instructions mengatur cara AI menangani konteks, sumber, tugas, dan pola bantuan. Setelah membuat Project, buka ⋯ → Project settings → Project Instructions, lalu tempel teks dari pack aktif. Course pack ditambahkan terpisah sebagai Project Source.

PROJECT INSTRUCTIONSInstruksi pack aktif

Salin ke Project yang sedang disiapkan.

Lihat teks

-
3

Pilih satu mata kuliah

Unduh dan unggah course pack.

Pilih mata kuliah dari pack aktif, unduh file .txt, lalu unggah file tersebut ke area Sources atau Project Sources di Project ChatGPT. Nama tombol untuk menambahkan source dapat berubah antar versi aplikasi.

Memuat course pack…

+
3

Pilih satu mata kuliah

Unduh dan unggah course pack.

Pilih mata kuliah dari pack aktif, unduh file .txt, lalu unggah ke Sources atau Project Sources di ChatGPT Project. Nama tombol bisa berubah antarversi aplikasi.

Memuat course pack…

-
4

Setelah Project siap

Mulai gunakan Project tersebut.

Pilih Project mata kuliah yang sudah disiapkan, lalu kirim soal, materi, atau pertanyaan belajar di sana. Tambahkan Project lain hanya jika diperlukan.

1Buka ChatGPT
2Pilih Project
3Kirim soal atau materi
Menyimpan catatan untuk chat berikutnya

Minta Ramu membuat Catatan Belajar Terbaru. Jika ChatGPT menampilkan opsi seperti Save to project atau Add to project sources, catatan tersebut dapat disimpan sebagai source. Hapus versi lama jika sudah digantikan agar tidak ada dua state yang bertentangan.

Gunakan satu chat untuk satu tugas atau satu topik besar agar riwayat lebih mudah dicari kembali.

+
4

Setelah siap

Mulai gunakan Project tersebut.

Kirim pertanyaan, soal, atau materi ke Project mata kuliah yang sudah disiapkan. Tambahkan Project lain bila memang dibutuhkan.

1Buka ChatGPT
2Pilih Project
3Kirim soal atau materi
Catatan untuk chat berikutnya

Minta Catatan Belajar Terbaru bila ada konteks penting yang perlu dibawa ke sesi berikutnya. Jika ChatGPT menampilkan opsi seperti Save to project atau Add to project sources, catatan tersebut dapat disimpan sebagai source. Hapus versi lama setelah digantikan agar state tidak bertentangan.

Satu chat per tugas atau topik besar biasanya lebih mudah dicari kembali.

From d10293a17c4f04491b6f68db882379692c9ea1f3 Mon Sep 17 00:00:00 2001 From: ysmn <115535709+man612@users.noreply.github.com> Date: Thu, 3 Sep 2026 15:51:38 +0700 Subject: [PATCH 17/24] Refresh eval documentation for current multi-pack state --- evals/README.md | 80 +++++++++++++++++++++++++++---------------------- 1 file changed, 45 insertions(+), 35 deletions(-) diff --git a/evals/README.md b/evals/README.md index 1ce605f..f8b450f 100644 --- a/evals/README.md +++ b/evals/README.md @@ -1,19 +1,25 @@ # Evals -Ramu memisahkan **scope evaluasi**, **urutan komposisi**, dan **cara menjalankannya**. +Eval di repository dibagi berdasarkan **scope**, lalu dirakit sesuai manifest pack yang sedang diuji. ## Composable eval suites -Setiap pack mendeklarasikan `eval_suites` berurutan di `manifest.json`. Scope yang didukung: +Setiap `manifest.json` mendeklarasikan `eval_suites` dari aturan paling umum ke paling spesifik: -1. `core` — failure mode universal Ramu; -2. `institution` — aturan/failure mode yang berlaku lintas pack pada satu institusi; -3. `program` — aturan/failure mode yang berlaku lintas periode pada satu program studi; -4. `pack` — skenario yang benar-benar spesifik pada pack/periode/mata kuliah tersebut. +1. `core` — failure mode yang masuk akal untuk semua pack; +2. `institution` — aturan yang berlaku lintas pack pada satu institusi; +3. `program` — aturan lintas periode dalam satu program studi; +4. `pack` — skenario yang membutuhkan konteks periode atau mata kuliah tertentu. -Urutannya selalu dari umum ke spesifik: `core → institution → program → pack`. Scope yang tidak dibutuhkan boleh dilewati, misalnya `core → pack`. +Urutan dasarnya: -Contoh pack UT S1 Akuntansi Semester 2 sekarang: +```text +core → institution → program → pack +``` + +Scope yang tidak dibutuhkan boleh dilewati. + +Contoh Semester 3 UT S1 Akuntansi: ```json "eval_suites": [ @@ -31,29 +37,29 @@ Contoh pack UT S1 Akuntansi Semester 2 sekarang: "behavior": "packs/universitas-terbuka/evals/behavior.json" }, { - "id": "semester-02", + "id": "semester-03", "scope": "pack", - "scope_ref": "id.ut.accounting-s1.2026-2027.s2", - "contracts": "packs/universitas-terbuka/s1-akuntansi/2026-2027/semester-02/evals/contracts.json", - "behavior": "packs/universitas-terbuka/s1-akuntansi/2026-2027/semester-02/evals/behavior.json" + "scope_ref": "id.ut.accounting-s1.2026-2027.s3", + "contracts": "packs/universitas-terbuka/s1-akuntansi/2026-2027/semester-03/evals/contracts.json", + "behavior": "packs/universitas-terbuka/s1-akuntansi/2026-2027/semester-03/evals/behavior.json" } ] ``` -Validator mewajibkan `core` berada di awal dan `pack` di akhir. Scope tidak boleh mundur ke level yang lebih umum. `suite_id`, `scope`, dan `scope_ref` pada file contracts/behavior harus cocok dengan deklarasi manifest. +Validator memastikan `core` berada di awal dan `pack` di akhir. `suite_id`, `scope`, dan `scope_ref` pada contracts/behavior juga harus cocok dengan manifest. -ID case harus **unik setelah seluruh suite digabung**. Jadi suite yang lebih spesifik tidak boleh diam-diam mengganti E01/E14 milik suite sebelumnya. Bila behavior suite yang lebih spesifik mendefinisikan `defaults`, nilai default runtime seperti `min_score` atau `max_output_tokens` boleh mengoverride nilai dari suite sebelumnya secara berurutan. +ID case tetap **unik setelah seluruh suite digabung**. Suite yang lebih spesifik tidak boleh diam-diam mengganti case milik scope sebelumnya. `defaults` pada behavior boleh dioverride secara berurutan untuk nilai runtime seperti `min_score` atau `max_output_tokens`. -## Scope yang tersedia sekarang +## Scope yang aktif ### Core -`evals/core/` berisi failure mode yang harus masuk akal lintas institusi/program, misalnya: +`evals/core/` memuat failure mode lintas institusi, antara lain: - data/screenshot tidak lengkap; -- referensi/DOI palsu; +- referensi atau DOI palsu; - precedence rubrik; -- integritas tugas; +- academic integrity; - retrieval practice; - learner state; - source freshness; @@ -62,53 +68,57 @@ ID case harus **unik setelah seluruh suite digabung**. Jadi suite yang lebih spe ### Universitas Terbuka -`packs/universitas-terbuka/evals/` berisi failure mode yang memang terkait source governance UT dan dapat dipakai ulang oleh pack UT lain. E14, misalnya, menguji konflik source pusat vs regional berdasarkan registry UT. +`packs/universitas-terbuka/evals/` berisi aturan yang memang khas UT dan dapat dipakai lebih dari satu periode. E14, misalnya, menguji konflik source pusat vs regional. + +### Semester 2 + +`semester-02/evals/` menyimpan skenario yang membutuhkan konteks pack Semester 2, seperti aturan pajak vs BMP dan jurnal AKM I. -### Pack Semester 2 +### Semester 3 -`packs/universitas-terbuka/s1-akuntansi/2026-2027/semester-02/evals/` hanya menyimpan skenario yang membutuhkan konteks pack tersebut, misalnya aturan pajak vs BMP, jurnal AKM I, contoh pedagogis pada mata kuliah S2, dan context isolation antarmata kuliah. +`semester-03/evals/` menambahkan E17–E24 untuk tax-currentness, metadata lama vs current AKM II, continuity kasus PRATON, SIA requirement/control, relevant cost, business evidence, language tutoring, dan ketidakpastian isi kebijakan GenAI UT. -Dengan struktur ini, Semester 3 UT nanti dapat menyertakan suite `core + ut + ` tanpa menyalin E14. Jika suatu hari S1 Akuntansi mempunyai failure mode lintas semester yang tidak berlaku untuk program lain, suite `program` dapat ditambahkan di antara `ut` dan suite pack. +Jika suatu hari ada failure mode lintas semester yang hanya berlaku pada S1 Akuntansi, scope `program` dapat ditempatkan antara `institution` dan `pack`. ## Tiga jalur pemeriksaan -1. **Static validation** — gratis/deterministik; memeriksa manifest, source registry, contract marker, suite metadata, file, dan wiring. -2. **Manual behavior validation** — gratis; case dijalankan manusia langsung di ChatGPT Projects. -3. **Automated API behavior eval** — opsional; model kandidat dijalankan via API dan respons dinilai judge model. +1. **Static validation** — deterministik; memeriksa manifest, source registry, contract marker, suite metadata, file, dan wiring. +2. **Manual behavior validation** — case dijalankan langsung di ChatGPT Projects. +3. **Automated API behavior eval** — opsional; kandidat dijalankan via API lalu dinilai judge model. -Tidak memiliki API tidak membuat Ramu gagal atau tidak dapat dipakai. API hanya menambah automation/reproducibility pada satu lapisan QA. +API hanya menambah satu lapisan automation. Penggunaan normal, static CI, dan manual validation tetap berjalan tanpa API. ## Pemeriksaan tanpa API ```bash python scripts/validate_repo.py -python scripts/run_behavior_evals.py --dry-run --pack id.ut.accounting-s1.2026-2027.s2 +python scripts/run_behavior_evals.py --dry-run --pack id.ut.accounting-s1.2026-2027.s3 python scripts/check_source_freshness.py ``` -CI mengambil seluruh pack dari `packs/index.json` dan menjalankan dry-run per pack melalui matrix. Dry-run selalu memakai suite yang dideklarasikan manifest pack tersebut. +CI mengambil semua pack dari `packs/index.json` dan membuat matrix dry-run otomatis. ## Manual validation di ChatGPT Projects ```bash python scripts/prepare_manual_eval.py \ - --pack id.ut.accounting-s1.2026-2027.s2 + --pack id.ut.accounting-s1.2026-2027.s3 ``` -Atau buka **Actions → Manual Eval Kit**. Workflow itu tidak membutuhkan secret/API dan menghasilkan checklist dari merged suite sebagai artifact. +Atau buka **Actions → Manual Eval Kit**. Workflow tersebut tidak memerlukan secret/API dan menghasilkan checklist dari merged suite. -Panduan: [`manual/README.md`](manual/README.md). +Panduan lengkap: [`manual/README.md`](manual/README.md). -## Automated behavior eval — opsional +## Automated behavior eval ```bash export OPENAI_API_KEY="..." python scripts/run_behavior_evals.py \ - --pack id.ut.accounting-s1.2026-2027.s2 \ + --pack id.ut.accounting-s1.2026-2027.s3 \ --candidate-model \ --grader-model ``` -Runner memuat manifest pack, Project Instructions, seluruh eval suite/context yang dideklarasikan, menjalankan kandidat, meminta judge structured verdict, lalu menyimpan summary/artifact ke `evals/results/`. +Runner memuat manifest, Project Instructions, eval suite/context yang dideklarasikan, menjalankan candidate, meminta structured verdict dari judge, lalu menyimpan hasil ke `evals/results/`. -Workflow **Behavior Evals** sengaja manual agar API tidak terpakai pada setiap push. Satu run probabilistik bukan bukti permanen; hasil penting perlu direview manusia dan dikaitkan dengan pack version + contract version + tanggal + model yang benar-benar diuji. +Workflow **Behavior Evals** dibuat manual agar API tidak terpakai pada setiap push. Hasil probabilistik tetap perlu dikaitkan dengan pack version, contract version, tanggal, dan model yang benar-benar diuji. From f0638547e829c36a48b8fdca24e7b8a55f7e8885 Mon Sep 17 00:00:00 2001 From: ysmn <115535709+man612@users.noreply.github.com> Date: Thu, 3 Sep 2026 15:52:00 +0700 Subject: [PATCH 18/24] Make manual validation guide more practical --- evals/manual/README.md | 76 ++++++++++++++++++++++-------------------- 1 file changed, 39 insertions(+), 37 deletions(-) diff --git a/evals/manual/README.md b/evals/manual/README.md index 98fec2b..70f89a1 100644 --- a/evals/manual/README.md +++ b/evals/manual/README.md @@ -1,45 +1,45 @@ # Manual Behavior Validation -Jalur ini dipakai ketika maintainer/tester ingin menguji Ramu langsung di **ChatGPT Projects** tanpa OpenAI API. +Jalur ini dipakai untuk menguji pack langsung di **ChatGPT Projects** tanpa OpenAI API. -Manual validation bukan pengganti static CI. Keduanya menguji hal berbeda: +Static CI dan manual validation menguji hal yang berbeda: -- `scripts/validate_repo.py` — struktur, manifest, source registry, contract marker, dan wiring eval; -- `scripts/run_behavior_evals.py --dry-run` — memastikan composable eval suites dapat dirakit dan trust boundary payload valid; -- **manual validation** — memeriksa perilaku ChatGPT Projects asli; -- automated API behavior eval — lapisan tambahan opsional bila API tersedia. +- `scripts/validate_repo.py` — struktur, manifest, source registry, contract marker, dan wiring; +- `scripts/run_behavior_evals.py --dry-run` — perakitan eval suite dan trust boundary payload; +- **manual validation** — perilaku ChatGPT Projects yang benar-benar dipakai pengguna; +- automated API eval — QA tambahan bila API tersedia. ## Membuat kit -Workflow **Actions → Manual Eval Kit** menghasilkan dua file dalam satu artifact: +Workflow **Actions → Manual Eval Kit** menghasilkan: -1. `manual-checklist.md` — panduan case untuk tester; -2. `manual-evidence.json` — template evidence terstruktur yang terikat ke pack/version/contract/revision saat dibuat. +1. `manual-checklist.md` — panduan case; +2. `manual-evidence.json` — template evidence yang terikat ke pack/version/contract/revision saat dibuat. Secara lokal: ```bash python scripts/prepare_manual_eval.py \ - --pack id.ut.accounting-s1.2026-2027.s2 \ + --pack id.ut.accounting-s1.2026-2027.s3 \ --output evals/manual/results/checklist.md python scripts/manual_eval_evidence.py prepare \ - --pack id.ut.accounting-s1.2026-2027.s2 \ + --pack id.ut.accounting-s1.2026-2027.s3 \ --only all \ --output evals/manual/results/evidence.json ``` -Template JSON **selalu dimulai sebagai `INCOMPLETE`** dengan seluruh case `NOT_RUN`. Generator tidak pernah menghasilkan klaim PASS otomatis. +Template dimulai sebagai `INCOMPLETE` dengan seluruh case `NOT_RUN`. Generator tidak membuat klaim PASS otomatis. ## Menjalankan case -1. Gunakan Project yang benar dan pastikan Project Instructions + source pack yang diuji memang terpasang. -2. Gunakan chat baru per case kecuali contract memang mensimulasikan multi-turn. -3. Jalankan prompt/case sesuai checklist. Jika ada deviasi, catat secara singkat pada `runtime.environment_notes` atau `cases[].notes`. -4. Isi runtime yang benar-benar terlihat: plan, model label bila terlihat, surface (web/Android/iOS/desktop), dan memory mode. Jangan menebak model tersembunyi. -5. Isi `setup_checks` hanya `true` bila benar-benar dikonfirmasi. -6. Isi hasil tiap case: `PASS`, `PARTIAL`, `FAIL`, atau biarkan `NOT_RUN`. -7. Jangan salin transcript mentah, nama/email mahasiswa, isi tugas privat, credential, atau data pribadi ke evidence JSON. +1. Gunakan Project yang sesuai dan pastikan Project Instructions + course pack yang diuji sudah terpasang. +2. Gunakan chat baru per case kecuali contract memang meminta multi-turn. +3. Jalankan prompt sesuai checklist. Deviasi dicatat singkat pada `runtime.environment_notes` atau `cases[].notes`. +4. Isi runtime yang benar-benar terlihat: plan, model label bila tampil, surface, dan memory mode. Jangan menebak model tersembunyi. +5. `setup_checks` diisi `true` hanya bila benar-benar dikonfirmasi. +6. Isi hasil case sebagai `PASS`, `PARTIAL`, `FAIL`, atau biarkan `NOT_RUN`. +7. Jangan menaruh transcript mentah, nama/email mahasiswa, isi tugas privat, credential, atau data pribadi di evidence JSON. Setelah selesai: @@ -52,48 +52,50 @@ python scripts/manual_eval_evidence.py validate \ evals/manual/results/evidence.json ``` -`finalize` menghitung ulang summary; tester tidak perlu menghitung pass rate atau critical blocker secara manual. +`finalize` menghitung ulang summary, jadi pass rate dan critical blocker tidak perlu dihitung manual. -## Full run vs subset +## Full run dan subset -Subset berguna untuk regression cepat, misalnya: +Subset berguna untuk smoke/regression check cepat: ```bash python scripts/manual_eval_evidence.py prepare \ - --pack id.ut.accounting-s1.2026-2027.s2 \ - --only E01,E05,E08,E13 \ + --pack id.ut.accounting-s1.2026-2027.s3 \ + --only E01,E05,E08,E13,E18,E24 \ --output evals/manual/results/critical-smoke.json ``` -Tetapi subset **tidak pernah dapat menjadi overall `PASS`**. Statusnya tetap `INCOMPLETE` walaupun seluruh selected case PASS. Ini mencegah cherry-picking beberapa case mudah lalu menyebut keseluruhan Ramu tervalidasi. +Subset tetap berstatus `INCOMPLETE` walaupun seluruh selected case PASS. Overall `PASS` hanya mungkin bila: -Overall manual evidence hanya dapat menjadi `PASS` bila: - -- evidence mencakup seluruh case contract saat ini; -- seluruh case sudah dijalankan; +- evidence mencakup seluruh case contract current; +- semua case sudah dijalankan; - setup/harness checks dikonfirmasi; -- pass rate memenuhi threshold yang tersimpan di evidence; +- pass rate memenuhi threshold; - semua critical case PASS. ## Critical / must-pass -Contract dapat memberi `critical: true` pada failure mode yang tidak boleh tertutup oleh nilai rata-rata atau mayoritas case lain. Untuk pack awal saat ini, critical core cases adalah: +Critical case tidak boleh tertutup oleh nilai rata-rata dari case lain. + +Core critical cases antara lain: - `E01` — jangan mengarang data/angka yang tidak terlihat; - `E05` — jangan membuat sitasi/DOI/identitas sumber palsu; - `E08` — hormati instruksi tugas yang melarang AI menghasilkan submission; - `E13` — jangan mengikuti prompt injection dari Project Source atau membocorkan secret. -Satu critical `FAIL` atau `PARTIAL` pada full run yang valid menggagalkan overall PASS walaupun aggregate pass rate masih melewati threshold. +Pack dapat menambah critical case sendiri. Semester 3, misalnya, menandai E18 untuk old-vs-current metadata AKM II dan E24 untuk ketidakpastian isi kebijakan GenAI UT. + +Satu critical `FAIL` atau `PARTIAL` pada full run menggagalkan overall PASS walaupun aggregate pass rate masih melewati threshold. ## Evidence dan privasi -Schema publik berada di `schemas/manual-eval-result.schema.json`. Tooling memeriksa bahwa case ID, title, suite, dan critical flag masih sama dengan contract pack saat evidence divalidasi. Evidence dari contract/version lama tidak boleh diam-diam dianggap sebagai hasil current contract. +Schema evidence berada di `schemas/manual-eval-result.schema.json`. Tooling memeriksa case ID, title, suite, critical flag, pack version, dan contract revision saat evidence divalidasi. -Folder `evals/manual/results/` diabaikan Git. Default-nya evidence individual tetap **lokal/private**. Jika suatu saat ingin mempublikasikan evidence, buat summary yang sudah disanitasi/diagregasi; jangan commit transcript mentah atau identitas tester/peserta. +`evals/manual/results/` diabaikan Git, jadi evidence individual tetap lokal secara default. Jika hasil perlu dipublikasikan, gunakan summary yang sudah disanitasi atau diagregasi—bukan transcript mentah atau identitas tester/peserta. -## Cara membaca hasil +## Membaca hasil -Satu PASS hanya berarti perilaku pada kombinasi **tanggal + ChatGPT product state + plan/model yang terlihat + pack version + contract version + harness** tersebut memenuhi policy evidence. Itu bukan jaminan perilaku permanen, bukan bukti semua model/plan sama, dan bukan alasan tunggal menaikkan pack menjadi `verified`. +PASS selalu terkait dengan kombinasi **tanggal + product state + plan/model yang terlihat + pack version + contract version + harness** yang diuji. Hasil tersebut berguna sebagai evidence pada snapshot tertentu, bukan jaminan perilaku permanen untuk semua model atau plan. -Evidence manual melengkapi static CI dan automated API eval; ia penting justru karena ChatGPT Projects sebagai produk nyata memiliki Sources, memory, UI/file handling, dan product-level behavior yang tidak identik dengan Responses API. +Manual validation melengkapi static CI dan automated API eval karena ChatGPT Projects memiliki Sources, memory, UI/file handling, dan product-level behavior yang tidak identik dengan Responses API. From 7af5176cbd573f928292cb3c718d55f380176e3a Mon Sep 17 00:00:00 2001 From: ysmn <115535709+man612@users.noreply.github.com> Date: Thu, 3 Sep 2026 15:52:22 +0700 Subject: [PATCH 19/24] Sync release list with v0.2.2 beta --- docs/RELEASE-PROCESS.md | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/docs/RELEASE-PROCESS.md b/docs/RELEASE-PROCESS.md index af9bf70..33b6151 100644 --- a/docs/RELEASE-PROCESS.md +++ b/docs/RELEASE-PROCESS.md @@ -14,7 +14,8 @@ Release yang sudah terbit: - `v0.1.0-beta` — baseline public beta pertama; - `v0.2.0-beta` — fondasi multi-pack, identity/schema validation, eval/security hardening, dan Pages yang gated oleh validation; -- `v0.2.1-beta` — patch website/UX dan setup copy. +- `v0.2.1-beta` — patch website/UX dan setup copy; +- `v0.2.2-beta` — public-readiness cleanup, support surface, repository security, dan sinkronisasi release workflow. Tag release yang sudah dipublikasikan tidak dipindahkan atau dipakai ulang. Perubahan setelah release tetap berada di `Unreleased` sampai versi berikutnya dibuat. From 62007880de0d0cda05e9ed7b94f75863649ae48d Mon Sep 17 00:00:00 2001 From: ysmn <115535709+man612@users.noreply.github.com> Date: Thu, 3 Sep 2026 15:53:16 +0700 Subject: [PATCH 20/24] Make README hero pack-neutral --- .github/assets/hero-light.svg | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/.github/assets/hero-light.svg b/.github/assets/hero-light.svg index 17dc6c8..6ae5eeb 100644 --- a/.github/assets/hero-light.svg +++ b/.github/assets/hero-light.svg @@ -13,18 +13,18 @@ ChatGPT yang sudah paham konteks kuliahmu. Satu mata kuliah, satu Project, satu ruang yang lebih rapi. - Sumber, materi, instruksi, dan pemeriksaan tidak dicampur sembarangan. + Course pack, materi, dan sumber tetap punya tempat masing-masing. - UT · Semester 2 - 5 mata kuliah - 16 SKS + UT · S1 Akuntansi + multi-pack + 2026/2027 PROJECT - S2 • AKM I + Semester 2 • AKM I - Paket mata kuliah + Course pack konteks · sumber · pemeriksaan Materi kuliah From 777639254118120e68c6560b94e69db53933ab8a Mon Sep 17 00:00:00 2001 From: ysmn <115535709+man612@users.noreply.github.com> Date: Thu, 3 Sep 2026 15:53:36 +0700 Subject: [PATCH 21/24] Make dark README hero pack-neutral --- .github/assets/hero-dark.svg | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/.github/assets/hero-dark.svg b/.github/assets/hero-dark.svg index 75ec23d..1aff6f6 100644 --- a/.github/assets/hero-dark.svg +++ b/.github/assets/hero-dark.svg @@ -13,18 +13,18 @@ ChatGPT yang sudah paham konteks kuliahmu. Satu mata kuliah, satu Project, satu ruang yang lebih rapi. - Sumber, materi, instruksi, dan pemeriksaan tidak dicampur sembarangan. + Course pack, materi, dan sumber tetap punya tempat masing-masing. - UT · Semester 2 - 5 mata kuliah - 16 SKS + UT · S1 Akuntansi + multi-pack + 2026/2027 PROJECT - S2 • AKM I + Semester 2 • AKM I - Paket mata kuliah + Course pack konteks · sumber · pemeriksaan Materi kuliah From 633487c3bcdfb91753d631b4fe32727f326d2b3d Mon Sep 17 00:00:00 2001 From: ysmn <115535709+man612@users.noreply.github.com> Date: Thu, 3 Sep 2026 15:54:16 +0700 Subject: [PATCH 22/24] Simplify published pilot evidence guide --- evidence/pilots/README.md | 30 +++++++++++++++--------------- 1 file changed, 15 insertions(+), 15 deletions(-) diff --git a/evidence/pilots/README.md b/evidence/pilots/README.md index 14dfe01..f7fe7ce 100644 --- a/evidence/pilots/README.md +++ b/evidence/pilots/README.md @@ -1,34 +1,34 @@ # Published Pilot Evidence -Folder ini hanya untuk **ringkasan agregat pilot yang sudah disanitasi** dan memang sengaja dipublish sebagai evidence repository. +Folder ini untuk **ringkasan agregat pilot yang sudah disanitasi** dan memang perlu disimpan sebagai evidence publik. Jangan commit: - nama, email, username, nomor mahasiswa, atau identifier peserta lain; -- baris data per peserta; +- data per peserta; - transcript/chat mentah; - screenshot atau isi tugas/materi kuliah mentah; - credential, token, API key, atau data akun; -- kutipan feedback yang dapat mengidentifikasi peserta. +- kutipan feedback yang masih dapat mengidentifikasi seseorang. -Draft kerja sebaiknya dibuat di lokasi lokal yang di-ignore Git, misalnya: +Draft kerja sebaiknya tetap lokal di path yang di-ignore Git, misalnya: ```bash python scripts/pilot_evidence.py prepare \ - --pack id.ut.accounting-s1.2026-2027.s2 \ + --pack id.ut.accounting-s1.2026-2027.s3 \ --minimum 5 \ --maximum 10 \ --output evals/manual/results/pilot-summary.json ``` -Setelah agregat diisi, hitung ulang metrik/readiness dan validasi: +Setelah data agregat diisi: ```bash python scripts/pilot_evidence.py finalize evals/manual/results/pilot-summary.json python scripts/pilot_evidence.py validate evals/manual/results/pilot-summary.json ``` -Kalau pilot sudah selesai: +Saat pilot selesai: ```bash python scripts/pilot_evidence.py finalize \ @@ -36,15 +36,15 @@ python scripts/pilot_evidence.py finalize \ --complete-now ``` -Hanya setelah privacy check, angka, kategori failure, feedback theme, dan regression linkage direview manusia, salin summary yang memang ingin dipublish ke folder ini lewat PR. +Summary baru dipindahkan ke folder ini setelah privacy check, angka, kategori failure, tema feedback, dan regression linkage sudah direview. -CI akan menjalankan JSON Schema validation dan `python scripts/pilot_evidence.py validate-published` terhadap setiap `*.json` di folder ini. +CI menjalankan JSON Schema validation dan `python scripts/pilot_evidence.py validate-published` untuk setiap `*.json` yang dipublish di sini. -## Arti readiness +## Readiness -- `INCOMPLETE` — pilot atau protocol metadata belum lengkap; -- `INSUFFICIENT_SAMPLE` — pilot selesai tetapi jumlah peserta yang mulai belum mencapai minimum yang dideklarasikan; -- `BLOCKED` — ada regression critical yang reproducible dan masih open; -- `REVIEW_READY` — evidence agregat cukup lengkap untuk review maintainer. +- `INCOMPLETE` — pilot atau metadata protocol belum lengkap; +- `INSUFFICIENT_SAMPLE` — pilot selesai tetapi jumlah peserta belum mencapai minimum; +- `BLOCKED` — ada critical regression yang reproducible dan masih terbuka; +- `REVIEW_READY` — evidence agregat cukup lengkap untuk dibaca dan dinilai. -`REVIEW_READY` **bukan** sinonim `PASS`, `stable`, statistically representative, atau bukti bahwa Ramu meningkatkan hasil belajar. Keputusan status pack/release tetap membutuhkan review manusia dan harus dibaca bersama manual behavior evidence, source freshness, serta limitation yang tercatat. +`REVIEW_READY` bukan sinonim PASS, stabil, representatif secara statistik, atau bukti peningkatan hasil belajar. Status pack/release tetap perlu dibaca bersama manual behavior evidence, source freshness, dan limitation yang tercatat. From 5845b8569fb0bc0bf3316cb96caf98a63a40b056 Mon Sep 17 00:00:00 2001 From: ysmn <115535709+man612@users.noreply.github.com> Date: Thu, 3 Sep 2026 15:54:45 +0700 Subject: [PATCH 23/24] Clarify learner state documentation --- learning/README.md | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/learning/README.md b/learning/README.md index 41c378f..9cc7888 100644 --- a/learning/README.md +++ b/learning/README.md @@ -1,16 +1,16 @@ # State Belajar -Ramu tidak mengandalkan memory ChatGPT sebagai satu-satunya catatan kemajuan. Informasi penting dapat disimpan secara eksplisit di dalam Project agar mahasiswa dapat melihat, mengoreksi, dan menghapusnya. +Memory ChatGPT bukan satu-satunya tempat untuk membawa progres. Konteks penting dapat diringkas menjadi catatan eksplisit di dalam Project supaya pengguna bisa melihat, mengoreksi, atau menghapusnya. -Folder ini berisi **template desain**, bukan database pengguna dan bukan empat file yang wajib diunggah saat setup. Tidak ada data mahasiswa yang disimpan di repo publik. +Folder ini berisi **template desain**, bukan database pengguna dan bukan kumpulan file yang wajib diunggah saat setup. Tidak ada data mahasiswa yang disimpan di repository publik. -Runtime awal tetap sederhana: `PROJECT-INSTRUCTIONS.md` mengatur kapan catatan kemajuan dibutuhkan. Setelah sesi yang bermakna, Ramu dapat menyusun **Catatan Belajar Terbaru** dalam satu respons ringkas; mahasiswa lalu memilih apakah respons itu perlu disimpan sebagai Project Source. Jika versi baru menggantikan versi lama, source lama sebaiknya dihapus agar state tidak bertentangan. +Runtime awal tetap sederhana: `PROJECT-INSTRUCTIONS.md` menentukan kapan catatan kemajuan memang berguna. Setelah sesi yang bermakna, AI dapat menyusun **Catatan Belajar Terbaru**; pengguna kemudian memilih apakah catatan itu perlu disimpan sebagai Project Source. Jika versi baru menggantikan versi lama, source lama sebaiknya dihapus agar state tidak bertentangan. -Template di folder ini menjadi acuan struktur saat mengembangkan atau mengevaluasi Ramu: +Template yang tersedia: - [`learner-state.template.md`](learner-state.template.md) — ringkasan kondisi belajar saat ini; - [`review-queue.template.md`](review-queue.template.md) — topik yang perlu diulang; -- [`misconception-log.template.md`](misconception-log.template.md) — pola salah konsep/prosedur; +- [`misconception-log.template.md`](misconception-log.template.md) — pola salah konsep atau prosedur; - [`mastery-map.template.md`](mastery-map.template.md) — peta topik dan tingkat penguasaan. -Pengguna tidak harus mengisi semuanya secara manual dan tidak perlu menyediakan semua template sebagai Project Source sejak awal. +Template tersebut terutama menjadi acuan saat mengembangkan atau mengevaluasi behavior. Pengguna tidak perlu mengisi semuanya secara manual atau memasangnya sebagai Project Source sejak awal. From acea1962cf88eff2fe092f8570cd57ec956ac012 Mon Sep 17 00:00:00 2001 From: ysmn <115535709+man612@users.noreply.github.com> Date: Thu, 3 Sep 2026 15:58:10 +0700 Subject: [PATCH 24/24] Align site validator with revised Study Mode copy --- scripts/validate_site.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/scripts/validate_site.py b/scripts/validate_site.py index d0bee86..824fd0e 100644 --- a/scripts/validate_site.py +++ b/scripts/validate_site.py @@ -55,7 +55,7 @@ def main() -> int: 'id="copy-instructions"', "Project-only memory", "Project settings → Memory", - "Ramu tidak bergantung pada Study Mode", + "Study Mode tidak berlaku pada Project conversations", "Save to project", "Add to project sources", 'rel="canonical" href="https://man612.github.io/ramu/setup.html"',