[{"data":1,"prerenderedAt":1152},["ShallowReactive",2],{"navigation_docs":3,"-troubleshooting-stop-reasons-in-detail":504,"-troubleshooting-stop-reasons-in-detail-surround":1147},[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":199,"body":506,"description":1140,"extension":1141,"links":1142,"meta":1143,"navigation":1144,"path":200,"seo":1145,"stem":201,"__hash__":1146},"docs\u002F4.troubleshooting\u002F2.stop-reasons-in-detail.md",{"type":507,"value":508,"toc":1123},"minimark",[509,519,524,541,552,589,595,602,626,632,650,680,686,703,719,732,738,745,761,764,770,777,841,847,857,889,893,896,910,921,925,928,948,961,965,979,1015,1021,1025,1039,1048,1065,1094,1098,1119],[510,511,512,513,518],"p",{},"These are the stop reasons that need more than one row to fix. The tables under ",[514,515,517],"a",{"href":516},"\u002Ftroubleshooting\u002Fwhy-did-my-item-stop#find-your-reason","Find your reason"," link here from each one.",[520,521,523],"h2",{"id":522},"forge-authentication-fails","Forge authentication fails",[510,525,526,527,531,532,535,536,540],{},"The stop's ",[528,529,530],"code",{},"facts.cause"," is ",[528,533,534],{},"forge_auth",", and the card reads ",[537,538,539],"strong",{},"Failed"," with the fix under it.",[510,542,543,544,547,548,551],{},"Kraft holds no forge token. It runs ",[528,545,546],{},"gh"," (GitHub) or ",[528,549,550],{},"glab"," (GitLab), and git, as the user the server runs as, and the forge refused what they sent. Nothing in Settings › Repos can supply a token.",[553,554,555,567,582],"ol",{},[556,557,558,559,562,563,566],"li",{},"On the machine the server runs on, sign the forge CLI in: ",[528,560,561],{},"gh auth login",", or ",[528,564,565],{},"glab auth login"," for GitLab.",[556,568,569,570,573,574,577,578,581],{},"If git itself still cannot authenticate, check its credentials: ",[528,571,572],{},"gh auth setup-git",", your SSH key or credential helper. ",[528,575,576],{},"gh auth status"," shows who the CLI is signed in as. ",[528,579,580],{},"kraft admin doctor"," checks only that the CLI is installed, not that it is signed in.",[556,583,584,585,588],{},"Run ",[528,586,587],{},"kraft item retry ID",".",[520,590,592],{"id":591},"no-forge-is-recorded-for-this-repo",[528,593,594],{},"no forge is recorded for this repo",[510,596,597,598,601],{},"The repo had no GitHub or GitLab ",[528,599,600],{},"origin"," when you connected it, so Kraft does not know which forge CLI to run.",[553,603,604,622],{},[556,605,606,607,610,611,614,615,618,619,621],{},"Set ",[528,608,609],{},"forge: github"," or ",[528,612,613],{},"forge: gitlab"," on the repo in Settings › Repos, then ",[537,616,617],{},"Review & publish"," (or set it in ",[528,620,292],{},").",[556,623,584,624,588],{},[528,625,587],{},[520,627,629],{"id":628},"declares-neither-test_scopes-nor-test_command",[528,630,631],{},"declares neither test_scopes nor test_command",[510,633,634,635,638,639,642,643,638,646,649],{},"The item stops at its test node (",[528,636,637],{},"verify"," on ",[528,640,641],{},"quick-task",", ",[528,644,645],{},"verification",[528,647,648],{},"default",") because Kraft will not guess a test command.",[553,651,652,676],{},[556,653,606,654,657,658,661,662,664,665,667,668,671,672,675],{},[528,655,656],{},"test_command"," (or ",[528,659,660],{},"test_scopes",") on the repo in Settings › Repos, then ",[537,663,617],{},", or set it in ",[528,666,292],{},". For a repo with no tests, set ",[528,669,670],{},"\"\"",". ",[528,673,674],{},"kraft repo connect PATH"," again saves the command it now proposes.",[556,677,584,678,588],{},[528,679,587],{},[520,681,683],{"id":682},"nothing-registers-it-for-claude-code",[528,684,685],{},"nothing registers it for Claude Code",[510,687,688,689,692,693,638,696,642,698,638,701,588],{},"No ",[528,690,691],{},"kraft"," MCP server is registered, so Kraft refused a Claude worker. The item stops at its first agent step with 0 tokens spent: ",[528,694,695],{},"spec",[528,697,648],{},[528,699,700],{},"implementation",[528,702,641],{},[553,704,705,715],{},[556,706,707,708,711,712,588],{},"Install the Kraft plugin and run ",[528,709,710],{},"\u002Fkraft:onboard",", or run ",[528,713,714],{},"kraft admin init",[556,716,584,717,588],{},[528,718,587],{},[510,720,721,723,724,727,728,588],{},[528,722,580],{},"'s ",[528,725,726],{},"mcp server"," row checks the same thing: see ",[514,729,731],{"href":730},"\u002Ftroubleshooting\u002Fdoctor-failures#the-mcp-server-warning","The mcp server warning",[520,733,735],{"id":734},"stored-model-override-is-not-a-model-id",[528,736,737],{},"stored model override is not a model id",[510,739,740,741,744],{},"A model override on the item or a node holds text that is not a model id, such as ",[528,742,743],{},"sonnet 4",". The reason ends with the stored text.",[553,746,747,757],{},[556,748,749,750,610,753,756],{},"Run the command the reason names, ",[528,751,752],{},"kraft item set-overrides ID --clear",[528,754,755],{},"kraft item set-node-override ID --node N --clear",", or set a valid model.",[556,758,584,759,588],{},[528,760,587],{},[510,762,763],{},"Before 2.0, an override could hold any text, so an old item can still carry one.",[520,765,767],{"id":766},"no-username-configured",[528,768,769],{},"no user.name configured",[510,771,772,773,776],{},"The same stop names ",[528,774,775],{},"user.email"," when that is the missing one. git has no commit identity for the repo, so Kraft would not make the item's worktree: its commits would fail or carry an invented author.",[553,778,779,837],{},[556,780,781,782,829,832,833,836],{},"Set both for the user Kraft runs as, for every repo:",[783,784,789],"pre",{"className":785,"code":786,"language":787,"meta":788,"style":788},"language-bash shiki shiki-themes github-light-high-contrast github-light-high-contrast github-dark-high-contrast","git config --global user.name \"Your Name\"\ngit config --global user.email you@example.com\n","bash","",[528,790,791,814],{"__ignoreMap":788},[792,793,796,800,804,808,811],"span",{"class":794,"line":795},"line",1,[792,797,799],{"class":798},"szw1H","git",[792,801,803],{"class":802},"semJd"," config",[792,805,807],{"class":806},"ssYy9"," --global",[792,809,810],{"class":802}," user.name",[792,812,813],{"class":802}," \"Your Name\"\n",[792,815,817,819,821,823,826],{"class":794,"line":816},2,[792,818,799],{"class":798},[792,820,803],{"class":802},[792,822,807],{"class":806},[792,824,825],{"class":802}," user.email",[792,827,828],{"class":802}," you@example.com\n",[830,831],"br",{},"To set them for one repo, run the same commands without ",[528,834,835],{},"--global"," inside it.",[556,838,584,839,588],{},[528,840,587],{},[520,842,844],{"id":843},"no-setup_command-declared",[528,845,846],{},"no setup_command declared",[510,848,849,850,853,854,856],{},"The repo has no ",[528,851,852],{},"setup_command",", and Kraft will not guess what to run in a fresh worktree. This is the usual first stop on a repo with no lockfile Kraft knows (see ",[514,855,298],{"href":299},"). The item stops at its first node.",[553,858,859,879,885],{},[556,860,606,861,864,865,867,868,870,871,874,875,867,877,621],{},[537,862,863],{},"setup command"," on the repo in Settings › Repos (or ",[528,866,852],{}," in ",[528,869,292],{},"). If the repo has nothing to install, tick ",[537,872,873],{},"No setup needed"," there instead (",[528,876,670],{},[528,878,292],{},[556,880,881,882,884],{},"In Settings, click ",[537,883,617],{},": until you do, the change is a draft and the retry stops again.",[556,886,584,887,588],{},[528,888,587],{},[520,890,892],{"id":891},"git-would-not-start-the-rebase","Git would not start the rebase",[510,894,895],{},"Nothing was rebased. Most often the base now tracks a file the worktree has untracked, such as a note or a script the agent never committed, and git will not overwrite it.",[553,897,898,903,906],{},[556,899,900,588],{},[528,901,902],{},"cd \"$(kraft repo path ID)\"",[556,904,905],{},"Look at the files git names, then move, delete or commit them.",[556,907,584,908,588],{},[528,909,587],{},[510,911,912,913,916,917,588],{},"A ",[528,914,915],{},"uv.lock"," the setup command wrote and nobody changed is not one of these: Kraft sets it aside for the rebase. One that an older release recorded without a digest is kept in place, in case the agent edited it: see ",[514,918,920],{"href":919},"\u002Fguides\u002Frun\u002Fupgrade-from-0-x-or-a-release-candidate#upgrading-from-a-150-release-candidate","Upgrade from 1.4 or an older release",[520,922,924],{"id":923},"a-git-operation-is-in-progress","A git operation is in progress",[510,926,927],{},"The worktree holds a rebase, merge, cherry-pick, revert, bisect or autostash. A sandboxed worker can plant one to move one of your branches. A rebase of Kraft's own that was cut short (a server killed mid-rebase, or an abort that could not run) leaves one too.",[553,929,930,933,944],{},[556,931,932],{},"Look at the named file first. If you did not leave it there yourself, delete it as the reason says.",[556,934,935,936,939,940,943],{},"If deleting it leaves ",[528,937,938],{},"HEAD"," detached, check the item's branch out again with ",[528,941,942],{},"git checkout -f \u003Cbranch>",", as the reason names it. The branch still has the item's commits.",[556,945,584,946,588],{},[528,947,587],{},[510,949,950,951,642,954,610,957,960],{},"Never run ",[528,952,953],{},"git rebase --abort",[528,955,956],{},"git merge --abort",[528,958,959],{},"--continue"," on it: that is what moves the branch.",[520,962,964],{"id":963},"a-policy-budget-or-token-cap-refused-the-launch","A policy budget or token cap refused the launch",[510,966,967,968,610,971,974,975,978],{},"A policy ",[528,969,970],{},"budget_usd",[528,972,973],{},"token_budget"," refused the next launch. The message names the scope: ",[528,976,977],{},"the work item",", or a node, step or task path in backticks.",[510,980,981,984,985,987,988,991,992,994,995,610,998,1001,1002,642,1004,1007,1008,1010,1011,1014],{},[528,982,983],{},"raise-budget"," is refused for a ",[528,986,973],{}," or a path, and the item's page offers ",[537,989,990],{},"Retry"," with no raise. ",[514,993,80],{"href":81}," has the fix for each scope: ",[537,996,997],{},"Raise cap",[528,999,1000],{},"kraft item raise-budget"," for the item-wide ",[528,1003,970],{},[528,1005,1006],{},"kraft item set-policy"," for a ",[528,1009,973],{},", and for a cap the chain sets on a path, ",[528,1012,1013],{},"kraft item skip"," or a change to the chain.",[510,1016,1017,1018,1020],{},"The item's policy was fixed when it was filed, so editing ",[528,1019,310],{}," or the chain reaches only items filed afterwards.",[520,1022,1024],{"id":1023},"a-budget-cap-cannot-be-checked","A budget cap cannot be checked",[510,1026,1027,1028,1031,1032,1034,1035,588],{},"A launch in that scope ran on a harness that reports tokens but no cost, on a model ",[528,1029,1030],{},"prices.json"," cannot price. Kraft cannot show the scope is under its ",[528,1033,970],{}," and will not count the launch as free. Which harnesses these are is on ",[514,1036,1038],{"href":1037},"\u002Freference\u002Fharnesses\u002Fcost-reporting#harnesses-that-report-no-cost","Harnesses that report no cost",[510,1040,1041,1042,1044,1045,1047],{},"Raising ",[528,1043,970],{}," does not help: the stop stays while any ",[528,1046,970],{}," applies to the scope.",[553,1049,1050,1061],{},[556,1051,1052,1053,1056,1057,1060],{},"Clear the item-wide cap with ",[528,1054,1055],{},"kraft item set-policy ID --policy budget_usd=none",". Add ",[528,1058,1059],{},"--policy token_budget=N"," to keep a bound.",[556,1062,584,1063,588],{},[528,1064,587],{},[510,1066,1067,1068,1071,1072,642,1075,1077,1078,1080,1081,1084,1085,1087,1088,1090,1091,1093],{},"The ",[528,1069,1070],{},"budget_usd=none"," fix clears a cap from the chain's own ",[528,1073,1074],{},"policy:",[528,1076,292],{}," or a ",[528,1079,310],{}," default too, but is refused under a ",[528,1082,1083],{},"maxima.work_item.budget_usd",", and does not lift a cap the chain set on a node, step or task. For those, skip that node with ",[528,1086,1013],{},", or bound that harness's scopes with ",[528,1089,973],{}," in place of ",[528,1092,970],{}," and file the item again.",[520,1095,1097],{"id":1096},"related","Related",[1099,1100,1101,1106,1111],"ul",{},[556,1102,1103,1105],{},[514,1104,195],{"href":196},": the tables that link here, and the two waits that need no stop.",[556,1107,1108,1110],{},[514,1109,211],{"href":212},": the stops of a sandboxed item.",[556,1112,1113,1115,1116,1118],{},[514,1114,207],{"href":208},": every row ",[528,1117,580],{}," can print, and how to clear it.",[1120,1121,1122],"style",{},"html pre.shiki code .szw1H, html code.shiki .szw1H{--shiki-light:#702C00;--shiki-default:#702C00;--shiki-dark:#FFB757}html pre.shiki code .semJd, html code.shiki .semJd{--shiki-light:#032563;--shiki-default:#032563;--shiki-dark:#ADDCFF}html pre.shiki code .ssYy9, html code.shiki .ssYy9{--shiki-light:#023B95;--shiki-default:#023B95;--shiki-dark:#91CBFF}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":788,"searchDepth":816,"depth":816,"links":1124},[1125,1126,1127,1129,1130,1131,1133,1135,1136,1137,1138,1139],{"id":522,"depth":816,"text":523},{"id":591,"depth":816,"text":594},{"id":628,"depth":816,"text":1128},"declares neither test_​scopes nor test_​command",{"id":682,"depth":816,"text":685},{"id":734,"depth":816,"text":737},{"id":766,"depth":816,"text":1132},"no user.​name configured",{"id":843,"depth":816,"text":1134},"no setup_​command declared",{"id":891,"depth":816,"text":892},{"id":923,"depth":816,"text":924},{"id":963,"depth":816,"text":964},{"id":1023,"depth":816,"text":1024},{"id":1096,"depth":816,"text":1097},"The stop reasons that need more than one table row, each with what it means and the numbered fix.","md",null,{},true,{"title":199,"description":1140},"ZjDX5JSsRsvbkzWpdnR9u8aZh-p-LUAwaN7P2CsUfnw",[1148,1150],{"title":195,"path":196,"stem":197,"description":1149,"children":-1},"Find the reason a work item stopped and needs you, the fix for each, and what to do when an item waits on CI or a review.",{"title":203,"path":204,"stem":205,"description":1151,"children":-1},"Fix a `kraft` command that is not found, a server that will not start because its port is taken, and a 403 \"unexpected Host\" from a webhook or proxy.",1791801248663]