[{"data":1,"prerenderedAt":194},["ShallowReactive",2],{"\u002Fid\u002Fdocs\u002Fcore-concepts\u002Flayer-3":3},{"id":4,"title":5,"body":6,"description":186,"extension":187,"meta":188,"navigation":189,"path":190,"seo":191,"stem":192,"__hash__":193},"docs\u002Fid\u002Fdocs\u002Fcore-concepts\u002Flayer-3.md","Layer 3: Artifact Handoff",{"type":7,"value":8,"toc":179},"minimark",[9,13,18,21,34,38,46,56,118,122,125,147,159,163],[10,11,12],"p",{},"Layer 3 adalah cara CAF memindahkan hasil kerja dari satu fase ke fase berikutnya —\nlewat file Markdown di repo, bukan lewat context percakapan yang hilang begitu sesi\nagent berakhir.",[14,15,17],"h2",{"id":16},"kenapa-markdown-bukan-context-chat","Kenapa Markdown, bukan context chat",[10,19,20],{},"Context chat itu sementara: begitu sesi agent selesai atau di-restart, semua nuansa\nkeputusan yang diambil ikut hilang. Artifact Markdown di repo:",[22,23,24,28,31],"ul",{},[25,26,27],"li",{},"Bertahan lintas sesi — agent fase berikutnya (bahkan dijalankan hari lain) tetap bisa\nmembaca keputusan fase sebelumnya",[25,29,30],{},"Bisa di-review manusia kapan saja, seperti membaca dokumen biasa",[25,32,33],{},"Ikut ter-version di git, jadi ada jejak audit lengkap per ticket",[14,35,37],{"id":36},"struktur-file-per-ticket","Struktur file per ticket",[10,39,40,41,45],{},"Setiap ticket punya foldernya sendiri di ",[42,43,44],"code",{},".ai\u002Ftasks\u002F\u003Cticket-id>\u002F",":",[47,48,53],"pre",{"className":49,"code":51,"language":52},[50],"language-text",".ai\u002Ftasks\u002F\u003Cticket-id>\u002F\n  plan.md\n  implementation-notes.md\n  verify-report.md\n","text",[42,54,51],{"__ignoreMap":55},"",[57,58,59,75],"table",{},[60,61,62],"thead",{},[63,64,65,69,72],"tr",{},[66,67,68],"th",{},"File",[66,70,71],{},"Ditulis oleh",[66,73,74],{},"Isinya",[76,77,78,92,105],"tbody",{},[63,79,80,86,89],{},[81,82,83],"td",{},[42,84,85],{},"plan.md",[81,87,88],{},"Planner",[81,90,91],{},"Rencana kerja, langkah yang akan diambil",[63,93,94,99,102],{},[81,95,96],{},[42,97,98],{},"implementation-notes.md",[81,100,101],{},"Implementer",[81,103,104],{},"Perubahan yang dibuat dan alasannya",[63,106,107,112,115],{},[81,108,109],{},[42,110,111],{},"verify-report.md",[81,113,114],{},"Verifier",[81,116,117],{},"Hasil lint, test, dan temuan review otomatis",[14,119,121],{"id":120},"alur-baca-tulis-antar-fase","Alur baca-tulis antar fase",[10,123,124],{},"Setiap fase mengikuti pola yang sama:",[126,127,128,141,144],"ol",{},[25,129,130,131,136,137],{},"Baca artifact dari fase sebelumnya (kalau ada) + konteks dari\n",[132,133,135],"a",{"href":134},"\u002Fid\u002Fdocs\u002Fcore-concepts\u002Flayer-1","Layer 1"," + definisi perannya sendiri dari\n",[132,138,140],{"href":139},"\u002Fid\u002Fdocs\u002Fcore-concepts\u002Flayer-2","Layer 2",[25,142,143],{},"Kerjakan tugas sesuai scope fase",[25,145,146],{},"Tulis hasilnya sebagai artifact baru sebelum fase selesai",[10,148,149,150,154,155,158],{},"Reviewer (manusia) membaca seluruh rangkaian artifact ini — bukan cuma diff kode — untuk\nmemahami ",[151,152,153],"em",{},"kenapa"," sebuah keputusan diambil, bukan cuma ",[151,156,157],{},"apa"," yang berubah.",[14,160,162],{"id":161},"hubungan-dengan-layer-lain","Hubungan dengan layer lain",[10,164,165,166,170,171,173,174,178],{},"Format artifact ditentukan oleh ",[167,168,169],"strong",{},"Layer 2: Agent Definitions",". ",[42,172,111],{}," yang\ndihasilkan di layer ini menjadi input untuk\n",[132,175,177],{"href":176},"\u002Fid\u002Fdocs\u002Fcore-concepts\u002Flayer-4","Layer 4: Quality Gates",".",{"title":55,"searchDepth":180,"depth":180,"links":181},2,[182,183,184,185],{"id":16,"depth":180,"text":17},{"id":36,"depth":180,"text":37},{"id":120,"depth":180,"text":121},{"id":161,"depth":180,"text":162},"Kenapa CAF menyimpan hasil tiap fase sebagai file Markdown di repo, bukan di context chat.","md",{},true,"\u002Fid\u002Fdocs\u002Fcore-concepts\u002Flayer-3",{"title":5,"description":186},"id\u002Fdocs\u002Fcore-concepts\u002Flayer-3","lJSYUDo_ueXgnS_qGc0lndVWrTOkNW0ZpG9lZ0aZdsg",1787621084012]