[{"data":1,"prerenderedAt":171},["ShallowReactive",2],{"\u002Fid\u002Fdocs\u002Fintegrations\u002Flinear":3},{"id":4,"title":5,"body":6,"description":163,"extension":164,"meta":165,"navigation":166,"path":167,"seo":168,"stem":169,"__hash__":170},"docs\u002Fid\u002Fdocs\u002Fintegrations\u002Flinear.md","Linear",{"type":7,"value":8,"toc":155},"minimark",[9,19,24,41,45,52,83,87,90,142,145,149],[10,11,12,13,18],"p",{},"CAF Orchestrator memantau perubahan status ticket di Linear lewat webhook, lalu\nmengantrikan fase yang sesuai. Halaman ini melengkapi setup dasar di\n",[14,15,17],"a",{"href":16},"\u002Fid\u002Fdocs\u002Fcaf-orchestrator","CAF Orchestrator"," dengan langkah spesifik untuk Linear.",[20,21,23],"h2",{"id":22},"_1-buat-api-key","1. Buat API key",[10,25,26,27,31,32,36,37,40],{},"Di Linear, buka ",[28,29,30],"strong",{},"Settings → API → Personal API keys",", buat key baru dengan akses baca\nke workspace kamu. Isi ke ",[33,34,35],"code",{},".env"," orchestrator sebagai ",[33,38,39],{},"LINEAR_API_KEY",".",[20,42,44],{"id":43},"_2-daftarkan-webhook","2. Daftarkan webhook",[10,46,47,48,51],{},"Di ",[28,49,50],{},"Settings → API → Webhooks",", tambahkan webhook baru:",[53,54,55,62,73],"ul",{},[56,57,58,59],"li",{},"URL: ",[33,60,61],{},"https:\u002F\u002F\u003Chost-vps-kamu>\u002Fwebhooks\u002Flinear",[56,63,64,65,68,69,72],{},"Event: ",[33,66,67],{},"Issue"," — khususnya perubahan status (",[33,70,71],{},"state changed",")",[56,74,75,76,79,80,82],{},"Secret: samakan dengan ",[33,77,78],{},"WEBHOOK_SECRET"," di ",[33,81,35],{}," orchestrator",[20,84,86],{"id":85},"_3-sepakati-mapping-status","3. Sepakati mapping status",[10,88,89],{},"Orchestrator trigger fase berdasarkan status ticket. Konvensi yang disarankan:",[91,92,93,106],"table",{},[94,95,96],"thead",{},[97,98,99,103],"tr",{},[100,101,102],"th",{},"Status Linear",[100,104,105],{},"Fase yang di-trigger",[107,108,109,118,126,134],"tbody",{},[97,110,111,115],{},[112,113,114],"td",{},"Ready for Plan",[112,116,117],{},"Plan",[97,119,120,123],{},[112,121,122],{},"Ready for Implement",[112,124,125],{},"Implement",[97,127,128,131],{},[112,129,130],{},"Ready for Verify",[112,132,133],{},"Verify",[97,135,136,139],{},[112,137,138],{},"In Review",[112,140,141],{},"Menunggu human review (tidak ada trigger otomatis)",[10,143,144],{},"Nama status ini cuma konvensi, bukan hardcoded — sesuaikan dengan workflow tim kamu di\nkonfigurasi orchestrator.",[20,146,148],{"id":147},"yang-terjadi-setelah-webhook-diterima","Yang terjadi setelah webhook diterima",[10,150,151,152,154],{},"Alurnya sama seperti dijelaskan di ",[14,153,17],{"href":16},": payload\ndiverifikasi, job masuk antrian BullMQ, lalu agent Claude Code headless untuk fase itu\ndijalankan.",{"title":156,"searchDepth":157,"depth":157,"links":158},"",2,[159,160,161,162],{"id":22,"depth":157,"text":23},{"id":43,"depth":157,"text":44},{"id":85,"depth":157,"text":86},{"id":147,"depth":157,"text":148},"Hubungkan CAF Orchestrator ke Linear supaya pipeline trigger otomatis dari status ticket.","md",{},true,"\u002Fid\u002Fdocs\u002Fintegrations\u002Flinear",{"title":5,"description":163},"id\u002Fdocs\u002Fintegrations\u002Flinear","icbQyUFA6yqj9LFSrbbm4j8HyqUX-QB-XnmEpVHBCLA",1787621084166]