[{"data":1,"prerenderedAt":704},["ShallowReactive",2],{"navigation_docs":3,"-reference-configuration-library-and-chains":270,"-reference-configuration-library-and-chains-surround":699},[4,28,51,110,243],{"title":5,"path":6,"stem":7,"children":8},"Get started","\u002Fget-started","1.get-started",[9,12,16,20,24],{"title":10,"path":6,"stem":11},"Overview","1.get-started\u002Findex",{"title":13,"path":14,"stem":15},"Why Kraft","\u002Fget-started\u002Fwhy-kraft","1.get-started\u002F0.why-kraft",{"title":17,"path":18,"stem":19},"Install","\u002Fget-started\u002Finstall","1.get-started\u002F1.install",{"title":21,"path":22,"stem":23},"Your first work item","\u002Fget-started\u002Ffirst-work-item","1.get-started\u002F2.first-work-item",{"title":25,"path":26,"stem":27},"Troubleshooting and FAQ","\u002Fget-started\u002Ftroubleshooting","1.get-started\u002F3.troubleshooting",{"title":29,"path":30,"stem":31,"children":32},"Concepts","\u002Fconcepts","2.concepts",[33,35,39,43,47],{"title":10,"path":30,"stem":34},"2.concepts\u002Findex",{"title":36,"path":37,"stem":38},"Vocabulary","\u002Fconcepts\u002Fvocabulary","2.concepts\u002F1.vocabulary",{"title":40,"path":41,"stem":42},"How a work item runs","\u002Fconcepts\u002Fhow-a-work-item-runs","2.concepts\u002F2.how-a-work-item-runs",{"title":44,"path":45,"stem":46},"Caps and budgets","\u002Fconcepts\u002Fcaps-and-budgets","2.concepts\u002F3.caps-and-budgets",{"title":48,"path":49,"stem":50},"Why a permission gate","\u002Fconcepts\u002Fpermission-gate","2.concepts\u002F4.permission-gate",{"title":52,"path":53,"stem":54,"children":55},"Guides","\u002Fguides","3.guides",[56,58,62,66,70,74,78,82,86,90,94,98,102,106],{"title":10,"path":53,"stem":57},"3.guides\u002Findex",{"title":59,"path":60,"stem":61},"Use Kraft from your agent","\u002Fguides\u002Fagent-integration","3.guides\u002F01.agent-integration",{"title":63,"path":64,"stem":65},"Kraft Lite","\u002Fguides\u002Fkraft-lite","3.guides\u002F02.kraft-lite",{"title":67,"path":68,"stem":69},"Remote access","\u002Fguides\u002Fremote-access","3.guides\u002F03.remote-access",{"title":71,"path":72,"stem":73},"Add or override a harness","\u002Fguides\u002Fadding-a-harness","3.guides\u002F04.adding-a-harness",{"title":75,"path":76,"stem":77},"Schedule or webhook work","\u002Fguides\u002Fschedule-and-webhook-work","3.guides\u002F05.schedule-and-webhook-work",{"title":79,"path":80,"stem":81},"Add a security review or a gate reviewer","\u002Fguides\u002Fadd-review-agents","3.guides\u002F06.add-review-agents",{"title":83,"path":84,"stem":85},"Kraft for VS Code","\u002Fguides\u002Fvscode","3.guides\u002F07.vscode",{"title":87,"path":88,"stem":89},"Reviewing a change","\u002Fguides\u002Freview-a-change","3.guides\u002F08.review-a-change",{"title":91,"path":92,"stem":93},"Write your own chain","\u002Fguides\u002Fwrite-your-own-chain","3.guides\u002F09.write-your-own-chain",{"title":95,"path":96,"stem":97},"Switch a harness","\u002Fguides\u002Fswitch-harness","3.guides\u002F10.switch-harness",{"title":99,"path":100,"stem":101},"Upgrade your templates","\u002Fguides\u002Fupgrading-templates","3.guides\u002F11.upgrading-templates",{"title":103,"path":104,"stem":105},"Operations","\u002Fguides\u002Foperations","3.guides\u002F12.operations",{"title":107,"path":108,"stem":109},"Worker Kit","\u002Fguides\u002Fworker-kit","3.guides\u002F13.worker-kit",{"title":111,"path":112,"stem":113,"children":114},"Reference","\u002Freference","4.reference",[115,117,139,183,201,205,227,231,235,239],{"title":10,"path":112,"stem":116},"4.reference\u002Findex",{"title":118,"path":119,"stem":120,"children":121},"CLI","\u002Freference\u002Fcli","4.reference\u002F1.cli\u002Findex",[122,123,127,131,135],{"title":10,"path":119,"stem":120},{"title":124,"path":125,"stem":126},"Item verbs","\u002Freference\u002Fcli\u002Fitem","4.reference\u002F1.cli\u002F2.item",{"title":128,"path":129,"stem":130},"View verbs","\u002Freference\u002Fcli\u002Fview","4.reference\u002F1.cli\u002F3.view",{"title":132,"path":133,"stem":134},"Repo verbs","\u002Freference\u002Fcli\u002Frepo","4.reference\u002F1.cli\u002F4.repo",{"title":136,"path":137,"stem":138},"Admin verbs","\u002Freference\u002Fcli\u002Fadmin","4.reference\u002F1.cli\u002F5.admin",{"title":140,"path":141,"stem":142,"children":143},"Configuration","\u002Freference\u002Fconfiguration","4.reference\u002F2.configuration\u002Findex",[144,145,155,159,163,167,171,175,179],{"title":10,"path":141,"stem":142},{"title":146,"path":147,"stem":148,"children":149},"Repos","\u002Freference\u002Fconfiguration\u002Frepos","4.reference\u002F2.configuration\u002F2.repos\u002Findex",[150,151],{"title":10,"path":147,"stem":148},{"title":152,"path":153,"stem":154},"Workspaces","\u002Freference\u002Fconfiguration\u002Frepos\u002Fworkspaces","4.reference\u002F2.configuration\u002F2.repos\u002F3.workspaces",{"title":156,"path":157,"stem":158},"Policy","\u002Freference\u002Fconfiguration\u002Fpolicy","4.reference\u002F2.configuration\u002F3.policy",{"title":160,"path":161,"stem":162},"Library and chains","\u002Freference\u002Fconfiguration\u002Flibrary-and-chains","4.reference\u002F2.configuration\u002F4.library-and-chains",{"title":164,"path":165,"stem":166},"Harnesses file","\u002Freference\u002Fconfiguration\u002Fharnesses-file","4.reference\u002F2.configuration\u002F5.harnesses-file",{"title":168,"path":169,"stem":170},"Access","\u002Freference\u002Fconfiguration\u002Faccess","4.reference\u002F2.configuration\u002F6.access",{"title":172,"path":173,"stem":174},"Intake","\u002Freference\u002Fconfiguration\u002Fintake","4.reference\u002F2.configuration\u002F7.intake",{"title":176,"path":177,"stem":178},"Sandbox host","\u002Freference\u002Fconfiguration\u002Fsandbox","4.reference\u002F2.configuration\u002F8.sandbox",{"title":180,"path":181,"stem":182},"Environment variables","\u002Freference\u002Fconfiguration\u002Fenvironment-variables","4.reference\u002F2.configuration\u002F9.environment-variables",{"title":184,"path":185,"stem":186,"children":187},"Chain nodes","\u002Freference\u002Fchain-nodes","4.reference\u002F3.chain-nodes\u002Findex",[188,189,193,197],{"title":10,"path":185,"stem":186},{"title":190,"path":191,"stem":192},"Subprocess tasks","\u002Freference\u002Fchain-nodes\u002Fsubprocess-tasks","4.reference\u002F3.chain-nodes\u002F2.subprocess-tasks",{"title":194,"path":195,"stem":196},"Fix loop and judge","\u002Freference\u002Fchain-nodes\u002Ffix-loop","4.reference\u002F3.chain-nodes\u002F3.fix-loop",{"title":198,"path":199,"stem":200},"Result file","\u002Freference\u002Fchain-nodes\u002Fresult-file","4.reference\u002F3.chain-nodes\u002F4.result-file",{"title":202,"path":203,"stem":204},"Permission gate","\u002Freference\u002Fpermissions","4.reference\u002F4.permissions",{"title":206,"path":207,"stem":208,"children":209},"Agent harnesses","\u002Freference\u002Fharnesses","4.reference\u002F5.harnesses\u002Findex",[210,211,215,219,223],{"title":10,"path":207,"stem":208},{"title":212,"path":213,"stem":214},"Unattended runs","\u002Freference\u002Fharnesses\u002Funattended-runs","4.reference\u002F5.harnesses\u002F2.unattended-runs",{"title":216,"path":217,"stem":218},"Agent profiles","\u002Freference\u002Fharnesses\u002Fagent-profiles","4.reference\u002F5.harnesses\u002F3.agent-profiles",{"title":220,"path":221,"stem":222},"Harness files","\u002Freference\u002Fharnesses\u002Fharness-files","4.reference\u002F5.harnesses\u002F4.harness-files",{"title":224,"path":225,"stem":226},"Fallback and escalation","\u002Freference\u002Fharnesses\u002Ffallback-and-escalation","4.reference\u002F5.harnesses\u002F5.fallback-and-escalation",{"title":228,"path":229,"stem":230},"Inbound triggers","\u002Freference\u002Ftriggers","4.reference\u002F6.triggers",{"title":232,"path":233,"stem":234},"HTTP API","\u002Freference\u002Fhttp-api","4.reference\u002F7.http-api",{"title":236,"path":237,"stem":238},"MCP tools","\u002Freference\u002Fmcp-tools","4.reference\u002F8.mcp-tools",{"title":240,"path":241,"stem":242},"Events","\u002Freference\u002Fevents","4.reference\u002F9.events",{"title":244,"path":245,"stem":246,"children":247},"Project","\u002Fproject","5.project",[248,250,254,258,262,266],{"title":10,"path":245,"stem":249},"5.project\u002Findex",{"title":251,"path":252,"stem":253},"Architecture","\u002Fproject\u002Farchitecture","5.project\u002F1.architecture",{"title":255,"path":256,"stem":257},"Contributing","\u002Fproject\u002Fcontributing","5.project\u002F2.contributing",{"title":259,"path":260,"stem":261},"Security","\u002Fproject\u002Fsecurity","5.project\u002F3.security",{"title":263,"path":264,"stem":265},"Data and privacy","\u002Fproject\u002Fdata-and-privacy","5.project\u002F4.data-and-privacy",{"title":267,"path":268,"stem":269},"Status and support","\u002Fproject\u002Fstatus-and-support","5.project\u002F5.status-and-support",{"id":271,"title":160,"body":272,"description":692,"extension":693,"links":694,"meta":695,"navigation":696,"path":161,"seo":697,"stem":162,"__hash__":698},"docs\u002F4.reference\u002F2.configuration\u002F4.library-and-chains.md",{"type":273,"value":274,"toc":686},"minimark",[275,287,294,303,411,429,568,636,642,673,682],[276,277,278,282,283,286],"p",{},[279,280,281],"code",{},"library.yaml"," defines reusable components, and each ",[279,284,285],{},"chains\u002F*.yaml"," file composes them into a chain template.",[288,289,291,293],"h2",{"id":290},"libraryyaml-reusable-components",[279,292,281],{},": reusable components",[276,295,296,298,299,302],{},[279,297,281],{}," has four sections. Each maps a name to a definition, which any\nchain takes with ",[279,300,301],{},"extends: \u003Cname>",".",[304,305,306,319],"table",{},[307,308,309],"thead",{},[310,311,312,316],"tr",{},[313,314,315],"th",{},"Section",[313,317,318],{},"Holds",[320,321,322,346,366,386],"tbody",{},[310,323,324,330],{},[325,326,327],"td",{},[279,328,329],{},"tasks",[325,331,332,333,336,337,336,340,336,343,302],{},"Reusable tasks of any kind: ",[279,334,335],{},"agent",", ",[279,338,339],{},"subprocess",[279,341,342],{},"builtin",[279,344,345],{},"forge",[310,347,348,353],{},[325,349,350],{},[279,351,352],{},"steps",[325,354,355,356,359,360,365],{},"Reusable ordered groups of tasks. A step may set ",[279,357,358],{},"read_only: true"," (",[361,362,364],"a",{"href":363},"\u002Freference\u002Fchain-nodes#read_only","read_only",").",[310,367,368,373],{},[325,369,370],{},[279,371,372],{},"nodes",[325,374,375,376,336,379,382,383,302],{},"Reusable nodes, with their own steps, ",[279,377,378],{},"on_failure",[279,380,381],{},"fix_loop"," and ",[279,384,385],{},"escalation",[310,387,388,393],{},[325,389,390],{},[279,391,392],{},"steering",[325,394,395,396,399,400,403,404,407,408,302],{},"Named guidance, ",[279,397,398],{},"{instructions: \"...\"}",", that an agent task selects with ",[279,401,402],{},"steering: [name]"," and a repository selects with its ",[279,405,406],{},"repos.yaml"," ",[279,409,410],{},"steering:",[276,412,413,416,417,420,421,424,425,428],{},[279,414,415],{},"kraft admin templates library"," lists every component as ",[279,418,419],{},"\u003Csection>.\u003Cname>","\n(",[279,422,423],{},"tasks.implementer",") with the chains that use it. ",[279,426,427],{},"kraft admin templates library ID","\nshows one component with its definition and any lint issue that names it.\nSettings, Library shows the same and edits the file. Kraft refuses a save, with\nthe reason and nothing written, if it would stop any chain that resolves now.",[430,431,436],"pre",{"className":432,"code":433,"language":434,"meta":435,"style":435},"language-yaml shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","tasks:\n  implementer:\n    kind: agent\n    harness: claude\n    profile: strong\n    prompt: Implement the approved plan.\n  code_review:\n    kind: agent\n    harness: claude\n    prompt: Review this work item's change for defects its passing tests do not catch.\n    skill: kraft:code-review\n    inputs: [review_package]\n","yaml","",[279,437,438,450,458,471,482,493,504,512,521,530,540,551],{"__ignoreMap":435},[439,440,443,446],"span",{"class":441,"line":442},"line",1,[439,444,329],{"class":445},"swJcz",[439,447,449],{"class":448},"sMK4o",":\n",[439,451,453,456],{"class":441,"line":452},2,[439,454,455],{"class":445},"  implementer",[439,457,449],{"class":448},[439,459,461,464,467],{"class":441,"line":460},3,[439,462,463],{"class":445},"    kind",[439,465,466],{"class":448},":",[439,468,470],{"class":469},"sfazB"," agent\n",[439,472,474,477,479],{"class":441,"line":473},4,[439,475,476],{"class":445},"    harness",[439,478,466],{"class":448},[439,480,481],{"class":469}," claude\n",[439,483,485,488,490],{"class":441,"line":484},5,[439,486,487],{"class":445},"    profile",[439,489,466],{"class":448},[439,491,492],{"class":469}," strong\n",[439,494,496,499,501],{"class":441,"line":495},6,[439,497,498],{"class":445},"    prompt",[439,500,466],{"class":448},[439,502,503],{"class":469}," Implement the approved plan.\n",[439,505,507,510],{"class":441,"line":506},7,[439,508,509],{"class":445},"  code_review",[439,511,449],{"class":448},[439,513,515,517,519],{"class":441,"line":514},8,[439,516,463],{"class":445},[439,518,466],{"class":448},[439,520,470],{"class":469},[439,522,524,526,528],{"class":441,"line":523},9,[439,525,476],{"class":445},[439,527,466],{"class":448},[439,529,481],{"class":469},[439,531,533,535,537],{"class":441,"line":532},10,[439,534,498],{"class":445},[439,536,466],{"class":448},[439,538,539],{"class":469}," Review this work item's change for defects its passing tests do not catch.\n",[439,541,543,546,548],{"class":441,"line":542},11,[439,544,545],{"class":445},"    skill",[439,547,466],{"class":448},[439,549,550],{"class":469}," kraft:code-review\n",[439,552,554,557,559,562,565],{"class":441,"line":553},12,[439,555,556],{"class":445},"    inputs",[439,558,466],{"class":448},[439,560,561],{"class":448}," [",[439,563,564],{"class":469},"review_package",[439,566,567],{"class":448},"]\n",[276,569,570,571,573,574,336,577,336,580,336,583,336,585,336,588,336,591,336,594,336,597,336,600,336,603,336,606,336,608,382,611,614,615,336,618,621,622,382,625,628,629,632,633,302],{},"An ",[279,572,335],{}," task in the library takes ",[279,575,576],{},"harness",[279,578,579],{},"prompt",[279,581,582],{},"skill",[279,584,392],{},[279,586,587],{},"produces",[279,589,590],{},"profile",[279,592,593],{},"model",[279,595,596],{},"effort",[279,598,599],{},"fallback",[279,601,602],{},"inputs",[279,604,605],{},"scope",[279,607,378],{},[279,609,610],{},"policy",[279,612,613],{},"skippable",". The other kinds take ",[279,616,617],{},"command",[279,619,620],{},"ref"," or ",[279,623,624],{},"target",[279,626,627],{},"wait",". ",[361,630,184],{"href":631},"\u002Freference\u002Fchain-nodes#task-keys"," defines each key, and covers ",[279,634,635],{},"extends",[288,637,639,641],{"id":638},"chainsyaml-chain-templates",[279,640,285],{},": chain templates",[276,643,644,645,648,649,652,653,656,657,660,661,664,665,668,669,672],{},"Each file in ",[279,646,647],{},"chains\u002F"," is one selectable chain, named by its ",[279,650,651],{},"id"," (or the file\nname). The keys are in ",[361,654,184],{"href":655},"\u002Freference\u002Fchain-nodes#chain-keys",".\n",[361,658,29],{"href":659},"\u002Fconcepts\u002Fvocabulary#chain"," walks through the shipped ",[279,662,663],{},"default"," and\n",[279,666,667],{},"quick-task"," chains as worked examples. ",[279,670,671],{},"kraft admin templates show ID --resolved","\nprints a chain with its library components expanded, and Settings, Chains\nedits the file itself.",[276,674,675,677,678,681],{},[361,676,91],{"href":92}," walks through adding a\nnode, with a command task, a fix loop and a judge. Kraft never overwrites these\nfiles on upgrade; ",[361,679,680],{"href":100},"Upgrading your templates"," shows\nhow to take what a new release ships.",[683,684,685],"style",{},"html pre.shiki code .swJcz, html code.shiki .swJcz{--shiki-light:#E53935;--shiki-default:#F07178;--shiki-dark:#F07178}html pre.shiki code .sMK4o, html code.shiki .sMK4o{--shiki-light:#39ADB5;--shiki-default:#89DDFF;--shiki-dark:#89DDFF}html pre.shiki code .sfazB, html code.shiki .sfazB{--shiki-light:#91B859;--shiki-default:#C3E88D;--shiki-dark:#C3E88D}html .light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html.light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html .default .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html.dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}",{"title":435,"searchDepth":452,"depth":452,"links":687},[688,690],{"id":290,"depth":452,"text":689},"library.yaml: reusable components",{"id":638,"depth":452,"text":691},"chains\u002F*.yaml: chain templates","Every field in library.yaml and chains\u002F*.yaml: reusable components and chain templates.","md",null,{},true,{"title":160,"description":692},"9dGOx7vZ4kabeDlMTwkwwjduJuho-lhP1I32b4i8EIU",[700,702],{"title":156,"path":157,"stem":158,"description":701,"children":-1},"Every field in policy.yaml: caps, budget, archiving, defaults, maxima, and triggers.",{"title":164,"path":165,"stem":166,"description":703,"children":-1},"Every field in harnesses.yaml: harness profiles.",1790824543493]