[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill:01M6CY0EC8P7NZSA2W5WS5MM6A":3,"skill-same:01M6CY0EC8P7NZSA2W5WS5MM6A":217},{"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":35,"linkOnly":36,"markdownContent":37,"markdownBody":38,"frontMatter":39,"refName":45,"commitSha":46,"skillDirectory":47,"forksCount":48,"repositoryHtmlUrl":49,"repositoryHomepageUrl":6,"ownerHtmlUrl":50,"ownerBlogUrl":51,"ownerDescription":6,"updatedAt":52,"install":53,"resources":66},"01M6CY0EC8P7NZSA2W5WS5MM6A","sniff",null,"Detect JavaScript runtime, framework, tooling, data layer, and capabilities and emit the applicable pivot manifest.","RebelliousSmile\u002Fmy-claude-marketplace","RebelliousSmile","https:\u002F\u002Favatars.githubusercontent.com\u002Fu\u002F40766799?v=4","01M6CXW595637KNM9Z3TYT9F7R","François-Xavier Guillois","01M6CXW5DBBQTQ9JM1BKH9VQGK",1,"MIT","https:\u002F\u002Fgithub.com\u002FRebelliousSmile\u002Fmy-claude-marketplace\u002Fblob\u002Fmain\u002Fplugins\u002Fsc-js\u002Fskills\u002Fsniff\u002FSKILL.md",[18],{"categoryNo":19,"categoryName":20,"taxonomyType":21,"taxonomyTypeDesc":22},"01JBSEEDCAT000000000000009","前端开发","SCENARIO","使用场景",[5,24,25,26,27,28,29,30,31,32,33,34],"frontend","javascript","capabilities","framework","audit","data","manifest","Bash","tooling","files","runtime","2026-11-10 10:12:30",false,"---\nname: sniff\ndescription: >-\n  Detect JavaScript runtime, framework, tooling, data layer, and capabilities and emit the applicable pivot manifest.\nauthor: François-Xavier Guillois\nversion: 0.15.4\nvibe_version: \">=1.0.0\"\npermissions:\n  - bash\n  - files\ntags:\n  - frontend\n  - audit\n  - javascript\n---\n\nRead [host portability](..\u002F..\u002Freferences\u002Fhost-portability.md) before resolving plugin files, invoking sibling skills, or persisting project guidance.\n\n# sc-js Sniff\n\nJS stack detector and pivot manifeste producer.\n\n## Available actions\n\n| # | Action | Role | Input |\n|---|--------|------|-------|\n| 01 | `scan` | Detect capabilities, emit pivot manifeste, map perf\u002Fdata pivot install targets | current project path |\n| 02 | `install-pivots` | Install perf\u002Fdata pivots to `.claude\u002Frules\u002F07-quality\u002F` | scan pivot manifeste |\n| 03 | `clean` | Opt-in migration: remove orphaned 0.3.0 capability rules from `.claude\u002Frules\u002Fcapabilities\u002F` | project path |\n\n## Default flow\n\nSequential: `scan` → `install-pivots`.\n\n`clean` is **opt-in only** — invoke explicitly via `sc-js:sniff clean`. It is never part of the default flow.\n\n## Conceptual model\n\n- A **capability** is something the app does: manage state, split code, render icons, etc.\n- A **pivot** is the JS knowledge for the chosen solution (e.g. Pinia patterns, lucide-vue-next usage)\n- Pivots live in the plugin (`skills\u002Fsniff\u002Freferences\u002Fcapabilities\u002F`) — they are loaded at audit time, not installed to the project\n- **Perf pivots** and **data pivots** are the exception: they ARE written to `.claude\u002Frules\u002F07-quality\u002F` because `web-optimize` and `data-optimize` read them from there\n\n## Transversal rules\n\n- If `package.json` is absent, abort with an explicit message.\n- Never install a capability rule to `.claude\u002Frules\u002Fcapabilities\u002F` — those are read from the plugin at audit time.\n- Never install a perf pivot for a framework not detected.\n- Never install a data pivot for an ORM not detected.\n- `03-clean` is destructive — always show a dry-run scan before deleting anything.\n- Report gaps in three buckets: capability gaps (pivot candidates, listed exhaustively), tooling\u002Finfra (condensed, no pivot expected), and private\u002Fworkspace packages (excluded by scope). Drop companion packages of an already-covered pivot (e.g. `@vitest\u002Fcoverage-v8`, `@eslint\u002Fjs`) — they are not gaps. See `01-scan` Step 6.\n- `02-install-pivots` never prints \"pivots installed\" when nothing was written — use the no-op \u002F up-to-date header instead.\n- A free-text summary must never call something a \"gap\" if it appears in the pivot manifeste.\n","Read [host portability](..\u002F..\u002Freferences\u002Fhost-portability.md) before resolving plugin files, invoking sibling skills, or persisting project guidance.\n\n# sc-js Sniff\n\nJS stack detector and pivot manifeste producer.\n\n## Available actions\n\n| # | Action | Role | Input |\n|---|--------|------|-------|\n| 01 | `scan` | Detect capabilities, emit pivot manifeste, map perf\u002Fdata pivot install targets | current project path |\n| 02 | `install-pivots` | Install perf\u002Fdata pivots to `.claude\u002Frules\u002F07-quality\u002F` | scan pivot manifeste |\n| 03 | `clean` | Opt-in migration: remove orphaned 0.3.0 capability rules from `.claude\u002Frules\u002Fcapabilities\u002F` | project path |\n\n## Default flow\n\nSequential: `scan` → `install-pivots`.\n\n`clean` is **opt-in only** — invoke explicitly via `sc-js:sniff clean`. It is never part of the default flow.\n\n## Conceptual model\n\n- A **capability** is something the app does: manage state, split code, render icons, etc.\n- A **pivot** is the JS knowledge for the chosen solution (e.g. Pinia patterns, lucide-vue-next usage)\n- Pivots live in the plugin (`skills\u002Fsniff\u002Freferences\u002Fcapabilities\u002F`) — they are loaded at audit time, not installed to the project\n- **Perf pivots** and **data pivots** are the exception: they ARE written to `.claude\u002Frules\u002F07-quality\u002F` because `web-optimize` and `data-optimize` read them from there\n\n## Transversal rules\n\n- If `package.json` is absent, abort with an explicit message.\n- Never install a capability rule to `.claude\u002Frules\u002Fcapabilities\u002F` — those are read from the plugin at audit time.\n- Never install a perf pivot for a framework not detected.\n- Never install a data pivot for an ORM not detected.\n- `03-clean` is destructive — always show a dry-run scan before deleting anything.\n- Report gaps in three buckets: capability gaps (pivot candidates, listed exhaustively), tooling\u002Finfra (condensed, no pivot expected), and private\u002Fworkspace packages (excluded by scope). Drop companion packages of an already-covered pivot (e.g. `@vitest\u002Fcoverage-v8`, `@eslint\u002Fjs`) — they are not gaps. See `01-scan` Step 6.\n- `02-install-pivots` never prints \"pivots installed\" when nothing was written — use the no-op \u002F up-to-date header instead.\n- A free-text summary must never call something a \"gap\" if it appears in the pivot manifeste.\n",{"name":5,"tags":40,"author":12,"version":41,"description":7,"permissions":42,"vibe_version":44},[24,28,25],"0.15.4",[43,33],"bash",">=1.0.0","main","a33208351920c3cd0562b6ccf0846a9abe46741c","plugins\u002Fsc-js\u002Fskills\u002Fsniff",0,"https:\u002F\u002Fgithub.com\u002FRebelliousSmile\u002Fmy-claude-marketplace","https:\u002F\u002Fgithub.com\u002FRebelliousSmile","https:\u002F\u002Fwww.scriptami.com\u002F","2026-11-11 04:40:59",{"source":8,"skillName":5,"commands":54,"prompt":64,"zipAvailable":65},[55,58,61],{"tool":56,"command":57},"npx","npx skills add RebelliousSmile\u002Fmy-claude-marketplace --skill sniff",{"tool":59,"command":60},"bunx","bunx skills add RebelliousSmile\u002Fmy-claude-marketplace --skill sniff",{"tool":62,"command":63},"pnpm","pnpm dlx skills add RebelliousSmile\u002Fmy-claude-marketplace --skill sniff","安装技能，技能地址：https:\u002F\u002Fgithub.com\u002FRebelliousSmile\u002Fmy-claude-marketplace\u002Fblob\u002Fmain\u002Fplugins\u002Fsc-js\u002Fskills\u002Fsniff\u002FSKILL.md",true,[67,73,77,81,85,89,93,97,101,105,109,113,117,121,125,129,133,137,141,145,149,153,157,161,165,169,173,177,181,185,189,193,197,201,205,209,213],{"path":68,"resourceType":69,"resourceTypeDesc":70,"sizeBytes":71,"sourceHtmlUrl":72},"actions\u002F01-scan.md","REFERENCE","参考文档",14330,"https:\u002F\u002Fgithub.com\u002FRebelliousSmile\u002Fmy-claude-marketplace\u002Fblob\u002Fmain\u002Fplugins\u002Fsc-js\u002Fskills\u002Fsniff\u002Factions\u002F01-scan.md",{"path":74,"resourceType":69,"resourceTypeDesc":70,"sizeBytes":75,"sourceHtmlUrl":76},"actions\u002F02-install-pivots.md",5050,"https:\u002F\u002Fgithub.com\u002FRebelliousSmile\u002Fmy-claude-marketplace\u002Fblob\u002Fmain\u002Fplugins\u002Fsc-js\u002Fskills\u002Fsniff\u002Factions\u002F02-install-pivots.md",{"path":78,"resourceType":69,"resourceTypeDesc":70,"sizeBytes":79,"sourceHtmlUrl":80},"actions\u002F03-clean.md",4321,"https:\u002F\u002Fgithub.com\u002FRebelliousSmile\u002Fmy-claude-marketplace\u002Fblob\u002Fmain\u002Fplugins\u002Fsc-js\u002Fskills\u002Fsniff\u002Factions\u002F03-clean.md",{"path":82,"resourceType":69,"resourceTypeDesc":70,"sizeBytes":83,"sourceHtmlUrl":84},"evals\u002Fscenarios.json",1072,"https:\u002F\u002Fgithub.com\u002FRebelliousSmile\u002Fmy-claude-marketplace\u002Fblob\u002Fmain\u002Fplugins\u002Fsc-js\u002Fskills\u002Fsniff\u002Fevals\u002Fscenarios.json",{"path":86,"resourceType":69,"resourceTypeDesc":70,"sizeBytes":87,"sourceHtmlUrl":88},"references\u002Fcapabilities\u002Fcode-splitting\u002FdefineAsyncComponent.md",1674,"https:\u002F\u002Fgithub.com\u002FRebelliousSmile\u002Fmy-claude-marketplace\u002Fblob\u002Fmain\u002Fplugins\u002Fsc-js\u002Fskills\u002Fsniff\u002Freferences\u002Fcapabilities\u002Fcode-splitting\u002FdefineAsyncComponent.md",{"path":90,"resourceType":69,"resourceTypeDesc":70,"sizeBytes":91,"sourceHtmlUrl":92},"references\u002Fcapabilities\u002Fcode-splitting\u002Fdynamic-import.md",1084,"https:\u002F\u002Fgithub.com\u002FRebelliousSmile\u002Fmy-claude-marketplace\u002Fblob\u002Fmain\u002Fplugins\u002Fsc-js\u002Fskills\u002Fsniff\u002Freferences\u002Fcapabilities\u002Fcode-splitting\u002Fdynamic-import.md",{"path":94,"resourceType":69,"resourceTypeDesc":70,"sizeBytes":95,"sourceHtmlUrl":96},"references\u002Fcapabilities\u002Fcomponents\u002Falpine-x-data.md",2624,"https:\u002F\u002Fgithub.com\u002FRebelliousSmile\u002Fmy-claude-marketplace\u002Fblob\u002Fmain\u002Fplugins\u002Fsc-js\u002Fskills\u002Fsniff\u002Freferences\u002Fcapabilities\u002Fcomponents\u002Falpine-x-data.md",{"path":98,"resourceType":69,"resourceTypeDesc":70,"sizeBytes":99,"sourceHtmlUrl":100},"references\u002Fcapabilities\u002Fcomponents\u002Fshared-scope.md",753,"https:\u002F\u002Fgithub.com\u002FRebelliousSmile\u002Fmy-claude-marketplace\u002Fblob\u002Fmain\u002Fplugins\u002Fsc-js\u002Fskills\u002Fsniff\u002Freferences\u002Fcapabilities\u002Fcomponents\u002Fshared-scope.md",{"path":102,"resourceType":69,"resourceTypeDesc":70,"sizeBytes":103,"sourceHtmlUrl":104},"references\u002Fcapabilities\u002Fdata\u002Fdrizzle.md",9431,"https:\u002F\u002Fgithub.com\u002FRebelliousSmile\u002Fmy-claude-marketplace\u002Fblob\u002Fmain\u002Fplugins\u002Fsc-js\u002Fskills\u002Fsniff\u002Freferences\u002Fcapabilities\u002Fdata\u002Fdrizzle.md",{"path":106,"resourceType":69,"resourceTypeDesc":70,"sizeBytes":107,"sourceHtmlUrl":108},"references\u002Fcapabilities\u002Fdata\u002Fgraphql.md",10235,"https:\u002F\u002Fgithub.com\u002FRebelliousSmile\u002Fmy-claude-marketplace\u002Fblob\u002Fmain\u002Fplugins\u002Fsc-js\u002Fskills\u002Fsniff\u002Freferences\u002Fcapabilities\u002Fdata\u002Fgraphql.md",{"path":110,"resourceType":69,"resourceTypeDesc":70,"sizeBytes":111,"sourceHtmlUrl":112},"references\u002Fcapabilities\u002Fdata\u002Fmongoose.md",10158,"https:\u002F\u002Fgithub.com\u002FRebelliousSmile\u002Fmy-claude-marketplace\u002Fblob\u002Fmain\u002Fplugins\u002Fsc-js\u002Fskills\u002Fsniff\u002Freferences\u002Fcapabilities\u002Fdata\u002Fmongoose.md",{"path":114,"resourceType":69,"resourceTypeDesc":70,"sizeBytes":115,"sourceHtmlUrl":116},"references\u002Fcapabilities\u002Fdata\u002Fprisma.md",9971,"https:\u002F\u002Fgithub.com\u002FRebelliousSmile\u002Fmy-claude-marketplace\u002Fblob\u002Fmain\u002Fplugins\u002Fsc-js\u002Fskills\u002Fsniff\u002Freferences\u002Fcapabilities\u002Fdata\u002Fprisma.md",{"path":118,"resourceType":69,"resourceTypeDesc":70,"sizeBytes":119,"sourceHtmlUrl":120},"references\u002Fcapabilities\u002Fdata\u002Ftrpc.md",9811,"https:\u002F\u002Fgithub.com\u002FRebelliousSmile\u002Fmy-claude-marketplace\u002Fblob\u002Fmain\u002Fplugins\u002Fsc-js\u002Fskills\u002Fsniff\u002Freferences\u002Fcapabilities\u002Fdata\u002Ftrpc.md",{"path":122,"resourceType":69,"resourceTypeDesc":70,"sizeBytes":123,"sourceHtmlUrl":124},"references\u002Fcapabilities\u002Fdata\u002Ftypeorm.md",9699,"https:\u002F\u002Fgithub.com\u002FRebelliousSmile\u002Fmy-claude-marketplace\u002Fblob\u002Fmain\u002Fplugins\u002Fsc-js\u002Fskills\u002Fsniff\u002Freferences\u002Fcapabilities\u002Fdata\u002Ftypeorm.md",{"path":126,"resourceType":69,"resourceTypeDesc":70,"sizeBytes":127,"sourceHtmlUrl":128},"references\u002Fcapabilities\u002Ficons\u002Flucide-vue.md",966,"https:\u002F\u002Fgithub.com\u002FRebelliousSmile\u002Fmy-claude-marketplace\u002Fblob\u002Fmain\u002Fplugins\u002Fsc-js\u002Fskills\u002Fsniff\u002Freferences\u002Fcapabilities\u002Ficons\u002Flucide-vue.md",{"path":130,"resourceType":69,"resourceTypeDesc":70,"sizeBytes":131,"sourceHtmlUrl":132},"references\u002Fcapabilities\u002Ficons\u002Fsvg-inline.md",2680,"https:\u002F\u002Fgithub.com\u002FRebelliousSmile\u002Fmy-claude-marketplace\u002Fblob\u002Fmain\u002Fplugins\u002Fsc-js\u002Fskills\u002Fsniff\u002Freferences\u002Fcapabilities\u002Ficons\u002Fsvg-inline.md",{"path":134,"resourceType":69,"resourceTypeDesc":70,"sizeBytes":135,"sourceHtmlUrl":136},"references\u002Fcapabilities\u002Fimages\u002Fweb-optimization.md",2886,"https:\u002F\u002Fgithub.com\u002FRebelliousSmile\u002Fmy-claude-marketplace\u002Fblob\u002Fmain\u002Fplugins\u002Fsc-js\u002Fskills\u002Fsniff\u002Freferences\u002Fcapabilities\u002Fimages\u002Fweb-optimization.md",{"path":138,"resourceType":69,"resourceTypeDesc":70,"sizeBytes":139,"sourceHtmlUrl":140},"references\u002Fcapabilities\u002Fnetworking\u002Fpreconnect.md",1727,"https:\u002F\u002Fgithub.com\u002FRebelliousSmile\u002Fmy-claude-marketplace\u002Fblob\u002Fmain\u002Fplugins\u002Fsc-js\u002Fskills\u002Fsniff\u002Freferences\u002Fcapabilities\u002Fnetworking\u002Fpreconnect.md",{"path":142,"resourceType":69,"resourceTypeDesc":70,"sizeBytes":143,"sourceHtmlUrl":144},"references\u002Fcapabilities\u002Fperf\u002Falpine.md",5123,"https:\u002F\u002Fgithub.com\u002FRebelliousSmile\u002Fmy-claude-marketplace\u002Fblob\u002Fmain\u002Fplugins\u002Fsc-js\u002Fskills\u002Fsniff\u002Freferences\u002Fcapabilities\u002Fperf\u002Falpine.md",{"path":146,"resourceType":69,"resourceTypeDesc":70,"sizeBytes":147,"sourceHtmlUrl":148},"references\u002Fcapabilities\u002Fperf\u002Fnuxt.md",7704,"https:\u002F\u002Fgithub.com\u002FRebelliousSmile\u002Fmy-claude-marketplace\u002Fblob\u002Fmain\u002Fplugins\u002Fsc-js\u002Fskills\u002Fsniff\u002Freferences\u002Fcapabilities\u002Fperf\u002Fnuxt.md",{"path":150,"resourceType":69,"resourceTypeDesc":70,"sizeBytes":151,"sourceHtmlUrl":152},"references\u002Fcapabilities\u002Fperf\u002Fstatic.md",5292,"https:\u002F\u002Fgithub.com\u002FRebelliousSmile\u002Fmy-claude-marketplace\u002Fblob\u002Fmain\u002Fplugins\u002Fsc-js\u002Fskills\u002Fsniff\u002Freferences\u002Fcapabilities\u002Fperf\u002Fstatic.md",{"path":154,"resourceType":69,"resourceTypeDesc":70,"sizeBytes":155,"sourceHtmlUrl":156},"references\u002Fcapabilities\u002Fperf\u002Fsveltekit.md",7427,"https:\u002F\u002Fgithub.com\u002FRebelliousSmile\u002Fmy-claude-marketplace\u002Fblob\u002Fmain\u002Fplugins\u002Fsc-js\u002Fskills\u002Fsniff\u002Freferences\u002Fcapabilities\u002Fperf\u002Fsveltekit.md",{"path":158,"resourceType":69,"resourceTypeDesc":70,"sizeBytes":159,"sourceHtmlUrl":160},"references\u002Fcapabilities\u002Fperf\u002Fvanilla.md",5594,"https:\u002F\u002Fgithub.com\u002FRebelliousSmile\u002Fmy-claude-marketplace\u002Fblob\u002Fmain\u002Fplugins\u002Fsc-js\u002Fskills\u002Fsniff\u002Freferences\u002Fcapabilities\u002Fperf\u002Fvanilla.md",{"path":162,"resourceType":69,"resourceTypeDesc":70,"sizeBytes":163,"sourceHtmlUrl":164},"references\u002Fcapabilities\u002Fperf\u002Fvite.md",4999,"https:\u002F\u002Fgithub.com\u002FRebelliousSmile\u002Fmy-claude-marketplace\u002Fblob\u002Fmain\u002Fplugins\u002Fsc-js\u002Fskills\u002Fsniff\u002Freferences\u002Fcapabilities\u002Fperf\u002Fvite.md",{"path":166,"resourceType":69,"resourceTypeDesc":70,"sizeBytes":167,"sourceHtmlUrl":168},"references\u002Fcapabilities\u002Fperf\u002Fvue-spa.md",4993,"https:\u002F\u002Fgithub.com\u002FRebelliousSmile\u002Fmy-claude-marketplace\u002Fblob\u002Fmain\u002Fplugins\u002Fsc-js\u002Fskills\u002Fsniff\u002Freferences\u002Fcapabilities\u002Fperf\u002Fvue-spa.md",{"path":170,"resourceType":69,"resourceTypeDesc":70,"sizeBytes":171,"sourceHtmlUrl":172},"references\u002Fcapabilities\u002Fserver\u002Fexpress-mvc.md",3317,"https:\u002F\u002Fgithub.com\u002FRebelliousSmile\u002Fmy-claude-marketplace\u002Fblob\u002Fmain\u002Fplugins\u002Fsc-js\u002Fskills\u002Fsniff\u002Freferences\u002Fcapabilities\u002Fserver\u002Fexpress-mvc.md",{"path":174,"resourceType":69,"resourceTypeDesc":70,"sizeBytes":175,"sourceHtmlUrl":176},"references\u002Fcapabilities\u002Fserver\u002Fnitro-imports.md",1363,"https:\u002F\u002Fgithub.com\u002FRebelliousSmile\u002Fmy-claude-marketplace\u002Fblob\u002Fmain\u002Fplugins\u002Fsc-js\u002Fskills\u002Fsniff\u002Freferences\u002Fcapabilities\u002Fserver\u002Fnitro-imports.md",{"path":178,"resourceType":69,"resourceTypeDesc":70,"sizeBytes":179,"sourceHtmlUrl":180},"references\u002Fcapabilities\u002Fssr\u002Fstorage-guards.md",2161,"https:\u002F\u002Fgithub.com\u002FRebelliousSmile\u002Fmy-claude-marketplace\u002Fblob\u002Fmain\u002Fplugins\u002Fsc-js\u002Fskills\u002Fsniff\u002Freferences\u002Fcapabilities\u002Fssr\u002Fstorage-guards.md",{"path":182,"resourceType":69,"resourceTypeDesc":70,"sizeBytes":183,"sourceHtmlUrl":184},"references\u002Fcapabilities\u002Fstate\u002Falpine-store.md",2097,"https:\u002F\u002Fgithub.com\u002FRebelliousSmile\u002Fmy-claude-marketplace\u002Fblob\u002Fmain\u002Fplugins\u002Fsc-js\u002Fskills\u002Fsniff\u002Freferences\u002Fcapabilities\u002Fstate\u002Falpine-store.md",{"path":186,"resourceType":69,"resourceTypeDesc":70,"sizeBytes":187,"sourceHtmlUrl":188},"references\u002Fcapabilities\u002Fstate\u002Fpinia.md",2454,"https:\u002F\u002Fgithub.com\u002FRebelliousSmile\u002Fmy-claude-marketplace\u002Fblob\u002Fmain\u002Fplugins\u002Fsc-js\u002Fskills\u002Fsniff\u002Freferences\u002Fcapabilities\u002Fstate\u002Fpinia.md",{"path":190,"resourceType":69,"resourceTypeDesc":70,"sizeBytes":191,"sourceHtmlUrl":192},"references\u002Fcapabilities\u002Fstate\u002Fsvelte-stores.md",4025,"https:\u002F\u002Fgithub.com\u002FRebelliousSmile\u002Fmy-claude-marketplace\u002Fblob\u002Fmain\u002Fplugins\u002Fsc-js\u002Fskills\u002Fsniff\u002Freferences\u002Fcapabilities\u002Fstate\u002Fsvelte-stores.md",{"path":194,"resourceType":69,"resourceTypeDesc":70,"sizeBytes":195,"sourceHtmlUrl":196},"references\u002Fcapabilities\u002Fstyling\u002Fcss-transitions.md",1051,"https:\u002F\u002Fgithub.com\u002FRebelliousSmile\u002Fmy-claude-marketplace\u002Fblob\u002Fmain\u002Fplugins\u002Fsc-js\u002Fskills\u002Fsniff\u002Freferences\u002Fcapabilities\u002Fstyling\u002Fcss-transitions.md",{"path":198,"resourceType":69,"resourceTypeDesc":70,"sizeBytes":199,"sourceHtmlUrl":200},"references\u002Fcapabilities\u002Ftools\u002Fbiome.md",2749,"https:\u002F\u002Fgithub.com\u002FRebelliousSmile\u002Fmy-claude-marketplace\u002Fblob\u002Fmain\u002Fplugins\u002Fsc-js\u002Fskills\u002Fsniff\u002Freferences\u002Fcapabilities\u002Ftools\u002Fbiome.md",{"path":202,"resourceType":69,"resourceTypeDesc":70,"sizeBytes":203,"sourceHtmlUrl":204},"references\u002Fcapabilities\u002Ftools\u002Feslint.md",2865,"https:\u002F\u002Fgithub.com\u002FRebelliousSmile\u002Fmy-claude-marketplace\u002Fblob\u002Fmain\u002Fplugins\u002Fsc-js\u002Fskills\u002Fsniff\u002Freferences\u002Fcapabilities\u002Ftools\u002Feslint.md",{"path":206,"resourceType":69,"resourceTypeDesc":70,"sizeBytes":207,"sourceHtmlUrl":208},"references\u002Fcapabilities\u002Ftools\u002Fplaywright.md",4843,"https:\u002F\u002Fgithub.com\u002FRebelliousSmile\u002Fmy-claude-marketplace\u002Fblob\u002Fmain\u002Fplugins\u002Fsc-js\u002Fskills\u002Fsniff\u002Freferences\u002Fcapabilities\u002Ftools\u002Fplaywright.md",{"path":210,"resourceType":69,"resourceTypeDesc":70,"sizeBytes":211,"sourceHtmlUrl":212},"references\u002Fcapabilities\u002Ftools\u002Fvitest.md",2303,"https:\u002F\u002Fgithub.com\u002FRebelliousSmile\u002Fmy-claude-marketplace\u002Fblob\u002Fmain\u002Fplugins\u002Fsc-js\u002Fskills\u002Fsniff\u002Freferences\u002Fcapabilities\u002Ftools\u002Fvitest.md",{"path":214,"resourceType":69,"resourceTypeDesc":70,"sizeBytes":215,"sourceHtmlUrl":216},"references\u002Fcapabilities\u002Ftypescript.md",3516,"https:\u002F\u002Fgithub.com\u002FRebelliousSmile\u002Fmy-claude-marketplace\u002Fblob\u002Fmain\u002Fplugins\u002Fsc-js\u002Fskills\u002Fsniff\u002Freferences\u002Fcapabilities\u002Ftypescript.md",[218,227,239,246,251,257],{"skillNo":219,"name":220,"nameZh":6,"description":6,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":221,"categories":222,"keywords":223,"publishedAt":35},"01M6CY3N1KXYQQG47SD4966CMS","web-optimize","https:\u002F\u002Fgithub.com\u002FRebelliousSmile\u002Fmy-claude-marketplace\u002Fblob\u002Fmain\u002Ftools\u002Feval\u002Ffixtures-pivot-map\u002Fvalid\u002Fplugins\u002Fovercode\u002Fskills\u002Fweb-optimize\u002FSKILL.md",[],[224,225,226],"web","optimize","web optimize",{"skillNo":228,"name":229,"nameZh":6,"description":6,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":230,"categories":231,"keywords":237,"publishedAt":35},"01M6CY3KR1H8WTNM1GV1SH6DY8","data-optimize","https:\u002F\u002Fgithub.com\u002FRebelliousSmile\u002Fmy-claude-marketplace\u002Fblob\u002Fmain\u002Ftools\u002Feval\u002Ffixtures-pivot-map\u002Fvalid\u002Fplugins\u002Fovercode\u002Fskills\u002Fdata-optimize\u002FSKILL.md",[232],{"categoryNo":233,"categoryName":234,"taxonomyType":235,"taxonomyTypeDesc":236},"01JBSEEDCAT000000000000033","数据分析师","PROFESSION","适用职业",[29,225,238],"data optimize",{"skillNo":240,"name":241,"nameZh":6,"description":6,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":242,"categories":243,"keywords":244,"publishedAt":35},"01M6CY3JJJGXQG2X5X5PVTTB2A","ap-optimize","https:\u002F\u002Fgithub.com\u002FRebelliousSmile\u002Fmy-claude-marketplace\u002Fblob\u002Fmain\u002Ftools\u002Feval\u002Ffixtures-pivot-map\u002Fvalid\u002Fplugins\u002Fovercode\u002Fskills\u002Fap-optimize\u002FSKILL.md",[],[225,245],"ap optimize",{"skillNo":247,"name":220,"nameZh":6,"description":6,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":248,"categories":249,"keywords":250,"publishedAt":35},"01M6CY3HD94NANM2AE5JA7Z22D","https:\u002F\u002Fgithub.com\u002FRebelliousSmile\u002Fmy-claude-marketplace\u002Fblob\u002Fmain\u002Ftools\u002Feval\u002Ffixtures-pivot-map\u002Forphan\u002Fplugins\u002Fovercode\u002Fskills\u002Fweb-optimize\u002FSKILL.md",[],[224,225,226],{"skillNo":252,"name":229,"nameZh":6,"description":6,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":253,"categories":254,"keywords":256,"publishedAt":35},"01M6CY3G6M0NC688HYCFD9TDV1","https:\u002F\u002Fgithub.com\u002FRebelliousSmile\u002Fmy-claude-marketplace\u002Fblob\u002Fmain\u002Ftools\u002Feval\u002Ffixtures-pivot-map\u002Forphan\u002Fplugins\u002Fovercode\u002Fskills\u002Fdata-optimize\u002FSKILL.md",[255],{"categoryNo":233,"categoryName":234,"taxonomyType":235,"taxonomyTypeDesc":236},[29,225,238],{"skillNo":258,"name":241,"nameZh":6,"description":6,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":259,"categories":260,"keywords":261,"publishedAt":35},"01M6CY3ES1CAT89NKBXPBGEFZ9","https:\u002F\u002Fgithub.com\u002FRebelliousSmile\u002Fmy-claude-marketplace\u002Fblob\u002Fmain\u002Ftools\u002Feval\u002Ffixtures-pivot-map\u002Forphan\u002Fplugins\u002Fovercode\u002Fskills\u002Fap-optimize\u002FSKILL.md",[],[225,245]]