[{"data":1,"prerenderedAt":1367},["ShallowReactive",2],{"navigation_docs":3,"-concepts-how-a-work-item-runs":504,"-concepts-how-a-work-item-runs-surround":1362},[4,28,51,187,214,469],{"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,113,134,183],{"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],{"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,"children":117,"page":95},"Agents and harnesses","\u002Fguides\u002Fharnesses","3.guides\u002F3.harnesses",[118,122,126,130],{"title":119,"path":120,"stem":121},"Switch a task to another harness","\u002Fguides\u002Fharnesses\u002Fswitch-harness","3.guides\u002F3.harnesses\u002F1.switch-harness",{"title":123,"path":124,"stem":125},"Add or override a harness","\u002Fguides\u002Fharnesses\u002Fadding-a-harness","3.guides\u002F3.harnesses\u002F2.adding-a-harness",{"title":127,"path":128,"stem":129},"Build a worker Kit","\u002Fguides\u002Fharnesses\u002Fworker-kit","3.guides\u002F3.harnesses\u002F3.worker-kit",{"title":131,"path":132,"stem":133},"Give a worker its login","\u002Fguides\u002Fharnesses\u002Fgive-a-worker-its-login","3.guides\u002F3.harnesses\u002F4.give-a-worker-its-login",{"title":135,"path":136,"stem":137,"children":138,"page":95},"Run the server","\u002Fguides\u002Frun","3.guides\u002F4.run",[139,143,147,151,155,159,163,167,171,175,179],{"title":140,"path":141,"stem":142},"Remote access","\u002Fguides\u002Frun\u002Fremote-access","3.guides\u002F4.run\u002F01.remote-access",{"title":144,"path":145,"stem":146},"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":148,"path":149,"stem":150},"Restart Kraft without ending running agents","\u002Fguides\u002Frun\u002Frestart-kraft","3.guides\u002F4.run\u002F03.restart-kraft",{"title":152,"path":153,"stem":154},"Back up and restore the database","\u002Fguides\u002Frun\u002Fback-up-and-restore","3.guides\u002F4.run\u002F04.back-up-and-restore",{"title":156,"path":157,"stem":158},"Logs and disk space","\u002Fguides\u002Frun\u002Flogs-and-disk-space","3.guides\u002F4.run\u002F05.logs-and-disk-space",{"title":160,"path":161,"stem":162},"Run Kraft as a service","\u002Fguides\u002Frun\u002Frun-as-a-service","3.guides\u002F4.run\u002F06.run-as-a-service",{"title":164,"path":165,"stem":166},"Upgrade Kraft","\u002Fguides\u002Frun\u002Fupgrade-kraft","3.guides\u002F4.run\u002F07.upgrade-kraft",{"title":168,"path":169,"stem":170},"Upgrade your configuration","\u002Fguides\u002Frun\u002Fupgrade-your-configuration","3.guides\u002F4.run\u002F08.upgrade-your-configuration",{"title":172,"path":173,"stem":174},"Upgrade from 1.4","\u002Fguides\u002Frun\u002Fupgrade-from-1-4","3.guides\u002F4.run\u002F09.upgrade-from-1-4",{"title":176,"path":177,"stem":178},"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":180,"path":181,"stem":182},"Roll back to 1.4","\u002Fguides\u002Frun\u002Froll-back","3.guides\u002F4.run\u002F11.roll-back",{"title":184,"path":185,"stem":186},"Kraft Lite","\u002Fguides\u002Fkraft-lite","3.guides\u002F5.kraft-lite",{"title":188,"path":189,"stem":190,"children":191},"Troubleshooting","\u002Ftroubleshooting","4.troubleshooting",[192,194,198,202,206,210],{"title":10,"path":189,"stem":193},"4.troubleshooting\u002Findex",{"title":195,"path":196,"stem":197},"Why did my item stop?","\u002Ftroubleshooting\u002Fwhy-did-my-item-stop","4.troubleshooting\u002F1.why-did-my-item-stop",{"title":199,"path":200,"stem":201},"Stop reasons in detail","\u002Ftroubleshooting\u002Fstop-reasons-in-detail","4.troubleshooting\u002F2.stop-reasons-in-detail",{"title":203,"path":204,"stem":205},"Starting and reaching Kraft","\u002Ftroubleshooting\u002Fstarting-and-reaching-kraft","4.troubleshooting\u002F3.starting-and-reaching-kraft",{"title":207,"path":208,"stem":209},"Doctor failures","\u002Ftroubleshooting\u002Fdoctor-failures","4.troubleshooting\u002F4.doctor-failures",{"title":211,"path":212,"stem":213},"Sandbox and Kit stops","\u002Ftroubleshooting\u002Fsandbox-and-kit-stops","4.troubleshooting\u002F5.sandbox-and-kit-stops",{"title":215,"path":216,"stem":217,"children":218},"Reference","\u002Freference","5.reference",[219,221,259,281,285,375,393,419,423,427,461,465],{"title":10,"path":216,"stem":220},"5.reference\u002Findex",{"title":222,"path":223,"stem":224,"children":225},"Web UI","\u002Freference\u002Fweb-ui","5.reference\u002F00.web-ui\u002Findex",[226,227,231,235,239,243,247,251,255],{"title":10,"path":223,"stem":224},{"title":228,"path":229,"stem":230},"Sidebar, search, and keyboard","\u002Freference\u002Fweb-ui\u002Fsidebar-search-and-keyboard","5.reference\u002F00.web-ui\u002F0.sidebar-search-and-keyboard",{"title":232,"path":233,"stem":234},"The board","\u002Freference\u002Fweb-ui\u002Fboard","5.reference\u002F00.web-ui\u002F1.board",{"title":236,"path":237,"stem":238},"An item's page","\u002Freference\u002Fweb-ui\u002Fitem-page","5.reference\u002F00.web-ui\u002F2.item-page",{"title":240,"path":241,"stem":242},"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":244,"path":245,"stem":246},"Config before an item starts","\u002Freference\u002Fweb-ui\u002Fconfig-before-start","5.reference\u002F00.web-ui\u002F4.config-before-start",{"title":248,"path":249,"stem":250},"The review page","\u002Freference\u002Fweb-ui\u002Freview-page","5.reference\u002F00.web-ui\u002F5.review-page",{"title":252,"path":253,"stem":254},"Templates and Settings","\u002Freference\u002Fweb-ui\u002Ftemplates-and-settings","5.reference\u002F00.web-ui\u002F6.templates-and-settings",{"title":256,"path":257,"stem":258},"Analytics","\u002Freference\u002Fweb-ui\u002Fanalytics","5.reference\u002F00.web-ui\u002F7.analytics",{"title":260,"path":261,"stem":262,"children":263},"CLI","\u002Freference\u002Fcli","5.reference\u002F01.cli\u002Findex",[264,265,269,273,277],{"title":10,"path":261,"stem":262},{"title":266,"path":267,"stem":268},"Item verbs","\u002Freference\u002Fcli\u002Fitem","5.reference\u002F01.cli\u002F2.item",{"title":270,"path":271,"stem":272},"View verbs","\u002Freference\u002Fcli\u002Fview","5.reference\u002F01.cli\u002F3.view",{"title":274,"path":275,"stem":276},"Repo verbs","\u002Freference\u002Fcli\u002Frepo","5.reference\u002F01.cli\u002F4.repo",{"title":278,"path":279,"stem":280},"Admin verbs","\u002Freference\u002Fcli\u002Fadmin","5.reference\u002F01.cli\u002F5.admin",{"title":282,"path":283,"stem":284},"Work item statuses","\u002Freference\u002Fstatuses","5.reference\u002F02.statuses",{"title":286,"path":287,"stem":288,"children":289},"Configuration","\u002Freference\u002Fconfiguration","5.reference\u002F03.configuration\u002Findex",[290,291,309,313,317,321,325,329,333,337,371],{"title":10,"path":287,"stem":288},{"title":292,"path":293,"stem":294,"children":295},"repos.yaml","\u002Freference\u002Fconfiguration\u002Frepos","5.reference\u002F03.configuration\u002F02.repos\u002Findex",[296,297,301,305],{"title":10,"path":293,"stem":294},{"title":298,"path":299,"stem":300},"How connect proposes commands","\u002Freference\u002Fconfiguration\u002Frepos\u002Fconnect-proposals","5.reference\u002F03.configuration\u002F02.repos\u002F1.connect-proposals",{"title":302,"path":303,"stem":304},"detectors.yaml","\u002Freference\u002Fconfiguration\u002Frepos\u002Fdetectors","5.reference\u002F03.configuration\u002F02.repos\u002F2.detectors",{"title":306,"path":307,"stem":308},"Workspaces","\u002Freference\u002Fconfiguration\u002Frepos\u002Fworkspaces","5.reference\u002F03.configuration\u002F02.repos\u002F3.workspaces",{"title":310,"path":311,"stem":312},"policy.yaml","\u002Freference\u002Fconfiguration\u002Fpolicy","5.reference\u002F03.configuration\u002F03.policy",{"title":314,"path":315,"stem":316},"Library and chains","\u002Freference\u002Fconfiguration\u002Flibrary-and-chains","5.reference\u002F03.configuration\u002F04.library-and-chains",{"title":318,"path":319,"stem":320},"harnesses.yaml","\u002Freference\u002Fconfiguration\u002Fharnesses-file","5.reference\u002F03.configuration\u002F05.harnesses-file",{"title":322,"path":323,"stem":324},"access.yaml","\u002Freference\u002Fconfiguration\u002Faccess","5.reference\u002F03.configuration\u002F06.access",{"title":326,"path":327,"stem":328},"intake.yaml","\u002Freference\u002Fconfiguration\u002Fintake","5.reference\u002F03.configuration\u002F07.intake",{"title":330,"path":331,"stem":332},"notify.yaml","\u002Freference\u002Fconfiguration\u002Fnotify","5.reference\u002F03.configuration\u002F08.notify",{"title":334,"path":335,"stem":336},"theme.yaml","\u002Freference\u002Fconfiguration\u002Ftheme","5.reference\u002F03.configuration\u002F09.theme",{"title":338,"path":339,"stem":340,"children":341},"Sandboxed workers","\u002Freference\u002Fconfiguration\u002Fsandbox","5.reference\u002F03.configuration\u002F10.sandbox\u002Findex",[342,343,347,351,355,359,363,367],{"title":10,"path":339,"stem":340},{"title":344,"path":345,"stem":346},"Resource limits","\u002Freference\u002Fconfiguration\u002Fsandbox\u002Fresource-limits","5.reference\u002F03.configuration\u002F10.sandbox\u002F1.resource-limits",{"title":348,"path":349,"stem":350},"Callbacks from a sandbox","\u002Freference\u002Fconfiguration\u002Fsandbox\u002Fcallbacks","5.reference\u002F03.configuration\u002F10.sandbox\u002F2.callbacks",{"title":352,"path":353,"stem":354},"Network policy","\u002Freference\u002Fconfiguration\u002Fsandbox\u002Fnetwork-policy","5.reference\u002F03.configuration\u002F10.sandbox\u002F3.network-policy",{"title":356,"path":357,"stem":358},"Credentials","\u002Freference\u002Fconfiguration\u002Fsandbox\u002Fcredentials","5.reference\u002F03.configuration\u002F10.sandbox\u002F4.credentials",{"title":360,"path":361,"stem":362},"Kits","\u002Freference\u002Fconfiguration\u002Fsandbox\u002Fkits","5.reference\u002F03.configuration\u002F10.sandbox\u002F5.kits",{"title":364,"path":365,"stem":366},"sandbox.yaml","\u002Freference\u002Fconfiguration\u002Fsandbox\u002Fsandbox-yaml","5.reference\u002F03.configuration\u002F10.sandbox\u002F6.sandbox-yaml",{"title":368,"path":369,"stem":370},"Git in a sandbox","\u002Freference\u002Fconfiguration\u002Fsandbox\u002Fgit-in-a-sandbox","5.reference\u002F03.configuration\u002F10.sandbox\u002F7.git-in-a-sandbox",{"title":372,"path":373,"stem":374},"Environment variables","\u002Freference\u002Fconfiguration\u002Fenvironment-variables","5.reference\u002F03.configuration\u002F11.environment-variables",{"title":376,"path":377,"stem":378,"children":379},"Chain file keys","\u002Freference\u002Fchain-nodes","5.reference\u002F04.chain-nodes\u002Findex",[380,381,385,389],{"title":10,"path":377,"stem":378},{"title":382,"path":383,"stem":384},"Subprocess tasks","\u002Freference\u002Fchain-nodes\u002Fsubprocess-tasks","5.reference\u002F04.chain-nodes\u002F2.subprocess-tasks",{"title":386,"path":387,"stem":388},"Fix loop and judge","\u002Freference\u002Fchain-nodes\u002Ffix-loop","5.reference\u002F04.chain-nodes\u002F3.fix-loop",{"title":390,"path":391,"stem":392},"Result file","\u002Freference\u002Fchain-nodes\u002Fresult-file","5.reference\u002F04.chain-nodes\u002F4.result-file",{"title":394,"path":395,"stem":396,"children":397},"Agent harnesses","\u002Freference\u002Fharnesses","5.reference\u002F05.harnesses\u002Findex",[398,399,403,407,411,415],{"title":10,"path":395,"stem":396},{"title":400,"path":401,"stem":402},"Unattended runs","\u002Freference\u002Fharnesses\u002Funattended-runs","5.reference\u002F05.harnesses\u002F2.unattended-runs",{"title":404,"path":405,"stem":406},"Agent profiles","\u002Freference\u002Fharnesses\u002Fagent-profiles","5.reference\u002F05.harnesses\u002F3.agent-profiles",{"title":408,"path":409,"stem":410},"Harness definition files","\u002Freference\u002Fharnesses\u002Fharness-files","5.reference\u002F05.harnesses\u002F4.harness-files",{"title":412,"path":413,"stem":414},"Fallback and escalation","\u002Freference\u002Fharnesses\u002Ffallback-and-escalation","5.reference\u002F05.harnesses\u002F5.fallback-and-escalation",{"title":416,"path":417,"stem":418},"Cost reporting","\u002Freference\u002Fharnesses\u002Fcost-reporting","5.reference\u002F05.harnesses\u002F6.cost-reporting",{"title":420,"path":421,"stem":422},"Permission gate","\u002Freference\u002Fpermissions","5.reference\u002F06.permissions",{"title":424,"path":425,"stem":426},"Inbound triggers","\u002Freference\u002Ftriggers","5.reference\u002F07.triggers",{"title":428,"path":429,"stem":430,"children":431},"HTTP API","\u002Freference\u002Fhttp-api","5.reference\u002F08.http-api\u002Findex",[432,433,437,441,445,449,453,457],{"title":10,"path":429,"stem":430},{"title":434,"path":435,"stem":436},"Filing, reading and changing work items","\u002Freference\u002Fhttp-api\u002Fwork-items","5.reference\u002F08.http-api\u002F2.work-items",{"title":438,"path":439,"stem":440},"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":442,"path":443,"stem":444},"The work item object","\u002Freference\u002Fhttp-api\u002Fwork-item-object","5.reference\u002F08.http-api\u002F4.work-item-object",{"title":446,"path":447,"stem":448},"Budget, events, diff and documents","\u002Freference\u002Fhttp-api\u002Fbudget-and-events","5.reference\u002F08.http-api\u002F5.budget-and-events",{"title":450,"path":451,"stem":452},"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":454,"path":455,"stem":456},"Drafts","\u002Freference\u002Fhttp-api\u002Fdrafts","5.reference\u002F08.http-api\u002F7.drafts",{"title":458,"path":459,"stem":460},"Ops for each draft area","\u002Freference\u002Fhttp-api\u002Fdraft-ops","5.reference\u002F08.http-api\u002F8.draft-ops",{"title":462,"path":463,"stem":464},"MCP tools","\u002Freference\u002Fmcp-tools","5.reference\u002F09.mcp-tools",{"title":466,"path":467,"stem":468},"Events","\u002Freference\u002Fevents","5.reference\u002F10.events",{"title":470,"path":471,"stem":472,"children":473},"Security and project","\u002Fproject","6.project",[474,476,480,484,488,492,496,500],{"title":10,"path":471,"stem":475},"6.project\u002Findex",{"title":477,"path":478,"stem":479},"Security","\u002Fproject\u002Fsecurity","6.project\u002F1.security",{"title":481,"path":482,"stem":483},"Data and privacy","\u002Fproject\u002Fdata-and-privacy","6.project\u002F2.data-and-privacy",{"title":485,"path":486,"stem":487},"What's new in 2.0","\u002Fproject\u002Fwhats-new","6.project\u002F3.whats-new",{"title":489,"path":490,"stem":491},"Status and support","\u002Fproject\u002Fstatus-and-support","6.project\u002F4.status-and-support",{"title":493,"path":494,"stem":495},"Architecture","\u002Fproject\u002Farchitecture","6.project\u002F5.architecture",{"title":497,"path":498,"stem":499},"Source map","\u002Fproject\u002Fsource-map","6.project\u002F6.source-map",{"title":501,"path":502,"stem":503},"Contributing","\u002Fproject\u002Fcontributing","6.project\u002F7.contributing",{"id":505,"title":36,"body":506,"description":1355,"extension":1356,"links":1357,"meta":1358,"navigation":1359,"path":37,"seo":1360,"stem":38,"__hash__":1361},"docs\u002F2.concepts\u002F1.how-a-work-item-runs.md",{"type":507,"value":508,"toc":1336},"minimark",[509,525,530,537,672,675,685,688,708,711,718,721,727,757,763,847,853,859,864,884,899,903,913,916,927,1144,1151,1157,1161,1187,1190,1209,1212,1218,1224,1236,1239,1245,1248,1279,1282,1287,1290,1293,1310,1314],[510,511,512,513,518,519,521,522,524],"p",{},"A ",[514,515,517],"a",{"href":516},"\u002Fconcepts\u002Fvocabulary#work-item","work item"," moves through eight stages, from the moment you file it to the\nmoment it is archived. This page follows it through them, using the words\ndefined in ",[514,520,48],{"href":49},". The statuses it holds on the way\nare on ",[514,523,282],{"href":283},".",[526,527,529],"h2",{"id":528},"from-filing-to-archive","From filing to archive",[510,531,532],{},[533,534],"img",{"alt":535,"src":536},"A work item's lifecycle: filed, intake, paused, started, the default chain's nodes and gates, then merge, completion and archive","\u002Fdiagrams\u002Flifecycle.svg",[538,539,540,568,583,589,613,641,652,662],"ol",{},[541,542,543,547,548,552,553,557,558,562,563,567],"li",{},[544,545,546],"strong",{},"Filing."," You file an item from the web UI, ",[549,550,551],"code",{},"kraft item create",", or an\nagent over MCP. A ",[514,554,556],{"href":555},"\u002Fconcepts\u002Fvocabulary#trigger","trigger"," files one too, and so\ndoes ",[514,559,561],{"href":560},"\u002Fconcepts\u002Fvocabulary#auto-intake","auto-intake",", which picks up ready\nissues from ",[514,564,566],{"href":565},"\u002Fconcepts\u002Fvocabulary#beads","beads"," when you turn it on.",[541,569,570,573,574,578,579,524],{},[544,571,572],{},"Intake."," Kraft checks the item, then freezes its chain and ",[514,575,577],{"href":576},"\u002Fconcepts\u002Fvocabulary#policy","policy"," and\ncopies any attached spec or plan. A later edit to a chain file changes\nnothing for this item. See ",[514,580,582],{"href":581},"\u002Fconcepts\u002Fvocabulary#intake","Intake",[541,584,585,588],{},[544,586,587],{},"Paused."," A filed item waits, paused, until you start it. Nothing has\nrun and nothing has been spent.",[541,590,591,594,595,598,599,602,603,607,608,612],{},[544,592,593],{},"Start."," ",[549,596,597],{},"kraft item resume"," (",[544,600,601],{},"Start"," in the board's side panel) claims\nthe item and cuts its worktree. See ",[514,604,606],{"href":605},"#starting-an-item","Starting an item",",\nand ",[514,609,611],{"href":610},"#steering","Steering"," to give it a note on the way.",[541,614,615,618,619,622,623,627,628,632,633,637,638,640],{},[544,616,617],{},"The chain."," Kraft walks the nodes in order. An exec node runs its tasks.\nA gate node stops the item until you decide. The shipped ",[549,620,621],{},"default"," chain's\nnodes are listed under ",[514,624,626],{"href":625},"#the-default-chain","The default chain",". See\n",[514,629,631],{"href":630},"#inside-a-node","Inside a node"," for what a node does, ",[514,634,636],{"href":635},"#chain-revision","Chain revision","\nfor how the chain changes after the plan is approved, and\n",[514,639,611],{"href":610}," for a note to the next agent.",[541,642,643,646,647,651],{},[544,644,645],{},"Landing."," The chain's last nodes mark the merge request ready, wait for\nan approving review if the ",[514,648,650],{"href":649},"\u002Fconcepts\u002Fvocabulary#forge","forge"," requires one, merge it, and wait for the\npost-merge pipeline.",[541,653,654,657,658,661],{},[544,655,656],{},"Completed."," When the last node finishes, the item is ",[549,659,660],{},"completed"," and\nKraft closes the issues it implements in beads.",[541,663,664,667,668,524],{},[544,665,666],{},"Archived."," Archiving removes the worktree and the branch and takes the\nitem off the board. See ",[514,669,671],{"href":670},"#archiving","Archiving",[526,673,606],{"id":674},"starting-an-item",[510,676,677,678,681,682,684],{},"A filed item is paused. ",[549,679,680],{},"--autostart"," starts it at once, with two exceptions: a\nsession Kraft started is refused it, and the MCP tools file only paused items.\nA trigger that files an item is held to the same rule. See\n",[514,683,72],{"href":73},". Auto-intake starts\nwhat it files, but only on a chain with at least one gate.",[510,686,687],{},"Before the first node runs, Kraft:",[689,690,691,699,702],"ul",{},[541,692,693,694,698],{},"cuts a git worktree for the item from its ",[514,695,697],{"href":696},"\u002Fconcepts\u002Fvocabulary#base-branch","base branch",", on its own branch;",[541,700,701],{},"copies the attached documents in; and",[541,703,704,705,524],{},"runs the repo's ",[549,706,707],{},"setup_command",[510,709,710],{},"If a linked bead is still blocked by another bead, the item goes back to\npaused instead.",[510,712,512,713,717],{},[514,714,716],{"href":715},"\u002Fconcepts\u002Fvocabulary#workspace","workspace"," item's members are cut the same way, each as a worktree of its own\nconnected repository, on a branch of the same name.",[526,719,631],{"id":720},"inside-a-node",[510,722,723],{},[533,724],{"alt":725,"src":726},"A chain holds nodes, a node holds steps, a step runs its tasks in parallel, and a task that fails goes to recovery, then the fix loop, then escalation","\u002Fdiagrams\u002Fstructure.svg",[510,728,512,729,732,733,736,737,740,741,744,745,748,749,752,753,756],{},[544,730,731],{},"chain"," is a list of nodes. A ",[544,734,735],{},"gate node"," waits for you. An ",[544,738,739],{},"exec node","\nruns ",[544,742,743],{},"steps"," in order, and the ",[544,746,747],{},"tasks"," in one step in parallel. Each run of\na task is a ",[544,750,751],{},"worker session",": a row with its status, log, result file,\ntokens, and cost. An agent or subprocess task launches a process for it. A\nbuiltin or forge task runs inside Kraft. ",[549,754,755],{},"kraft view logs"," reads a session's\nlog.",[510,758,759,760,762],{},"When a task fails, a node can try three things, in this order. Each is\noptional, and each is declared on the node in its chain file (see\n",[514,761,376],{"href":377},").",[764,765,766,782],"table",{},[767,768,769],"thead",{},[770,771,772,776,779],"tr",{},[773,774,775],"th",{},"Stage",[773,777,778],{},"What it runs",[773,780,781],{},"It ends when",[783,784,785,803,827],"tbody",{},[770,786,787,797,800],{},[788,789,790,598,793,796],"td",{},[544,791,792],{},"Recovery",[549,794,795],{},"on_failure",")",[788,798,799],{},"Repair steps, once per entry into the node, then the whole node again. It is for a problem outside the code, such as a label to fix on the merge request.",[788,801,802],{},"The repair steps finish and the node runs again.",[770,804,805,816,824],{},[788,806,807,598,813,796],{},[544,808,809],{},[514,810,812],{"href":811},"\u002Fconcepts\u002Fvocabulary#fix-loop","Fix loop",[549,814,815],{},"fix_loop",[788,817,818,819,823],{},"A repair agent, then the whole node again from its first step. From the second attempt on, a ",[514,820,822],{"href":821},"\u002Fconcepts\u002Fvocabulary#judge","judge"," agent decides whether the attempts are still converging.",[788,825,826],{},"The node passes, the loop reaches its attempt limit or its wall clock, or the judge stops it.",[770,828,829,837,844],{},[788,830,831,598,834,796],{},[544,832,833],{},"Escalation",[549,835,836],{},"escalation",[788,838,839,840,524],{},"A task that runs once the node is ",[514,841,843],{"href":842},"\u002Fconcepts\u002Fvocabulary#stuck","stuck",[788,845,846],{},"If it succeeds, the node gets a fresh entry from its first step. If it does not, the item stops and waits for you.",[510,848,849,850,852],{},"See ",[514,851,386],{"href":387}," for the loop's keys.",[510,854,855,856,524],{},"Some stops skip all three and go straight to you: a config error, a budget or\ntime cap, an infrastructure failure, a wait timeout, and an agent's question.\nNo repair task can fix those. A rate limit does not stop and wait for you at\nall. It parks the item as ",[549,857,858],{},"rate_limited",[860,861,863],"h3",{"id":862},"escalation-turns","Escalation turns",[510,865,866,867,869,870,873,874,876,877,883],{},"A node with no ",[549,868,836],{}," of its own gets a generic one instead. When it\nstops stuck, and ",[549,871,872],{},"auto_escalate_stuck"," is on in ",[549,875,310],{}," (the default),\nKraft starts an ",[544,878,879],{},[514,880,882],{"href":881},"\u002Fconcepts\u002Fvocabulary#escalation-turn","escalation turn",": an agent that reads the stopped item and\nmay retry it.",[510,885,886,887,890,891,894,895,898],{},"It answers only stuck stops, never the ones listed above, and at most\n",[549,888,889],{},"auto_escalate_stuck_cap"," times. You can also start or continue one yourself\nwith ",[549,892,893],{},"kraft item escalate",". The\n",[514,896,477],{"href":897},"\u002Fproject\u002Fsecurity#escalation-turns-can-force-push"," page lists what an escalation\nturn is allowed to do.",[526,900,902],{"id":901},"the-shipped-chains","The shipped chains",[510,904,905,906,908,909,912],{},"Kraft ships two chains: ",[549,907,621],{},", the full process, and ",[549,910,911],{},"quick-task",", the\nsmallest.",[860,914,626],{"id":915},"the-default-chain",[510,917,918,919,921,922,926],{},"The ",[549,920,621],{}," chain has these nodes, in order. A node marked ",[923,924,925],"em",{},"gate"," waits for\nyou.",[764,928,929,939],{},[767,930,931],{},[770,932,933,936],{},[773,934,935],{},"Node",[773,937,938],{},"What it does",[783,940,941,951,964,974,986,996,1008,1018,1028,1038,1050,1060,1070,1082,1092,1104,1114,1124,1134],{},[770,942,943,948],{},[788,944,945],{},[549,946,947],{},"spec",[788,949,950],{},"An agent writes the specification.",[770,952,953,959],{},[788,954,955,958],{},[549,956,957],{},"spec_approval"," (gate)",[788,960,961,962,524],{},"You approve it. A reject sends the item back to ",[549,963,947],{},[770,965,966,971],{},[788,967,968],{},[549,969,970],{},"plan",[788,972,973],{},"An agent writes the implementation plan.",[770,975,976,981],{},[788,977,978,958],{},[549,979,980],{},"plan_approval",[788,982,983,984,524],{},"You approve it. A reject goes back to ",[549,985,970],{},[770,987,988,993],{},[788,989,990],{},[549,991,992],{},"chain_revision",[788,994,995],{},"An agent reads the spec and plan against the nodes still to run and proposes changes.",[770,997,998,1003],{},[788,999,1000,958],{},[549,1001,1002],{},"chain_revision_approval",[788,1004,1005,1006,524],{},"You approve the proposal. It passes without asking you when nothing was proposed. A reject goes back to ",[549,1007,992],{},[770,1009,1010,1015],{},[788,1011,1012],{},[549,1013,1014],{},"implementation",[788,1016,1017],{},"An agent implements the approved plan.",[770,1019,1020,1025],{},[788,1021,1022],{},[549,1023,1024],{},"verification",[788,1026,1027],{},"The changed test scopes run, then a code review, inside a fix loop.",[770,1029,1030,1035],{},[788,1031,1032],{},[549,1033,1034],{},"work_brief",[788,1036,1037],{},"An agent writes the brief you read before the merge request exists.",[770,1039,1040,1045],{},[788,1041,1042,958],{},[549,1043,1044],{},"local_review",[788,1046,1047,1048,524],{},"You approve creating a draft merge request. A reject goes back to ",[549,1049,1014],{},[770,1051,1052,1057],{},[788,1053,1054],{},[549,1055,1056],{},"describe_merge_request",[788,1058,1059],{},"An agent writes the merge request's title, labels, reviewers, and description.",[770,1061,1062,1067],{},[788,1063,1064],{},[549,1065,1066],{},"draft_merge_request",[788,1068,1069],{},"Kraft rebases onto the base branch, then opens a draft merge request.",[770,1071,1072,1077],{},[788,1073,1074],{},[549,1075,1076],{},"merge_request_feedback",[788,1078,1079,1080,524],{},"Kraft waits for CI and the automated review, inside a fix loop. If the base branch moves, the chain restarts from ",[549,1081,1024],{},[770,1083,1084,1089],{},[788,1085,1086],{},[549,1087,1088],{},"work_item_summary",[788,1090,1091],{},"An agent writes the summary and review brief.",[770,1093,1094,1099],{},[788,1095,1096,958],{},[549,1097,1098],{},"final_review",[788,1100,1101,1102,524],{},"You review the whole item and its summary. A reject goes back to ",[549,1103,1014],{},[770,1105,1106,1111],{},[788,1107,1108],{},[549,1109,1110],{},"mark_ready",[788,1112,1113],{},"Kraft marks the merge request ready.",[770,1115,1116,1121],{},[788,1117,1118],{},[549,1119,1120],{},"external_approval",[788,1122,1123],{},"Kraft waits for an approving review if the forge requires one.",[770,1125,1126,1131],{},[788,1127,1128],{},[549,1129,1130],{},"merge",[788,1132,1133],{},"Kraft merges the merge request.",[770,1135,1136,1141],{},[788,1137,1138],{},[549,1139,1140],{},"post_merge_ci",[788,1142,1143],{},"Kraft waits for the post-merge pipeline.",[510,1145,1146,1147,524],{},"How long each wait lasts and how many attempts each fix loop gets are in\n",[514,1148,1150],{"href":1149},"\u002Fconcepts\u002Fcaps-and-budgets#the-default-caps","The default caps",[510,1152,1153,1156],{},[549,1154,1155],{},"kraft admin templates show default --resolved"," prints the chain with every\nlibrary component expanded.",[860,1158,1160],{"id":1159},"the-quick-task-chain","The quick-task chain",[510,1162,918,1163,1165,1166,1168,1169,1172,1173,1175,1176,1179,1180,1183,1184,1186],{},[549,1164,911],{}," chain is two nodes with no gates: ",[549,1167,1014],{},", then\n",[549,1170,1171],{},"verify",". ",[549,1174,1171],{}," runs the repo's own ",[549,1177,1178],{},"test_scopes"," or ",[549,1181,1182],{},"test_command"," from\n",[549,1185,292],{},". On a repo that declares neither, the item stops and waits for you\nwith a config error, and Kraft guesses no command.",[526,1188,636],{"id":1189},"chain-revision",[510,1191,1192,1193,1195,1196,1179,1199,1202,1203,1206,1207,524],{},"A chain is picked before its spec and plan exist. Once the plan is approved,\nthe ",[549,1194,992],{}," node has an agent read both against the nodes still to run\nand propose changes. It may skip a node, add one built from library components,\nor adjust a task's ",[549,1197,1198],{},"model",[549,1200,1201],{},"effort",", or an operational limit, within the\n",[549,1204,1205],{},"maxima"," in ",[549,1208,310],{},[510,1210,1211],{},"Only nodes after its gate may change. A gate never does. Nodes that open,\ndescribe, sync, ready, or merge the merge request, or wait on its checks, cannot\nbe skipped.",[510,1213,1214,1215,1217],{},"Usually it proposes nothing, and the ",[549,1216,1002],{}," gate passes\nwithout asking anyone. When it does propose something, the gate shows the\nrationale, each change with the line of the spec or plan behind it, and the\ndiff.",[510,1219,1220,1221,1223],{},"Approving replaces the item's chain with exactly the revision you were shown.\nKraft ties your approval to what you read: if the revision changed since, it\nrefuses the approval until you look again. A proposal that would not validate\ncannot be approved. Reject it back to ",[549,1222,992],{}," instead.",[510,1225,918,1226,1229,1230,1235],{},[549,1227,1228],{},"--digest"," flag of ",[514,1231,1232],{"href":267},[549,1233,1234],{},"kraft item approve"," pins an\napproval to the revision you read.",[526,1237,611],{"id":1238},"steering",[510,1240,512,1241,1244],{},[544,1242,1243],{},"steer"," is a note to the next agent Kraft launches for this item. The first\nagent task that runs uses it once, and then Kraft drops it. There is no channel\ninto an agent that is already running, so a steer never reaches one. To\nredirect running work, pause it and resume it with a steer.",[510,1246,1247],{},"You give a steer in four ways:",[689,1249,1250,1260,1266,1273],{},[541,1251,1252,1255,1256,1259],{},[549,1253,1254],{},"kraft item resume ID --steer \"...\""," reaches every paused agent task.\n",[549,1257,1258],{},"--steer-task PATH=TEXT"," addresses one task by its canonical path.",[541,1261,1262,1265],{},[549,1263,1264],{},"kraft item retry ID --steer \"...\""," goes into the prompt of the retried\nnode.",[541,1267,1268,1269,1272],{},"Rejecting a gate with ",[549,1270,1271],{},"--note"," sends the note, as a steer, to the node the\ngate sends the item back to.",[541,1274,1275,1276,1278],{},"Answering an agent's question: ",[549,1277,1254],{}," on an\nitem that stopped with one.",[510,1280,1281],{},"Kraft refuses a steer that no agent task would read, for example on a node\nthat only runs a subprocess or waits on CI. It tells you so rather than\ndropping the text.",[510,1283,1284,1285,524],{},"Review threads are the other way to give feedback. They carry line-level\ncomments and stay until resolved. See\n",[514,1286,76],{"href":77},[526,1288,671],{"id":1289},"archiving",[510,1291,1292],{},"Archiving removes the item's worktree and branch and takes it off the board.\nThe record of what happened stays.",[689,1294,1295,1304,1307],{},[541,1296,1297,1298,1206,1301,1303],{},"You archive by hand, or set ",[549,1299,1300],{},"archive.after_days",[549,1302,310],{}," to archive\nended items automatically. The shipped file sets 30, and deleting the key\nturns it off.",[541,1305,1306],{},"A branch with commits that are nowhere else, such as a cancelled item's\nunpushed work, is kept.",[541,1308,1309],{},"For a workspace item, archiving removes each member's worktree and branch\nfrom its connected repository too, with the same rule for each branch.",[526,1311,1313],{"id":1312},"related","Related",[689,1315,1316,1321,1326,1331],{},[541,1317,1318,1320],{},[514,1319,282],{"href":283},": the seven statuses, the moves between them, and what the board shows.",[541,1322,1323,1325],{},[514,1324,40],{"href":41},": the limits behind the stops that wait for you.",[541,1327,1328,1330],{},[514,1329,376],{"href":377},": the keys that declare steps, recovery, fix loops, and escalation.",[541,1332,1333,1335],{},[514,1334,493],{"href":494},": the process and modules that do all of this.",{"title":1337,"searchDepth":1338,"depth":1338,"links":1339},"",2,[1340,1341,1342,1346,1351,1352,1353,1354],{"id":528,"depth":1338,"text":529},{"id":674,"depth":1338,"text":606},{"id":720,"depth":1338,"text":631,"children":1343},[1344],{"id":862,"depth":1345,"text":863},3,{"id":901,"depth":1338,"text":902,"children":1347},[1348,1349],{"id":915,"depth":1345,"text":626},{"id":1159,"depth":1345,"text":1350},"The quick-​task chain",{"id":1189,"depth":1338,"text":636},{"id":1238,"depth":1338,"text":611},{"id":1289,"depth":1338,"text":671},{"id":1312,"depth":1338,"text":1313},"A work item's path from filing to archive, what happens inside a node, and where a steer, a fix loop and an escalation fit.","md",null,{},true,{"title":36,"description":1355},"g2ugIGpZ898Y5UKx6qGKnBg4agnUNqVwZWWTO5YY6ik",[1363,1365],{"title":10,"path":30,"stem":34,"description":1364,"children":-1},"The lifecycle, limits, permission model, and vocabulary behind Kraft.",{"title":40,"path":41,"stem":42,"description":1366,"children":-1},"How Kraft bounds time, tokens, and dollars, why a raise is bounded, and how a policy resolves from policy.yaml down to a single task.",1791801247892]