[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"$f22lybfxhfbkkj":3},{"entry":4,"body":9,"data":372},{"slug":5,"title":6,"file":7,"description":8},"single-bundle","Single bundle","single-bundle.md","Take one bundle by hand and leave the rest of the setup alone.",{"type":10,"children":11},"root",[12,19,49,71,78,99,105,118,130,150,226,238,244,270,276,304,313,348,354,366],{"type":13,"tag":14,"props":15,"children":16},"element","h1",{"id":5},[17],{"type":18,"value":6},"text",{"type":13,"tag":20,"props":21,"children":22},"p",{},[23,25,32,34,40,42,47],{"type":18,"value":24},"When you only want one piece — the browser-testing workflow, say, or the fail-closed hooks — take the bundle and leave the rest of the setup alone. A bundle is a slice of a ",{"type":13,"tag":26,"props":27,"children":29},"code",{"className":28},[],[30],{"type":18,"value":31},".claude\u002F",{"type":18,"value":33}," directory: skills, rules, hooks, settings and a ",{"type":13,"tag":26,"props":35,"children":37},{"className":36},[],[38],{"type":18,"value":39},"CLAUDE.md",{"type":18,"value":41}," snippet, published on its own page with a download button. No ",{"type":13,"tag":26,"props":43,"children":45},{"className":44},[],[46],{"type":18,"value":39},{"type":18,"value":48}," gets assembled, no lockfile is written, and nothing you already have is merged. It is three steps and some copying.",{"type":13,"tag":20,"props":50,"children":51},{},[52,54,61,63,69],{"type":18,"value":53},"Taking the whole setup instead is ",{"type":13,"tag":55,"props":56,"children":58},"a",{"href":57},"\u002Fdocs\u002Fstart-here",[59],{"type":18,"value":60},"Start here",{"type":18,"value":62},". Adding a bundle to a project that already has the setup is ",{"type":13,"tag":26,"props":64,"children":66},{"className":65},[],[67],{"type":18,"value":68},"pnpx @patrity\u002Fskills add \u003Cslug>",{"type":18,"value":70},".",{"type":13,"tag":72,"props":73,"children":75},"h2",{"id":74},"_1-pick-a-bundle",[76],{"type":18,"value":77},"1. Pick a bundle",{"type":13,"tag":20,"props":79,"children":80},{},[81,83,89,91,97],{"type":18,"value":82},"Browse the ",{"type":13,"tag":55,"props":84,"children":86},{"href":85},"\u002Fskills",[87],{"type":18,"value":88},"skills index",{"type":18,"value":90},". Each card shows what the bundle contains (Skills, Rules, Hooks, Settings, CLAUDE.md), its tags, and anything it requires on your machine (for example ",{"type":13,"tag":26,"props":92,"children":94},{"className":93},[],[95],{"type":18,"value":96},"python3",{"type":18,"value":98}," for the doc-fetcher skills).",{"type":13,"tag":72,"props":100,"children":102},{"id":101},"_2-download-and-unzip",[103],{"type":18,"value":104},"2. Download and unzip",{"type":13,"tag":20,"props":106,"children":107},{},[108,110,116],{"type":18,"value":109},"Click ",{"type":13,"tag":111,"props":112,"children":113},"strong",{},[114],{"type":18,"value":115},"Download",{"type":18,"value":117},". The zip unpacks to a single folder named after the bundle:",{"type":13,"tag":119,"props":120,"children":125},"pre",{"className":121,"code":123,"language":18,"meta":124},[122],"language-text","nuxt\u002F\n├── README.md\n├── skills\u002F…\n├── rules\u002F…\n└── CLAUDE.md\n","",[126],{"type":13,"tag":26,"props":127,"children":128},{"__ignoreMap":124},[129],{"type":18,"value":123},{"type":13,"tag":20,"props":131,"children":132},{},[133,135,141,143,148],{"type":18,"value":134},"Move the folder's ",{"type":13,"tag":136,"props":137,"children":138},"em",{},[139],{"type":18,"value":140},"contents",{"type":18,"value":142}," into your project's ",{"type":13,"tag":26,"props":144,"children":146},{"className":145},[],[147],{"type":18,"value":31},{"type":18,"value":149}," directory:",{"type":13,"tag":119,"props":151,"children":155},{"className":152,"code":153,"language":154,"meta":124,"style":124},"language-bash shiki shiki-themes material-theme-lighter github-light github-dark","unzip nuxt.zip\nmkdir -p .claude\ncp -R nuxt\u002Fskills nuxt\u002Frules .claude\u002F\n","bash",[156],{"type":13,"tag":26,"props":157,"children":158},{"__ignoreMap":124},[159,177,197],{"type":13,"tag":160,"props":161,"children":164},"span",{"class":162,"line":163},"line",1,[165,171],{"type":13,"tag":160,"props":166,"children":168},{"style":167},"--shiki-light:#E2931D;--shiki-default:#6F42C1;--shiki-dark:#B392F0",[169],{"type":18,"value":170},"unzip",{"type":13,"tag":160,"props":172,"children":174},{"style":173},"--shiki-light:#91B859;--shiki-default:#032F62;--shiki-dark:#9ECBFF",[175],{"type":18,"value":176}," nuxt.zip\n",{"type":13,"tag":160,"props":178,"children":180},{"class":162,"line":179},2,[181,186,192],{"type":13,"tag":160,"props":182,"children":183},{"style":167},[184],{"type":18,"value":185},"mkdir",{"type":13,"tag":160,"props":187,"children":189},{"style":188},"--shiki-light:#91B859;--shiki-default:#005CC5;--shiki-dark:#79B8FF",[190],{"type":18,"value":191}," -p",{"type":13,"tag":160,"props":193,"children":194},{"style":173},[195],{"type":18,"value":196}," .claude\n",{"type":13,"tag":160,"props":198,"children":200},{"class":162,"line":199},3,[201,206,211,216,221],{"type":13,"tag":160,"props":202,"children":203},{"style":167},[204],{"type":18,"value":205},"cp",{"type":13,"tag":160,"props":207,"children":208},{"style":188},[209],{"type":18,"value":210}," -R",{"type":13,"tag":160,"props":212,"children":213},{"style":173},[214],{"type":18,"value":215}," nuxt\u002Fskills",{"type":13,"tag":160,"props":217,"children":218},{"style":173},[219],{"type":18,"value":220}," nuxt\u002Frules",{"type":13,"tag":160,"props":222,"children":223},{"style":173},[224],{"type":18,"value":225}," .claude\u002F\n",{"type":13,"tag":20,"props":227,"children":228},{},[229,231,236],{"type":18,"value":230},"Skip the README unless you want it, and skip ",{"type":13,"tag":26,"props":232,"children":234},{"className":233},[],[235],{"type":18,"value":39},{"type":18,"value":237}," for now.",{"type":13,"tag":72,"props":239,"children":241},{"id":240},"_3-wire-up-claudemd",[242],{"type":18,"value":243},"3. Wire up CLAUDE.md",{"type":13,"tag":20,"props":245,"children":246},{},[247,249,254,256,261,263,268],{"type":18,"value":248},"If the bundle ships a ",{"type":13,"tag":26,"props":250,"children":252},{"className":251},[],[253],{"type":18,"value":39},{"type":18,"value":255},", it is a ",{"type":13,"tag":111,"props":257,"children":258},{},[259],{"type":18,"value":260},"pointer snippet",{"type":18,"value":262},", not a replacement. Paste its contents into your project's ",{"type":13,"tag":26,"props":264,"children":266},{"className":265},[],[267],{"type":18,"value":39},{"type":18,"value":269}," so Claude Code knows the skills and rules exist and when to reach for them.",{"type":13,"tag":72,"props":271,"children":273},{"id":272},"keeping-bundles-out-of-git-noise",[274],{"type":18,"value":275},"Keeping bundles out of git noise",{"type":13,"tag":20,"props":277,"children":278},{},[279,281,286,288,294,296,302],{"type":18,"value":280},"A bundle that writes a cache declares the path in its frontmatter, and the bundle page lists it under ",{"type":13,"tag":111,"props":282,"children":283},{},[284],{"type":18,"value":285},"Gitignore",{"type":18,"value":287},". Doc-fetcher skills, for instance, cache what they download beside their own ",{"type":13,"tag":26,"props":289,"children":291},{"className":290},[],[292],{"type":18,"value":293},"SKILL.md",{"type":18,"value":295},". Installing by hand, copy those paths into your project's ",{"type":13,"tag":26,"props":297,"children":299},{"className":298},[],[300],{"type":18,"value":301},".gitignore",{"type":18,"value":303}," yourself:",{"type":13,"tag":119,"props":305,"children":308},{"className":306,"code":307,"language":18,"meta":124},[122],".claude\u002Fskills\u002Fnuxt-docs\u002Fcache\u002F\n",[309],{"type":13,"tag":26,"props":310,"children":311},{"__ignoreMap":124},[312],{"type":18,"value":307},{"type":13,"tag":20,"props":314,"children":315},{},[316,318,323,325,331,333,339,341,346],{"type":18,"value":317},"A bundle that reads configuration lists it under ",{"type":13,"tag":111,"props":319,"children":320},{},[321],{"type":18,"value":322},"Environment",{"type":18,"value":324}," instead: create ",{"type":13,"tag":26,"props":326,"children":328},{"className":327},[],[329],{"type":18,"value":330},".claude\u002F.env",{"type":18,"value":332}," and set the variables it names. Skills read that file, never the repo root ",{"type":13,"tag":26,"props":334,"children":336},{"className":335},[],[337],{"type":18,"value":338},".env",{"type":18,"value":340},", and it belongs in ",{"type":13,"tag":26,"props":342,"children":344},{"className":343},[],[345],{"type":18,"value":301},{"type":18,"value":347}," too. The CLI does all of this for you; by hand it is on you.",{"type":13,"tag":72,"props":349,"children":351},{"id":350},"updating",[352],{"type":18,"value":353},"Updating",{"type":13,"tag":20,"props":355,"children":356},{},[357,359,364],{"type":18,"value":358},"Bundles have no versions. Re-download and overwrite when you want the latest; the ",{"type":13,"tag":111,"props":360,"children":361},{},[362],{"type":18,"value":363},"Source",{"type":18,"value":365}," button opens the exact GitHub tree so you can diff before you do.",{"type":13,"tag":367,"props":368,"children":369},"style",{},[370],{"type":18,"value":371},"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);}",{}]