[{"data":1,"prerenderedAt":1807},["ShallowReactive",2],{"navigation_docs":3,"-reference-configuration-repo-libraries":520,"-reference-configuration-repo-libraries-surround":1802},[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":388,"body":522,"description":1795,"extension":1796,"links":1797,"meta":1798,"navigation":1799,"path":389,"seo":1800,"stem":390,"__hash__":1801},"docs\u002F5.reference\u002F03.configuration\u002F13.repo-libraries.md",{"type":523,"value":524,"toc":1780},"minimark",[525,549,560,565,605,611,704,713,720,799,803,814,889,892,908,912,933,937,940,963,987,991,994,1032,1045,1052,1056,1061,1083,1111,1114,1117,1133,1161,1164,1200,1214,1282,1285,1288,1351,1358,1374,1383,1387,1390,1411,1422,1482,1488,1505,1618,1696,1702,1706,1717,1720,1724,1742,1754,1758,1776],[526,527,528,529,533,534,538,539,544,545,548],"p",{},"A ",[530,531,532],"strong",{},"repo library"," is the chains, library components, skills and agent profiles a connected repository keeps in ",[535,536,537],"code",{},".kraft\u002F"," on its default branch. Every instance that connects the repository is offered them. There is no ",[540,541,543],"a",{"href":542},"\u002Fconcepts\u002Fvocabulary#collection","collection"," to add and no add-on to install, and the repository's own ",[535,546,547],{},"id"," is the namespace.",[526,550,551,552,555,556,559],{},"A repo library holds what a ",[540,553,554],{"href":385},"Kraft add-on"," holds, under the same limits, in a lighter shape: no manifest and one library per repository. ",[540,557,114],{"href":558},"\u002Fguides\u002Fcustomize\u002Fshare-chains-with-addons#or-share-from-the-repository-itself"," walks through it.",[561,562,564],"h2",{"id":563},"the-layout","The layout",[566,567,573],"pre",{"className":568,"code":570,"language":571,"meta":572},[569],"language-text","my-repo\u002F\n  .kraft\u002F\n    library.yaml\n    profiles.yaml\n    chains\u002Fdefault.yaml\n    chains\u002Fhotfix.yaml\n    skills\u002Frelease-notes\u002FSKILL.md\n","text","",[535,574,575,581,585,589,593,597,601],{"__ignoreMap":572},[576,577,580],"span",{"className":578},[579],"line","my-repo\u002F\n",[576,582,584],{"className":583},[579],"  .kraft\u002F\n",[576,586,588],{"className":587},[579],"    library.yaml\n",[576,590,592],{"className":591},[579],"    profiles.yaml\n",[576,594,596],{"className":595},[579],"    chains\u002Fdefault.yaml\n",[576,598,600],{"className":599},[579],"    chains\u002Fhotfix.yaml\n",[576,602,604],{"className":603},[579],"    skills\u002Frelease-notes\u002FSKILL.md\n",[526,606,607,608,610],{},"These four things sit directly in ",[535,609,537],{},", each optional:",[612,613,614,627],"table",{},[615,616,617],"thead",{},[618,619,620,624],"tr",{},[621,622,623],"th",{},"Path",[621,625,626],{},"Holds",[628,629,630,660,677,694],"tbody",{},[618,631,632,638],{},[633,634,635],"td",{},[535,636,637],{},"library.yaml",[633,639,640,641,644,645,644,648,651,652,655,656,659],{},"The ",[535,642,643],{},"tasks",", ",[535,646,647],{},"steps",[535,649,650],{},"nodes"," and ",[535,653,654],{},"steering"," sections, as in ",[540,657,658],{"href":323},"the local file",".",[618,661,662,667],{},[633,663,664],{},[535,665,666],{},"profiles.yaml",[633,668,528,669,672,673,659],{},[535,670,671],{},"profiles:"," section of ",[540,674,676],{"href":675},"\u002Freference\u002Fharnesses\u002Fagent-profiles#define-an-agent-profile","agent profiles",[618,678,679,684],{},[633,680,681],{},[535,682,683],{},"chains\u002F\u003Cname>.yaml",[633,685,686,687,689,690,693],{},"One chain per file. The chain is named by its ",[535,688,547],{},", or by ",[535,691,692],{},"\u003Cname>"," when it has none.",[618,695,696,701],{},[633,697,698],{},[535,699,700],{},"skills\u002F\u003Cname>\u002FSKILL.md",[633,702,703],{},"One method per directory.",[526,705,528,706,708,709,712],{},[535,707,537],{}," with none of them is not a repo library. A repository that only holds ",[535,710,711],{},".kraft\u002Fcollection.json"," is a collection and is unaffected, and one repository may be both.",[526,714,715,716,719],{},"An add-on's ",[535,717,718],{},"addon.json"," is derived, never written:",[612,721,722,732],{},[615,723,724],{},[618,725,726,729],{},[621,727,728],{},"Add-on field",[621,730,731],{},"Repo library",[628,733,734,751,761,775,789],{},[618,735,736,742],{},[633,737,738,741],{},[535,739,740],{},"name",", namespace",[633,743,744,745,747,748,750],{},"The repository's ",[535,746,547],{}," in ",[535,749,300],{},". There is no alias.",[618,752,753,758],{},[633,754,755],{},[535,756,757],{},"version",[633,759,760],{},"The first 12 hex digits of the digest, wherever a version is shown. A change is a different digest.",[618,762,763,768],{},[633,764,765],{},[535,766,767],{},"requires.harnesses",[633,769,770,771,774],{},"Every ",[535,772,773],{},"harness:"," its tasks and agent profile fallbacks name.",[618,776,777,782],{},[633,778,779],{},[535,780,781],{},"requires.profiles",[633,783,784,785,788],{},"Every bare ",[535,786,787],{},"profile:"," its tasks name.",[618,790,791,796],{},[633,792,793],{},[535,794,795],{},"requires.kraft",[633,797,798],{},"None. A file this Kraft cannot read fails the check.",[561,800,802],{"id":801},"names","Names",[526,804,805,806,809,810,813],{},"Outside the files, everything is ",[535,807,808],{},"\u003Crepo-id>:\u003Cname>",", such as ",[535,811,812],{},"my-repo:hotfix",". The repository id differs between machines, so no file writes it. Inside the files, references resolve as in an add-on:",[612,815,816,829],{},[615,817,818],{},[618,819,820,823,826],{},[621,821,822],{},"Key",[621,824,825],{},"A bare name means",[621,827,828],{},"Qualified",[628,830,831,859,876],{},[618,832,833,843,846],{},[633,834,835,644,838,644,840],{},[535,836,837],{},"extends",[535,839,654],{},[535,841,842],{},"skill",[633,844,845],{},"The library's own declaration.",[633,847,848,851,852,854,855,858],{},[535,849,850],{},"library:\u003Cname>"," only. A ",[535,853,842],{}," may also name ",[535,856,857],{},"kraft:"," or another tool's plugin.",[618,860,861,866,869],{},[633,862,863],{},[535,864,865],{},"profile",[633,867,868],{},"The instance's agent profile.",[633,870,871,873,874,659],{},[535,872,850],{},", for a profile in its ",[535,875,666],{},[618,877,878,883,886],{},[633,879,880],{},[535,881,882],{},"harness",[633,884,885],{},"The instance's harness profile.",[633,887,888],{},"Never qualified.",[526,890,891],{},"Any other qualifier is refused, the repository's own id included. A repo id counts as another namespace when an add-on or another repo library is checked.",[526,893,894,895,898,899,901,902,904,905,907],{},"Accepting is refused when the id is ",[535,896,897],{},"kraft",", is an installed add-on's namespace, or is longer than 64 characters. The message says to set another ",[535,900,547],{}," on the entry in ",[535,903,300],{},". Accepting writes an ",[535,906,547],{}," when the entry has none.",[561,909,911],{"id":910},"what-it-may-hold","What it may hold",[526,913,914,915,919,920,923,924,927,928,932],{},"Exactly what an ",[540,916,918],{"href":917},"\u002Freference\u002Fconfiguration\u002Faddons#what-an-add-on-may-set","add-on may hold",": limits and never permissions, no ",[535,921,922],{},"subprocess"," task, no ",[535,925,926],{},"harnesses"," section, no reference into an add-on or another repo library, and the same ",[540,929,931],{"href":930},"\u002Freference\u002Fconfiguration\u002Faddons#size-and-content-limits","size and content limits",". Harness profiles stay per machine.",[561,934,936],{"id":935},"where-it-is-read-from","Where it is read from",[526,938,939],{},"The server asks the remote which commit to trust, then reads that commit's files from the connected checkout's object store:",[941,942,943,950,957],"ol",{},[944,945,946,949],"li",{},[535,947,948],{},"git ls-remote --symref origin HEAD"," gives the default branch's name and commit. It runs in the checkout, with its git config and credentials.",[944,951,952,953,956],{},"When the checkout lacks that commit, ",[535,954,955],{},"git fetch origin \u003Ccommit>"," fetches it.",[944,958,959,960,962],{},"Kraft reads ",[535,961,537],{}," from that commit as blobs.",[964,965,966,969,972,975,982],"ul",{},[944,967,968],{},"The checkout's branches, remote-tracking refs, working tree and worktrees are never read, so moving one changes nothing.",[944,970,971],{},"The server does this, never the CLI, so a check works at connect exactly when it works later.",[944,973,974],{},"A checkout that lacks the blobs, a partial clone, is refused with a message naming the commit. Nothing is fetched lazily.",[944,976,977,978,981],{},"A repository with no ",[535,979,980],{},"origin"," has no repo library.",[944,983,640,984,986],{},[535,985,980],{}," URL is recorded with credentials removed.",[561,988,990],{"id":989},"accepting","Accepting",[526,992,993],{},"A repo library is not loaded until a person accepts it.",[964,995,996,1002,1019,1025],{},[944,997,998,1001],{},[535,999,1000],{},"kraft repo connect",", run in a terminal, prints the review and asks whether to take it.",[944,1003,1004,1007,1008,1011,1012,1015,1016,659],{},[535,1005,1006],{},"-y",", a connect with no terminal, ",[535,1009,1010],{},"--json",", the web UI and an agent's ",[535,1013,1014],{},"ensure_repo"," never ask. The library waits for ",[535,1017,1018],{},"kraft repo library",[944,1020,1021,1022,659],{},"A library that was never accepted is not loaded, and is no fault: health stays ",[535,1023,1024],{},"ok",[944,1026,1027,1028,659],{},"After a first load is accepted at a prompt, Kraft asks once whether to take later text changes without asking, and says what that trusts. See ",[540,1029,1031],{"href":1030},"#automatic-updates","Automatic updates",[526,1033,1034,1035,1038,1039,1044],{},"The first review shows everything as new, names the remote URL and commit, and says so when the library's ",[535,1036,1037],{},"default"," chain becomes the chain new items in this repo run. ",[540,1040,1042],{"href":1041},"\u002Freference\u002Fcli\u002Frepo#take-a-repos-library",[535,1043,1018],{}," shows a review and takes it.",[526,1046,1047,1048,1051],{},"An accept is refused with a ",[535,1049,1050],{},"409"," and writes nothing when the remote or the lock changed since the review a person read.",[561,1053,1055],{"id":1054},"changes","Changes",[526,1057,1058,1059,659],{},"The server asks the remote about every accepted library after each start and once a day. A library nobody accepted is not asked about, except when a person runs ",[535,1060,1018],{},[964,1062,1063,1077,1080],{},[944,1064,1065,1066,1069,1070,1073,1074,1076],{},"A change is reported as ",[530,1067,1068],{},"waiting",", and nothing is applied, unless the entry opted in to ",[540,1071,1072],{"href":1030},"automatic updates",". ",[535,1075,1018],{}," shows its review and takes it.",[944,1078,1079],{},"The accepted version keeps serving, and health is not degraded.",[944,1081,1082],{},"A change is refused, and the accepted version kept, for the reasons an add-on update is: a broken content rule, a harness or profile the instance lacks, a chain that does not resolve, or a chain or reference of yours that would stop resolving.",[526,1084,1085,1086,1089,1090,1093,1094,1099,1100,1103,1104,1107,1108,659],{},"Each outcome is kept in ",[535,1087,1088],{},"run\u002Faddons\u002Fstatus.json"," beside the add-ons'. The ",[535,1091,1092],{},"repo libraries"," row of ",[540,1095,1096],{"href":212},[535,1097,1098],{},"kraft admin doctor"," names a waiting or held change and a failed check. A library that was accepted and no longer loads is listed by ",[535,1101,1102],{},"GET \u002Fapi\u002Fhealth"," under ",[535,1105,1106],{},"invalid_templates"," as ",[535,1109,1110],{},"repo library \u003Cid>",[526,1112,1113],{},"One repo library or add-on change runs at a time.",[561,1115,1031],{"id":1116},"automatic-updates",[526,1118,1119,1120,1124,1125,1128,1129,1132],{},"A repository's entry in ",[540,1121,1122],{"href":301},[535,1123,300],{}," can set ",[535,1126,1127],{},"library_auto_update: true",", default ",[535,1130,1131],{},"false",", to take changes to its accepted repo library without a person when nothing but text changed. It is set in three ways:",[964,1134,1135,1144,1150],{},[944,1136,1137,1138,1140,1141,1143],{},"by answering yes to the question ",[535,1139,1000],{}," or ",[535,1142,1018],{}," asks once, in a terminal, after a first load is accepted;",[944,1145,1146,1147,1149],{},"by editing ",[535,1148,300],{},";",[944,1151,1152,1153,1156,1157,1160],{},"with ",[535,1154,1155],{},"PATCH \u002Fapi\u002Frepos",", which marks the entry ",[535,1158,1159],{},"managed: true"," as every such save does.",[526,1162,1163],{},"A change is applied unattended only when all three rules hold:",[941,1165,1166,1169,1185],{},[944,1167,1168],{},"The review has no Reach line.",[944,1170,1171,1172,644,1175,644,1178,1140,1181,1184],{},"No chain differs other than in its ",[535,1173,1174],{},"prompt",[535,1176,1177],{},"message",[535,1179,1180],{},"description",[535,1182,1183],{},"icon",", and no chain is added or removed. A chain here is every one that resolves through the library, the library's own and yours.",[944,1186,1187,1188,1191,1192,1195,1196,1199],{},"No changed skill or steering text is one that a gate's ",[535,1189,1190],{},"auto_review",", a fix loop's ",[535,1193,1194],{},"judge"," or an ",[535,1197,1198],{},"escalation"," names.",[526,1201,1202,1203,1206,1207,1140,1210,1213],{},"A change that fails rule 2 or 3 is ",[530,1204,1205],{},"held"," with the reason, such as ",[535,1208,1209],{},"chain my-repo:ship changes more than text",[535,1211,1212],{},"skill my-repo:verdict is read by a task that decides a gate",". A person may still take it: those reasons are not Reach lines, and the review reads as it did.",[612,1215,1216,1226],{},[615,1217,1218],{},[618,1219,1220,1223],{},[621,1221,1222],{},"Outcome",[621,1224,1225],{},"Meaning",[628,1227,1228,1238,1247,1257,1268],{},[618,1229,1230,1235],{},[633,1231,1232],{},[535,1233,1234],{},"up to date",[633,1236,1237],{},"The remote's files are the accepted ones.",[618,1239,1240,1244],{},[633,1241,1242],{},[535,1243,1068],{},[633,1245,1246],{},"A change, or the remote no longer has a library, and the entry has not opted in. Nothing is applied.",[618,1248,1249,1254],{},[633,1250,1251],{},[535,1252,1253],{},"applied",[633,1255,1256],{},"The entry opted in and the change passed the three rules. It is loaded, and the server logs its review.",[618,1258,1259,1263],{},[633,1260,1261],{},[535,1262,1205],{},[633,1264,1265,1266,659],{},"The entry opted in and a Reach line or a rule above stopped the change. The message says why. Run ",[535,1267,1018],{},[618,1269,1270,1275],{},[633,1271,1272],{},[535,1273,1274],{},"failed",[633,1276,1277,1278,1281],{},"The check could not be made, the candidate was refused, or the lock was busy (",[535,1279,1280],{},"kind: busy","). The accepted version keeps loading.",[526,1283,1284],{},"The key is read again just before a change is applied, so clearing it during a slow check is honoured.",[526,1286,1287],{},"A repo library adds four Reach lines to a change of an already accepted one. Each holds an unattended apply:",[612,1289,1290,1300],{},[615,1291,1292],{},[618,1293,1294,1297],{},[621,1295,1296],{},"Line",[621,1298,1299],{},"When",[628,1301,1302,1312,1322,1341],{},[618,1303,1304,1309],{},[633,1305,1306],{},[535,1307,1308],{},"origin's URL changed: \u003Cwas> -> \u003Cnow>",[633,1310,1311],{},"The remote's URL is not the one that was accepted.",[618,1313,1314,1319],{},[633,1315,1316],{},[535,1317,1318],{},"the default branch changed: \u003Cwas> -> \u003Cnow>",[633,1320,1321],{},"The remote's default branch is not the one that was accepted.",[618,1323,1324,1329],{},[633,1325,1326],{},[535,1327,1328],{},"becomes the chain new items in this repo run: \u003Cid>:default",[633,1330,1331,1332,1334,1335,1338,1339,659],{},"The change adds a ",[535,1333,1037],{}," chain, and the entry's ",[535,1336,1337],{},"default_chain"," is unset or ",[535,1340,1037],{},[618,1342,1343,1348],{},[633,1344,1345],{},[535,1346,1347],{},"new items in this repo go back to the instance's default chain",[633,1349,1350],{},"The change removes it.",[526,1352,1353,1354,1357],{},"Two things differ from ",[540,1355,1356],{"href":385},"add-on auto-update",":",[964,1359,1360,1366],{},[944,1361,1362,1365],{},[530,1363,1364],{},"A repo library has no version."," Every merge to the default branch that changes the files is a candidate, which rule 2 is there to make safe.",[944,1367,1368,1373],{},[530,1369,1370,1371],{},"A candidate whose files are the accepted ones is ",[535,1372,1234],{}," even from a moved URL or branch, and the lock keeps the old ones. The next change is then held on the URL or branch line until a person takes it, which rewrites the lock.",[526,1375,1376,1377,1379,1380,659],{},"A first load and a removed library always wait for a person. A remote that no longer has a library is reported ",[535,1378,1068],{}," and never dropped. Opting in trusts whoever can merge to the default branch with what the repository's agents are told: see ",[540,1381,493],{"href":1382},"\u002Fproject\u002Fsecurity#repo-libraries",[561,1384,1386],{"id":1385},"the-default-chain","The default chain",[526,1388,1389],{},"An item filed with no chain runs, in order:",[941,1391,1392,1400,1406],{},[944,1393,1394,1395,1397,1398,1149],{},"the ",[535,1396,1337],{}," of the repository's entry, when it is set and is not ",[535,1399,1037],{},[944,1401,1402,1405],{},[535,1403,1404],{},"\u003Crepo-id>:default",", when the repository's library is loaded and has that chain;",[944,1407,1408,1409,659],{},"the instance's ",[535,1410,1037],{},[526,1412,1413,1415,1416,1418,1419,1421],{},[535,1414,1037],{}," counts as unset because connecting through the API writes it into every entry. To keep the instance's own chain after accepting a library with a ",[535,1417,1037],{}," chain, name another chain in ",[535,1420,1337],{},", or decline the library.",[612,1423,1424,1434],{},[615,1425,1426],{},[618,1427,1428,1431],{},[621,1429,1430],{},"Caller",[621,1432,1433],{},"Behaviour",[628,1435,1436,1453,1463,1474],{},[618,1437,1438,1450],{},[633,1439,1440,644,1443,644,1446,1449],{},[535,1441,1442],{},"kraft item create",[535,1444,1445],{},"POST \u002Fapi\u002Fwork-items",[535,1447,1448],{},"POST \u002Fapi\u002Ftriggers",", auto-intake",[633,1451,1452],{},"Follow the order above.",[618,1454,1455,1460],{},[633,1456,1457,1458],{},"A cron schedule in ",[535,1459,334],{},[633,1461,1462],{},"Unchanged: it names its own chain.",[618,1464,1465,1468],{},[633,1466,1467],{},"Duplicating an item",[633,1469,1470,1471,1473],{},"The copy runs the chain the original ran. An item that ran the instance's ",[535,1472,1037],{}," stays on it.",[618,1475,1476,1479],{},[633,1477,1478],{},"Settings drafts",[633,1480,1481],{},"Show and count the chain step 2 would pick.",[561,1483,1485],{"id":1484},"repo-librarieslock",[535,1486,1487],{},"repo-libraries.lock",[526,1489,1490,1493,1494,1497,1498,1500,1501,1504],{},[535,1491,1492],{},"config\u002Frepo-libraries.lock"," records the accepted version of each repo library, keyed by repository id. ",[535,1495,1496],{},"config\u002Faddons.lock"," is not touched. Only ",[535,1499,1018],{}," and an ",[540,1502,1503],{"href":1030},"automatic update"," write it.",[566,1506,1510],{"className":1507,"code":1508,"filename":1492,"language":1509,"meta":572,"style":572},"language-yaml shiki shiki-themes github-light-high-contrast github-light-high-contrast github-dark-high-contrast","# Written by `kraft repo library`. Do not edit.\nlock_version: 1\nrepos:\n  my-repo:\n    git: https:\u002F\u002Fgithub.com\u002Facme\u002Fmy-repo.git\n    branch: main\n    commit: f4a11422cc8377a6ae61353897431dafa72b8ef5\n    tree: de1b745c4020ff2d468c14451da2f28a5fb56207\n    digest: sha256:f915f6266d319e9c0bc2bb2483683d74f307839138258901919e7d071fd37da4\n    updated_at: '2026-10-11T13:23:58.690123Z'\n","yaml",[535,1511,1512,1519,1534,1543,1551,1563,1574,1585,1596,1607],{"__ignoreMap":572},[576,1513,1515],{"class":579,"line":1514},1,[576,1516,1518],{"class":1517},"sq92B","# Written by `kraft repo library`. Do not edit.\n",[576,1520,1522,1526,1530],{"class":579,"line":1521},2,[576,1523,1525],{"class":1524},"sb7M8","lock_version",[576,1527,1529],{"class":1528},"s7iLA",": ",[576,1531,1533],{"class":1532},"ssYy9","1\n",[576,1535,1537,1540],{"class":579,"line":1536},3,[576,1538,1539],{"class":1524},"repos",[576,1541,1542],{"class":1528},":\n",[576,1544,1546,1549],{"class":579,"line":1545},4,[576,1547,1548],{"class":1524},"  my-repo",[576,1550,1542],{"class":1528},[576,1552,1554,1557,1559],{"class":579,"line":1553},5,[576,1555,1556],{"class":1524},"    git",[576,1558,1529],{"class":1528},[576,1560,1562],{"class":1561},"semJd","https:\u002F\u002Fgithub.com\u002Facme\u002Fmy-repo.git\n",[576,1564,1566,1569,1571],{"class":579,"line":1565},6,[576,1567,1568],{"class":1524},"    branch",[576,1570,1529],{"class":1528},[576,1572,1573],{"class":1561},"main\n",[576,1575,1577,1580,1582],{"class":579,"line":1576},7,[576,1578,1579],{"class":1524},"    commit",[576,1581,1529],{"class":1528},[576,1583,1584],{"class":1561},"f4a11422cc8377a6ae61353897431dafa72b8ef5\n",[576,1586,1588,1591,1593],{"class":579,"line":1587},8,[576,1589,1590],{"class":1524},"    tree",[576,1592,1529],{"class":1528},[576,1594,1595],{"class":1561},"de1b745c4020ff2d468c14451da2f28a5fb56207\n",[576,1597,1599,1602,1604],{"class":579,"line":1598},9,[576,1600,1601],{"class":1524},"    digest",[576,1603,1529],{"class":1528},[576,1605,1606],{"class":1561},"sha256:f915f6266d319e9c0bc2bb2483683d74f307839138258901919e7d071fd37da4\n",[576,1608,1610,1613,1615],{"class":579,"line":1609},10,[576,1611,1612],{"class":1524},"    updated_at",[576,1614,1529],{"class":1528},[576,1616,1617],{"class":1561},"'2026-10-11T13:23:58.690123Z'\n",[612,1619,1620,1629],{},[615,1621,1622],{},[618,1623,1624,1627],{},[621,1625,1626],{},"Field",[621,1628,1225],{},[628,1630,1631,1643,1653,1663,1676,1686],{},[618,1632,1633,1638],{},[633,1634,1635],{},[535,1636,1637],{},"git",[633,1639,1640,1642],{},[535,1641,980],{},"'s URL when it was accepted, with credentials removed.",[618,1644,1645,1650],{},[633,1646,1647],{},[535,1648,1649],{},"branch",[633,1651,1652],{},"The remote's default branch then.",[618,1654,1655,1660],{},[633,1656,1657],{},[535,1658,1659],{},"commit",[633,1661,1662],{},"The commit of that branch that was read.",[618,1664,1665,1670],{},[633,1666,1667],{},[535,1668,1669],{},"tree",[633,1671,1672,1673,1675],{},"The git tree of ",[535,1674,537],{}," in that commit.",[618,1677,1678,1683],{},[633,1679,1680],{},[535,1681,1682],{},"digest",[633,1684,1685],{},"The digest of the library's files, derived manifest included.",[618,1687,1688,1693],{},[633,1689,1690],{},[535,1691,1692],{},"updated_at",[633,1694,1695],{},"When the entry was written.",[526,1697,1698,1699,1701],{},"An entry whose repository id is no longer in ",[535,1700,300],{}," is not loaded and is no fault. The next accept or disconnect drops it.",[561,1703,1705],{"id":1704},"work-items-restore-and-the-store","Work items, restore and the store",[526,1707,1708,1709,1712,1713,1716],{},"A work item records the repo library its chain resolved through as it does an add-on: id (",[535,1710,1711],{},"library@repo:\u003Crepo-id>","), commit, tree, source (",[535,1714,1715],{},".\u002F.kraft",") and digest. It reads that version's skills and agent profiles until it ends.",[526,1718,1719],{},"A missing store is restored by fetching the commit into the connected checkout and extracting again. The files are kept only if their digest matches. A repository with open items cannot be disconnected, so the checkout is there. When the commit is gone from the remote, the item stops as one with an unrestorable add-on does. The extracted files sit in the content-addressed store add-ons use.",[561,1721,1723],{"id":1722},"disconnecting","Disconnecting",[526,1725,1726,1729,1730,1732,1733,747,1736,1738,1739,1741],{},[535,1727,1728],{},"kraft repo disconnect"," drops the lock entry. It is refused while local configuration names the namespace, and lists each reference: a ",[535,1731,1337],{}," of another repository, a ",[535,1734,1735],{},"chain",[535,1737,334],{},", or an ",[535,1740,837],{}," in your own chains. Running items finish on their pinned version.",[526,1743,1744,1745,1747,1748,1750,1751,659],{},"Saving a ",[535,1746,300],{}," that removes or renames the ",[535,1749,547],{}," of an accepted library is reported before it is applied: ",[535,1752,1753],{},"would leave repo library my-repo out: repository id 'my-repo' is no longer in repos.yaml",[561,1755,1757],{"id":1756},"related","Related",[964,1759,1760,1765,1771],{},[944,1761,1762,1764],{},[540,1763,384],{"href":385},": the same content, published through a collection.",[944,1766,1767,1529,1769,659],{},[540,1768,282],{"href":283},[535,1770,1018],{},[944,1772,1773,1775],{},[540,1774,493],{"href":1382},": what accepting trusts.",[1777,1778,1779],"style",{},"html pre.shiki code .sq92B, html code.shiki .sq92B{--shiki-light:#66707B;--shiki-default:#66707B;--shiki-dark:#BDC4CC}html pre.shiki code .sb7M8, html code.shiki .sb7M8{--shiki-light:#024C1A;--shiki-default:#024C1A;--shiki-dark:#72F088}html pre.shiki code .s7iLA, html code.shiki .s7iLA{--shiki-light:#0E1116;--shiki-default:#0E1116;--shiki-dark:#F0F3F6}html pre.shiki code .ssYy9, html code.shiki .ssYy9{--shiki-light:#023B95;--shiki-default:#023B95;--shiki-dark:#91CBFF}html pre.shiki code .semJd, html code.shiki .semJd{--shiki-light:#032563;--shiki-default:#032563;--shiki-dark:#ADDCFF}html .light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html.light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html .default .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html.dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}",{"title":572,"searchDepth":1521,"depth":1521,"links":1781},[1782,1783,1784,1785,1786,1787,1788,1789,1790,1792,1793,1794],{"id":563,"depth":1521,"text":564},{"id":801,"depth":1521,"text":802},{"id":910,"depth":1521,"text":911},{"id":935,"depth":1521,"text":936},{"id":989,"depth":1521,"text":990},{"id":1054,"depth":1521,"text":1055},{"id":1116,"depth":1521,"text":1031},{"id":1385,"depth":1521,"text":1386},{"id":1484,"depth":1521,"text":1791},"repo-​libraries.​lock",{"id":1704,"depth":1521,"text":1705},{"id":1722,"depth":1521,"text":1723},{"id":1756,"depth":1521,"text":1757},"A connected repository's .kraft\u002F folder as a library: its layout, names, where Kraft reads it from, how a person accepts it, automatic updates, the default chain, and repo-libraries.lock.","md",null,{},true,{"title":388,"description":1795},"rOtJUy7XG2YhYHSi0jy0avdVIW4YKjWHxWSjvmbWNGY",[1803,1805],{"title":384,"path":385,"stem":386,"description":1804,"children":-1},"The files of a Kraft add-on and its collection, addons.yaml and addons.lock, the naming rules, what an add-on may set, and when an add-on loads, updates and is restored.",{"title":10,"path":393,"stem":394,"description":1806,"children":-1},"Every key a chain file accepts, from the chain down to each kind of task, plus read_only, extends, icons and canonical paths.",1791801175473]