[{"data":1,"prerenderedAt":166},["ShallowReactive",2],{"\u002Fdocs\u002Fcore-concepts\u002Flayer-5":3},{"id":4,"title":5,"body":6,"description":158,"extension":159,"meta":160,"navigation":161,"path":162,"seo":163,"stem":164,"__hash__":165},"docs\u002Fdocs\u002Fcore-concepts\u002Flayer-5.md","Layer 5: Orchestration",{"type":7,"value":8,"toc":151},"minimark",[9,18,23,59,62,66,69,76,80,148],[10,11,12,13,17],"p",{},"Layer 5 is the layer that runs everything — stringing Layers 1 through 4 into a\nsingle pipeline that moves automatically from a ticket status change all the way to a\nPR ready for review. This is what ",[14,15,16],"strong",{},"CAF Orchestrator"," does.",[19,20,22],"h2",{"id":21},"what-orchestration-does","What orchestration does",[24,25,26,30,33,51],"ol",{},[27,28,29],"li",{},"Receives a webhook when a ticket's status changes in Linear or Jira",[27,31,32],{},"Queues a job for the matching phase via BullMQ + Redis",[27,34,35,36,41,42,46,47],{},"Spawns a headless Claude Code agent for that phase — the agent reads\n",[37,38,40],"a",{"href":39},"\u002Fdocs\u002Fcore-concepts\u002Flayer-1","Layer 1"," and ",[37,43,45],{"href":44},"\u002Fdocs\u002Fcore-concepts\u002Flayer-2","Layer 2",",\nthen writes its output to ",[37,48,50],{"href":49},"\u002Fdocs\u002Fcore-concepts\u002Flayer-3","Layer 3",[27,52,53,54,58],{},"Waits for the result of ",[37,55,57],{"href":56},"\u002Fdocs\u002Fcore-concepts\u002Flayer-4","Layer 4: Quality Gates","\nbefore deciding whether to move on to the next phase or stop and wait for a human",[10,60,61],{},"The Orchestrator never skips this order. If a gate fails or is waiting on approval,\nthe pipeline stops right there — there's no shortcut to the next phase.",[19,63,65],{"id":64},"why-self-hosted","Why self-hosted",[10,67,68],{},"The Orchestrator runs on your own VPS, not as a service managed by Coderium. The\nconsequence: your project's code and artifacts never leave infrastructure you\ncontrol. This isn't a minor implementation detail — it's part of CAF's privacy\nguarantee.",[10,70,71,72,75],{},"Installation details, webhook configuration, and environment variables are covered\non the ",[37,73,16],{"href":74},"\u002Fdocs\u002Fcaf-orchestrator"," page.",[19,77,79],{"id":78},"five-layers-one-pipeline","Five layers, one pipeline",[81,82,83,96],"table",{},[84,85,86],"thead",{},[87,88,89,93],"tr",{},[90,91,92],"th",{},"Layer",[90,94,95],{},"Role",[97,98,99,110,120,130,140],"tbody",{},[87,100,101,107],{},[102,103,104],"td",{},[37,105,106],{"href":39},"1. Project Knowledge Base",[102,108,109],{},"Project context every agent reads",[87,111,112,117],{},[102,113,114],{},[37,115,116],{"href":44},"2. Agent Definitions",[102,118,119],{},"Roles, access boundaries, retry policy for each agent",[87,121,122,127],{},[102,123,124],{},[37,125,126],{"href":49},"3. Artifact Handoff",[102,128,129],{},"Each phase's output, stored as Markdown in the repo",[87,131,132,137],{},[102,133,134],{},[37,135,136],{"href":56},"4. Quality Gates",[102,138,139],{},"Automated gate + human gate before advancing",[87,141,142,145],{},[102,143,144],{},"5. Orchestration",[102,146,147],{},"Runs the above automatically, self-hosted",[10,149,150],{},"These five layers are what make CAF more than \"just running an AI agent\" — governance\nlives in every layer, not just at one final checkpoint.",{"title":152,"searchDepth":153,"depth":153,"links":154},"",2,[155,156,157],{"id":21,"depth":153,"text":22},{"id":64,"depth":153,"text":65},{"id":78,"depth":153,"text":79},"How CAF Orchestrator strings the previous four layers into one self-running pipeline.","md",{},true,"\u002Fdocs\u002Fcore-concepts\u002Flayer-5",{"title":5,"description":158},"docs\u002Fcore-concepts\u002Flayer-5","bOMGdlyJmCv9XehzGIcyfV6mWWJJ5NZZVIKkgPRfVXQ",1787621083817]