[{"data":1,"prerenderedAt":2327},["ShallowReactive",2],{"navigation_docs":3,"-reference-mcp-tools":504,"-reference-mcp-tools-surround":2322},[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":462,"body":506,"description":2315,"extension":2316,"links":2317,"meta":2318,"navigation":2319,"path":463,"seo":2320,"stem":464,"__hash__":2321},"docs\u002F5.reference\u002F09.mcp-tools.md",{"type":507,"value":508,"toc":2294},"minimark",[509,527,534,539,550,616,632,636,643,649,653,661,724,727,843,847,1102,1106,1226,1230,1236,1277,1284,1287,1344,1347,1350,1360,1367,1371,1672,1675,1683,1714,1718,1724,1914,1918,2071,2074,2122,2126,2266,2270,2290],[510,511,512,516,517,520,521,526],"p",{},[513,514,515],"code",{},"kraft admin mcp"," serves these tools over stdio. The Kraft plugin and\n",[513,518,519],{},"kraft admin init"," register it for Claude Code; for any other agent, see\n",[522,523,525],"a",{"href":524},"\u002Fguides\u002Fday-to-day\u002Fagent-integration#set-up-without-the-plugin","Set up without the plugin",".",[510,528,529,530,526],{},"The tool names and parameters are a public interface: they keep their shape between minor releases. See ",[522,531,533],{"href":532},"\u002Fproject\u002Fstatus-and-support#versioning-and-stability","Versioning and stability",[535,536,538],"h2",{"id":537},"same-as-the-cli","Same as the CLI",[510,540,541,542,545,546,549],{},"Each tool calls the same client function as its ",[513,543,544],{},"kraft"," command, and ",[513,547,548],{},"--json"," prints that function's payload, with two differences:",[551,552,553,598],"ul",{},[554,555,556,559,560,564,565,569,570,574,575,579,580,583,584,588,589,592,593,597],"li",{},[513,557,558],{},"get_work_item"," returns a trimmed item (its status, current ",[522,561,563],{"href":562},"\u002Fconcepts\u002Fvocabulary#node","node",", pending ",[522,566,568],{"href":567},"\u002Fconcepts\u002Fvocabulary#gate","gate",", ",[522,571,573],{"href":572},"\u002Fconcepts\u002Fvocabulary#attachment","attachments",", progress, stop reason, usage, any ",[522,576,578],{"href":577},"\u002Fconcepts\u002Fvocabulary#policy","policy"," override and ",[513,581,582],{},"next_node_id",", and not its ",[522,585,587],{"href":586},"\u002Fconcepts\u002Fvocabulary#chain","chain"," or sessions). ",[513,590,591],{},"kraft view show --json"," prints the full detail, with the effective chain, ",[522,594,596],{"href":595},"\u002Fconcepts\u002Fvocabulary#worker","worker"," sessions and stop.",[554,599,600,603,604,607,608,611,612,615],{},[513,601,602],{},"list_work_items"," lists every repo. ",[513,605,606],{},"kraft view list"," is scoped to the repo you are in unless ",[513,609,610],{},"--all"," or ",[513,613,614],{},"--repo"," says otherwise.",[510,617,618,621,622,626,627,631],{},[513,619,620],{},"work_item_id"," is optional wherever a tool takes it. Left out, it is the ",[522,623,625],{"href":624},"\u002Fconcepts\u002Fvocabulary#work-item","work item"," whose ",[522,628,630],{"href":629},"\u002Fconcepts\u002Fvocabulary#worktree","worktree"," or session you are in.",[535,633,635],{"id":634},"errors","Errors",[510,637,638,639,642],{},"A refused call is an error result whose text ends with the line the command prints, such as ",[513,640,641],{},"kraft: 404: unknown work item",", so the agent can see why.",[510,644,645,646,526],{},"An argument the API cannot read names the field and what is wrong with it: ",[513,647,648],{},"kraft: 422: label: Input should be 'must_fix', 'question' or 'nit'",[535,650,652],{"id":651},"who-may-call-what","Who may call what",[510,654,655,656,660],{},"The last column of each table below, and the ",[657,658,659],"em",{},"Human"," mark, say what an agent may do.",[662,663,664,677],"table",{},[665,666,667],"thead",{},[668,669,670,674],"tr",{},[671,672,673],"th",{},"Mark",[671,675,676],{},"Meaning",[678,679,680,691,706,716],"tbody",{},[668,681,682,688],{},[683,684,685,687],"td",{},[657,686,659],{},", in the What it does column",[683,689,690],{},"A decision the agent should ask a person about first.",[668,692,693,699],{},[683,694,695,698],{},[513,696,697],{},"refused",", in the Own item column",[683,700,701,702,526],{},"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 ",[522,703,705],{"href":704},"\u002Fconcepts\u002Fvocabulary#worker-session","worker session",[668,707,708,713],{},[683,709,710,698],{},[513,711,712],{},"API only: any item",[683,714,715],{},"The tool has no check of its own. The API refuses it from any Kraft session, on any item, as the second exception says.",[668,717,718,721],{},[683,719,720],{},"A blank Own item cell",[683,722,723],{},"A worker may use the tool on its own item.",[510,725,726],{},"Three exceptions:",[551,728,729,821,837],{},[554,730,731,732,736,737,739,740,569,743,569,746,749,750,753,754,758,759,762,763,766,767,770,771,569,774,569,777,780,781,784,785,788,789],{},"An ",[522,733,735],{"href":734},"\u002Fconcepts\u002Fvocabulary#escalation-turn","escalation turn"," is not a worker, so neither the client nor the API refuses it the ",[513,738,697],{}," tools on the item it is helping with. Four are still refused to it: ",[513,741,742],{},"approve_gate",[513,744,745],{},"reject_gate",[513,747,748],{},"raise_budget"," and ",[513,751,752],{},"set_work_item_policy",", because a gate and a spending ",[522,755,757],{"href":756},"\u002Fconcepts\u002Fvocabulary#cap","cap"," are a person's call.",[760,761],"br",{},"In practice a turn can use ",[513,764,765],{},"retry_work_item"," on a ",[513,768,769],{},"needs_human"," item, which Kraft records and performs once the turn ends, ",[513,772,773],{},"complete_work_item",[513,775,776],{},"cancel_work_item",[513,778,779],{},"set_agent_overrides",", and ",[513,782,783],{},"set_node_overrides"," for a node that has not started. The API answers it ",[513,786,787],{},"409"," for these:",[551,790,791,803,815],{},[554,792,793,569,796,749,799,802],{},[513,794,795],{},"skip_work_item",[513,797,798],{},"resume_work_item",[513,800,801],{},"escalate_work_item",", while any escalation turn is running, the caller's own included.",[554,804,805,808,809,611,811,814],{},[513,806,807],{},"pause_work_item",": a turn runs only on an item that is ",[513,810,769],{},[513,812,813],{},"paused",", and pause takes only a running one.",[554,816,817,820],{},[513,818,819],{},"set_attachments",": a turn runs only on an item that has started, and a started item's documents are fixed.",[554,822,823,824,569,827,569,830,749,833,836],{},"The API refuses ",[513,825,826],{},"add_review_comment",[513,828,829],{},"submit_review",[513,831,832],{},"resolve_thread",[513,834,835],{},"reopen_thread"," from any Kraft session, a worker or an escalation turn, on any item and not only its own.",[554,838,839,842],{},[513,840,841],{},"kraft item abandon"," has no tool, and a worker is refused it on its own item too.",[535,844,846],{"id":845},"read","Read",[662,848,849,868],{},[665,850,851],{},[668,852,853,856,859,862,865],{},[671,854,855],{},"Tool",[671,857,858],{},"What it does",[671,860,861],{},"Parameters",[671,863,864],{},"Command",[671,866,867],{},"Own item",[678,869,870,912,935,960,992,1023,1050],{},[668,871,872,876,882,906,910],{},[683,873,874],{},[513,875,602],{},[683,877,878,879,526],{},"Lists work items. Abandoned and cancelled items show only when you ask for ",[513,880,881],{},"abandoned",[683,883,884,887,888,569,890,569,893,569,896,569,899,569,901,611,904,526],{},[513,885,886],{},"status",": ",[513,889,813],{},[513,891,892],{},"active",[513,894,895],{},"waiting",[513,897,898],{},"rate_limited",[513,900,769],{},[513,902,903],{},"completed",[513,905,881],{},[683,907,908],{},[513,909,606],{},[683,911],{},[668,913,914,918,924,928,933],{},[683,915,916],{},[513,917,558],{},[683,919,920,921,526],{},"Returns the item, trimmed: see ",[522,922,538],{"href":923},"#same-as-the-cli",[683,925,926,526],{},[513,927,620],{},[683,929,930],{},[513,931,932],{},"kraft view show",[683,934],{},[668,936,937,942,949,953,958],{},[683,938,939],{},[513,940,941],{},"get_gate_artifact",[683,943,944,945,948],{},"Returns the spec or plan the pending gate decides, and the ",[513,946,947],{},"digest"," a chain revision gate needs.",[683,950,951,526],{},[513,952,620],{},[683,954,955],{},[513,956,957],{},"kraft view artifact",[683,959],{},[668,961,962,967,970,985,990],{},[683,963,964],{},[513,965,966],{},"get_attachment",[683,968,969],{},"Returns the spec or plan the item was filed with, as Kraft stored it then: readable before the item starts.",[683,971,972,975,976,611,979,982,983,526],{},[513,973,974],{},"kind"," (required: ",[513,977,978],{},"spec",[513,980,981],{},"plan","), ",[513,984,620],{},[683,986,987],{},[513,988,989],{},"kraft view docs --attachment",[683,991],{},[668,993,994,999,1002,1016,1021],{},[683,995,996],{},[513,997,998],{},"search",[683,1000,1001],{},"Searches specs, plans and session summaries across repos.",[683,1003,1004,1007,1008,1011,1012,1015],{},[513,1005,1006],{},"q"," (required), ",[513,1009,1010],{},"limit"," (default ",[513,1013,1014],{},"20",").",[683,1017,1018],{},[513,1019,1020],{},"kraft view search",[683,1022],{},[668,1024,1025,1030,1033,1043,1048],{},[683,1026,1027],{},[513,1028,1029],{},"list_threads",[683,1031,1032],{},"Lists review threads, drafts included.",[683,1034,1035,569,1037,1011,1040,1015],{},[513,1036,620],{},[513,1038,1039],{},"open_only",[513,1041,1042],{},"false",[683,1044,1045],{},[513,1046,1047],{},"kraft view threads",[683,1049],{},[668,1051,1052,1057,1072,1095,1100],{},[683,1053,1054],{},[513,1055,1056],{},"compare_changes",[683,1058,1059,1060,569,1063,569,1066,611,1069,526],{},"Compares two review targets. A target is ",[513,1061,1062],{},"base",[513,1064,1065],{},"attempt:N",[513,1067,1068],{},"last_review",[513,1070,1071],{},"latest",[683,1073,1074,569,1076,1011,1079,982,1081,1011,1084,982,1086,1089,1090,1011,1093,1015],{},[513,1075,620],{},[513,1077,1078],{},"from_",[513,1080,1062],{},[513,1082,1083],{},"to",[513,1085,1071],{},[513,1087,1088],{},"nodes"," (comma-separated node ids), ",[513,1091,1092],{},"ignore_whitespace",[513,1094,1042],{},[683,1096,1097],{},[513,1098,1099],{},"kraft view compare",[683,1101],{},[535,1103,1105],{"id":1104},"file-and-connect","File and connect",[662,1107,1108,1122],{},[665,1109,1110],{},[668,1111,1112,1114,1116,1118,1120],{},[671,1113,855],{},[671,1115,858],{},[671,1117,861],{},[671,1119,864],{},[671,1121,867],{},[678,1123,1124,1193],{},[668,1125,1126,1131,1138,1186,1191],{},[683,1127,1128],{},[513,1129,1130],{},"create_work_item",[683,1132,1133,1134,526],{},"Files the item paused. See ",[522,1135,1137],{"href":1136},"#creating-a-work-item","Creating a work item",[683,1139,1140,1007,1143,569,1146,569,1148,569,1151,569,1153,1011,1156,982,1159,569,1162,569,1164,569,1167,569,1170,569,1173,780,1176,1179,1180,1182,1183,1185],{},[513,1141,1142],{},"title",[513,1144,1145],{},"repo",[513,1147,587],{},[513,1149,1150],{},"description",[513,1152,573],{},[513,1154,1155],{},"auto_gate",[513,1157,1158],{},"true",[513,1160,1161],{},"implements_beads",[513,1163,578],{},[513,1165,1166],{},"base_branch",[513,1168,1169],{},"skip_nodes",[513,1171,1172],{},"budget_usd",[513,1174,1175],{},"node_overrides",[513,1177,1178],{},"chain_template"," (the pre-2.0 name of ",[513,1181,587],{},", still read; ",[513,1184,587],{}," wins when both are given).",[683,1187,1188],{},[513,1189,1190],{},"kraft item create",[683,1192],{},[668,1194,1195,1200,1207,1219,1224],{},[683,1196,1197],{},[513,1198,1199],{},"ensure_repo",[683,1201,1202,1203,526],{},"Connects the repo if it is not connected yet. See ",[522,1204,1206],{"href":1205},"#connecting-a-repo","Connecting a repo",[683,1208,1209,1212,1213,569,1216,526],{},[513,1210,1211],{},"path"," (default: the current directory), ",[513,1214,1215],{},"test_command",[513,1217,1218],{},"setup_command",[683,1220,1221],{},[513,1222,1223],{},"kraft repo connect",[683,1225],{},[1227,1228,1137],"h3",{"id":1229},"creating-a-work-item",[510,1231,1232,1233,1235],{},"Some ",[513,1234,1130],{}," parameters have a default or a shape:",[551,1237,1238,1243,1255,1267,1272],{},[554,1239,1240,1242],{},[513,1241,1145],{}," defaults to the repo of the item you are in.",[554,1244,1245,1247,1248,1251,1252,526],{},[513,1246,587],{}," defaults to the repo's ",[513,1249,1250],{},"default_chain",", else ",[513,1253,1254],{},"default",[554,1256,1257,1259,1260,1263,1264,1266],{},[513,1258,573],{}," is ",[513,1261,1262],{},"[{\"kind\": \"spec\" or \"plan\", \"path\": ...}]",", at most one of each. A ",[513,1265,1211],{}," is resolved against the repo and against the working tree you are standing in, relative to that tree or absolute.",[554,1268,1269,1271],{},[513,1270,1155],{}," defaults to true.",[554,1273,1274,1276],{},[513,1275,1172],{}," sets a dollar cap. This tool can set a cap but not lift one.",[510,1278,1279,1280,1283],{},"The tool warns, in ",[513,1281,1282],{},"repo_warning",", when the repo declares no setup command or no test command, which would stop the item.",[510,1285,1286],{},"A call that files an item with a spec attached:",[1288,1289,1294],"pre",{"className":1290,"code":1291,"language":1292,"meta":1293,"style":1293},"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","",[513,1295,1296],{"__ignoreMap":1293},[1297,1298,1301,1305,1309,1311,1315,1317,1320,1323,1326,1328,1331,1333,1336,1338,1341],"span",{"class":1299,"line":1300},"line",1,[1297,1302,1304],{"class":1303},"s7iLA","{",[1297,1306,1308],{"class":1307},"sb7M8","\"title\"",[1297,1310,887],{"class":1303},[1297,1312,1314],{"class":1313},"semJd","\"fix the flaky test\"",[1297,1316,569],{"class":1303},[1297,1318,1319],{"class":1307},"\"attachments\"",[1297,1321,1322],{"class":1303},": [{",[1297,1324,1325],{"class":1307},"\"kind\"",[1297,1327,887],{"class":1303},[1297,1329,1330],{"class":1313},"\"spec\"",[1297,1332,569],{"class":1303},[1297,1334,1335],{"class":1307},"\"path\"",[1297,1337,887],{"class":1303},[1297,1339,1340],{"class":1313},"\".engineering\u002Fspecs\u002Fx.md\"",[1297,1342,1343],{"class":1303},"}]}\n",[510,1345,1346],{},"An attached document trims the node whose gate it satisfies, so nobody approves again what was already agreed.",[1227,1348,1206],{"id":1349},"connecting-a-repo",[510,1351,1352,1353,1355,1356,1359],{},"When it connects a repo, ",[513,1354,1199],{}," proposes both commands from the repo's task runner, CI and lockfiles, or takes the ones given (",[513,1357,1358],{},"\"\""," for none). It returns every candidate it found.",[510,1361,1362,1363,1366],{},"With ",[513,1364,1365],{},"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.",[535,1368,1370],{"id":1369},"act-on-a-work-item","Act on a work item",[662,1372,1373,1387],{},[665,1374,1375],{},[668,1376,1377,1379,1381,1383,1385],{},[671,1378,855],{},[671,1380,858],{},[671,1382,861],{},[671,1384,864],{},[671,1386,867],{},[678,1388,1389,1418,1448,1468,1498,1535,1569,1595,1625,1649],{},[668,1390,1391,1395,1401,1411,1416],{},[683,1392,1393],{},[513,1394,742],{},[683,1396,1397,1398],{},"Approves a pending gate. ",[657,1399,1400],{},"Human.",[683,1402,1403,569,1405,1407,1408,1410],{},[513,1404,620],{},[513,1406,568],{}," (default: the pending one), ",[513,1409,947],{}," (a chain revision gate needs it).",[683,1412,1413],{},[513,1414,1415],{},"kraft item approve",[683,1417,697],{},[668,1419,1420,1424,1429,1441,1446],{},[683,1421,1422],{},[513,1423,745],{},[683,1425,1426,1427],{},"Rejects the pending gate and sends the chain back to work. ",[657,1428,1400],{},[683,1430,1431,1007,1434,569,1436,569,1438,1440],{},[513,1432,1433],{},"note",[513,1435,620],{},[513,1437,568],{},[513,1439,563],{}," (where the chain re-enters).",[683,1442,1443],{},[513,1444,1445],{},"kraft item reject",[683,1447,697],{},[668,1449,1450,1454,1457,1461,1466],{},[683,1451,1452],{},[513,1453,807],{},[683,1455,1456],{},"Pauses the item and ends its running sessions.",[683,1458,1459,526],{},[513,1460,620],{},[683,1462,1463],{},[513,1464,1465],{},"kraft item pause",[683,1467,697],{},[668,1469,1470,1474,1477,1491,1496],{},[683,1471,1472],{},[513,1473,798],{},[683,1475,1476],{},"Starts a paused item, including one just filed.",[683,1478,1479,569,1481,569,1484,1487,1488,1015],{},[513,1480,620],{},[513,1482,1483],{},"steer",[513,1485,1486],{},"steers"," (",[513,1489,1490],{},"{task path: steer}",[683,1492,1493],{},[513,1494,1495],{},"kraft item resume",[683,1497,697],{},[668,1499,1500,1504,1507,1528,1533],{},[683,1501,1502],{},[513,1503,765],{},[683,1505,1506],{},"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.",[683,1508,1509,569,1511,569,1513,1487,1515,569,1517,611,1520,982,1523,1011,1526,1015],{},[513,1510,620],{},[513,1512,1483],{},[513,1514,1211],{},[513,1516,563],{},[513,1518,1519],{},"node.step",[513,1521,1522],{},"node.step.task",[513,1524,1525],{},"restart",[513,1527,1042],{},[683,1529,1530],{},[513,1531,1532],{},"kraft item retry",[683,1534,697],{},[668,1536,1537,1541,1551,1562,1567],{},[683,1538,1539],{},[513,1540,748],{},[683,1542,1543,1544,1548,1549],{},"Raises the dollar cap that stopped the item and retries it. See ",[522,1545,1547],{"href":1546},"#raising-a-dollar-cap","Raising a dollar cap",". ",[657,1550,1400],{},[683,1552,1553,1555,1556,1559,1560,526],{},[513,1554,1172],{}," (required; ",[513,1557,1558],{},"null"," for no cap), ",[513,1561,620],{},[683,1563,1564],{},[513,1565,1566],{},"kraft item raise-budget",[683,1568,697],{},[668,1570,1571,1575,1580,1588,1593],{},[683,1572,1573],{},[513,1574,795],{},[683,1576,1577,1578],{},"Advances past the current node or gate without running it. ",[657,1579,1400],{},[683,1581,1582,569,1584,569,1586,526],{},[513,1583,620],{},[513,1585,1433],{},[513,1587,1211],{},[683,1589,1590],{},[513,1591,1592],{},"kraft item skip",[683,1594,697],{},[668,1596,1597,1601,1606,1618,1623],{},[683,1598,1599],{},[513,1600,773],{},[683,1602,1603,1604],{},"Ends the item as completed. ",[657,1605,1400],{},[683,1607,1608,1007,1611,569,1613,1011,1616,1015],{},[513,1609,1610],{},"reason",[513,1612,620],{},[513,1614,1615],{},"close_beads",[513,1617,1042],{},[683,1619,1620],{},[513,1621,1622],{},"kraft item complete",[683,1624,697],{},[668,1626,1627,1631,1636,1642,1647],{},[683,1628,1629],{},[513,1630,776],{},[683,1632,1633,1634],{},"Ends the item as cancelled. The worktree stays. ",[657,1635,1400],{},[683,1637,1638,1007,1640,526],{},[513,1639,1610],{},[513,1641,620],{},[683,1643,1644],{},[513,1645,1646],{},"kraft item cancel",[683,1648,697],{},[668,1650,1651,1655,1658,1665,1670],{},[683,1652,1653],{},[513,1654,801],{},[683,1656,1657],{},"Sends a message into the item's escalation thread.",[683,1659,1660,1007,1663,526],{},[513,1661,1662],{},"message",[513,1664,620],{},[683,1666,1667],{},[513,1668,1669],{},"kraft item escalate",[683,1671,697],{},[1227,1673,1547],{"id":1674},"raising-a-dollar-cap",[510,1676,1677,1679,1680,1682],{},[513,1678,748],{}," raises the item's own cap, or the item-wide ",[513,1681,1172],{}," of its policy, which it merges into the item's policy override, keeping its other fields.",[510,1684,1685,1686,1688,1689,1692,1693,1696,1697,1699,1700,1703,1704,1706,1707,1711,1712,526],{},"Any other cap's stop is refused. A node's ",[513,1687,1172],{}," or a ",[513,1690,1691],{},"token_budget"," comes with a pointer to ",[513,1694,1695],{},"kraft item set-policy"," (here, ",[513,1698,752],{},"), which replaces the whole override, so pass the fields it already has too. A stop on ",[513,1701,1702],{},"budget.daily_usd"," is refused too: raise it in ",[513,1705,310],{},", or wait for local midnight. ",[522,1708,1710],{"href":1709},"\u002Freference\u002Fcli\u002Fitem#raise-a-cap-that-stopped-an-item","Raise a cap that stopped an item"," lists every refusal. See ",[522,1713,80],{"href":81},[535,1715,1717],{"id":1716},"change-a-work-items-setup","Change a work item's setup",[510,1719,1720,1721,1723],{},"These refuse with ",[513,1722,787],{}," once the item, or the node, has started, except the\npolicy tool, which binds from the next node entered.",[662,1725,1726,1740],{},[665,1727,1728],{},[668,1729,1730,1732,1734,1736,1738],{},[671,1731,855],{},[671,1733,858],{},[671,1735,861],{},[671,1737,864],{},[671,1739,867],{},[678,1741,1742,1765,1800,1834,1877],{},[668,1743,1744,1749,1752,1758,1763],{},[683,1745,1746],{},[513,1747,1748],{},"set_chain",[683,1750,1751],{},"Switches a not-yet-started item's chain.",[683,1753,1754,1007,1756,526],{},[513,1755,587],{},[513,1757,620],{},[683,1759,1760],{},[513,1761,1762],{},"kraft item set-chain",[683,1764],{},[668,1766,1767,1771,1774,1793,1798],{},[683,1768,1769],{},[513,1770,819],{},[683,1772,1773],{},"Revises a not-yet-started item's spec or plan, or drops one.",[683,1775,1776,569,1778,569,1780,1782,1783,1487,1786,569,1789,1792],{},[513,1777,620],{},[513,1779,978],{},[513,1781,981],{}," (paths), ",[513,1784,1785],{},"drop",[513,1787,1788],{},"[\"spec\"]",[513,1790,1791],{},"[\"plan\"]"," or both).",[683,1794,1795],{},[513,1796,1797],{},"kraft item set-attachments",[683,1799,697],{},[668,1801,1802,1806,1809,1827,1832],{},[683,1803,1804],{},[513,1805,779],{},[683,1807,1808],{},"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.",[683,1810,1811,569,1813,569,1816,569,1819,569,1822,1011,1825,1015],{},[513,1812,620],{},[513,1814,1815],{},"model",[513,1817,1818],{},"escalate_model",[513,1820,1821],{},"effort",[513,1823,1824],{},"clear",[513,1826,1042],{},[683,1828,1829],{},[513,1830,1831],{},"kraft item set-overrides",[683,1833,697],{},[668,1835,1836,1840,1843,1870,1875],{},[683,1837,1838],{},[513,1839,783],{},[683,1841,1842],{},"Sets one node's agent overrides.",[683,1844,1845,1007,1848,569,1850,569,1853,569,1856,569,1859,569,1861,569,1863,569,1866,1011,1868,1015],{},[513,1846,1847],{},"node_id",[513,1849,620],{},[513,1851,1852],{},"auto_escalate",[513,1854,1855],{},"auto_escalate_stuck",[513,1857,1858],{},"auto_escalate_delay_s",[513,1860,1815],{},[513,1862,1821],{},[513,1864,1865],{},"extra_prompt",[513,1867,1824],{},[513,1869,1042],{},[683,1871,1872],{},[513,1873,1874],{},"kraft item set-node-override",[683,1876,697],{},[668,1878,1879,1883,1886,1908,1912],{},[683,1880,1881],{},[513,1882,752],{},[683,1884,1885],{},"Gives the item its own policy override. Replaces the whole stored override.",[683,1887,1888,569,1890,1892,1893,1896,1897,1899,1900,1903,1904,1011,1906,1015],{},[513,1889,620],{},[513,1891,578],{}," (item-wide fields, plus ",[513,1894,1895],{},"paths"," for per-scope fields; item-wide ",[513,1898,1172],{}," may be ",[513,1901,1902],{},"\"none\"",", no dollar cap), ",[513,1905,1824],{},[513,1907,1042],{},[683,1909,1910],{},[513,1911,1695],{},[683,1913,697],{},[535,1915,1917],{"id":1916},"review","Review",[662,1919,1920,1934],{},[665,1921,1922],{},[668,1923,1924,1926,1928,1930,1932],{},[671,1925,855],{},[671,1927,858],{},[671,1929,861],{},[671,1931,864],{},[671,1933,867],{},[678,1935,1936,1991,2012,2032],{},[668,1937,1938,1942,1949,1984,1989],{},[683,1939,1940],{},[513,1941,826],{},[683,1943,1944,1945,526],{},"Leaves a draft comment. See ",[522,1946,1948],{"href":1947},"#review-comment-parameters","Review comment parameters",[683,1950,1951,1007,1954,569,1956,1959,1960,569,1963,569,1966,569,1969,569,1972,569,1975,569,1978,569,1981,526],{},[513,1952,1953],{},"body",[513,1955,620],{},[513,1957,1958],{},"thread_id"," (to reply), ",[513,1961,1962],{},"file_path",[513,1964,1965],{},"start_line",[513,1967,1968],{},"end_line",[513,1970,1971],{},"side",[513,1973,1974],{},"start_side",[513,1976,1977],{},"quote",[513,1979,1980],{},"label",[513,1982,1983],{},"suggestion",[683,1985,1986],{},[513,1987,1988],{},"kraft item comment",[683,1990,697],{},[668,1992,1993,1997,2000,2005,2010],{},[683,1994,1995],{},[513,1996,832],{},[683,1998,1999],{},"Resolves a review thread.",[683,2001,2002,2004],{},[513,2003,1958],{}," (required).",[683,2006,2007],{},[513,2008,2009],{},"kraft item resolve",[683,2011,712],{},[668,2013,2014,2018,2021,2025,2030],{},[683,2015,2016],{},[513,2017,835],{},[683,2019,2020],{},"Reopens a resolved review thread.",[683,2022,2023,2004],{},[513,2024,1958],{},[683,2026,2027],{},[513,2028,2029],{},"kraft item reopen",[683,2031,712],{},[668,2033,2034,2038,2043,2064,2069],{},[683,2035,2036],{},[513,2037,829],{},[683,2039,2040,2041],{},"Sends the drafts. ",[657,2042,1400],{},[683,2044,2045,975,2048,569,2051,611,2054,982,2057,569,2059,569,2062,526],{},[513,2046,2047],{},"outcome",[513,2049,2050],{},"comment",[513,2052,2053],{},"request_changes",[513,2055,2056],{},"approve",[513,2058,620],{},[513,2060,2061],{},"summary",[513,2063,563],{},[683,2065,2066],{},[513,2067,2068],{},"kraft item review",[683,2070,697],{},[1227,2072,1948],{"id":2073},"review-comment-parameters",[551,2075,2076,2092,2099,2104,2117],{},[554,2077,2078,1259,2080,611,2083,2086,2087,887,2089,2091],{},[513,2079,1971],{},[513,2081,2082],{},"old",[513,2084,2085],{},"new",", default ",[513,2088,2085],{},[513,2090,1968],{},"'s side.",[554,2093,2094,1259,2096,2098],{},[513,2095,1974],{},[513,2097,1965],{},"'s side, when the range crosses sides.",[554,2100,2101,2103],{},[513,2102,1977],{}," is the range's lines, each led by its diff mark; left out, Kraft quotes them from the diff.",[554,2105,2106,1259,2108,569,2111,611,2114,526],{},[513,2107,1980],{},[513,2109,2110],{},"must_fix",[513,2112,2113],{},"question",[513,2115,2116],{},"nit",[554,2118,2119,2121],{},[513,2120,1983],{}," is for new-side lines only.",[535,2123,2125],{"id":2124},"for-krafts-own-workers","For Kraft's own workers",[662,2127,2128,2142],{},[665,2129,2130],{},[668,2131,2132,2134,2136,2138,2140],{},[671,2133,855],{},[671,2135,858],{},[671,2137,861],{},[671,2139,864],{},[671,2141,867],{},[678,2143,2144,2173,2209,2233],{},[668,2145,2146,2151,2154,2166,2171],{},[683,2147,2148],{},[513,2149,2150],{},"report_progress",[683,2152,2153],{},"Reports that the worker started a plan task.",[683,2155,2156,2159,2160,2163,2164,526],{},[513,2157,2158],{},"task"," (required): the N of the plan's ",[513,2161,2162],{},"## Task N"," heading. ",[513,2165,620],{},[683,2167,2168],{},[513,2169,2170],{},"kraft item progress",[683,2172],{},[668,2174,2175,2180,2183,2202,2207],{},[683,2176,2177],{},[513,2178,2179],{},"reply_to_thread",[683,2181,2182],{},"Answers a review thread.",[683,2184,2185,569,2187,2189,2190,1487,2193,569,2196,611,2199,1015],{},[513,2186,1958],{},[513,2188,1953],{}," (both required), ",[513,2191,2192],{},"claim",[513,2194,2195],{},"fixed",[513,2197,2198],{},"answered",[513,2200,2201],{},"should_fix",[683,2203,2204],{},[513,2205,2206],{},"kraft item reply",[683,2208],{},[668,2210,2211,2216,2219,2226,2231],{},[683,2212,2213],{},[513,2214,2215],{},"set_mr_labels",[683,2217,2218],{},"Labels the merge request and re-creates its pipeline.",[683,2220,2221,1007,2224,526],{},[513,2222,2223],{},"labels",[513,2225,620],{},[683,2227,2228],{},[513,2229,2230],{},"kraft item mr-label",[683,2232],{},[668,2234,2235,2240,2250,2261,2264],{},[683,2236,2237],{},[513,2238,2239],{},"permission_request",[683,2241,2242,2243,2246,2247,526],{},"Not for an agent to call: Kraft passes it to Claude Code as ",[513,2244,2245],{},"--permission-prompt-tool",". See ",[522,2248,420],{"href":2249},"\u002Freference\u002Fpermissions#claude",[683,2251,2252,569,2255,2189,2258,526],{},[513,2253,2254],{},"tool_name",[513,2256,2257],{},"input",[513,2259,2260],{},"tool_use_id",[683,2262,2263],{},"none",[683,2265],{},[535,2267,2269],{"id":2268},"related","Related",[551,2271,2272,2277,2282],{},[554,2273,2274,2276],{},[522,2275,260],{"href":261},": the verb behind each tool, with its flags and output.",[554,2278,2279,2281],{},[522,2280,72],{"href":73},": how to register these tools with an agent, and how to check that it works.",[554,2283,2284,2286,2287,2289],{},[522,2285,420],{"href":421},": how Kraft answers a worker's asks, and what ",[513,2288,2239],{}," is for.",[2291,2292,2293],"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":1293,"searchDepth":2295,"depth":2295,"links":2296},2,[2297,2298,2299,2300,2301,2306,2309,2310,2313,2314],{"id":537,"depth":2295,"text":538},{"id":634,"depth":2295,"text":635},{"id":651,"depth":2295,"text":652},{"id":845,"depth":2295,"text":846},{"id":1104,"depth":2295,"text":1105,"children":2302},[2303,2305],{"id":1229,"depth":2304,"text":1137},3,{"id":1349,"depth":2304,"text":1206},{"id":1369,"depth":2295,"text":1370,"children":2307},[2308],{"id":1674,"depth":2304,"text":1547},{"id":1716,"depth":2295,"text":1717},{"id":1916,"depth":2295,"text":1917,"children":2311},[2312],{"id":2073,"depth":2304,"text":1948},{"id":2124,"depth":2295,"text":2125},{"id":2268,"depth":2295,"text":2269},"Every tool the kraft MCP server serves, with its parameters and the kraft command that does the same.","md",null,{},true,{"title":462,"description":2315},"99FD1Yz8uZPYF9eXq70F0lRRwDuvN_Zd_S793VDc6Uk",[2323,2325],{"title":458,"path":459,"stem":460,"description":2324,"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":466,"path":467,"stem":468,"description":2326,"children":-1},"Every event type on a work item's timeline, its key payload fields, and the notification webhook that sends them.",1791801250275]