[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill:01M71CGMK8578WTJ11N72RVNT6":3,"skill-same:01M71CGMK8578WTJ11N72RVNT6":55},{"skillNo":4,"name":5,"nameZh":6,"description":7,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":6,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":15,"categories":16,"keywords":17,"publishedAt":28,"linkOnly":29,"markdownContent":30,"markdownBody":31,"frontMatter":32,"refName":33,"commitSha":34,"skillDirectory":35,"forksCount":36,"repositoryHtmlUrl":37,"repositoryHomepageUrl":6,"ownerHtmlUrl":38,"ownerBlogUrl":39,"ownerDescription":6,"updatedAt":40,"install":41,"resources":54},"01M71CGMK8578WTJ11N72RVNT6","cogbox-filesystem",null,"Decide where to write inside the sandbox so work survives a restart, and check a path's lifetime instead of assuming it.","illustris\u002Fcogbox","illustris","https:\u002F\u002Favatars.githubusercontent.com\u002Fu\u002F3948275?v=4","01M71CGEWJV83CKXRREGQKXXQH","01M71CGEXJJK2726RZ2EJDC1PM",3,"MIT","https:\u002F\u002Fgithub.com\u002Fillustris\u002Fcogbox\u002Fblob\u002Fmaster\u002Fskills\u002Fcogbox-filesystem\u002FSKILL.md",[],[18,19,20,21,22,23,24,25,26,27],"cogbox filesystem","filesystem","sandbox","work","decide","it","write","path","restart","check","2026-11-10 10:12:30",false,"---\nname: cogbox-filesystem\ndescription: Decide where to write inside the sandbox so work survives a restart, and check a path's lifetime instead of assuming it.\n---\n\n`~\u002Fwork` (`\u002Froot\u002Fwork`, a symlink to `\u002Fvar\u002Flib\u002Fcogbox\u002Fwork`) is the persistent\nworkspace. Keep repositories, generated artifacts, notes and anything else worth\nkeeping there. The path is the same on both backends: the VM reaches it through\nthe host-backed share (bound onto the persistent pool under the hosted storage\nprofile), and on the container `cogbox-container-state.service` links\n`\u002Fvar\u002Flib\u002Fcogbox` onto the state volume before the workspace is used.\n\nThese do not survive a restart:\n\n- The root filesystem. On the VM backend `\u002F` is a RAM tmpfs; on the container it\n  is the ephemeral writable layer, and the previous boot's `\u002Froot` is already\n  gone by the time the next boot runs.\n- `\u002Ftmp`, and anything else written outside `~\u002Fwork` on that root.\n\nThe writable `\u002Fnix` store layer is backend-dependent; do not state one rule for\nit. On a VM-backed sandbox the host re-creates that filesystem before each\nlaunch, and a package realized at runtime is fetched again after a restart. On\nthe container backend the per-instance overlay upper is node-local and usually\nsurvives a restart, but a reschedule onto another node loses it. Treat neither\nas storage: if a tool has to be there next time, extend the sandbox, as\n`cogbox-packages` describes.\n\nOn a VM-backed sandbox the read-only layer under `\u002Fnix\u002Fstore` is the host's\nstore, so `nix store gc` frees only what this sandbox built or fetched; host\npaths you can see but that are not in the sandbox's database are left alone.\n\nIf `command -v cogbox-env` finds the helper, the tools it selects are the one exception: their closure is archived under `~\u002Fwork\u002F.cogbox\u002Fruntime` (never edit that directory by hand) and restored after a restart, as the `cogbox-runtime` skill describes.\n\nPaths under `\u002Froot` are not uniformly one or the other, and they differ between\nsandboxes rather than only between paths. `\u002Froot\u002F.cache`, `\u002Froot\u002F.config` and\n`\u002Froot\u002F.local` are symlinked onto the state volume on the container backend, and\nbound onto a persistent pool on a VM configured for one, but on the default VM\nprofile no such pool exists and all three sit on the tmpfs root like everything\nelse; a bind or symlink that could not be set up lands there too, with a line in\nthe journal. The harness homes proper -- `\u002Froot\u002F.claude`, `\u002Froot\u002F.hermes`,\n`\u002Froot\u002F.config\u002Fopencode` -- are overlays with uppers of their own, independent\nof whatever their parent directory is doing. Do not guess any of this:\n`findmnt -T \u003Cpath>` shows whether a path sits on a mount of its own, and\n`readlink -f \u003Cpath>` resolves it through symlinks. If a file matters, put it in\n`~\u002Fwork` and stop reasoning about the rest.\n\n`~\u002Fwork\u002F.cogbox\u002Fbrain`, and the skill, agent, command and rule entries under\n`~\u002Fwork\u002F.claude\u002F`, are symlinks into a Nix store path. Never edit them in place,\nand do not take a successful write as permission to: you are root over a\nwritable store overlay, so the write copies the file up and looks like it\nworked. The mutated file then lives in that writable layer, with the lifetime\ndescribed above, and nix knows nothing about it: the change is invisible, never\nreproducible, and gone whenever that layer is. Changing what this sandbox can do\nmeans changing the extension that provides it, which is `cogbox-packages`.\n\nLoad `cogbox-environment` to identify the sandbox before giving host-side\ninstructions, and `app-relay` for ports and browser previews.\n","`~\u002Fwork` (`\u002Froot\u002Fwork`, a symlink to `\u002Fvar\u002Flib\u002Fcogbox\u002Fwork`) is the persistent\nworkspace. Keep repositories, generated artifacts, notes and anything else worth\nkeeping there. The path is the same on both backends: the VM reaches it through\nthe host-backed share (bound onto the persistent pool under the hosted storage\nprofile), and on the container `cogbox-container-state.service` links\n`\u002Fvar\u002Flib\u002Fcogbox` onto the state volume before the workspace is used.\n\nThese do not survive a restart:\n\n- The root filesystem. On the VM backend `\u002F` is a RAM tmpfs; on the container it\n  is the ephemeral writable layer, and the previous boot's `\u002Froot` is already\n  gone by the time the next boot runs.\n- `\u002Ftmp`, and anything else written outside `~\u002Fwork` on that root.\n\nThe writable `\u002Fnix` store layer is backend-dependent; do not state one rule for\nit. On a VM-backed sandbox the host re-creates that filesystem before each\nlaunch, and a package realized at runtime is fetched again after a restart. On\nthe container backend the per-instance overlay upper is node-local and usually\nsurvives a restart, but a reschedule onto another node loses it. Treat neither\nas storage: if a tool has to be there next time, extend the sandbox, as\n`cogbox-packages` describes.\n\nOn a VM-backed sandbox the read-only layer under `\u002Fnix\u002Fstore` is the host's\nstore, so `nix store gc` frees only what this sandbox built or fetched; host\npaths you can see but that are not in the sandbox's database are left alone.\n\nIf `command -v cogbox-env` finds the helper, the tools it selects are the one exception: their closure is archived under `~\u002Fwork\u002F.cogbox\u002Fruntime` (never edit that directory by hand) and restored after a restart, as the `cogbox-runtime` skill describes.\n\nPaths under `\u002Froot` are not uniformly one or the other, and they differ between\nsandboxes rather than only between paths. `\u002Froot\u002F.cache`, `\u002Froot\u002F.config` and\n`\u002Froot\u002F.local` are symlinked onto the state volume on the container backend, and\nbound onto a persistent pool on a VM configured for one, but on the default VM\nprofile no such pool exists and all three sit on the tmpfs root like everything\nelse; a bind or symlink that could not be set up lands there too, with a line in\nthe journal. The harness homes proper -- `\u002Froot\u002F.claude`, `\u002Froot\u002F.hermes`,\n`\u002Froot\u002F.config\u002Fopencode` -- are overlays with uppers of their own, independent\nof whatever their parent directory is doing. Do not guess any of this:\n`findmnt -T \u003Cpath>` shows whether a path sits on a mount of its own, and\n`readlink -f \u003Cpath>` resolves it through symlinks. If a file matters, put it in\n`~\u002Fwork` and stop reasoning about the rest.\n\n`~\u002Fwork\u002F.cogbox\u002Fbrain`, and the skill, agent, command and rule entries under\n`~\u002Fwork\u002F.claude\u002F`, are symlinks into a Nix store path. Never edit them in place,\nand do not take a successful write as permission to: you are root over a\nwritable store overlay, so the write copies the file up and looks like it\nworked. The mutated file then lives in that writable layer, with the lifetime\ndescribed above, and nix knows nothing about it: the change is invisible, never\nreproducible, and gone whenever that layer is. Changing what this sandbox can do\nmeans changing the extension that provides it, which is `cogbox-packages`.\n\nLoad `cogbox-environment` to identify the sandbox before giving host-side\ninstructions, and `app-relay` for ports and browser previews.\n",{"name":5,"description":7},"master","9054adffa53fa7af94439dff72b432e11499a008","skills\u002Fcogbox-filesystem",1,"https:\u002F\u002Fgithub.com\u002Fillustris\u002Fcogbox","https:\u002F\u002Fgithub.com\u002Fillustris","https:\u002F\u002Fillustris.tech","2026-11-10 00:38:16",{"source":8,"skillName":5,"commands":42,"prompt":52,"zipAvailable":53},[43,46,49],{"tool":44,"command":45},"npx","npx skills add illustris\u002Fcogbox --skill cogbox-filesystem",{"tool":47,"command":48},"bunx","bunx skills add illustris\u002Fcogbox --skill cogbox-filesystem",{"tool":50,"command":51},"pnpm","pnpm dlx skills add illustris\u002Fcogbox --skill cogbox-filesystem","安装技能，技能地址：https:\u002F\u002Fgithub.com\u002Fillustris\u002Fcogbox\u002Fblob\u002Fmaster\u002Fskills\u002Fcogbox-filesystem\u002FSKILL.md",true,[],[56,72,85,99,112,120],{"skillNo":57,"name":58,"nameZh":6,"description":59,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":6,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":60,"categories":61,"keywords":62,"publishedAt":28},"01M71CHP4B6XX9PAZ5JRQV8E58","app-relay","Legacy plugin guidance for migration testing.","https:\u002F\u002Fgithub.com\u002Fillustris\u002Fcogbox\u002Fblob\u002Fmaster\u002Ftests\u002Ffixtures\u002Fnative-app\u002Flegacy-contents\u002Fskills\u002Fapp-relay\u002FSKILL.md",[],[63,64,65,66,67,68,69,70,71],"app","app relay","relay","guidance","migration","plugin","Legacy","for","testing",{"skillNo":73,"name":74,"nameZh":6,"description":75,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":6,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":76,"categories":77,"keywords":78,"publishedAt":28},"01M71CHM675ZZTJ9HRGHPWVVZS","demo-overview","Overview of the demo backend; start here before answering demo questions.","https:\u002F\u002Fgithub.com\u002Fillustris\u002Fcogbox\u002Fblob\u002Fmaster\u002Ftests\u002Ffixtures\u002Fbrain-plugin\u002Fcontents\u002Fskills\u002Fdemo-overview\u002FSKILL.md",[],[79,80,81,82,83,84],"overview","demo overview","demo","questions","backend","start",{"skillNo":86,"name":87,"nameZh":6,"description":88,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":6,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":89,"categories":90,"keywords":91,"publishedAt":28},"01M71CHJNH0AX8E74WBGJH1JMR","demo-es","Query the demo Elasticsearch cluster: es-search, es-cat.","https:\u002F\u002Fgithub.com\u002Fillustris\u002Fcogbox\u002Fblob\u002Fmaster\u002Ftests\u002Ffixtures\u002Fbrain-plugin\u002Fcontents\u002Fskills\u002Fdemo-es\u002FSKILL.md",[],[81,92,93,94,95,96,97,98],"es","demo es","search","query","cat","cluster","elasticsearch",{"skillNo":100,"name":101,"nameZh":6,"description":102,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":6,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":103,"categories":104,"keywords":105,"publishedAt":28},"01M71CHGPNHSBFJHCQRSMNHS3E","cogbox-plugins","Fixture skill squatting on the name cogbox reserves for its index.","https:\u002F\u002Fgithub.com\u002Fillustris\u002Fcogbox\u002Fblob\u002Fmaster\u002Ftests\u002Ffixtures\u002Fbrain-collide\u002Freserved\u002Fskills\u002Fcogbox-plugins\u002FSKILL.md",[],[106,107,108,109,70,110,111],"cogbox plugins","plugins","fixture","index","name","fixture skill",{"skillNo":113,"name":107,"nameZh":6,"description":114,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":6,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":115,"categories":116,"keywords":117,"publishedAt":28},"01M71CHERNF4GWZ1C34MHKKN19","Fixture skill named `plugins`, shipped by a second, unrelated plugin.","https:\u002F\u002Fgithub.com\u002Fillustris\u002Fcogbox\u002Fblob\u002Fmaster\u002Ftests\u002Ffixtures\u002Fbrain-collide\u002Freserved-qual-b\u002Fskills\u002Fplugins\u002FSKILL.md",[],[107,111,108,68,118,119],"unrelated","second",{"skillNo":121,"name":107,"nameZh":6,"description":122,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":6,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":123,"categories":124,"keywords":125,"publishedAt":28},"01M71CHDPMR9KDE5QP6H3W66CW","Fixture skill named `plugins`, shipped by a plugin installed as `cogbox`.","https:\u002F\u002Fgithub.com\u002Fillustris\u002Fcogbox\u002Fblob\u002Fmaster\u002Ftests\u002Ffixtures\u002Fbrain-collide\u002Freserved-qual-a\u002Fskills\u002Fplugins\u002FSKILL.md",[],[107,108,126,68,111],"as"]