[{"data":1,"prerenderedAt":1074},["ShallowReactive",2],{"guide:/guides/claude-code-skills":3},{"_path":4,"_dir":5,"_draft":6,"_partial":6,"_locale":7,"title":8,"description":9,"tag":10,"date":11,"body":12,"_type":966,"_id":1069,"_source":1070,"_file":1071,"_stem":1072,"_extension":1073},"/guides/claude-code-skills","guides",false,"","Claude Code skills: what makes one actually fire","A skill is a folder with a SKILL.md in it. Twenty frontmatter fields exist, one decides whether Claude ever loads yours. Here is what matters, measured.","Workflow","2026-09-13",{"type":13,"children":14,"toc":1060},"root",[15,41,48,53,204,224,230,243,264,333,338,410,423,429,434,512,517,538,565,571,783,789,808,916,943,949,962,992,1012,1018,1044,1054],{"type":16,"tag":17,"props":18,"children":19},"element","p",{},[20,23,30,32,39],{"type":21,"value":22},"text","A Claude Code skill is a directory containing a ",{"type":16,"tag":24,"props":25,"children":27},"code",{"className":26},[],[28],{"type":21,"value":29},"SKILL.md",{"type":21,"value":31}," file: YAML frontmatter, then markdown instructions. That is the whole format. The part that trips people up is not writing one, it is getting it to fire, because more than twenty frontmatter fields exist and exactly one of them decides whether Claude ever reaches for your skill. If you are configuring these alongside hooks, they share a home in ",{"type":16,"tag":33,"props":34,"children":36},"a",{"href":35},"/guides/claude-code-settings-json",[37],{"type":21,"value":38},"your settings.json",{"type":21,"value":40},".",{"type":16,"tag":42,"props":43,"children":45},"h2",{"id":44},"where-a-skill-lives",[46],{"type":21,"value":47},"Where a skill lives",{"type":16,"tag":17,"props":49,"children":50},{},[51],{"type":21,"value":52},"The location sets the scope, and nothing else about the file changes:",{"type":16,"tag":54,"props":55,"children":56},"table",{},[57,81],{"type":16,"tag":58,"props":59,"children":60},"thead",{},[61],{"type":16,"tag":62,"props":63,"children":64},"tr",{},[65,71,76],{"type":16,"tag":66,"props":67,"children":68},"th",{},[69],{"type":21,"value":70},"Scope",{"type":16,"tag":66,"props":72,"children":73},{},[74],{"type":21,"value":75},"Path",{"type":16,"tag":66,"props":77,"children":78},{},[79],{"type":21,"value":80},"Loads in",{"type":16,"tag":82,"props":83,"children":84},"tbody",{},[85,108,130,152,180],{"type":16,"tag":62,"props":86,"children":87},{},[88,94,103],{"type":16,"tag":89,"props":90,"children":91},"td",{},[92],{"type":21,"value":93},"Personal",{"type":16,"tag":89,"props":95,"children":96},{},[97],{"type":16,"tag":24,"props":98,"children":100},{"className":99},[],[101],{"type":21,"value":102},"~/.claude/skills/<name>/SKILL.md",{"type":16,"tag":89,"props":104,"children":105},{},[106],{"type":21,"value":107},"Every project on your machine",{"type":16,"tag":62,"props":109,"children":110},{},[111,116,125],{"type":16,"tag":89,"props":112,"children":113},{},[114],{"type":21,"value":115},"Project",{"type":16,"tag":89,"props":117,"children":118},{},[119],{"type":16,"tag":24,"props":120,"children":122},{"className":121},[],[123],{"type":21,"value":124},".claude/skills/<name>/SKILL.md",{"type":16,"tag":89,"props":126,"children":127},{},[128],{"type":21,"value":129},"This repo. Commit it to share with the team",{"type":16,"tag":62,"props":131,"children":132},{},[133,138,147],{"type":16,"tag":89,"props":134,"children":135},{},[136],{"type":21,"value":137},"Nested",{"type":16,"tag":89,"props":139,"children":140},{},[141],{"type":16,"tag":24,"props":142,"children":144},{"className":143},[],[145],{"type":21,"value":146},"<subdir>/.claude/skills/<name>/SKILL.md",{"type":16,"tag":89,"props":148,"children":149},{},[150],{"type":21,"value":151},"Sessions in or below that subdirectory",{"type":16,"tag":62,"props":153,"children":154},{},[155,160,169],{"type":16,"tag":89,"props":156,"children":157},{},[158],{"type":21,"value":159},"Plugin",{"type":16,"tag":89,"props":161,"children":162},{},[163],{"type":16,"tag":24,"props":164,"children":166},{"className":165},[],[167],{"type":21,"value":168},"<plugin>/skills/<name>/SKILL.md",{"type":16,"tag":89,"props":170,"children":171},{},[172,174],{"type":21,"value":173},"Wherever the plugin is enabled, as ",{"type":16,"tag":24,"props":175,"children":177},{"className":176},[],[178],{"type":21,"value":179},"/plugin-name:skill-name",{"type":16,"tag":62,"props":181,"children":182},{},[183,188,199],{"type":16,"tag":89,"props":184,"children":185},{},[186],{"type":21,"value":187},"Session only",{"type":16,"tag":89,"props":189,"children":190},{},[191,193],{"type":21,"value":192},"any directory passed with ",{"type":16,"tag":24,"props":194,"children":196},{"className":195},[],[197],{"type":21,"value":198},"--add-dir",{"type":16,"tag":89,"props":200,"children":201},{},[202],{"type":21,"value":203},"That session",{"type":16,"tag":17,"props":205,"children":206},{},[207,209,215,217,223],{"type":21,"value":208},"When names collide, enterprise beats personal beats project, and your own skill replaces a bundled one of the same name. A project skill and a nested one both load, because they get different names: ",{"type":16,"tag":24,"props":210,"children":212},{"className":211},[],[213],{"type":21,"value":214},"/deploy",{"type":21,"value":216}," and ",{"type":16,"tag":24,"props":218,"children":220},{"className":219},[],[221],{"type":21,"value":222},"/apps/web:deploy",{"type":21,"value":40},{"type":16,"tag":42,"props":225,"children":227},{"id":226},"the-only-field-that-decides-anything",[228],{"type":21,"value":229},"The only field that decides anything",{"type":16,"tag":17,"props":231,"children":232},{},[233,235,241],{"type":21,"value":234},"Claude never sees your skill's body until it invokes it. What sits in context permanently is the ",{"type":16,"tag":24,"props":236,"children":238},{"className":237},[],[239],{"type":21,"value":240},"description",{"type":21,"value":242},", and that single string is the entire basis for the routing decision. Progressive disclosure is the whole design: descriptions always loaded, bodies loaded on demand, paid for once.",{"type":16,"tag":17,"props":244,"children":245},{},[246,248,254,256,262],{"type":21,"value":247},"So a description that says what the skill ",{"type":16,"tag":249,"props":250,"children":251},"em",{},[252],{"type":21,"value":253},"is",{"type":21,"value":255}," will lose to one that says ",{"type":16,"tag":257,"props":258,"children":259},"strong",{},[260],{"type":21,"value":261},"when to reach for it",{"type":21,"value":263},". Compare a vague one:",{"type":16,"tag":265,"props":266,"children":270},"pre",{"className":267,"code":268,"language":269,"meta":7,"style":7},"language-yaml shiki shiki-themes github-light github-dark","---\nname: seo-guide\ndescription: Guidelines for writing guides.\n---\n","yaml",[271],{"type":16,"tag":24,"props":272,"children":273},{"__ignoreMap":7},[274,286,308,325],{"type":16,"tag":275,"props":276,"children":279},"span",{"class":277,"line":278},"line",1,[280],{"type":16,"tag":275,"props":281,"children":283},{"style":282},"--shiki-default:#6F42C1;--shiki-dark:#B392F0",[284],{"type":21,"value":285},"---\n",{"type":16,"tag":275,"props":287,"children":289},{"class":277,"line":288},2,[290,296,302],{"type":16,"tag":275,"props":291,"children":293},{"style":292},"--shiki-default:#22863A;--shiki-dark:#85E89D",[294],{"type":21,"value":295},"name",{"type":16,"tag":275,"props":297,"children":299},{"style":298},"--shiki-default:#24292E;--shiki-dark:#E1E4E8",[300],{"type":21,"value":301},": ",{"type":16,"tag":275,"props":303,"children":305},{"style":304},"--shiki-default:#032F62;--shiki-dark:#9ECBFF",[306],{"type":21,"value":307},"seo-guide\n",{"type":16,"tag":275,"props":309,"children":311},{"class":277,"line":310},3,[312,316,320],{"type":16,"tag":275,"props":313,"children":314},{"style":292},[315],{"type":21,"value":240},{"type":16,"tag":275,"props":317,"children":318},{"style":298},[319],{"type":21,"value":301},{"type":16,"tag":275,"props":321,"children":322},{"style":304},[323],{"type":21,"value":324},"Guidelines for writing guides.\n",{"type":16,"tag":275,"props":326,"children":328},{"class":277,"line":327},4,[329],{"type":16,"tag":275,"props":330,"children":331},{"style":282},[332],{"type":21,"value":285},{"type":16,"tag":17,"props":334,"children":335},{},[336],{"type":21,"value":337},"with the shape that actually triggers, taken from a skill shipped in the official marketplace:",{"type":16,"tag":265,"props":339,"children":341},{"className":267,"code":340,"language":269,"meta":7,"style":7},"---\nname: writing-hookify-rules\ndescription: This skill should be used when the user asks to \"create a hookify rule\", \"write a hook rule\", \"configure hookify\", \"add a hookify rule\", or needs guidance on hookify rule syntax and patterns.\nversion: 0.1.0\n---\n",[342],{"type":16,"tag":24,"props":343,"children":344},{"__ignoreMap":7},[345,352,368,384,402],{"type":16,"tag":275,"props":346,"children":347},{"class":277,"line":278},[348],{"type":16,"tag":275,"props":349,"children":350},{"style":282},[351],{"type":21,"value":285},{"type":16,"tag":275,"props":353,"children":354},{"class":277,"line":288},[355,359,363],{"type":16,"tag":275,"props":356,"children":357},{"style":292},[358],{"type":21,"value":295},{"type":16,"tag":275,"props":360,"children":361},{"style":298},[362],{"type":21,"value":301},{"type":16,"tag":275,"props":364,"children":365},{"style":304},[366],{"type":21,"value":367},"writing-hookify-rules\n",{"type":16,"tag":275,"props":369,"children":370},{"class":277,"line":310},[371,375,379],{"type":16,"tag":275,"props":372,"children":373},{"style":292},[374],{"type":21,"value":240},{"type":16,"tag":275,"props":376,"children":377},{"style":298},[378],{"type":21,"value":301},{"type":16,"tag":275,"props":380,"children":381},{"style":304},[382],{"type":21,"value":383},"This skill should be used when the user asks to \"create a hookify rule\", \"write a hook rule\", \"configure hookify\", \"add a hookify rule\", or needs guidance on hookify rule syntax and patterns.\n",{"type":16,"tag":275,"props":385,"children":386},{"class":277,"line":327},[387,392,396],{"type":16,"tag":275,"props":388,"children":389},{"style":292},[390],{"type":21,"value":391},"version",{"type":16,"tag":275,"props":393,"children":394},{"style":298},[395],{"type":21,"value":301},{"type":16,"tag":275,"props":397,"children":399},{"style":398},"--shiki-default:#005CC5;--shiki-dark:#79B8FF",[400],{"type":21,"value":401},"0.1.0\n",{"type":16,"tag":275,"props":403,"children":405},{"class":277,"line":404},5,[406],{"type":16,"tag":275,"props":407,"children":408},{"style":282},[409],{"type":21,"value":285},{"type":16,"tag":17,"props":411,"children":412},{},[413,415,421],{"type":21,"value":414},"Quoted trigger phrases, in the words a user would actually type. The cap is 1,536 characters, shared with the optional ",{"type":16,"tag":24,"props":416,"children":418},{"className":417},[],[419],{"type":21,"value":420},"when_to_use",{"type":21,"value":422}," field, which is appended to the description and counts toward the same budget.",{"type":16,"tag":42,"props":424,"children":426},{"id":425},"what-real-skills-look-like",[427],{"type":21,"value":428},"What real skills look like",{"type":16,"tag":17,"props":430,"children":431},{},[432],{"type":21,"value":433},"Measured on this site's repository, which has seven project skills in daily use with Claude Code 2.1.269:",{"type":16,"tag":54,"props":435,"children":436},{},[437,451],{"type":16,"tag":58,"props":438,"children":439},{},[440],{"type":16,"tag":62,"props":441,"children":442},{},[443,446],{"type":16,"tag":66,"props":444,"children":445},{},[],{"type":16,"tag":66,"props":447,"children":448},{},[449],{"type":21,"value":450},"Range across the 7 skills",{"type":16,"tag":82,"props":452,"children":453},{},[454,467,480],{"type":16,"tag":62,"props":455,"children":456},{},[457,462],{"type":16,"tag":89,"props":458,"children":459},{},[460],{"type":21,"value":461},"Description length",{"type":16,"tag":89,"props":463,"children":464},{},[465],{"type":21,"value":466},"407 to 711 characters",{"type":16,"tag":62,"props":468,"children":469},{},[470,475],{"type":16,"tag":89,"props":471,"children":472},{},[473],{"type":21,"value":474},"Body length",{"type":16,"tag":89,"props":476,"children":477},{},[478],{"type":21,"value":479},"58 to 209 lines",{"type":16,"tag":62,"props":481,"children":482},{},[483,488],{"type":16,"tag":89,"props":484,"children":485},{},[486],{"type":21,"value":487},"Frontmatter fields used",{"type":16,"tag":89,"props":489,"children":490},{},[491,496,498,503,505,510],{"type":16,"tag":24,"props":492,"children":494},{"className":493},[],[495],{"type":21,"value":295},{"type":21,"value":497},", ",{"type":16,"tag":24,"props":499,"children":501},{"className":500},[],[502],{"type":21,"value":240},{"type":21,"value":504},", and ",{"type":16,"tag":24,"props":506,"children":508},{"className":507},[],[509],{"type":21,"value":391},{"type":21,"value":511}," on three of them",{"type":16,"tag":17,"props":513,"children":514},{},[515],{"type":21,"value":516},"Two things stand out. Descriptions land around a quarter to a half of the allowed budget, so the cap is not the constraint, clarity is. And three fields out of more than twenty carry all seven skills: the long list below is opt-in, not a checklist to fill.",{"type":16,"tag":17,"props":518,"children":519},{},[520,522,528,530,536],{"type":21,"value":521},"Keep the body under 500 lines, and push detail into sibling files that the body links to. Supporting scripts go in a ",{"type":16,"tag":24,"props":523,"children":525},{"className":524},[],[526],{"type":21,"value":527},"scripts/",{"type":21,"value":529}," subfolder and are addressed with ",{"type":16,"tag":24,"props":531,"children":533},{"className":532},[],[534],{"type":21,"value":535},"${CLAUDE_SKILL_DIR}",{"type":21,"value":537},":",{"type":16,"tag":265,"props":539,"children":543},{"className":540,"code":541,"language":542,"meta":7,"style":7},"language-bash shiki shiki-themes github-light github-dark","python3 ${CLAUDE_SKILL_DIR}/scripts/setup.py\n","bash",[544],{"type":16,"tag":24,"props":545,"children":546},{"__ignoreMap":7},[547],{"type":16,"tag":275,"props":548,"children":549},{"class":277,"line":278},[550,555,560],{"type":16,"tag":275,"props":551,"children":552},{"style":282},[553],{"type":21,"value":554},"python3",{"type":16,"tag":275,"props":556,"children":557},{"style":298},[558],{"type":21,"value":559}," ${CLAUDE_SKILL_DIR}",{"type":16,"tag":275,"props":561,"children":562},{"style":304},[563],{"type":21,"value":564},"/scripts/setup.py\n",{"type":16,"tag":42,"props":566,"children":568},{"id":567},"the-fields-worth-knowing",[569],{"type":21,"value":570},"The fields worth knowing",{"type":16,"tag":54,"props":572,"children":573},{},[574,590],{"type":16,"tag":58,"props":575,"children":576},{},[577],{"type":16,"tag":62,"props":578,"children":579},{},[580,585],{"type":16,"tag":66,"props":581,"children":582},{},[583],{"type":21,"value":584},"Field",{"type":16,"tag":66,"props":586,"children":587},{},[588],{"type":21,"value":589},"Why you would set it",{"type":16,"tag":82,"props":591,"children":592},{},[593,610,635,660,692,709,726,750],{"type":16,"tag":62,"props":594,"children":595},{},[596,605],{"type":16,"tag":89,"props":597,"children":598},{},[599],{"type":16,"tag":24,"props":600,"children":602},{"className":601},[],[603],{"type":21,"value":604},"disable-model-invocation: true",{"type":16,"tag":89,"props":606,"children":607},{},[608],{"type":21,"value":609},"Claude can never auto-invoke it. Use it for anything with side effects: deploys, sending messages, commits",{"type":16,"tag":62,"props":611,"children":612},{},[613,622],{"type":16,"tag":89,"props":614,"children":615},{},[616],{"type":16,"tag":24,"props":617,"children":619},{"className":618},[],[620],{"type":21,"value":621},"user-invocable: false",{"type":16,"tag":89,"props":623,"children":624},{},[625,627,633],{"type":21,"value":626},"Hides it from the ",{"type":16,"tag":24,"props":628,"children":630},{"className":629},[],[631],{"type":21,"value":632},"/",{"type":21,"value":634}," menu. Background knowledge Claude may use, that you never type",{"type":16,"tag":62,"props":636,"children":637},{},[638,647],{"type":16,"tag":89,"props":639,"children":640},{},[641],{"type":16,"tag":24,"props":642,"children":644},{"className":643},[],[645],{"type":21,"value":646},"context: fork",{"type":16,"tag":89,"props":648,"children":649},{},[650,652,658],{"type":21,"value":651},"Runs the skill in a ",{"type":16,"tag":33,"props":653,"children":655},{"href":654},"/guides/claude-code-subagents",[656],{"type":21,"value":657},"subagent",{"type":21,"value":659}," instead of the main conversation. Good for long, isolated jobs like a code review",{"type":16,"tag":62,"props":661,"children":662},{},[663,672],{"type":16,"tag":89,"props":664,"children":665},{},[666],{"type":16,"tag":24,"props":667,"children":669},{"className":668},[],[670],{"type":21,"value":671},"agent",{"type":16,"tag":89,"props":673,"children":674},{},[675,677,683,684,690],{"type":21,"value":676},"Which subagent type a forked skill uses: ",{"type":16,"tag":24,"props":678,"children":680},{"className":679},[],[681],{"type":21,"value":682},"Explore",{"type":21,"value":497},{"type":16,"tag":24,"props":685,"children":687},{"className":686},[],[688],{"type":21,"value":689},"Plan",{"type":21,"value":691},", or one of your own",{"type":16,"tag":62,"props":693,"children":694},{},[695,704],{"type":16,"tag":89,"props":696,"children":697},{},[698],{"type":16,"tag":24,"props":699,"children":701},{"className":700},[],[702],{"type":21,"value":703},"allowed-tools",{"type":16,"tag":89,"props":705,"children":706},{},[707],{"type":21,"value":708},"Pre-approves tools for that turn only. The grant clears on your next message",{"type":16,"tag":62,"props":710,"children":711},{},[712,721],{"type":16,"tag":89,"props":713,"children":714},{},[715],{"type":16,"tag":24,"props":716,"children":718},{"className":717},[],[719],{"type":21,"value":720},"paths",{"type":16,"tag":89,"props":722,"children":723},{},[724],{"type":21,"value":725},"A glob. The skill auto-loads only when matching files are in play, which keeps it out of unrelated context",{"type":16,"tag":62,"props":727,"children":728},{},[729,745],{"type":16,"tag":89,"props":730,"children":731},{},[732,738,739],{"type":16,"tag":24,"props":733,"children":735},{"className":734},[],[736],{"type":21,"value":737},"model",{"type":21,"value":497},{"type":16,"tag":24,"props":740,"children":742},{"className":741},[],[743],{"type":21,"value":744},"effort",{"type":16,"tag":89,"props":746,"children":747},{},[748],{"type":21,"value":749},"Force a model or an effort level while the skill is active",{"type":16,"tag":62,"props":751,"children":752},{},[753,762],{"type":16,"tag":89,"props":754,"children":755},{},[756],{"type":16,"tag":24,"props":757,"children":759},{"className":758},[],[760],{"type":21,"value":761},"arguments",{"type":16,"tag":89,"props":763,"children":764},{},[765,767,773,775,781],{"type":21,"value":766},"Named positional arguments, so ",{"type":16,"tag":24,"props":768,"children":770},{"className":769},[],[771],{"type":21,"value":772},"/fix-issue 123",{"type":21,"value":774}," substitutes ",{"type":16,"tag":24,"props":776,"children":778},{"className":777},[],[779],{"type":21,"value":780},"$issue",{"type":21,"value":782}," in the body",{"type":16,"tag":42,"props":784,"children":786},{"id":785},"turning-one-off-without-deleting-it",[787],{"type":21,"value":788},"Turning one off without deleting it",{"type":16,"tag":17,"props":790,"children":791},{},[792,798,800,806],{"type":16,"tag":24,"props":793,"children":795},{"className":794},[],[796],{"type":21,"value":797},"skillOverrides",{"type":21,"value":799}," in ",{"type":16,"tag":24,"props":801,"children":803},{"className":802},[],[804],{"type":21,"value":805},".claude/settings.json",{"type":21,"value":807}," controls visibility per skill, which is how you silence a noisy one without removing the file:",{"type":16,"tag":265,"props":809,"children":813},{"className":810,"code":811,"language":812,"meta":7,"style":7},"language-json shiki shiki-themes github-light github-dark","{\n  \"skillOverrides\": {\n    \"deploy\": \"off\",\n    \"legacy-context\": \"name-only\",\n    \"internal-guide\": \"user-invocable-only\"\n  }\n}\n","json",[814],{"type":16,"tag":24,"props":815,"children":816},{"__ignoreMap":7},[817,825,838,860,881,898,907],{"type":16,"tag":275,"props":818,"children":819},{"class":277,"line":278},[820],{"type":16,"tag":275,"props":821,"children":822},{"style":298},[823],{"type":21,"value":824},"{\n",{"type":16,"tag":275,"props":826,"children":827},{"class":277,"line":288},[828,833],{"type":16,"tag":275,"props":829,"children":830},{"style":398},[831],{"type":21,"value":832},"  \"skillOverrides\"",{"type":16,"tag":275,"props":834,"children":835},{"style":298},[836],{"type":21,"value":837},": {\n",{"type":16,"tag":275,"props":839,"children":840},{"class":277,"line":310},[841,846,850,855],{"type":16,"tag":275,"props":842,"children":843},{"style":398},[844],{"type":21,"value":845},"    \"deploy\"",{"type":16,"tag":275,"props":847,"children":848},{"style":298},[849],{"type":21,"value":301},{"type":16,"tag":275,"props":851,"children":852},{"style":304},[853],{"type":21,"value":854},"\"off\"",{"type":16,"tag":275,"props":856,"children":857},{"style":298},[858],{"type":21,"value":859},",\n",{"type":16,"tag":275,"props":861,"children":862},{"class":277,"line":327},[863,868,872,877],{"type":16,"tag":275,"props":864,"children":865},{"style":398},[866],{"type":21,"value":867},"    \"legacy-context\"",{"type":16,"tag":275,"props":869,"children":870},{"style":298},[871],{"type":21,"value":301},{"type":16,"tag":275,"props":873,"children":874},{"style":304},[875],{"type":21,"value":876},"\"name-only\"",{"type":16,"tag":275,"props":878,"children":879},{"style":298},[880],{"type":21,"value":859},{"type":16,"tag":275,"props":882,"children":883},{"class":277,"line":404},[884,889,893],{"type":16,"tag":275,"props":885,"children":886},{"style":398},[887],{"type":21,"value":888},"    \"internal-guide\"",{"type":16,"tag":275,"props":890,"children":891},{"style":298},[892],{"type":21,"value":301},{"type":16,"tag":275,"props":894,"children":895},{"style":304},[896],{"type":21,"value":897},"\"user-invocable-only\"\n",{"type":16,"tag":275,"props":899,"children":901},{"class":277,"line":900},6,[902],{"type":16,"tag":275,"props":903,"children":904},{"style":298},[905],{"type":21,"value":906},"  }\n",{"type":16,"tag":275,"props":908,"children":910},{"class":277,"line":909},7,[911],{"type":16,"tag":275,"props":912,"children":913},{"style":298},[914],{"type":21,"value":915},"}\n",{"type":16,"tag":17,"props":917,"children":918},{},[919,925,927,933,935,941],{"type":16,"tag":24,"props":920,"children":922},{"className":921},[],[923],{"type":21,"value":924},"off",{"type":21,"value":926}," hides it from both Claude and the menu, ",{"type":16,"tag":24,"props":928,"children":930},{"className":929},[],[931],{"type":21,"value":932},"name-only",{"type":21,"value":934}," leaves it in the menu but strips the description from Claude's context, and ",{"type":16,"tag":24,"props":936,"children":938},{"className":937},[],[939],{"type":21,"value":940},"user-invocable-only",{"type":21,"value":942}," keeps it typeable while hiding it from Claude entirely.",{"type":16,"tag":42,"props":944,"children":946},{"id":945},"injecting-live-context",[947],{"type":21,"value":948},"Injecting live context",{"type":16,"tag":17,"props":950,"children":951},{},[952,954,960],{"type":21,"value":953},"A line prefixed with ",{"type":16,"tag":24,"props":955,"children":957},{"className":956},[],[958],{"type":21,"value":959},"!",{"type":21,"value":961}," runs before the skill content reaches Claude, and its output is pasted in as literal text:",{"type":16,"tag":265,"props":963,"children":967},{"className":964,"code":965,"language":966,"meta":7,"style":7},"language-markdown shiki shiki-themes github-light github-dark","## Current changes\n!`git diff HEAD`\n","markdown",[968],{"type":16,"tag":24,"props":969,"children":970},{"__ignoreMap":7},[971,980],{"type":16,"tag":275,"props":972,"children":973},{"class":277,"line":278},[974],{"type":16,"tag":275,"props":975,"children":977},{"style":976},"--shiki-default:#005CC5;--shiki-default-font-weight:bold;--shiki-dark:#79B8FF;--shiki-dark-font-weight:bold",[978],{"type":21,"value":979},"## Current changes\n",{"type":16,"tag":275,"props":981,"children":982},{"class":277,"line":288},[983,987],{"type":16,"tag":275,"props":984,"children":985},{"style":298},[986],{"type":21,"value":959},{"type":16,"tag":275,"props":988,"children":989},{"style":398},[990],{"type":21,"value":991},"`git diff HEAD`\n",{"type":16,"tag":17,"props":993,"children":994},{},[995,997,1003,1005,1011],{"type":21,"value":996},"Three behaviours are worth knowing before you rely on it. Commands run in the session's working directory. Each has a two minute timeout. And a non-zero exit code aborts the entire skill invocation, so a ",{"type":16,"tag":24,"props":998,"children":1000},{"className":999},[],[1001],{"type":21,"value":1002},"grep",{"type":21,"value":1004}," that legitimately finds nothing will take the whole skill down with it. Guard those with ",{"type":16,"tag":24,"props":1006,"children":1008},{"className":1007},[],[1009],{"type":21,"value":1010},"|| true",{"type":21,"value":40},{"type":16,"tag":42,"props":1013,"children":1015},{"id":1014},"the-part-you-cannot-see-from-the-terminal",[1016],{"type":21,"value":1017},"The part you cannot see from the terminal",{"type":16,"tag":17,"props":1019,"children":1020},{},[1021,1026,1028,1034,1036,1042],{"type":16,"tag":24,"props":1022,"children":1024},{"className":1023},[],[1025],{"type":21,"value":646},{"type":21,"value":1027}," is where this gets interesting and where visibility drops off. A forked skill runs in a subagent, in the background by default, so you type ",{"type":16,"tag":24,"props":1029,"children":1031},{"className":1030},[],[1032],{"type":21,"value":1033},"/code-review",{"type":21,"value":1035},", get your prompt back, and the work happens somewhere you are not looking. Run two or three of those at once, across ",{"type":16,"tag":33,"props":1037,"children":1039},{"href":1038},"/guides/multiple-claude-code-sessions",[1040],{"type":21,"value":1041},"several sessions",{"type":21,"value":1043},", and the terminal genuinely cannot tell you what is still running.",{"type":16,"tag":17,"props":1045,"children":1046},{},[1047,1052],{"type":16,"tag":33,"props":1048,"children":1049},{"href":632},[1050],{"type":21,"value":1051},"Blooby",{"type":21,"value":1053}," puts that back in view: one mascot per session on your taskbar, with a badge that counts the subagents a session has in flight, so a forked skill finishing is something you see rather than something you go and check.",{"type":16,"tag":1055,"props":1056,"children":1057},"style",{},[1058],{"type":21,"value":1059},"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":7,"searchDepth":288,"depth":288,"links":1061},[1062,1063,1064,1065,1066,1067,1068],{"id":44,"depth":288,"text":47},{"id":226,"depth":288,"text":229},{"id":425,"depth":288,"text":428},{"id":567,"depth":288,"text":570},{"id":785,"depth":288,"text":788},{"id":945,"depth":288,"text":948},{"id":1014,"depth":288,"text":1017},"content:guides:claude-code-skills.md","content","guides/claude-code-skills.md","guides/claude-code-skills","md",1]