@azure-id/orc 1.8.1 → 1.9.0
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.
- package/CHANGELOG.md +386 -0
- package/README-id.md +110 -73
- package/README.md +96 -33
- package/bin/cli.js +45520 -44867
- package/bin/graph-extract.js +2409 -120
- package/bin/graph-gain.js +404 -0
- package/bin/graph-map.js +232 -0
- package/bin/graph-notes.js +49 -8
- package/bin/graph-query.js +1770 -808
- package/bin/graph-resolve.js +93 -16
- package/bin/graph-shard.js +325 -0
- package/bin/graph.js +658 -605
- package/bin/verify-contracts.js +297 -56
- package/bin/verify-package.js +29 -1
- package/bin/webui/api.js +6 -0
- package/bin/webui/fixtures/index.js +6 -1
- package/bin/webui/fixtures/knowledge.js +41 -1
- package/bin/webui/fixtures/stats.js +107 -104
- package/bin/webui/i18n/en/knowledge.json +16 -1
- package/bin/webui/i18n/id/knowledge.json +16 -1
- package/bin/webui/js/panels/knowledge.js +68 -3
- package/mock-run/orc-quick.md +141 -113
- package/package.json +1 -1
- package/templates/agents/MODEL-MAPPING.md +15 -5
- package/templates/agents/orc-executor-haiku-4-5.md +25 -13
- package/templates/agents/orc-executor-opus-4-7-high.md +25 -13
- package/templates/agents/orc-executor-opus-4-7-med.md +25 -13
- package/templates/agents/orc-executor-opus-4-8-high.md +25 -13
- package/templates/agents/orc-executor-opus-5-high.md +25 -13
- package/templates/agents/orc-executor-opus-5-low.md +25 -13
- package/templates/agents/orc-executor-opus-5-med.md +25 -13
- package/templates/agents/orc-executor-sonnet-4-6-high.md +25 -13
- package/templates/agents/orc-executor-sonnet-4-6-med.md +25 -13
- package/templates/agents/orc-executor-sonnet-5-high.md +25 -13
- package/templates/agents/orc-graph-noter-sonnet-4-6-med.md +15 -12
- package/templates/agents/orc-planner-mini-opus-5-med.md +75 -69
- package/templates/agents/orc-planner-mini-sonnet-5-high.md +73 -67
- package/templates/agents/orc-recon-opus-5-low.md +99 -0
- package/templates/agents/orc-recon-sonnet-4-6-med.md +99 -0
- package/templates/commands/orc-mini.md +10 -12
- package/templates/commands/orc-quick.md +20 -33
- package/templates/hooks/README.md +13 -3
- package/templates/hooks/orc-graph-hook.js +148 -13
- package/templates/hooks/orc-trace.js +476 -471
- package/templates/skills/_shared/code-graph.md +148 -20
- package/templates/skills/_shared/phases/execution.md +13 -11
- package/templates/skills/_shared/phases/planning.md +8 -1
- package/templates/skills/_shared/phases/rules.md +172 -159
- package/templates/skills/_shared/phases/ship.md +5 -1
- package/templates/skills/_shared/phases/trace.md +4 -1
- package/templates/skills/_shared/phases/wiki-consult.md +10 -6
- package/templates/skills/_shared/read-ladder.md +10 -2
- package/templates/skills/_shared/return-validation.md +22 -0
- package/templates/skills/context-combiner/SKILL.md +13 -13
- package/templates/skills/orc/SKILL.md +1 -1
- package/templates/skills/orc/subskills/orc-execution/core.md +171 -159
- package/templates/skills/orc-analyze/SKILL.md +13 -13
- package/templates/skills/orc-diy/references/flow-schema.md +1 -1
- package/templates/skills/orc-mini/SKILL.md +148 -136
- package/templates/skills/orc-mini/examples/mini-run-mock.md +64 -50
- package/templates/skills/orc-mini/references/complexity.md +105 -0
- package/templates/skills/orc-quick/README.md +495 -423
- package/templates/skills/orc-quick/SKILL.md +157 -211
- package/templates/skills/orc-quick/references/context-doc.md +145 -114
- package/templates/skills/orc-quick/references/defect.md +101 -0
- package/templates/skills/orc-quick/references/dispatch-gate.md +55 -24
- package/templates/skills/orc-quick/references/gh-mode.md +148 -127
- package/templates/skills/orc-quick/references/look.md +107 -0
- package/templates/skills/orc-wiki/references/staleness.md +1 -1
package/README-id.md
CHANGED
|
@@ -7,13 +7,13 @@
|
|
|
7
7
|
*Terima permintaan → pahami → rencanakan → beri nilai → kerjakan paralel → periksa → uji → kirim.*
|
|
8
8
|
|
|
9
9
|

|
|
10
|
-

|
|
11
11
|

|
|
12
12
|

|
|
13
13
|

|
|
14
14
|

