[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill:01M6FZHAK94HTGYYVNP2P3K9C0":3,"skill-same:01M6FZHAK94HTGYYVNP2P3K9C0":73},{"skillNo":4,"name":5,"nameZh":6,"description":7,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":16,"categories":17,"keywords":23,"publishedAt":37,"linkOnly":38,"markdownContent":39,"markdownBody":40,"frontMatter":41,"refName":43,"commitSha":44,"skillDirectory":45,"forksCount":46,"repositoryHtmlUrl":47,"repositoryHomepageUrl":48,"ownerHtmlUrl":49,"ownerBlogUrl":50,"ownerDescription":51,"updatedAt":52,"install":53,"resources":66},"01M6FZHAK94HTGYYVNP2P3K9C0","create-local-skill",null,"Scaffold a new user-local skill in ~\u002F.codex\u002Fskills (and optionally ~\u002F.claude\u002Fskills), then offer to promote it to a personal fork of agentic-skills","GeorgeQLe\u002Fagentic-skills","GeorgeQLe","https:\u002F\u002Favatars.githubusercontent.com\u002Fu\u002F21134126?v=4","01M6D2JP418S0VGJGF8M93EC3H","George Le","01M6D2JPBAKYD82TA5FS6HKQ3D",1,"MIT","https:\u002F\u002Fgithub.com\u002FGeorgeQLe\u002Fagentic-skills\u002Fblob\u002Fmaster\u002Fpacks\u002Fskill-dev\u002Fcodex\u002Fcreate-local-skill\u002FSKILL.md",[18],{"categoryNo":19,"categoryName":20,"taxonomyType":21,"taxonomyTypeDesc":22},"01JBSEEDCAT000000000000023","Skill与智能体开发","SCENARIO","使用场景",[24,25,26,27,28,29,30,31,32,33,34,35,36],"create","local skill","local","create local skill","personal","agentic","codex","scaffold","promote","execution","user","v0","it","2026-11-10 10:12:30",false,"---\nname: create-local-skill\ndescription: Scaffold a new user-local skill in ~\u002F.codex\u002Fskills (and optionally ~\u002F.claude\u002Fskills), then offer to promote it to a personal fork of agentic-skills\ntype: execution\nversion: v0.3\n---\n\n# Create Local Skill\n\nInvoke as `$create-local-skill`.\n\nScaffold a new **user-local** skill directly into `~\u002F.codex\u002Fskills\u002F\u003Cname>\u002F` (and optionally `~\u002F.claude\u002Fskills\u002F\u003Cname>\u002F`) as a real directory. The upstream agentic-skills repo is not touched. At the end, offer to **promote** the skill by copying it into the user's personal fork.\n\n`npx skillpacks uninstall-global` only removes skillpacks-owned skill installs whose source is inside the agentic-skills repo, so user-authored real directories are safe from upstream sync.\n\n## Process\n\n1. Parse `\u003Cskill-name>` and optional description from arguments. If missing, ask for:\n   - Skill name (kebab-case)\n   - One-line description\n   - Type (default `execution`)\n   - Whether to also create a Claude version in `~\u002F.claude\u002Fskills\u002F\u003Cname>\u002F`\n\n2. Validate `$HOME\u002F.codex\u002Fskills\u002F\u003Cname>`:\n   - If it is a symlink into `agentic-skills\u002Fbase\u002F` or `agentic-skills\u002Fpacks\u002F`, refuse — it would shadow a repo-managed skill.\n   - If it is a real dir or user-owned symlink, confirm before overwriting.\n\n3. Write `~\u002F.codex\u002Fskills\u002F\u003Cname>\u002FSKILL.md`:\n\n   ```markdown\n   ---\n   name: \u003Cname>\n   description: \u003Cdescription>\n   type: \u003Ctype>\n   version: v0.0\n   ---\n\n   # \u003CTitle>\n\n   Invoke as `$\u003Cname>`.\n\n   \u003C1-2 sentence purpose statement.>\n\n   ## Workflow\n\n   1. \u003Cstep>\n   2. \u003Cstep>\n   3. \u003Cstep>\n\n   ## Output\n\n   \u003Cwhat the skill produces>\n   ```\n\n4. Optionally mirror to `~\u002F.claude\u002Fskills\u002F\u003Cname>\u002FSKILL.md` (Claude frontmatter convention — no `Invoke as` line; add `argument-hint` if relevant).\n\n5. Report created paths and remind the user of the runner-specific reload path. Claude Code should run `\u002Freload-skills` first; `\u002Fclear` starts a new empty-context conversation and can pick up the refreshed registry; restart if the top-level `.claude\u002Fskills` directory did not exist at session start or the skill is still invisible. Codex should start a fresh Codex CLI session if the `$` skill list remains stale.\n\n6. Ask: \"Would you like to promote this skill to your personal fork of agentic-skills?\"\n\n   If yes:\n   - Ask for the path to their fork. If they don't have one, explain: fork on GitHub and clone, or `git remote set-url origin \u003Ctheir-repo>` to repoint an existing clone.\n   - Verify with `git -C \u003Cpath> rev-parse --show-toplevel`.\n   - Copy the skill into `\u003Cfork>\u002Fbase\u002Fcodex\u002F\u003Cname>\u002F` (and `\u003Cfork>\u002Fbase\u002Fclaude\u002F\u003Cname>\u002F` if applicable), or into a `\u003Cfork>\u002Fpersonal\u002F...` subtree if the user prefers to segregate personal skills.\n   - If the skill is promoted into a current `agentic-skills` fork's `base\u002F` or `packs\u002F` tree, refresh that fork's public skills catalog export by running node scripts\u002Fgenerate-skills-catalog-export.mjs and scripts\u002Fvalidate-skills-catalog-export.sh.\n   - If the promoted skill needs benchmark coverage, update the separate `agentic-skills-benchmarks` fork\u002Frepo: import the fork's export, then add either a deterministic custom setup under `tests\u002Flayer4\u002Fsetups\u002F` or an explicit blocked row with `blocked_reason` and `next_command`.\n   - For promoted custom setups, include a deterministic quality rubric when practical, or record why quality scoring is blocked\u002Fdeferred instead of adding a subjective rubric.\n   - Recommend `pnpm catalog:check` and `pnpm bench:coverage` from the benchmark repo before benchmark coverage changes are committed.\n   - Run `git status` in the fork and suggest a commit message. Do not commit or push — leave that to the user.\n\n7. Safety note: pushing to the upstream agentic-skills repo requires write access. Plain clones without access are rejected at the remote; forks push to the user's own repo. Cannot route a user's experimental skill into the shared upstream.\n\n## Notes\n\n- Never write into this repo's `base\u002F` or `packs\u002F` directories. Target paths are always under `$HOME\u002F.codex\u002Fskills`, `$HOME\u002F.claude\u002Fskills`, or an explicitly-supplied personal fork path.\n- Do not create extra docs beyond `SKILL.md` unless asked.\n\n## Default Shipping Contract\n\nFollow the shared shipping contract convention in CLAUDE.md.\n","# Create Local Skill\n\nInvoke as `$create-local-skill`.\n\nScaffold a new **user-local** skill directly into `~\u002F.codex\u002Fskills\u002F\u003Cname>\u002F` (and optionally `~\u002F.claude\u002Fskills\u002F\u003Cname>\u002F`) as a real directory. The upstream agentic-skills repo is not touched. At the end, offer to **promote** the skill by copying it into the user's personal fork.\n\n`npx skillpacks uninstall-global` only removes skillpacks-owned skill installs whose source is inside the agentic-skills repo, so user-authored real directories are safe from upstream sync.\n\n## Process\n\n1. Parse `\u003Cskill-name>` and optional description from arguments. If missing, ask for:\n   - Skill name (kebab-case)\n   - One-line description\n   - Type (default `execution`)\n   - Whether to also create a Claude version in `~\u002F.claude\u002Fskills\u002F\u003Cname>\u002F`\n\n2. Validate `$HOME\u002F.codex\u002Fskills\u002F\u003Cname>`:\n   - If it is a symlink into `agentic-skills\u002Fbase\u002F` or `agentic-skills\u002Fpacks\u002F`, refuse — it would shadow a repo-managed skill.\n   - If it is a real dir or user-owned symlink, confirm before overwriting.\n\n3. Write `~\u002F.codex\u002Fskills\u002F\u003Cname>\u002FSKILL.md`:\n\n   ```markdown\n   ---\n   name: \u003Cname>\n   description: \u003Cdescription>\n   type: \u003Ctype>\n   version: v0.0\n   ---\n\n   # \u003CTitle>\n\n   Invoke as `$\u003Cname>`.\n\n   \u003C1-2 sentence purpose statement.>\n\n   ## Workflow\n\n   1. \u003Cstep>\n   2. \u003Cstep>\n   3. \u003Cstep>\n\n   ## Output\n\n   \u003Cwhat the skill produces>\n   ```\n\n4. Optionally mirror to `~\u002F.claude\u002Fskills\u002F\u003Cname>\u002FSKILL.md` (Claude frontmatter convention — no `Invoke as` line; add `argument-hint` if relevant).\n\n5. Report created paths and remind the user of the runner-specific reload path. Claude Code should run `\u002Freload-skills` first; `\u002Fclear` starts a new empty-context conversation and can pick up the refreshed registry; restart if the top-level `.claude\u002Fskills` directory did not exist at session start or the skill is still invisible. Codex should start a fresh Codex CLI session if the `$` skill list remains stale.\n\n6. Ask: \"Would you like to promote this skill to your personal fork of agentic-skills?\"\n\n   If yes:\n   - Ask for the path to their fork. If they don't have one, explain: fork on GitHub and clone, or `git remote set-url origin \u003Ctheir-repo>` to repoint an existing clone.\n   - Verify with `git -C \u003Cpath> rev-parse --show-toplevel`.\n   - Copy the skill into `\u003Cfork>\u002Fbase\u002Fcodex\u002F\u003Cname>\u002F` (and `\u003Cfork>\u002Fbase\u002Fclaude\u002F\u003Cname>\u002F` if applicable), or into a `\u003Cfork>\u002Fpersonal\u002F...` subtree if the user prefers to segregate personal skills.\n   - If the skill is promoted into a current `agentic-skills` fork's `base\u002F` or `packs\u002F` tree, refresh that fork's public skills catalog export by running node scripts\u002Fgenerate-skills-catalog-export.mjs and scripts\u002Fvalidate-skills-catalog-export.sh.\n   - If the promoted skill needs benchmark coverage, update the separate `agentic-skills-benchmarks` fork\u002Frepo: import the fork's export, then add either a deterministic custom setup under `tests\u002Flayer4\u002Fsetups\u002F` or an explicit blocked row with `blocked_reason` and `next_command`.\n   - For promoted custom setups, include a deterministic quality rubric when practical, or record why quality scoring is blocked\u002Fdeferred instead of adding a subjective rubric.\n   - Recommend `pnpm catalog:check` and `pnpm bench:coverage` from the benchmark repo before benchmark coverage changes are committed.\n   - Run `git status` in the fork and suggest a commit message. Do not commit or push — leave that to the user.\n\n7. Safety note: pushing to the upstream agentic-skills repo requires write access. Plain clones without access are rejected at the remote; forks push to the user's own repo. Cannot route a user's experimental skill into the shared upstream.\n\n## Notes\n\n- Never write into this repo's `base\u002F` or `packs\u002F` directories. Target paths are always under `$HOME\u002F.codex\u002Fskills`, `$HOME\u002F.claude\u002Fskills`, or an explicitly-supplied personal fork path.\n- Do not create extra docs beyond `SKILL.md` unless asked.\n\n## Default Shipping Contract\n\nFollow the shared shipping contract convention in CLAUDE.md.\n",{"name":5,"type":33,"version":42,"description":7},"v0.3","master","96e2912af886dd1606b1b97df707715aef062b02","packs\u002Fskill-dev\u002Fcodex\u002Fcreate-local-skill",0,"https:\u002F\u002Fgithub.com\u002FGeorgeQLe\u002Fagentic-skills","https:\u002F\u002Fagentic-skills-blush.vercel.app","https:\u002F\u002Fgithub.com\u002FGeorgeQLe","georgeqle.com","George Le is a futurist and serial tech entrepreneur who wants to work toward a world where humanity is free from robotic tasks.","2026-11-10 04:07:24",{"source":8,"skillName":5,"commands":54,"prompt":64,"zipAvailable":65},[55,58,61],{"tool":56,"command":57},"npx","npx skills add GeorgeQLe\u002Fagentic-skills --skill create-local-skill",{"tool":59,"command":60},"bunx","bunx skills add GeorgeQLe\u002Fagentic-skills --skill create-local-skill",{"tool":62,"command":63},"pnpm","pnpm dlx skills add GeorgeQLe\u002Fagentic-skills --skill create-local-skill","安装技能，技能地址：https:\u002F\u002Fgithub.com\u002FGeorgeQLe\u002Fagentic-skills\u002Fblob\u002Fmaster\u002Fpacks\u002Fskill-dev\u002Fcodex\u002Fcreate-local-skill\u002FSKILL.md",true,[67],{"path":68,"resourceType":69,"resourceTypeDesc":70,"sizeBytes":71,"sourceHtmlUrl":72},"CHANGELOG.md","REFERENCE","参考文档",594,"https:\u002F\u002Fgithub.com\u002FGeorgeQLe\u002Fagentic-skills\u002Fblob\u002Fmaster\u002Fpacks\u002Fskill-dev\u002Fcodex\u002Fcreate-local-skill\u002FCHANGELOG.md",[74,86,96,107,118,129],{"skillNo":75,"name":76,"nameZh":6,"description":77,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":78,"categories":79,"keywords":80,"publishedAt":37},"01M6G0NJES15RJKZE6YZ0TSYGF","source-checkout-allowed","Valid source-checkout-only fixture.","https:\u002F\u002Fgithub.com\u002FGeorgeQLe\u002Fagentic-skills\u002Fblob\u002Fmaster\u002Ftests\u002Ffixtures\u002Fskill-install-routing\u002Fvalid\u002Fsource-checkout-allowed\u002FSKILL.md",[],[81,82,83,84,35,85],"source checkout allowed","checkout","fixture","only","valid",{"skillNo":87,"name":88,"nameZh":6,"description":89,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":90,"categories":91,"keywords":92,"publishedAt":37},"01M6G0NFZ3R1MNB1E3DVTM0WB7","deck-install-valid","Valid deck install fixture.","https:\u002F\u002Fgithub.com\u002FGeorgeQLe\u002Fagentic-skills\u002Fblob\u002Fmaster\u002Ftests\u002Ffixtures\u002Fskill-install-routing\u002Fvalid\u002Fdeck-install\u002FSKILL.md",[],[93,94,95,85,83,35],"deck install valid","deck","install",{"skillNo":97,"name":98,"nameZh":6,"description":99,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":100,"categories":101,"keywords":102,"publishedAt":37},"01M6G0ND3QZQC4MDZ9NVB97PT2","codex-pack-guard-valid","Valid Codex Pack Availability Guard fixture.","https:\u002F\u002Fgithub.com\u002FGeorgeQLe\u002Fagentic-skills\u002Fblob\u002Fmaster\u002Ftests\u002Ffixtures\u002Fskill-install-routing\u002Fvalid\u002Fcodex-pack-guard\u002FSKILL.md",[],[103,104,105,85,30,106,83,35],"codex pack guard valid","pack","guard","availability",{"skillNo":108,"name":109,"nameZh":6,"description":110,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":111,"categories":112,"keywords":114,"publishedAt":37},"01M6G0NA9YB3NKGZKD3S96JMNB","codex-missing-skill-valid","Valid Codex missing skill fallback fixture.","https:\u002F\u002Fgithub.com\u002FGeorgeQLe\u002Fagentic-skills\u002Fblob\u002Fmaster\u002Ftests\u002Ffixtures\u002Fskill-install-routing\u002Fvalid\u002Fcodex-missing-skill-fallback\u002FSKILL.md",[113],{"categoryNo":19,"categoryName":20,"taxonomyType":21,"taxonomyTypeDesc":22},[115,116,85,30,35,117,83],"codex missing skill valid","missing","fallback",{"skillNo":119,"name":120,"nameZh":6,"description":121,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":122,"categories":123,"keywords":125,"publishedAt":37},"01M6G0N7PC0EKFD40ZWQAXSAQ9","codex-base-skill-fallback-valid","Valid Codex base skill fallback fixture.","https:\u002F\u002Fgithub.com\u002FGeorgeQLe\u002Fagentic-skills\u002Fblob\u002Fmaster\u002Ftests\u002Ffixtures\u002Fskill-install-routing\u002Fvalid\u002Fcodex-base-skill-fallback\u002FSKILL.md",[124],{"categoryNo":19,"categoryName":20,"taxonomyType":21,"taxonomyTypeDesc":22},[85,30,117,126,127,128,35,83],"base skill","codex base skill fallback valid","base",{"skillNo":130,"name":131,"nameZh":6,"description":132,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":133,"categories":134,"keywords":135,"publishedAt":37},"01M6G0N4VRR2YKZQ6N3Y6S2BQA","claude-pack-guard-valid","Valid Claude Pack Availability Guard fixture.","https:\u002F\u002Fgithub.com\u002FGeorgeQLe\u002Fagentic-skills\u002Fblob\u002Fmaster\u002Ftests\u002Ffixtures\u002Fskill-install-routing\u002Fvalid\u002Fclaude-pack-guard\u002FSKILL.md",[],[85,105,104,136,106,35,83],"claude pack guard valid"]