[{"data":1,"prerenderedAt":1946},["ShallowReactive",2],{"navigation_docs":3,"-get-started-troubleshooting":270,"-get-started-troubleshooting-surround":1941},[4,28,51,110,243],{"title":5,"path":6,"stem":7,"children":8},"Get started","\u002Fget-started","1.get-started",[9,12,16,20,24],{"title":10,"path":6,"stem":11},"Overview","1.get-started\u002Findex",{"title":13,"path":14,"stem":15},"Why Kraft","\u002Fget-started\u002Fwhy-kraft","1.get-started\u002F0.why-kraft",{"title":17,"path":18,"stem":19},"Install","\u002Fget-started\u002Finstall","1.get-started\u002F1.install",{"title":21,"path":22,"stem":23},"Your first work item","\u002Fget-started\u002Ffirst-work-item","1.get-started\u002F2.first-work-item",{"title":25,"path":26,"stem":27},"Troubleshooting and FAQ","\u002Fget-started\u002Ftroubleshooting","1.get-started\u002F3.troubleshooting",{"title":29,"path":30,"stem":31,"children":32},"Concepts","\u002Fconcepts","2.concepts",[33,35,39,43,47],{"title":10,"path":30,"stem":34},"2.concepts\u002Findex",{"title":36,"path":37,"stem":38},"Vocabulary","\u002Fconcepts\u002Fvocabulary","2.concepts\u002F1.vocabulary",{"title":40,"path":41,"stem":42},"How a work item runs","\u002Fconcepts\u002Fhow-a-work-item-runs","2.concepts\u002F2.how-a-work-item-runs",{"title":44,"path":45,"stem":46},"Caps and budgets","\u002Fconcepts\u002Fcaps-and-budgets","2.concepts\u002F3.caps-and-budgets",{"title":48,"path":49,"stem":50},"Why a permission gate","\u002Fconcepts\u002Fpermission-gate","2.concepts\u002F4.permission-gate",{"title":52,"path":53,"stem":54,"children":55},"Guides","\u002Fguides","3.guides",[56,58,62,66,70,74,78,82,86,90,94,98,102,106],{"title":10,"path":53,"stem":57},"3.guides\u002Findex",{"title":59,"path":60,"stem":61},"Use Kraft from your agent","\u002Fguides\u002Fagent-integration","3.guides\u002F01.agent-integration",{"title":63,"path":64,"stem":65},"Kraft Lite","\u002Fguides\u002Fkraft-lite","3.guides\u002F02.kraft-lite",{"title":67,"path":68,"stem":69},"Remote access","\u002Fguides\u002Fremote-access","3.guides\u002F03.remote-access",{"title":71,"path":72,"stem":73},"Add or override a harness","\u002Fguides\u002Fadding-a-harness","3.guides\u002F04.adding-a-harness",{"title":75,"path":76,"stem":77},"Schedule or webhook work","\u002Fguides\u002Fschedule-and-webhook-work","3.guides\u002F05.schedule-and-webhook-work",{"title":79,"path":80,"stem":81},"Add a security review or a gate reviewer","\u002Fguides\u002Fadd-review-agents","3.guides\u002F06.add-review-agents",{"title":83,"path":84,"stem":85},"Kraft for VS Code","\u002Fguides\u002Fvscode","3.guides\u002F07.vscode",{"title":87,"path":88,"stem":89},"Reviewing a change","\u002Fguides\u002Freview-a-change","3.guides\u002F08.review-a-change",{"title":91,"path":92,"stem":93},"Write your own chain","\u002Fguides\u002Fwrite-your-own-chain","3.guides\u002F09.write-your-own-chain",{"title":95,"path":96,"stem":97},"Switch a harness","\u002Fguides\u002Fswitch-harness","3.guides\u002F10.switch-harness",{"title":99,"path":100,"stem":101},"Upgrade your templates","\u002Fguides\u002Fupgrading-templates","3.guides\u002F11.upgrading-templates",{"title":103,"path":104,"stem":105},"Operations","\u002Fguides\u002Foperations","3.guides\u002F12.operations",{"title":107,"path":108,"stem":109},"Worker Kit","\u002Fguides\u002Fworker-kit","3.guides\u002F13.worker-kit",{"title":111,"path":112,"stem":113,"children":114},"Reference","\u002Freference","4.reference",[115,117,139,183,201,205,227,231,235,239],{"title":10,"path":112,"stem":116},"4.reference\u002Findex",{"title":118,"path":119,"stem":120,"children":121},"CLI","\u002Freference\u002Fcli","4.reference\u002F1.cli\u002Findex",[122,123,127,131,135],{"title":10,"path":119,"stem":120},{"title":124,"path":125,"stem":126},"Item verbs","\u002Freference\u002Fcli\u002Fitem","4.reference\u002F1.cli\u002F2.item",{"title":128,"path":129,"stem":130},"View verbs","\u002Freference\u002Fcli\u002Fview","4.reference\u002F1.cli\u002F3.view",{"title":132,"path":133,"stem":134},"Repo verbs","\u002Freference\u002Fcli\u002Frepo","4.reference\u002F1.cli\u002F4.repo",{"title":136,"path":137,"stem":138},"Admin verbs","\u002Freference\u002Fcli\u002Fadmin","4.reference\u002F1.cli\u002F5.admin",{"title":140,"path":141,"stem":142,"children":143},"Configuration","\u002Freference\u002Fconfiguration","4.reference\u002F2.configuration\u002Findex",[144,145,155,159,163,167,171,175,179],{"title":10,"path":141,"stem":142},{"title":146,"path":147,"stem":148,"children":149},"Repos","\u002Freference\u002Fconfiguration\u002Frepos","4.reference\u002F2.configuration\u002F2.repos\u002Findex",[150,151],{"title":10,"path":147,"stem":148},{"title":152,"path":153,"stem":154},"Workspaces","\u002Freference\u002Fconfiguration\u002Frepos\u002Fworkspaces","4.reference\u002F2.configuration\u002F2.repos\u002F3.workspaces",{"title":156,"path":157,"stem":158},"Policy","\u002Freference\u002Fconfiguration\u002Fpolicy","4.reference\u002F2.configuration\u002F3.policy",{"title":160,"path":161,"stem":162},"Library and chains","\u002Freference\u002Fconfiguration\u002Flibrary-and-chains","4.reference\u002F2.configuration\u002F4.library-and-chains",{"title":164,"path":165,"stem":166},"Harnesses file","\u002Freference\u002Fconfiguration\u002Fharnesses-file","4.reference\u002F2.configuration\u002F5.harnesses-file",{"title":168,"path":169,"stem":170},"Access","\u002Freference\u002Fconfiguration\u002Faccess","4.reference\u002F2.configuration\u002F6.access",{"title":172,"path":173,"stem":174},"Intake","\u002Freference\u002Fconfiguration\u002Fintake","4.reference\u002F2.configuration\u002F7.intake",{"title":176,"path":177,"stem":178},"Sandbox host","\u002Freference\u002Fconfiguration\u002Fsandbox","4.reference\u002F2.configuration\u002F8.sandbox",{"title":180,"path":181,"stem":182},"Environment variables","\u002Freference\u002Fconfiguration\u002Fenvironment-variables","4.reference\u002F2.configuration\u002F9.environment-variables",{"title":184,"path":185,"stem":186,"children":187},"Chain nodes","\u002Freference\u002Fchain-nodes","4.reference\u002F3.chain-nodes\u002Findex",[188,189,193,197],{"title":10,"path":185,"stem":186},{"title":190,"path":191,"stem":192},"Subprocess tasks","\u002Freference\u002Fchain-nodes\u002Fsubprocess-tasks","4.reference\u002F3.chain-nodes\u002F2.subprocess-tasks",{"title":194,"path":195,"stem":196},"Fix loop and judge","\u002Freference\u002Fchain-nodes\u002Ffix-loop","4.reference\u002F3.chain-nodes\u002F3.fix-loop",{"title":198,"path":199,"stem":200},"Result file","\u002Freference\u002Fchain-nodes\u002Fresult-file","4.reference\u002F3.chain-nodes\u002F4.result-file",{"title":202,"path":203,"stem":204},"Permission gate","\u002Freference\u002Fpermissions","4.reference\u002F4.permissions",{"title":206,"path":207,"stem":208,"children":209},"Agent harnesses","\u002Freference\u002Fharnesses","4.reference\u002F5.harnesses\u002Findex",[210,211,215,219,223],{"title":10,"path":207,"stem":208},{"title":212,"path":213,"stem":214},"Unattended runs","\u002Freference\u002Fharnesses\u002Funattended-runs","4.reference\u002F5.harnesses\u002F2.unattended-runs",{"title":216,"path":217,"stem":218},"Agent profiles","\u002Freference\u002Fharnesses\u002Fagent-profiles","4.reference\u002F5.harnesses\u002F3.agent-profiles",{"title":220,"path":221,"stem":222},"Harness files","\u002Freference\u002Fharnesses\u002Fharness-files","4.reference\u002F5.harnesses\u002F4.harness-files",{"title":224,"path":225,"stem":226},"Fallback and escalation","\u002Freference\u002Fharnesses\u002Ffallback-and-escalation","4.reference\u002F5.harnesses\u002F5.fallback-and-escalation",{"title":228,"path":229,"stem":230},"Inbound triggers","\u002Freference\u002Ftriggers","4.reference\u002F6.triggers",{"title":232,"path":233,"stem":234},"HTTP API","\u002Freference\u002Fhttp-api","4.reference\u002F7.http-api",{"title":236,"path":237,"stem":238},"MCP tools","\u002Freference\u002Fmcp-tools","4.reference\u002F8.mcp-tools",{"title":240,"path":241,"stem":242},"Events","\u002Freference\u002Fevents","4.reference\u002F9.events",{"title":244,"path":245,"stem":246,"children":247},"Project","\u002Fproject","5.project",[248,250,254,258,262,266],{"title":10,"path":245,"stem":249},"5.project\u002Findex",{"title":251,"path":252,"stem":253},"Architecture","\u002Fproject\u002Farchitecture","5.project\u002F1.architecture",{"title":255,"path":256,"stem":257},"Contributing","\u002Fproject\u002Fcontributing","5.project\u002F2.contributing",{"title":259,"path":260,"stem":261},"Security","\u002Fproject\u002Fsecurity","5.project\u002F3.security",{"title":263,"path":264,"stem":265},"Data and privacy","\u002Fproject\u002Fdata-and-privacy","5.project\u002F4.data-and-privacy",{"title":267,"path":268,"stem":269},"Status and support","\u002Fproject\u002Fstatus-and-support","5.project\u002F5.status-and-support",{"id":271,"title":25,"body":272,"description":1934,"extension":1935,"links":1936,"meta":1937,"navigation":1938,"path":26,"seo":1939,"stem":27,"__hash__":1940},"docs\u002F1.get-started\u002F3.troubleshooting.md",{"type":273,"value":274,"toc":1924},"minimark",[275,280,289,358,365,380,1140,1149,1162,1170,1174,1180,1293,1305,1308,1330,1339,1343,1349,1357,1381,1388,1397,1812,1816,1831,1856,1867,1877,1887,1896,1920],[276,277,279],"h2",{"id":278},"why-did-my-item-stop","Why did my item stop?",[281,282,283,284,288],"p",{},"A work item that needs you shows ",[285,286,287],"strong",{},"needs human"," on the board. Find out why\nbefore you retry: a retry without the cause reruns the same failure.",[290,291,296],"pre",{"className":292,"code":293,"language":294,"meta":295,"style":295},"language-bash shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","kraft view show ID                                  # the node it stopped on, and the reason\nkraft view events ID --type work_item_needs_human   # the stop, with every field\nkraft view logs ID                                  # the last agent session's log\n","bash","",[297,298,299,322,343],"code",{"__ignoreMap":295},[300,301,304,308,312,315,318],"span",{"class":302,"line":303},"line",1,[300,305,307],{"class":306},"sBMFI","kraft",[300,309,311],{"class":310},"sfazB"," view",[300,313,314],{"class":310}," show",[300,316,317],{"class":310}," ID",[300,319,321],{"class":320},"sHwdD","                                  # the node it stopped on, and the reason\n",[300,323,325,327,329,332,334,337,340],{"class":302,"line":324},2,[300,326,307],{"class":306},[300,328,311],{"class":310},[300,330,331],{"class":310}," events",[300,333,317],{"class":310},[300,335,336],{"class":310}," --type",[300,338,339],{"class":310}," work_item_needs_human",[300,341,342],{"class":320},"   # the stop, with every field\n",[300,344,346,348,350,353,355],{"class":302,"line":345},3,[300,347,307],{"class":306},[300,349,311],{"class":310},[300,351,352],{"class":310}," logs",[300,354,317],{"class":310},[300,356,357],{"class":320},"                                  # the last agent session's log\n",[281,359,360,361,364],{},"In Claude Code, ",[297,362,363],{},"\u002Fkraft:triage"," reads all three and suggests the next step.",[281,366,367,368,371,372,375,376,379],{},"Find the reason in the first column. Where a fix says ",[285,369,370],{},"retry",", run\n",[297,373,374],{},"kraft item retry ID",", and add ",[297,377,378],{},"--steer \"...\""," to tell the agent what to do\ndifferently. A retry you run resets the node's attempt counters.",[381,382,383,399],"table",{},[384,385,386],"thead",{},[387,388,389,393,396],"tr",{},[390,391,392],"th",{},"The reason says",[390,394,395],{},"What happened",[390,397,398],{},"Fix",[400,401,402,420,437,466,482,511,528,541,558,574,587,604,629,647,665,682,695,721,737,763,784,797,821,889,912,972,995,1020,1039,1052,1069,1082,1095,1112],"tbody",{},[387,403,404,410,413],{},[405,406,407],"td",{},[297,408,409],{},"needs_context: \u003Cquestion>",[405,411,412],{},"The agent asked a question it could not answer from the repo.",[405,414,415,416,419],{},"Answer it: ",[297,417,418],{},"kraft item resume ID --steer \"\u003Canswer>\"",".",[387,421,422,427,430],{},[405,423,424],{},[297,425,426],{},"task failed in node \u003Cnode>: ...",[405,428,429],{},"An agent task or command failed.",[405,431,432,433,436],{},"Read ",[297,434,435],{},"kraft view logs ID",", then retry with a steer that names the fix.",[387,438,439,447,457],{},[405,440,441,443,444,446],{},[297,442,426],{},", and ",[297,445,435],{}," shows an authentication or login error",[405,448,449,450,453,454,419],{},"The agent CLI is installed but not logged in. ",[297,451,452],{},"kraft admin doctor"," checks only that it is on ",[297,455,456],{},"PATH",[405,458,459,460,463,464,419],{},"Run the agent once in a terminal and log in (",[297,461,462],{},"claude"," for the shipped chains), then ",[297,465,374],{},[387,467,468,473,476],{},[405,469,470],{},[297,471,472],{},"could not start \u003Ctask> in node \u003Cnode>: ...",[405,474,475],{},"Kraft refused the launch. The rest of the reason says why.",[405,477,478,479,481],{},"Fix the named cause, often with ",[297,480,452],{},", then retry.",[387,483,484,489,495],{},[405,485,486],{},[297,487,488],{},"... nothing registers it for Claude Code: ...",[405,490,491,492,494],{},"No ",[297,493,307],{}," MCP server is registered, so Kraft refused a Claude worker.",[405,496,497,498,501,502,505,506,419],{},"Install the Kraft plugin and run ",[297,499,500],{},"\u002Fkraft:onboard",", or run ",[297,503,504],{},"kraft admin init",". Then retry. See ",[507,508,510],"a",{"href":509},"\u002Fget-started\u002Ffirst-work-item#troubleshooting","the tutorial",[387,512,513,518,521],{},[405,514,515],{},[297,516,517],{},"\u003Cloop> exhausted after N fix cycle(s)",[405,519,520],{},"A fix loop spent its attempts without passing.",[405,522,523,524,527],{},"Read the findings (",[297,525,526],{},"kraft view events ID --type findings_measured","), then retry with a steer.",[387,529,530,535,538],{},[405,531,532],{},[297,533,534],{},"\u003Cgate> exhausted after N rejection(s)",[405,536,537],{},"A gate was rejected as many times as its chain allows.",[405,539,540],{},"Retry with a steer, or rework the spec or plan yourself.",[387,542,543,548,551],{},[405,544,545],{},[297,546,547],{},"stuck: ...",[405,549,550],{},"A fix loop made no progress across cycles.",[405,552,553,554,557],{},"Kraft starts an escalation turn on its own, up to three times. If it still stops, send a message with ",[297,555,556],{},"kraft item escalate ID --message \"...\"",", or retry with a steer.",[387,559,560,565,568],{},[405,561,562],{},[297,563,564],{},"a repair in node \u003Cnode> finished with concerns ...",[405,566,567],{},"A repair ran, but its agent doubted the result.",[405,569,570,571,419],{},"Read the concerns in the reason, then retry with a steer, or ",[297,572,573],{},"kraft item skip ID",[387,575,576,581,584],{},[405,577,578],{},[297,579,580],{},"\u003Cscope> is read_only, but it changed the worktree: ...",[405,582,583],{},"A read-only step edited files.",[405,585,586],{},"Look at the named files, then retry.",[387,588,589,594,597],{},[405,590,591],{},[297,592,593],{},"the conflict in node \u003Cnode> cannot be resolved ...",[405,595,596],{},"Rebasing onto the base branch hit a conflict nobody resolved.",[405,598,599,600,603],{},"Resolve it in the worktree (",[297,601,602],{},"cd \"$(kraft repo path ID)\"","), commit, then retry.",[387,605,606,611,614],{},[405,607,608],{},[297,609,610],{},"\u003Cworktree> has a \u003Cname> in progress: inspect it, then delete ...",[405,612,613],{},"The worktree holds a rebase, merge, cherry-pick, revert, bisect or autostash Kraft did not start, so Kraft would not rebase or commit over it. A sandboxed worker can plant this to move one of your branches.",[405,615,616,617,620,621,624,625,628],{},"Look at the named file first. If you did not leave it there yourself, delete it as the reason says, then retry. Never run ",[297,618,619],{},"git rebase --abort",", ",[297,622,623],{},"git merge --abort"," or ",[297,626,627],{},"--continue"," on it: that is what moves the branch.",[387,630,631,636,639],{},[405,632,633],{},[297,634,635],{},"\u003Cworktree> is not on \u003Cbranch>; check it out by hand, then retry",[405,637,638],{},"The worktree's HEAD names another branch, so Kraft would not commit, rebase or push from it.",[405,640,641,643,644,481],{},[297,642,602],{},", check that nothing of yours is on the named branch, ",[297,645,646],{},"git checkout \u003Cbranch>",[387,648,649,654,657],{},[405,650,651],{},[297,652,653],{},"origin\u002F\u003Cbranch> is at \u003Csha>, which Kraft did not push and this worktree does not have ...",[405,655,656],{},"Someone pushed commits to the item's merge request branch, and Kraft's push would have overwritten them.",[405,658,659,620,661,664],{},[297,660,602],{},[297,662,663],{},"git pull --rebase origin \u003Cbranch>"," to bring them in, then retry.",[387,666,667,672,675],{},[405,668,669],{},[297,670,671],{},"origin no longer has \u003Cbranch>, which Kraft pushed ...",[405,673,674],{},"The item's branch was deleted from origin, usually with its merge request merged or closed. Kraft won't recreate it.",[405,676,677,678,681],{},"If the work should still be published, run the two ",[297,679,680],{},"git update-ref -d"," commands the reason names in the item's worktree, then retry. Otherwise abandon the item.",[387,683,684,689,692],{},[405,685,686],{},[297,687,688],{},"work item \u003Cid> runs sandboxed, and its workspace members \u003Cpaths> are not the checkouts Kraft made ...",[405,690,691],{},"A member of the item's worktree is not the checkout Kraft made from its connected repository. A sandboxed worker may have swapped it, or the item started before Kraft checked members out this way. Host git there would read config the worker can write.",[405,693,694],{},"Abandon the item and file it again, which checks each member out afresh.",[387,696,697,715,718],{},[405,698,699,620,702,620,705,620,708,711,712],{},[297,700,701],{},"workspace member \u003Cpath> of \u003Cworktree> has no checkout Kraft made ...",[297,703,704],{},"this sandboxed launch was not given the checkout of workspace members ...",[297,706,707],{},"setup command for \u003Cid> cannot run: its sandbox was not given the checkout ...",[297,709,710],{},"\u003Cpath> is not a directory; the member under it is not mounted",", or ",[297,713,714],{},"... cannot be made in the sandbox's ref store ...",[405,716,717],{},"A sandboxed launch would have mounted a member Kraft could not check against its connected repository, or reach without a symlink, so it did not start.",[405,719,720],{},"Retry. If the member's checkout changed, the check before the next task names it. If it recurs, report it as a bug.",[387,722,723,728,731],{},[405,724,725],{},[297,726,727],{},"\u003Cid> runs sandboxed, and no connected repository is known for \u003Cpaths> ...",[405,729,730],{},"A member's repository is not connected, so Kraft has nowhere safe to check it out from.",[405,732,733,734,481],{},"Connect it with ",[297,735,736],{},"kraft repo connect PATH",[387,738,739,744,751],{},[405,740,741],{},[297,742,743],{},"member \u003Cpath> of \u003Cid>: the connected repository \u003Cpath> for \u003Cpath> is missing ...",[405,745,746,747,750],{},"The member's repository is no longer at the path ",[297,748,749],{},"repos.yaml"," gives.",[405,752,753,754,756,757,760,761,481],{},"Reconnect it (",[297,755,736],{},"), or fix its ",[297,758,759],{},"path"," in ",[297,762,749],{},[387,764,765,770,776],{},[405,766,767],{},[297,768,769],{},"member \u003Cpath> of \u003Cid>: the connected repository \u003Cpath> for \u003Cpath> is not the top of a git repository ...",[405,771,772,773,775],{},"The path ",[297,774,749],{}," gives for the member is a directory inside some other repository, so git there would act on that one.",[405,777,778,779,760,781,783],{},"Fix the member's ",[297,780,759],{},[297,782,749],{}," to the repository's own top directory, then retry.",[387,785,786,791,794],{},[405,787,788],{},[297,789,790],{},"member \u003Cpath> of \u003Cid>: \u003Crepo> already has a branch \u003Cbranch> at \u003Csha>, not at \u003Csha> ...",[405,792,793],{},"The member's repository already has a branch with the item's name, somewhere other than the commit the root points at. Kraft won't check it out and replace what the root records.",[405,795,796],{},"Look at that branch in the member repository. Move it to the named commit or delete it, then retry.",[387,798,799,804,807],{},[405,800,801],{},[297,802,803],{},"budget cap reached: ... on this work item",[405,805,806],{},"The item's own dollar cap refused the next launch.",[405,808,809,810,813,814,817,818,419],{},"Click ",[285,811,812],{},"Raise budget"," on the item, or run ",[297,815,816],{},"kraft item raise-budget ID --usd N",": either raises that cap and retries. See ",[507,819,44],{"href":820},"\u002Fconcepts\u002Fcaps-and-budgets#raising-a-cap-on-a-stuck-item",[387,822,823,831,852],{},[405,824,825,620,828],{},[297,826,827],{},"budget_usd reached ...",[297,829,830],{},"token budget reached ...",[405,832,833,834,624,837,840,841,844,845,847,848,851],{},"A policy ",[297,835,836],{},"budget_usd",[297,838,839],{},"token_budget"," refused the next launch. The message names the scope: ",[297,842,843],{},"the work item",", or a node, step or task path in backticks. ",[285,846,812],{}," does not appear, and ",[297,849,850],{},"raise-budget"," is refused.",[405,853,854,855,857,858,861,862,865,866,869,870,873,874,877,878,881,882,885,886,419],{},"For ",[297,856,843],{},", raise it with ",[297,859,860],{},"kraft item set-policy ID --policy budget_usd=N"," (or ",[297,863,864],{},"token_budget=N","), up to ",[297,867,868],{},"maxima.work_item",", then retry. For a path, the item-wide value also lifts it, unless that node, step or task sets its own cap in the chain. That one only tightens under ",[297,871,872],{},"set-policy"," (",[297,875,876],{},"PATH.budget_usd=N"," can lower it, not raise it), so this item cannot raise it: skip that node with ",[297,879,880],{},"kraft item skip",", or raise the cap in the chain and file the item again. The item's policy was fixed when it was filed, so editing ",[297,883,884],{},"policy.yaml"," or the chain reaches only items filed afterwards. See ",[507,887,888],{"href":820},"Raising a cap",[387,890,891,896,903],{},[405,892,893],{},[297,894,895],{},"budget cap reached: ... today, across every work item",[405,897,898,899,847,901,851],{},"The daily cap refused the next launch. ",[285,900,812],{},[297,902,850],{},[405,904,905,906,760,909,911],{},"Raise ",[297,907,908],{},"budget.daily_usd",[297,910,884],{},", or wait for local midnight, then retry.",[387,913,914,919,935],{},[405,915,916],{},[297,917,918],{},"budget_usd cannot be checked: N launch(es) in ... reported no cost, and unknown spend is never counted as free ...",[405,920,921,922,925,926,928,929,931,932,934],{},"A launch in that scope ran on a harness that reports tokens but no cost (Codex, Cursor, Amp), on a model ",[297,923,924],{},"prices.json"," cannot price, so Kraft cannot show the scope is under its ",[297,927,836],{}," and will not count the launch as free. Raising ",[297,930,836],{}," does not help: the stop stays while any ",[297,933,836],{}," applies to the scope.",[405,936,937,938,941,942,945,946,620,949,951,952,954,955,958,959,961,962,964,965,967,968,419],{},"Clear the item-wide cap with ",[297,939,940],{},"kraft item set-policy ID --policy budget_usd=none"," (add ",[297,943,944],{},"--policy token_budget=N"," to keep a bound), then retry. That clears a cap from the chain's own ",[297,947,948],{},"policy:",[297,950,749],{}," or a ",[297,953,884],{}," default too, but is refused under a ",[297,956,957],{},"maxima.work_item.budget_usd",", and does not lift a cap the chain set on a node, step or task: skip that node with ",[297,960,880],{},", or bound that harness's scopes with ",[297,963,839],{}," in place of ",[297,966,836],{}," and file the item again. See ",[507,969,971],{"href":970},"\u002Fconcepts\u002Fcaps-and-budgets#harnesses-that-report-no-cost","Harnesses that report no cost",[387,973,974,982,985],{},[405,975,976,711,979],{},[297,977,978],{},"kraft: a process in the sandbox was killed by its memory limit (\u003Csize>)",[297,980,981],{},"... under its \u003Csize> memory limit (the runtime did not confirm it was the limit)",[405,983,984],{},"The sandbox's memory limit killed the task. In the second form Docker never confirmed it, but the container exited 137 under the limit and Kraft did not stop it.",[405,986,905,987,990,991,419],{},[297,988,989],{},"resources.memory"," in the sandbox policy, or make the task need less, then retry. See ",[507,992,994],{"href":993},"\u002Freference\u002Fconfiguration\u002Frepos#sandboxed-workers","sandboxed workers",[387,996,997,1005,1013],{},[405,998,999,711,1002],{},[297,1000,1001],{},"the Kit \u003Cref> cannot be used: ...",[297,1003,1004],{},"the Kit \u003Cref> has not been fetched here yet ...",[405,1006,1007,1008,1012],{},"The item's sandbox is a ",[507,1009,1011],{"href":1010},"\u002Freference\u002Fconfiguration\u002Frepos#kits","Kit"," Kraft could not fetch, or will not run.",[405,1014,1015,1016,419],{},"See ",[507,1017,1019],{"href":1018},"#a-kit-is-refused","A Kit is refused",[387,1021,1022,1027,1030],{},[405,1023,1024],{},[297,1025,1026],{},"\u003Cscope> hit its time cap of N minutes",[405,1028,1029],{},"A time cap ran out.",[405,1031,1032,1033,1036,1037,419],{},"Raise it for this item, then retry: ",[297,1034,1035],{},"kraft item set-policy ID --policy time_cap_minutes=240",". See ",[507,1038,888],{"href":820},[387,1040,1041,1046,1049],{},[405,1042,1043],{},[297,1044,1045],{},"gate \u003Cgate> waited past its timeout of N minutes",[405,1047,1048],{},"Nobody decided a gate in time.",[405,1050,1051],{},"Retry to reopen the gate, then decide it.",[387,1053,1054,1059,1062],{},[405,1055,1056],{},[297,1057,1058],{},"\u003Ctask> timed out waiting ...",[405,1060,1061],{},"An external wait (CI, a review) ran out.",[405,1063,1015,1064,1068],{},[507,1065,1067],{"href":1066},"#waiting-on-ci-or-a-review","Waiting on CI or a review",". Retry once the outside is fixed.",[387,1070,1071,1076,1079],{},[405,1072,1073],{},[297,1074,1075],{},"rate_limit retries exhausted after N attempt(s)",[405,1077,1078],{},"The agent's provider kept refusing for a rate limit.",[405,1080,1081],{},"Wait for the limit to reset, then retry.",[387,1083,1084,1089,1092],{},[405,1085,1086,1087],{},"CI or automated-review failure, with a suggested ",[285,1088,370],{},[405,1090,1091],{},"CI failed for its own reasons, or a cancelled run has no successor.",[405,1093,1094],{},"Retry once CI has recovered.",[387,1096,1097,1102,1105],{},[405,1098,1099],{},[297,1100,1101],{},"... are executed by the running Kraft daemon ...",[405,1103,1104],{},"A task that runs inside Kraft itself failed.",[405,1106,1107,1108,1111],{},"Update and restart Kraft (",[297,1109,1110],{},"kraft admin update --restart","), or skip the node.",[387,1113,1114,1125,1128],{},[405,1115,1116,620,1119,620,1122],{},[297,1117,1118],{},"executor crashed: ...",[297,1120,1121],{},"reattach ...",[297,1123,1124],{},"resume: ...",[405,1126,1127],{},"Kraft crashed or restarted while the item ran.",[405,1129,1130,1131,1133,1134,419],{},"Retry. If it happens again, run ",[297,1132,452],{}," and ",[507,1135,1139],{"href":1136,"rel":1137},"https:\u002F\u002Fgithub.com\u002FitsOmidKarami\u002Fkraft\u002Fissues",[1138],"nofollow","open an issue",[281,1141,1142,1143,624,1146,419],{},"A pending gate is not a stop. It waits for your decision:\n",[297,1144,1145],{},"kraft item approve ID",[297,1147,1148],{},"kraft item reject ID --note \"...\"",[281,1150,1151,1152,1155,1156,1159,1160,419],{},"If the work is heading the wrong way rather than failing, pause it and resume\nit with a steer: ",[297,1153,1154],{},"kraft item pause ID",", then ",[297,1157,1158],{},"kraft item resume ID --steer \"...\"",".\nTo move past a node without running it, use ",[297,1161,573],{},[281,1163,1164,1165,1169],{},"The ",[507,1166,1168],{"href":1167},"\u002Freference\u002Fevents#work_item_needs_human","events catalogue"," lists every\nfield of a stop.",[1171,1172,1019],"h3",{"id":1173},"a-kit-is-refused",[281,1175,1176,1177,1179],{},"An item whose sandbox is a ",[507,1178,1011],{"href":1010}," reads\nthe Kit before its worktree is made. If that fails, the item stops needing\nyou, and the reason names the Kit and why. The same check runs again before\neach task; there a failure ends that task's launch as a configuration error,\nand nothing runs outside the sandbox. The rest of the reason says which:",[381,1181,1182,1191],{},[384,1183,1184],{},[387,1185,1186,1189],{},[390,1187,1188],{},"The reason goes on",[390,1190,398],{},[400,1192,1193,1214,1228,1251,1272,1283],{},[387,1194,1195,1207],{},[405,1196,1197,1200,1201,624,1204],{},[297,1198,1199],{},"`manifest inspect \u003Cref>` failed: ...",", or under Podman ",[297,1202,1203],{},"`pull -q \u003Cref>` failed: ...",[297,1205,1206],{},"`image inspect \u003Cref>` failed: ...",[405,1208,1209,1210,1213],{},"The CLI could not read the Kit: a wrong reference, a missing registry login, or a registry it does not trust. Check it with ",[297,1211,1212],{},"docker manifest inspect \u003Cref>"," as the user Kraft runs as.",[387,1215,1216,1221],{},[405,1217,1218],{},[297,1219,1220],{},"\u003Cref> is not a Kit: no vnd.docker.sandbox.kit.descriptor annotation",[405,1222,1223,1224,1227],{},"The image was not built with the Kit frontend (",[297,1225,1226],{},"# syntax=docker\u002Fsandbox-kit:3",").",[387,1229,1230,1241],{},[405,1231,1232,620,1235,620,1238],{},[297,1233,1234],{},"requires \u003Ctype>; Kraft does not enforce it",[297,1236,1237],{},"is a kind: mixin ...",[297,1239,1240],{},"has a capability group ...",[405,1242,1243,1244,1247,1248,419],{},"The Kit needs something Kraft does not run. Mark the capability ",[297,1245,1246],{},"optional: true",", or remove it, and rebuild. Docker's published Kits are refused this way: ",[507,1249,1250],{"href":108},"build one for Kraft",[387,1252,1253,1258],{},[405,1254,1255],{},[297,1256,1257],{},"credential service '\u003Cservice>' has no binding ...",[405,1259,1260,1261,1264,1265,760,1268,1271],{},"Add ",[297,1262,1263],{},"\u003Cservice>: \u003CDAEMON_ENV_NAME>"," under ",[297,1266,1267],{},"credentials",[507,1269,1270],{"href":177},"sandbox.yaml",", and set that variable in the daemon's environment.",[387,1273,1274,1280],{},[405,1275,1276,1277],{},"A dotted path and a message, such as ",[297,1278,1279],{},"capabilities.1.config.apiKey: ...",[405,1281,1282],{},"The descriptor does not decode: fix the Kit at that path.",[387,1284,1285,1290],{},[405,1286,1287],{},[297,1288,1289],{},"has not been fetched here yet",[405,1291,1292],{},"A review, gate review, escalation turn, or a read through the artifacts or diff API ran before any task fetched the Kit. Retry the item.",[281,1294,1295,1296,1298,1299,760,1302,1304],{},"Fix the Kit or the policy, then ",[297,1297,374],{},". A changed Kit is a new\ndigest: put it in ",[297,1300,1301],{},"kit:",[297,1303,749],{}," and file the item again, since its\nsandbox is fixed when it is filed.",[276,1306,1067],{"id":1307},"waiting-on-ci-or-a-review",[281,1309,1310,1316,1317,1320,1321,1325,1326,1329],{},[285,1311,1312,1315],{},[297,1313,1314],{},"merge_request_feedback"," waits on \"no checks yet\"."," The pull request has no\nCI checks, so nothing will ever pass. Add CI that runs on pull requests, set\n",[297,1318,1319],{},"ci_checks: false"," on the repo's entry in\n",[507,1322,1323],{"href":147},[297,1324,749],{}," so both CI waits, before and\nafter the merge, pass at once, or\nfile the item on the ",[297,1327,1328],{},"quick-task"," chain. Otherwise Kraft keeps checking until\nthe wait's timeout, then stops the item.",[281,1331,1332,1338],{},[285,1333,1334,1337],{},[297,1335,1336],{},"external_approval"," keeps waiting."," A branch rule on the forge requires an\napproving review. Have someone else approve the pull request, or remove the\nrule. Kraft checks again on its own.",[276,1340,1342],{"id":1341},"kraft-wont-start-port-already-in-use","Kraft won't start: port already in use",[281,1344,1345,1346,1348],{},"If something already answers on Kraft's port (8765 by default), ",[297,1347,307],{},"\nrefuses to start and says what it found:",[290,1350,1355],{"className":1351,"code":1353,"language":1354,"meta":295},[1352],"language-text","kraft: refusing to start - something is already answering on 127.0.0.1:8765. curl http:\u002F\u002F127.0.0.1:8765\u002Fapi\u002Fhealth to inspect it, or `kraft admin stop` if it's yours.\n","text",[297,1356,1353],{"__ignoreMap":295},[281,1358,1359,1360,1363,1364,1367,1368,1370,1371,1374,1375,1380],{},"When it names a Kraft server, that is an instance you already started:\n",[297,1361,1362],{},"kraft admin stop"," stops it. Otherwise pick another port. ",[297,1365,1366],{},"kraft admin start --port 9000"," moves only the server; to have the ",[297,1369,307],{}," command, the plugin and\nthe VS Code extension follow it, set ",[297,1372,1373],{},"port"," in\n",[507,1376,1377],{"href":169},[297,1378,1379],{},"access.yaml"," instead.",[276,1382,1384,1385,1387],{"id":1383},"common-kraft-admin-doctor-failures","Common ",[297,1386,452],{}," failures",[281,1389,1390,1392,1393,1396],{},[297,1391,452],{}," runs every check and exits 1 if any fails. ",[297,1394,1395],{},"kraft admin health"," checks only the server.",[381,1398,1399,1411],{},[384,1400,1401],{},[387,1402,1403,1406,1409],{},[390,1404,1405],{},"Row",[390,1407,1408],{},"What it means",[390,1410,398],{},[400,1412,1413,1445,1463,1492,1507,1524,1547,1576,1608,1629,1649,1666,1687,1710,1726,1749,1769,1786,1799],{},[387,1414,1415,1421,1435],{},[405,1416,1417,1420],{},[297,1418,1419],{},"home"," (a warning)",[405,1422,1423,1424,1427,1428,620,1431,1434],{},"No server has ever run on this ",[297,1425,1426],{},"KRAFT_HOME",". ",[297,1429,1430],{},"templates",[297,1432,1433],{},"harnesses.yaml"," and the tokens fail until one has.",[405,1436,1437,1438,1440,1441,1444],{},"Start ",[297,1439,307],{}," once, then run ",[297,1442,1443],{},"doctor"," again.",[387,1446,1447,1452,1455],{},[405,1448,1449],{},[297,1450,1451],{},"server",[405,1453,1454],{},"Nothing answers on the configured address.",[405,1456,1457,1458,711,1460,419],{},"Start it: ",[297,1459,307],{},[297,1461,1462],{},"kraft admin start --detach",[387,1464,1465,1477,1482],{},[405,1466,1467,1470,1471,624,1474],{},[297,1468,1469],{},"health",": ",[297,1472,1473],{},"invalid policy",[297,1475,1476],{},"invalid template",[405,1478,1479,1481],{},[297,1480,884],{}," or a chain file does not load. Kraft refuses new work.",[405,1483,1484,1485,1427,1488,1491],{},"Fix the named file, then ",[297,1486,1487],{},"kraft admin reload",[297,1489,1490],{},"kraft admin templates lint"," checks every chain.",[387,1493,1494,1501,1504],{},[405,1495,1496,1470,1498],{},[297,1497,1469],{},[297,1499,1500],{},"orphaned agent sessions",[405,1502,1503],{},"After a restart, Kraft could not confirm some sessions.",[405,1505,1506],{},"Retry the affected items.",[387,1508,1509,1514,1519],{},[405,1510,1511],{},[297,1512,1513],{},"mcp server",[405,1515,491,1516,1518],{},[297,1517,307],{}," MCP server is registered, so Claude workers are refused.",[405,1520,1521,1522,419],{},"Install the Kraft plugin, or run ",[297,1523,504],{},[387,1525,1526,1530,1540],{},[405,1527,1528,1420],{},[297,1529,1513],{},[405,1531,1532,1533,1535,1536,1539],{},"A connected repo has no ",[297,1534,307],{}," MCP server registration of its own, often because its committed ",[297,1537,1538],{},".claude\u002Fsettings.json"," turns the plugin off. An unsandboxed task there on the harness the row names is refused; a repo whose items run sandboxed or on another harness is unaffected.",[405,1541,1542,1543,1546],{},"Register it for that repo (",[297,1544,1545],{},"kraft admin init --repo","), or ignore it if no unsandboxed Claude task runs there.",[387,1548,1549,1554,1559],{},[405,1550,1551],{},[297,1552,1553],{},"agent: \u003Cprofile>",[405,1555,1556,1557,419],{},"The agent CLI is not on the server's ",[297,1558,456],{},[405,1560,1561,1562,1564,1565,1155,1568,1571,1572,419],{},"Install it. Under a service, the unit's ",[297,1563,456],{}," counts, not your shell's; run ",[297,1566,1567],{},"kraft admin uninstall-service",[297,1569,1570],{},"kraft admin install-service"," from a shell where the CLI works. See ",[507,1573,1575],{"href":1574},"\u002Fguides\u002Foperations#run-kraft-as-a-service","Run Kraft as a service",[387,1577,1578,1583,1601],{},[405,1579,1580,1420],{},[297,1581,1582],{},"cost: \u003Charness>",[405,1584,1585,1586,1588,1589,620,1592,1133,1594,1597,1598,1600],{},"That harness reports no cost, and the chains launch it on a model ",[297,1587,924],{}," cannot price, or on no model (the CLI's default). ",[297,1590,1591],{},"budget.work_item_usd",[297,1593,908],{},[297,1595,1596],{},"--budget"," count its spend as $0; a ",[297,1599,836],{}," stops on it.",[405,1602,1603,1604,1036,1606,419],{},"Give its tasks or profile a priced model, or bound them with ",[297,1605,839],{},[507,1607,971],{"href":970},[387,1609,1610,1615,1624],{},[405,1611,1612],{},[297,1613,1614],{},"kraft on PATH",[405,1616,1617,1618,1620,1621,1623],{},"An older ",[297,1619,307],{}," comes first on ",[297,1622,456],{},". The MCP server and hooks run it.",[405,1625,1626,1627,419],{},"Uninstall the other one, or reorder ",[297,1628,456],{},[387,1630,1631,1639,1645],{},[405,1632,1633,1470,1636],{},[297,1634,1635],{},"sandbox \u003Crepo>",[297,1637,1638],{},"the Kit \u003Cref> is refused: ...",[405,1640,1641,1642,1644],{},"The repository's ",[507,1643,1011],{"href":1010}," cannot be fetched or will not run, so each item there stops.",[405,1646,1015,1647,419],{},[507,1648,1019],{"href":1018},[387,1650,1651,1656,1659],{},[405,1652,1653,1420],{},[297,1654,1655],{},"kit hosts \u003Crepo>",[405,1657,1658],{},"The Kit does not allow a host a harness requires, so that harness's sessions under it are refused the host.",[405,1660,1661,1662,1665],{},"Add the host to the Kit's ",[297,1663,1664],{},"runtime"," allow list and rebuild it, or run that harness elsewhere.",[387,1667,1668,1673,1679],{},[405,1669,1670,1420],{},[297,1671,1672],{},"kit credentials \u003Crepo>",[405,1674,1675,1676,1678],{},"An optional Kit credential has no binding in ",[297,1677,1270],{},", so it is skipped.",[405,1680,1260,1681,1264,1683,760,1685,419],{},[297,1682,1263],{},[297,1684,1267],{},[507,1686,1270],{"href":177},[387,1688,1689,1694,1703],{},[405,1690,1691],{},[297,1692,1693],{},"forge \u003Crepo>",[405,1695,1696,624,1699,1702],{},[297,1697,1698],{},"gh",[297,1700,1701],{},"glab"," is missing, or the repo has no forge recorded.",[405,1704,1705,1706,1709],{},"Install the forge CLI and log in, or set ",[297,1707,1708],{},"forge:"," on the repo.",[387,1711,1712,1717,1720],{},[405,1713,1714],{},[297,1715,1716],{},"repo \u003Crepo>",[405,1718,1719],{},"A connected repo's path is gone or is not a git repo.",[405,1721,1722,1723,419],{},"Reconnect it, or ",[297,1724,1725],{},"kraft repo disconnect PATH",[387,1727,1728,1733,1736],{},[405,1729,1730,1420],{},[297,1731,1732],{},"duplicate \u003Crepo>",[405,1734,1735],{},"A repo you connected and a submodule checkout Kraft detected are one repository: usually a member you connected on its own, and its root's submodule. A workspace member naming the second runs with none of the first's settings.",[405,1737,1738,1739,760,1742,1744,1745,1748],{},"Point the workspace member at the entry you configured (",[297,1740,1741],{},"workspaces:",[297,1743,749],{},"), then ",[297,1746,1747],{},"kraft repo disconnect"," the other.",[387,1750,1751,1759,1762],{},[405,1752,1753,620,1756],{},[297,1754,1755],{},"mcp token",[297,1757,1758],{},"trigger token",[405,1760,1761],{},"The token file is missing, or other users can read it.",[405,1763,1764,1765,1768],{},"Start the server once to write it, or ",[297,1766,1767],{},"chmod 600"," it.",[387,1770,1771,1776,1779],{},[405,1772,1773],{},[297,1774,1775],{},"pidfile",[405,1777,1778],{},"The pidfile names a process that is gone.",[405,1780,1781,1782,1785],{},"Nothing. The next ",[297,1783,1784],{},"kraft admin start"," clears it.",[387,1787,1788,1793,1796],{},[405,1789,1790],{},[297,1791,1792],{},"worktrees",[405,1794,1795],{},"A worktree has no work item.",[405,1797,1798],{},"Check it for work you want, then delete it.",[387,1800,1801,1806,1809],{},[405,1802,1803],{},[297,1804,1805],{},"spa bundle",[405,1807,1808],{},"This install has no web UI.",[405,1810,1811],{},"Reinstall from a release.",[276,1813,1815],{"id":1814},"faq","FAQ",[281,1817,1818,1821,1822,1824,1825,1827,1828,419],{},[285,1819,1820],{},"Does Kraft work only with GitHub?"," No. Kraft opens and merges changes on\nGitHub through ",[297,1823,1698],{}," and on GitLab through ",[297,1826,1701],{},". A repo's forge is recorded\nwhen you connect it, from its ",[297,1829,1830],{},"origin",[281,1832,1833,1836,1837,1840,1841,1844,1845,1848,1849,1852,1853,1855],{},[285,1834,1835],{},"Can I use it without Claude Code?"," Partly. Kraft ships seven\n",[507,1838,1839],{"href":207},"harnesses",": Claude, Codex, Cursor, OpenCode, Gemini,\nAntigravity and Amp. Every agent task in the shipped chains names Claude, so to run without it\nyou change each task's ",[297,1842,1843],{},"harness:",". See\n",[507,1846,1847],{"href":96},"Switch a task to another harness",". Any agent that speaks MCP can drive Kraft\nwith ",[297,1850,1851],{},"kraft admin mcp",", and any shell can use the ",[297,1854,307],{}," command.",[281,1857,1858,1861,1862,1864,1865,419],{},[285,1859,1860],{},"What does it cost?"," Kraft is free and Apache-2.0 licensed. Your agent\nprovider bills you for the sessions Kraft runs. The shipped ",[297,1863,884],{}," caps\nspend at $10 per work item and $50 per day. See\n",[507,1866,44],{"href":45},[281,1868,1869,1872,1873,419],{},[285,1870,1871],{},"Does it run on Windows?"," No. Kraft supports macOS and Linux. WSL is\nuntested. See ",[507,1874,1876],{"href":1875},"\u002Fproject\u002Fstatus-and-support#supported-platforms","Supported platforms",[281,1878,1879,1882,1883,1886],{},[285,1880,1881],{},"What makes a good spec?"," Start with a good description: it is the brief the\nspec is written from, and the title is only a label. A good spec names the\nproblem in the repo's own terms, the approach and the options you rejected,\nwhat is out of scope, and the tests that prove it. If you already have a spec\nor plan, attach it (",[297,1884,1885],{},"kraft item create --spec PATH --plan PATH","), and Kraft\nskips writing and approving it again.",[281,1888,1889,1892,1893,1895],{},[285,1890,1891],{},"Kraft or Kraft Lite?"," Use Kraft when work should run without you watching,\nin its own worktree, across sessions and restarts, with a board and caps. Use\n",[507,1894,63],{"href":64}," when you want the same chain and gates inside\none agent session, with no server to run.",[281,1897,1898,1901,1902,1905,1906,620,1909,1133,1912,1915,1916,1919],{},[285,1899,1900],{},"Can I approve each tool call myself?"," No. A worker runs unattended, and\nKraft's ",[507,1903,1904],{"href":203},"permission gate"," answers each tool call from\nthe task's policy, never by asking a person. To control what a worker may do,\nset ",[297,1907,1908],{},"allowed_tools",[297,1910,1911],{},"deny_tools",[297,1913,1914],{},"grants",", run it in a\n",[507,1917,1918],{"href":993},"sandbox",", and review its\nwork at the gates between nodes.",[1921,1922,1923],"style",{},"html pre.shiki code .sBMFI, html code.shiki .sBMFI{--shiki-light:#E2931D;--shiki-default:#FFCB6B;--shiki-dark:#FFCB6B}html pre.shiki code .sfazB, html code.shiki .sfazB{--shiki-light:#91B859;--shiki-default:#C3E88D;--shiki-dark:#C3E88D}html pre.shiki code .sHwdD, html code.shiki .sHwdD{--shiki-light:#90A4AE;--shiki-light-font-style:italic;--shiki-default:#546E7A;--shiki-default-font-style:italic;--shiki-dark:#676E95;--shiki-dark-font-style:italic}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":295,"searchDepth":324,"depth":324,"links":1925},[1926,1929,1930,1931,1933],{"id":278,"depth":324,"text":279,"children":1927},[1928],{"id":1173,"depth":345,"text":1019},{"id":1307,"depth":324,"text":1067},{"id":1341,"depth":324,"text":1342},{"id":1383,"depth":324,"text":1932},"Common kraft admin doctor failures",{"id":1814,"depth":324,"text":1815},"Why a work item stopped and how to get it going again, common doctor failures, known issues, and common questions.","md",null,{},true,{"title":25,"description":1934},"8Oxgd7KEXzaZwNV6JW3ir9wRdYjNs8LUBcBn8K0FFZc",[1942,1944],{"title":21,"path":22,"stem":23,"description":1943,"children":-1},"Start Kraft, connect a repo, run a work item end to end, and approve its gates.",{"title":10,"path":30,"stem":34,"description":1945,"children":-1},"The vocabulary, lifecycle, limits, and permission model behind Kraft.",1790824506495]