[{"data":1,"prerenderedAt":194},["ShallowReactive",2],{"\u002Fdocs\u002Fcore-concepts\u002Flayer-2":3},{"id":4,"title":5,"body":6,"description":186,"extension":187,"meta":188,"navigation":189,"path":190,"seo":191,"stem":192,"__hash__":193},"docs\u002Fdocs\u002Fcore-concepts\u002Flayer-2.md","Layer 2: Agent Definitions",{"type":7,"value":8,"toc":178},"minimark",[9,28,33,107,117,121,154,158,164,168],[10,11,12,13,17,18,21,22,27],"p",{},"Layer 2 defines who does what. Every role in the PIV cycle has its own definition\nfile in ",[14,15,16],"code",{},".claude\u002Fagents\u002F"," — generated by ",[14,19,20],{},"caf-initiator init",", already informed by\ncontext from ",[23,24,26],"a",{"href":25},"\u002Fdocs\u002Fcore-concepts\u002Flayer-1","Layer 1: Project Knowledge Base",".",[29,30,32],"h2",{"id":31},"the-four-roles","The four roles",[34,35,36,52],"table",{},[37,38,39],"thead",{},[40,41,42,46,49],"tr",{},[43,44,45],"th",{},"File",[43,47,48],{},"Role",[43,50,51],{},"Access",[53,54,55,69,82,95],"tbody",{},[40,56,57,63,66],{},[58,59,60],"td",{},[14,61,62],{},"planner.md",[58,64,65],{},"Drafts a work plan from the ticket",[58,67,68],{},"Read-only to code",[40,70,71,76,79],{},[58,72,73],{},[14,74,75],{},"implementer.md",[58,77,78],{},"Writes code per the approved plan",[58,80,81],{},"Read-write",[40,83,84,89,92],{},[58,85,86],{},[14,87,88],{},"verifier.md",[58,90,91],{},"Scanner — lint, tests, automated review",[58,93,94],{},"Read-only",[40,96,97,102,105],{},[58,98,99],{},[14,100,101],{},"reviewer.md",[58,103,104],{},"Prepares a diff summary & checklist for human review",[58,106,94],{},[10,108,109,111,112,116],{},[14,110,101],{}," does ",[113,114,115],"strong",{},"not"," replace a human. Its instructions produce a summary that\nmakes it easier for a human to decide approve\u002Freject — the final decision always\nstays with a human, per the mandatory checkpoint at every phase.",[29,118,120],{"id":119},"whats-inside-a-definition-file","What's inside a definition file",[122,123,124,131,137,143],"ul",{},[125,126,127,130],"li",{},[113,128,129],{},"Role scope"," — the boundaries of that role's responsibility, nothing more",[125,132,133,136],{},[113,134,135],{},"Access boundaries"," — which tools are allowed, especially the read-only vs.\nread-write status",[125,138,139,142],{},[113,140,141],{},"Retry policy"," — a maximum of 3 attempts before escalating to a human",[125,144,145,148,149,153],{},[113,146,147],{},"Output format"," — the artifact structure that must be produced at the end of the\nphase (see ",[23,150,152],{"href":151},"\u002Fdocs\u002Fcore-concepts\u002Flayer-3","Layer 3: Artifact Handoff",")",[29,155,157],{"id":156},"customization","Customization",[10,159,160,161,163],{},"These files aren't locked-down configuration. You can edit them directly to fit your\nteam's workflow — for example, adding a rule to ",[14,162,75],{}," like \"always write a\ntest for every new function.\"",[29,165,167],{"id":166},"relationship-to-other-layers","Relationship to other layers",[10,169,170,171,174,175,177],{},"Layer 2 consumes context from ",[113,172,173],{},"Layer 1"," and determines the artifact format that\ngets written to ",[23,176,152],{"href":151}," at the end\nof every phase.",{"title":179,"searchDepth":180,"depth":180,"links":181},"",2,[182,183,184,185],{"id":31,"depth":180,"text":32},{"id":119,"depth":180,"text":120},{"id":156,"depth":180,"text":157},{"id":166,"depth":180,"text":167},"Roles, access boundaries, and retry policy for every agent in CAF.","md",{},true,"\u002Fdocs\u002Fcore-concepts\u002Flayer-2",{"title":5,"description":186},"docs\u002Fcore-concepts\u002Flayer-2","odXKUIpdUY5xKnm8tzPsMktriHW8Zxec-JzdMXVzFbY",1787621083739]