[{"data":1,"prerenderedAt":1010},["ShallowReactive",2],{"navigation_docs":3,"-reference-harnesses-fallback-and-escalation":270,"-reference-harnesses-fallback-and-escalation-surround":1005},[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":224,"body":272,"description":998,"extension":999,"links":1000,"meta":1001,"navigation":1002,"path":225,"seo":1003,"stem":226,"__hash__":1004},"docs\u002F4.reference\u002F5.harnesses\u002F5.fallback-and-escalation.md",{"type":273,"value":274,"toc":994},"minimark",[275,279,284,312,319,495,605,699,709,720,728,771,778,781,827,843,873,876,933,936,940,990],[276,277,278],"p",{},"A task can name where its launch goes next, and an escalation turn runs on a harness you choose.",[280,281,283],"h2",{"id":282},"fallback","Fallback",[276,285,286,287,291,292,295,296,299,300,303,304,307,308,311],{},"A task that must not wait out a rate limit can name where its launch goes\nnext. A ",[288,289,290],"code",{},"fallback:"," list is ordered. Each entry may name a ",[288,293,294],{},"harness:"," (a\nharness profile id from ",[288,297,298],{},"harnesses.yaml",") plus one route, the same either-or a\ntask obeys: an agent ",[288,301,302],{},"profile:",", or a ",[288,305,306],{},"model:"," and\u002For ",[288,309,310],{},"effort:",". It keeps\nwhatever it omits from the task's own launch.",[276,313,314,315,318],{},"The list lives on an agent profile, as the tier's default, and a task may set\nits own, which replaces the profile's whole (",[288,316,317],{},"fallback: []"," means none, even\nunder a profile that has one). For example:",[320,321,326],"pre",{"className":322,"code":323,"language":324,"meta":325,"style":325},"language-yaml shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","# harnesses.yaml\nprofiles:\n  deep:\n    effort: high\n    model: { claude: opus, codex: gpt-5.6-sol }\n    fallback:\n      - { harness: codex }            # same tier, other harness\n      - { profile: strong }           # other tier, same harness\n  strong:\n    effort: high\n    model: { claude: sonnet, codex: gpt-5.6-terra }\n","yaml","",[288,327,328,337,348,356,369,402,410,431,451,459,468],{"__ignoreMap":325},[329,330,333],"span",{"class":331,"line":332},"line",1,[329,334,336],{"class":335},"sHwdD","# harnesses.yaml\n",[329,338,340,344],{"class":331,"line":339},2,[329,341,343],{"class":342},"swJcz","profiles",[329,345,347],{"class":346},"sMK4o",":\n",[329,349,351,354],{"class":331,"line":350},3,[329,352,353],{"class":342},"  deep",[329,355,347],{"class":346},[329,357,359,362,365],{"class":331,"line":358},4,[329,360,361],{"class":342},"    effort",[329,363,364],{"class":346},":",[329,366,368],{"class":367},"sfazB"," high\n",[329,370,372,375,377,380,383,385,388,391,394,396,399],{"class":331,"line":371},5,[329,373,374],{"class":342},"    model",[329,376,364],{"class":346},[329,378,379],{"class":346}," {",[329,381,382],{"class":342}," claude",[329,384,364],{"class":346},[329,386,387],{"class":367}," opus",[329,389,390],{"class":346},",",[329,392,393],{"class":342}," codex",[329,395,364],{"class":346},[329,397,398],{"class":367}," gpt-5.6-sol",[329,400,401],{"class":346}," }\n",[329,403,405,408],{"class":331,"line":404},6,[329,406,407],{"class":342},"    fallback",[329,409,347],{"class":346},[329,411,413,416,418,421,423,425,428],{"class":331,"line":412},7,[329,414,415],{"class":346},"      -",[329,417,379],{"class":346},[329,419,420],{"class":342}," harness",[329,422,364],{"class":346},[329,424,393],{"class":367},[329,426,427],{"class":346}," }",[329,429,430],{"class":335},"            # same tier, other harness\n",[329,432,434,436,438,441,443,446,448],{"class":331,"line":433},8,[329,435,415],{"class":346},[329,437,379],{"class":346},[329,439,440],{"class":342}," profile",[329,442,364],{"class":346},[329,444,445],{"class":367}," strong",[329,447,427],{"class":346},[329,449,450],{"class":335},"           # other tier, same harness\n",[329,452,454,457],{"class":331,"line":453},9,[329,455,456],{"class":342},"  strong",[329,458,347],{"class":346},[329,460,462,464,466],{"class":331,"line":461},10,[329,463,361],{"class":342},[329,465,364],{"class":346},[329,467,368],{"class":367},[329,469,471,473,475,477,479,481,484,486,488,490,493],{"class":331,"line":470},11,[329,472,374],{"class":342},[329,474,364],{"class":346},[329,476,379],{"class":346},[329,478,382],{"class":342},[329,480,364],{"class":346},[329,482,483],{"class":367}," sonnet",[329,485,390],{"class":346},[329,487,393],{"class":342},[329,489,364],{"class":346},[329,491,492],{"class":367}," gpt-5.6-terra",[329,494,401],{"class":346},[320,496,498],{"className":322,"code":497,"language":324,"meta":325,"style":325},"# library.yaml\ntasks:\n  legacy_task:\n    kind: agent\n    harness: claude\n    model: opus\n    effort: high\n    fallback:\n      - { model: sonnet }                          # claude, sonnet, high\n      - { harness: codex, model: gpt-5.6-terra }   # codex, gpt-5.6-terra, high\n",[288,499,500,505,512,519,529,539,548,556,562,580],{"__ignoreMap":325},[329,501,502],{"class":331,"line":332},[329,503,504],{"class":335},"# library.yaml\n",[329,506,507,510],{"class":331,"line":339},[329,508,509],{"class":342},"tasks",[329,511,347],{"class":346},[329,513,514,517],{"class":331,"line":350},[329,515,516],{"class":342},"  legacy_task",[329,518,347],{"class":346},[329,520,521,524,526],{"class":331,"line":358},[329,522,523],{"class":342},"    kind",[329,525,364],{"class":346},[329,527,528],{"class":367}," agent\n",[329,530,531,534,536],{"class":331,"line":371},[329,532,533],{"class":342},"    harness",[329,535,364],{"class":346},[329,537,538],{"class":367}," claude\n",[329,540,541,543,545],{"class":331,"line":404},[329,542,374],{"class":342},[329,544,364],{"class":346},[329,546,547],{"class":367}," opus\n",[329,549,550,552,554],{"class":331,"line":412},[329,551,361],{"class":342},[329,553,364],{"class":346},[329,555,368],{"class":367},[329,557,558,560],{"class":331,"line":433},[329,559,407],{"class":342},[329,561,347],{"class":346},[329,563,564,566,568,571,573,575,577],{"class":331,"line":453},[329,565,415],{"class":346},[329,567,379],{"class":346},[329,569,570],{"class":342}," model",[329,572,364],{"class":346},[329,574,483],{"class":367},[329,576,427],{"class":346},[329,578,579],{"class":335},"                          # claude, sonnet, high\n",[329,581,582,584,586,588,590,592,594,596,598,600,602],{"class":331,"line":461},[329,583,415],{"class":346},[329,585,379],{"class":346},[329,587,420],{"class":342},[329,589,364],{"class":346},[329,591,393],{"class":367},[329,593,390],{"class":346},[329,595,570],{"class":342},[329,597,364],{"class":346},[329,599,492],{"class":367},[329,601,427],{"class":346},[329,603,604],{"class":335},"   # codex, gpt-5.6-terra, high\n",[606,607,608,639],"table",{},[609,610,611],"thead",{},[612,613,614,618,628],"tr",{},[615,616,617],"th",{},"Entry",[615,619,620,621,624,625],{},"on ",[288,622,623],{},"claude"," + ",[288,626,627],{},"profile: deep",[615,629,620,630,624,632,635,636],{},[288,631,623],{},[288,633,634],{},"model: opus",", ",[288,637,638],{},"effort: high",[640,641,642,666,682],"tbody",{},[612,643,644,650,657],{},[645,646,647],"td",{},[288,648,649],{},"{ harness: codex }",[645,651,652,653,656],{},"codex + deep: ",[288,654,655],{},"gpt-5.6-sol",", high",[645,658,659,660,663,664],{},"codex + ",[288,661,662],{},"opus",": refused, codex takes no ",[288,665,662],{},[612,667,668,673,679],{},[645,669,670],{},[288,671,672],{},"{ profile: strong }",[645,674,675,676,656],{},"claude + strong: ",[288,677,678],{},"sonnet",[645,680,681],{},"claude + strong",[612,683,684,689,695],{},[645,685,686],{},[288,687,688],{},"{ model: sonnet }",[645,690,691,692,694],{},"claude + ",[288,693,678],{},", no effort",[645,696,691,697,656],{},[288,698,678],{},[276,700,701,702,705,706,708],{},"An entry's own profile's list is not followed: lists do not chain. Like the\nprofile body, a profile's list is read live at each launch. Through ",[288,703,704],{},"extends",",\na child task's ",[288,707,290],{}," replaces its parent's.",[276,710,711,712,715,716,719],{},"Every entry of every list a chain's task uses must pair with its harness, the\nsame check a task's own route gets: in Settings → Harnesses (which shows each\nprofile's list with its problems per entry), in the guard on a harness save,\nand in ",[288,713,714],{},"kraft admin doctor",". A problem names the task, the list's source and\nthe entry's index: ",[288,717,718],{},"chain 'default' task 'implementation.main.implementer': fallback entry 0 (profile 'deep''s list): ...",". A disabled harness is not a\npairing problem, since the launch skips it.",[276,721,722,723,727],{},"The ",[724,725,726],"strong",{},"candidates"," are the task's own launch, then each entry in order. Kraft\nmoves to the next candidate, in the same dispatch, when:",[729,730,731,750,761],"ul",{},[732,733,734,735,738,739,742,743,635,746,749],"li",{},"a launch ends ",[724,736,737],{},"rate-limited"," (a harness that declares ",[288,740,741],{},"rate_limit_signal","\nreported a rejected request). The next launch is a fresh session in the same\nworktree, with the task's instruction and a note that the earlier attempt\nmay have left partial work (",[288,744,745],{},"git status",[288,747,748],{},"git diff",");",[732,751,752,753,756,757,760],{},"a candidate is ",[724,754,755],{},"unavailable"," before anything launches: its harness\nprofile is missing, disabled or sets a default Kraft cannot apply, its agent\nprofile is missing or has no model for its provider, or its executable is\nnot on ",[288,758,759],{},"PATH"," (not checked under a sandbox, where the executable lives in the\ncontainer). This is checked again at every launch, so fixing it takes effect\nat once;",[732,762,752,763,766,767,770],{},[724,764,765],{},"known to be limited",": Kraft remembers, from the event log,\nwhich harness and model a ",[288,768,769],{},"rate_limit_hit"," limited, on any work item, and\nskips that pair until its reset. One account-wide limit therefore costs one\nquickly-refused launch per model before each is remembered.",[276,772,773,774,777],{},"When no candidate is left and one was limited, the item parks as\n",[288,775,776],{},"rate_limited"," until the earliest reset among them, and its relaunch starts\nfrom the top of the list, so the first choice is used again as soon as it is\nback. When every candidate is unavailable, the task stops for a human with a\nreason naming each one and why.",[276,779,780],{},"What carries over and what does not:",[729,782,783,802,813],{},[732,784,785,786,789,790,793,794,797,798,801],{},"The work item's ",[288,787,788],{},"set-overrides"," values and a node's ",[288,791,792],{},"model","\u002F",[288,795,796],{},"effort"," override\npick the task's own launch only, and so does a fix loop's escalation model.\nA fallback runs exactly as its entry says. A node's ",[288,799,800],{},"extra_prompt"," is part\nof the instruction and does reach it.",[732,803,804,805,808,809,812],{},"Switching spends none of ",[288,806,807],{},"rate_limit_retries",", which still counts parks. The\nspend caps in ",[288,810,811],{},"budget:"," are checked before every launch, fallbacks included,\nand a task's time cap covers all of its attempts together.",[732,814,815,816,819,820,635,823,826],{},"Every entry's harness must be in the task's ",[288,817,818],{},"allowed_harnesses",". A task's\nown list is checked when the chain materializes; a profile's list, which is\nlive, is checked at the launch, which skips a refused entry as unavailable. ",[288,821,822],{},"deny_tools",[288,824,825],{},"allowed_tools"," and the item's\nsandbox apply to a fallback as to the task's own launch, so a sandboxed\nfallback onto Cursor or Codex with a tool policy stops as a configuration\nerror rather than skipping to the next entry.",[276,828,829,830,832,833,836,837,839,840,842],{},"It is opt-in. A task with no list (none of its own, and none on its profile,\nor ",[288,831,317],{},") launches, parks and stops exactly as it would without it,\nand never consults the memory. No shipped task or profile declares one. A gate's ",[288,834,835],{},"auto_review"," task cannot declare a ",[288,838,290],{}," list of its own, and is\nrefused the same way — at its own launch, naming the gate and the profile —\nwhen its ",[288,841,302],{}," carries one: a gate review launches once and never walks\neither list.",[276,844,845,846,848,849,635,851,635,854,857,858,861,862,635,865,868,869,872],{},"Only a harness that declares ",[288,847,741],{}," can trigger a switch on a\nrate limit, which is ",[288,850,623],{},[288,852,853],{},"codex",[288,855,856],{},"opencode"," and ",[288,859,860],{},"antigravity",". ",[288,863,864],{},"gemini",[288,866,867],{},"amp","\nand ",[288,870,871],{},"cursor"," can be fallback targets, and are skipped when unavailable, but a\nrate limit on them fails the launch as it does without a list.",[276,874,875],{},"Every skip or switch is logged:",[729,877,878,924,927,930],{},[732,879,880,881,884,885,888,889,635,892,895,896,899,900,903,904,635,906,909,910,912,913,916,917,857,920,923],{},"one ",[288,882,883],{},"launch_fallback"," event (",[288,886,887],{},"kraft view events --type launch_fallback","),\nwith ",[288,890,891],{},"from",[288,893,894],{},"to"," (",[288,897,898],{},"null"," when nothing was left), ",[288,901,902],{},"reason","\n(",[288,905,769],{},[288,907,908],{},"known_limited"," or ",[288,911,755],{},", with a ",[288,914,915],{},"detail","),\n",[288,918,919],{},"resets_at_iso",[288,921,922],{},"override_not_carried",";",[732,925,926],{},"one sentence on the item's timeline, such as \"Ran on claude \u002F sonnet instead\nof claude \u002F opus: claude \u002F opus is rate-limited until 15:40.\";",[732,928,929],{},"one INFO line in the server log;",[732,931,932],{},"a \"fallback\" marker on the board card while the item's latest launch is a\nfallback's, with the same sentence as its tooltip.",[276,934,935],{},"Session rows record the model that actually ran, so Analytics attributes each\nattempt's cost to it.",[280,937,939],{"id":938},"escalation-turns","Escalation turns",[276,941,942,943,946,947,949,950,953,954,956,957,960,961,964,965,968,969,972,973,976,977,983,984,986,987,989],{},"An escalation turn, the conversation Kraft opens when a person escalates a\nstopped item or ",[288,944,945],{},"auto_escalate_stuck"," does, runs on the ",[288,948,298],{},"\nprofile policy's ",[288,951,952],{},"escalation_harness"," names: ",[288,955,623],{}," unless you set it. Set\nit in ",[288,958,959],{},"policy.yaml","'s ",[288,962,963],{},"defaults:",", on a repository, chain or node ",[288,966,967],{},"policy:",",\nor for one item with ",[288,970,971],{},"kraft item set-policy --policy escalation_harness=codex",".\n",[288,974,975],{},"item"," follows the harness the item's own latest agent task ran on. The\nthread id the next turn resumes is read with that harness's own log reader,\nand a resumed turn records only what it added to the thread. See\n",[978,979,981],"a",{"href":980},"\u002Freference\u002Fconfiguration\u002Fpolicy#defaults-and-maxima",[288,982,952],{},". A gate's automated review is not\nthis: its ",[288,985,835],{}," task names its own ",[288,988,294],{}," in the chain.",[991,992,993],"style",{},"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 pre.shiki code .swJcz, html code.shiki .swJcz{--shiki-light:#E53935;--shiki-default:#F07178;--shiki-dark:#F07178}html pre.shiki code .sMK4o, html code.shiki .sMK4o{--shiki-light:#39ADB5;--shiki-default:#89DDFF;--shiki-dark:#89DDFF}html pre.shiki code .sfazB, html code.shiki .sfazB{--shiki-light:#91B859;--shiki-default:#C3E88D;--shiki-dark:#C3E88D}html .light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html.light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html .default .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html.dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}",{"title":325,"searchDepth":339,"depth":339,"links":995},[996,997],{"id":282,"depth":339,"text":283},{"id":938,"depth":339,"text":939},"Where a launch goes next when a harness is limited or unavailable, and which harness runs an escalation turn.","md",null,{},true,{"title":224,"description":998},"cK7BWhSCZUL2JNHU5McSyYRdPrWJimAiE1k2-pxhWDE",[1006,1008],{"title":220,"path":221,"stem":222,"description":1007,"children":-1},"The YAML file that describes one harness: required fields, argv fragments, constraints, and allowlists.",{"title":228,"path":229,"stem":230,"description":1009,"children":-1},"The trigger fields in policy.yaml and the POST \u002Fapi\u002Ftriggers contract for starting a chain from a schedule or a webhook.",1790824510612]