[{"data":1,"prerenderedAt":2026},["ShallowReactive",2],{"navigation_docs":3,"-concepts-vocabulary":520,"-concepts-vocabulary-surround":2021},[4,28,51,191,222,485],{"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},"FAQ","\u002Fget-started\u002Ffaq","1.get-started\u002F3.faq",{"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},"How a work item runs","\u002Fconcepts\u002Fhow-a-work-item-runs","2.concepts\u002F1.how-a-work-item-runs",{"title":40,"path":41,"stem":42},"Caps and budgets","\u002Fconcepts\u002Fcaps-and-budgets","2.concepts\u002F2.caps-and-budgets",{"title":44,"path":45,"stem":46},"Why a permission gate","\u002Fconcepts\u002Fpermission-gate","2.concepts\u002F3.permission-gate",{"title":48,"path":49,"stem":50},"Vocabulary","\u002Fconcepts\u002Fvocabulary","2.concepts\u002F4.vocabulary",{"title":52,"path":53,"stem":54,"children":55},"Guides","\u002Fguides","3.guides",[56,58,96,117,138,187],{"title":10,"path":53,"stem":57},"3.guides\u002Findex",{"title":59,"path":60,"stem":61,"children":62,"page":95},"Day to day","\u002Fguides\u002Fday-to-day","3.guides\u002F1.day-to-day",[63,67,71,75,79,83,87,91],{"title":64,"path":65,"stem":66},"The setup wizard on first start","\u002Fguides\u002Fday-to-day\u002Ffirst-run","3.guides\u002F1.day-to-day\u002F2.first-run",{"title":68,"path":69,"stem":70},"File a work item","\u002Fguides\u002Fday-to-day\u002Ffile-a-work-item","3.guides\u002F1.day-to-day\u002F3.file-a-work-item",{"title":72,"path":73,"stem":74},"Use Kraft from your agent","\u002Fguides\u002Fday-to-day\u002Fagent-integration","3.guides\u002F1.day-to-day\u002F4.agent-integration",{"title":76,"path":77,"stem":78},"Reviewing a change","\u002Fguides\u002Fday-to-day\u002Freview-a-change","3.guides\u002F1.day-to-day\u002F5.review-a-change",{"title":80,"path":81,"stem":82},"Raise a cap on a stopped item","\u002Fguides\u002Fday-to-day\u002Fraise-a-cap","3.guides\u002F1.day-to-day\u002F6.raise-a-cap",{"title":84,"path":85,"stem":86},"Kraft for VS Code","\u002Fguides\u002Fday-to-day\u002Fvscode","3.guides\u002F1.day-to-day\u002F7.vscode",{"title":88,"path":89,"stem":90},"Kraft on a phone","\u002Fguides\u002Fday-to-day\u002Fkraft-on-a-phone","3.guides\u002F1.day-to-day\u002F8.kraft-on-a-phone",{"title":92,"path":93,"stem":94},"Get notified when an item needs you","\u002Fguides\u002Fday-to-day\u002Fnotifications","3.guides\u002F1.day-to-day\u002F9.notifications",false,{"title":97,"path":98,"stem":99,"children":100,"page":95},"Customize and automate","\u002Fguides\u002Fcustomize","3.guides\u002F2.customize",[101,105,109,113],{"title":102,"path":103,"stem":104},"Write your own chain","\u002Fguides\u002Fcustomize\u002Fwrite-your-own-chain","3.guides\u002F2.customize\u002F1.write-your-own-chain",{"title":106,"path":107,"stem":108},"Add a security review or a gate reviewer","\u002Fguides\u002Fcustomize\u002Fadd-review-agents","3.guides\u002F2.customize\u002F2.add-review-agents",{"title":110,"path":111,"stem":112},"Schedule or webhook work","\u002Fguides\u002Fcustomize\u002Fschedule-and-webhook-work","3.guides\u002F2.customize\u002F3.schedule-and-webhook-work",{"title":114,"path":115,"stem":116},"Share chains with add-ons","\u002Fguides\u002Fcustomize\u002Fshare-chains-with-addons","3.guides\u002F2.customize\u002F4.share-chains-with-addons",{"title":118,"path":119,"stem":120,"children":121,"page":95},"Agents and harnesses","\u002Fguides\u002Fharnesses","3.guides\u002F3.harnesses",[122,126,130,134],{"title":123,"path":124,"stem":125},"Switch a task to another harness","\u002Fguides\u002Fharnesses\u002Fswitch-harness","3.guides\u002F3.harnesses\u002F1.switch-harness",{"title":127,"path":128,"stem":129},"Add or override a harness","\u002Fguides\u002Fharnesses\u002Fadding-a-harness","3.guides\u002F3.harnesses\u002F2.adding-a-harness",{"title":131,"path":132,"stem":133},"Build a worker Kit","\u002Fguides\u002Fharnesses\u002Fworker-kit","3.guides\u002F3.harnesses\u002F3.worker-kit",{"title":135,"path":136,"stem":137},"Give a worker its login","\u002Fguides\u002Fharnesses\u002Fgive-a-worker-its-login","3.guides\u002F3.harnesses\u002F4.give-a-worker-its-login",{"title":139,"path":140,"stem":141,"children":142,"page":95},"Run the server","\u002Fguides\u002Frun","3.guides\u002F4.run",[143,147,151,155,159,163,167,171,175,179,183],{"title":144,"path":145,"stem":146},"Remote access","\u002Fguides\u002Frun\u002Fremote-access","3.guides\u002F4.run\u002F01.remote-access",{"title":148,"path":149,"stem":150},"Put a proxy in front of Kraft","\u002Fguides\u002Frun\u002Fput-a-proxy-in-front-of-kraft","3.guides\u002F4.run\u002F02.put-a-proxy-in-front-of-kraft",{"title":152,"path":153,"stem":154},"Restart Kraft without ending running agents","\u002Fguides\u002Frun\u002Frestart-kraft","3.guides\u002F4.run\u002F03.restart-kraft",{"title":156,"path":157,"stem":158},"Back up and restore the database","\u002Fguides\u002Frun\u002Fback-up-and-restore","3.guides\u002F4.run\u002F04.back-up-and-restore",{"title":160,"path":161,"stem":162},"Logs and disk space","\u002Fguides\u002Frun\u002Flogs-and-disk-space","3.guides\u002F4.run\u002F05.logs-and-disk-space",{"title":164,"path":165,"stem":166},"Run Kraft as a service","\u002Fguides\u002Frun\u002Frun-as-a-service","3.guides\u002F4.run\u002F06.run-as-a-service",{"title":168,"path":169,"stem":170},"Upgrade Kraft","\u002Fguides\u002Frun\u002Fupgrade-kraft","3.guides\u002F4.run\u002F07.upgrade-kraft",{"title":172,"path":173,"stem":174},"Upgrade your configuration","\u002Fguides\u002Frun\u002Fupgrade-your-configuration","3.guides\u002F4.run\u002F08.upgrade-your-configuration",{"title":176,"path":177,"stem":178},"Upgrade from 1.4","\u002Fguides\u002Frun\u002Fupgrade-from-1-4","3.guides\u002F4.run\u002F09.upgrade-from-1-4",{"title":180,"path":181,"stem":182},"Upgrade from 0.x or a release candidate","\u002Fguides\u002Frun\u002Fupgrade-from-0-x-or-a-release-candidate","3.guides\u002F4.run\u002F10.upgrade-from-0-x-or-a-release-candidate",{"title":184,"path":185,"stem":186},"Roll back to 1.4","\u002Fguides\u002Frun\u002Froll-back","3.guides\u002F4.run\u002F11.roll-back",{"title":188,"path":189,"stem":190},"Kraft Lite","\u002Fguides\u002Fkraft-lite","3.guides\u002F5.kraft-lite",{"title":192,"path":193,"stem":194,"children":195},"Troubleshooting","\u002Ftroubleshooting","4.troubleshooting",[196,198,202,206,210,214,218],{"title":10,"path":193,"stem":197},"4.troubleshooting\u002Findex",{"title":199,"path":200,"stem":201},"Why did my item stop?","\u002Ftroubleshooting\u002Fwhy-did-my-item-stop","4.troubleshooting\u002F1.why-did-my-item-stop",{"title":203,"path":204,"stem":205},"Stop reasons in detail","\u002Ftroubleshooting\u002Fstop-reasons-in-detail","4.troubleshooting\u002F2.stop-reasons-in-detail",{"title":207,"path":208,"stem":209},"Starting and reaching Kraft","\u002Ftroubleshooting\u002Fstarting-and-reaching-kraft","4.troubleshooting\u002F3.starting-and-reaching-kraft",{"title":211,"path":212,"stem":213},"Doctor failures","\u002Ftroubleshooting\u002Fdoctor-failures","4.troubleshooting\u002F4.doctor-failures",{"title":215,"path":216,"stem":217},"Sandbox and Kit stops","\u002Ftroubleshooting\u002Fsandbox-and-kit-stops","4.troubleshooting\u002F5.sandbox-and-kit-stops",{"title":219,"path":220,"stem":221},"Add-on problems","\u002Ftroubleshooting\u002Faddon-problems","4.troubleshooting\u002F6.addon-problems",{"title":223,"path":224,"stem":225,"children":226},"Reference","\u002Freference","5.reference",[227,229,267,289,293,391,409,435,439,443,477,481],{"title":10,"path":224,"stem":228},"5.reference\u002Findex",{"title":230,"path":231,"stem":232,"children":233},"Web UI","\u002Freference\u002Fweb-ui","5.reference\u002F00.web-ui\u002Findex",[234,235,239,243,247,251,255,259,263],{"title":10,"path":231,"stem":232},{"title":236,"path":237,"stem":238},"Sidebar, search, and keyboard","\u002Freference\u002Fweb-ui\u002Fsidebar-search-and-keyboard","5.reference\u002F00.web-ui\u002F0.sidebar-search-and-keyboard",{"title":240,"path":241,"stem":242},"The board","\u002Freference\u002Fweb-ui\u002Fboard","5.reference\u002F00.web-ui\u002F1.board",{"title":244,"path":245,"stem":246},"An item's page","\u002Freference\u002Fweb-ui\u002Fitem-page","5.reference\u002F00.web-ui\u002F2.item-page",{"title":248,"path":249,"stem":250},"Fix loops and test scopes","\u002Freference\u002Fweb-ui\u002Ffix-loops-and-test-scopes","5.reference\u002F00.web-ui\u002F3.fix-loops-and-test-scopes",{"title":252,"path":253,"stem":254},"Config before an item starts","\u002Freference\u002Fweb-ui\u002Fconfig-before-start","5.reference\u002F00.web-ui\u002F4.config-before-start",{"title":256,"path":257,"stem":258},"The review page","\u002Freference\u002Fweb-ui\u002Freview-page","5.reference\u002F00.web-ui\u002F5.review-page",{"title":260,"path":261,"stem":262},"Templates and Settings","\u002Freference\u002Fweb-ui\u002Ftemplates-and-settings","5.reference\u002F00.web-ui\u002F6.templates-and-settings",{"title":264,"path":265,"stem":266},"Analytics","\u002Freference\u002Fweb-ui\u002Fanalytics","5.reference\u002F00.web-ui\u002F7.analytics",{"title":268,"path":269,"stem":270,"children":271},"CLI","\u002Freference\u002Fcli","5.reference\u002F01.cli\u002Findex",[272,273,277,281,285],{"title":10,"path":269,"stem":270},{"title":274,"path":275,"stem":276},"Item verbs","\u002Freference\u002Fcli\u002Fitem","5.reference\u002F01.cli\u002F2.item",{"title":278,"path":279,"stem":280},"View verbs","\u002Freference\u002Fcli\u002Fview","5.reference\u002F01.cli\u002F3.view",{"title":282,"path":283,"stem":284},"Repo verbs","\u002Freference\u002Fcli\u002Frepo","5.reference\u002F01.cli\u002F4.repo",{"title":286,"path":287,"stem":288},"Admin verbs","\u002Freference\u002Fcli\u002Fadmin","5.reference\u002F01.cli\u002F5.admin",{"title":290,"path":291,"stem":292},"Work item statuses","\u002Freference\u002Fstatuses","5.reference\u002F02.statuses",{"title":294,"path":295,"stem":296,"children":297},"Configuration","\u002Freference\u002Fconfiguration","5.reference\u002F03.configuration\u002Findex",[298,299,317,321,325,329,333,337,341,345,379,383,387],{"title":10,"path":295,"stem":296},{"title":300,"path":301,"stem":302,"children":303},"repos.yaml","\u002Freference\u002Fconfiguration\u002Frepos","5.reference\u002F03.configuration\u002F02.repos\u002Findex",[304,305,309,313],{"title":10,"path":301,"stem":302},{"title":306,"path":307,"stem":308},"How connect proposes commands","\u002Freference\u002Fconfiguration\u002Frepos\u002Fconnect-proposals","5.reference\u002F03.configuration\u002F02.repos\u002F1.connect-proposals",{"title":310,"path":311,"stem":312},"detectors.yaml","\u002Freference\u002Fconfiguration\u002Frepos\u002Fdetectors","5.reference\u002F03.configuration\u002F02.repos\u002F2.detectors",{"title":314,"path":315,"stem":316},"Workspaces","\u002Freference\u002Fconfiguration\u002Frepos\u002Fworkspaces","5.reference\u002F03.configuration\u002F02.repos\u002F3.workspaces",{"title":318,"path":319,"stem":320},"policy.yaml","\u002Freference\u002Fconfiguration\u002Fpolicy","5.reference\u002F03.configuration\u002F03.policy",{"title":322,"path":323,"stem":324},"Library and chains","\u002Freference\u002Fconfiguration\u002Flibrary-and-chains","5.reference\u002F03.configuration\u002F04.library-and-chains",{"title":326,"path":327,"stem":328},"harnesses.yaml","\u002Freference\u002Fconfiguration\u002Fharnesses-file","5.reference\u002F03.configuration\u002F05.harnesses-file",{"title":330,"path":331,"stem":332},"access.yaml","\u002Freference\u002Fconfiguration\u002Faccess","5.reference\u002F03.configuration\u002F06.access",{"title":334,"path":335,"stem":336},"intake.yaml","\u002Freference\u002Fconfiguration\u002Fintake","5.reference\u002F03.configuration\u002F07.intake",{"title":338,"path":339,"stem":340},"notify.yaml","\u002Freference\u002Fconfiguration\u002Fnotify","5.reference\u002F03.configuration\u002F08.notify",{"title":342,"path":343,"stem":344},"theme.yaml","\u002Freference\u002Fconfiguration\u002Ftheme","5.reference\u002F03.configuration\u002F09.theme",{"title":346,"path":347,"stem":348,"children":349},"Sandboxed workers","\u002Freference\u002Fconfiguration\u002Fsandbox","5.reference\u002F03.configuration\u002F10.sandbox\u002Findex",[350,351,355,359,363,367,371,375],{"title":10,"path":347,"stem":348},{"title":352,"path":353,"stem":354},"Resource limits","\u002Freference\u002Fconfiguration\u002Fsandbox\u002Fresource-limits","5.reference\u002F03.configuration\u002F10.sandbox\u002F1.resource-limits",{"title":356,"path":357,"stem":358},"Callbacks from a sandbox","\u002Freference\u002Fconfiguration\u002Fsandbox\u002Fcallbacks","5.reference\u002F03.configuration\u002F10.sandbox\u002F2.callbacks",{"title":360,"path":361,"stem":362},"Network policy","\u002Freference\u002Fconfiguration\u002Fsandbox\u002Fnetwork-policy","5.reference\u002F03.configuration\u002F10.sandbox\u002F3.network-policy",{"title":364,"path":365,"stem":366},"Credentials","\u002Freference\u002Fconfiguration\u002Fsandbox\u002Fcredentials","5.reference\u002F03.configuration\u002F10.sandbox\u002F4.credentials",{"title":368,"path":369,"stem":370},"Kits","\u002Freference\u002Fconfiguration\u002Fsandbox\u002Fkits","5.reference\u002F03.configuration\u002F10.sandbox\u002F5.kits",{"title":372,"path":373,"stem":374},"sandbox.yaml","\u002Freference\u002Fconfiguration\u002Fsandbox\u002Fsandbox-yaml","5.reference\u002F03.configuration\u002F10.sandbox\u002F6.sandbox-yaml",{"title":376,"path":377,"stem":378},"Git in a sandbox","\u002Freference\u002Fconfiguration\u002Fsandbox\u002Fgit-in-a-sandbox","5.reference\u002F03.configuration\u002F10.sandbox\u002F7.git-in-a-sandbox",{"title":380,"path":381,"stem":382},"Environment variables","\u002Freference\u002Fconfiguration\u002Fenvironment-variables","5.reference\u002F03.configuration\u002F11.environment-variables",{"title":384,"path":385,"stem":386},"Add-ons and collections","\u002Freference\u002Fconfiguration\u002Faddons","5.reference\u002F03.configuration\u002F12.addons",{"title":388,"path":389,"stem":390},"Repo libraries","\u002Freference\u002Fconfiguration\u002Frepo-libraries","5.reference\u002F03.configuration\u002F13.repo-libraries",{"title":392,"path":393,"stem":394,"children":395},"Chain file keys","\u002Freference\u002Fchain-nodes","5.reference\u002F04.chain-nodes\u002Findex",[396,397,401,405],{"title":10,"path":393,"stem":394},{"title":398,"path":399,"stem":400},"Subprocess tasks","\u002Freference\u002Fchain-nodes\u002Fsubprocess-tasks","5.reference\u002F04.chain-nodes\u002F2.subprocess-tasks",{"title":402,"path":403,"stem":404},"Fix loop and judge","\u002Freference\u002Fchain-nodes\u002Ffix-loop","5.reference\u002F04.chain-nodes\u002F3.fix-loop",{"title":406,"path":407,"stem":408},"Result file","\u002Freference\u002Fchain-nodes\u002Fresult-file","5.reference\u002F04.chain-nodes\u002F4.result-file",{"title":410,"path":411,"stem":412,"children":413},"Agent harnesses","\u002Freference\u002Fharnesses","5.reference\u002F05.harnesses\u002Findex",[414,415,419,423,427,431],{"title":10,"path":411,"stem":412},{"title":416,"path":417,"stem":418},"Unattended runs","\u002Freference\u002Fharnesses\u002Funattended-runs","5.reference\u002F05.harnesses\u002F2.unattended-runs",{"title":420,"path":421,"stem":422},"Agent profiles","\u002Freference\u002Fharnesses\u002Fagent-profiles","5.reference\u002F05.harnesses\u002F3.agent-profiles",{"title":424,"path":425,"stem":426},"Harness definition files","\u002Freference\u002Fharnesses\u002Fharness-files","5.reference\u002F05.harnesses\u002F4.harness-files",{"title":428,"path":429,"stem":430},"Fallback and escalation","\u002Freference\u002Fharnesses\u002Ffallback-and-escalation","5.reference\u002F05.harnesses\u002F5.fallback-and-escalation",{"title":432,"path":433,"stem":434},"Cost reporting","\u002Freference\u002Fharnesses\u002Fcost-reporting","5.reference\u002F05.harnesses\u002F6.cost-reporting",{"title":436,"path":437,"stem":438},"Permission gate","\u002Freference\u002Fpermissions","5.reference\u002F06.permissions",{"title":440,"path":441,"stem":442},"Inbound triggers","\u002Freference\u002Ftriggers","5.reference\u002F07.triggers",{"title":444,"path":445,"stem":446,"children":447},"HTTP API","\u002Freference\u002Fhttp-api","5.reference\u002F08.http-api\u002Findex",[448,449,453,457,461,465,469,473],{"title":10,"path":445,"stem":446},{"title":450,"path":451,"stem":452},"Filing, reading and changing work items","\u002Freference\u002Fhttp-api\u002Fwork-items","5.reference\u002F08.http-api\u002F2.work-items",{"title":454,"path":455,"stem":456},"Gates, run control, ending and retry","\u002Freference\u002Fhttp-api\u002Fgates-run-control-and-ending","5.reference\u002F08.http-api\u002F3.gates-run-control-and-ending",{"title":458,"path":459,"stem":460},"The work item object","\u002Freference\u002Fhttp-api\u002Fwork-item-object","5.reference\u002F08.http-api\u002F4.work-item-object",{"title":462,"path":463,"stem":464},"Budget, events, diff and documents","\u002Freference\u002Fhttp-api\u002Fbudget-and-events","5.reference\u002F08.http-api\u002F5.budget-and-events",{"title":466,"path":467,"stem":468},"Repos, chains, harnesses and the server","\u002Freference\u002Fhttp-api\u002Frepos-chains-harnesses-and-server","5.reference\u002F08.http-api\u002F6.repos-chains-harnesses-and-server",{"title":470,"path":471,"stem":472},"Drafts","\u002Freference\u002Fhttp-api\u002Fdrafts","5.reference\u002F08.http-api\u002F7.drafts",{"title":474,"path":475,"stem":476},"Ops for each draft area","\u002Freference\u002Fhttp-api\u002Fdraft-ops","5.reference\u002F08.http-api\u002F8.draft-ops",{"title":478,"path":479,"stem":480},"MCP tools","\u002Freference\u002Fmcp-tools","5.reference\u002F09.mcp-tools",{"title":482,"path":483,"stem":484},"Events","\u002Freference\u002Fevents","5.reference\u002F10.events",{"title":486,"path":487,"stem":488,"children":489},"Security and project","\u002Fproject","6.project",[490,492,496,500,504,508,512,516],{"title":10,"path":487,"stem":491},"6.project\u002Findex",{"title":493,"path":494,"stem":495},"Security","\u002Fproject\u002Fsecurity","6.project\u002F1.security",{"title":497,"path":498,"stem":499},"Data and privacy","\u002Fproject\u002Fdata-and-privacy","6.project\u002F2.data-and-privacy",{"title":501,"path":502,"stem":503},"What's new in 2.0","\u002Fproject\u002Fwhats-new","6.project\u002F3.whats-new",{"title":505,"path":506,"stem":507},"Status and support","\u002Fproject\u002Fstatus-and-support","6.project\u002F4.status-and-support",{"title":509,"path":510,"stem":511},"Architecture","\u002Fproject\u002Farchitecture","6.project\u002F5.architecture",{"title":513,"path":514,"stem":515},"Source map","\u002Fproject\u002Fsource-map","6.project\u002F6.source-map",{"title":517,"path":518,"stem":519},"Contributing","\u002Fproject\u002Fcontributing","6.project\u002F7.contributing",{"id":521,"title":48,"body":522,"description":2014,"extension":2015,"links":2016,"meta":2017,"navigation":2018,"path":49,"seo":2019,"stem":50,"__hash__":2020},"docs\u002F2.concepts\u002F4.vocabulary.md",{"type":523,"value":524,"toc":2004},"minimark",[525,536,541,873,876,880,884,906,919,942,951,954,964,967,970,983,990,993,1001,1004,1034,1037,1057,1059,1076,1079,1100,1103,1125,1128,1137,1166,1169,1183,1186,1213,1216,1221,1224,1229,1270,1273,1283,1286,1303,1306,1330,1333,1348,1351,1374,1382,1384,1406,1409,1438,1441,1480,1484,1486,1500,1522,1525,1531,1539,1541,1553,1556,1568,1577,1580,1601,1603,1613,1616,1626,1629,1641,1644,1662,1665,1680,1682,1692,1695,1705,1709,1712,1731,1733,1743,1746,1753,1756,1776,1779,1809,1812,1826,1829,1836,1838,1881,1884,1894,1897,1904,1907,1938,1942,1945,1954,1957,1969,1972,1983,1987],[526,527,528,529,532,533,535],"p",{},"This page defines the words Kraft's docs use. Each entry is a short definition\nand a link to the page that explains the term in full. For the keys a chain\nfile accepts, see ",[530,531,392],"a",{"href":393},". To see the words at\nwork, follow one item through ",[530,534,36],{"href":37},".",[537,538,540],"h2",{"id":539},"find-a-term","Find a term",[542,543,544,557],"table",{},[545,546,547],"thead",{},[548,549,550,554],"tr",{},[551,552,553],"th",{},"Letter",[551,555,556],{},"Terms",[558,559,560,589,604,631,646,661,676,691,702,713,724,735,746,765,788,823,842],"tbody",{},[548,561,562,566],{},[563,564,565],"td",{},"A",[563,567,568,572,573,572,577,572,581,572,585],{},[530,569,571],{"href":570},"#add-on","Add-on",", ",[530,574,576],{"href":575},"#agent-profile","Agent profile",[530,578,580],{"href":579},"#apply-chip","Apply chip",[530,582,584],{"href":583},"#attachment","Attachment",[530,586,588],{"href":587},"#auto-intake","Auto-intake",[548,590,591,594],{},[563,592,593],{},"B",[563,595,596,572,600],{},[530,597,599],{"href":598},"#base-branch","Base branch",[530,601,603],{"href":602},"#beads","Beads",[548,605,606,609],{},[563,607,608],{},"C",[563,610,611,572,615,572,619,572,623,572,627],{},[530,612,614],{"href":613},"#canonical-path","Canonical path",[530,616,618],{"href":617},"#cap","Cap",[530,620,622],{"href":621},"#chain","Chain",[530,624,626],{"href":625},"#chain-revision","Chain revision",[530,628,630],{"href":629},"#collection","Collection",[548,632,633,636],{},[563,634,635],{},"E",[563,637,638,572,642],{},[530,639,641],{"href":640},"#escalation","Escalation",[530,643,645],{"href":644},"#escalation-turn","Escalation turn",[548,647,648,651],{},[563,649,650],{},"F",[563,652,653,572,657],{},[530,654,656],{"href":655},"#fix-loop","Fix loop",[530,658,660],{"href":659},"#forge","Forge",[548,662,663,666],{},[563,664,665],{},"G",[563,667,668,572,672],{},[530,669,671],{"href":670},"#gate","Gate",[530,673,675],{"href":674},"#grant","Grant",[548,677,678,681],{},[563,679,680],{},"H",[563,682,683,572,687],{},[530,684,686],{"href":685},"#harness","Harness",[530,688,690],{"href":689},"#harness-profile","Harness profile",[548,692,693,696],{},[563,694,695],{},"I",[563,697,698],{},[530,699,701],{"href":700},"#intake","Intake",[548,703,704,707],{},[563,705,706],{},"J",[563,708,709],{},[530,710,712],{"href":711},"#judge","Judge",[548,714,715,718],{},[563,716,717],{},"K",[563,719,720],{},[530,721,723],{"href":722},"#kit","Kit",[548,725,726,729],{},[563,727,728],{},"L",[563,730,731],{},[530,732,734],{"href":733},"#library","Library",[548,736,737,740],{},[563,738,739],{},"N",[563,741,742],{},[530,743,745],{"href":744},"#node","Node",[548,747,748,751],{},[563,749,750],{},"P",[563,752,753,572,757,572,761],{},[530,754,756],{"href":755},"#pass","Pass",[530,758,760],{"href":759},"#policy","Policy",[530,762,764],{"href":763},"#provider","Provider",[548,766,767,770],{},[563,768,769],{},"R",[563,771,772,572,776,572,780,572,784],{},[530,773,775],{"href":774},"#recovery","Recovery",[530,777,779],{"href":778},"#ref-store","Ref store",[530,781,783],{"href":782},"#repo-library","Repo library",[530,785,787],{"href":786},"#review-thread","Review thread",[548,789,790,793],{},[563,791,792],{},"S",[563,794,795,572,799,572,803,572,807,572,811,572,815,572,819],{},[530,796,798],{"href":797},"#sandbox","Sandbox",[530,800,802],{"href":801},"#sentinel","Sentinel",[530,804,806],{"href":805},"#span","Span",[530,808,810],{"href":809},"#steer","Steer",[530,812,814],{"href":813},"#steering-profile","Steering profile",[530,816,818],{"href":817},"#step","Step",[530,820,822],{"href":821},"#stuck","Stuck",[548,824,825,828],{},[563,826,827],{},"T",[563,829,830,572,834,572,838],{},[530,831,833],{"href":832},"#task","Task",[530,835,837],{"href":836},"#templates","Templates",[530,839,841],{"href":840},"#trigger","Trigger",[548,843,844,847],{},[563,845,846],{},"W",[563,848,849,572,853,572,857,572,861,572,865,572,869],{},[530,850,852],{"href":851},"#walk","Walk",[530,854,856],{"href":855},"#work-item","Work item",[530,858,860],{"href":859},"#worker","Worker",[530,862,864],{"href":863},"#worker-session","Worker session",[530,866,868],{"href":867},"#workspace","Workspace",[530,870,872],{"href":871},"#worktree","Worktree",[526,874,875],{},"The terms are not in the \"On this page\" list. Use this table or the site search to find one.",[537,877,879],{"id":878},"work-items-and-chains","Work items and chains",[881,882,856],"h4",{"id":883},"work-item",[526,885,886,887,891,892,896,897,900,901,905],{},"A ",[888,889,890],"strong",{},"work item"," is one unit of work, and it produces one merge request. You\nfile one from the web UI, the CLI (",[893,894,895],"code",{},"kraft item create","), or an agent. It always\nlands ",[888,898,899],{},"paused",", so nothing spends a token until you start it. See\n",[530,902,904],{"href":903},"\u002Fconcepts\u002Fhow-a-work-item-runs#starting-an-item","Starting an item"," for the\none way to skip the pause.",[526,907,908,909,912,913,916,917,535],{},"When every ",[893,910,911],{},"max_concurrent"," slot is busy, a start request is not refused: the\nitem becomes ",[888,914,915],{},"queued",", and Kraft starts it when a slot frees. See\n",[530,918,290],{"href":291},[526,920,921,922,925,926,929,930,933,934,937,938,941],{},"A work item can ",[888,923,924],{},"come after"," others, named with ",[893,927,928],{},"kraft item create --after",".\nStarted while one of them is unfinished, it becomes ",[888,931,932],{},"blocked",", and Kraft\nstarts it when they have all completed. A dependency is met when the item it\nnames is ",[893,935,936],{},"completed",", post-merge nodes included; it can be dropped with\n",[893,939,940],{},"kraft item unblock",", never added after filing.",[526,943,944,945,948,949,535],{},"The item's repo must already be connected (",[893,946,947],{},"kraft repo connect","). Kraft refuses\none that is not, and names that command. For an item that spans several\nrepositories, see ",[530,950,314],{"href":315},[881,952,599],{"id":953},"base-branch",[526,955,956,957,960,961,535],{},"The ",[888,958,959],{},"base branch"," is the branch an item starts from and merges into. It is\nthe repository's default branch unless the item names another with\n",[893,962,963],{},"--base-branch",[526,965,966],{},"That branch is where the worktree is cut from, what every rebase is applied\nonto, and what the merge request and post-merge CI use. It must already exist\non the repository's origin, or Kraft refuses the item. It is fixed when you\nfile the item.",[881,968,584],{"id":969},"attachment",[526,971,972,973,975,976,572,979,982],{},"An ",[888,974,969],{}," is a spec or plan you file with an item (",[893,977,978],{},"--spec",[893,980,981],{},"--plan",").\nThe item starts without the node that would write that document and the gate\nthat approves it.",[526,984,985,986,989],{},"Kraft stores its own copy when you file the item, and the item's worktree gets\nthat copy, so editing your original changes nothing. Until the item starts,\n",[893,987,988],{},"kraft item set-attachments"," replaces a document, or drops one, which puts its\nnode and gate back. After the item starts, its documents are fixed.",[881,991,701],{"id":992},"intake",[526,994,995,997,998,1000],{},[888,996,701],{}," is the moment Kraft accepts a filed work item. It checks the repo,\nbase branch, chain, and policy, freezes the chain and policy onto the item, and\nstores a copy of any ",[530,999,969],{"href":583},". Intake refuses a problem it\nfinds, so you see it then and not hours into a run.",[881,1002,588],{"id":1003},"auto-intake",[526,1005,1006,1008,1009,1012,1013,1016,1017,1020,1021,1024,1025,1027,1028,1031,1032,535],{},[888,1007,588],{}," is Kraft filing work for you from the ready issues of your\n",[530,1010,1011],{"href":602},"beads"," tracker, polled from ",[893,1014,1015],{},"bd ready",", when ",[893,1018,1019],{},"enabled"," is ",[893,1022,1023],{},"true"," in\n",[893,1026,334],{}," (off by default). It starts each item it files, but only on a\nchain with at least one ",[530,1029,1030],{"href":670},"gate",", so the item still stops for you at its\nfirst one. See ",[530,1033,334],{"href":335},[881,1035,841],{"id":1036},"trigger",[526,1038,886,1039,1041,1042,1044,1045,1047,1048,1050,1051,1054,1055,535],{},[888,1040,1036],{}," files a ",[530,1043,890],{"href":855}," from an event instead of from\n",[893,1046,895],{},": a schedule in ",[893,1049,334],{},", or a ",[893,1052,1053],{},"POST \u002Fapi\u002Ftriggers","\ncall. A trigger always files the item paused, and cannot start it. See\n",[530,1056,440],{"href":441},[881,1058,603],{"id":1011},[526,1060,1061,1063,1064,1067,1068,1071,1072,1075],{},[888,1062,1011],{}," is an optional issue tracker (",[893,1065,1066],{},"bd",") that Kraft can link a work item\nto. An issue in it is a ",[888,1069,1070],{},"bead",". ",[893,1073,1074],{},"kraft item create --implements BEAD"," records the bead an item implements\nand closes it when the item completes. Kraft works without beads.",[881,1077,660],{"id":1078},"forge",[526,1080,886,1081,1083,1084,1087,1088,1091,1092,1094,1095,1097,1098,535],{},[888,1082,1078],{}," is the code host a repo's merge requests live on: GitHub or\nGitLab. Kraft reaches it through ",[893,1085,1086],{},"gh"," or ",[893,1089,1090],{},"glab",", signed in as the user the\nserver runs as. A repo's ",[893,1093,1078],{}," field says which;\n",[893,1096,947],{}," sets it from the remote's host. See\n",[530,1099,300],{"href":301},[881,1101,868],{"id":1102},"workspace",[526,1104,886,1105,1107,1108,1111,1112,1115,1116,1118,1119,1122,1123,535],{},[888,1106,1102],{}," is a root repository with other repositories mounted in it as\nsubmodules, its ",[888,1109,1110],{},"members",", declared under ",[893,1113,1114],{},"workspaces:"," in ",[893,1117,300],{},". A\nwork item filed against it changes the root and the members you choose, each\ncut, when its repository is connected, as a ",[530,1120,1121],{"href":871},"worktree"," of it. See\n",[530,1124,314],{"href":315},[881,1126,622],{"id":1127},"chain",[526,1129,886,1130,1132,1133,1136],{},[888,1131,1127],{}," is the ordered list of ",[888,1134,1135],{},"nodes"," a work item runs. It writes the\nstages of your process down once, in a file you can read and diff, so an agent\ndoes not decide them afresh each time.",[526,1138,1139,1140,1143,1144,1147,1148,1154,1155,1158,1159,1161,1162,535],{},"You pick the chain with ",[893,1141,1142],{},"--chain"," (",[893,1145,1146],{},"kraft item create \"...\" --chain quick-task","). Without one, the item gets the repo's\n",[530,1149,1151],{"href":1150},"\u002Freference\u002Fconfiguration\u002Frepos#default_chain",[893,1152,1153],{},"default_chain",", or ",[893,1156,1157],{},"default","\nif the repo sets none, however the item is filed. To build a chain of your own,\nsee ",[530,1160,102],{"href":103},". The two\nchains Kraft ships, node by node, are under\n",[530,1163,1165],{"href":1164},"\u002Fconcepts\u002Fhow-a-work-item-runs#the-shipped-chains","The shipped chains",[881,1167,626],{"id":1168},"chain-revision",[526,1170,886,1171,1174,1175,1178,1179,1182],{},[888,1172,1173],{},"chain revision"," is the change an agent proposes to the rest of a chain\nonce its spec and plan are approved: skip a node, add one, or adjust a limit.\nIt runs in the ",[893,1176,1177],{},"chain_revision"," node. See\n",[530,1180,626],{"href":1181},"\u002Fconcepts\u002Fhow-a-work-item-runs#chain-revision"," for how it is\nproposed and approved.",[881,1184,745],{"id":1185},"node",[526,1187,886,1188,1190,1191,1194,1195,1197,1198,1201,1202,1205,1206,1209,1210,535],{},[888,1189,1185],{}," is one stage of a chain. It is either an ",[888,1192,1193],{},"exec"," node, which runs\nwork, or a ",[888,1196,1030],{}," node, which waits for you. An exec node can carry\n",[530,1199,1200],{"href":774},"recovery",", a ",[530,1203,1204],{"href":655},"fix loop",", and an ",[530,1207,1208],{"href":640},"escalation",",\nall bounded by ",[530,1211,1212],{"href":617},"caps",[881,1214,818],{"id":1215},"step",[526,1217,886,1218,1220],{},[888,1219,1215],{}," is a group of tasks inside an exec node. Tasks in one step run in\nparallel. Steps run in order, so a later step sees what an earlier one left\nbehind, and is skipped if the earlier one fails.",[881,1222,833],{"id":1223},"task",[526,1225,886,1226,1228],{},[888,1227,1223],{}," is one unit of execution. There are four kinds, and the split lets\nKraft treat an agent's judgment differently from its own bookkeeping:",[1230,1231,1232,1247,1253,1259],"ul",{},[1233,1234,1235,1238,1239,1242,1243,1246],"li",{},[888,1236,1237],{},"agent"," runs a headless coding agent in the item's worktree, on a\n",[530,1240,1241],{"href":689},"harness profile",". Its model comes from an\n",[530,1244,1245],{"href":575},"agent profile"," or from its own settings.",[1233,1248,1249,1252],{},[888,1250,1251],{},"subprocess"," runs a literal command.",[1233,1254,1255,1258],{},[888,1256,1257],{},"builtin"," is work Kraft does itself, such as running the repo's tests or\nrebasing onto the item's base branch before a draft merge request opens.",[1233,1260,1261,1263,1264,1266,1267,1269],{},[888,1262,1078],{}," is a merge-request action on GitHub or GitLab (open a draft, watch\nCI, merge), resolved from the ",[893,1265,1078],{}," recorded in the repo's ",[893,1268,300],{},"\nentry.",[881,1271,864],{"id":1272},"worker-session",[526,1274,886,1275,1278,1279,535],{},[888,1276,1277],{},"worker session"," is one run of a task, recorded with its status, log,\nresult file, tokens, and cost. See\n",[530,1280,1282],{"href":1281},"\u002Fconcepts\u002Fhow-a-work-item-runs#inside-a-node","Inside a node",[881,1284,614],{"id":1285},"canonical-path",[526,1287,1288,1289,1292,1293,1296,1297,1300,1301,535],{},"Every task, step, and node has a ",[888,1290,1291],{},"canonical path",", such as ",[893,1294,1295],{},"spec.main.author",".\nIt is how you point Kraft at one piece of work, for example with\n",[893,1298,1299],{},"kraft item retry --path",". The path format is in\n",[530,1302,392],{"href":393},[881,1304,734],{"id":1305},"library",[526,1307,956,1308,1310,1311,1314,1315,1318,1319,1322,1323,1325,1326,1329],{},[888,1309,1305],{}," is the set of reusable tasks, steps, nodes, and\n",[530,1312,1313],{"href":813},"steering profiles"," Kraft ships in ",[893,1316,1317],{},"library.yaml",". A chain\ncomponent reuses one with ",[893,1320,1321],{},"extends",", which keeps a fix\nto a shared piece in one place. See\n",[530,1324,322],{"href":323},", and run\n",[893,1327,1328],{},"kraft admin templates lint"," to check every chain.",[881,1331,837],{"id":1332},"templates",[526,1334,1335,1336,1338,1339,1341,1342,1345,1346,535],{},"In these docs, ",[888,1337,1332],{}," means ",[893,1340,1317],{}," and the files in ",[893,1343,1344],{},"chains\u002F",",\nand nothing else. Kraft copies a chain onto each item when you file it, so\nediting a template changes no item already filed. The directory that holds them\nand the rest of Kraft's configuration is the config directory. See\n",[530,1347,294],{"href":295},[881,1349,571],{"id":1350},"add-on",[526,1352,886,1353,1154,1356,1358,1359,1362,1363,1366,1367,1292,1370,1373],{},[888,1354,1355],{},"Kraft add-on",[888,1357,1350],{},", is a directory of chains, library components,\nskills and ",[530,1360,1361],{"href":575},"agent profiles"," that an instance installs from a\n",[530,1364,1365],{"href":629},"collection",". Everything it ships is read-only and is named\n",[893,1368,1369],{},"\u003Cnamespace>:\u003Cname>",[893,1371,1372],{},"release:ship",". An instance pins each installed\nadd-on to a commit and changes it only through a reviewed update. An add-on can\nset limits and never permissions.",[526,1375,1376,1377,1379,1380,535],{},"See ",[530,1378,114],{"href":115},"\nand ",[530,1381,384],{"href":385},[881,1383,630],{"id":1365},[526,1385,886,1386,1388,1389,1115,1392,1395,1396,1292,1399,1402,1403,535],{},[888,1387,1365],{}," is a git repository, or a directory, that lists\n",[530,1390,1391],{"href":570},"add-ons",[893,1393,1394],{},".kraft\u002Fcollection.json",". You add a collection\nto an instance, then install add-ons from it. An add-on's id is\n",[893,1397,1398],{},"\u003Caddon>@\u003Ccollection>",[893,1400,1401],{},"release@acme",". See\n",[530,1404,384],{"href":1405},"\u002Freference\u002Fconfiguration\u002Faddons#collectionjson",[881,1407,783],{"id":1408},"repo-library",[526,1410,886,1411,1414,1415,1417,1418,1421,1422,1425,1426,1292,1429,1432,1433,1435,1436,535],{},[888,1412,1413],{},"repo library"," is the chains, library components, skills and\n",[530,1416,1361],{"href":575}," a connected repository keeps in ",[893,1419,1420],{},".kraft\u002F"," on its\ndefault branch. A person accepts it with ",[893,1423,1424],{},"kraft repo library",", and it then loads\nunder the repository's ",[893,1427,1428],{},"id",[893,1430,1431],{},"my-repo:hotfix",". It holds what an\n",[530,1434,1350],{"href":570}," holds, with no manifest and no collection. See\n",[530,1437,388],{"href":389},[881,1439,814],{"id":1440},"steering-profile",[526,1442,886,1443,1446,1447,1450,1451,1454,1455,1457,1458,1461,1462,1115,1464,1466,1467,1470,1471,1473,1474,1402,1476,535],{},[888,1444,1445],{},"steering profile"," is a named block of standing guidance,\n",[893,1448,1449],{},"{instructions: \"...\"}",", in the ",[893,1452,1453],{},"steering"," section of ",[893,1456,1317],{},". A task's\n",[893,1459,1460],{},"steering:"," and a repository's ",[893,1463,1460],{},[893,1465,300],{}," select profiles, and\nKraft adds their text to the agent's system prompt, 8 KB at most together. It\nis not a ",[530,1468,1469],{"href":809},"steer",", which is a one-time note, and not a\n",[530,1472,1241],{"href":689}," or an ",[530,1475,1245],{"href":575},[530,1477,1479],{"href":1478},"\u002Freference\u002Fconfiguration\u002Frepos#repository-steering","Repository steering",[537,1481,1483],{"id":1482},"decisions-notes-and-limits","Decisions, notes, and limits",[881,1485,671],{"id":1030},[526,1487,886,1488,1490,1491,1494,1495,1499],{},[888,1489,1030],{}," is where your decision belongs. When the chain reaches a gate node it\nstops. The work item's status becomes ",[893,1492,1493],{},"needs_human",", and the board shows it\nunder ",[1496,1497,1498],"em",{},"Needs you",". From there you can:",[1230,1501,1502,1508],{},[1233,1503,1504,1507],{},[888,1505,1506],{},"Approve."," The chain continues to the node after the gate.",[1233,1509,1510,1513,1514,1517,1518,1521],{},[888,1511,1512],{},"Reject",", with a note. The chain re-enters at the gate's ",[893,1515,1516],{},"reject_to"," node,\ncarrying the note as a steer, so the node that produced the document tries\nagain with your feedback. On the review page the same decision is ",[888,1519,1520],{},"Request\nchanges",": it rejects the gate with your summary and review threads as the note.",[881,1523,787],{"id":1524},"review-thread",[526,1526,886,1527,1530],{},[888,1528,1529],{},"review thread"," is a line-level comment on the change. You can leave one at\nany point, gate or not. Every agent that runs next reads the ones still waiting\non an answer, and working agents reply in the thread.",[526,1532,886,1533,1536,1537,535],{},[893,1534,1535],{},"must-fix"," thread blocks every approval until you resolve it. A gate reached\nwith one still unanswered sends the work back instead of asking you again. See\n",[530,1538,76],{"href":77},[881,1540,810],{"id":1469},[526,1542,886,1543,1545,1546,1550,1551,535],{},[888,1544,1469],{}," is a note to the next agent Kraft launches for an item. The first\nagent task that runs reads it once, and then Kraft drops it. See\n",[530,1547,1549],{"href":1548},"\u002Fconcepts\u002Fhow-a-work-item-runs#steering","Steering"," for the four ways to give\none. A steer is not a ",[530,1552,1445],{"href":813},[881,1554,618],{"id":1555},"cap",[526,1557,886,1558,1560,1561,1564,1565,1567],{},[888,1559,1555],{}," is a limit on a scope's time, tokens, or dollars. A scope is the work\nitem, a node, a step, or a task. A ",[888,1562,1563],{},"wait",", such as CI, an automated review,\nan approval, or a merge landing, has its own time limit. A\n",[530,1566,1204],{"href":655}," stops at its attempt limit and wall clock.",[526,1569,1570,1571,1573,1574,1576],{},"Hitting any of these stops the chain and hands the item to you, naming the\nscope, so a defect the agent cannot fix ends with you seeing the full trace and\nnot a loop that never finishes. See\n",[530,1572,40],{"href":41}," for how the bounds combine, and\n",[530,1575,318],{"href":319}," for the values.",[881,1578,760],{"id":1579},"policy",[526,1581,886,1582,1584,1585,1588,1589,1591,1592,1402,1594,1598,1599,535],{},[888,1583,1579],{}," is the limits and permissions an item runs under: caps, budget,\ntool lists, ",[530,1586,1587],{"href":674},"grants",", and the harnesses a task may use. ",[893,1590,318],{},"\nholds the instance's, and a repository, a chain, a node, a step, a task, and the\nitem's own override each add a layer. Kraft freezes the result onto the item at\n",[530,1593,992],{"href":700},[530,1595,1597],{"href":1596},"\u002Fconcepts\u002Fcaps-and-budgets#how-a-policy-resolves","How a policy resolves"," and\n",[530,1600,318],{"href":319},[881,1602,775],{"id":1200},[526,1604,1605,1143,1607,1610,1611,535],{},[888,1606,775],{},[893,1608,1609],{},"on_failure",") is a node's optional repair steps, run once per\nentry into the node when a task fails, before the whole node runs again. See\n",[530,1612,1282],{"href":1281},[881,1614,656],{"id":1615},"fix-loop",[526,1617,886,1618,1143,1620,1623,1624,535],{},[888,1619,1204],{},[893,1621,1622],{},"fix_loop",") is a node's optional repair cycle: an agent fixes\nthe failure, then Kraft measures the whole node again, until it passes or the\nloop runs out of attempts or time. See\n",[530,1625,402],{"href":403},[881,1627,756],{"id":1628},"pass",[526,1630,886,1631,1633,1634,1636,1637,535],{},[888,1632,1628],{}," is one time the chain runs a node. A gate rejection, a retry or a\nbase-change restart sends the chain back, and every node it runs again starts\na new pass. A ",[530,1635,1204],{"href":655},"'s rounds are counted inside a pass, and a\ntask's attempts inside a round. See\n",[530,1638,1640],{"href":1639},"\u002Freference\u002Fweb-ui\u002Ffix-loops-and-test-scopes#picking-a-pass","Picking a pass",[881,1642,712],{"id":1643},"judge",[526,1645,886,1646,1648,1649,1652,1653,1087,1656,1402,1659,535],{},[888,1647,1643],{}," is the task a fix loop runs before each repair cycle after the\nfirst, to rule whether another attempt is worth it. Its verdict is ",[893,1650,1651],{},"continue",",\n",[893,1654,1655],{},"stop_needs_human",[893,1657,1658],{},"stop_downgrade",[530,1660,402],{"href":1661},"\u002Freference\u002Fchain-nodes\u002Ffix-loop#the-judge",[881,1663,822],{"id":1664},"stuck",[526,1666,1667,1668,1670,1671,1673,1674,1676,1677,535],{},"A node is ",[888,1669,1664],{}," when its fix loop cannot go on: the attempts or the wall\nclock ran out, the same findings came back, or the ",[530,1672,1643],{"href":711}," stopped it.\nKraft then tries an ",[530,1675,1208],{"href":640},", and the item stops and waits\nfor you if that does not clear it. See\n",[530,1678,402],{"href":1679},"\u002Freference\u002Fchain-nodes\u002Ffix-loop#one-cycle",[881,1681,641],{"id":1208},[526,1683,1684,1143,1686,1688,1689,535],{},[888,1685,641],{},[893,1687,1208],{},") is the third thing a node can try when a task\nfails. It runs once the node is stuck. If it succeeds, the node gets a fresh\nentry from its first step. If it does not, the item stops and waits for you. A\nnode with none of its own gets a generic one, which runs as an\n",[530,1690,1691],{"href":644},"escalation turn",[881,1693,580],{"id":1694},"apply-chip",[526,1696,956,1697,1700,1701,535],{},[888,1698,1699],{},"apply chip"," is the button in the web UI's header that appears while\nsaved configuration is not running yet. It offers a reload for files Kraft can\nreread, and a restart where a service manager started the server. See\n",[530,1702,1704],{"href":1703},"\u002Freference\u002Fhttp-api\u002Frepos-chains-harnesses-and-server#saved-but-not-applied","Saved but not applied",[537,1706,1708],{"id":1707},"agents-and-where-they-run","Agents and where they run",[881,1710,860],{"id":1711},"worker",[526,1713,886,1714,1716,1717,1719,1720,1722,1723,1727,1728,1730],{},[888,1715,1711],{}," is an agent session Kraft starts for an agent task, such as an\nauthor, an implementer, or a gate's review agent. It runs headless in the\nitem's ",[530,1718,1121],{"href":871}," and identifies itself to Kraft, which refuses it\nsome actions a person can take. An ",[530,1721,1691],{"href":644}," is not a\nworker. See ",[530,1724,1726],{"href":1725},"\u002Freference\u002Fmcp-tools#who-may-call-what","Who may call what",", and\n",[530,1729,1277],{"href":863}," for one run of a task.",[881,1732,872],{"id":1121},[526,1734,886,1735,1737,1738,1740,1741,535],{},[888,1736,1121],{}," is the work item's own git checkout, cut from its\n",[530,1739,959],{"href":598}," onto a branch of its own. Agents edit it, and\narchiving the item removes it. See\n",[530,1742,904],{"href":903},[881,1744,686],{"id":1745},"harness",[526,1747,886,1748,1750,1751,535],{},[888,1749,1745],{}," is one agent CLI that Kraft can run a task on, described as data\nand not code. Kraft ships seven. See ",[530,1752,410],{"href":411},[881,1754,690],{"id":1755},"harness-profile",[526,1757,886,1758,1760,1761,1763,1764,1767,1768,1771,1772,1402,1774,535],{},[888,1759,1241],{}," is an entry in ",[893,1762,326],{}," that names a harness (its\n",[893,1765,1766],{},"provider",") and the options to start it with. An agent task's ",[893,1769,1770],{},"harness:"," field\nnames one. It is not an ",[530,1773,1245],{"href":575},[530,1775,326],{"href":327},[881,1777,576],{"id":1778},"agent-profile",[526,1780,972,1781,1783,1784,572,1787,572,1789,1792,1793,1796,1797,1800,1801,1804,1805,1402,1807,535],{},[888,1782,1245],{}," is a named model tier (",[893,1785,1786],{},"deep",[893,1788,888],{},[893,1790,1791],{},"fast",") that a\ntask selects with ",[893,1794,1795],{},"profile:"," instead of spelling out ",[893,1798,1799],{},"model:"," and ",[893,1802,1803],{},"effort:",". A\ntier means the same on every harness. It is not a\n",[530,1806,1241],{"href":689},[530,1808,420],{"href":421},[881,1810,798],{"id":1811},"sandbox",[526,1813,886,1814,1816,1817,1820,1821,1823,1824,535],{},[888,1815,1811],{}," is the container a repository's workers run in, set by ",[893,1818,1819],{},"sandbox:","\nin ",[893,1822,300],{}," or a policy. Without one, workers run directly on your machine,\nas your user. See ",[530,1825,346],{"href":347},[881,1827,723],{"id":1828},"kit",[526,1830,886,1831,1833,1834,535],{},[888,1832,723],{}," is an image that carries a descriptor of what its workload may reach\nand hold. As a repository's sandbox, it is the whole sandbox. See\n",[530,1835,368],{"href":369},[881,1837,764],{"id":1766},[526,1839,886,1840,1842,1843,1846,1847,1849,1850,572,1853,1652,1856,572,1859,572,1862,572,1865,1087,1868,1871,1872,1874,1875,1402,1879,535],{},[888,1841,1766],{}," is one of the seven agent runtimes Kraft knows, named by the\n",[893,1844,1845],{},"provider:"," key of a ",[530,1848,1241],{"href":689},": ",[893,1851,1852],{},"claude",[893,1854,1855],{},"codex",[893,1857,1858],{},"cursor",[893,1860,1861],{},"opencode",[893,1863,1864],{},"gemini",[893,1866,1867],{},"antigravity",[893,1869,1870],{},"amp",". An\n",[530,1873,1245],{"href":575}," spells its model and effort once per provider.\nIt is the agent CLI, not the vendor whose API the CLI calls: that is the\n",[530,1876,1878],{"href":1877},"\u002Fproject\u002Fdata-and-privacy#model-providers","model provider",[530,1880,326],{"href":327},[881,1882,779],{"id":1883},"ref-store",[526,1885,886,1886,1889,1890,535],{},[888,1887,1888],{},"ref store"," is the private copy of a repository's branches and tags that a\nsandboxed worker's container sees in place of the real ones. Kraft moves only\nthe item's own branch back to your repository when the session ends. See\n",[530,1891,1893],{"href":1892},"\u002Freference\u002Fconfiguration\u002Fsandbox\u002Fgit-in-a-sandbox#repository-refs","Repository refs",[881,1895,802],{"id":1896},"sentinel",[526,1898,886,1899,1901,1902,535],{},[888,1900,1896],{}," is the stand-in value a sandboxed worker holds for a credential.\nKraft's egress proxy swaps the real value in on requests to the host that\ncredential is for, so the container never holds it. See\n",[530,1903,364],{"href":365},[881,1905,675],{"id":1906},"grant",[526,1908,886,1909,1911,1912,572,1915,1087,1918,1921,1922,1925,1926,1930,1931,1934,1935,1937],{},[888,1910,1906],{}," is a named git operation, ",[893,1913,1914],{},"git-commit",[893,1916,1917],{},"git-rebase",[893,1919,1920],{},"git-push",",\nthat the permission gate allows a task even outside its ",[893,1923,1924],{},"allowed_tools",". It\nmatches one plain git call and nothing else. A grant is only the gate's allow,\nso a harness that does not reach the gate takes no grant. See\n",[530,1927,1929],{"href":1928},"\u002Freference\u002Fpermissions#grants","Grants"," for what ",[893,1932,1933],{},"deny_tools"," still denies, what\n",[893,1936,1920],{}," reaches, and where a grant takes effect.",[537,1939,1941],{"id":1940},"how-a-run-proceeds","How a run proceeds",[881,1943,852],{"id":1944},"walk",[526,1946,886,1947,1949,1950,535],{},[888,1948,1944],{}," is one pass of Kraft's executor through an item's chain, from the\nnode it enters until the item finishes or stops at a gate, a wait, or a stop.\nStarting the item again begins a new walk. See\n",[530,1951,1953],{"href":1952},"\u002Fconcepts\u002Fhow-a-work-item-runs#from-filing-to-archive","From filing to archive",[881,1955,806],{"id":1956},"span",[526,1958,886,1959,1961,1962,1965,1966,535],{},[888,1960,1956],{}," is the stretch of a chain that runs again: from the node, step, or\ntask a retry names, or from a node's ",[893,1963,1964],{},"restart_from"," when the base branch moves.\nA retry you ask for starts the fix-loop counts inside its span afresh. See\n",[530,1967,40],{"href":1968},"\u002Fconcepts\u002Fcaps-and-budgets#two-kinds-of-bound",[881,1970,645],{"id":1971},"escalation-turn",[526,1973,972,1974,1976,1977,1402,1980,535],{},[888,1975,1691],{}," is an agent session Kraft opens on a stopped item to\nhelp. It reads the stop and may retry the item. Kraft starts one itself on a\nstuck stop, or you start one with ",[893,1978,1979],{},"kraft item escalate",[530,1981,428],{"href":1982},"\u002Freference\u002Fharnesses\u002Ffallback-and-escalation#escalation-turns",[537,1984,1986],{"id":1985},"related","Related",[1230,1988,1989,1994,1999],{},[1233,1990,1991,1993],{},[530,1992,36],{"href":37},": the lifecycle and where steers, fix loops, and escalation fit.",[1233,1995,1996,1998],{},[530,1997,40],{"href":41},": how the limits work.",[1233,2000,2001,2003],{},[530,2002,294],{"href":295},": change what Kraft does.",{"title":2005,"searchDepth":2006,"depth":2006,"links":2007},"",2,[2008,2009,2010,2011,2012,2013],{"id":539,"depth":2006,"text":540},{"id":878,"depth":2006,"text":879},{"id":1482,"depth":2006,"text":1483},{"id":1707,"depth":2006,"text":1708},{"id":1940,"depth":2006,"text":1941},{"id":1985,"depth":2006,"text":1986},"What each Kraft term means, from work item, chain, node, task, gate and cap to harness, sandbox, worktree and escalation turn.","md",null,{},true,{"title":48,"description":2014},"uxulUBSFvEj0aBkzMQuoHLgGJKLw1MXzowY1LIGTUWg",[2022,2024],{"title":44,"path":45,"stem":46,"description":2023,"children":-1},"Why Kraft answers a worker's permission prompts itself, and how each harness lets it.",{"title":10,"path":53,"stem":57,"description":2025,"children":-1},"Task-focused how-tos for driving, extending, and reaching Kraft.",1791801164570]