|
|
15
15
|
|
|
16
|
-
**Versi terbaru: v1.
|
|
16
|
+
**Versi terbaru: v1.9.0** · diperbarui 21-09-2026 · [daftar perubahan lengkap](CHANGELOG.md)
|
|
17
17
|
|
|
18
18
|
**Ada di npm: [`@azure-id/orc`](https://www.npmjs.com/package/@azure-id/orc)** — `npm i -g @azure-id/orc`
|
|
19
19
|
|
|
@@ -272,9 +272,9 @@ pemakaian 5 jam, pemakaian mingguan, dan beberapa hal lain.
|
|
|
272
272
|
|---|---|---|
|
|
273
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
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) |
|
|
275
|
+
| **`/orc-mini`** | Satu agen Sonnet 5, satu pemeriksaan build + tes, lalu kirim. Melewati review penuh dan pengujian. Satu baris **pembacaan kompleksitas** berisi angka menawarkan lane penuh kalau perubahannya lebih luas dari satu area. Bisa pindah ke alur penuh di tengah jalan kalau diminta. | [lihat](templates/skills/orc-mini/examples/mini-run-mock.md) |
|
|
276
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) |
|
|
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. Satu **defect direproduksi merah dulu sebelum diperbaiki**. | [lihat](mock-run/orc-quick.md) |
|
|
278
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
279
|
|
|
280
280
|
### Memikirkan apa yang mau dibuat
|
|
@@ -411,30 +411,51 @@ Peta lokal tentang bagaimana kode Anda saling terhubung. **Default-nya mati.**
|
|
|
411
411
|
```bash
|
|
412
412
|
orc config set code_graph on # lane kode membuat dan memakai peta (gratis)
|
|
413
413
|
orc config set code_graph_notes wave # opsional: catatan satu kalimat (memakai token)
|
|
414
|
+
orc graph map # peringkat repositori, sebelum Anda tahu nama berkasnya
|
|
414
415
|
orc graph ctx OrderService.create # kartu: pemanggil, yang dipanggil, efek SQL/HTTP/env
|
|
416
|
+
orc graph ctx "GET /orders/:id" # route juga satu simbol
|
|
415
417
|
orc graph changes # apa yang diubah diff INI, dan seberapa berisiko
|
|
416
418
|
orc graph cochange src/orders.js # apa yang biasanya berubah bersama berkas ini
|
|
417
419
|
orc graph coverage src/orders.js # berapa banyak yang benar-benar dibaca parser
|
|
420
|
+
orc graph gain # apa yang dimasukkan peta, dan perkiraan apa yang ditahannya
|
|
418
421
|
```
|
|
419
422
|
|
|
420
423
|
- **Strukturnya gratis.** CLI mem-parse kodenya. Tanpa model, tanpa dependency.
|
|
421
424
|
Fungsi, method, class dan handler route (`GET /orders/:id`); middleware yang
|
|
422
425
|
dikirim lewat nama menjadi tautan `used by`.
|
|
426
|
+
- **Bahasanya:** JavaScript, TypeScript, Python, Go, Java, C#, PHP, Ruby, Rust,
|
|
427
|
+
Kotlin, C / C++, dan blok `<script>` komponen Vue atau Svelte. Jika proyek
|
|
428
|
+
Anda sudah punya alatnya, ORC meminjamnya dan hasil parse-nya tepat — `ast`
|
|
429
|
+
milik Python, `node_modules/typescript` milik Anda, dan `go` di PATH. ORC
|
|
430
|
+
sendiri tetap tanpa dependency. `ORC_GRAPH_NO_BORROW=1` mematikannya.
|
|
431
|
+
- **URL adalah satu tautan.** Test yang memanggil
|
|
432
|
+
`request(app).get("/orders/search")` adalah pemanggil route itu, dan kartunya
|
|
433
|
+
menyebutkannya. Begitu juga alias instance
|
|
434
|
+
(`const svc = new OrderService(); svc.run()`), method warisan (`this.ok()` →
|
|
435
|
+
`Base.ok`), dan nama yang di-re-export lewat berkas barrel.
|
|
423
436
|
- **Update-nya kecil.** Git sudah menghitung hash setiap file. Hanya file yang
|
|
424
437
|
hash-nya berubah yang di-parse ulang — perubahan dari teman satu tim diperbaiki
|
|
425
438
|
sendiri di preflight berikutnya.
|
|
426
439
|
- **Setiap tautan menyebut seberapa yakin:** `LOCAL`, `IMPORT`, `UNIQUE`,
|
|
427
|
-
`AMBIGUOUS` (semua kandidat ditulis) atau `UNRESOLVED`. Graf tidak
|
|
440
|
+
`ROUTE`, `AMBIGUOUS` (semua kandidat ditulis) atau `UNRESOLVED`. Graf tidak
|
|
441
|
+
pernah menebak.
|
|
428
442
|
- **Kartu punya batas token.** Kartu tidak pernah melewatinya, dan menyebut apa
|
|
429
|
-
yang disembunyikan. `--
|
|
430
|
-
|
|
443
|
+
yang disembunyikan. `--source [N]` menambahkan baris milik targetnya ke
|
|
444
|
+
panggilan yang sama. `--for-slice` hanya mencetak tampak LUAR satu berkas yang
|
|
445
|
+
memang akan dibaca penuh oleh agent. `--format tree` menulis nama kolom satu
|
|
446
|
+
kali saja, bukan di setiap baris.
|
|
447
|
+
- **`orc graph map` menjawab "berkas mana yang penting di sini"** sebelum Anda
|
|
448
|
+
tahu nama berkasnya, di dalam satu batas token. `--focus` menyusun ulang
|
|
449
|
+
peringkat seluruh repositori di sekitar berkas atau nama yang sudah disebut
|
|
450
|
+
permintaan Anda. **Peringkat adalah petunjuk tentang di mana harus melihat
|
|
451
|
+
lebih dulu**, bukan bukti bahwa satu berkas penting untuk perubahan ini.
|
|
431
452
|
- **Graf menunjukkan letak kode. Graf tidak menggantikan membaca kode.** Agent
|
|
432
453
|
tetap membaca rentang barisnya sebelum bertindak. Kepala kartu menulis
|
|
433
454
|
`coverage partial 327-466` jika parser tidak selesai membaca satu berkas —
|
|
434
455
|
**tidak adanya celah yang tercatat bukan bukti bahwa semuanya lengkap.** Kartu
|
|
435
|
-
|
|
436
|
-
sampai lewat
|
|
437
|
-
**diamnya satu kartu bukan bukti bahwa tidak ada apa-apa.**
|
|
456
|
+
menulis pemanggil yang MENYEBUT nama simbolnya atau yang sampai lewat URL:
|
|
457
|
+
pemanggil yang sampai lewat job runner atau dispatch lewat string bukan
|
|
458
|
+
tautan, jadi **diamnya satu kartu bukan bukti bahwa tidak ada apa-apa.**
|
|
438
459
|
- **Setiap jawaban membawa `generation`** — angka yang naik setiap kali peta
|
|
439
460
|
berubah. Kartu yang dikutip lagi nanti tetap bisa ditempatkan pada waktunya.
|
|
440
461
|
- **Peta tetap segar lewat tiga jalan, dan hanya satu yang perlu diingat orang.**
|
|
@@ -444,9 +465,19 @@ orc graph coverage src/orders.js # berapa banyak yang benar-benar dibaca pa
|
|
|
444
465
|
membangunnya di preflight dan memperbaruinya setelah setiap perubahan. Lane
|
|
445
466
|
lain tidak pernah memanggilnya. **Tidak ada yang berjalan dengan pewaktu dan
|
|
446
467
|
tidak ada yang berjalan di latar belakang.**
|
|
447
|
-
- **
|
|
448
|
-
|
|
449
|
-
|
|
468
|
+
- **Setiap lane hanya boleh menanyakan pertanyaan yang disebut katalognya
|
|
469
|
+
sendiri** (`orc lane calls <lane>`), dan v1.9.0 melebarkan itu untuk dua lane
|
|
470
|
+
ramping. `/orc-quick` sekarang boleh menanyakan `map`, `changes` dan
|
|
471
|
+
`coverage`, jadi ia bisa menyebut apa yang tersentuh satu perubahan dan
|
|
472
|
+
menjalankan test yang terdampak lebih dulu; `/orc-mini` boleh menanyakan
|
|
473
|
+
`map`, `impact`, `changes` dan `cochange`, yang menjadi angka di balik baris
|
|
474
|
+
kompleksitasnya. Sebelum ini keduanya hanya boleh menanyakan di mana satu
|
|
475
|
+
simbol berada.
|
|
476
|
+
- **Hook itu juga memberi pekerja titik acuan yang tadinya harus dicari sendiri**
|
|
477
|
+
— untuk Grep, Glob, dan pencarian lewat shell (`grep`, `rg`, `git grep`,
|
|
478
|
+
`findstr`) — dan semua yang diberikannya ditandai sebagai data repositori,
|
|
479
|
+
bukan perintah. Matikan dengan `orc config set code_graph_hooks off`; petanya
|
|
480
|
+
tetap bekerja.
|
|
450
481
|
|
|
451
482
|
Kontraknya: `templates/skills/_shared/code-graph.md`. Hook-nya:
|
|
452
483
|
`templates/hooks/README.md`.
|
|
@@ -457,7 +488,11 @@ Kontraknya: `templates/skills/_shared/code-graph.md`. Hook-nya:
|
|
|
457
488
|
> Pencari sempurna — setiap pembacaan berkas penuh menjadi pembacaan rentang —
|
|
458
489
|
> akan menghemat **0,1% dari satu sesi**. Nyalakan peta ini karena Anda ingin
|
|
459
490
|
> kartunya: apa memanggil apa, apa yang akan tersentuh oleh satu perubahan, di
|
|
460
|
-
> mana parser tidak selesai. Bukan demi angka.
|
|
491
|
+
> mana parser tidak selesai. Bukan demi angka. `orc graph gain` memakai kejujuran
|
|
492
|
+
> yang sama: apa yang DIMASUKKAN peta itu tercatat, apa yang ditahannya adalah
|
|
493
|
+
> **perkiraan** yang dicetak sebagai rentang, dan angka terukur baru muncul jika
|
|
494
|
+
> proyek Anda sendiri sudah punya tiga run dengan peta menyala dan tiga dengan
|
|
495
|
+
> peta mati.
|
|
461
496
|
|
|
462
497
|
## `orc ui` — panel kendali
|
|
463
498
|
|
|
@@ -656,7 +691,8 @@ templates/
|
|
|
656
691
|
bin/cli.js pemasang, penyunting pengaturan, penyusun alur, pembaca status
|
|
657
692
|
pekerjaan, dan separuh pasti dari setiap lane. Setiap pembacaan
|
|
658
693
|
bisa menjawab --json
|
|
659
|
-
bin/graph*.js graf kode: penyimpanan, ekstraksi, resolusi
|
|
694
|
+
bin/graph*.js graf kode: penyimpanan, ekstraksi, resolusi + cache dan shard-nya,
|
|
695
|
+
sinyal, catatan, peta berperingkat, pengukur gain
|
|
660
696
|
bin/webui/ `orc ui` — panel kendali lokal: css/ + js/ + i18n/<bahasa>/ +
|
|
661
697
|
fixtures/, satu berkas per lapisan dan per panel. Nol dependensi
|
|
662
698
|
bin/mockrun-catalog.js katalog contoh jalannya (diturunkan dari berkas di disk)
|
|
@@ -732,67 +768,68 @@ Bacalah sebagai catatan putaran itu, bukan sebagai audit terkini:
|
|
|
732
768
|
**Riwayat lengkap: [CHANGELOG.md](CHANGELOG.md)** — atau `orc changelog`, yang
|
|
733
769
|
hanya mencetak yang lebih baru dari versi yang Anda punya.
|
|
734
770
|
|
|
735
|
-
### v1.
|
|
736
|
-
|
|
737
|
-
|
|
738
|
-
|
|
739
|
-
|
|
740
|
-
|
|
741
|
-
|
|
742
|
-
|
|
743
|
-
|
|
744
|
-
|
|
745
|
-
|
|
746
|
-
|
|
747
|
-
|
|
748
|
-
|
|
749
|
-
|
|
750
|
-
|
|
751
|
-
|
|
752
|
-
|
|
753
|
-
|
|
754
|
-
|
|
755
|
-
|
|
756
|
-
|
|
757
|
-
|
|
758
|
-
|
|
759
|
-
|
|
760
|
-
|
|
761
|
-
|
|
762
|
-
|
|
763
|
-
|
|
764
|
-
|
|
765
|
-
|
|
766
|
-
|
|
767
|
-
|
|
768
|
-
|
|
769
|
-
|
|
770
|
-
|
|
771
|
-
|
|
772
|
-
|
|
773
|
-
|
|
774
|
-
|
|
775
|
-
|
|
776
|
-
|
|
777
|
-
|
|
778
|
-
|
|
779
|
-
|
|
780
|
-
|
|
781
|
-
|
|
782
|
-
|
|
783
|
-
|
|
784
|
-
|
|
785
|
-
|
|
786
|
-
|
|
787
|
-
|
|
788
|
-
|
|
789
|
-
|
|
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.
|
|
771
|
+
### v1.9.0 - lane ramping belajar melihat dulu sebelum melompat _(21-09-2026)_
|
|
772
|
+
|
|
773
|
+
`/orc-quick` dan `/orc-mini` adalah dua lane yang paling sering dipakai orang,
|
|
774
|
+
dan keduanya bekerja setengah buta. Graf kode bisa memberi tahu mereka DI MANA
|
|
775
|
+
satu simbol berada, dan dilarang memberi tahu APA YANG RUSAK. Perbaikan bug
|
|
776
|
+
tidak pernah ditunjukkan gagal lebih dulu. Pekerjaan baca-saja dikirim lewat
|
|
777
|
+
nama model, jadi tidak ada satu pun bagian ORC yang bisa melihatnya.
|
|
778
|
+
|
|
779
|
+
**Sekarang bug ditunjukkan MERAH dulu sebelum diperbaiki.** Permintaan seperti
|
|
780
|
+
*"halaman orders mengembalikan 500, cari dan perbaiki"* digolongkan sebagai
|
|
781
|
+
**defect**, dan agen eksekutor menulis reproduksinya LEBIH DULU — satu test yang
|
|
782
|
+
gagal dalam framework Anda sendiri, atau satu perintah — menjalankannya sampai
|
|
783
|
+
merah, memperbaikinya, lalu menjalankannya lagi sampai hijau. Kedua jalannya
|
|
784
|
+
dicetak dan keduanya masuk ke jejak. Reproduksi yang tidak bisa ditulis menjadi
|
|
785
|
+
`repro: none` beserta alasannya, dan catatannya berbunyi **tidak tereproduksi** —
|
|
786
|
+
diulang lagi saat penawaran commit. Itu tidak pernah dikarang. Tanpa jalan merah,
|
|
787
|
+
perbaikan hanya terbukti terhadap test suite Anda, yang sudah hijau sebelum dan
|
|
788
|
+
sesudahnya; dengan jalan merah, perbaikan terbukti terhadap bug yang Anda
|
|
789
|
+
laporkan.
|
|
790
|
+
|
|
791
|
+
**Kedua lane sekarang boleh bertanya apa yang rusak.** `/orc-quick` mendapat
|
|
792
|
+
`map`, `changes` dan `coverage`; `/orc-mini` mendapat `map`, `impact`, `changes`
|
|
793
|
+
dan `cochange`. **Test yang terdampak dijalankan lebih dulu** — termasuk test
|
|
794
|
+
yang sampai ke perubahan lewat URL — dan setiap catatan membawa satu baris
|
|
795
|
+
radius dampak, tempat kata `risk` tidak pernah muncul tanpa alasannya.
|
|
796
|
+
Permintaan yang tidak menyebut satu berkas pun sekarang dimulai dengan
|
|
797
|
+
`orc graph map --focus`, bukan dengan tebakan nama berkas.
|
|
798
|
+
|
|
799
|
+
**Pembacaan kompleksitas `/orc-mini` membawa angka.** Dulu itu satu kalimat
|
|
800
|
+
penilaian; sekarang satu baris berisi hitungan dan empat ambang yang
|
|
801
|
+
masing-masing menyebut kenapa angkanya segitu: pemanggil di 4 berkas atau lebih
|
|
802
|
+
di luar rencana, 8 pemanggil atau lebih, kelas risiko apa pun yang dikutip, atau
|
|
803
|
+
satu berkas yang menurut riwayat selalu ikut tersentuh. Itu **tawaran, bukan
|
|
804
|
+
perpindahan**, dan kalau Anda tetap lanjut, angkanya ditulis ke catatan
|
|
805
|
+
keputusan supaya `/orc-retro` nanti bisa menggeser ambangnya.
|
|
806
|
+
|
|
807
|
+
**Pekerjaan baca-saja sekarang agen sungguhan.** Recon adalah sepasang agen
|
|
808
|
+
tetap — `orc-recon-sonnet-4-6-med` dan `orc-recon-opus-5-low` — dengan kontrak
|
|
809
|
+
pengembalian, terlihat di jejak dan di `orc run inflight`. Pilihan
|
|
810
|
+
`other — sebut satu model` tetap ada sebagai jalan keluar. Gerbangnya sekarang
|
|
811
|
+
boleh mencetak `suggested` di samping satu baris BESERTA alasannya, dan ia tetap
|
|
812
|
+
tidak pernah memilih: setiap menu berakhir dengan *pilihan Anda — tidak ada yang
|
|
813
|
+
berjalan sampai Anda menjawab*.
|
|
814
|
+
|
|
815
|
+
**Kedua lane lebih murah untuk dimuat.** Dua deskripsi yang dibayar setiap sesi
|
|
816
|
+
turun dari 619 ke 326 dan dari 493 ke 294 karakter, dengan setiap frasa pemicu
|
|
817
|
+
tetap utuh. Kartu aturan dalam potongan `/orc-quick` sekarang berbentuk ringkas —
|
|
818
|
+
sekitar 1.460 token, bukan 3.469 — yang menjaga id, judul dan instruksi setiap
|
|
819
|
+
aturan HARD, dan hanya melepas contoh-contohnya.
|
|
820
|
+
|
|
821
|
+
**Rilis ini tidak menurunkan tagihan Anda**, dan tidak mengklaim begitu.
|
|
822
|
+
Klaimnya adalah kebenaran, keterlacakan, dan lebih sedikit bolak-balik.
|
|
823
|
+
**Evaluasi sesi langsung tidak dijalankan** — setengah bagian deterministiknya
|
|
824
|
+
ada di test suite, tetapi tiga gate yang butuh orang menjalankan lane tidak
|
|
825
|
+
tercapai, bukan lulus. CHANGELOG menyebutkan satu per satu.
|
|
792
826
|
|
|
793
827
|
<details>
|
|
794
|
-
<summary><strong>Rilis sebelumnya</strong> —
|
|
828
|
+
<summary><strong>Rilis sebelumnya</strong> — 119 rilis, hanya judulnya. Teks lengkapnya (dalam bahasa Inggris) ada di <a href="CHANGELOG.md">CHANGELOG.md</a>.</summary>
|
|
795
829
|
|
|
830
|
+
- **v1.8.2** — the map that finds what a grep cannot · _2026-09-21_
|
|
831
|
+
- **v1.8.1** — the guard that only failed on Windows · _2026-09-16_
|
|
832
|
+
- **v1.8.0** — the code graph: a map of the code that stays fresh · _2026-09-16_
|
|
796
833
|
- **v1.7.1** — the rules card now reaches the agent · _2026-09-14_
|
|
797
834
|
- **v1.7.0** — the rules that keep the slop out · _2026-09-13_
|
|
798
835
|
- **v1.6.0** — the rule that can finally say no · _2026-09-07_
|
package/README.md
CHANGED
|
@@ -7,14 +7,14 @@
|
|
|
7
7
|
*Intake → analyze → plan → score → parallel subagents → review → verify → ship.*
|
|
8
8
|
|
|
9
9
|

|
|
10
|
-

|
|
11
11
|

|
|
12
12
|

|
|
13
13
|

|
|
14
14
|

|
|
15
15
|

|
|
16
16
|
|
|
17
|
-
**Latest: v1.
|
|
17
|
+
**Latest: v1.9.0** · updated 2026-09-21 · [full changelog](CHANGELOG.md)
|
|
18
18
|
|
|
19
19
|
**On npm: [`@azure-id/orc`](https://www.npmjs.com/package/@azure-id/orc)** — `npm i -g @azure-id/orc`
|
|
20
20
|
|
|
@@ -251,9 +251,9 @@ ORC have terminal hook to see: Context Window %, 5 Hour usage %, Weekly usage %
|
|
|
251
251
|
|---|---|---|
|
|
252
252
|
| **`/orc`** | The full pipeline: intake → plan → scored parallel waves → review → verify → ship. Checkpoints eagerly; resumes in a fresh session. | [see it](mock-run/orc.md) |
|
|
253
253
|
| **`/orc-ultra`** | The same, plus an Opus 5 **xhigh** advisor and three judgment gates. Deep analysis, patterns, tests and security forced on. Costly by design. | [see it](mock-run/orc-ultra.md) |
|
|
254
|
-
| **`/orc-mini`** | One Sonnet 5 executor, a build + test smoke gate, ship. Skips full review and verify. Switches to the full flow mid-run on request. | [see it](templates/skills/orc-mini/examples/mini-run-mock.md) |
|
|
254
|
+
| **`/orc-mini`** | One Sonnet 5 executor, a build + test smoke gate, ship. Skips full review and verify. A one-line **complexity read** with counts behind it offers the full lane when the change is wider than one area. Switches to the full flow mid-run on request. | [see it](templates/skills/orc-mini/examples/mini-run-mock.md) |
|
|
255
255
|
| **`/orc-fast`** | The fastest lane. Needs a fresh wiki **and** a cached code pattern; then it skips the analyst and planner entirely. A missing prerequisite falls back to `/orc-mini` — the chat never stops. | [see it](mock-run/orc-fast.md) |
|
|
256
|
-
| **`/orc-quick`** | Ask for anything: a fix, a question, a defect hunt, a dependency bump, PR comments. Look → ask once → do. **It always asks which agent to dispatch**, and no setting can change that. | [see it](mock-run/orc-quick.md) |
|
|
256
|
+
| **`/orc-quick`** | Ask for anything: a fix, a question, a defect hunt, a dependency bump, PR comments. Look → ask once → do. **It always asks which agent to dispatch**, and no setting can change that. A defect is **reproduced red before it is fixed**. | [see it](mock-run/orc-quick.md) |
|
|
257
257
|
| **`/orc-wait`** | Wall-clock pause without losing the run. You see the window is nearly full, type `/orc-wait 30`, and ORC hands the run back to disk, waits in detached hops that **cost zero tokens**, and picks up where it stopped. Three modes decide how much finishes first: `safe` · `soft` (forces the checkpoint) · `hard` (fastest, can lose an in-flight return). `/orc-wait block <reason>` tells it not to stop you at all. | — |
|
|
258
258
|
| **`/orc-diy`** | Your own lane, composed in the terminal with `orc diy` and compiled. Unconfigured or stale → it refuses and offers plain `/orc`. | [see it](mock-run/orc-diy.md) |
|
|
259
259
|
|
|
@@ -388,28 +388,45 @@ A local map of how your code is connected. It is **off by default**.
|
|
|
388
388
|
```bash
|
|
389
389
|
orc config set code_graph on # code lanes build and use the map (free)
|
|
390
390
|
orc config set code_graph_notes wave # optional: one-sentence notes (costs tokens)
|
|
391
|
+
orc graph map # the repository ranked, before you know a file name
|
|
391
392
|
orc graph ctx OrderService.create # a card: callers, calls, SQL/HTTP/env effects
|
|
393
|
+
orc graph ctx "GET /orders/:id" # a route is a symbol too
|
|
392
394
|
orc graph changes # what THIS diff touched, and how risky
|
|
393
395
|
orc graph cochange src/orders.js # what usually changes with this file
|
|
394
396
|
orc graph coverage src/orders.js # how much of it the parser really saw
|
|
397
|
+
orc graph gain # what the map put in, and an estimate of what it kept out
|
|
395
398
|
```
|
|
396
399
|
|
|
397
400
|
- **Structure is free.** The CLI parses the code. No model, no dependency.
|
|
398
401
|
Functions, methods, classes and route handlers (`GET /orders/:id`); a
|
|
399
402
|
middleware passed by name is a `used by` link.
|
|
403
|
+
- **Languages:** JavaScript, TypeScript, Python, Go, Java, C#, PHP, Ruby, Rust,
|
|
404
|
+
Kotlin, C / C++, and the `<script>` block of a Vue or Svelte component. Where
|
|
405
|
+
your project already has the tool, ORC borrows it and the parse is exact —
|
|
406
|
+
Python's `ast`, your own `node_modules/typescript`, the `go` on PATH. ORC
|
|
407
|
+
itself still has zero dependencies. `ORC_GRAPH_NO_BORROW=1` turns that off.
|
|
408
|
+
- **A URL is an edge.** A test that calls `request(app).get("/orders/search")`
|
|
409
|
+
is a caller of that route, and the card says so. So is an instance alias
|
|
410
|
+
(`const svc = new OrderService(); svc.run()`), an inherited method
|
|
411
|
+
(`this.ok()` → `Base.ok`) and a name re-exported through a barrel file.
|
|
400
412
|
- **Updates are small.** Git already hashes every file. Only the files whose hash
|
|
401
413
|
changed are parsed again — a teammate's change heals at the next preflight.
|
|
402
|
-
- **Every link says how sure it is:** `LOCAL`, `IMPORT`, `UNIQUE`, `
|
|
403
|
-
(every candidate listed) or `UNRESOLVED`. The graph never guesses.
|
|
414
|
+
- **Every link says how sure it is:** `LOCAL`, `IMPORT`, `UNIQUE`, `ROUTE`,
|
|
415
|
+
`AMBIGUOUS` (every candidate listed) or `UNRESOLVED`. The graph never guesses.
|
|
404
416
|
- **A card has a token budget.** It never goes over it, and it says what it hid.
|
|
405
|
-
`--
|
|
406
|
-
|
|
417
|
+
`--source [N]` adds the target's own lines to the same call. `--for-slice`
|
|
418
|
+
prints only the OUTSIDE view of a file an agent is about to read in full.
|
|
419
|
+
`--format tree` names each column once instead of on every row.
|
|
420
|
+
- **`orc graph map` answers "which files matter here"** before you know a file
|
|
421
|
+
name, inside a budget. `--focus` re-ranks the whole repository around the files
|
|
422
|
+
or names your request already mentioned. **Rank is a hint about where to look
|
|
423
|
+
first**, never proof that a file matters to a change.
|
|
407
424
|
- **It shows where code is. It does not replace reading it.** Agents still read
|
|
408
425
|
the line range before they act. A card header says `coverage partial 327-466`
|
|
409
426
|
when the parser could not finish a file — **no recorded gap is not proof of
|
|
410
|
-
completeness**. A card
|
|
411
|
-
that reaches it through
|
|
412
|
-
**a card's silence is not proof of absence**.
|
|
427
|
+
completeness**. A card lists the callers that NAME the symbol or reach it by a
|
|
428
|
+
URL; one that reaches it through a job runner or a string dispatch is not a
|
|
429
|
+
link, so **a card's silence is not proof of absence**.
|
|
413
430
|
- **Every answer carries a `generation`** — a number that goes up each time the
|
|
414
431
|
map changes. A card quoted back later can be placed in time.
|
|
415
432
|
- **It keeps itself current in three ways, and only one of them needs a lane to
|
|
@@ -418,8 +435,15 @@ orc graph coverage src/orders.js # how much of it the parser really saw
|
|
|
418
435
|
— `/orc`, `/orc-ultra`, `/orc-diy`, `/orc-mini`, `/orc-fast`, `/orc-quick` —
|
|
419
436
|
still builds it at preflight and updates it after each change. Other lanes
|
|
420
437
|
never call it. **Nothing runs on a timer and nothing runs in the background.**
|
|
421
|
-
- **
|
|
422
|
-
|
|
438
|
+
- **Each lane may ask only the questions its own catalogue names** (`orc lane
|
|
439
|
+
calls <lane>`), and v1.9.0 widened that for the two lean lanes. `/orc-quick`
|
|
440
|
+
can now ask `map`, `changes` and `coverage`, so it can say what a change
|
|
441
|
+
touches and run the affected tests first; `/orc-mini` can ask `map`, `impact`,
|
|
442
|
+
`changes` and `cochange`, which are the counts behind its complexity line.
|
|
443
|
+
Until now both could ask only where a symbol is.
|
|
444
|
+
- **The hook also hands a worker the anchors it would otherwise search for** —
|
|
445
|
+
for a Grep, a Glob and a shell search (`grep`, `rg`, `git grep`, `findstr`) —
|
|
446
|
+
and everything it hands over is labelled repository data, never an instruction.
|
|
423
447
|
Switch it off with `orc config set code_graph_hooks off`; the map still works.
|
|
424
448
|
|
|
425
449
|
The contract: `templates/skills/_shared/code-graph.md`. The hook:
|
|
@@ -432,6 +456,10 @@ The contract: `templates/skills/_shared/code-graph.md`. The hook:
|
|
|
432
456
|
> a session**. Turn the map on because you want the cards: what calls what, what
|
|
433
457
|
> a change would touch, where the parser could not finish. Not for a number.
|
|
434
458
|
> The working is in `eval/graph-replay.js`, and it spends no tokens to re-run.
|
|
459
|
+
> `orc graph gain` reports the same honesty per run: what the map PUT IN is
|
|
460
|
+
> recorded, what it kept out is an **estimate** printed as a range, and a
|
|
461
|
+
> measured figure appears only when your own project has three runs with the map
|
|
462
|
+
> on and three with it off.
|
|
435
463
|
|
|
436
464
|
## `orc ui` — the control panel
|
|
437
465
|
|
|
@@ -613,7 +641,8 @@ templates/
|
|
|
613
641
|
└── agents/ 48 model-pinned subagents + MODEL-MAPPING.md
|
|
614
642
|
bin/cli.js installer, config editor, flow composer, run-state reader, and
|
|
615
643
|
the deterministic half of every lane. Every read speaks --json
|
|
616
|
-
bin/graph*.js the code graph: store, extraction, resolution + its cache
|
|
644
|
+
bin/graph*.js the code graph: store, extraction, resolution + its cache and
|
|
645
|
+
shards, signals, notes, the ranked map, the gain meter
|
|
617
646
|
bin/webui/ `orc ui` — the local control panel: css/ + js/ + i18n/<lang>/ +
|
|
618
647
|
fixtures/, one file per layer and per panel. Zero deps, no build step
|
|
619
648
|
bin/mockrun-catalog.js the mocked-run catalogue (derived from the files on disk)
|
|
@@ -683,28 +712,62 @@ a current audit: [EVAL-REPORT.md](EVAL-REPORT.md).
|
|
|
683
712
|
**Full history: [CHANGELOG.md](CHANGELOG.md)** — or `orc changelog`, which prints
|
|
684
713
|
only what is newer than the version you have.
|
|
685
714
|
|
|
686
|
-
### v1.
|
|
687
|
-
|
|
688
|
-
`
|
|
689
|
-
|
|
690
|
-
|
|
691
|
-
|
|
692
|
-
|
|
693
|
-
|
|
694
|
-
|
|
695
|
-
|
|
696
|
-
|
|
697
|
-
|
|
698
|
-
|
|
699
|
-
|
|
700
|
-
|
|
701
|
-
|
|
702
|
-
|
|
703
|
-
|
|
715
|
+
### v1.9.0 — the lean lanes learn to look before they leap _(2026-09-21)_
|
|
716
|
+
|
|
717
|
+
`/orc-quick` and `/orc-mini` are the two lanes people reach for most, and both
|
|
718
|
+
were working half blind. The code graph could tell them WHERE a symbol is and
|
|
719
|
+
was forbidden from telling them WHAT BREAKS. A bug fix was never shown failing
|
|
720
|
+
before it was fixed. Read-only work was dispatched by model name, so nothing in
|
|
721
|
+
ORC could see it.
|
|
722
|
+
|
|
723
|
+
**A bug is now shown RED before it is fixed.** A request like *"the orders page
|
|
724
|
+
returns 500, find it and fix it"* is sorted as a **defect**, and the executor
|
|
725
|
+
writes the reproduction FIRST — a failing test in your own framework, or a
|
|
726
|
+
command — runs it red, implements, and runs it green. Both runs are printed and
|
|
727
|
+
both reach the trace. A reproduction that cannot be written is `repro: none`
|
|
728
|
+
with its reason, and the entry says **not reproduced** — repeated at the commit
|
|
729
|
+
offer. It is never faked. Without the red run a fix is proven against your test
|
|
730
|
+
suite, which was green before and after; with it, the fix is proven against the
|
|
731
|
+
bug you reported.
|
|
732
|
+
|
|
733
|
+
**Both lanes may now ask what breaks.** `/orc-quick` gained `map`, `changes` and
|
|
734
|
+
`coverage`; `/orc-mini` gained `map`, `impact`, `changes` and `cochange`. The
|
|
735
|
+
**affected tests run first** — a test that reaches the change through a URL
|
|
736
|
+
included — and every entry carries a blast-radius line where a `risk` word never
|
|
737
|
+
appears without its reason. A request that names no file now starts with
|
|
738
|
+
`orc graph map --focus` instead of a guess at a filename.
|
|
739
|
+
|
|
740
|
+
**`/orc-mini`'s complexity read carries numbers.** It was a sentence of
|
|
741
|
+
judgment; it is now one line with counts and four thresholds that each state why
|
|
742
|
+
that number: callers in 4 or more files outside the plan, 8 or more callers, any
|
|
743
|
+
cited risk class, or a file history says is always touched alongside yours. It
|
|
744
|
+
is an **offer, never a switch**, and continuing writes the numbers into the
|
|
745
|
+
decision log so a later `/orc-retro` can move a threshold.
|
|
746
|
+
|
|
747
|
+
**Read-only work is a real agent.** Recon is a pinned pair —
|
|
748
|
+
`orc-recon-sonnet-4-6-med` and `orc-recon-opus-5-low` — with a return contract,
|
|
749
|
+
visible in the trace and in `orc run inflight`. `other — name a model` stays as
|
|
750
|
+
the escape hatch. The gate may now print `suggested` beside one line WITH its
|
|
751
|
+
reason, and it still never chooses: every menu ends with *your choice — nothing
|
|
752
|
+
runs until you answer*.
|
|
753
|
+
|
|
754
|
+
**Both lanes cost less to load.** The two descriptions, which every session
|
|
755
|
+
pays for, went 619 → 326 and 493 → 294 characters with every trigger phrase
|
|
756
|
+
kept. The rules card in a `/orc-quick` slice is now a compact form — about 1,460
|
|
757
|
+
tokens instead of 3,469 — that keeps every HARD rule's id, title and instruction
|
|
758
|
+
and loses only the worked examples.
|
|
759
|
+
|
|
760
|
+
**It does not lower your bill**, and this release does not claim it does. The
|
|
761
|
+
claim is correctness, traceability and fewer round trips. **The live-session
|
|
762
|
+
evaluation did not run** — the deterministic half is in the test suite, but the
|
|
763
|
+
three gates that need a person driving a lane are unmet, not passed. The
|
|
764
|
+
CHANGELOG names each one.
|
|
704
765
|
|
|
705
766
|
<details>
|
|
706
|
-
<summary><strong>Earlier releases</strong> —
|
|
767
|
+
<summary><strong>Earlier releases</strong> — 119 of them, titles only. Full text in <a href="CHANGELOG.md">CHANGELOG.md</a>.</summary>
|
|
707
768
|
|
|
769
|
+
- **v1.8.2** — the map that finds what a grep cannot · _2026-09-21_
|
|
770
|
+
- **v1.8.1** — the guard that only failed on Windows · _2026-09-16_
|
|
708
771
|
- **v1.8.0** — the code graph: a map of the code that stays fresh · _2026-09-16_
|
|
709
772
|
- **v1.7.1** — the rules card now reaches the agent · _2026-09-14_
|
|
710
773
|
- **v1.7.0** — the rules that keep the slop out · _2026-09-13_
|