@azure-id/orc 1.7.1 β†’ 1.8.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (58) hide show
  1. package/CHANGELOG.md +3649 -3381
  2. package/README-id.md +923 -844
  3. package/README.md +836 -788
  4. package/bin/build-agents.js +43 -27
  5. package/bin/cli.js +701 -3
  6. package/bin/graph-extract.js +927 -0
  7. package/bin/graph-notes.js +188 -0
  8. package/bin/graph-query.js +808 -0
  9. package/bin/graph-resolve.js +178 -0
  10. package/bin/graph-signals.js +277 -0
  11. package/bin/graph.js +605 -0
  12. package/bin/verify-contracts.js +4669 -4553
  13. package/bin/verify-package.js +626 -616
  14. package/bin/webui/api.js +1419 -1414
  15. package/bin/webui/fixtures/index.js +579 -576
  16. package/bin/webui/fixtures/knowledge.js +316 -291
  17. package/bin/webui/i18n/en/knowledge.json +167 -151
  18. package/bin/webui/i18n/en/overview.json +101 -100
  19. package/bin/webui/i18n/id/knowledge.json +167 -151
  20. package/bin/webui/i18n/id/overview.json +101 -100
  21. package/bin/webui/js/panels/knowledge.js +1065 -1006
  22. package/bin/webui/js/panels/overview.js +492 -488
  23. package/package.json +39 -39
  24. package/templates/agents/MODEL-MAPPING.md +163 -158
  25. package/templates/agents/orc-executor-haiku-4-5.md +133 -121
  26. package/templates/agents/orc-executor-opus-4-7-high.md +134 -122
  27. package/templates/agents/orc-executor-opus-4-7-med.md +134 -122
  28. package/templates/agents/orc-executor-opus-4-8-high.md +134 -122
  29. package/templates/agents/orc-executor-opus-5-high.md +134 -122
  30. package/templates/agents/orc-executor-opus-5-low.md +134 -122
  31. package/templates/agents/orc-executor-opus-5-med.md +134 -122
  32. package/templates/agents/orc-executor-sonnet-4-6-high.md +134 -122
  33. package/templates/agents/orc-executor-sonnet-4-6-med.md +134 -122
  34. package/templates/agents/orc-executor-sonnet-5-high.md +134 -122
  35. package/templates/agents/orc-graph-noter-sonnet-4-6-med.md +86 -0
  36. package/templates/hooks/README.md +444 -396
  37. package/templates/hooks/orc-graph-hook.js +336 -0
  38. package/templates/hooks/orc-statusline-render.js +922 -921
  39. package/templates/hooks/orc-statusline.js +1596 -1545
  40. package/templates/skills/_shared/README.md +4 -0
  41. package/templates/skills/_shared/code-graph.md +220 -0
  42. package/templates/skills/_shared/opus5-only.md +4 -0
  43. package/templates/skills/_shared/phases/execution.md +166 -147
  44. package/templates/skills/_shared/phases/planning.md +142 -135
  45. package/templates/skills/_shared/phases/preflight.md +132 -118
  46. package/templates/skills/_shared/phases/review.md +63 -53
  47. package/templates/skills/_shared/phases/ship.md +96 -88
  48. package/templates/skills/_shared/phases/trace.md +6 -0
  49. package/templates/skills/_shared/phases/wiki-consult.md +194 -189
  50. package/templates/skills/_shared/read-ladder.md +124 -102
  51. package/templates/skills/_shared/return-validation.md +259 -250
  52. package/templates/skills/orc/SKILL.md +255 -254
  53. package/templates/skills/orc-diy/references/flow-schema.md +101 -100
  54. package/templates/skills/orc-fast/SKILL.md +236 -229
  55. package/templates/skills/orc-mini/SKILL.md +267 -259
  56. package/templates/skills/orc-quick/SKILL.md +378 -361
  57. package/templates/skills/orc-quick/references/dispatch-gate.md +6 -0
  58. package/templates/skills/orc-wiki/references/staleness.md +294 -288
