[{"data":1,"prerenderedAt":2421},["ShallowReactive",2],{"navigation_docs":3,"-reference-mcp-tools":520,"-reference-mcp-tools-surround":2416},[4,28,51,191,222,485],{"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,117,138,187],{"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,113],{"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},"Share chains with add-ons","\u002Fguides\u002Fcustomize\u002Fshare-chains-with-addons","3.guides\u002F2.customize\u002F4.share-chains-with-addons",{"title":118,"path":119,"stem":120,"children":121,"page":95},"Agents and harnesses","\u002Fguides\u002Fharnesses","3.guides\u002F3.harnesses",[122,126,130,134],{"title":123,"path":124,"stem":125},"Switch a task to another harness","\u002Fguides\u002Fharnesses\u002Fswitch-harness","3.guides\u002F3.harnesses\u002F1.switch-harness",{"title":127,"path":128,"stem":129},"Add or override a harness","\u002Fguides\u002Fharnesses\u002Fadding-a-harness","3.guides\u002F3.harnesses\u002F2.adding-a-harness",{"title":131,"path":132,"stem":133},"Build a worker Kit","\u002Fguides\u002Fharnesses\u002Fworker-kit","3.guides\u002F3.harnesses\u002F3.worker-kit",{"title":135,"path":136,"stem":137},"Give a worker its login","\u002Fguides\u002Fharnesses\u002Fgive-a-worker-its-login","3.guides\u002F3.harnesses\u002F4.give-a-worker-its-login",{"title":139,"path":140,"stem":141,"children":142,"page":95},"Run the server","\u002Fguides\u002Frun","3.guides\u002F4.run",[143,147,151,155,159,163,167,171,175,179,183],{"title":144,"path":145,"stem":146},"Remote access","\u002Fguides\u002Frun\u002Fremote-access","3.guides\u002F4.run\u002F01.remote-access",{"title":148,"path":149,"stem":150},"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":152,"path":153,"stem":154},"Restart Kraft without ending running agents","\u002Fguides\u002Frun\u002Frestart-kraft","3.guides\u002F4.run\u002F03.restart-kraft",{"title":156,"path":157,"stem":158},"Back up and restore the database","\u002Fguides\u002Frun\u002Fback-up-and-restore","3.guides\u002F4.run\u002F04.back-up-and-restore",{"title":160,"path":161,"stem":162},"Logs and disk space","\u002Fguides\u002Frun\u002Flogs-and-disk-space","3.guides\u002F4.run\u002F05.logs-and-disk-space",{"title":164,"path":165,"stem":166},"Run Kraft as a service","\u002Fguides\u002Frun\u002Frun-as-a-service","3.guides\u002F4.run\u002F06.run-as-a-service",{"title":168,"path":169,"stem":170},"Upgrade Kraft","\u002Fguides\u002Frun\u002Fupgrade-kraft","3.guides\u002F4.run\u002F07.upgrade-kraft",{"title":172,"path":173,"stem":174},"Upgrade your configuration","\u002Fguides\u002Frun\u002Fupgrade-your-configuration","3.guides\u002F4.run\u002F08.upgrade-your-configuration",{"title":176,"path":177,"stem":178},"Upgrade from 1.4","\u002Fguides\u002Frun\u002Fupgrade-from-1-4","3.guides\u002F4.run\u002F09.upgrade-from-1-4",{"title":180,"path":181,"stem":182},"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":184,"path":185,"stem":186},"Roll back to 1.4","\u002Fguides\u002Frun\u002Froll-back","3.guides\u002F4.run\u002F11.roll-back",{"title":188,"path":189,"stem":190},"Kraft Lite","\u002Fguides\u002Fkraft-lite","3.guides\u002F5.kraft-lite",{"title":192,"path":193,"stem":194,"children":195},"Troubleshooting","\u002Ftroubleshooting","4.troubleshooting",[196,198,202,206,210,214,218],{"title":10,"path":193,"stem":197},"4.troubleshooting\u002Findex",{"title":199,"path":200,"stem":201},"Why did my item stop?","\u002Ftroubleshooting\u002Fwhy-did-my-item-stop","4.troubleshooting\u002F1.why-did-my-item-stop",{"title":203,"path":204,"stem":205},"Stop reasons in detail","\u002Ftroubleshooting\u002Fstop-reasons-in-detail","4.troubleshooting\u002F2.stop-reasons-in-detail",{"title":207,"path":208,"stem":209},"Starting and reaching Kraft","\u002Ftroubleshooting\u002Fstarting-and-reaching-kraft","4.troubleshooting\u002F3.starting-and-reaching-kraft",{"title":211,"path":212,"stem":213},"Doctor failures","\u002Ftroubleshooting\u002Fdoctor-failures","4.troubleshooting\u002F4.doctor-failures",{"title":215,"path":216,"stem":217},"Sandbox and Kit stops","\u002Ftroubleshooting\u002Fsandbox-and-kit-stops","4.troubleshooting\u002F5.sandbox-and-kit-stops",{"title":219,"path":220,"stem":221},"Add-on problems","\u002Ftroubleshooting\u002Faddon-problems","4.troubleshooting\u002F6.addon-problems",{"title":223,"path":224,"stem":225,"children":226},"Reference","\u002Freference","5.reference",[227,229,267,289,293,391,409,435,439,443,477,481],{"title":10,"path":224,"stem":228},"5.reference\u002Findex",{"title":230,"path":231,"stem":232,"children":233},"Web UI","\u002Freference\u002Fweb-ui","5.reference\u002F00.web-ui\u002Findex",[234,235,239,243,247,251,255,259,263],{"title":10,"path":231,"stem":232},{"title":236,"path":237,"stem":238},"Sidebar, search, and keyboard","\u002Freference\u002Fweb-ui\u002Fsidebar-search-and-keyboard","5.reference\u002F00.web-ui\u002F0.sidebar-search-and-keyboard",{"title":240,"path":241,"stem":242},"The board","\u002Freference\u002Fweb-ui\u002Fboard","5.reference\u002F00.web-ui\u002F1.board",{"title":244,"path":245,"stem":246},"An item's page","\u002Freference\u002Fweb-ui\u002Fitem-page","5.reference\u002F00.web-ui\u002F2.item-page",{"title":248,"path":249,"stem":250},"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":252,"path":253,"stem":254},"Config before an item starts","\u002Freference\u002Fweb-ui\u002Fconfig-before-start","5.reference\u002F00.web-ui\u002F4.config-before-start",{"title":256,"path":257,"stem":258},"The review page","\u002Freference\u002Fweb-ui\u002Freview-page","5.reference\u002F00.web-ui\u002F5.review-page",{"title":260,"path":261,"stem":262},"Templates and Settings","\u002Freference\u002Fweb-ui\u002Ftemplates-and-settings","5.reference\u002F00.web-ui\u002F6.templates-and-settings",{"title":264,"path":265,"stem":266},"Analytics","\u002Freference\u002Fweb-ui\u002Fanalytics","5.reference\u002F00.web-ui\u002F7.analytics",{"title":268,"path":269,"stem":270,"children":271},"CLI","\u002Freference\u002Fcli","5.reference\u002F01.cli\u002Findex",[272,273,277,281,285],{"title":10,"path":269,"stem":270},{"title":274,"path":275,"stem":276},"Item verbs","\u002Freference\u002Fcli\u002Fitem","5.reference\u002F01.cli\u002F2.item",{"title":278,"path":279,"stem":280},"View verbs","\u002Freference\u002Fcli\u002Fview","5.reference\u002F01.cli\u002F3.view",{"title":282,"path":283,"stem":284},"Repo verbs","\u002Freference\u002Fcli\u002Frepo","5.reference\u002F01.cli\u002F4.repo",{"title":286,"path":287,"stem":288},"Admin verbs","\u002Freference\u002Fcli\u002Fadmin","5.reference\u002F01.cli\u002F5.admin",{"title":290,"path":291,"stem":292},"Work item statuses","\u002Freference\u002Fstatuses","5.reference\u002F02.statuses",{"title":294,"path":295,"stem":296,"children":297},"Configuration","\u002Freference\u002Fconfiguration","5.reference\u002F03.configuration\u002Findex",[298,299,317,321,325,329,333,337,341,345,379,383,387],{"title":10,"path":295,"stem":296},{"title":300,"path":301,"stem":302,"children":303},"repos.yaml","\u002Freference\u002Fconfiguration\u002Frepos","5.reference\u002F03.configuration\u002F02.repos\u002Findex",[304,305,309,313],{"title":10,"path":301,"stem":302},{"title":306,"path":307,"stem":308},"How connect proposes commands","\u002Freference\u002Fconfiguration\u002Frepos\u002Fconnect-proposals","5.reference\u002F03.configuration\u002F02.repos\u002F1.connect-proposals",{"title":310,"path":311,"stem":312},"detectors.yaml","\u002Freference\u002Fconfiguration\u002Frepos\u002Fdetectors","5.reference\u002F03.configuration\u002F02.repos\u002F2.detectors",{"title":314,"path":315,"stem":316},"Workspaces","\u002Freference\u002Fconfiguration\u002Frepos\u002Fworkspaces","5.reference\u002F03.configuration\u002F02.repos\u002F3.workspaces",{"title":318,"path":319,"stem":320},"policy.yaml","\u002Freference\u002Fconfiguration\u002Fpolicy","5.reference\u002F03.configuration\u002F03.policy",{"title":322,"path":323,"stem":324},"Library and chains","\u002Freference\u002Fconfiguration\u002Flibrary-and-chains","5.reference\u002F03.configuration\u002F04.library-and-chains",{"title":326,"path":327,"stem":328},"harnesses.yaml","\u002Freference\u002Fconfiguration\u002Fharnesses-file","5.reference\u002F03.configuration\u002F05.harnesses-file",{"title":330,"path":331,"stem":332},"access.yaml","\u002Freference\u002Fconfiguration\u002Faccess","5.reference\u002F03.configuration\u002F06.access",{"title":334,"path":335,"stem":336},"intake.yaml","\u002Freference\u002Fconfiguration\u002Fintake","5.reference\u002F03.configuration\u002F07.intake",{"title":338,"path":339,"stem":340},"notify.yaml","\u002Freference\u002Fconfiguration\u002Fnotify","5.reference\u002F03.configuration\u002F08.notify",{"title":342,"path":343,"stem":344},"theme.yaml","\u002Freference\u002Fconfiguration\u002Ftheme","5.reference\u002F03.configuration\u002F09.theme",{"title":346,"path":347,"stem":348,"children":349},"Sandboxed workers","\u002Freference\u002Fconfiguration\u002Fsandbox","5.reference\u002F03.configuration\u002F10.sandbox\u002Findex",[350,351,355,359,363,367,371,375],{"title":10,"path":347,"stem":348},{"title":352,"path":353,"stem":354},"Resource limits","\u002Freference\u002Fconfiguration\u002Fsandbox\u002Fresource-limits","5.reference\u002F03.configuration\u002F10.sandbox\u002F1.resource-limits",{"title":356,"path":357,"stem":358},"Callbacks from a sandbox","\u002Freference\u002Fconfiguration\u002Fsandbox\u002Fcallbacks","5.reference\u002F03.configuration\u002F10.sandbox\u002F2.callbacks",{"title":360,"path":361,"stem":362},"Network policy","\u002Freference\u002Fconfiguration\u002Fsandbox\u002Fnetwork-policy","5.reference\u002F03.configuration\u002F10.sandbox\u002F3.network-policy",{"title":364,"path":365,"stem":366},"Credentials","\u002Freference\u002Fconfiguration\u002Fsandbox\u002Fcredentials","5.reference\u002F03.configuration\u002F10.sandbox\u002F4.credentials",{"title":368,"path":369,"stem":370},"Kits","\u002Freference\u002Fconfiguration\u002Fsandbox\u002Fkits","5.reference\u002F03.configuration\u002F10.sandbox\u002F5.kits",{"title":372,"path":373,"stem":374},"sandbox.yaml","\u002Freference\u002Fconfiguration\u002Fsandbox\u002Fsandbox-yaml","5.reference\u002F03.configuration\u002F10.sandbox\u002F6.sandbox-yaml",{"title":376,"path":377,"stem":378},"Git in a sandbox","\u002Freference\u002Fconfiguration\u002Fsandbox\u002Fgit-in-a-sandbox","5.reference\u002F03.configuration\u002F10.sandbox\u002F7.git-in-a-sandbox",{"title":380,"path":381,"stem":382},"Environment variables","\u002Freference\u002Fconfiguration\u002Fenvironment-variables","5.reference\u002F03.configuration\u002F11.environment-variables",{"title":384,"path":385,"stem":386},"Add-ons and collections","\u002Freference\u002Fconfiguration\u002Faddons","5.reference\u002F03.configuration\u002F12.addons",{"title":388,"path":389,"stem":390},"Repo libraries","\u002Freference\u002Fconfiguration\u002Frepo-libraries","5.reference\u002F03.configuration\u002F13.repo-libraries",{"title":392,"path":393,"stem":394,"children":395},"Chain file keys","\u002Freference\u002Fchain-nodes","5.reference\u002F04.chain-nodes\u002Findex",[396,397,401,405],{"title":10,"path":393,"stem":394},{"title":398,"path":399,"stem":400},"Subprocess tasks","\u002Freference\u002Fchain-nodes\u002Fsubprocess-tasks","5.reference\u002F04.chain-nodes\u002F2.subprocess-tasks",{"title":402,"path":403,"stem":404},"Fix loop and judge","\u002Freference\u002Fchain-nodes\u002Ffix-loop","5.reference\u002F04.chain-nodes\u002F3.fix-loop",{"title":406,"path":407,"stem":408},"Result file","\u002Freference\u002Fchain-nodes\u002Fresult-file","5.reference\u002F04.chain-nodes\u002F4.result-file",{"title":410,"path":411,"stem":412,"children":413},"Agent harnesses","\u002Freference\u002Fharnesses","5.reference\u002F05.harnesses\u002Findex",[414,415,419,423,427,431],{"title":10,"path":411,"stem":412},{"title":416,"path":417,"stem":418},"Unattended runs","\u002Freference\u002Fharnesses\u002Funattended-runs","5.reference\u002F05.harnesses\u002F2.unattended-runs",{"title":420,"path":421,"stem":422},"Agent profiles","\u002Freference\u002Fharnesses\u002Fagent-profiles","5.reference\u002F05.harnesses\u002F3.agent-profiles",{"title":424,"path":425,"stem":426},"Harness definition files","\u002Freference\u002Fharnesses\u002Fharness-files","5.reference\u002F05.harnesses\u002F4.harness-files",{"title":428,"path":429,"stem":430},"Fallback and escalation","\u002Freference\u002Fharnesses\u002Ffallback-and-escalation","5.reference\u002F05.harnesses\u002F5.fallback-and-escalation",{"title":432,"path":433,"stem":434},"Cost reporting","\u002Freference\u002Fharnesses\u002Fcost-reporting","5.reference\u002F05.harnesses\u002F6.cost-reporting",{"title":436,"path":437,"stem":438},"Permission gate","\u002Freference\u002Fpermissions","5.reference\u002F06.permissions",{"title":440,"path":441,"stem":442},"Inbound triggers","\u002Freference\u002Ftriggers","5.reference\u002F07.triggers",{"title":444,"path":445,"stem":446,"children":447},"HTTP API","\u002Freference\u002Fhttp-api","5.reference\u002F08.http-api\u002Findex",[448,449,453,457,461,465,469,473],{"title":10,"path":445,"stem":446},{"title":450,"path":451,"stem":452},"Filing, reading and changing work items","\u002Freference\u002Fhttp-api\u002Fwork-items","5.reference\u002F08.http-api\u002F2.work-items",{"title":454,"path":455,"stem":456},"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":458,"path":459,"stem":460},"The work item object","\u002Freference\u002Fhttp-api\u002Fwork-item-object","5.reference\u002F08.http-api\u002F4.work-item-object",{"title":462,"path":463,"stem":464},"Budget, events, diff and documents","\u002Freference\u002Fhttp-api\u002Fbudget-and-events","5.reference\u002F08.http-api\u002F5.budget-and-events",{"title":466,"path":467,"stem":468},"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":470,"path":471,"stem":472},"Drafts","\u002Freference\u002Fhttp-api\u002Fdrafts","5.reference\u002F08.http-api\u002F7.drafts",{"title":474,"path":475,"stem":476},"Ops for each draft area","\u002Freference\u002Fhttp-api\u002Fdraft-ops","5.reference\u002F08.http-api\u002F8.draft-ops",{"title":478,"path":479,"stem":480},"MCP tools","\u002Freference\u002Fmcp-tools","5.reference\u002F09.mcp-tools",{"title":482,"path":483,"stem":484},"Events","\u002Freference\u002Fevents","5.reference\u002F10.events",{"title":486,"path":487,"stem":488,"children":489},"Security and project","\u002Fproject","6.project",[490,492,496,500,504,508,512,516],{"title":10,"path":487,"stem":491},"6.project\u002Findex",{"title":493,"path":494,"stem":495},"Security","\u002Fproject\u002Fsecurity","6.project\u002F1.security",{"title":497,"path":498,"stem":499},"Data and privacy","\u002Fproject\u002Fdata-and-privacy","6.project\u002F2.data-and-privacy",{"title":501,"path":502,"stem":503},"What's new in 2.0","\u002Fproject\u002Fwhats-new","6.project\u002F3.whats-new",{"title":505,"path":506,"stem":507},"Status and support","\u002Fproject\u002Fstatus-and-support","6.project\u002F4.status-and-support",{"title":509,"path":510,"stem":511},"Architecture","\u002Fproject\u002Farchitecture","6.project\u002F5.architecture",{"title":513,"path":514,"stem":515},"Source map","\u002Fproject\u002Fsource-map","6.project\u002F6.source-map",{"title":517,"path":518,"stem":519},"Contributing","\u002Fproject\u002Fcontributing","6.project\u002F7.contributing",{"id":521,"title":478,"body":522,"description":2409,"extension":2410,"links":2411,"meta":2412,"navigation":2413,"path":479,"seo":2414,"stem":480,"__hash__":2415},"docs\u002F5.reference\u002F09.mcp-tools.md",{"type":523,"value":524,"toc":2388},"minimark",[525,543,550,555,566,666,682,686,693,699,703,711,774,777,894,898,1159,1163,1286,1290,1296,1342,1349,1352,1409,1412,1415,1425,1432,1436,1766,1769,1777,1808,1812,1818,2008,2012,2165,2168,2216,2220,2360,2364,2384],[526,527,528,532,533,536,537,542],"p",{},[529,530,531],"code",{},"kraft admin mcp"," serves these tools over stdio. The Kraft plugin\nregisters it in the agent it is installed in, and ",[529,534,535],{},"kraft admin init"," registers\nit for Claude Code. For an agent without the plugin, see\n",[538,539,541],"a",{"href":540},"\u002Fguides\u002Fday-to-day\u002Fagent-integration#register-kraft-with-your-agent","Register Kraft with your agent",".",[526,544,545,546,542],{},"The tool names and parameters are a public interface: they keep their shape between minor releases. See ",[538,547,549],{"href":548},"\u002Fproject\u002Fstatus-and-support#versioning-and-stability","Versioning and stability",[551,552,554],"h2",{"id":553},"same-as-the-cli","Same as the CLI",[526,556,557,558,561,562,565],{},"Each tool calls the same client function as its ",[529,559,560],{},"kraft"," command, and ",[529,563,564],{},"--json"," prints that function's payload, with three differences:",[567,568,569,614,648],"ul",{},[570,571,572,575,576,580,581,585,586,590,591,595,596,599,600,604,605,608,609,613],"li",{},[529,573,574],{},"get_work_item"," returns a trimmed item (its status, current ",[538,577,579],{"href":578},"\u002Fconcepts\u002Fvocabulary#node","node",", pending ",[538,582,584],{"href":583},"\u002Fconcepts\u002Fvocabulary#gate","gate",", ",[538,587,589],{"href":588},"\u002Fconcepts\u002Fvocabulary#attachment","attachments",", progress, stop reason, usage, any ",[538,592,594],{"href":593},"\u002Fconcepts\u002Fvocabulary#policy","policy"," override, any concerns a task raised about its own work, and ",[529,597,598],{},"next_node_id",", and not its ",[538,601,603],{"href":602},"\u002Fconcepts\u002Fvocabulary#chain","chain"," or sessions). ",[529,606,607],{},"kraft view show --json"," prints the full detail, with the effective chain, ",[538,610,612],{"href":611},"\u002Fconcepts\u002Fvocabulary#worker","worker"," sessions and stop.",[570,615,616,585,619,585,622,585,625,585,628,585,631,585,634,637,638,641,642,644,645,647],{},[529,617,618],{},"approve_gate",[529,620,621],{},"reject_gate",[529,623,624],{},"resume_work_item",[529,626,627],{},"retry_work_item",[529,629,630],{},"raise_budget",[529,632,633],{},"skip_work_item",[529,635,636],{},"complete_work_item"," and ",[529,639,640],{},"cancel_work_item"," answer as ",[529,643,574],{}," does. The CLI's ",[529,646,564],{}," prints the item's whole row, with its frozen chain.",[570,649,650,653,654,657,658,661,662,665],{},[529,651,652],{},"list_work_items"," lists every repo. ",[529,655,656],{},"kraft view list"," is scoped to the repo you are in unless ",[529,659,660],{},"--all"," or ",[529,663,664],{},"--repo"," says otherwise.",[526,667,668,671,672,676,677,681],{},[529,669,670],{},"work_item_id"," is optional wherever a tool takes it. Left out, it is the ",[538,673,675],{"href":674},"\u002Fconcepts\u002Fvocabulary#work-item","work item"," whose ",[538,678,680],{"href":679},"\u002Fconcepts\u002Fvocabulary#worktree","worktree"," or session you are in.",[551,683,685],{"id":684},"errors","Errors",[526,687,688,689,692],{},"A refused call is an error result whose text ends with the line the command prints, such as ",[529,690,691],{},"kraft: 404: unknown work item",", so the agent can see why.",[526,694,695,696,542],{},"An argument the API cannot read names the field and what is wrong with it: ",[529,697,698],{},"kraft: 422: label: Input should be 'must_fix', 'question' or 'nit'",[551,700,702],{"id":701},"who-may-call-what","Who may call what",[526,704,705,706,710],{},"The last column of each table below, and the ",[707,708,709],"em",{},"Human"," mark, say what an agent may do.",[712,713,714,727],"table",{},[715,716,717],"thead",{},[718,719,720,724],"tr",{},[721,722,723],"th",{},"Mark",[721,725,726],{},"Meaning",[728,729,730,741,756,766],"tbody",{},[718,731,732,738],{},[733,734,735,737],"td",{},[707,736,709],{},", in the What it does column",[733,739,740],{},"A decision the agent should ask a person about first.",[718,742,743,749],{},[733,744,745,748],{},[529,746,747],{},"refused",", in the Own item column",[733,750,751,752,542],{},"The tool fails when a Kraft worker aims it at the item it is running. The API behind it refuses the same call from a ",[538,753,755],{"href":754},"\u002Fconcepts\u002Fvocabulary#worker-session","worker session",[718,757,758,763],{},[733,759,760,748],{},[529,761,762],{},"API only: any item",[733,764,765],{},"The tool has no check of its own. The API refuses it from any Kraft session, on any item, as the second exception says.",[718,767,768,771],{},[733,769,770],{},"A blank Own item cell",[733,772,773],{},"A worker may use the tool on its own item.",[526,775,776],{},"Three exceptions:",[567,778,779,862,878],{},[570,780,781,782,786,787,789,790,585,792,585,794,637,796,799,800,804,805,808,809,811,812,815,816,585,818,585,820,823,824,827,828,831,832],{},"An ",[538,783,785],{"href":784},"\u002Fconcepts\u002Fvocabulary#escalation-turn","escalation turn"," is not a worker, so neither the client nor the API refuses it the ",[529,788,747],{}," tools on the item it is helping with. Four are still refused to it: ",[529,791,618],{},[529,793,621],{},[529,795,630],{},[529,797,798],{},"set_work_item_policy",", because a gate and a spending ",[538,801,803],{"href":802},"\u002Fconcepts\u002Fvocabulary#cap","cap"," are a person's call.",[806,807],"br",{},"In practice a turn can use ",[529,810,627],{}," on a ",[529,813,814],{},"needs_human"," item, which Kraft records and performs once the turn ends, ",[529,817,636],{},[529,819,640],{},[529,821,822],{},"set_agent_overrides",", and ",[529,825,826],{},"set_node_overrides"," for a node that has not started. The API answers it ",[529,829,830],{},"409"," for these:",[567,833,834,844,856],{},[570,835,836,585,838,637,840,843],{},[529,837,633],{},[529,839,624],{},[529,841,842],{},"escalate_work_item",", while any escalation turn is running, the caller's own included.",[570,845,846,849,850,661,852,855],{},[529,847,848],{},"pause_work_item",": a turn runs only on an item that is ",[529,851,814],{},[529,853,854],{},"paused",", and pause takes only a running one.",[570,857,858,861],{},[529,859,860],{},"set_attachments",": a turn runs only on an item that has started, and a started item's documents are fixed.",[570,863,864,865,585,868,585,871,637,874,877],{},"The API refuses ",[529,866,867],{},"add_review_comment",[529,869,870],{},"submit_review",[529,872,873],{},"resolve_thread",[529,875,876],{},"reopen_thread"," from any Kraft session, a worker or an escalation turn, on any item and not only its own.",[570,879,880,585,883,637,886,889,890,893],{},[529,881,882],{},"kraft item abandon",[529,884,885],{},"item archive",[529,887,888],{},"item restore"," have no tool. A worker is refused ",[529,891,892],{},"abandon"," on its own item too.",[551,895,897],{"id":896},"read","Read",[712,899,900,919],{},[715,901,902],{},[718,903,904,907,910,913,916],{},[721,905,906],{},"Tool",[721,908,909],{},"What it does",[721,911,912],{},"Parameters",[721,914,915],{},"Command",[721,917,918],{},"Own item",[728,920,921,969,992,1017,1049,1080,1107],{},[718,922,923,927,933,963,967],{},[733,924,925],{},[529,926,652],{},[733,928,929,930,542],{},"Lists work items. Abandoned and cancelled items show only when you ask for ",[529,931,932],{},"abandoned",[733,934,935,938,939,585,941,585,944,585,947,585,950,585,953,585,956,585,958,661,961,542],{},[529,936,937],{},"status",": ",[529,940,854],{},[529,942,943],{},"active",[529,945,946],{},"queued",[529,948,949],{},"blocked",[529,951,952],{},"waiting",[529,954,955],{},"rate_limited",[529,957,814],{},[529,959,960],{},"completed",[529,962,932],{},[733,964,965],{},[529,966,656],{},[733,968],{},[718,970,971,975,981,985,990],{},[733,972,973],{},[529,974,574],{},[733,976,977,978,542],{},"Returns the item, trimmed: see ",[538,979,554],{"href":980},"#same-as-the-cli",[733,982,983,542],{},[529,984,670],{},[733,986,987],{},[529,988,989],{},"kraft view show",[733,991],{},[718,993,994,999,1006,1010,1015],{},[733,995,996],{},[529,997,998],{},"get_gate_artifact",[733,1000,1001,1002,1005],{},"Returns the spec or plan the pending gate decides, and the ",[529,1003,1004],{},"digest"," a chain revision gate needs.",[733,1007,1008,542],{},[529,1009,670],{},[733,1011,1012],{},[529,1013,1014],{},"kraft view artifact",[733,1016],{},[718,1018,1019,1024,1027,1042,1047],{},[733,1020,1021],{},[529,1022,1023],{},"get_attachment",[733,1025,1026],{},"Returns the spec or plan the item was filed with, as Kraft stored it then: readable before the item starts.",[733,1028,1029,1032,1033,661,1036,1039,1040,542],{},[529,1030,1031],{},"kind"," (required: ",[529,1034,1035],{},"spec",[529,1037,1038],{},"plan","), ",[529,1041,670],{},[733,1043,1044],{},[529,1045,1046],{},"kraft view docs --attachment",[733,1048],{},[718,1050,1051,1056,1059,1073,1078],{},[733,1052,1053],{},[529,1054,1055],{},"search",[733,1057,1058],{},"Searches specs, plans and session summaries across repos.",[733,1060,1061,1064,1065,1068,1069,1072],{},[529,1062,1063],{},"q"," (required), ",[529,1066,1067],{},"limit"," (default ",[529,1070,1071],{},"20",").",[733,1074,1075],{},[529,1076,1077],{},"kraft view search",[733,1079],{},[718,1081,1082,1087,1090,1100,1105],{},[733,1083,1084],{},[529,1085,1086],{},"list_threads",[733,1088,1089],{},"Lists review threads, drafts included.",[733,1091,1092,585,1094,1068,1097,1072],{},[529,1093,670],{},[529,1095,1096],{},"open_only",[529,1098,1099],{},"false",[733,1101,1102],{},[529,1103,1104],{},"kraft view threads",[733,1106],{},[718,1108,1109,1114,1129,1152,1157],{},[733,1110,1111],{},[529,1112,1113],{},"compare_changes",[733,1115,1116,1117,585,1120,585,1123,661,1126,542],{},"Compares two review targets. A target is ",[529,1118,1119],{},"base",[529,1121,1122],{},"attempt:N",[529,1124,1125],{},"last_review",[529,1127,1128],{},"latest",[733,1130,1131,585,1133,1068,1136,1039,1138,1068,1141,1039,1143,1146,1147,1068,1150,1072],{},[529,1132,670],{},[529,1134,1135],{},"from_",[529,1137,1119],{},[529,1139,1140],{},"to",[529,1142,1128],{},[529,1144,1145],{},"nodes"," (comma-separated node ids), ",[529,1148,1149],{},"ignore_whitespace",[529,1151,1099],{},[733,1153,1154],{},[529,1155,1156],{},"kraft view compare",[733,1158],{},[551,1160,1162],{"id":1161},"file-and-connect","File and connect",[712,1164,1165,1179],{},[715,1166,1167],{},[718,1168,1169,1171,1173,1175,1177],{},[721,1170,906],{},[721,1172,909],{},[721,1174,912],{},[721,1176,915],{},[721,1178,918],{},[728,1180,1181,1253],{},[718,1182,1183,1188,1195,1246,1251],{},[733,1184,1185],{},[529,1186,1187],{},"create_work_item",[733,1189,1190,1191,542],{},"Files the item paused. See ",[538,1192,1194],{"href":1193},"#creating-a-work-item","Creating a work item",[733,1196,1197,1064,1200,585,1203,585,1205,585,1208,585,1210,1068,1213,1039,1216,585,1219,585,1222,585,1224,585,1227,585,1230,585,1233,823,1236,1239,1240,1242,1243,1245],{},[529,1198,1199],{},"title",[529,1201,1202],{},"repo",[529,1204,603],{},[529,1206,1207],{},"description",[529,1209,589],{},[529,1211,1212],{},"auto_gate",[529,1214,1215],{},"true",[529,1217,1218],{},"implements_beads",[529,1220,1221],{},"depends_on",[529,1223,594],{},[529,1225,1226],{},"base_branch",[529,1228,1229],{},"skip_nodes",[529,1231,1232],{},"budget_usd",[529,1234,1235],{},"node_overrides",[529,1237,1238],{},"chain_template"," (the pre-2.0 name of ",[529,1241,603],{},", still read; ",[529,1244,603],{}," wins when both are given).",[733,1247,1248],{},[529,1249,1250],{},"kraft item create",[733,1252],{},[718,1254,1255,1260,1267,1279,1284],{},[733,1256,1257],{},[529,1258,1259],{},"ensure_repo",[733,1261,1262,1263,542],{},"Connects the repo if it is not connected yet. See ",[538,1264,1266],{"href":1265},"#connecting-a-repo","Connecting a repo",[733,1268,1269,1272,1273,585,1276,542],{},[529,1270,1271],{},"path"," (default: the current directory), ",[529,1274,1275],{},"test_command",[529,1277,1278],{},"setup_command",[733,1280,1281],{},[529,1282,1283],{},"kraft repo connect",[733,1285],{},[1287,1288,1194],"h3",{"id":1289},"creating-a-work-item",[526,1291,1292,1293,1295],{},"Some ",[529,1294,1187],{}," parameters have a default or a shape:",[567,1297,1298,1303,1315,1327,1332,1337],{},[570,1299,1300,1302],{},[529,1301,1202],{}," defaults to the repo of the item you are in.",[570,1304,1305,1307,1308,1311,1312,542],{},[529,1306,603],{}," defaults to the repo's ",[529,1309,1310],{},"default_chain",", else ",[529,1313,1314],{},"default",[570,1316,1317,1319,1320,1323,1324,1326],{},[529,1318,589],{}," is ",[529,1321,1322],{},"[{\"kind\": \"spec\" or \"plan\", \"path\": ...}]",", at most one of each. A ",[529,1325,1271],{}," is resolved against the repo and against the working tree you are standing in, relative to that tree or absolute.",[570,1328,1329,1331],{},[529,1330,1212],{}," defaults to true.",[570,1333,1334,1336],{},[529,1335,1221],{}," is work item ids this item comes after. You still start it; started while one is unfinished it is blocked, and Kraft starts it when they complete. They cannot be added later.",[570,1338,1339,1341],{},[529,1340,1232],{}," sets a dollar cap. This tool can set a cap but not lift one.",[526,1343,1344,1345,1348],{},"The tool warns, in ",[529,1346,1347],{},"repo_warning",", when the repo declares no setup command or no test command, which would stop the item.",[526,1350,1351],{},"A call that files an item with a spec attached:",[1353,1354,1359],"pre",{"className":1355,"code":1356,"language":1357,"meta":1358,"style":1358},"language-json shiki shiki-themes github-light-high-contrast github-light-high-contrast github-dark-high-contrast","{\"title\": \"fix the flaky test\", \"attachments\": [{\"kind\": \"spec\", \"path\": \".engineering\u002Fspecs\u002Fx.md\"}]}\n","json","",[529,1360,1361],{"__ignoreMap":1358},[1362,1363,1366,1370,1374,1376,1380,1382,1385,1388,1391,1393,1396,1398,1401,1403,1406],"span",{"class":1364,"line":1365},"line",1,[1362,1367,1369],{"class":1368},"s7iLA","{",[1362,1371,1373],{"class":1372},"sb7M8","\"title\"",[1362,1375,938],{"class":1368},[1362,1377,1379],{"class":1378},"semJd","\"fix the flaky test\"",[1362,1381,585],{"class":1368},[1362,1383,1384],{"class":1372},"\"attachments\"",[1362,1386,1387],{"class":1368},": [{",[1362,1389,1390],{"class":1372},"\"kind\"",[1362,1392,938],{"class":1368},[1362,1394,1395],{"class":1378},"\"spec\"",[1362,1397,585],{"class":1368},[1362,1399,1400],{"class":1372},"\"path\"",[1362,1402,938],{"class":1368},[1362,1404,1405],{"class":1378},"\".engineering\u002Fspecs\u002Fx.md\"",[1362,1407,1408],{"class":1368},"}]}\n",[526,1410,1411],{},"An attached document trims the node whose gate it satisfies, so nobody approves again what was already agreed.",[1287,1413,1266],{"id":1414},"connecting-a-repo",[526,1416,1417,1418,1420,1421,1424],{},"When it connects a repo, ",[529,1419,1259],{}," proposes both commands from the repo's task runner, CI and lockfiles, or takes the ones given (",[529,1422,1423],{},"\"\""," for none). It returns every candidate it found.",[526,1426,1427,1428,1431],{},"With ",[529,1429,1430],{},"test_command: \"\""," the repo is saved disabled: a repo with no tests passes every work item's verification untested, so a person enables it, not the agent. An already-connected repo is left as it is.",[551,1433,1435],{"id":1434},"act-on-a-work-item","Act on a work item",[712,1437,1438,1452],{},[715,1439,1440],{},[718,1441,1442,1444,1446,1448,1450],{},[721,1443,906],{},[721,1445,909],{},[721,1447,912],{},[721,1449,915],{},[721,1451,918],{},[728,1453,1454,1483,1513,1533,1562,1592,1629,1663,1689,1719,1743],{},[718,1455,1456,1460,1466,1476,1481],{},[733,1457,1458],{},[529,1459,618],{},[733,1461,1462,1463],{},"Approves a pending gate. ",[707,1464,1465],{},"Human.",[733,1467,1468,585,1470,1472,1473,1475],{},[529,1469,670],{},[529,1471,584],{}," (default: the pending one), ",[529,1474,1004],{}," (a chain revision gate needs it).",[733,1477,1478],{},[529,1479,1480],{},"kraft item approve",[733,1482,747],{},[718,1484,1485,1489,1494,1506,1511],{},[733,1486,1487],{},[529,1488,621],{},[733,1490,1491,1492],{},"Rejects the pending gate and sends the chain back to work. ",[707,1493,1465],{},[733,1495,1496,1064,1499,585,1501,585,1503,1505],{},[529,1497,1498],{},"note",[529,1500,670],{},[529,1502,584],{},[529,1504,579],{}," (where the chain re-enters).",[733,1507,1508],{},[529,1509,1510],{},"kraft item reject",[733,1512,747],{},[718,1514,1515,1519,1522,1526,1531],{},[733,1516,1517],{},[529,1518,848],{},[733,1520,1521],{},"Pauses the item and ends its running sessions. A queued item leaves the queue, back to where it was.",[733,1523,1524,542],{},[529,1525,670],{},[733,1527,1528],{},[529,1529,1530],{},"kraft item pause",[733,1532,747],{},[718,1534,1535,1540,1549,1555,1560],{},[733,1536,1537],{},[529,1538,1539],{},"unblock_work_item",[733,1541,1542,1543,1546,1547],{},"Drops what a blocked or paused item still comes after, or only ",[529,1544,1545],{},"dependency",". A blocked item with nothing left to wait for then starts on its own. ",[707,1548,1465],{},[733,1550,1551,585,1553,542],{},[529,1552,670],{},[529,1554,1545],{},[733,1556,1557],{},[529,1558,1559],{},"kraft item unblock",[733,1561,747],{},[718,1563,1564,1568,1571,1585,1590],{},[733,1565,1566],{},[529,1567,624],{},[733,1569,1570],{},"Starts a paused item, including one just filed. Queues the item when every slot is busy, and blocks it when it comes after an unfinished item.",[733,1572,1573,585,1575,585,1578,1581,1582,1072],{},[529,1574,670],{},[529,1576,1577],{},"steer",[529,1579,1580],{},"steers"," (",[529,1583,1584],{},"{task path: steer}",[733,1586,1587],{},[529,1588,1589],{},"kraft item resume",[733,1591,747],{},[718,1593,1594,1598,1601,1622,1627],{},[733,1595,1596],{},[529,1597,627],{},[733,1599,1600],{},"The only way back onto a stopped item. It does not reset a breached cap's counters, so an item that stopped on a cap stops again. Queues the item when every slot is busy.",[733,1602,1603,585,1605,585,1607,1581,1609,585,1611,661,1614,1039,1617,1068,1620,1072],{},[529,1604,670],{},[529,1606,1577],{},[529,1608,1271],{},[529,1610,579],{},[529,1612,1613],{},"node.step",[529,1615,1616],{},"node.step.task",[529,1618,1619],{},"restart",[529,1621,1099],{},[733,1623,1624],{},[529,1625,1626],{},"kraft item retry",[733,1628,747],{},[718,1630,1631,1635,1645,1656,1661],{},[733,1632,1633],{},[529,1634,630],{},[733,1636,1637,1638,1642,1643],{},"Raises the dollar cap that stopped the item and retries it; queues the retry when every slot is busy. See ",[538,1639,1641],{"href":1640},"#raising-a-dollar-cap","Raising a dollar cap",". ",[707,1644,1465],{},[733,1646,1647,1649,1650,1653,1654,542],{},[529,1648,1232],{}," (required; ",[529,1651,1652],{},"null"," for no cap), ",[529,1655,670],{},[733,1657,1658],{},[529,1659,1660],{},"kraft item raise-budget",[733,1662,747],{},[718,1664,1665,1669,1674,1682,1687],{},[733,1666,1667],{},[529,1668,633],{},[733,1670,1671,1672],{},"Advances past the current node or gate without running it. ",[707,1673,1465],{},[733,1675,1676,585,1678,585,1680,542],{},[529,1677,670],{},[529,1679,1498],{},[529,1681,1271],{},[733,1683,1684],{},[529,1685,1686],{},"kraft item skip",[733,1688,747],{},[718,1690,1691,1695,1700,1712,1717],{},[733,1692,1693],{},[529,1694,636],{},[733,1696,1697,1698],{},"Ends the item as completed. ",[707,1699,1465],{},[733,1701,1702,1064,1705,585,1707,1068,1710,1072],{},[529,1703,1704],{},"reason",[529,1706,670],{},[529,1708,1709],{},"close_beads",[529,1711,1099],{},[733,1713,1714],{},[529,1715,1716],{},"kraft item complete",[733,1718,747],{},[718,1720,1721,1725,1730,1736,1741],{},[733,1722,1723],{},[529,1724,640],{},[733,1726,1727,1728],{},"Ends the item as cancelled. The worktree stays. ",[707,1729,1465],{},[733,1731,1732,1064,1734,542],{},[529,1733,1704],{},[529,1735,670],{},[733,1737,1738],{},[529,1739,1740],{},"kraft item cancel",[733,1742,747],{},[718,1744,1745,1749,1752,1759,1764],{},[733,1746,1747],{},[529,1748,842],{},[733,1750,1751],{},"Sends a message into the item's escalation thread.",[733,1753,1754,1064,1757,542],{},[529,1755,1756],{},"message",[529,1758,670],{},[733,1760,1761],{},[529,1762,1763],{},"kraft item escalate",[733,1765,747],{},[1287,1767,1641],{"id":1768},"raising-a-dollar-cap",[526,1770,1771,1773,1774,1776],{},[529,1772,630],{}," raises the item's own cap, or the item-wide ",[529,1775,1232],{}," of its policy, which it merges into the item's policy override, keeping its other fields.",[526,1778,1779,1780,1782,1783,1786,1787,1790,1791,1793,1794,1797,1798,1800,1801,1805,1806,542],{},"Any other cap's stop is refused. A node's ",[529,1781,1232],{}," or a ",[529,1784,1785],{},"token_budget"," comes with a pointer to ",[529,1788,1789],{},"kraft item set-policy"," (here, ",[529,1792,798],{},"), which replaces the whole override, so pass the fields it already has too. A stop on ",[529,1795,1796],{},"budget.daily_usd"," is refused too: raise it in ",[529,1799,318],{},", or wait for local midnight. ",[538,1802,1804],{"href":1803},"\u002Freference\u002Fcli\u002Fitem#raise-a-cap-that-stopped-an-item","Raise a cap that stopped an item"," lists every refusal. See ",[538,1807,80],{"href":81},[551,1809,1811],{"id":1810},"change-a-work-items-setup","Change a work item's setup",[526,1813,1814,1815,1817],{},"These refuse with ",[529,1816,830],{}," once the item, or the node, has started, except the\npolicy tool, which binds from the next node entered.",[712,1819,1820,1834],{},[715,1821,1822],{},[718,1823,1824,1826,1828,1830,1832],{},[721,1825,906],{},[721,1827,909],{},[721,1829,912],{},[721,1831,915],{},[721,1833,918],{},[728,1835,1836,1859,1894,1928,1971],{},[718,1837,1838,1843,1846,1852,1857],{},[733,1839,1840],{},[529,1841,1842],{},"set_chain",[733,1844,1845],{},"Switches a not-yet-started item's chain.",[733,1847,1848,1064,1850,542],{},[529,1849,603],{},[529,1851,670],{},[733,1853,1854],{},[529,1855,1856],{},"kraft item set-chain",[733,1858],{},[718,1860,1861,1865,1868,1887,1892],{},[733,1862,1863],{},[529,1864,860],{},[733,1866,1867],{},"Revises a not-yet-started item's spec or plan, or drops one.",[733,1869,1870,585,1872,585,1874,1876,1877,1581,1880,585,1883,1886],{},[529,1871,670],{},[529,1873,1035],{},[529,1875,1038],{}," (paths), ",[529,1878,1879],{},"drop",[529,1881,1882],{},"[\"spec\"]",[529,1884,1885],{},"[\"plan\"]"," or both).",[733,1888,1889],{},[529,1890,1891],{},"kraft item set-attachments",[733,1893,747],{},[718,1895,1896,1900,1903,1921,1926],{},[733,1897,1898],{},[529,1899,822],{},[733,1901,1902],{},"Sets the model and effort of every agent node. Replaces the whole override: a field you leave out goes back to the chain's own binding.",[733,1904,1905,585,1907,585,1910,585,1913,585,1916,1068,1919,1072],{},[529,1906,670],{},[529,1908,1909],{},"model",[529,1911,1912],{},"escalate_model",[529,1914,1915],{},"effort",[529,1917,1918],{},"clear",[529,1920,1099],{},[733,1922,1923],{},[529,1924,1925],{},"kraft item set-overrides",[733,1927,747],{},[718,1929,1930,1934,1937,1964,1969],{},[733,1931,1932],{},[529,1933,826],{},[733,1935,1936],{},"Sets one node's agent overrides.",[733,1938,1939,1064,1942,585,1944,585,1947,585,1950,585,1953,585,1955,585,1957,585,1960,1068,1962,1072],{},[529,1940,1941],{},"node_id",[529,1943,670],{},[529,1945,1946],{},"auto_escalate",[529,1948,1949],{},"auto_escalate_stuck",[529,1951,1952],{},"auto_escalate_delay_s",[529,1954,1909],{},[529,1956,1915],{},[529,1958,1959],{},"extra_prompt",[529,1961,1918],{},[529,1963,1099],{},[733,1965,1966],{},[529,1967,1968],{},"kraft item set-node-override",[733,1970,747],{},[718,1972,1973,1977,1980,2002,2006],{},[733,1974,1975],{},[529,1976,798],{},[733,1978,1979],{},"Gives the item its own policy override. Replaces the whole stored override.",[733,1981,1982,585,1984,1986,1987,1990,1991,1993,1994,1997,1998,1068,2000,1072],{},[529,1983,670],{},[529,1985,594],{}," (item-wide fields, plus ",[529,1988,1989],{},"paths"," for per-scope fields; item-wide ",[529,1992,1232],{}," may be ",[529,1995,1996],{},"\"none\"",", no dollar cap), ",[529,1999,1918],{},[529,2001,1099],{},[733,2003,2004],{},[529,2005,1789],{},[733,2007,747],{},[551,2009,2011],{"id":2010},"review","Review",[712,2013,2014,2028],{},[715,2015,2016],{},[718,2017,2018,2020,2022,2024,2026],{},[721,2019,906],{},[721,2021,909],{},[721,2023,912],{},[721,2025,915],{},[721,2027,918],{},[728,2029,2030,2085,2106,2126],{},[718,2031,2032,2036,2043,2078,2083],{},[733,2033,2034],{},[529,2035,867],{},[733,2037,2038,2039,542],{},"Leaves a draft comment. See ",[538,2040,2042],{"href":2041},"#review-comment-parameters","Review comment parameters",[733,2044,2045,1064,2048,585,2050,2053,2054,585,2057,585,2060,585,2063,585,2066,585,2069,585,2072,585,2075,542],{},[529,2046,2047],{},"body",[529,2049,670],{},[529,2051,2052],{},"thread_id"," (to reply), ",[529,2055,2056],{},"file_path",[529,2058,2059],{},"start_line",[529,2061,2062],{},"end_line",[529,2064,2065],{},"side",[529,2067,2068],{},"start_side",[529,2070,2071],{},"quote",[529,2073,2074],{},"label",[529,2076,2077],{},"suggestion",[733,2079,2080],{},[529,2081,2082],{},"kraft item comment",[733,2084,747],{},[718,2086,2087,2091,2094,2099,2104],{},[733,2088,2089],{},[529,2090,873],{},[733,2092,2093],{},"Resolves a review thread.",[733,2095,2096,2098],{},[529,2097,2052],{}," (required).",[733,2100,2101],{},[529,2102,2103],{},"kraft item resolve",[733,2105,762],{},[718,2107,2108,2112,2115,2119,2124],{},[733,2109,2110],{},[529,2111,876],{},[733,2113,2114],{},"Reopens a resolved review thread.",[733,2116,2117,2098],{},[529,2118,2052],{},[733,2120,2121],{},[529,2122,2123],{},"kraft item reopen",[733,2125,762],{},[718,2127,2128,2132,2137,2158,2163],{},[733,2129,2130],{},[529,2131,870],{},[733,2133,2134,2135],{},"Sends the drafts. ",[707,2136,1465],{},[733,2138,2139,1032,2142,585,2145,661,2148,1039,2151,585,2153,585,2156,542],{},[529,2140,2141],{},"outcome",[529,2143,2144],{},"comment",[529,2146,2147],{},"request_changes",[529,2149,2150],{},"approve",[529,2152,670],{},[529,2154,2155],{},"summary",[529,2157,579],{},[733,2159,2160],{},[529,2161,2162],{},"kraft item review",[733,2164,747],{},[1287,2166,2042],{"id":2167},"review-comment-parameters",[567,2169,2170,2186,2193,2198,2211],{},[570,2171,2172,1319,2174,661,2177,2180,2181,938,2183,2185],{},[529,2173,2065],{},[529,2175,2176],{},"old",[529,2178,2179],{},"new",", default ",[529,2182,2179],{},[529,2184,2062],{},"'s side.",[570,2187,2188,1319,2190,2192],{},[529,2189,2068],{},[529,2191,2059],{},"'s side, when the range crosses sides.",[570,2194,2195,2197],{},[529,2196,2071],{}," is the range's lines, each led by its diff mark; left out, Kraft quotes them from the diff.",[570,2199,2200,1319,2202,585,2205,661,2208,542],{},[529,2201,2074],{},[529,2203,2204],{},"must_fix",[529,2206,2207],{},"question",[529,2209,2210],{},"nit",[570,2212,2213,2215],{},[529,2214,2077],{}," is for new-side lines only.",[551,2217,2219],{"id":2218},"for-krafts-own-workers","For Kraft's own workers",[712,2221,2222,2236],{},[715,2223,2224],{},[718,2225,2226,2228,2230,2232,2234],{},[721,2227,906],{},[721,2229,909],{},[721,2231,912],{},[721,2233,915],{},[721,2235,918],{},[728,2237,2238,2267,2303,2327],{},[718,2239,2240,2245,2248,2260,2265],{},[733,2241,2242],{},[529,2243,2244],{},"report_progress",[733,2246,2247],{},"Reports that the worker started a plan task.",[733,2249,2250,2253,2254,2257,2258,542],{},[529,2251,2252],{},"task"," (required): the N of the plan's ",[529,2255,2256],{},"## Task N"," heading. ",[529,2259,670],{},[733,2261,2262],{},[529,2263,2264],{},"kraft item progress",[733,2266],{},[718,2268,2269,2274,2277,2296,2301],{},[733,2270,2271],{},[529,2272,2273],{},"reply_to_thread",[733,2275,2276],{},"Answers a review thread.",[733,2278,2279,585,2281,2283,2284,1581,2287,585,2290,661,2293,1072],{},[529,2280,2052],{},[529,2282,2047],{}," (both required), ",[529,2285,2286],{},"claim",[529,2288,2289],{},"fixed",[529,2291,2292],{},"answered",[529,2294,2295],{},"should_fix",[733,2297,2298],{},[529,2299,2300],{},"kraft item reply",[733,2302],{},[718,2304,2305,2310,2313,2320,2325],{},[733,2306,2307],{},[529,2308,2309],{},"set_mr_labels",[733,2311,2312],{},"Labels the merge request and re-creates its pipeline.",[733,2314,2315,1064,2318,542],{},[529,2316,2317],{},"labels",[529,2319,670],{},[733,2321,2322],{},[529,2323,2324],{},"kraft item mr-label",[733,2326],{},[718,2328,2329,2334,2344,2355,2358],{},[733,2330,2331],{},[529,2332,2333],{},"permission_request",[733,2335,2336,2337,2340,2341,542],{},"Not for an agent to call: Kraft passes it to Claude Code as ",[529,2338,2339],{},"--permission-prompt-tool",". See ",[538,2342,436],{"href":2343},"\u002Freference\u002Fpermissions#claude",[733,2345,2346,585,2349,2283,2352,542],{},[529,2347,2348],{},"tool_name",[529,2350,2351],{},"input",[529,2353,2354],{},"tool_use_id",[733,2356,2357],{},"none",[733,2359],{},[551,2361,2363],{"id":2362},"related","Related",[567,2365,2366,2371,2376],{},[570,2367,2368,2370],{},[538,2369,268],{"href":269},": the verb behind each tool, with its flags and output.",[570,2372,2373,2375],{},[538,2374,72],{"href":73},": how to register these tools with an agent, and how to check that it works.",[570,2377,2378,2380,2381,2383],{},[538,2379,436],{"href":437},": how Kraft answers a worker's asks, and what ",[529,2382,2333],{}," is for.",[2385,2386,2387],"style",{},"html pre.shiki code .s7iLA, html code.shiki .s7iLA{--shiki-light:#0E1116;--shiki-default:#0E1116;--shiki-dark:#F0F3F6}html pre.shiki code .sb7M8, html code.shiki .sb7M8{--shiki-light:#024C1A;--shiki-default:#024C1A;--shiki-dark:#72F088}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":1358,"searchDepth":2389,"depth":2389,"links":2390},2,[2391,2392,2393,2394,2395,2400,2403,2404,2407,2408],{"id":553,"depth":2389,"text":554},{"id":684,"depth":2389,"text":685},{"id":701,"depth":2389,"text":702},{"id":896,"depth":2389,"text":897},{"id":1161,"depth":2389,"text":1162,"children":2396},[2397,2399],{"id":1289,"depth":2398,"text":1194},3,{"id":1414,"depth":2398,"text":1266},{"id":1434,"depth":2389,"text":1435,"children":2401},[2402],{"id":1768,"depth":2398,"text":1641},{"id":1810,"depth":2389,"text":1811},{"id":2010,"depth":2389,"text":2011,"children":2405},[2406],{"id":2167,"depth":2398,"text":2042},{"id":2218,"depth":2389,"text":2219},{"id":2362,"depth":2389,"text":2363},"Every tool the kraft MCP server serves, with its parameters and the kraft command that does the same.","md",null,{},true,{"title":478,"description":2409},"rxjf0MpOf9UXgi-bRJwvLUZOYzJdc8ukUEs__nrPQBg",[2417,2419],{"title":474,"path":475,"stem":476,"description":2418,"children":-1},"The ops each kind of draft takes, one entry per op, with the answer each gives, and a work item's own draft.",{"title":482,"path":483,"stem":484,"description":2420,"children":-1},"Every event type on a work item's timeline, its key payload fields, and the notification webhook that sends them.",1791801168813]