[{"data":1,"prerenderedAt":1980},["ShallowReactive",2],{"navigation_docs":3,"-reference-cli-admin":504,"-reference-cli-admin-surround":1975},[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":278,"body":506,"description":1969,"extension":1970,"links":1971,"meta":1972,"navigation":1815,"path":279,"seo":1973,"stem":280,"__hash__":1974},"docs\u002F5.reference\u002F01.cli\u002F5.admin.md",{"type":507,"value":508,"toc":1951},"minimark",[509,525,833,1125,1129,1133,1182,1185,1195,1202,1237,1253,1256,1274,1289,1292,1298,1311,1354,1358,1361,1375,1385,1451,1468,1472,1478,1533,1539,1589,1592,1595,1611,1614,1640,1676,1712,1724,1727,1739,1758,1821,1843,1849,1853,1856,1872,1881,1884,1896,1906,1910,1947],[510,511,512,516,517,520,521,524],"p",{},[513,514,515],"code",{},"kraft admin"," runs this machine's Kraft server. Bare ",[513,518,519],{},"kraft"," is the same as ",[513,522,523],{},"kraft admin start",".",[526,527,532],"pre",{"className":528,"code":529,"language":530,"meta":531,"style":531},"language-bash shiki shiki-themes github-light-high-contrast github-light-high-contrast github-dark-high-contrast","kraft admin start --port 9000\nkraft admin start --detach\nkraft admin stop\nkraft admin restart -y\nkraft admin health\nkraft admin doctor\nkraft admin reindex --repo \u003Cpath>\nkraft admin reload\nkraft admin update --restart -y\nkraft admin install-service\nkraft admin uninstall-service\nkraft admin templates lint\nkraft admin templates lint --dir PATH\nkraft admin templates show ID\nkraft admin templates show ID --resolved\nkraft admin templates library\nkraft admin templates library ID\nkraft admin harnesses\nkraft admin harnesses ID\nkraft admin init --repo\nkraft admin mcp\nkraft admin permission-hook cursor --fail-closed\n","bash","",[513,533,534,556,568,578,591,601,611,638,648,663,673,683,696,714,729,746,758,772,782,794,807,817],{"__ignoreMap":531},[535,536,539,542,546,549,553],"span",{"class":537,"line":538},"line",1,[535,540,519],{"class":541},"szw1H",[535,543,545],{"class":544},"semJd"," admin",[535,547,548],{"class":544}," start",[535,550,552],{"class":551},"ssYy9"," --port",[535,554,555],{"class":551}," 9000\n",[535,557,559,561,563,565],{"class":537,"line":558},2,[535,560,519],{"class":541},[535,562,545],{"class":544},[535,564,548],{"class":544},[535,566,567],{"class":551}," --detach\n",[535,569,571,573,575],{"class":537,"line":570},3,[535,572,519],{"class":541},[535,574,545],{"class":544},[535,576,577],{"class":544}," stop\n",[535,579,581,583,585,588],{"class":537,"line":580},4,[535,582,519],{"class":541},[535,584,545],{"class":544},[535,586,587],{"class":544}," restart",[535,589,590],{"class":551}," -y\n",[535,592,594,596,598],{"class":537,"line":593},5,[535,595,519],{"class":541},[535,597,545],{"class":544},[535,599,600],{"class":544}," health\n",[535,602,604,606,608],{"class":537,"line":603},6,[535,605,519],{"class":541},[535,607,545],{"class":544},[535,609,610],{"class":544}," doctor\n",[535,612,614,616,618,621,624,628,631,635],{"class":537,"line":613},7,[535,615,519],{"class":541},[535,617,545],{"class":544},[535,619,620],{"class":544}," reindex",[535,622,623],{"class":551}," --repo",[535,625,627],{"class":626},"sklAV"," \u003C",[535,629,630],{"class":544},"pat",[535,632,634],{"class":633},"s7iLA","h",[535,636,637],{"class":626},">\n",[535,639,641,643,645],{"class":537,"line":640},8,[535,642,519],{"class":541},[535,644,545],{"class":544},[535,646,647],{"class":544}," reload\n",[535,649,651,653,655,658,661],{"class":537,"line":650},9,[535,652,519],{"class":541},[535,654,545],{"class":544},[535,656,657],{"class":544}," update",[535,659,660],{"class":551}," --restart",[535,662,590],{"class":551},[535,664,666,668,670],{"class":537,"line":665},10,[535,667,519],{"class":541},[535,669,545],{"class":544},[535,671,672],{"class":544}," install-service\n",[535,674,676,678,680],{"class":537,"line":675},11,[535,677,519],{"class":541},[535,679,545],{"class":544},[535,681,682],{"class":544}," uninstall-service\n",[535,684,686,688,690,693],{"class":537,"line":685},12,[535,687,519],{"class":541},[535,689,545],{"class":544},[535,691,692],{"class":544}," templates",[535,694,695],{"class":544}," lint\n",[535,697,699,701,703,705,708,711],{"class":537,"line":698},13,[535,700,519],{"class":541},[535,702,545],{"class":544},[535,704,692],{"class":544},[535,706,707],{"class":544}," lint",[535,709,710],{"class":551}," --dir",[535,712,713],{"class":544}," PATH\n",[535,715,717,719,721,723,726],{"class":537,"line":716},14,[535,718,519],{"class":541},[535,720,545],{"class":544},[535,722,692],{"class":544},[535,724,725],{"class":544}," show",[535,727,728],{"class":544}," ID\n",[535,730,732,734,736,738,740,743],{"class":537,"line":731},15,[535,733,519],{"class":541},[535,735,545],{"class":544},[535,737,692],{"class":544},[535,739,725],{"class":544},[535,741,742],{"class":544}," ID",[535,744,745],{"class":551}," --resolved\n",[535,747,749,751,753,755],{"class":537,"line":748},16,[535,750,519],{"class":541},[535,752,545],{"class":544},[535,754,692],{"class":544},[535,756,757],{"class":544}," library\n",[535,759,761,763,765,767,770],{"class":537,"line":760},17,[535,762,519],{"class":541},[535,764,545],{"class":544},[535,766,692],{"class":544},[535,768,769],{"class":544}," library",[535,771,728],{"class":544},[535,773,775,777,779],{"class":537,"line":774},18,[535,776,519],{"class":541},[535,778,545],{"class":544},[535,780,781],{"class":544}," harnesses\n",[535,783,785,787,789,792],{"class":537,"line":784},19,[535,786,519],{"class":541},[535,788,545],{"class":544},[535,790,791],{"class":544}," harnesses",[535,793,728],{"class":544},[535,795,797,799,801,804],{"class":537,"line":796},20,[535,798,519],{"class":541},[535,800,545],{"class":544},[535,802,803],{"class":544}," init",[535,805,806],{"class":551}," --repo\n",[535,808,810,812,814],{"class":537,"line":809},21,[535,811,519],{"class":541},[535,813,545],{"class":544},[535,815,816],{"class":544}," mcp\n",[535,818,820,822,824,827,830],{"class":537,"line":819},22,[535,821,519],{"class":541},[535,823,545],{"class":544},[535,825,826],{"class":544}," permission-hook",[535,828,829],{"class":544}," cursor",[535,831,832],{"class":551}," --fail-closed\n",[834,835,836,849],"table",{},[837,838,839],"thead",{},[840,841,842,846],"tr",{},[843,844,845],"th",{},"Command",[843,847,848],{},"Effect",[850,851,852,871,885,899,913,927,941,971,985,998,1012,1030,1042,1079,1094,1104],"tbody",{},[840,853,854,860],{},[855,856,857],"td",{},[513,858,859],{},"admin start",[855,861,862,863,865,866,524],{},"Runs the server in the foreground; the same as bare ",[513,864,519],{},". See ",[867,868,870],"a",{"href":869},"#start-the-server","Start the server",[840,872,873,878],{},[855,874,875],{},[513,876,877],{},"admin stop",[855,879,880,881,524],{},"Sends SIGTERM to the server. See ",[867,882,884],{"href":883},"#stop-the-server","Stop the server",[840,886,887,892],{},[855,888,889],{},[513,890,891],{},"admin restart",[855,893,894,895,524],{},"Stops, then starts again the same way it was running. See ",[867,896,898],{"href":897},"#restart-the-server","Restart the server",[840,900,901,906],{},[855,902,903],{},[513,904,905],{},"admin health",[855,907,908,909,524],{},"Prints the server's state and exits 1 when it is degraded, with the reasons on stdout. See ",[867,910,912],{"href":911},"#what-health-prints","What health prints",[840,914,915,920],{},[855,916,917],{},[513,918,919],{},"admin doctor",[855,921,922,923,524],{},"Runs every check in one pass. Exits 1 if any fails. See ",[867,924,926],{"href":925},"#what-doctor-checks","What doctor checks",[840,928,929,934],{},[855,930,931],{},[513,932,933],{},"admin reindex",[855,935,936,937,940],{},"Rescans documents into the search index. ",[513,938,939],{},"--repo"," limits it to one repo.",[840,942,943,948],{},[855,944,945],{},[513,946,947],{},"admin reload",[855,949,950,951,955,956,960,961,963,964,966,967,524],{},"Rereads the ",[867,952,954],{"href":953},"\u002Fconcepts\u002Fvocabulary#library","library",", the ",[867,957,959],{"href":958},"\u002Fconcepts\u002Fvocabulary#chain","chains",", ",[513,962,310],{}," and ",[513,965,326],{}," from disk, with no restart. See ",[867,968,970],{"href":969},"#reload-the-configuration","Reload the configuration",[840,972,973,978],{},[855,974,975],{},[513,976,977],{},"admin update",[855,979,980,981,524],{},"Installs the newest release. See ",[867,982,984],{"href":983},"#update-kraft","Update Kraft",[840,986,987,995],{},[855,988,989,960,992],{},[513,990,991],{},"admin install-service",[513,993,994],{},"admin uninstall-service",[855,996,997],{},"Register or remove Kraft as an OS service (a launchd agent on macOS, a systemd user unit on Linux) that restarts if it exits. Stop a running server first.",[840,999,1000,1005],{},[855,1001,1002],{},[513,1003,1004],{},"admin templates lint",[855,1006,1007,1008,524],{},"Checks every chain in the library and exits 1 on any error. See ",[867,1009,1011],{"href":1010},"#lint-the-templates","Lint the templates",[840,1013,1014,1019],{},[855,1015,1016],{},[513,1017,1018],{},"admin templates show ID",[855,1020,1021,1022,1025,1026,524],{},"One chain as written. ",[513,1023,1024],{},"--resolved"," expands its library components. See ",[867,1027,1029],{"href":1028},"#show-a-chain","Show a chain",[840,1031,1032,1037],{},[855,1033,1034],{},[513,1035,1036],{},"admin templates library [ID]",[855,1038,1039,1040,524],{},"Every library component, its kind and the chains using it. With an ID, one component. See ",[867,1041,1029],{"href":1028},[840,1043,1044,1049],{},[855,1045,1046],{},[513,1047,1048],{},"admin harnesses [ID]",[855,1050,1051,1052,1056,1057,1059,1060,1064,1065,1068,1069,1073,1074,1078],{},"Every ",[867,1053,1055],{"href":1054},"\u002Fconcepts\u002Fvocabulary#harness-profile","harness profile"," in ",[513,1058,318],{},", its ",[867,1061,1063],{"href":1062},"\u002Fconcepts\u002Fvocabulary#provider","provider",", and the library tasks and chains selecting it (a chain's own ",[513,1066,1067],{},"harness:"," on a task included), then the ",[867,1070,1072],{"href":1071},"\u002Fconcepts\u002Fvocabulary#agent-profile","agent profiles",". With an ID, one ",[867,1075,1077],{"href":1076},"\u002Fconcepts\u002Fvocabulary#harness","harness"," profile in detail.",[840,1080,1081,1086],{},[855,1082,1083],{},[513,1084,1085],{},"admin init [--repo]",[855,1087,1088,1089,1091,1092,524],{},"Registers the MCP server and skills with an agent. ",[513,1090,939],{}," installs into this repo, not your user config. See ",[867,1093,72],{"href":73},[840,1095,1096,1101],{},[855,1097,1098],{},[513,1099,1100],{},"admin mcp",[855,1102,1103],{},"Serves the MCP tools over stdio.",[840,1105,1106,1111],{},[855,1107,1108],{},[513,1109,1110],{},"admin permission-hook HARNESS",[855,1112,1113,1114,1118,1119,1122,1123,524],{},"What a Cursor or Codex ",[867,1115,1117],{"href":1116},"\u002Fconcepts\u002Fvocabulary#worker","worker","'s pre-tool hook runs. You do not run it by hand. ",[513,1120,1121],{},"--fail-closed"," denies rather than giving no opinion when Kraft cannot answer. See ",[867,1124,420],{"href":421},[1126,1127,135],"h2",{"id":1128},"run-the-server",[1130,1131,870],"h3",{"id":1132},"start-the-server",[834,1134,1135,1145],{},[837,1136,1137],{},[840,1138,1139,1142],{},[843,1140,1141],{},"Flag",[843,1143,1144],{},"What it does",[850,1146,1147,1169],{},[840,1148,1149,1157],{},[855,1150,1151,960,1154],{},[513,1152,1153],{},"--host",[513,1155,1156],{},"--port",[855,1158,1159,1160,963,1163,1166,1167,524],{},"Override ",[513,1161,1162],{},"KRAFT_HOST",[513,1164,1165],{},"KRAFT_PORT",", which override ",[513,1168,322],{},[840,1170,1171,1179],{},[855,1172,1173,960,1176],{},[513,1174,1175],{},"--detach",[513,1177,1178],{},"-d",[855,1180,1181],{},"Forks the server into its own session and returns once it is up.",[510,1183,1184],{},"Kraft refuses to start when:",[1186,1187,1188,1192],"ul",{},[1189,1190,1191],"li",{},"the address is not loopback and no password is set;",[1189,1193,1194],{},"a server is already running against the same run directory.",[510,1196,1197,1198,1201],{},"The foreground server stops on Ctrl-C. Use ",[513,1199,1200],{},"kraft admin stop"," for one you started elsewhere.",[510,1203,1204,1205,963,1207,1209,1210,1212,1213,1215,1216,1218,1219,1222,1223,1215,1226,1229,1230,1232,1233,1236],{},"The flags are not saved: other commands still dial the host and port in ",[513,1206,1162],{},[513,1208,1165],{},", or in ",[513,1211,322],{},". When ",[513,1214,1153],{}," or ",[513,1217,1156],{}," differs from that value, ",[513,1220,1221],{},"start"," prints the ",[513,1224,1225],{},"KRAFT_HOST=H",[513,1227,1228],{},"KRAFT_PORT=N"," line they need. A wildcard ",[513,1231,1153],{}," such as ",[513,1234,1235],{},"0.0.0.0"," needs none.",[510,1238,1239,1240,1242,1243,1245,1246,1249,1250,524],{},"With ",[513,1241,1175],{},", if the server exits instead, ",[513,1244,1221],{}," prints the error (such as ",[513,1247,1248],{},"RuntimeError: database schema vN is newer than code vM","), the end of that start's output, and the path of ",[513,1251,1252],{},"server.log",[1130,1254,884],{"id":1255},"stop-the-server",[510,1257,1258,1260,1261,1264,1265,1268,1269,1273],{},[513,1259,1200],{}," sends SIGTERM to the process in ",[513,1262,1263],{},"run\u002Fkraft.pid",", once it has checked that the process is this Kraft server. Stopping ends every running agent. When Kraft starts again, each of those items stops with a ",[513,1266,1267],{},"reattach:"," failure and shows as failed; it does not resume by itself. Pause running items first (see ",[867,1270,1272],{"href":1271},"\u002Fguides\u002Frun\u002Frestart-kraft#a-restart-ends-running-agents","A restart ends running agents",").",[1186,1275,1276,1283,1286],{},[1189,1277,1278,1279,1282],{},"A pidfile naming any other process is stale: ",[513,1280,1281],{},"stop"," removes it, says so, and signals nothing.",[1189,1284,1285],{},"It lists the active items first, without asking. A server that does not list them within 2 seconds is stopped anyway.",[1189,1287,1288],{},"A repo's setup command that is running is ended too, with everything it started, so it never runs beside the next server's own run of it. A server that is killed (SIGKILL) cannot end it.",[1130,1290,898],{"id":1291},"restart-the-server",[510,1293,1294,1297],{},[513,1295,1296],{},"kraft admin restart"," stops the server, then starts it again the way it was running: through the service manager if one is installed, back into the background if it was detached.",[510,1299,1300,1301,960,1303,1306,1307,1310],{},"Like ",[513,1302,1281],{},[513,1304,1305],{},"restart"," ends any running agent: pause running items first, and retry any item it stopped. It lists the active items first and, in a terminal, asks before going on. ",[513,1308,1309],{},"-y"," skips the question.",[834,1312,1313,1323],{},[837,1314,1315],{},[840,1316,1317,1320],{},[843,1318,1319],{},"When",[843,1321,1322],{},"Then",[850,1324,1325,1336,1344],{},[840,1326,1327,1330],{},[855,1328,1329],{},"The server runs attached to a terminal",[855,1331,1332,1333,1335],{},"It is stopped, with a note that only that terminal can bring it back, and ",[513,1334,1305],{}," exits 1, since no server is running after it.",[840,1337,1338,1341],{},[855,1339,1340],{},"You answer no",[855,1342,1343],{},"It exits 1 and says nothing was restarted.",[840,1345,1346,1349],{},[855,1347,1348],{},"No server is running",[855,1350,1351,1352,524],{},"It starts nothing: it says so and exits 1. Start one with ",[513,1353,523],{},[1126,1355,1357],{"id":1356},"update-and-reload","Update and reload",[1130,1359,984],{"id":1360},"update-kraft",[510,1362,1363,1366,1367,1370,1371,1374],{},[513,1364,1365],{},"kraft admin update"," installs the newest release with uv, keeping the ",[513,1368,1369],{},"vector"," extra and the Python it runs on, or runs ",[513,1372,1373],{},"brew upgrade"," if you installed with Homebrew. On a pipx or pip install, or a source checkout, it installs nothing and prints the command that updates that install.",[510,1376,1377,1378,1380,1381,1384],{},"It warns when another install of ",[513,1379,519],{}," sits ahead of this one on ",[513,1382,1383],{},"PATH",", since MCP servers and hooks run the first one.",[834,1386,1387,1395],{},[837,1388,1389],{},[840,1390,1391,1393],{},[843,1392,1141],{},[843,1394,1144],{},[850,1396,1397,1407,1420,1434],{},[840,1398,1399,1404],{},[855,1400,1401],{},[513,1402,1403],{},"--force",[855,1405,1406],{},"Installs even when current.",[840,1408,1409,1414],{},[855,1410,1411],{},[513,1412,1413],{},"--restart",[855,1415,1416,1417,1419],{},"Also restarts a running server, which ends any running agent, as ",[513,1418,1305],{}," does. It lists the active items and asks before installing anything; answering no exits 1.",[840,1421,1422,1427],{},[855,1423,1424],{},[513,1425,1426],{},"--channel CHANNEL",[855,1428,1429,1430,524],{},"Takes releases from that channel. See ",[867,1431,1433],{"href":1432},"#channels","Channels",[840,1435,1436,1440],{},[855,1437,1438],{},[513,1439,1309],{},[855,1441,1442,1443,1447,1448,1450],{},"Accepts the ",[867,1444,1446],{"href":1445},"\u002Fguides\u002Frun\u002Fupgrade-from-0-x-or-a-release-candidate#migrating-a-home-from-0x","template migration"," without asking, and skips ",[513,1449,1413],{},"'s question.",[510,1452,1453,1454,1457,1458,1461,1462,865,1464,1467],{},"A Kraft home from 0.x holds a ",[513,1455,1456],{},"registry.yaml"," and no ",[513,1459,1460],{},"library.yaml",": the server starts degraded and refuses new work until you run ",[513,1463,1365],{},[867,1465,1466],{"href":1445},"Migrating a home from 0.x"," for what the update changes.",[1469,1470,1433],"h4",{"id":1471},"channels",[510,1473,1474,1477],{},[513,1475,1476],{},"--channel"," takes one of four values:",[834,1479,1480,1491],{},[837,1481,1482],{},[840,1483,1484,1488],{},[843,1485,1486],{},[513,1487,1476],{},[843,1489,1490],{},"Takes",[850,1492,1493,1503,1513,1523],{},[840,1494,1495,1500],{},[855,1496,1497],{},[513,1498,1499],{},"stable",[855,1501,1502],{},"Final releases only. It is how an rc or beta install goes back to finals.",[840,1504,1505,1510],{},[855,1506,1507],{},[513,1508,1509],{},"rc",[855,1511,1512],{},"Release candidates and finals.",[840,1514,1515,1520],{},[855,1516,1517],{},[513,1518,1519],{},"beta",[855,1521,1522],{},"Betas, release candidates and finals.",[840,1524,1525,1530],{},[855,1526,1527],{},[513,1528,1529],{},"alpha",[855,1531,1532],{},"Anything.",[510,1534,1535,1536,1538],{},"Without ",[513,1537,1476],{},", the install follows the channel of the release it is:",[834,1540,1541,1550],{},[837,1542,1543],{},[840,1544,1545,1547],{},[843,1546,17],{},[843,1548,1549],{},"Follows",[850,1551,1552,1561,1570,1579],{},[840,1553,1554,1557],{},[855,1555,1556],{},"A release candidate",[855,1558,1559],{},[513,1560,1509],{},[840,1562,1563,1566],{},[855,1564,1565],{},"A beta",[855,1567,1568],{},[513,1569,1519],{},[840,1571,1572,1575],{},[855,1573,1574],{},"An alpha",[855,1576,1577],{},[513,1578,1529],{},[840,1580,1581,1584],{},[855,1582,1583],{},"A final release",[855,1585,1586,1588],{},[513,1587,1499],{},", which never takes a pre-release",[510,1590,1591],{},"Homebrew installs only track stable.",[1130,1593,970],{"id":1594},"reload-the-configuration",[510,1596,1597,1600,1601,963,1603,1605,1606,1215,1608,1610],{},[513,1598,1599],{},"kraft admin reload"," rereads the library, the chains, ",[513,1602,310],{},[513,1604,326],{},". A ",[513,1607,310],{},[513,1609,326],{}," that does not load is refused and the running one is kept. Reload names it and exits 1, as it does for a chain that does not resolve.",[1126,1612,912],{"id":1613},"what-health-prints",[510,1615,1616,1619,1620,1623,1624,1627,1628,1631,1632,1635,1636,1639],{},[513,1617,1618],{},"kraft admin health"," prints the server's state as ",[513,1621,1622],{},"key  value"," lines, and exits 1 unless ",[513,1625,1626],{},"status"," is ",[513,1629,1630],{},"ok",". The line after ",[513,1633,1634],{},"version"," and the lines after ",[513,1637,1638],{},"embeddings"," appear only when they apply:",[1186,1641,1642,1652,1664],{},[1189,1643,1644,1647,1648,1651],{},[513,1645,1646],{},"installed"," names the installed version with ",[513,1649,1650],{},"restart pending",", after an update the server has not restarted for. It is not degraded.",[1189,1653,1654,960,1657,963,1660,1663],{},[513,1655,1656],{},"invalid template",[513,1658,1659],{},"invalid policy",[513,1661,1662],{},"invalid intake"," name each file that does not load, with the reason.",[1189,1665,1666,960,1669,963,1672,1675],{},[513,1667,1668],{},"index error",[513,1670,1671],{},"reattached",[513,1673,1674],{},"orphaned sessions"," report the search index and the agent sessions found at startup.",[526,1677,1682],{"className":1678,"code":1680,"language":1681,"meta":531},[1679],"language-text","status         ok\nversion        2.0.0\nbind           127.0.0.1\ndocuments      214\nrepos scanned  3\nlast scan      4m ago\nembeddings     available\n","text",[513,1683,1684,1688,1692,1696,1700,1704,1708],{"__ignoreMap":531},[535,1685,1687],{"className":1686},[537],"status         ok\n",[535,1689,1691],{"className":1690},[537],"version        2.0.0\n",[535,1693,1695],{"className":1694},[537],"bind           127.0.0.1\n",[535,1697,1699],{"className":1698},[537],"documents      214\n",[535,1701,1703],{"className":1702},[537],"repos scanned  3\n",[535,1705,1707],{"className":1706},[537],"last scan      4m ago\n",[535,1709,1711],{"className":1710},[537],"embeddings     available\n",[510,1713,1714,1222,1717,1723],{},[513,1715,1716],{},"--json",[867,1718,1720],{"href":1719},"\u002Freference\u002Fhttp-api#get-apihealth",[513,1721,1722],{},"GET \u002Fapi\u002Fhealth"," answer.",[1126,1725,926],{"id":1726},"what-doctor-checks",[510,1728,1729,1732,1733,1735,1736,1738],{},[513,1730,1731],{},"kraft admin doctor"," runs every check in one pass, one line per check, and exits 1 if any fails. ",[513,1734,1716],{}," prints the rows. ",[513,1737,1618],{}," checks only the server.",[510,1740,1741,1742,960,1744,960,1747,1215,1750,1753,1754,1757],{},"Each line starts with ",[513,1743,1630],{},[513,1745,1746],{},"warn",[513,1748,1749],{},"FAIL",[513,1751,1752],{},"skip",", then the check's name and what it found. A row about one repository carries its name, such as ",[513,1755,1756],{},"setup my-repo",". The last line counts them.",[526,1759,1762],{"className":1760,"code":1761,"language":1681,"meta":531},[1679],"ok    server            http:\u002F\u002F127.0.0.1:8765\nok    health            ok\n...\nok    restart           the server (pid 4242) runs the installed version (2.0.0)\nok    config            \u002FUsers\u002Fyou\u002F.kraft\u002Fconfig\nok    access.yaml       parses\n...\nok    spa bundle        \u002Fusr\u002Flib\u002Fkraft\u002F_bundled\u002Fweb\n...\nok    repo app          \u002FUsers\u002Fyou\u002Fcode\u002Fapp\nok    forge app         github · gh\nok    worktrees         \u002FUsers\u002Fyou\u002F.kraft\u002Frun\u002Fworktrees\n\nall 24 checks passed\n",[513,1763,1764,1768,1772,1776,1780,1784,1788,1791,1795,1798,1802,1806,1810,1817],{"__ignoreMap":531},[535,1765,1767],{"className":1766},[537],"ok    server            http:\u002F\u002F127.0.0.1:8765\n",[535,1769,1771],{"className":1770},[537],"ok    health            ok\n",[535,1773,1775],{"className":1774},[537],"...\n",[535,1777,1779],{"className":1778},[537],"ok    restart           the server (pid 4242) runs the installed version (2.0.0)\n",[535,1781,1783],{"className":1782},[537],"ok    config            \u002FUsers\u002Fyou\u002F.kraft\u002Fconfig\n",[535,1785,1787],{"className":1786},[537],"ok    access.yaml       parses\n",[535,1789,1775],{"className":1790},[537],[535,1792,1794],{"className":1793},[537],"ok    spa bundle        \u002Fusr\u002Flib\u002Fkraft\u002F_bundled\u002Fweb\n",[535,1796,1775],{"className":1797},[537],[535,1799,1801],{"className":1800},[537],"ok    repo app          \u002FUsers\u002Fyou\u002Fcode\u002Fapp\n",[535,1803,1805],{"className":1804},[537],"ok    forge app         github · gh\n",[535,1807,1809],{"className":1808},[537],"ok    worktrees         \u002FUsers\u002Fyou\u002F.kraft\u002Frun\u002Fworktrees\n",[535,1811,1813],{"className":1812},[537],[535,1814,1816],{"emptyLinePlaceholder":1815},true,"\n",[535,1818,1820],{"className":1819},[537],"all 24 checks passed\n",[510,1822,1823,1824,1827,1828,1831,1832,1834,1835,1838,1839,1842],{},"The excerpt cuts the rows marked ",[513,1825,1826],{},"...",". The count is for a running server, the shipped chains with ",[513,1829,1830],{},"claude"," on ",[513,1833,1383],{},", and one connected repo, ",[513,1836,1837],{},"app",", with its commands declared. It grows with each connected repo and each harness profile the chains select. With no repo connected, a ",[513,1840,1841],{},"repos  none connected"," row stands in for the repo rows.",[510,1844,1845,1848],{},[867,1846,207],{"href":1847},"\u002Ftroubleshooting\u002Fdoctor-failures#doctor-rows"," lists every row with its fix.",[1126,1850,1852],{"id":1851},"inspect-templates-and-harnesses","Inspect templates and harnesses",[1130,1854,1011],{"id":1855},"lint-the-templates",[510,1857,1858,1861,1862,1864,1865,1868,1869,524],{},[513,1859,1860],{},"kraft admin templates lint"," checks every chain in the library, including that ",[513,1863,318],{}," can launch each agent task (a task's ",[513,1866,1867],{},"profile:"," naming an agent profile with no model for its harness's provider is an error). It exits 1 on any error, printing each as ",[513,1870,1871],{},"file:line:column: message",[510,1873,1874,1877,1878,524],{},[513,1875,1876],{},"--dir PATH"," checks that directory in-process, with no server and no ",[513,1879,1880],{},"$KRAFT_HOME",[1130,1882,1029],{"id":1883},"show-a-chain",[510,1885,1886,1889,1890,1892,1893,1895],{},[513,1887,1888],{},"kraft admin templates show ID"," asks the running server. A chain file you just added shows only after ",[513,1891,947],{},", and ",[513,1894,1024],{}," expands the version the server last loaded.",[510,1897,1898,1901,1902,1905],{},[513,1899,1900],{},"kraft admin templates library ID"," takes a component id such as ",[513,1903,1904],{},"tasks.implementer",", or a unique bare name. A bare name two sections share is refused with each full id. It prints the component's definition, its users and its lint issues.",[1126,1907,1909],{"id":1908},"related","Related",[1186,1911,1912,1920,1929,1939],{},[1189,1913,1914,1916,1917,1919],{},[867,1915,207],{"href":208},": the fix for each row ",[513,1918,919],{}," can print.",[1189,1921,1922,1924,1925,1928],{},[867,1923,160],{"href":161},": ",[513,1926,1927],{},"install-service",", and keeping the server up across restarts.",[1189,1930,1931,1933,1934,963,1936,1938],{},[867,1932,148],{"href":149},": what ",[513,1935,1281],{},[513,1937,1305],{}," do to a running agent, and how to avoid it.",[1189,1940,1941,1943,1944,1946],{},[867,1942,164],{"href":165},": when to run ",[513,1945,977],{},", and how to pin a version.",[1948,1949,1950],"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 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}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":531,"searchDepth":558,"depth":558,"links":1952},[1953,1958,1962,1963,1964,1968],{"id":1128,"depth":558,"text":135,"children":1954},[1955,1956,1957],{"id":1132,"depth":570,"text":870},{"id":1255,"depth":570,"text":884},{"id":1291,"depth":570,"text":898},{"id":1356,"depth":558,"text":1357,"children":1959},[1960,1961],{"id":1360,"depth":570,"text":984},{"id":1594,"depth":570,"text":970},{"id":1613,"depth":558,"text":912},{"id":1726,"depth":558,"text":926},{"id":1851,"depth":558,"text":1852,"children":1965},[1966,1967],{"id":1855,"depth":570,"text":1011},{"id":1883,"depth":570,"text":1029},{"id":1908,"depth":558,"text":1909},"The kraft admin verbs: start, stop, check, update, and configure this machine's server.","md",null,{},{"title":278,"description":1969},"8Ru2OOy_R98oxfY_dvcTj6ZPtwggKvj-HBFmfgM6QVM",[1976,1978],{"title":274,"path":275,"stem":276,"description":1977,"children":-1},"The kraft repo verbs: list, connect, and disconnect repositories, and reach their worktrees.",{"title":282,"path":283,"stem":284,"description":1979,"children":-1},"The seven statuses a work item can hold, what moves it between them, and the status the board shows for each.",1791801255615]