[{"data":1,"prerenderedAt":165},["ShallowReactive",2],{"\u002Fid\u002Fdocs\u002Fcore-concepts\u002Flayer-5":3},{"id":4,"title":5,"body":6,"description":157,"extension":158,"meta":159,"navigation":160,"path":161,"seo":162,"stem":163,"__hash__":164},"docs\u002Fid\u002Fdocs\u002Fcore-concepts\u002Flayer-5.md","Layer 5: Orchestration",{"type":7,"value":8,"toc":150},"minimark",[9,18,23,59,62,66,69,75,79,147],[10,11,12,13,17],"p",{},"Layer 5 adalah lapisan yang menjalankan semuanya — merangkai Layer 1 sampai 4 jadi satu\npipeline yang bergerak otomatis dari perubahan status ticket sampai PR siap direview.\nIni yang dikerjakan oleh ",[14,15,16],"strong",{},"CAF Orchestrator",".",[19,20,22],"h2",{"id":21},"apa-yang-dilakukan-orchestration","Apa yang dilakukan orchestration",[24,25,26,30,33,51],"ol",{},[27,28,29],"li",{},"Menerima webhook saat status ticket berubah di Linear atau Jira",[27,31,32],{},"Mengantrikan job untuk fase yang sesuai lewat BullMQ + Redis",[27,34,35,36,41,42,46,47],{},"Spawn agent Claude Code headless untuk fase itu — agent membaca\n",[37,38,40],"a",{"href":39},"\u002Fid\u002Fdocs\u002Fcore-concepts\u002Flayer-1","Layer 1"," dan ",[37,43,45],{"href":44},"\u002Fid\u002Fdocs\u002Fcore-concepts\u002Flayer-2","Layer 2",",\nlalu menulis hasilnya ke ",[37,48,50],{"href":49},"\u002Fid\u002Fdocs\u002Fcore-concepts\u002Flayer-3","Layer 3",[27,52,53,54,58],{},"Menunggu hasil ",[37,55,57],{"href":56},"\u002Fid\u002Fdocs\u002Fcore-concepts\u002Flayer-4","Layer 4: Quality Gates"," sebelum memutuskan\nlanjut ke fase berikutnya atau berhenti menunggu manusia",[10,60,61],{},"Orchestrator tidak pernah melompati urutan ini. Kalau gate gagal atau menunggu approval,\npipeline berhenti di situ — tidak ada jalur pintas ke fase selanjutnya.",[19,63,65],{"id":64},"kenapa-self-hosted","Kenapa self-hosted",[10,67,68],{},"Orchestrator jalan di VPS milik kamu sendiri, bukan sebagai layanan yang dikelola\nCoderium. Konsekuensinya: kode dan artifact proyek kamu tidak pernah keluar dari\ninfrastruktur yang kamu kontrol. Ini bukan detail implementasi kecil — ini bagian dari\njanji privasi CAF.",[10,70,71,72,17],{},"Detail instalasi, konfigurasi webhook, dan variabel environment ada di halaman\n",[37,73,16],{"href":74},"\u002Fid\u002Fdocs\u002Fcaf-orchestrator",[19,76,78],{"id":77},"lima-layer-satu-pipeline","Lima layer, satu pipeline",[80,81,82,95],"table",{},[83,84,85],"thead",{},[86,87,88,92],"tr",{},[89,90,91],"th",{},"Layer",[89,93,94],{},"Peran",[96,97,98,109,119,129,139],"tbody",{},[86,99,100,106],{},[101,102,103],"td",{},[37,104,105],{"href":39},"1. Project Knowledge Base",[101,107,108],{},"Konteks proyek yang dibaca semua agent",[86,110,111,116],{},[101,112,113],{},[37,114,115],{"href":44},"2. Agent Definitions",[101,117,118],{},"Peran, batasan akses, kebijakan retry tiap agent",[86,120,121,126],{},[101,122,123],{},[37,124,125],{"href":49},"3. Artifact Handoff",[101,127,128],{},"Hasil tiap fase, disimpan sebagai Markdown di repo",[86,130,131,136],{},[101,132,133],{},[37,134,135],{"href":56},"4. Quality Gates",[101,137,138],{},"Gate otomatis + gate manusia sebelum lanjut fase",[86,140,141,144],{},[101,142,143],{},"5. Orchestration",[101,145,146],{},"Menjalankan urutan di atas secara otomatis, self-hosted",[10,148,149],{},"Kelima layer ini yang membuat CAF berbeda dari sekadar \"menjalankan AI agent\" —\ngovernance-nya ada di setiap lapisan, bukan cuma di satu titik pemeriksaan akhir.",{"title":151,"searchDepth":152,"depth":152,"links":153},"",2,[154,155,156],{"id":21,"depth":152,"text":22},{"id":64,"depth":152,"text":65},{"id":77,"depth":152,"text":78},"Bagaimana CAF Orchestrator merangkai empat layer sebelumnya jadi satu pipeline yang jalan sendiri.","md",{},true,"\u002Fid\u002Fdocs\u002Fcore-concepts\u002Flayer-5",{"title":5,"description":157},"id\u002Fdocs\u002Fcore-concepts\u002Flayer-5","1eQ8rgzFS_4STevagex2vjwvx-5gpctW8IKFBnxzt48",1787621084112]