package/README-id.md CHANGED
@@ -1,844 +1,923 @@
1
- <div align="center">
2
-
3
- # πŸ‹ ORC
4
-
5
- **Kumpulan skill orkestrator untuk [Claude Code](https://claude.com/claude-code).**
6
-
7
- *Terima permintaan β†’ pahami β†’ rencanakan β†’ beri nilai β†’ kerjakan paralel β†’ periksa β†’ uji β†’ kirim.*
8
-
9
- ![npm](https://img.shields.io/npm/v/%40azure-id%2Forc?style=for-the-badge&color=cb3837&logo=npm)
10
- ![Version](https://img.shields.io/badge/version-1.7.0-blue.svg?style=for-the-badge)
11
- ![License](https://img.shields.io/badge/license-MIT-green.svg?style=for-the-badge)
12
- ![Node](https://img.shields.io/badge/node-%3E%3D18-brightgreen.svg?style=for-the-badge)
13
- ![Claude Code](https://img.shields.io/badge/Claude_Code-Skills-purple.svg?style=for-the-badge)
14
- ![Dependencies](https://img.shields.io/badge/dependencies-zero-lightgrey.svg?style=for-the-badge)
15
-
16
- **Versi terbaru: v1.7.0** Β· diperbarui 13-09-2026 Β· [daftar perubahan lengkap](CHANGELOG.md)
17
-
18
- **Ada di npm: [`@azure-id/orc`](https://www.npmjs.com/package/@azure-id/orc)** β€” `npm i -g @azure-id/orc`
19
-
20
- **πŸ‡¬πŸ‡§ [Read this in English](README.md)**
21
-
22
- </div>
23
-
24
- ---
25
-
26
- > **Tentang terjemahan ini.** Halaman ini memakai bahasa yang sederhana supaya
27
- > mudah dipahami. Semua **perintah, nama berkas, nama model, dan kata status**
28
- > ditulis apa adanya dalam bahasa Inggris β€” itu bukan kata biasa, itu nama yang
29
- > harus Anda ketik persis seperti aslinya.
30
- >
31
- > Kalau ada bagian yang terasa berbeda dengan versi Inggris, **[README.md](README.md)
32
- > yang berlaku**.
33
-
34
- ---
35
-
36
- > [!CAUTION]
37
- > **Naik versi dari sebelum v0.56.0? Lakukan ini sekali saja.**
38
- >
39
- > Nama paket pindah dari `orc` (tanpa scope) menjadi **`@azure-id/orc`**.
40
- > Keduanya memakai nama perintah yang sama, yaitu `orc`. npm tidak mau
41
- > memberikan perintah itu kepada paket baru selama paket lama masih
42
- > memegangnya - jadi **semua** cara pasang gagal dengan pesan yang sama, dan
43
- > `orc upgrade` tidak bisa memperbaiki dirinya sendiri:
44
- >
45
- > ```text
46
- > npm error code EEXIST
47
- > npm error File exists: C:\Users\anda\AppData\Roaming\npm\orc
48
- > ```
49
- >
50
- > Jalankan tiga baris ini sekali saja. Isi folder `.claude/` Anda tidak
51
- > disentuh, dan `orc.config.yaml` Anda tetap aman:
52
- >
53
- > ```bash
54
- > npm uninstall -g orc # lepaskan perintah `orc` dari paket lama
55
- > npm i -g @azure-id/orc # pasang paket yang sekarang
56
- > orc update # pasang ulang ke proyek ini (pakai --global untuk ~/.claude)
57
- > ```
58
- >
59
- > **Mulai v0.56.0, `orc upgrade` mengurus ini untuk Anda** - paket lama dihapus
60
- > lebih dulu, lalu paket baru dipasang, dan ORC memberi tahu Anda saat
61
- > melakukannya. `orc doctor` juga menyebutkan nama paket lama kalau masih ada.
62
- >
63
- > **Jangan** memakai `npm i -g -f`. `--force` menimpa berkas perintah dan
64
- > membiarkan paket lama tetap terpasang di bawahnya - tidak memiliki apa pun,
65
- > dan tidak pernah diperbarui lagi.
66
-
67
- ---
68
-
69
- ## Apa itu ORC?
70
-
71
- Anda memberi ORC sebuah permintaan β€” bisa satu kalimat, bisa sebuah dokumen
72
- kebutuhan. ORC akan:
73
-
74
- 1. mencari tahu apa sebenarnya maksud Anda,
75
- 2. membuat rencana kerja,
76
- 3. mengirim setiap tugas ke **model paling murah yang masih sanggup mengerjakannya**,
77
- 4. mengerjakan tugas-tugas yang tidak saling bentrok **secara bersamaan**,
78
- 5. memeriksa hasilnya,
79
- 6. mengujinya terhadap definisi "selesai" yang sudah Anda setujui,
80
- 7. lalu mengirimkannya.
81
-
82
- ORC menyimpan catatan kerjanya ke disk sambil jalan. Jadi pekerjaan panjang tetap
83
- selamat kalau Anda berhenti di tengah, kalau kuota token habis, atau kalau Anda
84
- membuka sesi obrolan yang benar-benar baru.
85
-
86
- **ORC bukan program yang berjalan sendiri.** ORC adalah kumpulan berkas markdown
87
- berisi **skill**, **perintah garis miring** (`/perintah`), dan **definisi
88
- subagen** yang dibaca dan diikuti oleh Claude Code. Paket npm ini β€” yang tidak
89
- punya satu pun dependensi β€” hanya menyalin berkas-berkas itu ke folder `.claude/`
90
- Anda.
91
-
92
- ```text
93
- β”Œβ”€β”€β”€β”€β”€β”€β”€β”€ Anda yang menentukan cakupan + persetujuan ────────┐
94
- permintaan / dokumen ──▢ terima ─▢ pahami ─▢ rencana ─▢ nilai ─▢ ⇉ gelombang paralel ⇉ ─▢ periksa ─▢ uji ─▢ kirim
95
- (berdasar kode) (per tugas) (model termurah yang sanggup) (disimpan ke disk)
96
- ```
97
-
98
- ---
99
-
100
- ## πŸ‘€ Lihat dulu sebelum Anda pakai
101
-
102
- Setiap lane ditulis lengkap sebagai **mock run** β€” contoh jalannya: apa yang Anda
103
- ketik, apa yang ORC balas, dan berkas apa yang muncul di disk. Tidak ada yang
104
- benar-benar dijalankan untuk membuatnya. Contoh-contoh itu ada supaya Anda tidak
105
- perlu membakar token hanya untuk tahu sebuah perintah melakukan apa.
106
-
107
- ### **β–Ά [Mulai di sini: `mock-run/INDEX.md`](mock-run/INDEX.md)**
108
-
109
- Bisa juga dibaca tanpa meninggalkan komputer Anda:
110
-
111
- ```bash
112
- orc mock-run list # semua contoh, urut dari yang paling awal dibaca
113
- orc mock-run show orc-pact # baca satu
114
- orc ui # β–Έ Mocked Skill Use β€” contoh yang sama, bisa dicari
115
- ```
116
-
117
- ---
118
-
119
- ## Kenapa dibuat seperti ini?
120
-
121
- Satu agen yang diberi pekerjaan nyata selalu gagal dengan cara yang sama: ia
122
- diam-diam memilih satu tafsiran dari permintaan Anda, memakai model termahal
123
- untuk semuanya, lupa keputusan begitu konteksnya dipadatkan, bilang "selesai"
124
- terhadap definisi yang tidak pernah ditulis siapa pun, mengutip kode yang tidak
125
- ada, dan tidak meninggalkan apa pun untuk diperiksa.
126
-
127
- Itu semua **masalah proses** β€” persis masalah yang di tim manusia diselesaikan
128
- dengan pembagian peran, review, dan kesepakatan tertulis. ORC menuliskan
129
- kedisiplinan itu sebagai skill:
130
-
131
- - **Mengatur dan mengerjakan adalah dua pekerjaan berbeda.** Sang orkestrator
132
- tidak pernah menulis kode. Bahkan perubahan satu baris pun dikirim ke subagen,
133
- supaya konteks orkestrator tetap ringan sepanjang pekerjaan.
134
- - **Setiap tugas diberi nilai, dan nilai itu yang memilih model.** Anda melihat
135
- tabelnya sebelum apa pun dimulai, dan setiap agen punya nama serta model yang
136
- dikunci β€” jadi model apa yang benar-benar dipakai adalah fakta yang bisa Anda
137
- periksa.
138
- - **"Selesai" ditulis sebelum pekerjaan dimulai.** Tahap penerimaan menghasilkan
139
- spesifikasi yang Anda setujui, dan definisi "selesai" di dalamnya jadi bahan
140
- pengujian terakhir.
141
- - **Tidak ada yang dipercaya begitu saja, semuanya harus dibuktikan.** Kutipan
142
- `berkas:baris`, keluaran build apa adanya, temuan yang menunjuk baris nyata β€”
143
- dan orkestrator memeriksa sampel dari bukti itu, jadi kutipan karangan langsung
144
- ditolak, bukan ikut masuk ke tugas berikutnya.
145
- - **Disk lebih dipercaya daripada ingatan.** ORC rajin menyimpan titik simpan,
146
- jadi setiap jeda jadi titik lanjut yang bersih β€” termasuk di sesi baru.
147
- - **Ketelitian bisa diatur.** Tulang punggung yang sama bisa jalan sebagai
148
- `/orc-mini` (satu subagen), `/orc` (fitur sungguhan), dan `/orc-ultra`
149
- (dengan penasihat dan gerbang penilaian).
150
- - **Ia belajar.** Pola kode membuat agen menulis mirip gaya kode Anda, wiki
151
- membuat setiap rencana berikutnya lebih tajam, dan catatan jejak dibaca oleh
152
- `/orc-retro` yang menyetel ulang penilaiannya dari kerja nyata.
153
-
154
- ---
155
-
156
- ## Cara mulai
157
-
158
- ORC ada di npm dengan nama **[`@azure-id/orc`](https://www.npmjs.com/package/@azure-id/orc)**.
159
-
160
- ```bash
161
- npm i -g @azure-id/orc # pasang
162
- npm i -g @azure-id/orc@latest # perbarui ke rilis terbaru
163
- ```
164
-
165
- <details>
166
- <summary>Atau pasang langsung dari GitHub</summary>
167
-
168
- <br>
169
-
170
- ```bash
171
- npm i -g https://github.com/azure-id/orc/archive/refs/heads/main.tar.gz
172
- ```
173
-
174
- </details>
175
-
176
- Lalu, di dalam sebuah proyek:
177
-
178
- ```bash
179
- orc init # pasang ke ./.claude (proyek ini saja)
180
- orc init --global # pasang ke ~/.claude (semua proyek)
181
- orc onboarding # panduan lengkap langsung di terminal β€” tanpa buka GitHub
182
- orc config # lihat atau ubah pengaturan (nol token model)
183
- orc ui # panel kendali lokal
184
- orc --help # semua perintah
185
- ```
186
-
187
- Setelah dipasang:
188
-
189
- 1. Tempelkan templat PR tim Anda ke `skills/orc/subskills/orc-pr/pr.md`.
190
- 2. Tambahkan `.claude/orc/run/` ke `.gitignore` proyek Anda.
191
- 3. Jalankan **`/agents`** untuk memastikan Claude Code Anda menerima id model
192
- milik para agen.
193
- 4. **Jalankan sesi utama Anda di Opus 5.** Sebuah subagen tidak akan pernah bisa
194
- memakai model yang lebih baik daripada sesi Anda. Ini penyebab paling sering
195
- dari keluhan "kok modelnya salah" β€” lihat
196
- [pemilihan model](guides/model-selection.md).
197
- 5. Kalau sebuah `/perintah` tidak muncul, mungkin Claude Code Anda membaca
198
- perintah dari folder lain β€” pindahkan berkas di `commands/` ke sana.
199
-
200
- <details>
201
- <summary><b>Tetap memakai versi terbaru</b></summary>
202
-
203
- <br>
204
-
205
- `orc update` menyalin ulang berkas yang **sudah ada** di paket ini. Perintah itu
206
- tidak menyentuh internet sama sekali. **`orc upgrade` adalah yang menarik versi
207
- baru**: ia mengambil paket terbaru dulu, lalu memasangnya. Berkas
208
- `.claude/orc.config.yaml` Anda selamat di kedua perintah itu.
209
-
210
- ```bash
211
- orc version # versi Anda, dan apakah ada yang lebih baru
212
- orc changelog # apa yang akan Anda DAPAT kalau upgrade
213
- orc upgrade # ambil yang terbaru, lalu perbarui proyek ini
214
- orc upgrade --global # sama, tapi untuk ~/.claude
215
- orc upgrade --from @azure-id/orc # dari npm, disebut jelas
216
- orc upgrade --from github:azure-id/orc # dari fork, atau spesifikasi npm apa pun
217
- ```
218
-
219
- Atau perbarui paketnya sendiri lalu pasang ulang:
220
-
221
- ```bash
222
- npm i -g @azure-id/orc@latest
223
- orc update
224
- ```
225
-
226
- Pemeriksaan versi dilakukan lewat HTTPS, hasilnya disimpan 24 jam, dan gagal
227
- diam-diam kalau Anda sedang offline. Matikan dengan `ORC_NO_UPDATE_CHECK=1`.
228
-
229
- Anda tidak perlu menjalankan perintah untuk tahu ada versi baru: pemberitahuan
230
- yang sama muncul di dalam Claude Code lewat hook milik ORC, dengan **nol token
231
- model** β€” hook itu skrip yang dijalankan Claude Code, bukan giliran model.
232
-
233
- Kalau pemasangan dari GitHub gagal (sering terjadi di **NVM**), `orc upgrade`
234
- akan mencoba ulang sendiri dengan berkas tarball biasa.
235
-
236
- </details>
237
-
238
- > **"ORC tidak melihat wiki saya"?** Jalankan **`orc wiki sync`**, bukan
239
- > pemindaian baru. Dokumen tanpa manifest itu *belum terdaftar*, bukan hilang β€”
240
- > ini biasa terjadi kalau pemindaian berhenti di salah satu jeda `/orc-wiki`.
241
- > Sync membangun ulang daftarnya dari dokumen yang sudah Anda punya, gratis.
242
-
243
- > **"Sebenarnya ORC tahu apa tentang proyek saya?"** `orc wiki docs` menampilkan
244
- > semua dokumen yang terdaftar, `orc wiki coverage` memberi tahu berapa banyak
245
- > kode Anda yang sudah pernah ditulis di dokumen, dan `orc pattern show <lang>`
246
- > mencetak kebiasaan kode yang diberikan ke setiap agen penulis kode di sini.
247
- > Semuanya gratis dan hanya membaca β€”
248
- > **[`guides/knowledge-reads.md`](guides/knowledge-reads.md)**.
249
-
250
- ---
251
- ## Hook di terminal
252
-
253
- ORC punya hook terminal supaya Anda bisa melihat: persentase jendela konteks,
254
- pemakaian 5 jam, pemakaian mingguan, dan beberapa hal lain.
255
-
256
- <img width="725" height="96" alt="image" src="https://github.com/user-attachments/assets/6a649c87-81ea-4fd9-9d0b-6bb4b97fe9cd" />
257
-
258
- <br>
259
-
260
- ---
261
-
262
- ## Lane yang tersedia
263
-
264
- > [!TIP]
265
- > Lane ini menyambung secara alami: **`/orc-brainstorm` β†’ `/orc-grill` β†’
266
- > `/orc-analyze` β†’ `/orc-plan` β†’ `/orc-route` β†’ `/orc`**. Anda boleh mulai dari
267
- > mana saja.
268
-
269
- ### Membuat sesuatu
270
-
271
- | Perintah | Kegunaannya | Contoh jalannya |
272
- |---|---|---|
273
- | **`/orc`** | Alur penuh: terima β†’ rencana β†’ gelombang paralel bernilai β†’ periksa β†’ uji β†’ kirim. Rajin menyimpan titik simpan; bisa dilanjutkan di sesi baru. | [lihat](mock-run/orc.md) |
274
- | **`/orc-ultra`** | Sama, ditambah penasihat Opus 5 **xhigh** dan tiga gerbang penilaian. Analisis dalam, pola kode, tes, dan keamanan dipaksa menyala. Memang mahal. | [lihat](mock-run/orc-ultra.md) |
275
- | **`/orc-mini`** | Satu agen Sonnet 5, satu pemeriksaan build + tes, lalu kirim. Melewati review penuh dan pengujian. Bisa pindah ke alur penuh di tengah jalan kalau diminta. | [lihat](templates/skills/orc-mini/examples/mini-run-mock.md) |
276
- | **`/orc-fast`** | Lane tercepat. Butuh wiki yang masih segar **dan** pola kode yang sudah tersimpan; kalau ada, ia melewati tahap analis dan perencana sepenuhnya. Kalau salah satu syarat tidak ada, ia mundur ke `/orc-mini` β€” obrolan tidak pernah berhenti. | [lihat](mock-run/orc-fast.md) |
277
- | **`/orc-quick`** | Minta apa saja: perbaikan kecil, pertanyaan, mencari bug, menaikkan versi dependensi, komentar PR. Lihat β†’ tanya sekali β†’ kerjakan. **Selalu bertanya agen mana yang mau dipakai**, dan tidak ada pengaturan yang bisa mengubah itu. | [lihat](mock-run/orc-quick.md) |
278
- | **`/orc-diy`** | Lane racikan Anda sendiri, disusun di terminal dengan `orc diy` lalu dikompilasi. Kalau belum disetel atau sudah basi, ia menolak jalan dan menawarkan `/orc` biasa. | [lihat](mock-run/orc-diy.md) |
279
-
280
- ### Memikirkan apa yang mau dibuat
281
-
282
- | Perintah | Kegunaannya | Contoh jalannya |
283
- |---|---|---|
284
- | **`/orc-brainstorm`** | Idenya belum ada. Ia membuat banyak calon ide memakai beberapa sudut pandang, **tanpa mengkritik apa pun saat masih mengumpulkan**, mengelompokkannya jadi beberapa arah nyata, menguji setiap arah, lalu merekomendasikan satu dan **menunggu β€” ia tidak pernah memilih untuk Anda**. Setiap daftar pilihan selalu diakhiri satu slot untuk ide Anda sendiri. | [lihat](mock-run/orc-brainstorm.md) |
285
- | **`/orc-grill`** | Idenya sudah ada satu, tapi masih kabur. Ia bertanya beberapa ronde, **mencari faktanya sendiri** alih-alih menyuruh Anda menghafal isi kode Anda sendiri, dan tidak pernah menjawab pertanyaannya sendiri. Selesai kalau *Anda* bilang idenya sudah pas. | [lihat](mock-run/orc-grill.md) |
286
- | **`/orc-analyze`** | Dokumen atau permintaan β†’ spesifikasi yang jelas batasnya dan berpijak pada kode. Setiap klaim membawa bukti `berkas:baris`, atau berubah jadi pertanyaan. Mode dalam menambah beberapa pemeriksa paralel. | [lihat](templates/skills/orc-analyze/examples/analyze-mock.md) |
287
- | **`/orc-plan`** | Permintaan atau spesifikasi β†’ rencana tugas sungguhan: berkas nyata, urutan ketergantungan, sifat tiap tugas, dan keputusan tes per tugas. | [lihat](mock-run/orc-plan.md) |
288
- | **`/orc-doc`** | Menulis dokumen panjang β€” PRD, TSD, kesepakatan antar tim, laporan status, atau runbook β€” sebagai Markdown yang bisa diimpor rapi ke Notion, Obsidian, Google Docs, Coda, Craft, dan GitHub. **ORC tidak pernah membaca isi dokumennya**: tiap bagian jadi berkasnya sendiri di `sections/`, tiap penulis memegang tepat satu berkas, tiap pemeriksa membaca satu potongan, dan `document.md` hanyalah hasil rakitan yang dibangun ulang gratis. Setiap gelombang adalah titik berhenti yang aman, dan berbulan-bulan kemudian bisa dilanjutkan tanpa Anda menjelaskan ulang apa pun. | [lihat](mock-run/orc-doc.md) |
289
- | **`/orc-route`** | Rencananya sudah ada β€” lane mana yang sebaiknya mengerjakan? Ia menyebut satu lane, lalu pilihan lain beserta apa yang Anda korbankan, dan lane mana yang tidak mungkin beserta syarat yang menghalanginya. **Ia menolak memilih lane hanya dari satu kalimat**, karena itu sama saja menebak. | [lihat](mock-run/orc-route.md) |
290
- | **`/orc-explain`** | "Tunggu, tadi apa?" Ia mengulang pesan terakhir: intinya dulu, lalu latar belakang yang tadi dianggap sudah Anda tahu, lalu semua istilah khas ORC dijelaskan dengan kata-kata proyek Anda sendiri. | [lihat](mock-run/orc-explain.md) |
291
- | **`/orc-poly`** | Satu perubahan yang menyentuh dua repo atau lebih, tanpa jadi melenceng. Kode repo tetangga hanya dibaca; ia membekukan batas bersama jadi sebuah kontrak lalu menulis satu rencana per repo. Ia tidak pernah membangun apa pun. | [lihat](templates/skills/orc-poly/examples/poly-run-mock.md) |
292
-
293
- ### Mengajari ORC tentang proyek Anda
294
-
295
- | Perintah | Kegunaannya | Contoh jalannya |
296
- |---|---|---|
297
- | **`/orc-wiki`** | Memindai kode Anda jadi `wiki/` yang menetap, tiap klaim menunjuk berkas nyata, lalu mengarahkan `CLAUDE.md` ke sana. Kesegarannya dihitung saat dibaca, tidak pernah disimpan. Mahal dan harus Anda minta β€” ia selalu memperingatkan dulu. | [lihat](templates/skills/orc-wiki/examples/wiki-run-mock.md) |
298
- | **`/orc-pattern`** | Mempelajari kebiasaan kode Anda per bahasa, supaya agen menulis kode yang mirip gaya kode Anda. Kebiasaan Anda yang menang; aturan wajib soal keamanan dan kebenaran tetap dibawa. | [lihat](mock-run/orc-pattern.md) |
299
- | **`/orc-learn`** | Dokumen pengenalan untuk manusia, satu fitur sekali jalan, menunjuk `berkas:baris`. Tersimpan lokal dan diabaikan git. | [lihat](templates/skills/orc-learn/examples/learn-run-mock.md) |
300
- | **`/orc-claude`** | Membuat atau menyegarkan `CLAUDE.md` repo ini dari fakta yang sudah diperiksa. Tanpa pertanyaan; tulisan Anda sendiri tidak pernah dipotong. | [lihat](templates/skills/orc-claude/examples/claude-run-mock.md) |
301
- | **`/orc-export`** | Merangkum wiki, pola kode, `PACT.md`, dan kartu batas jadi satu `AGENTS.md` yang bisa dibawa ke mana-mana β€” diturunkan, bersidik jari, bisa diperiksa dengan `--check`. Supaya ORC tidak jadi jebakan. | [lihat](mock-run/orc-export.md) |
302
-
303
- ### Memeriksa apa yang sudah terjadi
304
-
305
- | Perintah | Kegunaannya | Contoh jalannya |
306
- |---|---|---|
307
- | **`/orc-challenge`** | Menilai sesuatu yang **sudah jadi** β€” TSD, PRD, ADR, kontrak API, README, satu modul kode β€” terhadap tujuan yang **Anda** nyatakan, lalu **berhenti dan menyuruh Anda memperbaikinya di sesi lain**. ORC menilai, Anda memperbaiki, ORC menilai lagi: **ia tidak pernah memperbaiki apa yang ia nilai**, karena sesi yang baru saja menulis perbaikan pasti memberi nilai bagus pada pekerjaannya sendiri. **Dan ia tidak pernah menebak arti "bagus" di sini.** | [lihat](mock-run/orc-challenge.md) |
308
- | **`/orc-pact`** | Janji-janji yang dipegang proyek Anda, dan mana yang sekarang diragukan. Empat status, semuanya **dihitung saat dibaca**: HOLDING Β· DRIFTED Β· **UNCHECKABLE** (status jujur β€” bukan kegagalan) Β· BROKEN. Ia tidak pernah mengarang janji dan tidak pernah mencabut janji untuk Anda. | [lihat](mock-run/orc-pact.md) |
309
- | **`/orc-boundary`** | Apa yang **sebaiknya tidak** dicoba ORC di sini, dan apa persisnya yang akan mengubah itu. EXECUTE Β· ESCALATE Β· REFUSE, per area. **REFUSE selalu menyebutkan apa yang akan membuatnya jadi boleh.** Ia hanya membatasi ORC sendiri, tidak pernah membatasi perintah Anda. | [lihat](mock-run/orc-boundary.md) |
310
- | **`/orc-verify`** | Menguji hanya perubahan yang belum di-commit: build, tes, kewajaran diff, dan temuan pada tangga P0–P3. Hanya membaca. | [lihat](templates/skills/orc-verify/examples/verify-mock.md) |
311
- | **`/orc-aftermath`** | Apakah yang kita kirim kemarin bertahan? Dinilai dari masa depan repo itu sendiri: berkas yang cepat ditulis ulang, commit yang dibatalkan, tes yang dihapus, janji yang patah. **Perubahan berulang itu sinyal, bukan vonis**, dan ia tidak pernah menyebut nama orang. | [lihat](mock-run/orc-aftermath.md) |
312
- | **`/orc-budget`** | Berapa biaya sebuah pekerjaan, dalam satuan yang benar-benar ditagihkan ke Anda. Sebuah **vektor token** β€” input baru, tulis cache, baca cache, output; tidak pernah dicampur β€” ditampilkan empat cara: token, dolar, persen dari jendela 5 jam Anda, dan risiko jendela konteks. Butuh rencana, bukan satu kalimat. | [lihat](mock-run/orc-budget.md) |
313
- | **`/orc-retro`** | Mengolah catatan jejak jadi laporan kalibrasi lalu mengirimkannya ke hulu sebagai PR. | [lihat](templates/skills/orc-retro/examples/retro-mock.md) |
314
-
315
- ### Mengirim dan menyerahkan
316
-
317
- | Perintah | Kegunaannya | Contoh jalannya |
318
- |---|---|---|
319
- | **`/orc-pr-setup`** | Menentukan di mana perubahan besar dipotong jadi beberapa pull request bertumpuk: lapisan berurutan, masing-masing dengan tujuan, daftar berkas, dan perkiraan biaya. Ia berhenti dan bertanya di setiap sambungan yang meragukan, dan tidak pernah menyentuh git. | [lihat](mock-run/orc-pr-setup.md) |
320
- | **`/orc-pr-driver`** | Menjalankan rencana itu: satu branch per lapisan, **pemeriksaan hijau wajib di dasar tiap lapisan**, `gh stack submit`, lalu susun ulang dan merge dari bawah ke atas. | [lihat](mock-run/orc-pr-setup.md) |
321
- | **`/orc-handoff`** | Untuk orang yang tidak membaca kode. Nilainya ditentukan oleh **ada atau tidaknya pemeriksaan murah**, bukan oleh jenis berkasnya. Ia menampilkan perintah pembatalan *sebelum* menulis, dan tidak pernah menyentuh berkas merah. | [lihat](mock-run/orc-handoff.md) |
322
-
323
- ---
324
-
325
- ## Aturan yang menahan slop
326
-
327
- ORC menulis banyak prosa dan banyak kode. Keduanya keluar membawa bawaan yang
328
- sama dan mudah dikenali: kalimat yang terdengar yakin tetapi tidak mengatakan
329
- apa-apa, dan kode yang lebih panjang, lebih defensif, dan lebih abstrak daripada
330
- yang diminta tugasnya. `orc rules` adalah saringannya, dan saringan itu punya
331
- **dua bagian yang tidak pernah bercampur**.
332
-
333
- | Bagian | Siapa yang menulis | Di mana | Berubah kapan |
334
- |---|---|---|---|
335
- | **Aturan ORC** | ORC | `.claude/skills/_shared/rules/` | `orc update` |
336
- | **Aturan Anda** | Anda | `.claude/orc/rules.md` | Anda mengetik |
337
-
338
- **65 aturan kiriman, hanya-baca**, dalam empat paket: `OSW` penulisan (23) Β·
339
- `OSC` kode (22) Β· `OSD` pelaporan (10), yaitu apa yang dilaporkan agen tentang
340
- pekerjaannya SENDIRI Β· `OSU` antarmuka (10), yang ikut per TUGAS, bukan per
341
- lane. Tiga tingkat β€” **HARD** mutlak, **PURPOSE** boleh dengan satu baris alasan
342
- tertulis, **LOCK** pemeriksaan konsistensi.
343
-
344
- **Aturan Anda berupa teks biasa**, tiga judul, sebanyak apa pun di bawah
345
- masing-masing β€” dan **aturan Anda mengalahkan aturan ORC secara langsung**:
346
-
347
- ```
348
- aturan rumah > aturan Anda > aturan ORC
349
- ```
350
-
351
- Aturan rumah hanya tentang KODE dan perilaku. Aturan itu tidak berbicara tentang
352
- kata-kata yang ditulis agen, jadi tidak pernah mengalahkan aturan penulisan.
353
- Untuk mematikan satu aturan ORC, sebut id-nya di dalam aturan Anda sendiri;
354
- penggantian itu lalu dihitung, dicetak saat preflight, dan dinyatakan di dalam
355
- setiap slice. **Tidak pernah diam-diam.**
356
-
357
- ```bash
358
- orc rules # kedua bagian, urutan kuasa, jumlahnya
359
- orc rules add --priority P0 --text "..." # aturan Anda, dengan kata-kata Anda
360
- orc rules lint src/ README.md # gratis, nol token
361
- orc rules credits # tiap sumber, penulis, dan lisensinya
362
- ```
363
-
364
- `orc rules lint` memeriksa **13 dari 65** β€” yang dapat dibuktikan pencocokan
365
- teks β€” dan selalu mencetak `not checked here: 52 rules. They need a reader, not a
366
- matcher.` Lint yang bersih bukan tinjauan yang bersih, dan perintah itu
367
- mengatakannya.
368
-
369
- **Aturan ini adalah karya orang lain, dan kreditnya ikut dikirim.** Diadaptasi
370
- dari [`petergyang/no-ai-slop`](https://github.com/petergyang/no-ai-slop) (MIT),
371
- [`miqdadbadjuber/anti-slop`](https://github.com/miqdadbadjuber/anti-slop) (MIT),
372
- [`ehmo/slopkit`](https://github.com/ehmo/slopkit),
373
- [`BioInfo/slopless`](https://github.com/BioInfo/slopless), `CLAUDE.md` milik
374
- Andrej Karpathy, Anti-Slop Writing Rules milik Matty Cartwright, dan tiga makalah
375
- tentang bau kode LLM.
376
-
377
- **Penjelasan lengkap: [`guides/rules.md`](guides/rules.md).**
378
-
379
- ---
380
-
381
- ## Dokumen yang benar-benar bisa dipindahkan
382
-
383
- `/orc-doc` menulis dokumen panjang β€” dan Markdown dipilih justru karena berkas
384
- Markdown bisa dibawa ke mana-mana:
385
-
386
- | Tujuan | Bisa impor `.md`? |
387
- |---|---|
388
- | Notion Β· Obsidian Β· Google Docs Β· Coda Β· Craft Β· Apple Notes Β· GitHub | **langsung bisa** |
389
- | Docusaurus Β· Hugo Β· Jekyll Β· MkDocs | bisa β€” dan justru *butuh* front matter YAML |
390
- | Confluence | tidak langsung. Siapkan aplikasi importir dari marketplace |
391
- | Microsoft OneNote | **tidak bisa**. Ubah dulu ke Word atau PDF |
392
-
393
- Tabel itu bukan hiasan: `orc doc lint --target` benar-benar menegakkan batas
394
- nyata dari tempat tujuan dokumen Anda. Notion hanya punya tiga tingkat judul,
395
- jadi H4 di sana adalah **error**. Paragraf yang dipotong keras per baris adalah
396
- error di mana pun, karena potongan di kolom 80 akan jadi ganti baris sungguhan di
397
- dalam paragraf Notion.
398
-
399
- Ada lima templat dasar β€” `prd` Β· `tsd` Β· `collaboration` Β· `report` Β· `workflow` β€”
400
- masing-masing sebagai lantai, bukan kandang. `orc doc templates` mencetaknya;
401
- Anda juga boleh membawa templat sendiri dan judul-judulnya akan jadi kerangka.
402
-
403
- **Penjelasan lengkap: [`guides/documents.md`](guides/documents.md).**
404
-
405
- ---
406
-
407
- ## `orc ui` β€” panel kendali
408
-
409
- Halaman web lokal untuk **semua bagian ORC yang bukan ai**. Satu batas yang
410
- menentukan segalanya: **ia tidak pernah menjalankan lane, tidak pernah memanggil
411
- `claude`, dan tidak pernah memanggil API model.** Semua yang ditampilkan atau
412
- ditulisnya berasal dari keluaran CLI yang pasti.
413
-
414
- <img width="1870" height="1269" alt="image" src="https://github.com/user-attachments/assets/207fe821-9aa6-430e-bdcc-968340cc687f" />
415
-
416
- ```bash
417
- orc ui # jalan di 127.0.0.1:9921 dan membuka browser
418
- orc ui --port 9930 # port yang Anda sebut sendiri tidak akan pindah β€” bentrok berarti error
419
- orc ui --no-open # cetak URL-nya saja
420
- orc ui --idle 0 # matikan mati-otomatis saat menganggur (bawaan: 30 menit)
421
- orc ui --fixtures # data contoh, tidak perlu proyek sama sekali
422
- orc ui --stop # matikan server proyek ini
423
- ```
424
-
425
- | Panel | Menampilkan | Bisa mengubah |
426
- |---|---|---|
427
- | Overview | versi, `orc doctor`, kesegaran wiki, apa yang sedang menunggu β€” plus **Worth doing**, satu daftar semua hal yang butuh keputusan Anda | β€” |
428
- | Settings | semua kunci pengaturan, dikelompokkan, masing-masing dengan kontrolnya sendiri | perubahan disiapkan dulu, lalu diterapkan bersama |
429
- | Runs | riwayat pekerjaan; satu baris terbuka di tempat berisi ringkasan keadaan, teks untuk melanjutkan, titik simpan, dan ekor catatan jejak | β€” |
430
- | **Knowledge** | **lima tab**: kesegaran wiki DAN **isinya** (setiap dokumen, apa yang dicakupnya, seberapa sering dibaca), cakupan terhadap berkas terlacak Anda, pola kode beserta pertentangan yang ditandai, ingatan perbaikan dengan pemangkasan yang **ditinjau dulu baru diterapkan**, dan tampilan repo tetangga yang hanya bisa dibaca | `wiki sync`, `gotcha prune` |
431
- | Stats | pemakaian lane dan agen, penurunan model, serta tab **Cost** yang batangnya menjaga "baca cache" tetap terlihat terpisah | β€” |
432
- | Flow | alur DIY yang sudah dikompilasi, gerbangnya, dan urutan semua fasenya | `diy set`, `diy compile`, preset |
433
- | Crosslink | **Design** (batas antar repo sebagai gambar) dan **Settings** (kesegaran tiap tetangga) | `crosslink add` / `remove` |
434
- | Promises Β· Boundary Β· Self-serve | buku janji, kartu batas, dan permukaan yang boleh diubah orang non-teknis | `pact check`, `pact sync`, `handoff set` |
435
- | **Docs** | setiap dokumen `/orc-doc` sebagai **pita** β€” satu blok per bagian, lebarnya sesuai panjangnya dan warnanya sesuai statusnya β€” plus berkas tiap bagian, jalur gelombang, kartu kesehatan lint, dan pratinjau gelombang | `doc compile` Β· `doc migrate` |
436
- | **Extra** | **enam tab**: penyiapan koneksi, alat lokal beserta keadaannya, tangga rentang skor dan enam posisinya, pengeluaran per profil per rentang, dan **Recovery** β€” setiap pengiriman yang tidak pernah melapor kembali, beserta apa yang ia tinggalkan di disk | `extra add` / `ping` / `route` / `role` |
437
- | **Challenge** | setiap putaran `/orc-challenge`: tujuan yang dibekukan, daftar sudut pandang dan apa yang diangkat masing-masing, temuan beserta keputusannya, dan apakah kelulusannya dihitung atau tertahan | `challenge record` Β· `accept` Β· `rebut` |
438
- | **Mocked Skill Use** | semua contoh jalannya yang ikut dikirim bersama ORC, dikelompokkan dan bisa dicari, dengan panel baca | β€” |
439
- | Learn | panduan `orc onboarding`, satu bagian sekali baca | β€” |
440
- | Experiment | setiap lane dengan tombol salin; membuka sesi Claude di terminal | β€” |
441
- | Maintenance | `update`, `update --prune`, `doctor --fix`, `upgrade` | tinjau dulu, baru terapkan |
442
-
443
- - **Panel ini *adalah* CLI.** Ia membaca `orc <perintah> --json` dan menjalankan
444
- perintah asli untuk setiap penulisan, jadi ia tidak mungkin melenceng dari
445
- CLI β€” ia tidak menyimpan salinan kedua dari apa pun.
446
- - **Tindakan gratis dapat tombol. Tindakan berbayar dapat perintah untuk disalin.**
447
- - **Tidak ada yang berjalan otomatis**, dan pemangkasan selalu menyebut **setiap**
448
- berkas. Sebuah angka bukan berarti persetujuan.
449
- - **Diperlakukan sebagai permukaan tulis**: hanya loopback, token baru tiap kali
450
- dijalankan, pemeriksaan Host untuk mencegah DNS rebinding, tanpa CORS, dan
451
- perubahan hanya lewat POST.
452
- - **Hanya untuk proyek ini, tidak ada pengaturan `--global`.** Kalau ada
453
- pemasangan global yang bisa mengalahkan pemasangan proyek, setiap halaman
454
- memasang spanduk peringatan. Ia hanya melaporkannya; ia tidak pernah menyunting
455
- pengaturan global.
456
- - **Bahasa Inggris dan Indonesia.** Yang diterjemahkan hanya kalimat milik panel
457
- itu sendiri β€” kunci pengaturan, id model, jalur berkas, perintah, dan pesan
458
- doctor dicetak persis seperti tulisan CLI, karena kunci pengaturan yang
459
- diterjemahkan adalah kunci yang tidak ada.
460
-
461
- Nol dependensi, tanpa langkah build: `node:http`, JavaScript biasa, dan CSS yang
462
- ditulis tangan.
463
-
464
- ---
465
-
466
- ## Menjalankan sebagian tangga di tempat lain β€” `orc extra`
467
-
468
- **Pengatur utamanya selalu Claude.** Yang diubah Extra adalah *siapa yang
469
- mengerjakan satu potong tugas*: satu rentang skor milik Anda, atau salah satu
470
- dari enam posisi bernama, bisa diarahkan ke DeepSeek, GLM, Kimi, MiniMax, Qwen,
471
- Ollama lokal, atau CLI pemrograman yang sudah Anda pakai (opencode, codex).
472
- Semua pemeriksaan setelahnya β€” gerbang asap, gerbang TDD, peninjau, pemeriksa
473
- selisih pohon kerja β€” buta terhadap mesin yang dipakai, jadi tak ada satu pun
474
- yang tahu pekerjaan itu dikerjakan di luar.
475
-
476
- **Mati secara bawaan, dan tidak bisa dinyalakan sebelum ada yang benar-benar
477
- menjawab.**
478
-
479
- ```bash
480
- orc extra providers # katalog bertanggal β€” penyedia, bukan model
481
- orc extra tools # CLI lokal: belum ada Β· terlalu lama Β· belum masuk Β· siap
482
- orc extra add ds --provider deepseek --engine api --env-key DEEPSEEK_API_KEY
483
- orc extra ping ds # gerbang koneksi: bertingkat, dan tak ada yang dibaca lebih kuat dari kenyataannya
484
- orc extra models ds --test <id> # model yang TERDAFTAR bisa saja sudah mati di sana
485
- orc extra health ds --model <id> # …dan model yang jalan belum tentu SELESAI
486
- orc extra route set 40-55 ds/deepseek-chat # satu rentang skor
487
- orc extra role set doc-writer ds/deepseek-chat # atau satu posisi bernama
488
- orc config set extra_enabled true
489
- ```
490
-
491
- - **Katalognya berisi penyedia, tidak pernah model.** Nama model yang ikut
492
- dikirim akan salah dalam hitungan bulan, dan salahnya *diam-diam* β€” 404 di
493
- tengah gelombang. `orc extra ping` membaca daftar aslinya lalu menyimpannya;
494
- tidak ada yang mengarang nama. Begitu juga harga: angka biaya yang bukan ORC
495
- sendiri yang hitung tidak pernah dicetak, melainkan muncul sebagai tanda
496
- hubung panjang.
497
- - **Setiap pekerjaan yang aktif mengatakannya sebelum gelombang pertama.**
498
- Mengirim pekerjaan keluar dari Claude tanpa memberi tahu adalah justru
499
- kegagalan yang membentuk seluruh bagian ini.
500
- - **Dua penahan keras**: tugas dengan `risk[]` yang disebut (autentikasi, uang,
501
- migrasi, keamanan, konkurensi, keutuhan data) tetap di Claude kecuali Anda
502
- menyatakan lain, dan area REFUSE dari `/orc-boundary` tetap menahan bahkan
503
- dalam mode `warn`.
504
- - **Balasan dari luar adalah masukan asing.** Ia satu-satunya jenis masukan
505
- asing yang menyunting pohon kerja Anda, jadi apa yang ia katakan telah ia
506
- kerjakan adalah *klaim*, yang diperiksa terhadap pohon kerja.
507
- - **Kunci Anda tidak pernah sampai ke baris perintah.** Ia lewat stdin menuju
508
- brankas terenkripsi, atau tetap di variabel lingkungan, atau alatnya yang
509
- menyimpannya sendiri β€” dan frasa sandinya adalah **tenggat waktu**, bukan
510
- faktor kedua.
511
- - **Enam posisi untuk lane yang mengunci agen alih-alih menilai tugas**:
512
- `quick-executor` Β· `fast-executor` Β· `doc-writer` Β· `doc-checker` Β·
513
- `wiki-scanner-deep` Β· `wiki-scanner-light`. Posisi tanpa baris tetap
514
- ditampilkan dan terbaca sebagai agen Claude yang terkunci padanya β€” "saya
515
- sengaja membiarkan pemeriksanya di Claude" dan "tidak ada pemeriksa" tidak
516
- boleh terlihat sama.
517
-
518
- **Ketika pekerja luar gagal, yang tertinggal adalah sebuah posisi, bukan halaman
519
- kosong.** ORC mencatat keadaan awal *sebelum bita pertama meninggalkan mesin
520
- ini*, jadi pekerja yang terputus di tengah tulisan akan **dicocokkan lalu
521
- dilanjutkan** β€” tidak pernah dikirim ulang dari nol ke berkas yang sudah
522
- dua-pertiga jadi.
523
-
524
- - **`extra_stall_s` (bawaan 180)** menghentikan pekerja yang tidak menghasilkan
525
- apa pun selama itu. Hitungannya direset oleh kemajuan yang terlihat β€” aliran
526
- keluaran pekerja, keluaran kesalahannya, atau berkas yang dideklarasikan
527
- berubah di disk β€” jadi ia tidak pernah memotong pekerja yang sekadar lambat.
528
- `stalled` boleh diulang, dan itulah yang membuat pelanjutannya menjadi cara
529
- ORC sendiri mengetik `continue`.
530
- - **`extra_fallback_agent` (bawaan `band`)** menentukan siapa yang mengambil alih
531
- tugasnya. `ask` berhenti dan menyodorkan pilihannya kepada Anda; nama agen
532
- apa pun yang terpasang bisa dikunci. Ia mengubah *siapa*, tidak pernah skornya,
533
- daftar berkasnya, atau syarat penerimaannya.
534
- - **Setiap pengiriman menulis catatan biayanya sendiri**, jadi laporan biaya
535
- tidak pernah bergantung pada sebuah pekerjaan yang harus ingat menceritakan
536
- pengeluarannya. `orc extra stats` menggabungkan catatan biaya, jejak, dan
537
- balasan yang tersimpan, dan selalu menyebut berapa baris berasal dari mana.
538
-
539
- **`/orc-quick` tidak terpengaruh di sini** dan mengatakannya β€” lane itu selalu
540
- bertanya agen mana sebelum setiap pengiriman, jadi tidak ada pengaturan yang
541
- boleh menjawabnya lebih dulu. **`/orc-challenge` tidak pernah keluar dari
542
- Claude**: mengganti satu sudut pandang dengan model lain tidak membuat lane itu
543
- lebih murah, ia mengubah apa yang sedang diukur.
544
-
545
- **Seluruh bagian ini, dengan setiap perintah dan kuncinya:
546
- [guides/extra-models.md](guides/extra-models.md).**
547
-
548
- ---
549
-
550
- ## Bagaimana modelnya dipilih
551
-
552
- Setiap tugas diberi nilai 0–100 dengan **hitungan, bukan perasaan**: perencana
553
- melaporkan beberapa sifat tugas (luasnya, kebaruannya, kerumitan logikanya,
554
- permukaan tes, risiko yang dikutip, ketidakpastian) dan satu rumus tetap yang
555
- dipublikasikan mengubahnya jadi angka. Risiko yang dikutip memaksa nilai minimal
556
- 70. Nilai itu dipetakan lewat tabel yang dipublikasikan ke **agen bernama dengan
557
- model terkunci** β€” jadi apa yang benar-benar berjalan bisa diperiksa, bukan
558
- sekadar diminta lewat kalimat.
559
-
560
- > **Aturan yang paling sering membuat orang bingung:** model sebuah subagen tidak
561
- > akan pernah lebih tinggi daripada model sesi utama Anda. Jalankan sesi Anda di
562
- > Opus 5.
563
-
564
- **Penjelasan lengkap β€” pita nilainya, `opus5_only`, dan penjaga tingkat yang
565
- dipasang `orc init`: [guides/model-selection.md](guides/model-selection.md).**
566
-
567
- ---
568
-
569
- ## Pengaturan
570
-
571
- Pengaturan diubah lewat **CLI `orc config`** β€” masukan dan keluaran terminal yang
572
- pasti, jadi biayanya **nol token model**.
573
-
574
- ```bash
575
- orc config # menu interaktif
576
- orc config list # pengaturan yang sedang berlaku
577
- orc config recommend # baca repo ini, sarankan SATU profil, beserta alasannya
578
- orc config profile paranoid
579
- ```
580
-
581
- Perubahan Anda tersimpan di `.claude/orc.config.yaml`, dan `orc update` tidak
582
- pernah menimpanya. `orc ui` β–Έ Settings menyunting kunci yang sama lewat pemeriksa
583
- yang sama.
584
-
585
- **Semua kunci, nilai bawaannya, dan gunanya masing-masing:
586
- [guides/configuration.md](guides/configuration.md).**
587
-
588
- ---
589
-
590
- ## Isi paketnya
591
-
592
- ```
593
- templates/
594
- β”œβ”€β”€ skills/ 31 folder skill, 38 berkas SKILL.md (satu lane boleh membawa
595
- β”‚ sub-skill) β€” lane di atas, plus yang tidak punya perintah
596
- β”‚ sendiri: context-combiner, orc-advisor, orc-judge,
597
- β”‚ orc-analyze-mini, dan _shared/ (kesepakatan lintas lane)
598
- β”œβ”€β”€ commands/ 29 perintah garis miring
599
- β”œβ”€β”€ hooks/ penjaga effort (PreToolUse) Β· peringatan statusline Β· catatan jejak
600
- └── agents/ 51 subagen dengan model terkunci + MODEL-MAPPING.md
601
- bin/cli.js pemasang, penyunting pengaturan, penyusun alur, pembaca status
602
- pekerjaan, dan separuh pasti dari setiap lane. Setiap pembacaan
603
- bisa menjawab --json
604
- bin/webui/ `orc ui` β€” panel kendali lokal: css/ + js/ + i18n/<bahasa>/ +
605
- fixtures/, satu berkas per lapisan dan per panel. Nol dependensi
606
- bin/mockrun-catalog.js katalog contoh jalannya (diturunkan dari berkas di disk)
607
- mock-run/ contoh-contoh jalannya itu sendiri β€” mulai dari INDEX.md
608
- guides/ pengaturan Β· pemilihan model Β· dokumen Β· pembacaan pengetahuan Β·
609
- model AI lain
610
- ```
611
-
612
- Skill `orc` sendiri hanyalah **tulang punggung** yang tipis: ia hanya memuat
613
- referensi atau sub-skill ketika fase itu benar-benar berjalan, jadi tugas kecil
614
- tidak perlu membayar mesin besar.
615
-
616
- ---
617
-
618
- ## Panduan yang lebih panjang
619
-
620
- Beberapa lane membawa panduan lengkapnya sendiri, di sebelah skill-nya, dengan
621
- bahasa yang sederhana:
622
-
623
- | Panduan | Baca kalau |
624
- |---|---|
625
- | [Aturan](guides/rules.md) | Anda ingin 65 aturan anti-slop, urutan kuasanya, dan lint-nya |
626
- | [ORC-QUICK](templates/skills/orc-quick/README.md) | Anda ingin contoh lengkap lane cepat |
627
- | [ORC-DIY](templates/skills/orc-diy/README.md) | Anda ingin meracik lane sendiri |
628
- | [ORC-WIKI](templates/skills/orc-wiki/README.md) | Anda ingin basis pengetahuan, dan pengaturan crosslink antar repo |
629
- | [ORC-PR-SETUP](templates/skills/orc-pr-setup/README.md) | Anda ingin memecah perubahan besar jadi PR bertumpuk |
630
- | [ORC-PR-DRIVER](templates/skills/orc-pr-driver/README.md) | Anda sudah punya rencana tumpukan dan ingin membangun, mengirim, dan me-merge-nya |
631
- | [Pengaturan](guides/configuration.md) Β· [Pemilihan model](guides/model-selection.md) | Anda ingin semua kuncinya, atau pita penilaiannya |
632
-
633
- Setiap skill juga membawa `SKILL.md` dan `references/`-nya sendiri. Panduan di
634
- atas adalah versinya untuk manusia.
635
-
636
- ---
637
-
638
- ## Status evaluasi
639
-
640
- Kumpulan skill ini dinilai **dari ujung ke ujung**, bukan berkas per berkas: satu
641
- spesifikasi yang bisa dijalankan per lane, diuji terhadap proyek Express di
642
- kotak pasir, dan dinilai dari bukti di disk β€” catatan jejak, folder pekerjaan,
643
- dan berkas hasil.
644
-
645
- Putaran penuh terakhir adalah **30 evaluasi terhadap payload v0.34.0**: 25 berkas
646
- hasil terisi dan 38 berkas jejak, dengan 5 evaluasi yang tidak pernah dinilai dan
647
- 2 yang hanya dinilai sebagian β€” semuanya disebutkan namanya di laporan. Semua
648
- yang ditemukan di sana sudah diperbaiki di rilis berikutnya atau masih tercatat.
649
- Bacalah sebagai catatan putaran itu, bukan sebagai audit terkini:
650
- [EVAL-REPORT.md](EVAL-REPORT.md).
651
-
652
- ---
653
-
654
- ## Prinsip rancangannya
655
-
656
- - **Jangan pernah menulis kode di lapisan paling atas.** Orkestrator mengatur;
657
- subagen bernilai yang mengerjakan.
658
- - **Batasi cakupannya dulu, baru dikerjakan paralel.** Salah paham jauh lebih
659
- murah diperbaiki sebelum lima agen membangun di atasnya.
660
- - **Disk lebih dipercaya daripada ingatan.** Setiap jeda adalah titik lanjut yang
661
- bersih.
662
- - **Model terkunci dan bisa diperiksa.** Agen bernama, modelnya tertulis di
663
- frontmatter.
664
- - **Kode Anda yang menang.** Pola yang dipelajari mengalah pada proyek Anda;
665
- hanya aturan keamanan dan kebenaran yang tidak bisa ditawar.
666
- - **Pengetahuan itu tambahan.** Wiki membuat perencanaan lebih baik kalau ada,
667
- dan tidak membebani apa pun kalau tidak ada.
668
- - **Katakan apa yang tidak Anda ketahui.** `UNCHECKABLE`, `no card`,
669
- `insufficient history` adalah jawaban sungguhan. Tebakan yang terdengar yakin
670
- lebih buruk daripada mengakui ada yang tidak diketahui.
671
-
672
- ---
673
-
674
- ## Daftar perubahan
675
-
676
- **Riwayat lengkap: [CHANGELOG.md](CHANGELOG.md)** β€” atau `orc changelog`, yang
677
- hanya mencetak yang lebih baru dari versi yang Anda punya.
678
-
679
- ### v1.7.0 - aturan yang menahan slop _(13-09-2026)_
680
-
681
- ORC menulis banyak prosa dan banyak kode, dan keduanya keluar membawa bawaan yang
682
- sama dan mudah dikenali. Selama ini hanya ada satu kartu tetap yang melawannya β€”
683
- aturan rumah tujuh baris β€” dan kartu itu tentang KODE. Tidak ada yang mengatakan
684
- apa pun tentang kata-katanya.
685
-
686
- **`orc rules` adalah permukaan aturan kedua, dan punya dua bagian yang tidak
687
- pernah bercampur.** 65 aturan ORC yang dikirim dan **hanya-baca** (`orc rules set
688
- --pack ...` ditolak dengan menyebut nama perintah penggantinya), dan aturan milik
689
- proyek Anda di `.claude/orc/rules.md`, yang **menang secara langsung**.
690
-
691
- Empat paket: `OSW` penulisan (23), `OSC` kode (22), `OSD` pelaporan (10), dan
692
- `OSU` antarmuka (10) yang ikut per TUGAS. Tiga tingkat: **HARD**, **PURPOSE**
693
- (boleh, dengan satu baris alasan tertulis), **LOCK**.
694
-
695
- **Kredit adalah berkas yang ikut dikirim, bukan satu baris di pesan commit.**
696
- `orc rules credits` menyebut penulis, repositori, lisensi, dan apa yang diambil
697
- ORC dari masing-masing.
698
-
699
- **Urutan kuasa: aturan rumah > aturan Anda > aturan ORC.** Penggantian dihitung
700
- dari id yang Anda SEBUT, dan perintahnya mengatakan bahwa itulah yang dihitung;
701
- pertentangan yang tidak Anda sebut ditemukan agen saat bekerja dan kembali
702
- sebagai celah, bukan pilihan diam-diam. CLI tidak dapat membaca maksud, jadi CLI
703
- tidak berpura-pura bisa.
704
-
705
- **`orc rules lint` gratis dan sengaja kecil**: memeriksa 13 dari 65 dan selalu
706
- mencetak berapa yang tidak diperiksanya. Temuannya bersifat saran; tidak ada
707
- gerbang.
708
-
709
- **`orc wiki`, satu dokumen sekaligus.** `/orc-wiki update <dokumen-atau-topik>`
710
- dan `/orc-wiki add "<topik>"` menambah satu dokumen ke wiki yang sudah ada tanpa
711
- merencanakan ulang area lain. `orc wiki resolve` gratis dan tidak memindai;
712
- hasil **AMBIGUOUS menjadi pertanyaan, bukan tebakan**. `orc wiki refs` menyapu
713
- enam rujukan turunan setelah satu dokumen berubah, dan hanya memperbaiki
714
- pendaftarannya β€” sisanya dilaporkan beserta perintahnya.
715
-
716
- <details>
717
- <summary><strong>Rilis sebelumnya</strong> β€” 114 rilis, hanya judulnya. Teks lengkapnya (dalam bahasa Inggris) ada di <a href="CHANGELOG.md">CHANGELOG.md</a>.</summary>
718
-
719
- - **v1.6.0** β€” the rule that can finally say no Β· _2026-09-07_
720
- - **v1.5.0** β€” the lane that runs the test Β· _2026-09-07_
721
- - **v1.4.2** β€” the panel that stops reloading, and the fields you could not read back Β· _2026-09-05_
722
- - **v1.4.1** β€” the board you can actually use Β· _2026-09-05_
723
- - **v1.4.0** β€” the agent panel, and the number that was missing Β· _2026-09-04_
724
- - **v1.3.0** β€” build your own status line Β· _2026-09-04_
725
- - **v1.2.1** β€” the status line says what ORC is doing Β· _2026-09-04_
726
- - **v1.2.0** β€” a retry that cloned the agent, and a window you can watch empty Β· _2026-09-04_
727
- - **v1.1.0** β€” the wait, and a window ORC can finally see Β· _2026-08-31_
728
- - **v1.0.0** β€” config, phases and calls stop being prose Β· _2026-08-30_
729
- - **v0.56.1** β€” a worker that is alive and doing nothing Β· _2026-08-28_
730
- - **v0.56.0** β€” a rename moved the command, and nobody could reach the fix Β· _2026-08-27_
731
- - **v0.55.2** β€” a gate that is never probed is a gate that is always off Β· _2026-08-27_
732
- - **v0.55.1** β€” ORC is on npm Β· _2026-08-27_
733
- - **v0.55.0** β€” a score is what a band needs, and four lanes do not have one Β· _2026-08-26_
734
- - **v0.54.0** β€” a failed dispatch is a POSITION, not a blank page Β· _2026-08-25_
735
- - **v0.53.4** β€” the reload that dropped its own token Β· _2026-08-24_
736
- - **v0.53.3** β€” the key it never sent Β· _2026-08-24_
737
- - **v0.53.2** β€” the cost that was paid and never written down Β· _2026-08-24_
738
- - **v0.53.1** β€” "up to date" now names what it checked Β· _2026-08-23_
739
- - **v0.53.0** β€” the schema the provider rejected, and a routing table you can read Β· _2026-08-23_
740
- - **v0.52.0** β€” the connection that could not be used, and the routing nobody could see Β· _2026-08-23_
741
- - **v0.51.0** β€” the tools you already have, and a connection that proves itself Β· _2026-08-22_
742
- - **v0.50.0** β€” work that runs somewhere else Β· _2026-08-22_
743
- - **v0.49.5** β€” house rules are text, and the hand-back writes itself Β· _2026-08-21_
744
- - **v0.49.4** β€” the panel was being handed half an answer Β· _2026-08-20_
745
- - **v0.49.3** β€” coverage on a large repo Β· _2026-08-19_
746
- - **v0.49.2** β€” house rules, a run map before you pay, and three defects Β· _2026-08-18_
747
- - **v0.49.1** β€” the challenge council, and a `--json` that stops throwing things away Β· _2026-08-18_
748
- - **v0.49.0** β€” the document is a folder, and the file is a build artifact Β· _2026-08-17_
749
- - **v0.48.1** β€” one file per thing, and a document that can be finished Β· _2026-08-16_
750
- - **v0.48.0** β€” a document long enough to end a session, written anyway Β· _2026-08-13_
751
- - **v0.47.0** β€” the lane that refuses to produce Β· _2026-08-12_
752
- - **v0.46.1** β€” see a lane run before you pay for one Β· _2026-08-12_
753
- - **v0.46.0** β€” a lane that remembers, a lane that declines, and a lane that measures Β· _2026-08-10_
754
- - **v0.45.0** β€” `/orc-brainstorm`: for when you do not have the idea yet Β· _2026-08-10_
755
- - **v0.44.1** β€” apply when you say so, and a spotlight that survives a banner Β· _2026-08-09_
756
- - **v0.44.0** β€” the panel stops making you type what it already knows Β· _2026-08-09_
757
- - **v0.43.7** β€” the flow you can see, and a boundary you can read Β· _2026-08-09_
758
- - **v0.43.6** β€” `orc ui` in two languages, and panels that point at the right page Β· _2026-08-08_
759
- - **v0.43.5** β€” the update check works, and the UI teaches itself Β· _2026-08-08_
760
- - **v0.43.4** β€” a warning that finally clears, an Experiment panel, crosslink from the UI Β· _2026-08-08_
761
- - **v0.43.3** β€” `orc ui`: it tells you about updates, and 36 keys stop being a wall Β· _2026-08-08_
762
- - **v0.43.2** β€” `orc ui`: boxes stop colliding, because the container owns the gap Β· _2026-08-08_
763
- - **v0.43.1** β€” the panel's stylesheet and script actually reach the browser Β· _2026-08-08_
764
- - **v0.43.0** β€” `orc ui`: a control panel for everything that is not ai Β· _2026-08-08_
765
- - **v0.42.0** β€” Say what you mean, see what it costs, find your way back Β· _2026-08-08_
766
- - **v0.41.0** β€” A wiki that can tell you it is fresh, and TDD only where it can fail Β· _2026-08-06_
767
- - **v0.40.0** β€” Gotchas: repair memory that outlives the run Β· _2026-08-06_
768
- - **v0.39.0** β€” The read ladder, and foreign input that is evidence rather than instruction Β· _2026-08-06_
769
- - **v0.38.1** β€” `orc doctor --json` + handoff carry-over that says what is re-derived Β· _2026-08-06_
770
- - **v0.38.0** β€” `/orc-quick`: the quick lane, and the gate no config can collapse Β· _2026-08-05_
771
- - **v0.37.0** β€” Stacked pull requests: a measured ship gate + two standalone lanes Β· _2026-08-03_
772
- - **v0.36.0** β€” `opus5_only`: one model for every role, not just executors Β· _2026-08-02_
773
- - **v0.35.0** β€” `opus5_executor_only`: one model, effort as the cost dial Β· _2026-08-02_
774
- - **v0.34.8** β€” `orc pattern status` rejects a language key the payload has never heard of Β· _2026-08-01_
775
- - **v0.34.7** β€” DIY: a usable status contract, and compile docs that match the compiler Β· _2026-08-01_
776
- - **v0.34.6** β€” Analyze: the evidence gate now covers the rows a good analysis produces Β· _2026-08-01_
777
- - **v0.34.5** β€” Wiki: stop losing tags silently, let a delta clear its own delta Β· _2026-08-01_
778
- - **v0.34.4** β€” Planner: scorable facets, and TDD rules scoped to reality Β· _2026-08-01_
779
- - **v0.34.3** β€” Slice boundary: the worktree, not the editor Β· _2026-08-01_
780
- - **v0.34.2** β€” Trace subsystem: the pointer clobber, and a writer contract that holds Β· _2026-08-01_
781
- - **v0.34.1** β€” Install integrity: run state survives `orc update` Β· _2026-08-01_
782
- - **v0.34.0** β€” Opus 5: top scoring band, every core role, medium-effort session tier Β· _2026-07-25_
783
- - **v0.33.0** β€” Knowledge deepening + verification revamp Β· _2026-07-25_
784
- - **v0.32.0** β€” Trace revamp: narration is dispatched, not remembered Β· _2026-07-24_
785
- - **v0.31.0** β€” Execution-integrity revamp: plan handoff, attributable traces, facet scoring Β· _2026-07-23_
786
- - **v0.30.0** β€” Scoring revamp, Fable 5 role override, tier-aware guards, `orc onboarding` Β· _2026-07-23_
787
- - **v0.29.0** β€” Drift-prevention hardening: install manifest + prune, `orc doctor`, a real test suite Β· _2026-07-22_
788
- - **v0.28.1** β€” Defect fixes: package encoding, trace event routing, count/doc drift Β· _2026-07-22_
789
- - **v0.28.0** β€” Run integrity: rich full-lane traces, deterministic wave stop, visible knowledge gates Β· _2026-07-21_
790
- - **v0.27.0** β€” `/orc-poly`: plan one change across two-or-more repos without drift Β· _2026-07-20_
791
- - **v0.26.0** β€” Test-gen output pinned to a visible `test-generator/<change-slug>/` deliverable Β· _2026-07-19_
792
- - **v0.25.1** β€” Eval report: the full 17-lane suite graded against the v0.25.0 payload Β· _2026-07-18_
793
- - **v0.25.0** β€” Deterministic artifact detection: a generated wiki/pattern is never missed Β· _2026-07-18_
794
- - **v0.24.0** β€” Crosslink fused into wiki generation: always-on, per-scan-task, never wiped Β· _2026-07-18_
795
- - **v0.23.0** β€” Trace fix: SPAWN restored on the `Agent` tool, stale runs rotate to fresh files Β· _2026-07-18_
796
- - **v0.22.0** β€” `/orc-learn`: per-feature onboarding docs β€” learning.md + knowledge.md, wiki-deep, git-ignored Β· _2026-07-17_
797
- - **v0.21.0** β€” Statusline shows live subscription usage: 5h ↔ weekly, official numbers Β· _2026-07-16_
798
- - **v0.20.0** β€” One source of truth: generated executor agents + shared cross-lane contracts Β· _2026-07-16_
799
- - **v0.19.0** β€” Thin spines: skill compaction, budget lint, and a trace that logs every phase Β· _2026-07-16_
800
- - **v0.18.0** β€” `orc wiki sync`: the wiki registers itself β€” a paused scan is no longer an invisible wiki Β· _2026-07-15_
801
- - **v0.17.3** β€” Trace the wiki consult: Phase 1 now logs whether the run grounded in the wiki (and if it was stale) Β· _2026-07-14_
802
- - **v0.17.2** β€” Behavior-trace logging is permanent + the trace folder is now created deterministically Β· _2026-07-14_
803
- - **v0.17.1** β€” Complete cross-repo crosslink setup guide in the orc-wiki README Β· _2026-07-14_
804
- - **v0.17.0** β€” `orc crosslink`: cross-repo wiki references β€” advisory boundary contracts Β· _2026-07-14_
805
- - **v0.16.1** β€” Interactive `orc diy` composer + numbered picks in `orc config` Β· _2026-07-14_
806
- - **v0.16.0** β€” `/orc-diy`: build your own lane β€” CLI-composed flow, compiled, hard-gated Β· _2026-07-14_
807
- - **v0.15.0** β€” Wiki v2: evidence-anchored docs Β· per-file staleness registry Β· integrity gate Β· _2026-07-14_
808
- - **v0.14.0** β€” Postgres data-access playbook: cross-cutting query grounding Β· _2026-07-13_
809
- - **v0.13.0** β€” `/orc-claude`: local CLAUDE.md builder β€” fenced sections, fingerprint refresh, zero questions Β· _2026-07-12_
810
- - **v0.12.0** β€” Lossless context-combiner: conservation gate Β· overlap taxonomy Β· evidence freshness Β· _2026-07-12_
811
- - **v0.11.0** β€” `/orc-fast`: knowledge-gated speed lane + wiki freshness infrastructure Β· _2026-07-12_
812
- - **v0.10.1** β€” README: a fuller "Why ORC exists" Β· _2026-07-12_
813
- - **v0.10.0** β€” `/orc-ultra`: max-effort advisor + three judgment gates for ultra-complex work Β· _2026-07-12_
814
- - **v0.9.0** — Trust-but-verify the analyst→planner chain: quote-anchored evidence · coverage gate · anchored judgment · _2026-07-12_
815
- - **v0.8.1** β€” /orc-retro delivers upstream: PR/issue to the ORC repo, channel-gated Β· _2026-07-12_
816
- - **v0.8.0** β€” Close the loop: grounded intake Β· scoring anchors Β· OUTCOME marker Β· /orc-retro trace miner Β· eval harness Β· _2026-07-12_
817
- - **v0.7.0** β€” Evidence everywhere: grounded plans Β· verbatim proof Β· anchored findings Β· contract lint Β· trace fixes Β· _2026-07-12_
818
- - **v0.6.0** β€” P0–P3 ladder Β· house rules Β· deep playbooks + wired gates Β· 3 new languages Β· FE rule packs Β· security pass Β· _2026-07-11_
819
- - **v0.5.1** β€” Statusline false-degrade fix Β· _2026-07-11_
820
- - v0.5.0 β€” Code-pattern findings: executors match your house style, invariants always enforced
821
- - v0.4.5 β€” Rewrite weak worker descriptions (the real score lever)
822
- - v0.4.4 β€” Act on external review: raise sub-70 workers, fix cross-spine paths
823
- - v0.4.3 β€” `orc-analyze`: trim description under the 1024-char skill-spec limit
824
- - v0.4.2 β€” External-review pass: worked examples + sharper mini-analyst activation
825
- - v0.4.1 β€” `orc-mini`: faster, safer fast-lane β€” smoke gate, opt-in tests, trimmed ceremony
826
- - v0.4.0 β€” Opt-in Phase 6.5 Test Authoring (writes test cases, never runs them)
827
- - v0.3.0 β€” Opt-in behavior-trace logging + claimed-vs-actual model verification
828
- - v0.2.4 β€” `orc-analyze`: gather anchored adjacent-scope context (non-actionable)
829
- - v0.2.3 β€” Context Combiner: merge 2+ related analyses into one combined spec
830
- - v0.2.2 β€” Config: enforce per-key override-first resolution
831
- - v0.2.1 β€” Move config editing into the `orc config` CLI (zero-token); drop `/orc-config`
832
- - v0.2.0 β€” Doc-optional evidence-backed analyst + deep mode
833
-
834
- </details>
835
-
836
- ## Yang dibutuhkan
837
-
838
- - **Claude Code** β€” dialah yang membaca skill, perintah, dan agennya.
839
- - **Node 18+** β€” hanya untuk pemasangnya. Skill-nya sendiri tidak punya
840
- dependensi apa pun.
841
-
842
- ## Lisensi
843
-
844
- MIT β€” kolom `license` di `package.json` adalah pernyataan resminya.
1
+ <div align="center">
2
+
3
+ # πŸ‹ ORC
4
+
5
+ **Kumpulan skill orkestrator untuk [Claude Code](https://claude.com/claude-code).**
6
+
7
+ *Terima permintaan β†’ pahami β†’ rencanakan β†’ beri nilai β†’ kerjakan paralel β†’ periksa β†’ uji β†’ kirim.*
8
+
9
+ ![npm](https://img.shields.io/npm/v/%40azure-id%2Forc?style=for-the-badge&color=cb3837&logo=npm)
10
+ ![Version](https://img.shields.io/badge/version-1.8.0-blue.svg?style=for-the-badge)
11
+ ![License](https://img.shields.io/badge/license-MIT-green.svg?style=for-the-badge)
12
+ ![Node](https://img.shields.io/badge/node-%3E%3D18-brightgreen.svg?style=for-the-badge)
13
+ ![Claude Code](https://img.shields.io/badge/Claude_Code-Skills-purple.svg?style=for-the-badge)
14
+ ![Dependencies](https://img.shields.io/badge/dependencies-zero-lightgrey.svg?style=for-the-badge)
15
+
16
+ **Versi terbaru: v1.8.0** Β· diperbarui 16-09-2026 Β· [daftar perubahan lengkap](CHANGELOG.md)
17
+
18
+ **Ada di npm: [`@azure-id/orc`](https://www.npmjs.com/package/@azure-id/orc)** β€” `npm i -g @azure-id/orc`
19
+
20
+ **πŸ‡¬πŸ‡§ [Read this in English](README.md)**
21
+
22
+ </div>
23
+
24
+ ---
25
+
26
+ > **Tentang terjemahan ini.** Halaman ini memakai bahasa yang sederhana supaya
27
+ > mudah dipahami. Semua **perintah, nama berkas, nama model, dan kata status**
28
+ > ditulis apa adanya dalam bahasa Inggris β€” itu bukan kata biasa, itu nama yang
29
+ > harus Anda ketik persis seperti aslinya.
30
+ >
31
+ > Kalau ada bagian yang terasa berbeda dengan versi Inggris, **[README.md](README.md)
32
+ > yang berlaku**.
33
+
34
+ ---
35
+
36
+ > [!CAUTION]
37
+ > **Naik versi dari sebelum v0.56.0? Lakukan ini sekali saja.**
38
+ >
39
+ > Nama paket pindah dari `orc` (tanpa scope) menjadi **`@azure-id/orc`**.
40
+ > Keduanya memakai nama perintah yang sama, yaitu `orc`. npm tidak mau
41
+ > memberikan perintah itu kepada paket baru selama paket lama masih
42
+ > memegangnya - jadi **semua** cara pasang gagal dengan pesan yang sama, dan
43
+ > `orc upgrade` tidak bisa memperbaiki dirinya sendiri:
44
+ >
45
+ > ```text
46
+ > npm error code EEXIST
47
+ > npm error File exists: C:\Users\anda\AppData\Roaming\npm\orc
48
+ > ```
49
+ >
50
+ > Jalankan tiga baris ini sekali saja. Isi folder `.claude/` Anda tidak
51
+ > disentuh, dan `orc.config.yaml` Anda tetap aman:
52
+ >
53
+ > ```bash
54
+ > npm uninstall -g orc # lepaskan perintah `orc` dari paket lama
55
+ > npm i -g @azure-id/orc # pasang paket yang sekarang
56
+ > orc update # pasang ulang ke proyek ini (pakai --global untuk ~/.claude)
57
+ > ```
58
+ >
59
+ > **Mulai v0.56.0, `orc upgrade` mengurus ini untuk Anda** - paket lama dihapus
60
+ > lebih dulu, lalu paket baru dipasang, dan ORC memberi tahu Anda saat
61
+ > melakukannya. `orc doctor` juga menyebutkan nama paket lama kalau masih ada.
62
+ >
63
+ > **Jangan** memakai `npm i -g -f`. `--force` menimpa berkas perintah dan
64
+ > membiarkan paket lama tetap terpasang di bawahnya - tidak memiliki apa pun,
65
+ > dan tidak pernah diperbarui lagi.
66
+
67
+ ---
68
+
69
+ ## Apa itu ORC?
70
+
71
+ Anda memberi ORC sebuah permintaan β€” bisa satu kalimat, bisa sebuah dokumen
72
+ kebutuhan. ORC akan:
73
+
74
+ 1. mencari tahu apa sebenarnya maksud Anda,
75
+ 2. membuat rencana kerja,
76
+ 3. mengirim setiap tugas ke **model paling murah yang masih sanggup mengerjakannya**,
77
+ 4. mengerjakan tugas-tugas yang tidak saling bentrok **secara bersamaan**,
78
+ 5. memeriksa hasilnya,
79
+ 6. mengujinya terhadap definisi "selesai" yang sudah Anda setujui,
80
+ 7. lalu mengirimkannya.
81
+
82
+ ORC menyimpan catatan kerjanya ke disk sambil jalan. Jadi pekerjaan panjang tetap
83
+ selamat kalau Anda berhenti di tengah, kalau kuota token habis, atau kalau Anda
84
+ membuka sesi obrolan yang benar-benar baru.
85
+
86
+ **ORC bukan program yang berjalan sendiri.** ORC adalah kumpulan berkas markdown
87
+ berisi **skill**, **perintah garis miring** (`/perintah`), dan **definisi
88
+ subagen** yang dibaca dan diikuti oleh Claude Code. Paket npm ini β€” yang tidak
89
+ punya satu pun dependensi β€” hanya menyalin berkas-berkas itu ke folder `.claude/`
90
+ Anda.
91
+
92
+ ```text
93
+ β”Œβ”€β”€β”€β”€β”€β”€β”€β”€ Anda yang menentukan cakupan + persetujuan ────────┐
94
+ permintaan / dokumen ──▢ terima ─▢ pahami ─▢ rencana ─▢ nilai ─▢ ⇉ gelombang paralel ⇉ ─▢ periksa ─▢ uji ─▢ kirim
95
+ (berdasar kode) (per tugas) (model termurah yang sanggup) (disimpan ke disk)
96
+ ```
97
+
98
+ ---
99
+
100
+ ## πŸ‘€ Lihat dulu sebelum Anda pakai
101
+
102
+ Setiap lane ditulis lengkap sebagai **mock run** β€” contoh jalannya: apa yang Anda
103
+ ketik, apa yang ORC balas, dan berkas apa yang muncul di disk. Tidak ada yang
104
+ benar-benar dijalankan untuk membuatnya. Contoh-contoh itu ada supaya Anda tidak
105
+ perlu membakar token hanya untuk tahu sebuah perintah melakukan apa.
106
+
107
+ ### **β–Ά [Mulai di sini: `mock-run/INDEX.md`](mock-run/INDEX.md)**
108
+
109
+ Bisa juga dibaca tanpa meninggalkan komputer Anda:
110
+
111
+ ```bash
112
+ orc mock-run list # semua contoh, urut dari yang paling awal dibaca
113
+ orc mock-run show orc-pact # baca satu
114
+ orc ui # β–Έ Mocked Skill Use β€” contoh yang sama, bisa dicari
115
+ ```
116
+
117
+ ---
118
+
119
+ ## Kenapa dibuat seperti ini?
120
+
121
+ Satu agen yang diberi pekerjaan nyata selalu gagal dengan cara yang sama: ia
122
+ diam-diam memilih satu tafsiran dari permintaan Anda, memakai model termahal
123
+ untuk semuanya, lupa keputusan begitu konteksnya dipadatkan, bilang "selesai"
124
+ terhadap definisi yang tidak pernah ditulis siapa pun, mengutip kode yang tidak
125
+ ada, dan tidak meninggalkan apa pun untuk diperiksa.
126
+
127
+ Itu semua **masalah proses** β€” persis masalah yang di tim manusia diselesaikan
128
+ dengan pembagian peran, review, dan kesepakatan tertulis. ORC menuliskan
129
+ kedisiplinan itu sebagai skill:
130
+
131
+ - **Mengatur dan mengerjakan adalah dua pekerjaan berbeda.** Sang orkestrator
132
+ tidak pernah menulis kode. Bahkan perubahan satu baris pun dikirim ke subagen,
133
+ supaya konteks orkestrator tetap ringan sepanjang pekerjaan.
134
+ - **Setiap tugas diberi nilai, dan nilai itu yang memilih model.** Anda melihat
135
+ tabelnya sebelum apa pun dimulai, dan setiap agen punya nama serta model yang
136
+ dikunci β€” jadi model apa yang benar-benar dipakai adalah fakta yang bisa Anda
137
+ periksa.
138
+ - **"Selesai" ditulis sebelum pekerjaan dimulai.** Tahap penerimaan menghasilkan
139
+ spesifikasi yang Anda setujui, dan definisi "selesai" di dalamnya jadi bahan
140
+ pengujian terakhir.
141
+ - **Tidak ada yang dipercaya begitu saja, semuanya harus dibuktikan.** Kutipan
142
+ `berkas:baris`, keluaran build apa adanya, temuan yang menunjuk baris nyata β€”
143
+ dan orkestrator memeriksa sampel dari bukti itu, jadi kutipan karangan langsung
144
+ ditolak, bukan ikut masuk ke tugas berikutnya.
145
+ - **Disk lebih dipercaya daripada ingatan.** ORC rajin menyimpan titik simpan,
146
+ jadi setiap jeda jadi titik lanjut yang bersih β€” termasuk di sesi baru.
147
+ - **Ketelitian bisa diatur.** Tulang punggung yang sama bisa jalan sebagai
148
+ `/orc-mini` (satu subagen), `/orc` (fitur sungguhan), dan `/orc-ultra`
149
+ (dengan penasihat dan gerbang penilaian).
150
+ - **Ia belajar.** Pola kode membuat agen menulis mirip gaya kode Anda, wiki
151
+ membuat setiap rencana berikutnya lebih tajam, dan catatan jejak dibaca oleh
152
+ `/orc-retro` yang menyetel ulang penilaiannya dari kerja nyata.
153
+
154
+ ---
155
+
156
+ ## Cara mulai
157
+
158
+ ORC ada di npm dengan nama **[`@azure-id/orc`](https://www.npmjs.com/package/@azure-id/orc)**.
159
+
160
+ ```bash
161
+ npm i -g @azure-id/orc # pasang
162
+ npm i -g @azure-id/orc@latest # perbarui ke rilis terbaru
163
+ ```
164
+
165
+ <details>
166
+ <summary>Atau pasang langsung dari GitHub</summary>
167
+
168
+ <br>
169
+
170
+ ```bash
171
+ npm i -g https://github.com/azure-id/orc/archive/refs/heads/main.tar.gz
172
+ ```
173
+
174
+ </details>
175
+
176
+ Lalu, di dalam sebuah proyek:
177
+
178
+ ```bash
179
+ orc init # pasang ke ./.claude (proyek ini saja)
180
+ orc init --global # pasang ke ~/.claude (semua proyek)
181
+ orc onboarding # panduan lengkap langsung di terminal β€” tanpa buka GitHub
182
+ orc config # lihat atau ubah pengaturan (nol token model)
183
+ orc ui # panel kendali lokal
184
+ orc --help # semua perintah
185
+ ```
186
+
187
+ Setelah dipasang:
188
+
189
+ 1. Tempelkan templat PR tim Anda ke `skills/orc/subskills/orc-pr/pr.md`.
190
+ 2. Tambahkan `.claude/orc/run/` ke `.gitignore` proyek Anda.
191
+ 3. Jalankan **`/agents`** untuk memastikan Claude Code Anda menerima id model
192
+ milik para agen.
193
+ 4. **Jalankan sesi utama Anda di Opus 5.** Sebuah subagen tidak akan pernah bisa
194
+ memakai model yang lebih baik daripada sesi Anda. Ini penyebab paling sering
195
+ dari keluhan "kok modelnya salah" β€” lihat
196
+ [pemilihan model](guides/model-selection.md).
197
+ 5. Kalau sebuah `/perintah` tidak muncul, mungkin Claude Code Anda membaca
198
+ perintah dari folder lain β€” pindahkan berkas di `commands/` ke sana.
199
+
200
+ <details>
201
+ <summary><b>Tetap memakai versi terbaru</b></summary>
202
+
203
+ <br>
204
+
205
+ `orc update` menyalin ulang berkas yang **sudah ada** di paket ini. Perintah itu
206
+ tidak menyentuh internet sama sekali. **`orc upgrade` adalah yang menarik versi
207
+ baru**: ia mengambil paket terbaru dulu, lalu memasangnya. Berkas
208
+ `.claude/orc.config.yaml` Anda selamat di kedua perintah itu.
209
+
210
+ ```bash
211
+ orc version # versi Anda, dan apakah ada yang lebih baru
212
+ orc changelog # apa yang akan Anda DAPAT kalau upgrade
213
+ orc upgrade # ambil yang terbaru, lalu perbarui proyek ini
214
+ orc upgrade --global # sama, tapi untuk ~/.claude
215
+ orc upgrade --from @azure-id/orc # dari npm, disebut jelas
216
+ orc upgrade --from github:azure-id/orc # dari fork, atau spesifikasi npm apa pun
217
+ ```
218
+
219
+ Atau perbarui paketnya sendiri lalu pasang ulang:
220
+
221
+ ```bash
222
+ npm i -g @azure-id/orc@latest
223
+ orc update
224
+ ```
225
+
226
+ Pemeriksaan versi dilakukan lewat HTTPS, hasilnya disimpan 24 jam, dan gagal
227
+ diam-diam kalau Anda sedang offline. Matikan dengan `ORC_NO_UPDATE_CHECK=1`.
228
+
229
+ Anda tidak perlu menjalankan perintah untuk tahu ada versi baru: pemberitahuan
230
+ yang sama muncul di dalam Claude Code lewat hook milik ORC, dengan **nol token
231
+ model** β€” hook itu skrip yang dijalankan Claude Code, bukan giliran model.
232
+
233
+ Kalau pemasangan dari GitHub gagal (sering terjadi di **NVM**), `orc upgrade`
234
+ akan mencoba ulang sendiri dengan berkas tarball biasa.
235
+
236
+ </details>
237
+
238
+ > **"ORC tidak melihat wiki saya"?** Jalankan **`orc wiki sync`**, bukan
239
+ > pemindaian baru. Dokumen tanpa manifest itu *belum terdaftar*, bukan hilang β€”
240
+ > ini biasa terjadi kalau pemindaian berhenti di salah satu jeda `/orc-wiki`.
241
+ > Sync membangun ulang daftarnya dari dokumen yang sudah Anda punya, gratis.
242
+
243
+ > **"Sebenarnya ORC tahu apa tentang proyek saya?"** `orc wiki docs` menampilkan
244
+ > semua dokumen yang terdaftar, `orc wiki coverage` memberi tahu berapa banyak
245
+ > kode Anda yang sudah pernah ditulis di dokumen, dan `orc pattern show <lang>`
246
+ > mencetak kebiasaan kode yang diberikan ke setiap agen penulis kode di sini.
247
+ > Semuanya gratis dan hanya membaca β€”
248
+ > **[`guides/knowledge-reads.md`](guides/knowledge-reads.md)**.
249
+
250
+ ---
251
+ ## Hook di terminal
252
+
253
+ ORC punya hook terminal supaya Anda bisa melihat: persentase jendela konteks,
254
+ pemakaian 5 jam, pemakaian mingguan, dan beberapa hal lain.
255
+
256
+ <img width="725" height="96" alt="image" src="https://github.com/user-attachments/assets/6a649c87-81ea-4fd9-9d0b-6bb4b97fe9cd" />
257
+
258
+ <br>
259
+
260
+ ---
261
+
262
+ ## Lane yang tersedia
263
+
264
+ > [!TIP]
265
+ > Lane ini menyambung secara alami: **`/orc-brainstorm` β†’ `/orc-grill` β†’
266
+ > `/orc-analyze` β†’ `/orc-plan` β†’ `/orc-route` β†’ `/orc`**. Anda boleh mulai dari
267
+ > mana saja.
268
+
269
+ ### Membuat sesuatu
270
+
271
+ | Perintah | Kegunaannya | Contoh jalannya |
272
+ |---|---|---|
273
+ | **`/orc`** | Alur penuh: terima β†’ rencana β†’ gelombang paralel bernilai β†’ periksa β†’ uji β†’ kirim. Rajin menyimpan titik simpan; bisa dilanjutkan di sesi baru. | [lihat](mock-run/orc.md) |
274
+ | **`/orc-ultra`** | Sama, ditambah penasihat Opus 5 **xhigh** dan tiga gerbang penilaian. Analisis dalam, pola kode, tes, dan keamanan dipaksa menyala. Memang mahal. | [lihat](mock-run/orc-ultra.md) |
275
+ | **`/orc-mini`** | Satu agen Sonnet 5, satu pemeriksaan build + tes, lalu kirim. Melewati review penuh dan pengujian. Bisa pindah ke alur penuh di tengah jalan kalau diminta. | [lihat](templates/skills/orc-mini/examples/mini-run-mock.md) |
276
+ | **`/orc-fast`** | Lane tercepat. Butuh wiki yang masih segar **dan** pola kode yang sudah tersimpan; kalau ada, ia melewati tahap analis dan perencana sepenuhnya. Kalau salah satu syarat tidak ada, ia mundur ke `/orc-mini` β€” obrolan tidak pernah berhenti. | [lihat](mock-run/orc-fast.md) |
277
+ | **`/orc-quick`** | Minta apa saja: perbaikan kecil, pertanyaan, mencari bug, menaikkan versi dependensi, komentar PR. Lihat β†’ tanya sekali β†’ kerjakan. **Selalu bertanya agen mana yang mau dipakai**, dan tidak ada pengaturan yang bisa mengubah itu. | [lihat](mock-run/orc-quick.md) |
278
+ | **`/orc-diy`** | Lane racikan Anda sendiri, disusun di terminal dengan `orc diy` lalu dikompilasi. Kalau belum disetel atau sudah basi, ia menolak jalan dan menawarkan `/orc` biasa. | [lihat](mock-run/orc-diy.md) |
279
+
280
+ ### Memikirkan apa yang mau dibuat
281
+
282
+ | Perintah | Kegunaannya | Contoh jalannya |
283
+ |---|---|---|
284
+ | **`/orc-brainstorm`** | Idenya belum ada. Ia membuat banyak calon ide memakai beberapa sudut pandang, **tanpa mengkritik apa pun saat masih mengumpulkan**, mengelompokkannya jadi beberapa arah nyata, menguji setiap arah, lalu merekomendasikan satu dan **menunggu β€” ia tidak pernah memilih untuk Anda**. Setiap daftar pilihan selalu diakhiri satu slot untuk ide Anda sendiri. | [lihat](mock-run/orc-brainstorm.md) |
285
+ | **`/orc-grill`** | Idenya sudah ada satu, tapi masih kabur. Ia bertanya beberapa ronde, **mencari faktanya sendiri** alih-alih menyuruh Anda menghafal isi kode Anda sendiri, dan tidak pernah menjawab pertanyaannya sendiri. Selesai kalau *Anda* bilang idenya sudah pas. | [lihat](mock-run/orc-grill.md) |
286
+ | **`/orc-analyze`** | Dokumen atau permintaan β†’ spesifikasi yang jelas batasnya dan berpijak pada kode. Setiap klaim membawa bukti `berkas:baris`, atau berubah jadi pertanyaan. Mode dalam menambah beberapa pemeriksa paralel. | [lihat](templates/skills/orc-analyze/examples/analyze-mock.md) |
287
+ | **`/orc-plan`** | Permintaan atau spesifikasi β†’ rencana tugas sungguhan: berkas nyata, urutan ketergantungan, sifat tiap tugas, dan keputusan tes per tugas. | [lihat](mock-run/orc-plan.md) |
288
+ | **`/orc-doc`** | Menulis dokumen panjang β€” PRD, TSD, kesepakatan antar tim, laporan status, atau runbook β€” sebagai Markdown yang bisa diimpor rapi ke Notion, Obsidian, Google Docs, Coda, Craft, dan GitHub. **ORC tidak pernah membaca isi dokumennya**: tiap bagian jadi berkasnya sendiri di `sections/`, tiap penulis memegang tepat satu berkas, tiap pemeriksa membaca satu potongan, dan `document.md` hanyalah hasil rakitan yang dibangun ulang gratis. Setiap gelombang adalah titik berhenti yang aman, dan berbulan-bulan kemudian bisa dilanjutkan tanpa Anda menjelaskan ulang apa pun. | [lihat](mock-run/orc-doc.md) |
289
+ | **`/orc-route`** | Rencananya sudah ada β€” lane mana yang sebaiknya mengerjakan? Ia menyebut satu lane, lalu pilihan lain beserta apa yang Anda korbankan, dan lane mana yang tidak mungkin beserta syarat yang menghalanginya. **Ia menolak memilih lane hanya dari satu kalimat**, karena itu sama saja menebak. | [lihat](mock-run/orc-route.md) |
290
+ | **`/orc-explain`** | "Tunggu, tadi apa?" Ia mengulang pesan terakhir: intinya dulu, lalu latar belakang yang tadi dianggap sudah Anda tahu, lalu semua istilah khas ORC dijelaskan dengan kata-kata proyek Anda sendiri. | [lihat](mock-run/orc-explain.md) |
291
+ | **`/orc-poly`** | Satu perubahan yang menyentuh dua repo atau lebih, tanpa jadi melenceng. Kode repo tetangga hanya dibaca; ia membekukan batas bersama jadi sebuah kontrak lalu menulis satu rencana per repo. Ia tidak pernah membangun apa pun. | [lihat](templates/skills/orc-poly/examples/poly-run-mock.md) |
292
+
293
+ ### Mengajari ORC tentang proyek Anda
294
+
295
+ | Perintah | Kegunaannya | Contoh jalannya |
296
+ |---|---|---|
297
+ | **`/orc-wiki`** | Memindai kode Anda jadi `wiki/` yang menetap, tiap klaim menunjuk berkas nyata, lalu mengarahkan `CLAUDE.md` ke sana. Kesegarannya dihitung saat dibaca, tidak pernah disimpan. Mahal dan harus Anda minta β€” ia selalu memperingatkan dulu. | [lihat](templates/skills/orc-wiki/examples/wiki-run-mock.md) |
298
+ | **`/orc-pattern`** | Mempelajari kebiasaan kode Anda per bahasa, supaya agen menulis kode yang mirip gaya kode Anda. Kebiasaan Anda yang menang; aturan wajib soal keamanan dan kebenaran tetap dibawa. | [lihat](mock-run/orc-pattern.md) |
299
+ | **`/orc-learn`** | Dokumen pengenalan untuk manusia, satu fitur sekali jalan, menunjuk `berkas:baris`. Tersimpan lokal dan diabaikan git. | [lihat](templates/skills/orc-learn/examples/learn-run-mock.md) |
300
+ | **`/orc-claude`** | Membuat atau menyegarkan `CLAUDE.md` repo ini dari fakta yang sudah diperiksa. Tanpa pertanyaan; tulisan Anda sendiri tidak pernah dipotong. | [lihat](templates/skills/orc-claude/examples/claude-run-mock.md) |
301
+ | **`/orc-export`** | Merangkum wiki, pola kode, `PACT.md`, dan kartu batas jadi satu `AGENTS.md` yang bisa dibawa ke mana-mana β€” diturunkan, bersidik jari, bisa diperiksa dengan `--check`. Supaya ORC tidak jadi jebakan. | [lihat](mock-run/orc-export.md) |
302
+
303
+ ### Memeriksa apa yang sudah terjadi
304
+
305
+ | Perintah | Kegunaannya | Contoh jalannya |
306
+ |---|---|---|
307
+ | **`/orc-challenge`** | Menilai sesuatu yang **sudah jadi** β€” TSD, PRD, ADR, kontrak API, README, satu modul kode β€” terhadap tujuan yang **Anda** nyatakan, lalu **berhenti dan menyuruh Anda memperbaikinya di sesi lain**. ORC menilai, Anda memperbaiki, ORC menilai lagi: **ia tidak pernah memperbaiki apa yang ia nilai**, karena sesi yang baru saja menulis perbaikan pasti memberi nilai bagus pada pekerjaannya sendiri. **Dan ia tidak pernah menebak arti "bagus" di sini.** | [lihat](mock-run/orc-challenge.md) |
308
+ | **`/orc-pact`** | Janji-janji yang dipegang proyek Anda, dan mana yang sekarang diragukan. Empat status, semuanya **dihitung saat dibaca**: HOLDING Β· DRIFTED Β· **UNCHECKABLE** (status jujur β€” bukan kegagalan) Β· BROKEN. Ia tidak pernah mengarang janji dan tidak pernah mencabut janji untuk Anda. | [lihat](mock-run/orc-pact.md) |
309
+ | **`/orc-boundary`** | Apa yang **sebaiknya tidak** dicoba ORC di sini, dan apa persisnya yang akan mengubah itu. EXECUTE Β· ESCALATE Β· REFUSE, per area. **REFUSE selalu menyebutkan apa yang akan membuatnya jadi boleh.** Ia hanya membatasi ORC sendiri, tidak pernah membatasi perintah Anda. | [lihat](mock-run/orc-boundary.md) |
310
+ | **`/orc-verify`** | Menguji hanya perubahan yang belum di-commit: build, tes, kewajaran diff, dan temuan pada tangga P0–P3. Hanya membaca. | [lihat](templates/skills/orc-verify/examples/verify-mock.md) |
311
+ | **`/orc-aftermath`** | Apakah yang kita kirim kemarin bertahan? Dinilai dari masa depan repo itu sendiri: berkas yang cepat ditulis ulang, commit yang dibatalkan, tes yang dihapus, janji yang patah. **Perubahan berulang itu sinyal, bukan vonis**, dan ia tidak pernah menyebut nama orang. | [lihat](mock-run/orc-aftermath.md) |
312
+ | **`/orc-budget`** | Berapa biaya sebuah pekerjaan, dalam satuan yang benar-benar ditagihkan ke Anda. Sebuah **vektor token** β€” input baru, tulis cache, baca cache, output; tidak pernah dicampur β€” ditampilkan empat cara: token, dolar, persen dari jendela 5 jam Anda, dan risiko jendela konteks. Butuh rencana, bukan satu kalimat. | [lihat](mock-run/orc-budget.md) |
313
+ | **`/orc-retro`** | Mengolah catatan jejak jadi laporan kalibrasi lalu mengirimkannya ke hulu sebagai PR. | [lihat](templates/skills/orc-retro/examples/retro-mock.md) |
314
+
315
+ ### Mengirim dan menyerahkan
316
+
317
+ | Perintah | Kegunaannya | Contoh jalannya |
318
+ |---|---|---|
319
+ | **`/orc-pr-setup`** | Menentukan di mana perubahan besar dipotong jadi beberapa pull request bertumpuk: lapisan berurutan, masing-masing dengan tujuan, daftar berkas, dan perkiraan biaya. Ia berhenti dan bertanya di setiap sambungan yang meragukan, dan tidak pernah menyentuh git. | [lihat](mock-run/orc-pr-setup.md) |
320
+ | **`/orc-pr-driver`** | Menjalankan rencana itu: satu branch per lapisan, **pemeriksaan hijau wajib di dasar tiap lapisan**, `gh stack submit`, lalu susun ulang dan merge dari bawah ke atas. | [lihat](mock-run/orc-pr-setup.md) |
321
+ | **`/orc-handoff`** | Untuk orang yang tidak membaca kode. Nilainya ditentukan oleh **ada atau tidaknya pemeriksaan murah**, bukan oleh jenis berkasnya. Ia menampilkan perintah pembatalan *sebelum* menulis, dan tidak pernah menyentuh berkas merah. | [lihat](mock-run/orc-handoff.md) |
322
+
323
+ ---
324
+
325
+ ## Aturan yang menahan slop
326
+
327
+ ORC menulis banyak prosa dan banyak kode. Keduanya keluar membawa bawaan yang
328
+ sama dan mudah dikenali: kalimat yang terdengar yakin tetapi tidak mengatakan
329
+ apa-apa, dan kode yang lebih panjang, lebih defensif, dan lebih abstrak daripada
330
+ yang diminta tugasnya. `orc rules` adalah saringannya, dan saringan itu punya
331
+ **dua bagian yang tidak pernah bercampur**.
332
+
333
+ | Bagian | Siapa yang menulis | Di mana | Berubah kapan |
334
+ |---|---|---|---|
335
+ | **Aturan ORC** | ORC | `.claude/skills/_shared/rules/` | `orc update` |
336
+ | **Aturan Anda** | Anda | `.claude/orc/rules.md` | Anda mengetik |
337
+
338
+ **65 aturan kiriman, hanya-baca**, dalam empat paket: `OSW` penulisan (23) Β·
339
+ `OSC` kode (22) Β· `OSD` pelaporan (10), yaitu apa yang dilaporkan agen tentang
340
+ pekerjaannya SENDIRI Β· `OSU` antarmuka (10), yang ikut per TUGAS, bukan per
341
+ lane. Tiga tingkat β€” **HARD** mutlak, **PURPOSE** boleh dengan satu baris alasan
342
+ tertulis, **LOCK** pemeriksaan konsistensi.
343
+
344
+ **Aturan Anda berupa teks biasa**, tiga judul, sebanyak apa pun di bawah
345
+ masing-masing β€” dan **aturan Anda mengalahkan aturan ORC secara langsung**:
346
+
347
+ ```
348
+ aturan rumah > aturan Anda > aturan ORC
349
+ ```
350
+
351
+ Aturan rumah hanya tentang KODE dan perilaku. Aturan itu tidak berbicara tentang
352
+ kata-kata yang ditulis agen, jadi tidak pernah mengalahkan aturan penulisan.
353
+ Untuk mematikan satu aturan ORC, sebut id-nya di dalam aturan Anda sendiri;
354
+ penggantian itu lalu dihitung, dicetak saat preflight, dan dinyatakan di dalam
355
+ setiap slice. **Tidak pernah diam-diam.**
356
+
357
+ ```bash
358
+ orc rules # kedua bagian, urutan kuasa, jumlahnya
359
+ orc rules add --priority P0 --text "..." # aturan Anda, dengan kata-kata Anda
360
+ orc rules lint src/ README.md # gratis, nol token
361
+ orc rules credits # tiap sumber, penulis, dan lisensinya
362
+ ```
363
+
364
+ `orc rules lint` memeriksa **13 dari 65** β€” yang dapat dibuktikan pencocokan
365
+ teks β€” dan selalu mencetak `not checked here: 52 rules. They need a reader, not a
366
+ matcher.` Lint yang bersih bukan tinjauan yang bersih, dan perintah itu
367
+ mengatakannya.
368
+
369
+ **Aturan ini adalah karya orang lain, dan kreditnya ikut dikirim.** Diadaptasi
370
+ dari [`petergyang/no-ai-slop`](https://github.com/petergyang/no-ai-slop) (MIT),
371
+ [`miqdadbadjuber/anti-slop`](https://github.com/miqdadbadjuber/anti-slop) (MIT),
372
+ [`ehmo/slopkit`](https://github.com/ehmo/slopkit),
373
+ [`BioInfo/slopless`](https://github.com/BioInfo/slopless), `CLAUDE.md` milik
374
+ Andrej Karpathy, Anti-Slop Writing Rules milik Matty Cartwright, dan tiga makalah
375
+ tentang bau kode LLM.
376
+
377
+ **Penjelasan lengkap: [`guides/rules.md`](guides/rules.md).**
378
+
379
+ ---
380
+
381
+ ## Dokumen yang benar-benar bisa dipindahkan
382
+
383
+ `/orc-doc` menulis dokumen panjang β€” dan Markdown dipilih justru karena berkas
384
+ Markdown bisa dibawa ke mana-mana:
385
+
386
+ | Tujuan | Bisa impor `.md`? |
387
+ |---|---|
388
+ | Notion Β· Obsidian Β· Google Docs Β· Coda Β· Craft Β· Apple Notes Β· GitHub | **langsung bisa** |
389
+ | Docusaurus Β· Hugo Β· Jekyll Β· MkDocs | bisa β€” dan justru *butuh* front matter YAML |
390
+ | Confluence | tidak langsung. Siapkan aplikasi importir dari marketplace |
391
+ | Microsoft OneNote | **tidak bisa**. Ubah dulu ke Word atau PDF |
392
+
393
+ Tabel itu bukan hiasan: `orc doc lint --target` benar-benar menegakkan batas
394
+ nyata dari tempat tujuan dokumen Anda. Notion hanya punya tiga tingkat judul,
395
+ jadi H4 di sana adalah **error**. Paragraf yang dipotong keras per baris adalah
396
+ error di mana pun, karena potongan di kolom 80 akan jadi ganti baris sungguhan di
397
+ dalam paragraf Notion.
398
+
399
+ Ada lima templat dasar β€” `prd` Β· `tsd` Β· `collaboration` Β· `report` Β· `workflow` β€”
400
+ masing-masing sebagai lantai, bukan kandang. `orc doc templates` mencetaknya;
401
+ Anda juga boleh membawa templat sendiri dan judul-judulnya akan jadi kerangka.
402
+
403
+ **Penjelasan lengkap: [`guides/documents.md`](guides/documents.md).**
404
+
405
+ ---
406
+
407
+ ## Graf kode β€” `orc graph`
408
+
409
+ Peta lokal tentang bagaimana kode Anda saling terhubung. **Default-nya mati.**
410
+
411
+ ```bash
412
+ orc config set code_graph on # lane kode membuat dan memakai peta (gratis)
413
+ orc config set code_graph_notes wave # opsional: catatan satu kalimat (memakai token)
414
+ orc graph ctx OrderService.create # kartu: pemanggil, yang dipanggil, efek SQL/HTTP/env
415
+ orc graph changes # apa yang diubah diff INI, dan seberapa berisiko
416
+ orc graph cochange src/orders.js # apa yang biasanya berubah bersama berkas ini
417
+ orc graph coverage src/orders.js # berapa banyak yang benar-benar dibaca parser
418
+ ```
419
+
420
+ - **Strukturnya gratis.** CLI mem-parse kodenya. Tanpa model, tanpa dependency.
421
+ Fungsi, method, class dan handler route (`GET /orders/:id`); middleware yang
422
+ dikirim lewat nama menjadi tautan `used by`.
423
+ - **Update-nya kecil.** Git sudah menghitung hash setiap file. Hanya file yang
424
+ hash-nya berubah yang di-parse ulang β€” perubahan dari teman satu tim diperbaiki
425
+ sendiri di preflight berikutnya.
426
+ - **Setiap tautan menyebut seberapa yakin:** `LOCAL`, `IMPORT`, `UNIQUE`,
427
+ `AMBIGUOUS` (semua kandidat ditulis) atau `UNRESOLVED`. Graf tidak pernah menebak.
428
+ - **Kartu punya batas token.** Kartu tidak pernah melewatinya, dan menyebut apa
429
+ yang disembunyikan. `--format tree` menulis nama kolom satu kali saja, bukan di
430
+ setiap baris, dan kembali ke bentuk biasa jika kartunya terlalu kecil.
431
+ - **Graf menunjukkan letak kode. Graf tidak menggantikan membaca kode.** Agent
432
+ tetap membaca rentang barisnya sebelum bertindak. Kepala kartu menulis
433
+ `coverage partial 327-466` jika parser tidak selesai membaca satu berkas β€”
434
+ **tidak adanya celah yang tercatat bukan bukti bahwa semuanya lengkap.** Kartu
435
+ juga hanya menulis pemanggil yang MENYEBUT nama simbolnya: pemanggil yang
436
+ sampai lewat route HTTP atau dispatch lewat string bukan tautan, jadi
437
+ **diamnya satu kartu bukan bukti bahwa tidak ada apa-apa.**
438
+ - **Setiap jawaban membawa `generation`** β€” angka yang naik setiap kali peta
439
+ berubah. Kartu yang dikutip lagi nanti tetap bisa ditempatkan pada waktunya.
440
+ - **Peta tetap segar lewat tiga jalan, dan hanya satu yang perlu diingat orang.**
441
+ Satu pembacaan memperbaiki berkas yang akan dijawabnya; hook yang terpasang
442
+ memperbarui peta saat satu pekerja selesai; dan setiap lane kode β€” `/orc`,
443
+ `/orc-ultra`, `/orc-diy`, `/orc-mini`, `/orc-fast`, `/orc-quick` β€” tetap
444
+ membangunnya di preflight dan memperbaruinya setelah setiap perubahan. Lane
445
+ lain tidak pernah memanggilnya. **Tidak ada yang berjalan dengan pewaktu dan
446
+ tidak ada yang berjalan di latar belakang.**
447
+ - **Hook itu juga memberi pekerja titik acuan yang tadinya harus dicari sendiri**,
448
+ dan semua yang diberikannya ditandai sebagai data repositori, bukan perintah.
449
+ Matikan dengan `orc config set code_graph_hooks off`; petanya tetap bekerja.
450
+
451
+ Kontraknya: `templates/skills/_shared/code-graph.md`. Hook-nya:
452
+ `templates/hooks/README.md`.
453
+
454
+ > **Peta ini tidak menghemat token, dan itu kami ukur, bukan kami tebak.** Di 242
455
+ > jendela lane ORC yang nyata, hasil `Grep` dan `Glob` hanya **0,06%** dari yang
456
+ > ditambahkan satu sesi ke konteksnya, dan semua hasil tool bersama-sama 5,5%.
457
+ > Pencari sempurna β€” setiap pembacaan berkas penuh menjadi pembacaan rentang β€”
458
+ > akan menghemat **0,1% dari satu sesi**. Nyalakan peta ini karena Anda ingin
459
+ > kartunya: apa memanggil apa, apa yang akan tersentuh oleh satu perubahan, di
460
+ > mana parser tidak selesai. Bukan demi angka.
461
+
462
+ ## `orc ui` β€” panel kendali
463
+
464
+ Halaman web lokal untuk **semua bagian ORC yang bukan ai**. Satu batas yang
465
+ menentukan segalanya: **ia tidak pernah menjalankan lane, tidak pernah memanggil
466
+ `claude`, dan tidak pernah memanggil API model.** Semua yang ditampilkan atau
467
+ ditulisnya berasal dari keluaran CLI yang pasti.
468
+
469
+ <img width="1870" height="1269" alt="image" src="https://github.com/user-attachments/assets/207fe821-9aa6-430e-bdcc-968340cc687f" />
470
+
471
+ ```bash
472
+ orc ui # jalan di 127.0.0.1:9921 dan membuka browser
473
+ orc ui --port 9930 # port yang Anda sebut sendiri tidak akan pindah β€” bentrok berarti error
474
+ orc ui --no-open # cetak URL-nya saja
475
+ orc ui --idle 0 # matikan mati-otomatis saat menganggur (bawaan: 30 menit)
476
+ orc ui --fixtures # data contoh, tidak perlu proyek sama sekali
477
+ orc ui --stop # matikan server proyek ini
478
+ ```
479
+
480
+ | Panel | Menampilkan | Bisa mengubah |
481
+ |---|---|---|
482
+ | Overview | versi, `orc doctor`, kesegaran wiki, apa yang sedang menunggu β€” plus **Worth doing**, satu daftar semua hal yang butuh keputusan Anda | β€” |
483
+ | Settings | semua kunci pengaturan, dikelompokkan, masing-masing dengan kontrolnya sendiri | perubahan disiapkan dulu, lalu diterapkan bersama |
484
+ | Runs | riwayat pekerjaan; satu baris terbuka di tempat berisi ringkasan keadaan, teks untuk melanjutkan, titik simpan, dan ekor catatan jejak | β€” |
485
+ | **Knowledge** | **lima tab**: kesegaran wiki DAN **isinya** (setiap dokumen, apa yang dicakupnya, seberapa sering dibaca), cakupan terhadap berkas terlacak Anda, pola kode beserta pertentangan yang ditandai, ingatan perbaikan dengan pemangkasan yang **ditinjau dulu baru diterapkan**, dan tampilan repo tetangga yang hanya bisa dibaca | `wiki sync`, `gotcha prune` |
486
+ | Stats | pemakaian lane dan agen, penurunan model, serta tab **Cost** yang batangnya menjaga "baca cache" tetap terlihat terpisah | β€” |
487
+ | Flow | alur DIY yang sudah dikompilasi, gerbangnya, dan urutan semua fasenya | `diy set`, `diy compile`, preset |
488
+ | Crosslink | **Design** (batas antar repo sebagai gambar) dan **Settings** (kesegaran tiap tetangga) | `crosslink add` / `remove` |
489
+ | Promises Β· Boundary Β· Self-serve | buku janji, kartu batas, dan permukaan yang boleh diubah orang non-teknis | `pact check`, `pact sync`, `handoff set` |
490
+ | **Docs** | setiap dokumen `/orc-doc` sebagai **pita** β€” satu blok per bagian, lebarnya sesuai panjangnya dan warnanya sesuai statusnya β€” plus berkas tiap bagian, jalur gelombang, kartu kesehatan lint, dan pratinjau gelombang | `doc compile` Β· `doc migrate` |
491
+ | **Extra** | **enam tab**: penyiapan koneksi, alat lokal beserta keadaannya, tangga rentang skor dan enam posisinya, pengeluaran per profil per rentang, dan **Recovery** β€” setiap pengiriman yang tidak pernah melapor kembali, beserta apa yang ia tinggalkan di disk | `extra add` / `ping` / `route` / `role` |
492
+ | **Challenge** | setiap putaran `/orc-challenge`: tujuan yang dibekukan, daftar sudut pandang dan apa yang diangkat masing-masing, temuan beserta keputusannya, dan apakah kelulusannya dihitung atau tertahan | `challenge record` Β· `accept` Β· `rebut` |
493
+ | **Mocked Skill Use** | semua contoh jalannya yang ikut dikirim bersama ORC, dikelompokkan dan bisa dicari, dengan panel baca | β€” |
494
+ | Learn | panduan `orc onboarding`, satu bagian sekali baca | β€” |
495
+ | Experiment | setiap lane dengan tombol salin; membuka sesi Claude di terminal | β€” |
496
+ | Maintenance | `update`, `update --prune`, `doctor --fix`, `upgrade` | tinjau dulu, baru terapkan |
497
+
498
+ - **Panel ini *adalah* CLI.** Ia membaca `orc <perintah> --json` dan menjalankan
499
+ perintah asli untuk setiap penulisan, jadi ia tidak mungkin melenceng dari
500
+ CLI β€” ia tidak menyimpan salinan kedua dari apa pun.
501
+ - **Tindakan gratis dapat tombol. Tindakan berbayar dapat perintah untuk disalin.**
502
+ - **Tidak ada yang berjalan otomatis**, dan pemangkasan selalu menyebut **setiap**
503
+ berkas. Sebuah angka bukan berarti persetujuan.
504
+ - **Diperlakukan sebagai permukaan tulis**: hanya loopback, token baru tiap kali
505
+ dijalankan, pemeriksaan Host untuk mencegah DNS rebinding, tanpa CORS, dan
506
+ perubahan hanya lewat POST.
507
+ - **Hanya untuk proyek ini, tidak ada pengaturan `--global`.** Kalau ada
508
+ pemasangan global yang bisa mengalahkan pemasangan proyek, setiap halaman
509
+ memasang spanduk peringatan. Ia hanya melaporkannya; ia tidak pernah menyunting
510
+ pengaturan global.
511
+ - **Bahasa Inggris dan Indonesia.** Yang diterjemahkan hanya kalimat milik panel
512
+ itu sendiri β€” kunci pengaturan, id model, jalur berkas, perintah, dan pesan
513
+ doctor dicetak persis seperti tulisan CLI, karena kunci pengaturan yang
514
+ diterjemahkan adalah kunci yang tidak ada.
515
+
516
+ Nol dependensi, tanpa langkah build: `node:http`, JavaScript biasa, dan CSS yang
517
+ ditulis tangan.
518
+
519
+ ---
520
+
521
+ ## Menjalankan sebagian tangga di tempat lain β€” `orc extra`
522
+
523
+ **Pengatur utamanya selalu Claude.** Yang diubah Extra adalah *siapa yang
524
+ mengerjakan satu potong tugas*: satu rentang skor milik Anda, atau salah satu
525
+ dari enam posisi bernama, bisa diarahkan ke DeepSeek, GLM, Kimi, MiniMax, Qwen,
526
+ Ollama lokal, atau CLI pemrograman yang sudah Anda pakai (opencode, codex).
527
+ Semua pemeriksaan setelahnya β€” gerbang asap, gerbang TDD, peninjau, pemeriksa
528
+ selisih pohon kerja β€” buta terhadap mesin yang dipakai, jadi tak ada satu pun
529
+ yang tahu pekerjaan itu dikerjakan di luar.
530
+
531
+ **Mati secara bawaan, dan tidak bisa dinyalakan sebelum ada yang benar-benar
532
+ menjawab.**
533
+
534
+ ```bash
535
+ orc extra providers # katalog bertanggal β€” penyedia, bukan model
536
+ orc extra tools # CLI lokal: belum ada Β· terlalu lama Β· belum masuk Β· siap
537
+ orc extra add ds --provider deepseek --engine api --env-key DEEPSEEK_API_KEY
538
+ orc extra ping ds # gerbang koneksi: bertingkat, dan tak ada yang dibaca lebih kuat dari kenyataannya
539
+ orc extra models ds --test <id> # model yang TERDAFTAR bisa saja sudah mati di sana
540
+ orc extra health ds --model <id> # …dan model yang jalan belum tentu SELESAI
541
+ orc extra route set 40-55 ds/deepseek-chat # satu rentang skor
542
+ orc extra role set doc-writer ds/deepseek-chat # atau satu posisi bernama
543
+ orc config set extra_enabled true
544
+ ```
545
+
546
+ - **Katalognya berisi penyedia, tidak pernah model.** Nama model yang ikut
547
+ dikirim akan salah dalam hitungan bulan, dan salahnya *diam-diam* β€” 404 di
548
+ tengah gelombang. `orc extra ping` membaca daftar aslinya lalu menyimpannya;
549
+ tidak ada yang mengarang nama. Begitu juga harga: angka biaya yang bukan ORC
550
+ sendiri yang hitung tidak pernah dicetak, melainkan muncul sebagai tanda
551
+ hubung panjang.
552
+ - **Setiap pekerjaan yang aktif mengatakannya sebelum gelombang pertama.**
553
+ Mengirim pekerjaan keluar dari Claude tanpa memberi tahu adalah justru
554
+ kegagalan yang membentuk seluruh bagian ini.
555
+ - **Dua penahan keras**: tugas dengan `risk[]` yang disebut (autentikasi, uang,
556
+ migrasi, keamanan, konkurensi, keutuhan data) tetap di Claude kecuali Anda
557
+ menyatakan lain, dan area REFUSE dari `/orc-boundary` tetap menahan bahkan
558
+ dalam mode `warn`.
559
+ - **Balasan dari luar adalah masukan asing.** Ia satu-satunya jenis masukan
560
+ asing yang menyunting pohon kerja Anda, jadi apa yang ia katakan telah ia
561
+ kerjakan adalah *klaim*, yang diperiksa terhadap pohon kerja.
562
+ - **Kunci Anda tidak pernah sampai ke baris perintah.** Ia lewat stdin menuju
563
+ brankas terenkripsi, atau tetap di variabel lingkungan, atau alatnya yang
564
+ menyimpannya sendiri β€” dan frasa sandinya adalah **tenggat waktu**, bukan
565
+ faktor kedua.
566
+ - **Enam posisi untuk lane yang mengunci agen alih-alih menilai tugas**:
567
+ `quick-executor` Β· `fast-executor` Β· `doc-writer` Β· `doc-checker` Β·
568
+ `wiki-scanner-deep` Β· `wiki-scanner-light`. Posisi tanpa baris tetap
569
+ ditampilkan dan terbaca sebagai agen Claude yang terkunci padanya β€” "saya
570
+ sengaja membiarkan pemeriksanya di Claude" dan "tidak ada pemeriksa" tidak
571
+ boleh terlihat sama.
572
+
573
+ **Ketika pekerja luar gagal, yang tertinggal adalah sebuah posisi, bukan halaman
574
+ kosong.** ORC mencatat keadaan awal *sebelum bita pertama meninggalkan mesin
575
+ ini*, jadi pekerja yang terputus di tengah tulisan akan **dicocokkan lalu
576
+ dilanjutkan** β€” tidak pernah dikirim ulang dari nol ke berkas yang sudah
577
+ dua-pertiga jadi.
578
+
579
+ - **`extra_stall_s` (bawaan 180)** menghentikan pekerja yang tidak menghasilkan
580
+ apa pun selama itu. Hitungannya direset oleh kemajuan yang terlihat β€” aliran
581
+ keluaran pekerja, keluaran kesalahannya, atau berkas yang dideklarasikan
582
+ berubah di disk β€” jadi ia tidak pernah memotong pekerja yang sekadar lambat.
583
+ `stalled` boleh diulang, dan itulah yang membuat pelanjutannya menjadi cara
584
+ ORC sendiri mengetik `continue`.
585
+ - **`extra_fallback_agent` (bawaan `band`)** menentukan siapa yang mengambil alih
586
+ tugasnya. `ask` berhenti dan menyodorkan pilihannya kepada Anda; nama agen
587
+ apa pun yang terpasang bisa dikunci. Ia mengubah *siapa*, tidak pernah skornya,
588
+ daftar berkasnya, atau syarat penerimaannya.
589
+ - **Setiap pengiriman menulis catatan biayanya sendiri**, jadi laporan biaya
590
+ tidak pernah bergantung pada sebuah pekerjaan yang harus ingat menceritakan
591
+ pengeluarannya. `orc extra stats` menggabungkan catatan biaya, jejak, dan
592
+ balasan yang tersimpan, dan selalu menyebut berapa baris berasal dari mana.
593
+
594
+ **`/orc-quick` tidak terpengaruh di sini** dan mengatakannya β€” lane itu selalu
595
+ bertanya agen mana sebelum setiap pengiriman, jadi tidak ada pengaturan yang
596
+ boleh menjawabnya lebih dulu. **`/orc-challenge` tidak pernah keluar dari
597
+ Claude**: mengganti satu sudut pandang dengan model lain tidak membuat lane itu
598
+ lebih murah, ia mengubah apa yang sedang diukur.
599
+
600
+ **Seluruh bagian ini, dengan setiap perintah dan kuncinya:
601
+ [guides/extra-models.md](guides/extra-models.md).**
602
+
603
+ ---
604
+
605
+ ## Bagaimana modelnya dipilih
606
+
607
+ Setiap tugas diberi nilai 0–100 dengan **hitungan, bukan perasaan**: perencana
608
+ melaporkan beberapa sifat tugas (luasnya, kebaruannya, kerumitan logikanya,
609
+ permukaan tes, risiko yang dikutip, ketidakpastian) dan satu rumus tetap yang
610
+ dipublikasikan mengubahnya jadi angka. Risiko yang dikutip memaksa nilai minimal
611
+ 70. Nilai itu dipetakan lewat tabel yang dipublikasikan ke **agen bernama dengan
612
+ model terkunci** β€” jadi apa yang benar-benar berjalan bisa diperiksa, bukan
613
+ sekadar diminta lewat kalimat.
614
+
615
+ > **Aturan yang paling sering membuat orang bingung:** model sebuah subagen tidak
616
+ > akan pernah lebih tinggi daripada model sesi utama Anda. Jalankan sesi Anda di
617
+ > Opus 5.
618
+
619
+ **Penjelasan lengkap β€” pita nilainya, `opus5_only`, dan penjaga tingkat yang
620
+ dipasang `orc init`: [guides/model-selection.md](guides/model-selection.md).**
621
+
622
+ ---
623
+
624
+ ## Pengaturan
625
+
626
+ Pengaturan diubah lewat **CLI `orc config`** β€” masukan dan keluaran terminal yang
627
+ pasti, jadi biayanya **nol token model**.
628
+
629
+ ```bash
630
+ orc config # menu interaktif
631
+ orc config list # pengaturan yang sedang berlaku
632
+ orc config recommend # baca repo ini, sarankan SATU profil, beserta alasannya
633
+ orc config profile paranoid
634
+ ```
635
+
636
+ Perubahan Anda tersimpan di `.claude/orc.config.yaml`, dan `orc update` tidak
637
+ pernah menimpanya. `orc ui` β–Έ Settings menyunting kunci yang sama lewat pemeriksa
638
+ yang sama.
639
+
640
+ **Semua kunci, nilai bawaannya, dan gunanya masing-masing:
641
+ [guides/configuration.md](guides/configuration.md).**
642
+
643
+ ---
644
+
645
+ ## Isi paketnya
646
+
647
+ ```
648
+ templates/
649
+ β”œβ”€β”€ skills/ 31 folder skill, 38 berkas SKILL.md (satu lane boleh membawa
650
+ β”‚ sub-skill) β€” lane di atas, plus yang tidak punya perintah
651
+ β”‚ sendiri: context-combiner, orc-advisor, orc-judge,
652
+ β”‚ orc-analyze-mini, dan _shared/ (kesepakatan lintas lane)
653
+ β”œβ”€β”€ commands/ 29 perintah garis miring
654
+ β”œβ”€β”€ hooks/ penjaga effort (PreToolUse) Β· peringatan statusline Β· catatan jejak
655
+ └── agents/ 48 subagen dengan model terkunci + MODEL-MAPPING.md
656
+ bin/cli.js pemasang, penyunting pengaturan, penyusun alur, pembaca status
657
+ pekerjaan, dan separuh pasti dari setiap lane. Setiap pembacaan
658
+ bisa menjawab --json
659
+ bin/graph*.js graf kode: penyimpanan, ekstraksi, resolusi saat dibaca, catatan
660
+ bin/webui/ `orc ui` β€” panel kendali lokal: css/ + js/ + i18n/<bahasa>/ +
661
+ fixtures/, satu berkas per lapisan dan per panel. Nol dependensi
662
+ bin/mockrun-catalog.js katalog contoh jalannya (diturunkan dari berkas di disk)
663
+ mock-run/ contoh-contoh jalannya itu sendiri β€” mulai dari INDEX.md
664
+ guides/ pengaturan Β· pemilihan model Β· dokumen Β· pembacaan pengetahuan Β·
665
+ model AI lain
666
+ ```
667
+
668
+ Skill `orc` sendiri hanyalah **tulang punggung** yang tipis: ia hanya memuat
669
+ referensi atau sub-skill ketika fase itu benar-benar berjalan, jadi tugas kecil
670
+ tidak perlu membayar mesin besar.
671
+
672
+ ---
673
+
674
+ ## Panduan yang lebih panjang
675
+
676
+ Beberapa lane membawa panduan lengkapnya sendiri, di sebelah skill-nya, dengan
677
+ bahasa yang sederhana:
678
+
679
+ | Panduan | Baca kalau |
680
+ |---|---|
681
+ | [Aturan](guides/rules.md) | Anda ingin 65 aturan anti-slop, urutan kuasanya, dan lint-nya |
682
+ | [ORC-QUICK](templates/skills/orc-quick/README.md) | Anda ingin contoh lengkap lane cepat |
683
+ | [ORC-DIY](templates/skills/orc-diy/README.md) | Anda ingin meracik lane sendiri |
684
+ | [ORC-WIKI](templates/skills/orc-wiki/README.md) | Anda ingin basis pengetahuan, dan pengaturan crosslink antar repo |
685
+ | [ORC-PR-SETUP](templates/skills/orc-pr-setup/README.md) | Anda ingin memecah perubahan besar jadi PR bertumpuk |
686
+ | [ORC-PR-DRIVER](templates/skills/orc-pr-driver/README.md) | Anda sudah punya rencana tumpukan dan ingin membangun, mengirim, dan me-merge-nya |
687
+ | [Pengaturan](guides/configuration.md) Β· [Pemilihan model](guides/model-selection.md) | Anda ingin semua kuncinya, atau pita penilaiannya |
688
+
689
+ Setiap skill juga membawa `SKILL.md` dan `references/`-nya sendiri. Panduan di
690
+ atas adalah versinya untuk manusia.
691
+
692
+ ---
693
+
694
+ ## Status evaluasi
695
+
696
+ Kumpulan skill ini dinilai **dari ujung ke ujung**, bukan berkas per berkas: satu
697
+ spesifikasi yang bisa dijalankan per lane, diuji terhadap proyek Express di
698
+ kotak pasir, dan dinilai dari bukti di disk β€” catatan jejak, folder pekerjaan,
699
+ dan berkas hasil.
700
+
701
+ Putaran penuh terakhir adalah **30 evaluasi terhadap payload v0.34.0**: 25 berkas
702
+ hasil terisi dan 38 berkas jejak, dengan 5 evaluasi yang tidak pernah dinilai dan
703
+ 2 yang hanya dinilai sebagian β€” semuanya disebutkan namanya di laporan. Semua
704
+ yang ditemukan di sana sudah diperbaiki di rilis berikutnya atau masih tercatat.
705
+ Bacalah sebagai catatan putaran itu, bukan sebagai audit terkini:
706
+ [EVAL-REPORT.md](EVAL-REPORT.md).
707
+
708
+ ---
709
+
710
+ ## Prinsip rancangannya
711
+
712
+ - **Jangan pernah menulis kode di lapisan paling atas.** Orkestrator mengatur;
713
+ subagen bernilai yang mengerjakan.
714
+ - **Batasi cakupannya dulu, baru dikerjakan paralel.** Salah paham jauh lebih
715
+ murah diperbaiki sebelum lima agen membangun di atasnya.
716
+ - **Disk lebih dipercaya daripada ingatan.** Setiap jeda adalah titik lanjut yang
717
+ bersih.
718
+ - **Model terkunci dan bisa diperiksa.** Agen bernama, modelnya tertulis di
719
+ frontmatter.
720
+ - **Kode Anda yang menang.** Pola yang dipelajari mengalah pada proyek Anda;
721
+ hanya aturan keamanan dan kebenaran yang tidak bisa ditawar.
722
+ - **Pengetahuan itu tambahan.** Wiki membuat perencanaan lebih baik kalau ada,
723
+ dan tidak membebani apa pun kalau tidak ada.
724
+ - **Katakan apa yang tidak Anda ketahui.** `UNCHECKABLE`, `no card`,
725
+ `insufficient history` adalah jawaban sungguhan. Tebakan yang terdengar yakin
726
+ lebih buruk daripada mengakui ada yang tidak diketahui.
727
+
728
+ ---
729
+
730
+ ## Daftar perubahan
731
+
732
+ **Riwayat lengkap: [CHANGELOG.md](CHANGELOG.md)** β€” atau `orc changelog`, yang
733
+ hanya mencetak yang lebih baru dari versi yang Anda punya.
734
+
735
+ ### v1.8.0 - graf kode: peta kode yang selalu baru _(16-09-2026)_
736
+
737
+ Lane ORC menghabiskan sebagian besar tokennya untuk mencari: Grep, baca file,
738
+ Grep lagi. Agent berikutnya di wave berikutnya mencari hal yang sama lagi.
739
+
740
+ **`orc graph` adalah peta lokal tentang bagaimana kode saling terhubung.**
741
+ Default-nya mati: `orc config set code_graph on`.
742
+
743
+ - **Strukturnya gratis.** CLI mem-parse JavaScript, TypeScript, Python, Go,
744
+ Java, C# dan PHP β€” tanpa model. Python memakai parser `ast` miliknya sendiri
745
+ jika Python 3.8+ terpasang.
746
+ - **Update-nya kecil.** Hanya file yang hash git-nya berubah yang di-parse ulang.
747
+ Di django/django (3.040 file sumber) build pertama 12 detik, update satu file
748
+ 2,7 detik, dan satu kartu 0,46 detik.
749
+ - **`orc graph ctx | impact | path`** menjawab dengan batas token dan kata status
750
+ di setiap tautan. Handler route menjadi simbol, dan middleware yang dikirim
751
+ lewat nama menjadi tautan `used by`. `--format tree` menulis nama kolom satu
752
+ kali saja β€” 17–21% lebih sedikit token pada kartu berkas.
753
+ - **Bagian yang mahal kini ditulis sekali.** Mencari siapa yang memanggil satu
754
+ simbol memakan 437 ms di django/django, setiap kali dibaca. Sekarang dihitung
755
+ saat peta di-update lalu dibaca kembali: kartu berkas 727 ms β†’ 458 ms, dan
756
+ `orc graph impact` 631 ms β†’ 397 ms. Simpanan itu TURUNAN β€” hanya dipakai jika
757
+ menyebut versi peta yang sekarang, dan menghapusnya hanya menghilangkan
758
+ kecepatan.
759
+ - **Setiap jawaban membawa `generation`**, dan setiap berkas menyebut berapa
760
+ banyak yang benar-benar dibaca parser β€” `full`, `partial` dengan rentang
761
+ barisnya, atau `skipped`. `orc graph coverage <berkas>` menanyakannya sekaligus.
762
+ - **Tiga jawaban baca-saja yang baru, semuanya gratis:** `orc graph changes`
763
+ (simbol yang benar-benar disentuh diff ini, dengan pemanggil, test, dan kata
764
+ risiko yang membawa alasannya sendiri), `orc graph cochange <berkas>` (apa yang
765
+ biasanya berubah BERSAMA berkas itu, dari riwayat git β€” bukan ketergantungan),
766
+ dan `orc graph coverage`.
767
+ - **Catatan bersifat opsional** (`code_graph_notes: wave | end`). Satu agent
768
+ Sonnet 4.6 menulis satu kalimat per fungsi yang berubah. Catatan hanya
769
+ ditampilkan selama isi fungsinya tidak berubah.
770
+ - **Peta tetap segar lewat tiga jalan, dan hanya satu yang perlu diingat orang.**
771
+ Satu pembacaan memperbaiki berkas yang akan dijawabnya. Hook yang terpasang
772
+ memperbarui peta saat satu pekerja selesai, dan memberi pekerja titik acuan
773
+ yang tadinya harus dicari sendiri. Dan setiap lane kode tetap membangunnya di
774
+ preflight. `/orc-quick` tetap hanya membaca `log_dir`. **Tidak ada yang
775
+ berjalan dengan pewaktu dan tidak ada yang berjalan di latar belakang.**
776
+ - **Semua yang diterima pekerja dari graf ditandai sebagai data repositori, bukan
777
+ perintah.** Nama simbol berasal dari repositori Anda, jadi ORC memperlakukannya
778
+ sebagai teks. Isi berkas tidak pernah dikirimkan β€” hanya nama, path dan
779
+ rentang baris.
780
+ - **Juga:** delapan kunci pengaturan, dua temuan `orc doctor`, kartu graf kode di
781
+ `orc ui`, dan komponen status line `graph`.
782
+
783
+ **Batas yang kami tahu.** TypeScript dibaca dengan pencocokan pola, bukan dengan
784
+ compiler TypeScript. `x = new Service(); x.run()` tampil sebagai `AMBIGUOUS`.
785
+ Pemanggil yang tidak pernah menyebut nama simbolnya β€” tes route HTTP, penjalan
786
+ job β€” bukan tautan, jadi baca kartu sebagai titik awal, bukan sebagai daftar
787
+ lengkap yang akan terdampak.
788
+ **Ini bukan optimasi token, dan itu sudah diukur.** Pencarian hanya 0,06% dari
789
+ yang ditambahkan satu sesi ke konteksnya; pencari sempurna pun hanya menghemat
790
+ 0,1% dari satu run. Peta ini tidak memakai token model untuk dibangun dan waktu
791
+ baca di atas nyata β€” nyalakan demi kartunya, bukan demi penghematan.
792
+
793
+ <details>
794
+ <summary><strong>Rilis sebelumnya</strong> β€” 116 rilis, hanya judulnya. Teks lengkapnya (dalam bahasa Inggris) ada di <a href="CHANGELOG.md">CHANGELOG.md</a>.</summary>
795
+
796
+ - **v1.7.1** β€” the rules card now reaches the agent Β· _2026-09-14_
797
+ - **v1.7.0** β€” the rules that keep the slop out Β· _2026-09-13_
798
+ - **v1.6.0** β€” the rule that can finally say no Β· _2026-09-07_
799
+ - **v1.5.0** β€” the lane that runs the test Β· _2026-09-07_
800
+ - **v1.4.2** β€” the panel that stops reloading, and the fields you could not read back Β· _2026-09-05_
801
+ - **v1.4.1** β€” the board you can actually use Β· _2026-09-05_
802
+ - **v1.4.0** β€” the agent panel, and the number that was missing Β· _2026-09-04_
803
+ - **v1.3.0** β€” build your own status line Β· _2026-09-04_
804
+ - **v1.2.1** β€” the status line says what ORC is doing Β· _2026-09-04_
805
+ - **v1.2.0** β€” a retry that cloned the agent, and a window you can watch empty Β· _2026-09-04_
806
+ - **v1.1.0** β€” the wait, and a window ORC can finally see Β· _2026-08-31_
807
+ - **v1.0.0** β€” config, phases and calls stop being prose Β· _2026-08-30_
808
+ - **v0.56.1** β€” a worker that is alive and doing nothing Β· _2026-08-28_
809
+ - **v0.56.0** β€” a rename moved the command, and nobody could reach the fix Β· _2026-08-27_
810
+ - **v0.55.2** β€” a gate that is never probed is a gate that is always off Β· _2026-08-27_
811
+ - **v0.55.1** β€” ORC is on npm Β· _2026-08-27_
812
+ - **v0.55.0** β€” a score is what a band needs, and four lanes do not have one Β· _2026-08-26_
813
+ - **v0.54.0** β€” a failed dispatch is a POSITION, not a blank page Β· _2026-08-25_
814
+ - **v0.53.4** β€” the reload that dropped its own token Β· _2026-08-24_
815
+ - **v0.53.3** β€” the key it never sent Β· _2026-08-24_
816
+ - **v0.53.2** β€” the cost that was paid and never written down Β· _2026-08-24_
817
+ - **v0.53.1** β€” "up to date" now names what it checked Β· _2026-08-23_
818
+ - **v0.53.0** β€” the schema the provider rejected, and a routing table you can read Β· _2026-08-23_
819
+ - **v0.52.0** β€” the connection that could not be used, and the routing nobody could see Β· _2026-08-23_
820
+ - **v0.51.0** β€” the tools you already have, and a connection that proves itself Β· _2026-08-22_
821
+ - **v0.50.0** β€” work that runs somewhere else Β· _2026-08-22_
822
+ - **v0.49.5** β€” house rules are text, and the hand-back writes itself Β· _2026-08-21_
823
+ - **v0.49.4** β€” the panel was being handed half an answer Β· _2026-08-20_
824
+ - **v0.49.3** β€” coverage on a large repo Β· _2026-08-19_
825
+ - **v0.49.2** β€” house rules, a run map before you pay, and three defects Β· _2026-08-18_
826
+ - **v0.49.1** β€” the challenge council, and a `--json` that stops throwing things away Β· _2026-08-18_
827
+ - **v0.49.0** β€” the document is a folder, and the file is a build artifact Β· _2026-08-17_
828
+ - **v0.48.1** β€” one file per thing, and a document that can be finished Β· _2026-08-16_
829
+ - **v0.48.0** β€” a document long enough to end a session, written anyway Β· _2026-08-13_
830
+ - **v0.47.0** β€” the lane that refuses to produce Β· _2026-08-12_
831
+ - **v0.46.1** β€” see a lane run before you pay for one Β· _2026-08-12_
832
+ - **v0.46.0** β€” a lane that remembers, a lane that declines, and a lane that measures Β· _2026-08-10_
833
+ - **v0.45.0** β€” `/orc-brainstorm`: for when you do not have the idea yet Β· _2026-08-10_
834
+ - **v0.44.1** β€” apply when you say so, and a spotlight that survives a banner Β· _2026-08-09_
835
+ - **v0.44.0** β€” the panel stops making you type what it already knows Β· _2026-08-09_
836
+ - **v0.43.7** β€” the flow you can see, and a boundary you can read Β· _2026-08-09_
837
+ - **v0.43.6** β€” `orc ui` in two languages, and panels that point at the right page Β· _2026-08-08_
838
+ - **v0.43.5** β€” the update check works, and the UI teaches itself Β· _2026-08-08_
839
+ - **v0.43.4** β€” a warning that finally clears, an Experiment panel, crosslink from the UI Β· _2026-08-08_
840
+ - **v0.43.3** β€” `orc ui`: it tells you about updates, and 36 keys stop being a wall Β· _2026-08-08_
841
+ - **v0.43.2** β€” `orc ui`: boxes stop colliding, because the container owns the gap Β· _2026-08-08_
842
+ - **v0.43.1** β€” the panel's stylesheet and script actually reach the browser Β· _2026-08-08_
843
+ - **v0.43.0** β€” `orc ui`: a control panel for everything that is not ai Β· _2026-08-08_
844
+ - **v0.42.0** β€” Say what you mean, see what it costs, find your way back Β· _2026-08-08_
845
+ - **v0.41.0** β€” A wiki that can tell you it is fresh, and TDD only where it can fail Β· _2026-08-06_
846
+ - **v0.40.0** β€” Gotchas: repair memory that outlives the run Β· _2026-08-06_
847
+ - **v0.39.0** β€” The read ladder, and foreign input that is evidence rather than instruction Β· _2026-08-06_
848
+ - **v0.38.1** β€” `orc doctor --json` + handoff carry-over that says what is re-derived Β· _2026-08-06_
849
+ - **v0.38.0** β€” `/orc-quick`: the quick lane, and the gate no config can collapse Β· _2026-08-05_
850
+ - **v0.37.0** β€” Stacked pull requests: a measured ship gate + two standalone lanes Β· _2026-08-03_
851
+ - **v0.36.0** β€” `opus5_only`: one model for every role, not just executors Β· _2026-08-02_
852
+ - **v0.35.0** β€” `opus5_executor_only`: one model, effort as the cost dial Β· _2026-08-02_
853
+ - **v0.34.8** β€” `orc pattern status` rejects a language key the payload has never heard of Β· _2026-08-01_
854
+ - **v0.34.7** β€” DIY: a usable status contract, and compile docs that match the compiler Β· _2026-08-01_
855
+ - **v0.34.6** β€” Analyze: the evidence gate now covers the rows a good analysis produces Β· _2026-08-01_
856
+ - **v0.34.5** β€” Wiki: stop losing tags silently, let a delta clear its own delta Β· _2026-08-01_
857
+ - **v0.34.4** β€” Planner: scorable facets, and TDD rules scoped to reality Β· _2026-08-01_
858
+ - **v0.34.3** β€” Slice boundary: the worktree, not the editor Β· _2026-08-01_
859
+ - **v0.34.2** β€” Trace subsystem: the pointer clobber, and a writer contract that holds Β· _2026-08-01_
860
+ - **v0.34.1** β€” Install integrity: run state survives `orc update` Β· _2026-08-01_
861
+ - **v0.34.0** β€” Opus 5: top scoring band, every core role, medium-effort session tier Β· _2026-07-25_
862
+ - **v0.33.0** β€” Knowledge deepening + verification revamp Β· _2026-07-25_
863
+ - **v0.32.0** β€” Trace revamp: narration is dispatched, not remembered Β· _2026-07-24_
864
+ - **v0.31.0** β€” Execution-integrity revamp: plan handoff, attributable traces, facet scoring Β· _2026-07-23_
865
+ - **v0.30.0** β€” Scoring revamp, Fable 5 role override, tier-aware guards, `orc onboarding` Β· _2026-07-23_
866
+ - **v0.29.0** β€” Drift-prevention hardening: install manifest + prune, `orc doctor`, a real test suite Β· _2026-07-22_
867
+ - **v0.28.1** β€” Defect fixes: package encoding, trace event routing, count/doc drift Β· _2026-07-22_
868
+ - **v0.28.0** β€” Run integrity: rich full-lane traces, deterministic wave stop, visible knowledge gates Β· _2026-07-21_
869
+ - **v0.27.0** β€” `/orc-poly`: plan one change across two-or-more repos without drift Β· _2026-07-20_
870
+ - **v0.26.0** β€” Test-gen output pinned to a visible `test-generator/<change-slug>/` deliverable Β· _2026-07-19_
871
+ - **v0.25.1** β€” Eval report: the full 17-lane suite graded against the v0.25.0 payload Β· _2026-07-18_
872
+ - **v0.25.0** β€” Deterministic artifact detection: a generated wiki/pattern is never missed Β· _2026-07-18_
873
+ - **v0.24.0** β€” Crosslink fused into wiki generation: always-on, per-scan-task, never wiped Β· _2026-07-18_
874
+ - **v0.23.0** β€” Trace fix: SPAWN restored on the `Agent` tool, stale runs rotate to fresh files Β· _2026-07-18_
875
+ - **v0.22.0** β€” `/orc-learn`: per-feature onboarding docs β€” learning.md + knowledge.md, wiki-deep, git-ignored Β· _2026-07-17_
876
+ - **v0.21.0** β€” Statusline shows live subscription usage: 5h ↔ weekly, official numbers Β· _2026-07-16_
877
+ - **v0.20.0** β€” One source of truth: generated executor agents + shared cross-lane contracts Β· _2026-07-16_
878
+ - **v0.19.0** β€” Thin spines: skill compaction, budget lint, and a trace that logs every phase Β· _2026-07-16_
879
+ - **v0.18.0** β€” `orc wiki sync`: the wiki registers itself β€” a paused scan is no longer an invisible wiki Β· _2026-07-15_
880
+ - **v0.17.3** β€” Trace the wiki consult: Phase 1 now logs whether the run grounded in the wiki (and if it was stale) Β· _2026-07-14_
881
+ - **v0.17.2** β€” Behavior-trace logging is permanent + the trace folder is now created deterministically Β· _2026-07-14_
882
+ - **v0.17.1** β€” Complete cross-repo crosslink setup guide in the orc-wiki README Β· _2026-07-14_
883
+ - **v0.17.0** β€” `orc crosslink`: cross-repo wiki references β€” advisory boundary contracts Β· _2026-07-14_
884
+ - **v0.16.1** β€” Interactive `orc diy` composer + numbered picks in `orc config` Β· _2026-07-14_
885
+ - **v0.16.0** β€” `/orc-diy`: build your own lane β€” CLI-composed flow, compiled, hard-gated Β· _2026-07-14_
886
+ - **v0.15.0** β€” Wiki v2: evidence-anchored docs Β· per-file staleness registry Β· integrity gate Β· _2026-07-14_
887
+ - **v0.14.0** β€” Postgres data-access playbook: cross-cutting query grounding Β· _2026-07-13_
888
+ - **v0.13.0** β€” `/orc-claude`: local CLAUDE.md builder β€” fenced sections, fingerprint refresh, zero questions Β· _2026-07-12_
889
+ - **v0.12.0** β€” Lossless context-combiner: conservation gate Β· overlap taxonomy Β· evidence freshness Β· _2026-07-12_
890
+ - **v0.11.0** β€” `/orc-fast`: knowledge-gated speed lane + wiki freshness infrastructure Β· _2026-07-12_
891
+ - **v0.10.1** β€” README: a fuller "Why ORC exists" Β· _2026-07-12_
892
+ - **v0.10.0** β€” `/orc-ultra`: max-effort advisor + three judgment gates for ultra-complex work Β· _2026-07-12_
893
+ - **v0.9.0** — Trust-but-verify the analyst→planner chain: quote-anchored evidence · coverage gate · anchored judgment · _2026-07-12_
894
+ - **v0.8.1** β€” /orc-retro delivers upstream: PR/issue to the ORC repo, channel-gated Β· _2026-07-12_
895
+ - **v0.8.0** β€” Close the loop: grounded intake Β· scoring anchors Β· OUTCOME marker Β· /orc-retro trace miner Β· eval harness Β· _2026-07-12_
896
+ - **v0.7.0** β€” Evidence everywhere: grounded plans Β· verbatim proof Β· anchored findings Β· contract lint Β· trace fixes Β· _2026-07-12_
897
+ - **v0.6.0** β€” P0–P3 ladder Β· house rules Β· deep playbooks + wired gates Β· 3 new languages Β· FE rule packs Β· security pass Β· _2026-07-11_
898
+ - **v0.5.1** β€” Statusline false-degrade fix Β· _2026-07-11_
899
+ - v0.5.0 β€” Code-pattern findings: executors match your house style, invariants always enforced
900
+ - v0.4.5 β€” Rewrite weak worker descriptions (the real score lever)
901
+ - v0.4.4 β€” Act on external review: raise sub-70 workers, fix cross-spine paths
902
+ - v0.4.3 β€” `orc-analyze`: trim description under the 1024-char skill-spec limit
903
+ - v0.4.2 β€” External-review pass: worked examples + sharper mini-analyst activation
904
+ - v0.4.1 β€” `orc-mini`: faster, safer fast-lane β€” smoke gate, opt-in tests, trimmed ceremony
905
+ - v0.4.0 β€” Opt-in Phase 6.5 Test Authoring (writes test cases, never runs them)
906
+ - v0.3.0 β€” Opt-in behavior-trace logging + claimed-vs-actual model verification
907
+ - v0.2.4 β€” `orc-analyze`: gather anchored adjacent-scope context (non-actionable)
908
+ - v0.2.3 β€” Context Combiner: merge 2+ related analyses into one combined spec
909
+ - v0.2.2 β€” Config: enforce per-key override-first resolution
910
+ - v0.2.1 β€” Move config editing into the `orc config` CLI (zero-token); drop `/orc-config`
911
+ - v0.2.0 β€” Doc-optional evidence-backed analyst + deep mode
912
+
913
+ </details>
914
+
915
+ ## Yang dibutuhkan
916
+
917
+ - **Claude Code** β€” dialah yang membaca skill, perintah, dan agennya.
918
+ - **Node 18+** β€” hanya untuk pemasangnya. Skill-nya sendiri tidak punya
919
+ dependensi apa pun.
920
+
921
+ ## Lisensi
922
+
923
+ MIT β€” kolom `license` di `package.json` adalah pernyataan resminya.