[{"data":1,"prerenderedAt":1252},["ShallowReactive",2],{"navigation_docs":3,"-reference-harnesses-agent-profiles":504,"-reference-harnesses-agent-profiles-surround":1247},[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":404,"body":506,"description":1240,"extension":1241,"links":1242,"meta":1243,"navigation":1244,"path":405,"seo":1245,"stem":406,"__hash__":1246},"docs\u002F5.reference\u002F05.harnesses\u002F3.agent-profiles.md",{"type":507,"value":508,"toc":1230},"minimark",[509,570,768,826,831,838,945,948,954,959,971,1013,1017,1028,1051,1055,1071,1093,1097,1100,1113,1116,1127,1130,1152,1155,1159,1187,1196,1200,1226],[510,511,512,513,521,522,526,527,526,529,532,533,536,537,540,541,544,545,547,548,551,552,556,557,561,562,564,565,569],"p",{},"An ",[514,515,516],"strong",{},[517,518,520],"a",{"href":519},"\u002Fconcepts\u002Fvocabulary#agent-profile","agent profile"," is a named model tier (",[523,524,525],"code",{},"deep",", ",[523,528,514],{},[523,530,531],{},"fast",") that a task selects with ",[523,534,535],{},"profile:"," instead of spelling out ",[523,538,539],{},"model:"," and ",[523,542,543],{},"effort:",". It lives in ",[523,546,318],{}," under ",[523,549,550],{},"profiles:",", beside the ",[517,553,555],{"href":554},"\u002Fconcepts\u002Fvocabulary#harness-profile","harness profiles",". It does not depend on the ",[517,558,560],{"href":559},"\u002Fconcepts\u002Fvocabulary#harness","harness",": ",[523,563,525],{}," is the same tier on Claude Code or Codex, with the model id spelled per ",[517,566,568],{"href":567},"\u002Fconcepts\u002Fvocabulary#provider","provider",".",[571,572,578],"pre",{"className":573,"code":574,"filename":575,"language":576,"meta":577,"style":577},"language-yaml shiki shiki-themes github-light-high-contrast github-light-high-contrast github-dark-high-contrast","profiles:\n  deep:\n    providers:\n      claude: { model: opus, effort: high }\n      codex: { model: gpt-5.6-sol, effort: high }\n  strong:\n    providers:\n      claude: { model: sonnet, effort: high }\n      codex: { model: gpt-5.6-terra, effort: high }\n  fast:\n    providers:\n      claude: { model: haiku, effort: low }\n","config\u002Fharnesses.yaml","yaml","",[523,579,580,593,601,609,640,665,673,680,704,728,736,743],{"__ignoreMap":577},[581,582,585,589],"span",{"class":583,"line":584},"line",1,[581,586,588],{"class":587},"sb7M8","profiles",[581,590,592],{"class":591},"s7iLA",":\n",[581,594,596,599],{"class":583,"line":595},2,[581,597,598],{"class":587},"  deep",[581,600,592],{"class":591},[581,602,604,607],{"class":583,"line":603},3,[581,605,606],{"class":587},"    providers",[581,608,592],{"class":591},[581,610,612,615,618,621,623,627,629,632,634,637],{"class":583,"line":611},4,[581,613,614],{"class":587},"      claude",[581,616,617],{"class":591},": { ",[581,619,620],{"class":587},"model",[581,622,561],{"class":591},[581,624,626],{"class":625},"semJd","opus",[581,628,526],{"class":591},[581,630,631],{"class":587},"effort",[581,633,561],{"class":591},[581,635,636],{"class":625},"high",[581,638,639],{"class":591}," }\n",[581,641,643,646,648,650,652,655,657,659,661,663],{"class":583,"line":642},5,[581,644,645],{"class":587},"      codex",[581,647,617],{"class":591},[581,649,620],{"class":587},[581,651,561],{"class":591},[581,653,654],{"class":625},"gpt-5.6-sol",[581,656,526],{"class":591},[581,658,631],{"class":587},[581,660,561],{"class":591},[581,662,636],{"class":625},[581,664,639],{"class":591},[581,666,668,671],{"class":583,"line":667},6,[581,669,670],{"class":587},"  strong",[581,672,592],{"class":591},[581,674,676,678],{"class":583,"line":675},7,[581,677,606],{"class":587},[581,679,592],{"class":591},[581,681,683,685,687,689,691,694,696,698,700,702],{"class":583,"line":682},8,[581,684,614],{"class":587},[581,686,617],{"class":591},[581,688,620],{"class":587},[581,690,561],{"class":591},[581,692,693],{"class":625},"sonnet",[581,695,526],{"class":591},[581,697,631],{"class":587},[581,699,561],{"class":591},[581,701,636],{"class":625},[581,703,639],{"class":591},[581,705,707,709,711,713,715,718,720,722,724,726],{"class":583,"line":706},9,[581,708,645],{"class":587},[581,710,617],{"class":591},[581,712,620],{"class":587},[581,714,561],{"class":591},[581,716,717],{"class":625},"gpt-5.6-terra",[581,719,526],{"class":591},[581,721,631],{"class":587},[581,723,561],{"class":591},[581,725,636],{"class":625},[581,727,639],{"class":591},[581,729,731,734],{"class":583,"line":730},10,[581,732,733],{"class":587},"  fast",[581,735,592],{"class":591},[581,737,739,741],{"class":583,"line":738},11,[581,740,606],{"class":587},[581,742,592],{"class":591},[581,744,746,748,750,752,754,757,759,761,763,766],{"class":583,"line":745},12,[581,747,614],{"class":587},[581,749,617],{"class":591},[581,751,620],{"class":587},[581,753,561],{"class":591},[581,755,756],{"class":625},"haiku",[581,758,526],{"class":591},[581,760,631],{"class":587},[581,762,561],{"class":591},[581,764,765],{"class":625},"low",[581,767,639],{"class":591},[571,769,772],{"className":573,"code":770,"filename":771,"language":576,"meta":577,"style":577},"tasks:\n  implementer: { kind: agent, harness: claude, profile: strong, prompt: \"...\" }\n","config\u002Flibrary.yaml",[523,773,774,781],{"__ignoreMap":577},[581,775,776,779],{"class":583,"line":584},[581,777,778],{"class":587},"tasks",[581,780,592],{"class":591},[581,782,783,786,788,791,793,796,798,800,802,805,807,810,812,814,816,819,821,824],{"class":583,"line":595},[581,784,785],{"class":587},"  implementer",[581,787,617],{"class":591},[581,789,790],{"class":587},"kind",[581,792,561],{"class":591},[581,794,795],{"class":625},"agent",[581,797,526],{"class":591},[581,799,560],{"class":587},[581,801,561],{"class":591},[581,803,804],{"class":625},"claude",[581,806,526],{"class":591},[581,808,809],{"class":587},"profile",[581,811,561],{"class":591},[581,813,514],{"class":625},[581,815,526],{"class":591},[581,817,818],{"class":587},"prompt",[581,820,561],{"class":591},[581,822,823],{"class":625},"\"...\"",[581,825,639],{"class":591},[827,828,830],"h2",{"id":829},"define-an-agent-profile","Define an agent profile",[510,832,833,834,837],{},"Settings › Harnesses writes this shape. Each provider has its own effort, so the providers need not share an effort scale (",[523,835,836],{},"max"," is Claude's, not Codex's).",[839,840,841,860],"table",{},[842,843,844],"thead",{},[845,846,847,851,854,857],"tr",{},[848,849,850],"th",{},"Field",[848,852,853],{},"Type",[848,855,856],{},"Default",[848,858,859],{},"Meaning",[861,862,863,895,911,926],"tbody",{},[845,864,865,871,874,882],{},[866,867,868],"td",{},[523,869,870],{},"providers",[866,872,873],{},"mapping",[866,875,876,877,881],{},"required, unless the ",[517,878,880],{"href":879},"#the-older-shape","older shape"," is used",[866,883,884,885,887,888,526,891,894],{},"A map keyed by ",[514,886,568],{}," id, not harness id. Two harnesses on one provider (",[523,889,890],{},"claude-work",[523,892,893],{},"claude-personal",") share one spelling.",[845,896,897,902,905,908],{},[866,898,899],{},[523,900,901],{},"providers.\u003Cid>.model",[866,903,904],{},"string",[866,906,907],{},"required",[866,909,910],{},"The model id, spelled the way that provider accepts it.",[845,912,913,918,920,923],{},[866,914,915],{},[523,916,917],{},"providers.\u003Cid>.effort",[866,919,904],{},[866,921,922],{},"unset",[866,924,925],{},"The effort for that provider. It must be one the provider accepts.",[845,927,928,933,936,938],{},[866,929,930],{},[523,931,932],{},"fallback",[866,934,935],{},"list",[866,937,922],{},[866,939,940,941,944],{},"The default ",[517,942,943],{"href":413},"fallback list"," for a task that selects the agent profile and sets none of its own.",[510,946,947],{},"An agent profile may leave a provider out. It then cannot run on a harness of that provider. Only a task that actually pairs the two is refused, so a new provider never breaks an existing agent profile. Kraft never guesses a model for a provider the agent profile does not name.",[510,949,950,951,569],{},"An agent profile is written in one shape, never both. A bad effort is named: ",[523,952,953],{},"profiles.deep.providers.codex: effort 'max' is not accepted by provider 'codex'",[955,956,958],"h3",{"id":957},"the-older-shape","The older shape",[510,960,961,962,964,965,967,968,970],{},"An older shape, one ",[523,963,539],{}," map with one shared ",[523,966,631],{},", still loads. Kraft reads its ",[523,969,631],{}," as every provider's:",[571,972,974],{"className":573,"code":973,"filename":575,"language":576,"meta":577,"style":577},"profiles:\n  fast:\n    effort: low\n    model: { claude: haiku }\n",[523,975,976,982,988,998],{"__ignoreMap":577},[581,977,978,980],{"class":583,"line":584},[581,979,588],{"class":587},[581,981,592],{"class":591},[581,983,984,986],{"class":583,"line":595},[581,985,733],{"class":587},[581,987,592],{"class":591},[581,989,990,993,995],{"class":583,"line":603},[581,991,992],{"class":587},"    effort",[581,994,561],{"class":591},[581,996,997],{"class":625},"low\n",[581,999,1000,1003,1005,1007,1009,1011],{"class":583,"line":611},[581,1001,1002],{"class":587},"    model",[581,1004,617],{"class":591},[581,1006,804],{"class":587},[581,1008,561],{"class":591},[581,1010,756],{"class":625},[581,1012,639],{"class":591},[827,1014,1016],{"id":1015},"select-an-agent-profile-in-a-task","Select an agent profile in a task",[510,1018,1019,1020,1022,1023,540,1025,1027],{},"A task takes one route: ",[523,1021,535],{},", or its own ",[523,1024,539],{},[523,1026,543],{},". It cannot set both.",[510,1029,1030,1031,1034,1035,1037,1038,540,1040,1042,1043,1045,1046,1048,1049,569],{},"Through ",[523,1032,1033],{},"extends",", the nearer layer's route wins whole. A task that sets ",[523,1036,535],{}," drops the ",[523,1039,620],{},[523,1041,631],{}," it inherits. A task that sets ",[523,1044,539],{}," or ",[523,1047,543],{}," drops the inherited ",[523,1050,809],{},[827,1052,1054],{"id":1053},"precedence-and-when-an-agent-profile-is-read","Precedence and when an agent profile is read",[510,1056,1057,1058,540,1060,1062,1063,1066,1067,1070],{},"An agent profile ranks where the task's own ",[523,1059,620],{},[523,1061,631],{}," would. The node override, the item override and escalation rank above it. The repo's ",[523,1064,1065],{},"models:"," and the harness profile's ",[523,1068,1069],{},"defaults:"," rank below it.",[510,1072,1073,1074,1077,1078,1082,1083,1086,1087,1089,1090,1092],{},"The task's agent profile ",[514,1075,1076],{},"name"," is frozen with the chain at ",[517,1079,1081],{"href":1080},"\u002Fconcepts\u002Fvocabulary#intake","intake",". The agent profile's ",[514,1084,1085],{},"body"," is read from ",[523,1088,318],{}," at every launch, so editing ",[523,1091,525],{}," changes every later launch that selects it, including on items already running.",[827,1094,1096],{"id":1095},"validation","Validation",[510,1098,1099],{},"Kraft checks each pairing of a task with its agent profile:",[1101,1102,1103,1107,1110],"ul",{},[1104,1105,1106],"li",{},"the agent profile exists;",[1104,1108,1109],{},"it names a model for the provider of the task's harness;",[1104,1111,1112],{},"that provider accepts the model and the effort.",[510,1114,1115],{},"A bad pairing is reported with the chain, task, agent profile, provider and harness:",[571,1117,1122],{"className":1118,"code":1120,"language":1121,"meta":577},[1119],"language-text","chain 'default' task 'implementation.main.implement': profile 'fast' has no model for provider 'codex' (harness 'codex')\n","text",[523,1123,1124],{"__ignoreMap":577},[581,1125,1120],{"className":1126},[583],[510,1128,1129],{},"Kraft reports it in these places:",[1101,1131,1132,1135,1141,1146],{},[1104,1133,1134],{},"Settings › Harnesses;",[1104,1136,1137,1140],{},[523,1138,1139],{},"kraft admin harnesses",";",[1104,1142,1143,1140],{},[523,1144,1145],{},"kraft admin templates lint",[1104,1147,1148,1151],{},[523,1149,1150],{},"kraft admin doctor",", as a failing check.",[510,1153,1154],{},"Kraft refuses a harness save that would cause one. At launch, a task with a bad pairing stops and waits for you with the same text. Kraft never substitutes another model.",[827,1156,1158],{"id":1157},"shipped-agent-profiles","Shipped agent profiles",[510,1160,1161,1162,1164,1165,1168,1169,1172,1173,1176,1177,1180,1181,1183,1184,1186],{},"The shipped ",[523,1163,318],{}," has the three tiers above. The shipped library puts ",[523,1166,1167],{},"implementer",", the three ",[523,1170,1171],{},"repair_*"," tasks and ",[523,1174,1175],{},"strict_judge"," on ",[523,1178,1179],{},"profile: strong"," (",[523,1182,693],{}," at ",[523,1185,636],{}," effort).",[510,1188,1189,1190,1192,1193,1195],{},"An install seeded before agent profiles existed keeps its own files. ",[523,1191,1150],{}," lists the missing ",[523,1194,550],{}," section under what the install is missing.",[827,1197,1199],{"id":1198},"related","Related",[1101,1201,1202,1211,1221],{},[1104,1203,1204,1206,1207,1210],{},[517,1205,412],{"href":413},": the ",[523,1208,1209],{},"fallback:"," list an agent profile may carry.",[1104,1212,1213,1217,1218,1220],{},[517,1214,1215],{"href":319},[523,1216,318],{},": every ",[523,1219,318],{}," key.",[1104,1222,1223,1225],{},[517,1224,119],{"href":120},": add a provider to a tier before moving a task.",[1227,1228,1229],"style",{},"html pre.shiki code .sb7M8, html code.shiki .sb7M8{--shiki-light:#024C1A;--shiki-default:#024C1A;--shiki-dark:#72F088}html pre.shiki code .s7iLA, html code.shiki .s7iLA{--shiki-light:#0E1116;--shiki-default:#0E1116;--shiki-dark:#F0F3F6}html pre.shiki code .semJd, html code.shiki .semJd{--shiki-light:#032563;--shiki-default:#032563;--shiki-dark:#ADDCFF}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":577,"searchDepth":595,"depth":595,"links":1231},[1232,1235,1236,1237,1238,1239],{"id":829,"depth":595,"text":830,"children":1233},[1234],{"id":957,"depth":603,"text":958},{"id":1015,"depth":595,"text":1016},{"id":1053,"depth":595,"text":1054},{"id":1095,"depth":595,"text":1096},{"id":1157,"depth":595,"text":1158},{"id":1198,"depth":595,"text":1199},"Named model tiers a task selects with profile: instead of model and effort.","md",null,{},true,{"title":404,"description":1240},"AUeksMR7wVuTdmT83usipRdKh1FWFsH-WfmrgrFkvWk",[1248,1250],{"title":400,"path":401,"stem":402,"description":1249,"children":-1},"The permission mode each harness runs in when no one can answer a prompt, and where its tool calls go.",{"title":408,"path":409,"stem":410,"description":1251,"children":-1},"The YAML file that describes one harness: the capabilities it declares, argv fragments, constraints, and allowlists.",1791801258708]