[{"data":1,"prerenderedAt":3834},["ShallowReactive",2],{"navigation_docs":3,"-reference-cli-item":520,"-reference-cli-item-surround":3829},[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":274,"body":522,"description":3822,"extension":3823,"links":3824,"meta":3825,"navigation":3826,"path":275,"seo":3827,"stem":276,"__hash__":3828},"docs\u002F5.reference\u002F01.cli\u002F2.item.md",{"type":523,"value":524,"toc":3786},"minimark",[525,551,556,650,817,821,831,864,867,895,898,1122,1129,1134,1138,1279,1499,1504,1507,1537,1557,1582,1591,1594,1606,1630,1649,1653,1672,1681,1684,1709,1713,1724,1728,1760,1849,1931,1935,1938,1945,1948,1956,1964,1969,1984,1987,2224,2298,2301,2317,2425,2435,2438,2501,2522,2526,2616,2705,2714,2728,2731,2737,2749,2753,2810,2862,2876,2893,2897,2975,3070,3073,3137,3148,3151,3157,3219,3318,3333,3348,3359,3362,3365,3406,3412,3415,3432,3435,3456,3547,3555,3637,3640,3643,3648,3652,3694,3709,3713,3716,3756,3760,3782],[526,527,528,532,533,538,539,543,544,546,547,550],"p",{},[529,530,531],"code",{},"kraft item"," acts on a ",[534,535,537],"a",{"href":536},"\u002Fconcepts\u002Fvocabulary#work-item","work item",". Wherever a command takes an ID, you can omit it inside that item's ",[534,540,542],{"href":541},"\u002Fconcepts\u002Fvocabulary#worktree","worktree",". See the ",[534,545,268],{"href":269}," for output format and ",[529,548,549],{},"--json",".",[552,553,555],"h2",{"id":554},"approve-reject-pause-resume-retry-raise-a-budget","Approve, reject, pause, resume, retry, raise a budget",[557,558,563],"pre",{"className":559,"code":560,"language":561,"meta":562,"style":562},"language-bash shiki shiki-themes github-light-high-contrast github-light-high-contrast github-dark-high-contrast","kraft item approve\nkraft item reject --note \"the plan skips migrations\"\nkraft item pause\nkraft item resume --steer \"try the other adapter\"\nkraft item retry\nkraft item raise-budget --usd 25\n","bash","",[529,564,565,581,598,608,624,634],{"__ignoreMap":562},[566,567,570,574,578],"span",{"class":568,"line":569},"line",1,[566,571,573],{"class":572},"szw1H","kraft",[566,575,577],{"class":576},"semJd"," item",[566,579,580],{"class":576}," approve\n",[566,582,584,586,588,591,595],{"class":568,"line":583},2,[566,585,573],{"class":572},[566,587,577],{"class":576},[566,589,590],{"class":576}," reject",[566,592,594],{"class":593},"ssYy9"," --note",[566,596,597],{"class":576}," \"the plan skips migrations\"\n",[566,599,601,603,605],{"class":568,"line":600},3,[566,602,573],{"class":572},[566,604,577],{"class":576},[566,606,607],{"class":576}," pause\n",[566,609,611,613,615,618,621],{"class":568,"line":610},4,[566,612,573],{"class":572},[566,614,577],{"class":576},[566,616,617],{"class":576}," resume",[566,619,620],{"class":593}," --steer",[566,622,623],{"class":576}," \"try the other adapter\"\n",[566,625,627,629,631],{"class":568,"line":626},5,[566,628,573],{"class":572},[566,630,577],{"class":576},[566,632,633],{"class":576}," retry\n",[566,635,637,639,641,644,647],{"class":568,"line":636},6,[566,638,573],{"class":572},[566,640,577],{"class":576},[566,642,643],{"class":576}," raise-budget",[566,645,646],{"class":593}," --usd",[566,648,649],{"class":593}," 25\n",[651,652,653,666],"table",{},[654,655,656],"thead",{},[657,658,659,663],"tr",{},[660,661,662],"th",{},"Command",[660,664,665],{},"Effect",[667,668,669,702,727,737,755,782,794],"tbody",{},[657,670,671,677],{},[672,673,674],"td",{},[529,675,676],{},"item approve",[672,678,679,680,684,685,688,689,692,693,697,698,701],{},"Approves the pending ",[534,681,683],{"href":682},"\u002Fconcepts\u002Fvocabulary#gate","gate",". ",[529,686,687],{},"--gate"," names the gate you mean to decide, and is refused if it is not the pending one. ",[529,690,691],{},"--digest"," pins the approval to a ",[534,694,696],{"href":695},"\u002Fconcepts\u002Fvocabulary#chain-revision","chain revision",", as ",[529,699,700],{},"kraft view artifact"," printed it.",[657,703,704,709],{},[672,705,706],{},[529,707,708],{},"item reject",[672,710,711,712,715,716,688,718,721,722,726],{},"Rejects the pending gate. ",[529,713,714],{},"--note"," records why. ",[529,717,687],{},[529,719,720],{},"--node N"," re-enters the chain at ",[534,723,725],{"href":724},"\u002Fconcepts\u002Fvocabulary#node","node"," N instead of the gate's default.",[657,728,729,734],{},[672,730,731],{},[529,732,733],{},"item pause",[672,735,736],{},"Stops the whole work item: a running one, one waiting on CI, or one waiting out a rate limit. It also takes a queued or blocked item out of the hold, back to the status it came from.",[657,738,739,744],{},[672,740,741],{},[529,742,743],{},"item unblock",[672,745,746,747,750,751,550],{},"Drops what a blocked or paused item still comes after. ",[529,748,749],{},"--dependency ID"," drops only that one. See ",[534,752,754],{"href":753},"#items-that-come-after-others","Items that come after others",[657,756,757,762],{},[672,758,759],{},[529,760,761],{},"item resume",[672,763,764,765,768,769,772,773,776,777,779,780,550],{},"Starts a paused item, including one just filed. ",[529,766,767],{},"--steer"," gives the paused agent a message. With every slot busy the item is queued. A stopped item gets a ",[529,770,771],{},"409"," naming ",[529,774,775],{},"item retry",", ",[529,778,676],{}," or ",[529,781,708],{},[657,783,784,788],{},[672,785,786],{},[529,787,775],{},[672,789,790,791,793],{},"Re-runs the node a stopped item stopped on. It is the only way back onto a stopped item. ",[529,792,767],{}," carries a message into the retry's prompt. With every slot busy the item is queued.",[657,795,796,801],{},[672,797,798],{},[529,799,800],{},"item raise-budget",[672,802,803,804,808,809,812,813,550],{},"Raises the dollar ",[534,805,807],{"href":806},"\u002Fconcepts\u002Fvocabulary#cap","cap"," that stopped the item to ",[529,810,811],{},"--usd N"," and retries it. See ",[534,814,816],{"href":815},"#raise-a-cap-that-stopped-an-item","Raise a cap that stopped an item",[818,819,816],"h3",{"id":820},"raise-a-cap-that-stopped-an-item",[526,822,823,826,827,830],{},[529,824,825],{},"kraft item raise-budget [ID] --usd N|none"," raises the dollar cap that stopped the item, then retries the node it stopped on. ",[529,828,829],{},"--usd"," is required.",[651,832,833,843],{},[654,834,835],{},[657,836,837,840],{},[660,838,839],{},"Flag",[660,841,842],{},"What it does",[667,844,845,854],{},[657,846,847,851],{},[672,848,849],{},[529,850,811],{},[672,852,853],{},"Raises the cap to N dollars and retries the item.",[657,855,856,861],{},[672,857,858],{},[529,859,860],{},"--usd none",[672,862,863],{},"Lifts the cap.",[526,865,866],{},"It raises one of two caps:",[868,869,870,878],"ul",{},[871,872,873,874,877],"li",{},"The item's own cap, the one ",[529,875,876],{},"item create --budget"," sets.",[871,879,880,881,884,885,889,890,894],{},"The item-wide ",[529,882,883],{},"budget_usd"," of the item's ",[534,886,888],{"href":887},"\u002Fconcepts\u002Fvocabulary#policy","policy",". Kraft writes it into the item's policy override and keeps the override's other fields, as the interface's ",[891,892,893],"strong",{},"Raise cap"," does.",[526,896,897],{},"It refuses, and changes nothing, in these cases:",[651,899,900,910],{},[654,901,902],{},[657,903,904,907],{},[660,905,906],{},"Case",[660,908,909],{},"What the CLI prints",[667,911,912,937,950,967,977,1004,1021,1039,1052,1062,1072,1087,1112],{},[657,913,914,927],{},[672,915,916,917,921,922,926],{},"The caller is a ",[534,918,920],{"href":919},"\u002Fconcepts\u002Fvocabulary#worker","worker"," session on its own item, or an ",[534,923,925],{"href":924},"\u002Fconcepts\u002Fvocabulary#escalation-turn","escalation turn",": a spending cap is a person's call.",[672,928,929,930,933,934,550],{},"A worker session: ",[529,931,932],{},"kraft: a worker session cannot act on its own work item (ID). Gates are where a human decides; report what you found instead."," An escalation turn: the same sentence after ",[529,935,936],{},"kraft: 403:",[657,938,939,945],{},[672,940,941,942,550],{},"The item's status is not ",[529,943,944],{},"needs_human",[672,946,947],{},[529,948,949],{},"kraft: 409: work item is not stopped",[657,951,952,961],{},[672,953,954,955,779,958,550],{},"The item is ",[529,956,957],{},"queued",[529,959,960],{},"blocked",[672,962,963,966],{},[529,964,965],{},"kraft: 409: work item is queued for a free slot and starts on its own: pause it to take it out of the queue (kraft item pause ID)",", or the blocked wording.",[657,968,969,972],{},[672,970,971],{},"The item stopped for a reason that is not a spend cap, such as a failed test.",[672,973,974],{},[529,975,976],{},"kraft: 409: work item was not stopped by a spend cap",[657,978,979,992],{},[672,980,981,982,984,985,684,988,991],{},"The stop was on a node, step or task's ",[529,983,883],{},", or on a ",[529,986,987],{},"token_budget",[529,989,990],{},"item set-policy"," raises those, but it replaces the item's whole override, so pass the fields it already has too.",[672,993,994,779,997,1000,1001,550],{},[529,995,996],{},"kraft: 409: a budget_usd on a node, step or task stopped this item: raise it with ...",[529,998,999],{},"kraft: 409: a token_budget stopped this item, not a dollar cap: raise it with ...",". Both name ",[529,1002,1003],{},"kraft item set-policy",[657,1005,1006,1016],{},[672,1007,1008,1009,1012,1013,1015],{},"The stop was on ",[529,1010,1011],{},"budget.daily_usd",". Raise it in ",[529,1014,318],{},", or wait for local midnight.",[672,1017,1018],{},[529,1019,1020],{},"kraft: 409: the daily cap stopped this item, not its own cap: raise budget.daily_usd in policy.yaml, or wait for local midnight, then retry",[657,1022,1023,1034],{},[672,1024,1025,1026,1030,1031,1033],{},"The stop was on spend a ",[534,1027,1029],{"href":1028},"\u002Fconcepts\u002Fvocabulary#harness","harness"," never reported, and you passed a number, or the cap is a node, step or task's. Only ",[529,1032,860],{}," on the item-wide cap passes.",[672,1035,1036],{},[529,1037,1038],{},"kraft: 409: a budget_usd stopped this item on spend a harness never reported, which no higher cap passes: ...",[657,1040,1041,1047],{},[672,1042,1043,1044,550],{},"N is at most what the item has already spent. Raise it above that, or use ",[529,1045,1046],{},"none",[672,1048,1049],{},[529,1050,1051],{},"kraft: 422: the item has already spent $X; a cap of $N would stop it again at once: raise it above that, or to none",[657,1053,1054,1057],{},[672,1055,1056],{},"The item comes after an unfinished item, so the retry waits for it. The cap is raised.",[672,1058,1059],{},[529,1060,1061],{},"blocked ID: it comes after OTHER (status). It starts when they complete; kraft item unblock ID drops them",[657,1063,1064,1067],{},[672,1065,1066],{},"Every slot is busy, so the retry waits for one. The cap is raised.",[672,1068,1069],{},[529,1070,1071],{},"queued ID: N of M slots are busy. It starts when one frees; kraft item pause ID takes it out of the queue",[657,1073,1074,1082],{},[672,1075,1076,1077,1081],{},"A ",[534,1078,1080],{"href":1079},"\u002Fconcepts\u002Fvocabulary#walk","walk"," is still running, so the retry could not start.",[672,1083,1084],{},[529,1085,1086],{},"kraft: 409: a walk is already running for this work item; the cap was not changed",[657,1088,1089,1101],{},[672,1090,1091,1092,1094,1095,1098,1099,550],{},"The item-wide cap you set, or ",[529,1093,1046],{},", is past ",[529,1096,1097],{},"maxima.work_item.budget_usd"," in ",[529,1100,318],{},[672,1102,1103,1106,1107,1109,1110,550],{},[529,1104,1105],{},"kraft: 422: 'budget_usd' 25 cannot exceed the administrator maximum 20","; for ",[529,1108,1046],{},", the value reads ",[529,1111,1046],{},[657,1113,1114,1117],{},[672,1115,1116],{},"The item has no chain snapshot to hold a policy override.",[672,1118,1119],{},[529,1120,1121],{},"kraft: 409: this work item has no chain snapshot to hold a policy override",[526,1123,1124,1125,1128],{},"If the cap moves and the retry is then refused, the answer says so. Run ",[529,1126,1127],{},"kraft item retry"," once that is resolved.",[526,1130,1131,1132,550],{},"See ",[534,1133,80],{"href":81},[552,1135,1137],{"id":1136},"filing-a-work-item","Filing a work item",[557,1139,1141],{"className":559,"code":1140,"language":561,"meta":562,"style":562},"kraft item create \"fix the flaky test\" --description \"...\"\nkraft item create \"fix it now\" --autostart\nkraft item create \"ship the thing\" --spec .engineering\u002Fspecs\u002Fx.md\nkraft item create \"backport the fix\" --base-branch release\u002F1.2\nkraft item create \"fix the parser\" --repo ~\u002Fcode\u002Fapp --chain quick-task --no-auto-gate\nkraft item create \"small fix\" --skip-nodes spec,plan --budget 5\nkraft item create \"tuned fix\" --node-override implementation.attempts=2\n",[529,1142,1143,1161,1175,1192,1209,1235,1258],{"__ignoreMap":562},[566,1144,1145,1147,1149,1152,1155,1158],{"class":568,"line":569},[566,1146,573],{"class":572},[566,1148,577],{"class":576},[566,1150,1151],{"class":576}," create",[566,1153,1154],{"class":576}," \"fix the flaky test\"",[566,1156,1157],{"class":593}," --description",[566,1159,1160],{"class":576}," \"...\"\n",[566,1162,1163,1165,1167,1169,1172],{"class":568,"line":583},[566,1164,573],{"class":572},[566,1166,577],{"class":576},[566,1168,1151],{"class":576},[566,1170,1171],{"class":576}," \"fix it now\"",[566,1173,1174],{"class":593}," --autostart\n",[566,1176,1177,1179,1181,1183,1186,1189],{"class":568,"line":600},[566,1178,573],{"class":572},[566,1180,577],{"class":576},[566,1182,1151],{"class":576},[566,1184,1185],{"class":576}," \"ship the thing\"",[566,1187,1188],{"class":593}," --spec",[566,1190,1191],{"class":576}," .engineering\u002Fspecs\u002Fx.md\n",[566,1193,1194,1196,1198,1200,1203,1206],{"class":568,"line":610},[566,1195,573],{"class":572},[566,1197,577],{"class":576},[566,1199,1151],{"class":576},[566,1201,1202],{"class":576}," \"backport the fix\"",[566,1204,1205],{"class":593}," --base-branch",[566,1207,1208],{"class":576}," release\u002F1.2\n",[566,1210,1211,1213,1215,1217,1220,1223,1226,1229,1232],{"class":568,"line":626},[566,1212,573],{"class":572},[566,1214,577],{"class":576},[566,1216,1151],{"class":576},[566,1218,1219],{"class":576}," \"fix the parser\"",[566,1221,1222],{"class":593}," --repo",[566,1224,1225],{"class":576}," ~\u002Fcode\u002Fapp",[566,1227,1228],{"class":593}," --chain",[566,1230,1231],{"class":576}," quick-task",[566,1233,1234],{"class":593}," --no-auto-gate\n",[566,1236,1237,1239,1241,1243,1246,1249,1252,1255],{"class":568,"line":636},[566,1238,573],{"class":572},[566,1240,577],{"class":576},[566,1242,1151],{"class":576},[566,1244,1245],{"class":576}," \"small fix\"",[566,1247,1248],{"class":593}," --skip-nodes",[566,1250,1251],{"class":576}," spec,plan",[566,1253,1254],{"class":593}," --budget",[566,1256,1257],{"class":593}," 5\n",[566,1259,1261,1263,1265,1267,1270,1273,1276],{"class":568,"line":1260},7,[566,1262,573],{"class":572},[566,1264,577],{"class":576},[566,1266,1151],{"class":576},[566,1268,1269],{"class":576}," \"tuned fix\"",[566,1271,1272],{"class":593}," --node-override",[566,1274,1275],{"class":576}," implementation.attempts=",[566,1277,1278],{"class":593},"2\n",[651,1280,1281,1289],{},[654,1282,1283],{},[657,1284,1285,1287],{},[660,1286,839],{},[660,1288,665],{},[667,1290,1291,1299,1313,1325,1349,1366,1376,1406,1421,1450,1460,1474,1484],{},[657,1292,1293,1296],{},[672,1294,1295],{},"(none)",[672,1297,1298],{},"Files the item paused. You start it.",[657,1300,1301,1306],{},[672,1302,1303],{},[529,1304,1305],{},"--description TEXT",[672,1307,1308,1309,1312],{},"The brief: what the work is, which the spec is written from. Ids in it are not parsed; ",[529,1310,1311],{},"--implements"," names an issue.",[657,1314,1315,1320],{},[672,1316,1317],{},[529,1318,1319],{},"--after ID",[672,1321,1322,1323,550],{},"Names a work item this one comes after. Repeatable. See ",[534,1324,754],{"href":753},[657,1326,1327,1332],{},[672,1328,1329],{},[529,1330,1331],{},"--autostart",[672,1333,1334,1335,1337,1338,1342,1343,1345,1346,550],{},"Starts the item at once. Refused from a session Kraft started. With every slot busy, the item is filed ",[529,1336,957],{}," and starts when one frees, and the command says so: ",[534,1339,1341],{"href":1340},"#what-create-prints","What create prints"," shows the line. ",[529,1344,549],{}," carries the ",[529,1347,1348],{},"slots",[657,1350,1351,1359],{},[672,1352,1353,776,1356],{},[529,1354,1355],{},"--spec",[529,1357,1358],{},"--plan",[672,1360,1361,1362,550],{},"Attaches a document and skips the node that would write it. See ",[534,1363,1365],{"href":1364},"#attach-a-spec-or-plan","Attach a spec or plan",[657,1367,1368,1373],{},[672,1369,1370],{},[529,1371,1372],{},"--base-branch",[672,1374,1375],{},"Starts from, and merges into, that branch.",[657,1377,1378,1386],{},[672,1379,1380,776,1383],{},[529,1381,1382],{},"--repo",[529,1384,1385],{},"--chain",[672,1387,1388,1389,1391,1392,1395,1396,1398,1399,1401,1402,1405],{},"Targets another connected repo or chain. Without ",[529,1390,1385],{},", the item gets the repo's ",[529,1393,1394],{},"default_chain",". A relative ",[529,1397,1382],{}," is read from where you stand. A ",[529,1400,1382],{}," you have not connected with ",[529,1403,1404],{},"kraft repo connect"," is refused, naming that command.",[657,1407,1408,1413],{},[672,1409,1410],{},[529,1411,1412],{},"--implements ID",[672,1414,1415,1416,1420],{},"Closes the named issue in your optional ",[534,1417,1419],{"href":1418},"\u002Fconcepts\u002Fvocabulary#beads","beads"," issue tracker when the item completes.",[657,1422,1423,1432],{},[672,1424,1425,1428,1429],{},[529,1426,1427],{},"--auto-gate"," (default), ",[529,1430,1431],{},"--no-auto-gate",[672,1433,1434,1435,1438,1439,1441,1442,779,1445,1449],{},"An agent reviews each gate that declares ",[529,1436,1437],{},"auto_review"," before you are asked. ",[529,1440,1431],{}," turns that off for this item. Items filed by a schedule, ",[529,1443,1444],{},"POST \u002Fapi\u002Ftriggers",[534,1446,1448],{"href":1447},"\u002Fconcepts\u002Fvocabulary#auto-intake","auto-intake"," have it off.",[657,1451,1452,1457],{},[672,1453,1454],{},[529,1455,1456],{},"--skip-nodes",[672,1458,1459],{},"Skips the named nodes.",[657,1461,1462,1467],{},[672,1463,1464],{},[529,1465,1466],{},"--budget USD",[672,1468,1469,1470,1473],{},"Sets the item's dollar cap. ",[529,1471,1472],{},"--budget none"," lifts it.",[657,1475,1476,1481],{},[672,1477,1478],{},[529,1479,1480],{},"--node-override N.FIELD=VALUE",[672,1482,1483],{},"Overrides one field on node N.",[657,1485,1486,1491],{},[672,1487,1488],{},[529,1489,1490],{},"--policy KEY=VALUE",[672,1492,1493,1494,1498],{},"Gives the item its own ",[534,1495,1497],{"href":1496},"#a-work-items-own-policy","policy override",". Repeatable.",[526,1500,1501,1503],{},[529,1502,1331],{}," is refused (403, nothing filed) from a session Kraft started and\nfrom a request tagged as the MCP client, which has no autostart option. The\nserver cannot tell a coding agent that runs the command in its own shell from a\nperson, so that call starts the item.",[818,1505,1341],{"id":1506},"what-create-prints",[526,1508,1509,1512,1513,776,1516,1519,1520,1523,1524,1527,1528,776,1531,779,1534,550],{},[529,1510,1511],{},"item create"," prints the new item's ",[529,1514,1515],{},"id",[529,1517,1518],{},"status"," and ",[529,1521,1522],{},"title"," as ",[529,1525,1526],{},"key  value"," lines. A line follows for each warning that applies: ",[529,1529,1530],{},"repo_warning",[529,1532,1533],{},"bead_warning",[529,1535,1536],{},"duplicate_warning",[557,1538,1543],{"className":1539,"code":1541,"language":1542,"meta":562},[1540],"language-text","id      3f9c1e7a5b2d4c80a6e1d97f0b34c2aa\nstatus  paused\ntitle   fix the flaky test\n","text",[529,1544,1545,1549,1553],{"__ignoreMap":562},[566,1546,1548],{"className":1547},[568],"id      3f9c1e7a5b2d4c80a6e1d97f0b34c2aa\n",[566,1550,1552],{"className":1551},[568],"status  paused\n",[566,1554,1556],{"className":1555},[568],"title   fix the flaky test\n",[526,1558,1559,1561,1562,1565,1566,1569,1570,1572,1573,1575,1576,1578,1579,1581],{},[529,1560,1518],{}," is what the server answers: ",[529,1563,1564],{},"paused",", or ",[529,1567,1568],{},"active"," when ",[529,1571,1331],{}," found a free slot. With ",[529,1574,1331],{}," and every slot busy, the item is filed ",[529,1577,957],{}," and a last line replaces the ",[529,1580,1348],{}," key, after any warning lines:",[557,1583,1586],{"className":1584,"code":1585,"language":1542,"meta":562},[1540],"queued 3f9c1e7a5b2d4c80a6e1d97f0b34c2aa: 3 of 3 slots are busy. It starts when one frees; kraft item pause 3f9c1e7a5b2d4c80a6e1d97f0b34c2aa takes it out of the queue\n",[529,1587,1588],{"__ignoreMap":562},[566,1589,1585],{"className":1590},[568],[818,1592,754],{"id":1593},"items-that-come-after-others",[526,1595,1596,1598,1599,1602,1603,1605],{},[529,1597,1319],{}," takes a full work item id of any repo on this Kraft instance. An unknown or abandoned id is refused with ",[529,1600,1601],{},"422",", and a completed one counts as met. Dependencies are set when the item is filed: ",[529,1604,743],{}," drops them, and nothing adds them.",[526,1607,1608,1609,1612,1613,776,1615,1519,1618,1621,1622,1624,1625,779,1627,550],{},"A dependency is met when the item it names is ",[529,1610,1611],{},"completed",", post-merge nodes included. ",[529,1614,761],{},[529,1616,1617],{},"retry",[529,1619,1620],{},"raise-budget"," on an item with an unfinished dependency block it, after their own refusals and before the slot check. The scheduler moves it to the queue once all are met. A start after an abandoned item is refused with a ",[529,1623,771],{}," naming it, and the two ways on: ",[529,1626,743],{},[529,1628,1629],{},"item cancel",[526,1631,1632,1634,1635,1637,1638,1640,1641,779,1643,1645,1646,1648],{},[529,1633,733],{}," takes a blocked item out and keeps its dependencies, so starting it again blocks it again. ",[529,1636,743],{}," drops the unmet ones, or only ",[529,1639,749],{},", and the next scheduler pass releases the item. On any status but ",[529,1642,960],{},[529,1644,1564],{}," it answers ",[529,1647,771],{},". A blocked item whose dependency is abandoned goes back to where it came from, and its timeline says why.",[818,1650,1652],{"id":1651},"what-a-blocked-start-prints","What a blocked start prints",[526,1654,1655,776,1657,776,1659,1519,1661,1664,1665,1667,1668,1671],{},[529,1656,761],{},[529,1658,1617],{},[529,1660,1620],{},[529,1662,1663],{},"create --autostart"," on an item that comes after an unfinished one print one line, and ",[529,1666,549],{}," carries ",[529,1669,1670],{},"waiting_on",":",[557,1673,1676],{"className":1674,"code":1675,"language":1542,"meta":562},[1540],"blocked 3f9c1e7a5b2d4c80a6e1d97f0b34c2aa: it comes after b81d0c42e6a94f3d8c5a7e19f2046b13 (active). It starts when they complete; kraft item unblock 3f9c1e7a5b2d4c80a6e1d97f0b34c2aa drops them\n",[529,1677,1678],{"__ignoreMap":562},[566,1679,1675],{"className":1680},[568],[818,1682,1365],{"id":1683},"attach-a-spec-or-plan",[868,1685,1686,1696,1703],{},[871,1687,1688,1691,1692,1695],{},[529,1689,1690],{},"PATH"," must be a file inside the repo (or a worktree of it), usually under ",[529,1693,1694],{},".engineering\u002F",", since it is committed on the item's branch.",[871,1697,1698,1699,1702],{},"A file outside is refused with ",[529,1700,1701],{},"attachment path escapes the repo",": copy it in first.",[871,1704,1705,1706,1708],{},"A relative ",[529,1707,1690],{}," is read from where you stand.",[818,1710,1712],{"id":1711},"filing-on-a-repo-that-cannot-run-the-item-yet","Filing on a repo that cannot run the item yet",[526,1714,1715,1716,1718,1719,1721,1722,550],{},"Filing on a repo that cannot run the item yet still works, with a warning. A\nrepo with no setup command declared stops the item before its first task. One\nwith no test command (and no test scopes) stops it at verification, after its\nagent tasks have run. Set the missing command in Settings › Repos, or run\n",[529,1717,1404],{}," in the repo again, before you start the item. ",[529,1720,549],{},"\ncarries the warning as ",[529,1723,1530],{},[552,1725,1727],{"id":1726},"addressing-work-by-path","Addressing work by path",[526,1729,1730,1731,776,1733,1736,1737,1740,1741,1744,1745,1748,1749,1752,1753,684,1756,1759],{},"Retry, skip and resume address chain work by its path: ",[529,1732,725],{},[529,1734,1735],{},"node.step"," or\n",[529,1738,1739],{},"node.step.task",". A ",[529,1742,1743],{},"tasks:"," node's one step is ",[529,1746,1747],{},"main",", so the path to its\n",[529,1750,1751],{},"implement"," task is ",[529,1754,1755],{},"implementation.main.implement",[529,1757,1758],{},"kraft view show --json","\nlists every path.",[557,1761,1763],{"className":559,"code":1762,"language":561,"meta":562,"style":562},"kraft item retry --path verification.review\nkraft item retry --path verification.review.code_review\nkraft item retry --path spec\nkraft item retry --restart\nkraft item resume --steer \"keep the old API\" --steer-task verification.review.code_review=\"check the auth module first\"\nkraft item skip --path verification.review.code_review\n",[529,1764,1765,1780,1793,1806,1817,1836],{"__ignoreMap":562},[566,1766,1767,1769,1771,1774,1777],{"class":568,"line":569},[566,1768,573],{"class":572},[566,1770,577],{"class":576},[566,1772,1773],{"class":576}," retry",[566,1775,1776],{"class":593}," --path",[566,1778,1779],{"class":576}," verification.review\n",[566,1781,1782,1784,1786,1788,1790],{"class":568,"line":583},[566,1783,573],{"class":572},[566,1785,577],{"class":576},[566,1787,1773],{"class":576},[566,1789,1776],{"class":593},[566,1791,1792],{"class":576}," verification.review.code_review\n",[566,1794,1795,1797,1799,1801,1803],{"class":568,"line":600},[566,1796,573],{"class":572},[566,1798,577],{"class":576},[566,1800,1773],{"class":576},[566,1802,1776],{"class":593},[566,1804,1805],{"class":576}," spec\n",[566,1807,1808,1810,1812,1814],{"class":568,"line":610},[566,1809,573],{"class":572},[566,1811,577],{"class":576},[566,1813,1773],{"class":576},[566,1815,1816],{"class":593}," --restart\n",[566,1818,1819,1821,1823,1825,1827,1830,1833],{"class":568,"line":626},[566,1820,573],{"class":572},[566,1822,577],{"class":576},[566,1824,617],{"class":576},[566,1826,620],{"class":593},[566,1828,1829],{"class":576}," \"keep the old API\"",[566,1831,1832],{"class":593}," --steer-task",[566,1834,1835],{"class":576}," verification.review.code_review=\"check the auth module first\"\n",[566,1837,1838,1840,1842,1845,1847],{"class":568,"line":636},[566,1839,573],{"class":572},[566,1841,577],{"class":576},[566,1843,1844],{"class":576}," skip",[566,1846,1776],{"class":593},[566,1848,1792],{"class":576},[651,1850,1851,1859],{},[654,1852,1853],{},[657,1854,1855,1857],{},[660,1856,662],{},[660,1858,665],{},[667,1860,1861,1871,1881,1891,1901,1911,1921],{},[657,1862,1863,1868],{},[672,1864,1865],{},[529,1866,1867],{},"item retry --path node.step",[672,1869,1870],{},"Re-runs that step and everything after it.",[657,1872,1873,1878],{},[672,1874,1875],{},[529,1876,1877],{},"item retry --path node.step.task",[672,1879,1880],{},"Re-runs that task. Its finished siblings stand.",[657,1882,1883,1888],{},[672,1884,1885],{},[529,1886,1887],{},"item retry --path node",[672,1889,1890],{},"Re-runs a node that already completed, and everything after it.",[657,1892,1893,1898],{},[672,1894,1895],{},[529,1896,1897],{},"item retry --restart",[672,1899,1900],{},"Re-runs the whole chain from its first node.",[657,1902,1903,1908],{},[672,1904,1905],{},[529,1906,1907],{},"item resume --steer",[672,1909,1910],{},"Sends a message to every paused agent task.",[657,1912,1913,1918],{},[672,1914,1915],{},[529,1916,1917],{},"item resume --steer-task PATH=TEXT",[672,1919,1920],{},"Sends a message to one paused agent task.",[657,1922,1923,1928],{},[672,1924,1925],{},[529,1926,1927],{},"item skip --path",[672,1929,1930],{},"Skips only that task. Its siblings keep running.",[818,1932,1934],{"id":1933},"what-retry-and-resume-keep","What retry and resume keep",[526,1936,1937],{},"A retry keeps everything the earlier run did and starts a new run from the retried work. It reopens every gate it has to rerun. A gate before the retried work keeps its decision.",[526,1939,1940,1941,1944],{},"Only a retry you run yourself resets the counters of a cap the item breached, and Kraft records the reset as a ",[529,1942,1943],{},"cap_counters_reset"," event. A retry sent from a session Kraft started, or through the MCP client, leaves every counter where it stands, so an item that stopped on a cap stops again.",[526,1946,1947],{},"A gate rejection gives the nodes it re-runs their fix-loop attempts back, whoever rejected. The gate's own reject loop still counts each rejection, and only your retry resets that.",[526,1949,1950,1951,1955],{},"A paused agent task resumes its own session when its harness supports it, and is told the ",[534,1952,1954],{"href":1953},"\u002Fconcepts\u002Fvocabulary#steer","steer",". Otherwise it restarts with its brief and the steer.",[818,1957,1959,1960,1963],{"id":1958},"when-resume-steer-is-refused","When ",[529,1961,1962],{},"resume --steer"," is refused",[526,1965,1966,1968],{},[529,1967,1962],{}," is refused when you:",[868,1970,1971,1974,1977],{},[871,1972,1973],{},"steer an item that is still running (pause it first);",[871,1975,1976],{},"steer an item whose pause stopped no agent task, such as a test run or a CI wait;",[871,1978,1979,1980,1983],{},"name a ",[529,1981,1982],{},"--steer-task"," that is not a paused agent task.",[552,1985,76],{"id":1986},"reviewing-a-change",[557,1988,1990],{"className":559,"code":1989,"language":561,"meta":562,"style":562},"kraft item comment --body \"this leaks the connection\" --file src\u002Fdb.py --lines 40-46 --label must-fix\nkraft item comment --body \"why not a set here?\" --file src\u002Fdb.py --lines 12 --label question\nkraft item comment --body \"small fix\" --file src\u002Fdb.py --lines 40 --suggest \"conn.close()\"\nkraft item comment --body \"keep the old name\" --file src\u002Fdb.py --lines 12-13 --start-side old --side new\nkraft item comment --reply \u003Cthread-id> --body \"looks right now\"\nkraft item resolve \u003Cthread-id>\nkraft item reopen \u003Cthread-id>\nkraft item review comment --summary \"a few notes, nothing blocking\"\nkraft item review approve\nkraft item review request-changes --summary \"please address the must-fix\"\n",[529,1991,1992,2025,2052,2079,2113,2143,2161,2178,2196,2207],{"__ignoreMap":562},[566,1993,1994,1996,1998,2001,2004,2007,2010,2013,2016,2019,2022],{"class":568,"line":569},[566,1995,573],{"class":572},[566,1997,577],{"class":576},[566,1999,2000],{"class":576}," comment",[566,2002,2003],{"class":593}," --body",[566,2005,2006],{"class":576}," \"this leaks the connection\"",[566,2008,2009],{"class":593}," --file",[566,2011,2012],{"class":576}," src\u002Fdb.py",[566,2014,2015],{"class":593}," --lines",[566,2017,2018],{"class":576}," 40-46",[566,2020,2021],{"class":593}," --label",[566,2023,2024],{"class":576}," must-fix\n",[566,2026,2027,2029,2031,2033,2035,2038,2040,2042,2044,2047,2049],{"class":568,"line":583},[566,2028,573],{"class":572},[566,2030,577],{"class":576},[566,2032,2000],{"class":576},[566,2034,2003],{"class":593},[566,2036,2037],{"class":576}," \"why not a set here?\"",[566,2039,2009],{"class":593},[566,2041,2012],{"class":576},[566,2043,2015],{"class":593},[566,2045,2046],{"class":593}," 12",[566,2048,2021],{"class":593},[566,2050,2051],{"class":576}," question\n",[566,2053,2054,2056,2058,2060,2062,2064,2066,2068,2070,2073,2076],{"class":568,"line":600},[566,2055,573],{"class":572},[566,2057,577],{"class":576},[566,2059,2000],{"class":576},[566,2061,2003],{"class":593},[566,2063,1245],{"class":576},[566,2065,2009],{"class":593},[566,2067,2012],{"class":576},[566,2069,2015],{"class":593},[566,2071,2072],{"class":593}," 40",[566,2074,2075],{"class":593}," --suggest",[566,2077,2078],{"class":576}," \"conn.close()\"\n",[566,2080,2081,2083,2085,2087,2089,2092,2094,2096,2098,2101,2104,2107,2110],{"class":568,"line":610},[566,2082,573],{"class":572},[566,2084,577],{"class":576},[566,2086,2000],{"class":576},[566,2088,2003],{"class":593},[566,2090,2091],{"class":576}," \"keep the old name\"",[566,2093,2009],{"class":593},[566,2095,2012],{"class":576},[566,2097,2015],{"class":593},[566,2099,2100],{"class":576}," 12-13",[566,2102,2103],{"class":593}," --start-side",[566,2105,2106],{"class":576}," old",[566,2108,2109],{"class":593}," --side",[566,2111,2112],{"class":576}," new\n",[566,2114,2115,2117,2119,2121,2124,2128,2131,2135,2138,2140],{"class":568,"line":626},[566,2116,573],{"class":572},[566,2118,577],{"class":576},[566,2120,2000],{"class":576},[566,2122,2123],{"class":593}," --reply",[566,2125,2127],{"class":2126},"sklAV"," \u003C",[566,2129,2130],{"class":576},"thread-i",[566,2132,2134],{"class":2133},"s7iLA","d",[566,2136,2137],{"class":2126},">",[566,2139,2003],{"class":593},[566,2141,2142],{"class":576}," \"looks right now\"\n",[566,2144,2145,2147,2149,2152,2154,2156,2158],{"class":568,"line":636},[566,2146,573],{"class":572},[566,2148,577],{"class":576},[566,2150,2151],{"class":576}," resolve",[566,2153,2127],{"class":2126},[566,2155,2130],{"class":576},[566,2157,2134],{"class":2133},[566,2159,2160],{"class":2126},">\n",[566,2162,2163,2165,2167,2170,2172,2174,2176],{"class":568,"line":1260},[566,2164,573],{"class":572},[566,2166,577],{"class":576},[566,2168,2169],{"class":576}," reopen",[566,2171,2127],{"class":2126},[566,2173,2130],{"class":576},[566,2175,2134],{"class":2133},[566,2177,2160],{"class":2126},[566,2179,2181,2183,2185,2188,2190,2193],{"class":568,"line":2180},8,[566,2182,573],{"class":572},[566,2184,577],{"class":576},[566,2186,2187],{"class":576}," review",[566,2189,2000],{"class":576},[566,2191,2192],{"class":593}," --summary",[566,2194,2195],{"class":576}," \"a few notes, nothing blocking\"\n",[566,2197,2199,2201,2203,2205],{"class":568,"line":2198},9,[566,2200,573],{"class":572},[566,2202,577],{"class":576},[566,2204,2187],{"class":576},[566,2206,580],{"class":576},[566,2208,2210,2212,2214,2216,2219,2221],{"class":568,"line":2209},10,[566,2211,573],{"class":572},[566,2213,577],{"class":576},[566,2215,2187],{"class":576},[566,2217,2218],{"class":576}," request-changes",[566,2220,2192],{"class":593},[566,2222,2223],{"class":576}," \"please address the must-fix\"\n",[651,2225,2226,2234],{},[654,2227,2228],{},[657,2229,2230,2232],{},[660,2231,662],{},[660,2233,665],{},[667,2235,2236,2254,2274],{},[657,2237,2238,2243],{},[672,2239,2240],{},[529,2241,2242],{},"item comment",[672,2244,2245,2246,2249,2250,550],{},"A draft review comment: a new thread, or ",[529,2247,2248],{},"--reply THREAD"," to answer one. See ",[534,2251,2253],{"href":2252},"#comment-on-a-change","Comment on a change",[657,2255,2256,2264],{},[672,2257,2258,776,2261],{},[529,2259,2260],{},"item resolve",[529,2262,2263],{},"item reopen",[672,2265,2266,2267,2270,2271,2273],{},"Mark a thread resolved, or reopen it. Prints one line, such as ",[529,2268,2269],{},"resolved thread a893… on calc.py:+9 to +11","; ",[529,2272,549],{}," prints the thread.",[657,2275,2276,2281],{},[672,2277,2278],{},[529,2279,2280],{},"item review",[672,2282,2283,2284,776,2287,779,2290,2293,2294,550],{},"Send your drafted comments with an outcome: ",[529,2285,2286],{},"comment",[529,2288,2289],{},"approve",[529,2291,2292],{},"request-changes",". See ",[534,2295,2297],{"href":2296},"#send-a-review","Send a review",[818,2299,2253],{"id":2300},"comment-on-a-change",[526,2302,2303,776,2306,1519,2309,2312,2313,2316],{},[529,2304,2305],{},"--file",[529,2307,2308],{},"--lines A[-B]",[529,2310,2311],{},"--side"," (default ",[529,2314,2315],{},"new",") anchor the comment to a line range; without them it is about the whole change.",[651,2318,2319,2327],{},[654,2320,2321],{},[657,2322,2323,2325],{},[660,2324,839],{},[660,2326,842],{},[667,2328,2329,2338,2355,2364,2375,2393,2411],{},[657,2330,2331,2335],{},[672,2332,2333],{},[529,2334,2248],{},[672,2336,2337],{},"Answers an existing thread instead of starting a new one.",[657,2339,2340,2344],{},[672,2341,2342],{},[529,2343,2305],{},[672,2345,2346,2347,2350,2351,2354],{},"A path in the repository, as the diff names it: one starting with ",[529,2348,2349],{},"\u002F"," or holding ",[529,2352,2353],{},".."," is refused.",[657,2356,2357,2361],{},[672,2358,2359],{},[529,2360,2308],{},[672,2362,2363],{},"The line range the comment is anchored to.",[657,2365,2366,2370],{},[672,2367,2368],{},[529,2369,2311],{},[672,2371,2372,2373,550],{},"The side of the diff the range is on. Default ",[529,2374,2315],{},[657,2376,2377,2382],{},[672,2378,2379],{},[529,2380,2381],{},"--start-side",[672,2383,2384,2385,2388,2389,2392],{},"Puts line ",[529,2386,2387],{},"A"," on the other side, for a range across sides: ",[529,2390,2391],{},"--lines 12-13 --start-side old --side new"," is old line 12 through new line 13, a removed line through its replacement.",[657,2394,2395,2400],{},[672,2396,2397],{},[529,2398,2399],{},"--label",[672,2401,2402,776,2405,779,2408,550],{},[529,2403,2404],{},"must-fix",[529,2406,2407],{},"question",[529,2409,2410],{},"nit",[657,2412,2413,2418],{},[672,2414,2415],{},[529,2416,2417],{},"--suggest",[672,2419,2420,2421,2424],{},"Gives a suggested replacement for the range. Needs ",[529,2422,2423],{},"--lines"," on the new side alone: a suggestion replaces new lines, so an old-side range is refused.",[526,2426,2427,2428,776,2431,2434],{},"Kraft quotes the range's lines from the diff onto the thread, so the agent that reads it gets them, as for a comment made on the review page. The command prints the thread's place (",[529,2429,2430],{},"src\u002Fdb.py:+40",[529,2432,2433],{},"src\u002Fdb.py:-12 to +13",") and the lines it quotes.",[818,2436,2297],{"id":2437},"send-a-review",[651,2439,2440,2449],{},[654,2441,2442],{},[657,2443,2444,2447],{},[660,2445,2446],{},"Outcome or flag",[660,2448,842],{},[667,2450,2451,2460,2469,2478,2488],{},[657,2452,2453,2457],{},[672,2454,2455],{},[529,2456,2286],{},[672,2458,2459],{},"Queues the drafts for the next agent; never interrupts.",[657,2461,2462,2466],{},[672,2463,2464],{},[529,2465,2289],{},[672,2467,2468],{},"Needs a pending gate.",[657,2470,2471,2475],{},[672,2472,2473],{},[529,2474,2292],{},[672,2476,2477],{},"Redoes the work now, at a pending gate or not.",[657,2479,2480,2485],{},[672,2481,2482],{},[529,2483,2484],{},"--summary",[672,2486,2487],{},"Adds a note above the threads.",[657,2489,2490,2495],{},[672,2491,2492],{},[529,2493,2494],{},"--node",[672,2496,2497,2498,2500],{},"Overrides where ",[529,2499,2292],{}," re-runs; left out, it is derived from the threads.",[526,2502,2503,2504,2506,2507,2510,2511,2349,2514,2517,2518,2521],{},"Drafts are invisible to every agent until a review sends them. ",[529,2505,2404],{},"\nblocks every gate approval until resolved. See ",[534,2508,2509],{"href":77},"Reviewing a\nchange"," for the full picture, and ",[529,2512,2513],{},"kraft view threads",[529,2515,2516],{},"kraft view compare"," in the ",[534,2519,2520],{"href":279},"view verbs"," to read\nbefore you comment.",[552,2523,2525],{"id":2524},"skip-escalate-end-or-drop-an-item","Skip, escalate, end or drop an item",[557,2527,2529],{"className":559,"code":2528,"language":561,"meta":562,"style":562},"kraft item skip --note \"already fixed upstream\"\nkraft item escalate --message \"the fix loop keeps missing the same edge case\"\nkraft item escalate --message \"...\" --new-thread\nkraft item complete --reason \"shipped by hand\"\nkraft item cancel --reason \"superseded by #412\"\nkraft item abandon --yes\n",[529,2530,2531,2544,2559,2575,2590,2604],{"__ignoreMap":562},[566,2532,2533,2535,2537,2539,2541],{"class":568,"line":569},[566,2534,573],{"class":572},[566,2536,577],{"class":576},[566,2538,1844],{"class":576},[566,2540,594],{"class":593},[566,2542,2543],{"class":576}," \"already fixed upstream\"\n",[566,2545,2546,2548,2550,2553,2556],{"class":568,"line":583},[566,2547,573],{"class":572},[566,2549,577],{"class":576},[566,2551,2552],{"class":576}," escalate",[566,2554,2555],{"class":593}," --message",[566,2557,2558],{"class":576}," \"the fix loop keeps missing the same edge case\"\n",[566,2560,2561,2563,2565,2567,2569,2572],{"class":568,"line":600},[566,2562,573],{"class":572},[566,2564,577],{"class":576},[566,2566,2552],{"class":576},[566,2568,2555],{"class":593},[566,2570,2571],{"class":576}," \"...\"",[566,2573,2574],{"class":593}," --new-thread\n",[566,2576,2577,2579,2581,2584,2587],{"class":568,"line":610},[566,2578,573],{"class":572},[566,2580,577],{"class":576},[566,2582,2583],{"class":576}," complete",[566,2585,2586],{"class":593}," --reason",[566,2588,2589],{"class":576}," \"shipped by hand\"\n",[566,2591,2592,2594,2596,2599,2601],{"class":568,"line":626},[566,2593,573],{"class":572},[566,2595,577],{"class":576},[566,2597,2598],{"class":576}," cancel",[566,2600,2586],{"class":593},[566,2602,2603],{"class":576}," \"superseded by #412\"\n",[566,2605,2606,2608,2610,2613],{"class":568,"line":636},[566,2607,573],{"class":572},[566,2609,577],{"class":576},[566,2611,2612],{"class":576}," abandon",[566,2614,2615],{"class":593}," --yes\n",[651,2617,2618,2626],{},[654,2619,2620],{},[657,2621,2622,2624],{},[660,2623,662],{},[660,2625,665],{},[667,2627,2628,2644,2661,2678,2688],{},[657,2629,2630,2635],{},[672,2631,2632],{},[529,2633,2634],{},"item skip",[672,2636,2637,2638,715,2640,2643],{},"Advances past the current node or gate without running it. ",[529,2639,714],{},[529,2641,2642],{},"--path"," skips only one node, step or task of the current node.",[657,2645,2646,2651],{},[672,2647,2648],{},[529,2649,2650],{},"item escalate --message TEXT",[672,2652,2653,2654,2656,2657,550],{},"Asks an agent to help with a ",[529,2655,944],{}," stop, or with a paused item that has started. The manual form of the board's auto-escalation. See ",[534,2658,2660],{"href":2659},"#escalate-a-stopped-item","Escalate a stopped item",[657,2662,2663,2668],{},[672,2664,2665],{},[529,2666,2667],{},"item complete --reason TEXT",[672,2669,2670,2671,2674,2675,2677],{},"Ends the item as completed. ",[529,2672,2673],{},"--close-beads"," also closes its linked ",[534,2676,1419],{"href":1418}," issues.",[657,2679,2680,2685],{},[672,2681,2682],{},[529,2683,2684],{},"item cancel --reason TEXT",[672,2686,2687],{},"Ends the item as cancelled. The worktree stays.",[657,2689,2690,2695],{},[672,2691,2692],{},[529,2693,2694],{},"item abandon --yes",[672,2696,2697,2698,2701,2702,2704],{},"Drops the item. ",[529,2699,2700],{},"--yes"," is required, because uncommitted work and unpushed commits are lost. Refused with ",[529,2703,771],{}," while the item is active: pause it first.",[526,2706,2707,1519,2710,2713],{},[529,2708,2709],{},"complete",[529,2711,2712],{},"cancel"," stop whatever is running and record the reason on the item's timeline.",[526,2715,2716,2719,2720,2724,2725,2727],{},[529,2717,2718],{},"abandon"," deletes the item's worktree, its branch and its ",[534,2721,2723],{"href":2722},"\u002Fconcepts\u002Fvocabulary#attachment","attachment"," copies, including those of a cancelled item. ",[529,2726,2718],{}," has no MCP tool.",[818,2729,2660],{"id":2730},"escalate-a-stopped-item",[526,2732,2733,2736],{},[529,2734,2735],{},"--new-thread"," starts a fresh agent session instead of continuing the latest thread.",[526,2738,2739,2740,2742,2743,2745,2746,2748],{},"A spend cap's stop is refused (",[529,2741,771],{},"), since the agent would spend against the same cap. Raise that cap first: the item's own with ",[529,2744,1620],{},", the daily one with ",[529,2747,1011],{}," on Settings › Policy.",[552,2750,2752],{"id":2751},"archive-and-restore-finished-items","Archive and restore finished items",[557,2754,2756],{"className":559,"code":2755,"language":561,"meta":562,"style":562},"kraft item archive ID\nkraft item archive ID1 ID2 --yes\nkraft item archive --reclaimable --yes\nkraft item restore ID\n",[529,2757,2758,2770,2786,2799],{"__ignoreMap":562},[566,2759,2760,2762,2764,2767],{"class":568,"line":569},[566,2761,573],{"class":572},[566,2763,577],{"class":576},[566,2765,2766],{"class":576}," archive",[566,2768,2769],{"class":576}," ID\n",[566,2771,2772,2774,2776,2778,2781,2784],{"class":568,"line":583},[566,2773,573],{"class":572},[566,2775,577],{"class":576},[566,2777,2766],{"class":576},[566,2779,2780],{"class":576}," ID1",[566,2782,2783],{"class":576}," ID2",[566,2785,2615],{"class":593},[566,2787,2788,2790,2792,2794,2797],{"class":568,"line":600},[566,2789,573],{"class":572},[566,2791,577],{"class":576},[566,2793,2766],{"class":576},[566,2795,2796],{"class":593}," --reclaimable",[566,2798,2615],{"class":593},[566,2800,2801,2803,2805,2808],{"class":568,"line":610},[566,2802,573],{"class":572},[566,2804,577],{"class":576},[566,2806,2807],{"class":576}," restore",[566,2809,2769],{"class":576},[651,2811,2812,2820],{},[654,2813,2814],{},[657,2815,2816,2818],{},[660,2817,662],{},[660,2819,665],{},[667,2821,2822,2835,2852],{},[657,2823,2824,2829],{},[672,2825,2826],{},[529,2827,2828],{},"item archive [ID ...]",[672,2830,2831,2832,2834],{},"Archives completed or cancelled items and removes their worktrees. Without ",[529,2833,2700],{}," it only prints the preview. With no ID, the item whose worktree you are in.",[657,2836,2837,2842],{},[672,2838,2839],{},[529,2840,2841],{},"item archive --reclaimable",[672,2843,2844,2845,2851],{},"Takes every completed or cancelled item that is not archived and that ",[534,2846,2848],{"href":2847},"\u002Freference\u002Fcli\u002Fview#worktree-disk-use",[529,2849,2850],{},"view storage"," marks reclaimable, the 200 largest at most (the preview and bulk routes take no more); run it again for the rest. Refused beside IDs.",[657,2853,2854,2859],{},[672,2855,2856],{},[529,2857,2858],{},"item restore [ID]",[672,2860,2861],{},"Puts an archived item back under Done. The worktree archive removed does not come back.",[526,2863,2864,2865,2868,2869,2871,2872,2875],{},"Before it archives, ",[529,2866,2867],{},"item archive"," prints one line per item: the worktree's size, how many uncommitted files the archive loses, and whether the branch stays (it does when it holds commits nothing else has). Then it prints the total freed and where usage lands against the quota and limit. Without ",[529,2870,2700],{}," it stops there and exits ",[529,2873,2874],{},"1","; nothing is archived.",[526,2877,2878,2880,2881,2883,2884,2886,2887,1519,2889,2892],{},[529,2879,549],{}," prints the preview when ",[529,2882,2700],{}," is missing, and the bulk results when it is given. An item that cannot be archived is a line in the results, not a failure of the rest, and the verb exits ",[529,2885,2874],{}," when any item was not archived. ",[529,2888,2867],{},[529,2890,2891],{},"item restore"," have no MCP tool.",[552,2894,2896],{"id":2895},"change-an-items-setup","Change an item's setup",[557,2898,2900],{"className":559,"code":2899,"language":561,"meta":562,"style":562},"kraft item set-chain --chain quick-task\nkraft item set-attachments --spec specs\u002Fx.md\nkraft item set-attachments --drop spec\nkraft item set-overrides --model opus --effort high\nkraft item set-overrides --clear\n",[529,2901,2902,2916,2930,2943,2964],{"__ignoreMap":562},[566,2903,2904,2906,2908,2911,2913],{"class":568,"line":569},[566,2905,573],{"class":572},[566,2907,577],{"class":576},[566,2909,2910],{"class":576}," set-chain",[566,2912,1228],{"class":593},[566,2914,2915],{"class":576}," quick-task\n",[566,2917,2918,2920,2922,2925,2927],{"class":568,"line":583},[566,2919,573],{"class":572},[566,2921,577],{"class":576},[566,2923,2924],{"class":576}," set-attachments",[566,2926,1188],{"class":593},[566,2928,2929],{"class":576}," specs\u002Fx.md\n",[566,2931,2932,2934,2936,2938,2941],{"class":568,"line":600},[566,2933,573],{"class":572},[566,2935,577],{"class":576},[566,2937,2924],{"class":576},[566,2939,2940],{"class":593}," --drop",[566,2942,1805],{"class":576},[566,2944,2945,2947,2949,2952,2955,2958,2961],{"class":568,"line":610},[566,2946,573],{"class":572},[566,2948,577],{"class":576},[566,2950,2951],{"class":576}," set-overrides",[566,2953,2954],{"class":593}," --model",[566,2956,2957],{"class":576}," opus",[566,2959,2960],{"class":593}," --effort",[566,2962,2963],{"class":576}," high\n",[566,2965,2966,2968,2970,2972],{"class":568,"line":626},[566,2967,573],{"class":572},[566,2969,577],{"class":576},[566,2971,2951],{"class":576},[566,2973,2974],{"class":593}," --clear\n",[651,2976,2977,2985],{},[654,2978,2979],{},[657,2980,2981,2983],{},[660,2982,662],{},[660,2984,665],{},[667,2986,2987,3000,3014,3044,3058],{},[657,2988,2989,2994],{},[672,2990,2991],{},[529,2992,2993],{},"item set-chain --chain C",[672,2995,2996,2997,550],{},"Switches a not-yet-started item's chain. Also accepted as ",[529,2998,2999],{},"--template",[657,3001,3002,3007],{},[672,3003,3004],{},[529,3005,3006],{},"item set-attachments",[672,3008,3009,3010,3013],{},"Revises a not-yet-started item's spec or plan. ",[529,3011,3012],{},"--drop KIND"," removes it and restores its gate.",[657,3015,3016,3021],{},[672,3017,3018],{},[529,3019,3020],{},"item set-overrides",[672,3022,3023,3024,1519,3027,3030,3031,3034,3035,3039,3040,550],{},"Sets the item-wide ",[529,3025,3026],{},"--model",[529,3028,3029],{},"--effort",", and ",[529,3032,3033],{},"--escalate-model"," for a ",[534,3036,3038],{"href":3037},"\u002Fconcepts\u002Fvocabulary#fix-loop","fix loop","'s escalation model. See ",[534,3041,3043],{"href":3042},"#set-item-wide-overrides","Set item-wide overrides",[657,3045,3046,3051],{},[672,3047,3048],{},[529,3049,3050],{},"item set-node-override --node N",[672,3052,3053,3054,550],{},"Sets one node's agent overrides. See ",[534,3055,3057],{"href":3056},"#one-nodes-agent-tasks","One node's agent tasks",[657,3059,3060,3064],{},[672,3061,3062],{},[529,3063,990],{},[672,3065,3066,3067,550],{},"Gives the item its own policy override. See ",[534,3068,3069],{"href":1496},"A work item's own policy",[818,3071,3043],{"id":3072},"set-item-wide-overrides",[651,3074,3075,3083],{},[654,3076,3077],{},[657,3078,3079,3081],{},[660,3080,839],{},[660,3082,842],{},[667,3084,3085,3094,3118,3127],{},[657,3086,3087,3091],{},[672,3088,3089],{},[529,3090,3026],{},[672,3092,3093],{},"The item-wide model.",[657,3095,3096,3100],{},[672,3097,3098],{},[529,3099,3029],{},[672,3101,3102,3103,776,3106,776,3109,776,3112,779,3115,550],{},"The item-wide effort: ",[529,3104,3105],{},"low",[529,3107,3108],{},"medium",[529,3110,3111],{},"high",[529,3113,3114],{},"xhigh",[529,3116,3117],{},"max",[657,3119,3120,3124],{},[672,3121,3122],{},[529,3123,3033],{},[672,3125,3126],{},"The model for a fix loop's escalation.",[657,3128,3129,3134],{},[672,3130,3131],{},[529,3132,3133],{},"--clear",[672,3135,3136],{},"Returns every one to the chain's own binding.",[526,3138,3139,3140,3143,3144,3147],{},"Each call replaces the whole override, so a flag you leave out goes back to the chain's own binding. A model is refused unless it looks like a model id: letters, digits and ",[529,3141,3142],{},". _ : \u002F @ + [ ] -",", optionally after a leading ",[529,3145,3146],{},"~",", at most 128 characters.",[818,3149,3057],{"id":3150},"one-nodes-agent-tasks",[526,3152,3153,3156],{},[529,3154,3155],{},"kraft item set-node-override --node N"," changes one node of one item until that node starts. The override is stored on the item and does not edit the chain.",[557,3158,3160],{"className":559,"code":3159,"language":561,"meta":562,"style":562},"kraft item set-node-override --node verify --auto-escalate-stuck\nkraft item set-node-override --node implementation --model opus --effort high\nkraft item set-node-override --node implementation --extra-prompt \"Keep the migration backwards compatible.\"\n",[529,3161,3162,3180,3201],{"__ignoreMap":562},[566,3163,3164,3166,3168,3171,3174,3177],{"class":568,"line":569},[566,3165,573],{"class":572},[566,3167,577],{"class":576},[566,3169,3170],{"class":576}," set-node-override",[566,3172,3173],{"class":593}," --node",[566,3175,3176],{"class":576}," verify",[566,3178,3179],{"class":593}," --auto-escalate-stuck\n",[566,3181,3182,3184,3186,3188,3190,3193,3195,3197,3199],{"class":568,"line":583},[566,3183,573],{"class":572},[566,3185,577],{"class":576},[566,3187,3170],{"class":576},[566,3189,3173],{"class":593},[566,3191,3192],{"class":576}," implementation",[566,3194,2954],{"class":593},[566,3196,2957],{"class":576},[566,3198,2960],{"class":593},[566,3200,2963],{"class":576},[566,3202,3203,3205,3207,3209,3211,3213,3216],{"class":568,"line":600},[566,3204,573],{"class":572},[566,3206,577],{"class":576},[566,3208,3170],{"class":576},[566,3210,3173],{"class":593},[566,3212,3192],{"class":576},[566,3214,3215],{"class":593}," --extra-prompt",[566,3217,3218],{"class":576}," \"Keep the migration backwards compatible.\"\n",[651,3220,3221,3229],{},[654,3222,3223],{},[657,3224,3225,3227],{},[660,3226,839],{},[660,3228,842],{},[667,3230,3231,3240,3253,3270,3280,3295,3309],{},[657,3232,3233,3237],{},[672,3234,3235],{},[529,3236,720],{},[672,3238,3239],{},"Required. The node to change.",[657,3241,3242,3250],{},[672,3243,3244,776,3247],{},[529,3245,3246],{},"--auto-escalate",[529,3248,3249],{},"--no-auto-escalate",[672,3251,3252],{},"Arms or disarms agent review of this node's auto-escalate gates.",[657,3254,3255,3263],{},[672,3256,3257,776,3260],{},[529,3258,3259],{},"--auto-escalate-stuck",[529,3261,3262],{},"--no-auto-escalate-stuck",[672,3264,3265,3266,550],{},"Arms or disarms auto-escalation when this node stops ",[534,3267,3269],{"href":3268},"\u002Fconcepts\u002Fvocabulary#stuck","stuck",[657,3271,3272,3277],{},[672,3273,3274],{},[529,3275,3276],{},"--auto-escalate-delay-s SECONDS",[672,3278,3279],{},"The delay before this node's auto-escalation fires.",[657,3281,3282,3288],{},[672,3283,3284,776,3286],{},[529,3285,3026],{},[529,3287,3029],{},[672,3289,3290,3291,550],{},"What every agent task in the node launches with. See ",[534,3292,3294],{"href":3293},"#which-model-and-effort-a-task-uses","Which model and effort a task uses",[657,3296,3297,3302],{},[672,3298,3299],{},[529,3300,3301],{},"--extra-prompt TEXT",[672,3303,3304,3305,550],{},"Appended to the instruction of every agent task the node runs. See ",[534,3306,3308],{"href":3307},"#extra-prompt","Extra prompt",[657,3310,3311,3315],{},[672,3312,3313],{},[529,3314,3133],{},[672,3316,3317],{},"Resets the node to the chain's own binding.",[526,3319,3320,3321,3324,3325,3328,3329,3332],{},"Each call changes only the flags you give and keeps the node's other overrides, so ",[529,3322,3323],{},"--model opus"," and then ",[529,3326,3327],{},"--effort max"," leave both set. This differs from ",[529,3330,3331],{},"set-overrides",", where each call replaces the whole item-wide override.",[526,3334,3335,1519,3338,3341,3342,3345,3346,550],{},[529,3336,3337],{},"attempts",[529,3339,3340],{},"wall_clock_s"," have no flag here. Set them at filing with ",[529,3343,3344],{},"kraft item create --node-override N.attempts=2",". Before the item starts, the node's Config tab on the item page also sets ",[529,3347,3337],{},[526,3349,3350,3351,3353,3354,779,3356,3358],{},"After the node starts, Kraft refuses the change. One case is allowed: an item stopped at that node because its stored model override is not a valid model id. Fix it with ",[529,3352,3133],{},", or a new ",[529,3355,3026],{},[529,3357,3029],{},", then retry. An item filed by an older Kraft can meet this.",[818,3360,3294],{"id":3361},"which-model-and-effort-a-task-uses",[526,3363,3364],{},"From highest precedence to lowest:",[3366,3367,3368,3371,3375,3388,3395],"ol",{},[871,3369,3370],{},"This node override.",[871,3372,880,3373,550],{},[529,3374,3331],{},[871,3376,3377,3378,1519,3381,2517,3384,550],{},"The task's own ",[529,3379,3380],{},"model:",[529,3382,3383],{},"effort:",[534,3385,3387],{"href":3386},"\u002Fconcepts\u002Fvocabulary#library","library",[871,3389,3390,3391,3394],{},"The repo's ",[529,3392,3393],{},"models:"," (model only).",[871,3396,3397,3398,3402,3403,550],{},"The ",[534,3399,3401],{"href":3400},"\u002Fconcepts\u002Fvocabulary#harness-profile","harness profile","'s ",[529,3404,3405],{},"defaults:",[526,3407,3408,3409,3411],{},"A value the node's harness does not accept is refused when you set it, not at launch. A gate's ",[529,3410,1437],{}," uses the item-wide values only.",[818,3413,3308],{"id":3414},"extra-prompt",[526,3416,3417,3420,3421,3423,3424,776,3428,3431],{},[529,3418,3419],{},"--extra-prompt"," is added after the task's own prompt and brief. It never replaces them. It does not reach a gate's ",[529,3422,1437],{}," or the interactive escalation turn. At ",[534,3425,3427],{"href":3426},"\u002Fconcepts\u002Fvocabulary#intake","intake",[529,3429,3430],{},"N.extra_prompt=..."," is taken as written, not read as YAML.",[818,3433,3069],{"id":3434},"a-work-items-own-policy",[526,3436,3437,3440,3441,3443,3444,3447,3448,3451,3452,3455],{},[529,3438,3439],{},"kraft item create --policy KEY=VALUE"," (repeatable) and ",[529,3442,1003],{}," give one work item its own policy override, without touching its\nchain or any other item. ",[529,3445,3446],{},"FIELD=VALUE"," applies item-wide. ",[529,3449,3450],{},"PATH.FIELD=VALUE","\napplies to one node, step or task and everything under it. Values are read as\nYAML, so ",[529,3453,3454],{},"deny_tools=[WebFetch]"," is a list.",[557,3457,3459],{"className":559,"code":3458,"language":561,"meta":562,"style":562},"kraft item create \"quick fix\" --policy time_cap_minutes=45 --policy merge_request_feedback.ci.await_ci.total_time_cap_minutes=60 --policy verification.max_attempts=4\nkraft item set-policy --policy merge_request_feedback.ci.await_ci.total_time_cap_minutes=60\nkraft item set-policy \u003Cid> --policy max_attempts=2\nkraft item set-policy --clear\n",[529,3460,3461,3497,3513,3537],{"__ignoreMap":562},[566,3462,3463,3465,3467,3469,3472,3475,3478,3481,3483,3486,3489,3491,3494],{"class":568,"line":569},[566,3464,573],{"class":572},[566,3466,577],{"class":576},[566,3468,1151],{"class":576},[566,3470,3471],{"class":576}," \"quick fix\"",[566,3473,3474],{"class":593}," --policy",[566,3476,3477],{"class":576}," time_cap_minutes=",[566,3479,3480],{"class":593},"45",[566,3482,3474],{"class":593},[566,3484,3485],{"class":576}," merge_request_feedback.ci.await_ci.total_time_cap_minutes=",[566,3487,3488],{"class":593},"60",[566,3490,3474],{"class":593},[566,3492,3493],{"class":576}," verification.max_attempts=",[566,3495,3496],{"class":593},"4\n",[566,3498,3499,3501,3503,3506,3508,3510],{"class":568,"line":583},[566,3500,573],{"class":572},[566,3502,577],{"class":576},[566,3504,3505],{"class":576}," set-policy",[566,3507,3474],{"class":593},[566,3509,3485],{"class":576},[566,3511,3512],{"class":593},"60\n",[566,3514,3515,3517,3519,3521,3523,3526,3528,3530,3532,3535],{"class":568,"line":600},[566,3516,573],{"class":572},[566,3518,577],{"class":576},[566,3520,3505],{"class":576},[566,3522,2127],{"class":2126},[566,3524,3525],{"class":576},"i",[566,3527,2134],{"class":2133},[566,3529,2137],{"class":2126},[566,3531,3474],{"class":593},[566,3533,3534],{"class":576}," max_attempts=",[566,3536,1278],{"class":593},[566,3538,3539,3541,3543,3545],{"class":568,"line":610},[566,3540,573],{"class":572},[566,3542,577],{"class":576},[566,3544,3505],{"class":576},[566,3546,2974],{"class":593},[526,3548,3549,3552,3553,1671],{},[529,3550,3551],{},"set-policy"," replaces the whole override. The fields are those described in\n",[534,3554,318],{"href":319},[651,3556,3557,3567],{},[654,3558,3559],{},[657,3560,3561,3564],{},[660,3562,3563],{},"Fields",[660,3565,3566],{},"Behavior",[667,3568,3569,3594,3610],{},[657,3570,3571,3582],{},[672,3572,3573,776,3576,776,3579],{},[529,3574,3575],{},"timeout_minutes",[529,3577,3578],{},"max_attempts",[529,3580,3581],{},"allowed_harnesses",[672,3583,3584,3585,1098,3588,3590,3591,3593],{},"Move within the ",[529,3586,3587],{},"maxima",[529,3589,318],{}," and win over what the chain set. ",[529,3592,3578],{}," applies to execution nodes only.",[657,3595,3596,3607],{},[672,3597,3598,776,3601,776,3604],{},[529,3599,3600],{},"allowed_tools",[529,3602,3603],{},"deny_tools",[529,3605,3606],{},"sandbox",[672,3608,3609],{},"Only tighten. A list intersects with what each task already allows.",[657,3611,3612,3624],{},[672,3613,3614,776,3617,776,3620,776,3622],{},[529,3615,3616],{},"time_cap_minutes",[529,3618,3619],{},"total_time_cap_minutes",[529,3621,987],{},[529,3623,883],{},[672,3625,3626,3627,3630,3631,3634,3635,550],{},"Item-wide caps. Raise one above the chain's, up to ",[529,3628,3629],{},"maxima.work_item",", to unstick a capped item before a retry. ",[529,3632,3633],{},"budget_usd=none"," clears the dollar cap, the one way past a stop on unknown spend; see ",[534,3636,80],{"href":81},[526,3638,3639],{},"On a path, a cap only tightens. Kraft refuses a value above what the chain or the item already gives that scope, and names both. A wait task's total cap is its timeout.",[526,3641,3642],{},"Kraft refuses a value past its maximum, a path the chain does not have, and a\nkey that is not a policy field, naming the field.",[526,3644,3645,3647],{},[529,3646,3551],{}," works on any item that has not ended. On a running or waiting\nitem it takes effect from the next node the item enters and from the next\ncheck of a wait it is parked on. The new timeout counts from when the wait\nstarted.",[552,3649,3651],{"id":3650},"label-the-merge-request","Label the merge request",[557,3653,3655],{"className":559,"code":3654,"language":561,"meta":562,"style":562},"kraft item mr-label --id \u003Cid> release::patch\nkraft item mr-label release::patch qa::done\n",[529,3656,3657,3680],{"__ignoreMap":562},[566,3658,3659,3661,3663,3666,3669,3671,3673,3675,3677],{"class":568,"line":569},[566,3660,573],{"class":572},[566,3662,577],{"class":576},[566,3664,3665],{"class":576}," mr-label",[566,3667,3668],{"class":593}," --id",[566,3670,2127],{"class":2126},[566,3672,3525],{"class":576},[566,3674,2134],{"class":2133},[566,3676,2137],{"class":2126},[566,3678,3679],{"class":576}," release::patch\n",[566,3681,3682,3684,3686,3688,3691],{"class":568,"line":583},[566,3683,573],{"class":572},[566,3685,577],{"class":576},[566,3687,3665],{"class":576},[566,3689,3690],{"class":576}," release::patch",[566,3692,3693],{"class":576}," qa::done\n",[526,3695,3696,3699,3700,3703,3704,3708],{},[529,3697,3698],{},"kraft item mr-label LABEL..."," relabels the item's merge request with the labels given as arguments, and re-creates its pipeline. ",[529,3701,3702],{},"--id"," picks the item; without it, the item whose worktree you are in. A ",[534,3705,3707],{"href":3706},"\u002Fconcepts\u002Fvocabulary#worker-session","worker session"," calls it too.",[552,3710,3712],{"id":3711},"verbs-a-worker-calls","Verbs a worker calls",[526,3714,3715],{},"A worker session calls these. You do not run them by hand.",[651,3717,3718,3726],{},[654,3719,3720],{},[657,3721,3722,3724],{},[660,3723,662],{},[660,3725,665],{},[667,3727,3728,3738],{},[657,3729,3730,3735],{},[672,3731,3732],{},[529,3733,3734],{},"item progress N",[672,3736,3737],{},"Reports that the worker started plan task N.",[657,3739,3740,3745],{},[672,3741,3742],{},[529,3743,3744],{},"item reply THREAD --body \"...\"",[672,3746,3747,3748,684,3752,3755],{},"Answers a ",[534,3749,3751],{"href":3750},"\u002Fconcepts\u002Fvocabulary#review-thread","review thread",[529,3753,3754],{},"--claim fixed|answered|should_fix"," says what the reply claims.",[552,3757,3759],{"id":3758},"related","Related",[868,3761,3762,3767,3772,3777],{},[871,3763,3764,3766],{},[534,3765,278],{"href":279},": read an item, its diff and its threads before you act on it.",[871,3768,3769,3771],{},[534,3770,290],{"href":291},": what each status means, and the verb that leaves it.",[871,3773,3774,3776],{},[534,3775,478],{"href":479},": the tool behind each of these verbs, and the ones a worker is refused.",[871,3778,3779,3781],{},[534,3780,80],{"href":81},": which cap stopped the item, and how to raise it.",[3783,3784,3785],"style",{},"html pre.shiki code .szw1H, html code.shiki .szw1H{--shiki-light:#702C00;--shiki-default:#702C00;--shiki-dark:#FFB757}html pre.shiki code .semJd, html code.shiki .semJd{--shiki-light:#032563;--shiki-default:#032563;--shiki-dark:#ADDCFF}html pre.shiki code .ssYy9, html code.shiki .ssYy9{--shiki-light:#023B95;--shiki-default:#023B95;--shiki-dark:#91CBFF}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);}html pre.shiki code .sklAV, html code.shiki .sklAV{--shiki-light:#A0111F;--shiki-default:#A0111F;--shiki-dark:#FF9492}html pre.shiki code .s7iLA, html code.shiki .s7iLA{--shiki-light:#0E1116;--shiki-default:#0E1116;--shiki-dark:#F0F3F6}",{"title":562,"searchDepth":583,"depth":583,"links":3787},[3788,3791,3798,3803,3807,3810,3811,3819,3820,3821],{"id":554,"depth":583,"text":555,"children":3789},[3790],{"id":820,"depth":600,"text":816},{"id":1136,"depth":583,"text":1137,"children":3792},[3793,3794,3795,3796,3797],{"id":1506,"depth":600,"text":1341},{"id":1593,"depth":600,"text":754},{"id":1651,"depth":600,"text":1652},{"id":1683,"depth":600,"text":1365},{"id":1711,"depth":600,"text":1712},{"id":1726,"depth":583,"text":1727,"children":3799},[3800,3801],{"id":1933,"depth":600,"text":1934},{"id":1958,"depth":600,"text":3802},"When resume --steer is refused",{"id":1986,"depth":583,"text":76,"children":3804},[3805,3806],{"id":2300,"depth":600,"text":2253},{"id":2437,"depth":600,"text":2297},{"id":2524,"depth":583,"text":2525,"children":3808},[3809],{"id":2730,"depth":600,"text":2660},{"id":2751,"depth":583,"text":2752},{"id":2895,"depth":583,"text":2896,"children":3812},[3813,3815,3816,3817,3818],{"id":3072,"depth":600,"text":3814},"Set item-​wide overrides",{"id":3150,"depth":600,"text":3057},{"id":3361,"depth":600,"text":3294},{"id":3414,"depth":600,"text":3308},{"id":3434,"depth":600,"text":3069},{"id":3650,"depth":583,"text":3651},{"id":3711,"depth":583,"text":3712},{"id":3758,"depth":583,"text":3759},"The kraft item verbs: file, approve, reject, pause, resume, retry, raise a budget, skip, escalate, and set policy.","md",null,{},true,{"title":274,"description":3822},"zqH8WgOlURJyDXW4cV_X0ll_xhjcZG3b_Bn6M1uxnH8",[3830,3832],{"title":10,"path":269,"stem":270,"description":3831,"children":-1},"Every kraft verb, grouped by what it does, and found by what you want to do.",{"title":278,"path":279,"stem":280,"description":3833,"children":-1},"The kraft view verbs: read the board, follow a running item, and review its diff and documents.",1791801173096]