[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill:01M6F2QDW1NV77YY5WZW7Q79MH":3,"skill-same:01M6F2QDW1NV77YY5WZW7Q79MH":81},{"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":50,"linkOnly":51,"markdownContent":52,"markdownBody":53,"frontMatter":54,"refName":59,"commitSha":60,"skillDirectory":61,"forksCount":62,"repositoryHtmlUrl":63,"repositoryHomepageUrl":6,"ownerHtmlUrl":64,"ownerBlogUrl":6,"ownerDescription":65,"updatedAt":66,"install":67,"resources":80},"01M6F2QDW1NV77YY5WZW7Q79MH","marketplace-authoring",null,"Add, modify, or delete a skill or plugin in this repo — frontmatter shape, the seven metadata files a plugin touches, and the create\u002Fdelete checklists. Use when creating a new skill or plugin, removing one, or asking which files a plugin change must update.","laurigates\u002Fclaude-plugins","laurigates","https:\u002F\u002Favatars.githubusercontent.com\u002Fu\u002F13014001?v=4","01M6C59YHWS9C7KMXKSRX1YXNP","Lauri Gates","01M6C59YP2APG9YAM4DWYQYGFJ",59,"MIT","https:\u002F\u002Fgithub.com\u002Flaurigates\u002Fclaude-plugins\u002Fblob\u002Fmain\u002F.claude\u002Fskills\u002Fmarketplace-authoring\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,37,38,39,40,41,42,43,44,45,46,47,48,49],"marketplace","authoring","marketplace authoring","git","edit","write","2026","when","new","mkdir","which","read","scripts","update","compliance","delete","change","plugin","create","check","log","git log","Bash","use","files","repo","2026-11-10 10:12:30",false,"---\nname: marketplace-authoring\ndescription: Add, modify, or delete a skill or plugin in this repo — frontmatter shape, the seven metadata files a plugin touches, and the create\u002Fdelete checklists. Use when creating a new skill or plugin, removing one, or asking which files a plugin change must update.\nallowed-tools: Read, Edit, Write, Grep, Glob, Bash(mkdir *), Bash(jq *), Bash(git log *), Bash(bash scripts\u002Fcheck-docs-index.sh *), Bash(bash scripts\u002Fplugin-compliance-check.sh *), TodoWrite\nargument-hint: (no args)\ncreated: 2026-07-29\nmodified: 2026-11-02\nreviewed: 2026-07-29\n---\n\n# \u002Fmarketplace-authoring\n\nThe authoring procedures for this marketplace: how to create a skill, how to\ncreate a plugin, what to update when either changes, and how to delete one\nwithout leaving dangling metadata.\n\nPromoted out of `CLAUDE.md` (issue #2140) because all four are **procedures with\na clear trigger** — they do not need to be resident when the user is debugging a\nhook. `CLAUDE.md` keeps only the repo blurb, the rules index, and the gotchas.\n\nDetailed patterns live in the rules this skill names; it is the sequence, not a\nsecond copy of them.\n\n## Creating New Skills\n\nSee `.claude\u002Frules\u002Fskill-development.md` for detailed patterns.\n\n> **Note (Claude Code 2.1.157):** plugins placed in `.claude\u002Fskills` are now auto-loaded without a marketplace entry — handy for local or quick one-off plugins. This repo's *published* plugins still use the full marketplace + release-please lifecycle described in Plugin Lifecycle below.\n\n### Quick Start\n\n1. Create skill directory: `mkdir -p \u003Cplugin>\u002Fskills\u002F\u003Cskill-name>`\n2. Create `skill.md` with YAML frontmatter:\n   ```yaml\n   ---\n   name: \u003CSkill Name>\n   description: \u003C1-2 sentence description>\n   allowed-tools: Bash, Read, Grep, Glob, TodoWrite\n   created: YYYY-MM-DD\n   modified: YYYY-MM-DD\n   reviewed: YYYY-MM-DD\n   ---\n   ```\n3. Follow content structure: Core Expertise → Commands → Patterns → Quick Reference\n4. Include agentic optimizations table\n5. Update all metadata files (see Plugin Lifecycle section)\n\n### Skill Granularity Decision\n\n| Choose... | When... |\n|-----------|---------|\n| Single skill | Operations are related and share context |\n| Multiple skills | Distinct workflows, different user intents |\n\nExample: `bun-package-manager` (deps) vs `bun-development` (run\u002Ftest\u002Fbuild)\n\n## Creating User-Invocable Skills\n\nSkills are invocable via `\u002Fplugin:skill-name` syntax. See `.claude\u002Frules\u002Fskill-naming.md` for naming conventions.\n\n1. Create skill directory: `mkdir -p \u003Cplugin>\u002Fskills\u002F\u003Cskill-name>`\n2. Create `SKILL.md` with YAML frontmatter:\n   ```yaml\n   ---\n   name: \u003Cskill-name>\n   description: What it does. Use when...\n   args: \u003Carg-spec>\n   allowed-tools: Bash, Read\n   argument-hint: human hint\n   created: YYYY-MM-DD\n   modified: YYYY-MM-DD\n   reviewed: YYYY-MM-DD\n   ---\n   ```\n3. Include: Context → Execution → Post-actions\n\n## Plugin Lifecycle\n\n### Files to Update\n\nWhen creating, modifying, or deleting a plugin, update these files:\n\n| File | Location | Action |\n|------|----------|--------|\n| `plugin.json` | `\u003Cplugin>\u002F.claude-plugin\u002Fplugin.json` | Create\u002Fupdate plugin manifest |\n| `README.md` | `\u003Cplugin>\u002FREADME.md` | Create\u002Fupdate plugin documentation |\n| `marketplace.json` | `.claude-plugin\u002Fmarketplace.json` | Add\u002Fupdate\u002Fremove plugin entry |\n| `release-please-config.json` | Root | Add\u002Fremove plugin package config |\n| `.release-please-manifest.json` | Root | Add\u002Fremove plugin version entry |\n| `PLUGIN-MAP.md` | `docs\u002FPLUGIN-MAP.md` | Add\u002Fremove plugin from navigation map |\n| `settings.json` | `.claude\u002Fsettings.json` | Add\u002Fremove the plugin in `enabledPlugins` (`\u003Cplugin>@laurigates-claude-plugins`) — enforced by the `Plugin: Enablement drift` check |\n\n`docs\u002FCATALOG.md` is generated from `marketplace.json` and the plugin dirs, so it\nis not on this list: the `generate-catalog` pre-commit hook rewrites it, or run\n`just catalog`. CI fails a PR whose committed catalog is stale.\n\n### Creating a New Plugin\n\n> **Quick scaffold (Claude Code 2.1.157):** `claude plugin init \u003Cname>` scaffolds a new plugin in `.claude\u002Fskills` (auto-loaded, no marketplace entry needed). Use it for local\u002Fquick plugins; for plugins published from this repo, follow the full marketplace + release-please steps below.\n\n1. Create plugin directory structure (see Project Structure in `CLAUDE.md`)\n2. Create `.claude-plugin\u002Fplugin.json`:\n   ```json\n   {\n     \"$schema\": \"https:\u002F\u002Fjson.schemastore.org\u002Fclaude-code-plugin-manifest.json\",\n     \"name\": \"new-plugin\",\n     \"version\": \"1.0.0\",\n     \"description\": \"Plugin description\",\n     \"author\": {\n       \"name\": \"Lauri Gates\"\n     },\n     \"license\": \"MIT\",\n     \"repository\": \"https:\u002F\u002Fgithub.com\u002Flaurigates\u002Fclaude-plugins\",\n     \"keywords\": [\"keyword1\", \"keyword2\"]\n   }\n   ```\n   `license` (from the allowlist `[\"MIT\"]`), `author.name` and `repository` are required here and in the marketplace entry below (`homepage` is deliberately omitted, #2772); `bash scripts\u002Fplugin-compliance-check.sh --license-only` fails the PR without them. The repo-root MIT `LICENSE` covers every plugin, so no per-plugin `LICENSE` file is needed.\n3. Create `README.md` with plugin documentation\n4. Add entry to `.claude-plugin\u002Fmarketplace.json` (under the `plugins` array), carrying the same `author`, `license` and `repository` as the plugin's `plugin.json`:\n   ```json\n   {\n     \"name\": \"new-plugin\",\n     \"source\": \".\u002Fnew-plugin\",\n     \"description\": \"Plugin description\",\n     \"version\": \"1.0.0\",\n     \"author\": {\n       \"name\": \"Lauri Gates\"\n     },\n     \"license\": \"MIT\",\n     \"repository\": \"https:\u002F\u002Fgithub.com\u002Flaurigates\u002Fclaude-plugins\",\n     \"keywords\": [\"keyword1\", \"keyword2\"],\n     \"category\": \"category-name\"\n   }\n   ```\n   Note: marketplace.json has structure `{ \"name\": \"...\", \"plugins\": [...] }` — add to the `plugins` array. `python3 scripts\u002Fsync-plugin-configs.py --fix` generates this entry from the manifest.\n5. Add to `release-please-config.json`:\n   ```json\n   \"new-plugin\": {\n     \"component\": \"new-plugin\",\n     \"release-type\": \"simple\",\n     \"extra-files\": [\n       {\"type\": \"json\", \"path\": \".claude-plugin\u002Fplugin.json\", \"jsonpath\": \"$.version\"},\n       {\"type\": \"json\", \"path\": \"\u002F.claude-plugin\u002Fmarketplace.json\", \"jsonpath\": \"$.plugins[?(@.name=='new-plugin')].version\"}\n     ],\n     \"changelog-sections\": [\n       {\"type\": \"feat\", \"section\": \"Features\"},\n       {\"type\": \"fix\", \"section\": \"Bug Fixes\"},\n       {\"type\": \"perf\", \"section\": \"Performance\"},\n       {\"type\": \"refactor\", \"section\": \"Code Refactoring\"},\n       {\"type\": \"docs\", \"section\": \"Documentation\"}\n     ]\n   }\n   ```\n6. Add to `.release-please-manifest.json`:\n   ```json\n   \"new-plugin\": \"1.0.0\"\n   ```\n7. Enable it in `.claude\u002Fsettings.json` so the repo dogfoods it:\n   ```json\n   \"enabledPlugins\": { \"new-plugin@laurigates-claude-plugins\": true }\n   ```\n   The `Plugin: Enablement drift` check (`scripts\u002Fcheck-enabled-plugins-drift.sh`) fails CI if a marketplace plugin is left disabled.\n\n### Deleting a Plugin\n\n1. Remove plugin directory\n2. Remove entry from `.claude-plugin\u002Fmarketplace.json`\n3. Remove package from `release-please-config.json`\n4. Remove version from `.release-please-manifest.json`\n5. Remove the `\u003Cplugin>@laurigates-claude-plugins` key from `.claude\u002Fsettings.json` `enabledPlugins`\n\n## Development Workflow\n\n1. **Research documentation** - Use context7, web search\n2. **Plan skill structure** - Decide granularity, scope\n3. **Write skills** - Follow standard structure\n4. **Update all metadata files** - See Plugin Lifecycle section\n5. **Commit early** - Use conventional commit format (see `.claude\u002Frules\u002Fconventional-commits.md`)\n6. **Test** - Verify skills load and work\n7. **Create PR** - Use conventional commit format for title (drives automation)\n\n## Verify\n\nAfter a plugin add or delete, the two guards that catch dangling metadata:\n\n```\nbash scripts\u002Fcheck-docs-index.sh\nbash scripts\u002Fplugin-compliance-check.sh\n```\n\n`check-docs-index.sh` cross-checks the plugin set and per-plugin skill\u002Fagent\ncounts against disk across `README.md`, `docs\u002FPLUGIN-MAP.md`, and the d2\ndiagram — use `\u002Fdocs-refresh` to repair count drift it reports. It also gates\ntwo name-level invariants at ERROR severity (`--strict` therefore fails CI):\nthe **committed** `docs\u002Fdiagrams\u002Fplugin-relationships.svg` must render the same\nper-plugin labels its `.d2` source states (re-render with\n`d2 docs\u002Fdiagrams\u002Fplugin-relationships.d2 docs\u002Fdiagrams\u002Fplugin-relationships.svg`\n— never hand-edit the `.svg`), and every leading-cell `\u002F\u003Cns>:\u003Cname>` row in a\nplugin README must resolve to a skill directory (#2453).\n\n## Related\n\n- `.claude\u002Frules\u002Fskill-development.md` — skill creation patterns\n- `.claude\u002Frules\u002Fskill-naming.md` — namespace conventions for user-invocable skills\n- `.claude\u002Frules\u002Fskill-quality.md` — size limits, required sections, quality checklist\n- `.claude\u002Frules\u002Fplugin-structure.md` — plugin.json schema and directory layout\n- `.claude\u002Frules\u002Frelease-please.md` — version management and changelog automation\n- `.claude\u002Frules\u002Fconventional-commits.md` — the commit\u002FPR-title format that drives release-please\n- `.claude\u002Frules\u002Fskill-consolidation.md` — merging or deleting skills (distinct from the plugin-level checklist here)\n- `\u002Fdocs-refresh` — repairs catalog count drift after a skill or plugin lands\n","# \u002Fmarketplace-authoring\n\nThe authoring procedures for this marketplace: how to create a skill, how to\ncreate a plugin, what to update when either changes, and how to delete one\nwithout leaving dangling metadata.\n\nPromoted out of `CLAUDE.md` (issue #2140) because all four are **procedures with\na clear trigger** — they do not need to be resident when the user is debugging a\nhook. `CLAUDE.md` keeps only the repo blurb, the rules index, and the gotchas.\n\nDetailed patterns live in the rules this skill names; it is the sequence, not a\nsecond copy of them.\n\n## Creating New Skills\n\nSee `.claude\u002Frules\u002Fskill-development.md` for detailed patterns.\n\n> **Note (Claude Code 2.1.157):** plugins placed in `.claude\u002Fskills` are now auto-loaded without a marketplace entry — handy for local or quick one-off plugins. This repo's *published* plugins still use the full marketplace + release-please lifecycle described in Plugin Lifecycle below.\n\n### Quick Start\n\n1. Create skill directory: `mkdir -p \u003Cplugin>\u002Fskills\u002F\u003Cskill-name>`\n2. Create `skill.md` with YAML frontmatter:\n   ```yaml\n   ---\n   name: \u003CSkill Name>\n   description: \u003C1-2 sentence description>\n   allowed-tools: Bash, Read, Grep, Glob, TodoWrite\n   created: YYYY-MM-DD\n   modified: YYYY-MM-DD\n   reviewed: YYYY-MM-DD\n   ---\n   ```\n3. Follow content structure: Core Expertise → Commands → Patterns → Quick Reference\n4. Include agentic optimizations table\n5. Update all metadata files (see Plugin Lifecycle section)\n\n### Skill Granularity Decision\n\n| Choose... | When... |\n|-----------|---------|\n| Single skill | Operations are related and share context |\n| Multiple skills | Distinct workflows, different user intents |\n\nExample: `bun-package-manager` (deps) vs `bun-development` (run\u002Ftest\u002Fbuild)\n\n## Creating User-Invocable Skills\n\nSkills are invocable via `\u002Fplugin:skill-name` syntax. See `.claude\u002Frules\u002Fskill-naming.md` for naming conventions.\n\n1. Create skill directory: `mkdir -p \u003Cplugin>\u002Fskills\u002F\u003Cskill-name>`\n2. Create `SKILL.md` with YAML frontmatter:\n   ```yaml\n   ---\n   name: \u003Cskill-name>\n   description: What it does. Use when...\n   args: \u003Carg-spec>\n   allowed-tools: Bash, Read\n   argument-hint: human hint\n   created: YYYY-MM-DD\n   modified: YYYY-MM-DD\n   reviewed: YYYY-MM-DD\n   ---\n   ```\n3. Include: Context → Execution → Post-actions\n\n## Plugin Lifecycle\n\n### Files to Update\n\nWhen creating, modifying, or deleting a plugin, update these files:\n\n| File | Location | Action |\n|------|----------|--------|\n| `plugin.json` | `\u003Cplugin>\u002F.claude-plugin\u002Fplugin.json` | Create\u002Fupdate plugin manifest |\n| `README.md` | `\u003Cplugin>\u002FREADME.md` | Create\u002Fupdate plugin documentation |\n| `marketplace.json` | `.claude-plugin\u002Fmarketplace.json` | Add\u002Fupdate\u002Fremove plugin entry |\n| `release-please-config.json` | Root | Add\u002Fremove plugin package config |\n| `.release-please-manifest.json` | Root | Add\u002Fremove plugin version entry |\n| `PLUGIN-MAP.md` | `docs\u002FPLUGIN-MAP.md` | Add\u002Fremove plugin from navigation map |\n| `settings.json` | `.claude\u002Fsettings.json` | Add\u002Fremove the plugin in `enabledPlugins` (`\u003Cplugin>@laurigates-claude-plugins`) — enforced by the `Plugin: Enablement drift` check |\n\n`docs\u002FCATALOG.md` is generated from `marketplace.json` and the plugin dirs, so it\nis not on this list: the `generate-catalog` pre-commit hook rewrites it, or run\n`just catalog`. CI fails a PR whose committed catalog is stale.\n\n### Creating a New Plugin\n\n> **Quick scaffold (Claude Code 2.1.157):** `claude plugin init \u003Cname>` scaffolds a new plugin in `.claude\u002Fskills` (auto-loaded, no marketplace entry needed). Use it for local\u002Fquick plugins; for plugins published from this repo, follow the full marketplace + release-please steps below.\n\n1. Create plugin directory structure (see Project Structure in `CLAUDE.md`)\n2. Create `.claude-plugin\u002Fplugin.json`:\n   ```json\n   {\n     \"$schema\": \"https:\u002F\u002Fjson.schemastore.org\u002Fclaude-code-plugin-manifest.json\",\n     \"name\": \"new-plugin\",\n     \"version\": \"1.0.0\",\n     \"description\": \"Plugin description\",\n     \"author\": {\n       \"name\": \"Lauri Gates\"\n     },\n     \"license\": \"MIT\",\n     \"repository\": \"https:\u002F\u002Fgithub.com\u002Flaurigates\u002Fclaude-plugins\",\n     \"keywords\": [\"keyword1\", \"keyword2\"]\n   }\n   ```\n   `license` (from the allowlist `[\"MIT\"]`), `author.name` and `repository` are required here and in the marketplace entry below (`homepage` is deliberately omitted, #2772); `bash scripts\u002Fplugin-compliance-check.sh --license-only` fails the PR without them. The repo-root MIT `LICENSE` covers every plugin, so no per-plugin `LICENSE` file is needed.\n3. Create `README.md` with plugin documentation\n4. Add entry to `.claude-plugin\u002Fmarketplace.json` (under the `plugins` array), carrying the same `author`, `license` and `repository` as the plugin's `plugin.json`:\n   ```json\n   {\n     \"name\": \"new-plugin\",\n     \"source\": \".\u002Fnew-plugin\",\n     \"description\": \"Plugin description\",\n     \"version\": \"1.0.0\",\n     \"author\": {\n       \"name\": \"Lauri Gates\"\n     },\n     \"license\": \"MIT\",\n     \"repository\": \"https:\u002F\u002Fgithub.com\u002Flaurigates\u002Fclaude-plugins\",\n     \"keywords\": [\"keyword1\", \"keyword2\"],\n     \"category\": \"category-name\"\n   }\n   ```\n   Note: marketplace.json has structure `{ \"name\": \"...\", \"plugins\": [...] }` — add to the `plugins` array. `python3 scripts\u002Fsync-plugin-configs.py --fix` generates this entry from the manifest.\n5. Add to `release-please-config.json`:\n   ```json\n   \"new-plugin\": {\n     \"component\": \"new-plugin\",\n     \"release-type\": \"simple\",\n     \"extra-files\": [\n       {\"type\": \"json\", \"path\": \".claude-plugin\u002Fplugin.json\", \"jsonpath\": \"$.version\"},\n       {\"type\": \"json\", \"path\": \"\u002F.claude-plugin\u002Fmarketplace.json\", \"jsonpath\": \"$.plugins[?(@.name=='new-plugin')].version\"}\n     ],\n     \"changelog-sections\": [\n       {\"type\": \"feat\", \"section\": \"Features\"},\n       {\"type\": \"fix\", \"section\": \"Bug Fixes\"},\n       {\"type\": \"perf\", \"section\": \"Performance\"},\n       {\"type\": \"refactor\", \"section\": \"Code Refactoring\"},\n       {\"type\": \"docs\", \"section\": \"Documentation\"}\n     ]\n   }\n   ```\n6. Add to `.release-please-manifest.json`:\n   ```json\n   \"new-plugin\": \"1.0.0\"\n   ```\n7. Enable it in `.claude\u002Fsettings.json` so the repo dogfoods it:\n   ```json\n   \"enabledPlugins\": { \"new-plugin@laurigates-claude-plugins\": true }\n   ```\n   The `Plugin: Enablement drift` check (`scripts\u002Fcheck-enabled-plugins-drift.sh`) fails CI if a marketplace plugin is left disabled.\n\n### Deleting a Plugin\n\n1. Remove plugin directory\n2. Remove entry from `.claude-plugin\u002Fmarketplace.json`\n3. Remove package from `release-please-config.json`\n4. Remove version from `.release-please-manifest.json`\n5. Remove the `\u003Cplugin>@laurigates-claude-plugins` key from `.claude\u002Fsettings.json` `enabledPlugins`\n\n## Development Workflow\n\n1. **Research documentation** - Use context7, web search\n2. **Plan skill structure** - Decide granularity, scope\n3. **Write skills** - Follow standard structure\n4. **Update all metadata files** - See Plugin Lifecycle section\n5. **Commit early** - Use conventional commit format (see `.claude\u002Frules\u002Fconventional-commits.md`)\n6. **Test** - Verify skills load and work\n7. **Create PR** - Use conventional commit format for title (drives automation)\n\n## Verify\n\nAfter a plugin add or delete, the two guards that catch dangling metadata:\n\n```\nbash scripts\u002Fcheck-docs-index.sh\nbash scripts\u002Fplugin-compliance-check.sh\n```\n\n`check-docs-index.sh` cross-checks the plugin set and per-plugin skill\u002Fagent\ncounts against disk across `README.md`, `docs\u002FPLUGIN-MAP.md`, and the d2\ndiagram — use `\u002Fdocs-refresh` to repair count drift it reports. It also gates\ntwo name-level invariants at ERROR severity (`--strict` therefore fails CI):\nthe **committed** `docs\u002Fdiagrams\u002Fplugin-relationships.svg` must render the same\nper-plugin labels its `.d2` source states (re-render with\n`d2 docs\u002Fdiagrams\u002Fplugin-relationships.d2 docs\u002Fdiagrams\u002Fplugin-relationships.svg`\n— never hand-edit the `.svg`), and every leading-cell `\u002F\u003Cns>:\u003Cname>` row in a\nplugin README must resolve to a skill directory (#2453).\n\n## Related\n\n- `.claude\u002Frules\u002Fskill-development.md` — skill creation patterns\n- `.claude\u002Frules\u002Fskill-naming.md` — namespace conventions for user-invocable skills\n- `.claude\u002Frules\u002Fskill-quality.md` — size limits, required sections, quality checklist\n- `.claude\u002Frules\u002Fplugin-structure.md` — plugin.json schema and directory layout\n- `.claude\u002Frules\u002Frelease-please.md` — version management and changelog automation\n- `.claude\u002Frules\u002Fconventional-commits.md` — the commit\u002FPR-title format that drives release-please\n- `.claude\u002Frules\u002Fskill-consolidation.md` — merging or deleting skills (distinct from the plugin-level checklist here)\n- `\u002Fdocs-refresh` — repairs catalog count drift after a skill or plugin lands\n",{"name":5,"created":55,"modified":56,"reviewed":55,"description":7,"allowed-tools":57,"argument-hint":58},1785283200000,1793577600000,"Read, Edit, Write, Grep, Glob, Bash(mkdir *), Bash(jq *), Bash(git log *), Bash(bash scripts\u002Fcheck-docs-index.sh *), Bash(bash scripts\u002Fplugin-compliance-check.sh *), TodoWrite","(no args)","main","51e0f120e9cb48382ee27086b2e8be32eff0ac9a",".claude\u002Fskills\u002Fmarketplace-authoring",6,"https:\u002F\u002Fgithub.com\u002Flaurigates\u002Fclaude-plugins","https:\u002F\u002Fgithub.com\u002Flaurigates","Linux enthusiast, cloud engineer, neovim addict, electronics hobbyist.","2026-11-13 03:22:01",{"source":8,"skillName":5,"commands":68,"prompt":78,"zipAvailable":79},[69,72,75],{"tool":70,"command":71},"npx","npx skills add laurigates\u002Fclaude-plugins --skill marketplace-authoring",{"tool":73,"command":74},"bunx","bunx skills add laurigates\u002Fclaude-plugins --skill marketplace-authoring",{"tool":76,"command":77},"pnpm","pnpm dlx skills add laurigates\u002Fclaude-plugins --skill marketplace-authoring","安装技能，技能地址：https:\u002F\u002Fgithub.com\u002Flaurigates\u002Fclaude-plugins\u002Fblob\u002Fmain\u002F.claude\u002Fskills\u002Fmarketplace-authoring\u002FSKILL.md",true,[],[82,107,126,142,162,192],{"skillNo":83,"name":84,"nameZh":6,"description":85,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":86,"categories":87,"keywords":91,"publishedAt":50},"01M70PFHMH9ADY0CRE6047Y4B2","kitty-show-image","Show the user an image with a note on what to judge, via a file send or a labelled kitty tab. Use when the user must see an image, or icat fails with no \u002Fdev\u002Ftty.","https:\u002F\u002Fgithub.com\u002Flaurigates\u002Fclaude-plugins\u002Fblob\u002Fmain\u002Fkitty-plugin\u002Fskills\u002Fkitty-show-image\u002FSKILL.md",[88],{"categoryNo":89,"categoryName":90,"taxonomyType":21,"taxonomyTypeDesc":22},"01JBSEEDCAT000000000000016","图像与多媒体",[92,93,94,95,96,97,98,99,100,101,47,31,46,102,103,104,105,106,30,35],"show","kitty show image","image","kitty","show image","ls","get","send","open","dev","file","text","with","xdg","via",{"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":113,"publishedAt":50},"01M70PFEN18HKQ4RCQ1VPGMPTB","kitty-session-persistence","Snapshot and restore kitty terminal sessions on macOS. Use when surviving WindowServer hangs without losing tabs, configuring snapshots, or restoring after a force-reboot.","https:\u002F\u002Fgithub.com\u002Flaurigates\u002Fclaude-plugins\u002Fblob\u002Fmain\u002Fkitty-plugin\u002Fskills\u002Fkitty-session-persistence\u002FSKILL.md",[],[95,114,115,116,117,118,31,46,119,120,121,30,35,29,28,122,123,124,125,47],"kitty session persistence","session","persistence","false","snapshots","uname","reboot","terminal","snapshot","macos","sessions","restore",{"skillNo":127,"name":128,"nameZh":6,"description":129,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":130,"categories":131,"keywords":132,"publishedAt":50},"01M70PFC77XGXCVQ1543VGZHYR","kitty-remote-control","Safe kitty remote control from an agent — read panes with kitty @ ls\u002Fget-text, notify, and never mutate the live terminal unasked. Use when running inside kitty.","https:\u002F\u002Fgithub.com\u002Flaurigates\u002Fclaude-plugins\u002Fblob\u002Fmain\u002Fkitty-plugin\u002Fskills\u002Fkitty-remote-control\u002FSKILL.md",[],[133,134,95,135,136,97,137,138,98,139,140,47,31,141,46,103,104,121,30,35],"kitty remote control","remote","control","remote control","running","never","panes","notify","query",{"skillNo":143,"name":144,"nameZh":6,"description":145,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":146,"categories":147,"keywords":148,"publishedAt":50},"01M70P6WVMCT5JG4SACTM69AF9","docs-reference-check","Dangling doc-reference gate: flag markdown naming repo paths or relative links that no longer exist. Use when docs cite moved\u002Fdeleted files, or wiring a doc-drift lint.","https:\u002F\u002Fgithub.com\u002Flaurigates\u002Fclaude-plugins\u002Fblob\u002Fmain\u002Fdocumentation-plugin\u002Fskills\u002Fdocs-reference-check\u002FSKILL.md",[],[149,43,150,151,152,153,154,49,48,155,47,31,46,156,102,157,158,159,160,161],"docs reference check","reference check","reference","docs","links","python3","auto","drift","lint","wiring","chezmoi","references","cp",{"skillNo":163,"name":164,"nameZh":6,"description":165,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":166,"categories":167,"keywords":177,"publishedAt":50},"01M6C6NDE7DAQGNWSF22J5CJ0Z","youtube-upload","Upload a video to YouTube via the Data API v3 and edit its title, description, tags or thumbnail afterwards. Use when publishing or retitling a YouTube video.","https:\u002F\u002Fgithub.com\u002Flaurigates\u002Fclaude-plugins\u002Fblob\u002Fmain\u002Fyoutube-plugin\u002Fskills\u002Fyoutube-upload\u002FSKILL.md",[168,171,172],{"categoryNo":169,"categoryName":170,"taxonomyType":21,"taxonomyTypeDesc":22},"01JBSEEDCAT000000000000010","后端与接口",{"categoryNo":89,"categoryName":90,"taxonomyType":21,"taxonomyTypeDesc":22},{"categoryNo":173,"categoryName":174,"taxonomyType":175,"taxonomyTypeDesc":176},"01JBSEEDCAT000000000000030","开发工程师","PROFESSION","适用职业",[178,179,180,181,154,182,35,183,28,184,185,186,47,46,102,187,188,31,189,190,191,106,30],"youtube upload","upload","youtube","Video","run","uv run","publishing","data","uv","api","v3","tags","id","title",{"skillNo":193,"name":194,"nameZh":6,"description":195,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":196,"categories":197,"keywords":199,"publishedAt":50},"01M6C6NABWW1X58KJJM4F6GQMQ","youtube-studio-share","Share a private YouTube video with a whole Google Workspace organization by scripting YouTube Studio in the browser. Use when a video must be org-only.","https:\u002F\u002Fgithub.com\u002Flaurigates\u002Fclaude-plugins\u002Fblob\u002Fmain\u002Fyoutube-plugin\u002Fskills\u002Fyoutube-studio-share\u002FSKILL.md",[198],{"categoryNo":19,"categoryName":20,"taxonomyType":21,"taxonomyTypeDesc":22},[200,201,202,203,180,181,204,205,206,207,208,35,209,210,211,212,47,213,31,104,214,30],"youtube studio share","share","youtube studio","studio","browser","javascript","scripting","google workspace","workspace","tool","google","only","MCP","chrome","organization"]