[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill:01M6PDHARRX2VAHB6P0MW60FED":3,"skill-same:01M6PDHARRX2VAHB6P0MW60FED":74},{"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":42,"linkOnly":43,"markdownContent":44,"markdownBody":45,"frontMatter":46,"refName":51,"commitSha":52,"skillDirectory":53,"forksCount":54,"repositoryHtmlUrl":55,"repositoryHomepageUrl":55,"ownerHtmlUrl":56,"ownerBlogUrl":57,"ownerDescription":58,"updatedAt":59,"install":60,"resources":73},"01M6PDHARRX2VAHB6P0MW60FED","figma-logos-svgl",null,"Use when working with Figma and brand or product logos are needed — triggers on brand names (React, Next.js, Vercel, Stripe, GitHub), company logos, or requests to add\u002Finsert logos in Figma designs.","douinc\u002Fagent-skills","douinc","https:\u002F\u002Favatars.githubusercontent.com\u002Fu\u002F104253814?v=4","01M6PDGX2D777TNA7NETDKDHCW","dou inc.","01M6PDGX6QMFW72GNMX59GKN6P",1,"MIT","https:\u002F\u002Fgithub.com\u002Fdouinc\u002Fagent-skills\u002Fblob\u002Fmain\u002Fskills\u002Ffigma-logos-svgl\u002FSKILL.md",[18],{"categoryNo":19,"categoryName":20,"taxonomyType":21,"taxonomyTypeDesc":22},"01JBSEEDCAT000000000000032","设计师","PROFESSION","适用职业",[24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41],"figma logos svgl","svgl","figma","stripe","company","requests","with","add","triggers","next","github","vercel","use","brand","js","Next.js","product","react","2026-11-10 10:12:30",false,"---\nname: figma-logos-svgl\ndescription: Use when working with Figma and brand or product logos are needed — triggers on brand names (React, Next.js, Vercel, Stripe, GitHub), company logos, or requests to add\u002Finsert logos in Figma designs.\nmetadata:\n  author: initred\n  email: initred@dou.so\n  version: \"1.0.0\"\n---\n\n# SVGL Logos for Figma\n\nFetch real brand and product SVG logos from the [SVGL API](https:\u002F\u002Fsvgl.app\u002F) and insert them into Figma designs. **Never draw logos manually** — always use this workflow to get accurate logos from a curated collection of 500+ brand SVGs.\n\n**SVGL vs Iconify:** Use this skill for **brand\u002Fproduct logos** (React, Vercel, Stripe, GitHub). Use `figma-icons-iconify` for **UI icons** (arrows, alerts, settings).\n\n## Prerequisites\n\n- The `figma-use` skill **MUST** be loaded before any `use_figma` tool call. Always invoke it first.\n- `fetch()` is **NOT available** inside `use_figma` code. All HTTP requests must happen **before** calling `use_figma`.\n- **Use `Bash(curl -s ...)` instead of `WebFetch`** to call the SVGL API. The SVGL API may return 403 for WebFetch requests but works with curl.\n\n## Core Workflow\n\n### Step 1: Search for the Logo\n\nUse the SVGL search endpoint to find the logo:\n\n```bash\ncurl -s \"https:\u002F\u002Fapi.svgl.app?search={name}\"\n```\n\n**Example:**\n\n```bash\ncurl -s \"https:\u002F\u002Fapi.svgl.app?search=react\"\n```\n\nThis returns a JSON array. Each item has a `route` field which is either:\n\n- **A string** — single SVG URL (e.g., `\"https:\u002F\u002Fsvgl.app\u002Flibrary\u002Fpreact.svg\"`)\n- **A theme object** — with `light` and `dark` variants:\n  ```json\n  {\n    \"light\": \"https:\u002F\u002Fsvgl.app\u002Flibrary\u002Freact_light.svg\",\n    \"dark\": \"https:\u002F\u002Fsvgl.app\u002Flibrary\u002Freact_dark.svg\"\n  }\n  ```\n\nPick the matching result by `title`, then choose the appropriate variant (light\u002Fdark) based on the design context.\n\n> **Note:** The `category` field can be a string (`\"Software\"`) or an array (`[\"Software\", \"Privacy\"]`). Handle both types when filtering by category.\n\n### Step 2: Fetch the SVG Content\n\nFetch the raw SVG using the URL from Step 1:\n\n```bash\ncurl -s \"https:\u002F\u002Fsvgl.app\u002Flibrary\u002F{filename}.svg\"\n```\n\n**Example:**\n\n```bash\ncurl -s \"https:\u002F\u002Fsvgl.app\u002Flibrary\u002Freact_dark.svg\"\n```\n\n### Step 3: Insert into Figma via use_figma\n\nPass the fetched SVG string into a `use_figma` call using `figma.createNodeFromSvg()`:\n\n```js\n\u002F\u002F Paste the exact SVG string from Step 2\nconst svgString = `\u003Csvg xmlns=\"http:\u002F\u002Fwww.w3.org\u002F2000\u002Fsvg\" ...>...\u003C\u002Fsvg>`;\n\nconst node = figma.createNodeFromSvg(svgString);\n\u002F\u002F Name format: SVGL\u002F{logo-name} for easy identification\nnode.name = \"SVGL\u002FReact\";\n\n\u002F\u002F IMPORTANT: Preserve aspect ratio when resizing.\n\u002F\u002F Extract original dimensions from the created node, then scale proportionally.\nconst originalWidth = node.width;\nconst originalHeight = node.height;\nconst targetHeight = 24; \u002F\u002F desired height\nconst targetWidth = targetHeight * (originalWidth \u002F originalHeight);\nnode.resize(targetWidth, targetHeight);\n\n\u002F\u002F Append to target frame (replace TARGET_ID with actual node ID)\nconst target = figma.getNodeById(\"TARGET_ID\");\ntarget.appendChild(node);\n\nreturn { createdNodeIds: [node.id] };\n```\n\n> **Aspect ratio is critical.** Brand logos are rarely square (e.g., Nuxt is 256x168). Always calculate proportional dimensions from the original SVG width\u002Fheight. Never force a square resize like `node.resize(16, 16)` unless the original SVG is square.\n\n## API Endpoints\n\n| Endpoint                               | Description              | Example              |\n| -------------------------------------- | ------------------------ | -------------------- |\n| `https:\u002F\u002Fapi.svgl.app?search={query}`  | Search logos by name     | `?search=vercel`     |\n| `https:\u002F\u002Fapi.svgl.app?limit={n}`       | Get all logos with limit | `?limit=10`          |\n| `https:\u002F\u002Fapi.svgl.app\u002Fcategory\u002F{name}` | Get logos by category    | `\u002Fcategory\u002Fsoftware` |\n| `https:\u002F\u002Fapi.svgl.app\u002Fcategories`      | List all categories      | —                    |\n\n## Handling Light\u002FDark Variants\n\nMany logos have separate light and dark versions. Check the `route` field type:\n\n```bash\n# Search result with theme variants:\n# { \"title\": \"React\", \"route\": { \"light\": \"...react_light.svg\", \"dark\": \"...react_dark.svg\" } }\n\n# For dark backgrounds → use the dark variant\ncurl -s \"https:\u002F\u002Fsvgl.app\u002Flibrary\u002Freact_dark.svg\"\n\n# For light backgrounds → use the light variant\ncurl -s \"https:\u002F\u002Fsvgl.app\u002Flibrary\u002Freact_light.svg\"\n```\n\n**When unsure which variant to use:** default to the `light` variant, or check the target frame's background color.\n\n## Wordmarks\n\nSome logos also have wordmark versions (logo with text). These are in the `wordmark` field:\n\n```json\n{\n  \"title\": \"React\",\n  \"route\": { \"light\": \"...react_light.svg\", \"dark\": \"...react_dark.svg\" },\n  \"wordmark\": {\n    \"light\": \"...react-wordmark-light.svg\",\n    \"dark\": \"...react-wordmark-dark.svg\"\n  }\n}\n```\n\nUse the `wordmark` URL when the user requests a logo with text or a full brand mark.\n\n## Recoloring After Insertion\n\nIf you need to change the logo color after inserting into Figma, traverse the node's children and update fills:\n\n```js\nconst logoNode = figma.getNodeById(\"LOGO_NODE_ID\");\n\nfunction recolor(node, color) {\n  if (\"fills\" in node && node.fills.length > 0) {\n    node.fills = [{ type: \"SOLID\", color }];\n  }\n  if (\"strokes\" in node && node.strokes.length > 0) {\n    node.strokes = [{ type: \"SOLID\", color }];\n  }\n  if (\"children\" in node) {\n    for (const child of node.children) {\n      recolor(child, color);\n    }\n  }\n}\n\n\u002F\u002F Color values are 0-1 range (not 0-255)\nrecolor(logoNode, { r: 1, g: 1, b: 1 });\n\nreturn { mutatedNodeIds: [logoNode.id] };\n```\n\n## Handling Errors\n\n- **Empty search results:** If `curl -s \"https:\u002F\u002Fapi.svgl.app?search={name}\"` returns `[]`, the logo is not in SVGL. Try alternative names or check spelling.\n- **404 from SVG URL:** The `route` URL is broken or outdated. Re-search to get the latest URL.\n- **`figma.createNodeFromSvg()` fails:** Strip the `\u003C?xml ...?>` declaration from the SVG string and retry. Some SVGL SVGs include XML preambles that can cause issues.\n\n## Constraints\n\n1. **NEVER draw logos manually** with vector paths, shapes, or text when the logo is available on SVGL.\n2. **NEVER use `fetch()` inside `use_figma`** — it does not exist in the Figma Plugin API sandbox. Always fetch SVG via `Bash(curl -s ...)` before the `use_figma` call.\n3. **Always load the `figma-use` skill** before making any `use_figma` tool call.\n4. **Always return created node IDs** from `use_figma` calls for subsequent operations.\n5. **Name logo nodes as `SVGL\u002F{LogoName}`** (e.g., `SVGL\u002FReact`, `SVGL\u002FVercel`, `SVGL\u002FGitHub`). This makes logos identifiable by their source in the Figma layers panel.\n6. **Respect light\u002Fdark variants** — choose the appropriate variant based on the design's background color.\n7. **SVG may contain `\u003C?xml ...?>` declaration** — `figma.createNodeFromSvg()` handles this, but if it fails, strip the XML declaration before passing to Figma.\n8. **NEVER force-resize to a square.** Always preserve the original SVG aspect ratio. Calculate proportional width\u002Fheight from `node.width` and `node.height` after `createNodeFromSvg()`, then resize with `node.resize(targetHeight * (node.width \u002F node.height), targetHeight)`.\n","# SVGL Logos for Figma\n\nFetch real brand and product SVG logos from the [SVGL API](https:\u002F\u002Fsvgl.app\u002F) and insert them into Figma designs. **Never draw logos manually** — always use this workflow to get accurate logos from a curated collection of 500+ brand SVGs.\n\n**SVGL vs Iconify:** Use this skill for **brand\u002Fproduct logos** (React, Vercel, Stripe, GitHub). Use `figma-icons-iconify` for **UI icons** (arrows, alerts, settings).\n\n## Prerequisites\n\n- The `figma-use` skill **MUST** be loaded before any `use_figma` tool call. Always invoke it first.\n- `fetch()` is **NOT available** inside `use_figma` code. All HTTP requests must happen **before** calling `use_figma`.\n- **Use `Bash(curl -s ...)` instead of `WebFetch`** to call the SVGL API. The SVGL API may return 403 for WebFetch requests but works with curl.\n\n## Core Workflow\n\n### Step 1: Search for the Logo\n\nUse the SVGL search endpoint to find the logo:\n\n```bash\ncurl -s \"https:\u002F\u002Fapi.svgl.app?search={name}\"\n```\n\n**Example:**\n\n```bash\ncurl -s \"https:\u002F\u002Fapi.svgl.app?search=react\"\n```\n\nThis returns a JSON array. Each item has a `route` field which is either:\n\n- **A string** — single SVG URL (e.g., `\"https:\u002F\u002Fsvgl.app\u002Flibrary\u002Fpreact.svg\"`)\n- **A theme object** — with `light` and `dark` variants:\n  ```json\n  {\n    \"light\": \"https:\u002F\u002Fsvgl.app\u002Flibrary\u002Freact_light.svg\",\n    \"dark\": \"https:\u002F\u002Fsvgl.app\u002Flibrary\u002Freact_dark.svg\"\n  }\n  ```\n\nPick the matching result by `title`, then choose the appropriate variant (light\u002Fdark) based on the design context.\n\n> **Note:** The `category` field can be a string (`\"Software\"`) or an array (`[\"Software\", \"Privacy\"]`). Handle both types when filtering by category.\n\n### Step 2: Fetch the SVG Content\n\nFetch the raw SVG using the URL from Step 1:\n\n```bash\ncurl -s \"https:\u002F\u002Fsvgl.app\u002Flibrary\u002F{filename}.svg\"\n```\n\n**Example:**\n\n```bash\ncurl -s \"https:\u002F\u002Fsvgl.app\u002Flibrary\u002Freact_dark.svg\"\n```\n\n### Step 3: Insert into Figma via use_figma\n\nPass the fetched SVG string into a `use_figma` call using `figma.createNodeFromSvg()`:\n\n```js\n\u002F\u002F Paste the exact SVG string from Step 2\nconst svgString = `\u003Csvg xmlns=\"http:\u002F\u002Fwww.w3.org\u002F2000\u002Fsvg\" ...>...\u003C\u002Fsvg>`;\n\nconst node = figma.createNodeFromSvg(svgString);\n\u002F\u002F Name format: SVGL\u002F{logo-name} for easy identification\nnode.name = \"SVGL\u002FReact\";\n\n\u002F\u002F IMPORTANT: Preserve aspect ratio when resizing.\n\u002F\u002F Extract original dimensions from the created node, then scale proportionally.\nconst originalWidth = node.width;\nconst originalHeight = node.height;\nconst targetHeight = 24; \u002F\u002F desired height\nconst targetWidth = targetHeight * (originalWidth \u002F originalHeight);\nnode.resize(targetWidth, targetHeight);\n\n\u002F\u002F Append to target frame (replace TARGET_ID with actual node ID)\nconst target = figma.getNodeById(\"TARGET_ID\");\ntarget.appendChild(node);\n\nreturn { createdNodeIds: [node.id] };\n```\n\n> **Aspect ratio is critical.** Brand logos are rarely square (e.g., Nuxt is 256x168). Always calculate proportional dimensions from the original SVG width\u002Fheight. Never force a square resize like `node.resize(16, 16)` unless the original SVG is square.\n\n## API Endpoints\n\n| Endpoint                               | Description              | Example              |\n| -------------------------------------- | ------------------------ | -------------------- |\n| `https:\u002F\u002Fapi.svgl.app?search={query}`  | Search logos by name     | `?search=vercel`     |\n| `https:\u002F\u002Fapi.svgl.app?limit={n}`       | Get all logos with limit | `?limit=10`          |\n| `https:\u002F\u002Fapi.svgl.app\u002Fcategory\u002F{name}` | Get logos by category    | `\u002Fcategory\u002Fsoftware` |\n| `https:\u002F\u002Fapi.svgl.app\u002Fcategories`      | List all categories      | —                    |\n\n## Handling Light\u002FDark Variants\n\nMany logos have separate light and dark versions. Check the `route` field type:\n\n```bash\n# Search result with theme variants:\n# { \"title\": \"React\", \"route\": { \"light\": \"...react_light.svg\", \"dark\": \"...react_dark.svg\" } }\n\n# For dark backgrounds → use the dark variant\ncurl -s \"https:\u002F\u002Fsvgl.app\u002Flibrary\u002Freact_dark.svg\"\n\n# For light backgrounds → use the light variant\ncurl -s \"https:\u002F\u002Fsvgl.app\u002Flibrary\u002Freact_light.svg\"\n```\n\n**When unsure which variant to use:** default to the `light` variant, or check the target frame's background color.\n\n## Wordmarks\n\nSome logos also have wordmark versions (logo with text). These are in the `wordmark` field:\n\n```json\n{\n  \"title\": \"React\",\n  \"route\": { \"light\": \"...react_light.svg\", \"dark\": \"...react_dark.svg\" },\n  \"wordmark\": {\n    \"light\": \"...react-wordmark-light.svg\",\n    \"dark\": \"...react-wordmark-dark.svg\"\n  }\n}\n```\n\nUse the `wordmark` URL when the user requests a logo with text or a full brand mark.\n\n## Recoloring After Insertion\n\nIf you need to change the logo color after inserting into Figma, traverse the node's children and update fills:\n\n```js\nconst logoNode = figma.getNodeById(\"LOGO_NODE_ID\");\n\nfunction recolor(node, color) {\n  if (\"fills\" in node && node.fills.length > 0) {\n    node.fills = [{ type: \"SOLID\", color }];\n  }\n  if (\"strokes\" in node && node.strokes.length > 0) {\n    node.strokes = [{ type: \"SOLID\", color }];\n  }\n  if (\"children\" in node) {\n    for (const child of node.children) {\n      recolor(child, color);\n    }\n  }\n}\n\n\u002F\u002F Color values are 0-1 range (not 0-255)\nrecolor(logoNode, { r: 1, g: 1, b: 1 });\n\nreturn { mutatedNodeIds: [logoNode.id] };\n```\n\n## Handling Errors\n\n- **Empty search results:** If `curl -s \"https:\u002F\u002Fapi.svgl.app?search={name}\"` returns `[]`, the logo is not in SVGL. Try alternative names or check spelling.\n- **404 from SVG URL:** The `route` URL is broken or outdated. Re-search to get the latest URL.\n- **`figma.createNodeFromSvg()` fails:** Strip the `\u003C?xml ...?>` declaration from the SVG string and retry. Some SVGL SVGs include XML preambles that can cause issues.\n\n## Constraints\n\n1. **NEVER draw logos manually** with vector paths, shapes, or text when the logo is available on SVGL.\n2. **NEVER use `fetch()` inside `use_figma`** — it does not exist in the Figma Plugin API sandbox. Always fetch SVG via `Bash(curl -s ...)` before the `use_figma` call.\n3. **Always load the `figma-use` skill** before making any `use_figma` tool call.\n4. **Always return created node IDs** from `use_figma` calls for subsequent operations.\n5. **Name logo nodes as `SVGL\u002F{LogoName}`** (e.g., `SVGL\u002FReact`, `SVGL\u002FVercel`, `SVGL\u002FGitHub`). This makes logos identifiable by their source in the Figma layers panel.\n6. **Respect light\u002Fdark variants** — choose the appropriate variant based on the design's background color.\n7. **SVG may contain `\u003C?xml ...?>` declaration** — `figma.createNodeFromSvg()` handles this, but if it fails, strip the XML declaration before passing to Figma.\n8. **NEVER force-resize to a square.** Always preserve the original SVG aspect ratio. Calculate proportional width\u002Fheight from `node.width` and `node.height` after `createNodeFromSvg()`, then resize with `node.resize(targetHeight * (node.width \u002F node.height), targetHeight)`.\n",{"name":5,"metadata":47,"description":7},{"email":48,"author":49,"version":50},"initred@dou.so","initred","1.0.0","main","ee55538fc8b60bb1595f860f18cbd7baba1925aa","skills\u002Ffigma-logos-svgl",0,"https:\u002F\u002Fgithub.com\u002Fdouinc\u002Fagent-skills","https:\u002F\u002Fgithub.com\u002Fdouinc","https:\u002F\u002Fdou.so","A clinical intelligence company","2026-11-11 17:58:59",{"source":8,"skillName":5,"commands":61,"prompt":71,"zipAvailable":72},[62,65,68],{"tool":63,"command":64},"npx","npx skills add douinc\u002Fagent-skills --skill figma-logos-svgl",{"tool":66,"command":67},"bunx","bunx skills add douinc\u002Fagent-skills --skill figma-logos-svgl",{"tool":69,"command":70},"pnpm","pnpm dlx skills add douinc\u002Fagent-skills --skill figma-logos-svgl","安装技能，技能地址：https:\u002F\u002Fgithub.com\u002Fdouinc\u002Fagent-skills\u002Fblob\u002Fmain\u002Fskills\u002Ffigma-logos-svgl\u002FSKILL.md",true,[],[75,91,126,141,171,187],{"skillNo":76,"name":77,"nameZh":6,"description":78,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":79,"categories":80,"keywords":86,"publishedAt":42},"01M6PDKC7XDA3NYF969T945D7S","template-skill","Replace with description of the skill and when the agent should use it.","https:\u002F\u002Fgithub.com\u002Fdouinc\u002Fagent-skills\u002Fblob\u002Fmain\u002Ftemplate\u002FSKILL.md",[81],{"categoryNo":82,"categoryName":83,"taxonomyType":84,"taxonomyTypeDesc":85},"01JBSEEDCAT000000000000023","Skill与智能体开发","SCENARIO","使用场景",[87,88,30,36,89,90],"template skill","template","name","it",{"skillNo":92,"name":93,"nameZh":6,"description":94,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":95,"categories":96,"keywords":105,"publishedAt":42},"01M6PDK6MNC6EMGA8W7KD7NJQX","writing-project-readme","Use when explicitly invoked to write or fully rewrite a project README that must cover tech stack, architecture, features, and service description in a single document — readable by non-engineers (PM, design, ops, domain experts) as well as developers. Triggers on requests like \"write the README\", \"redo README.md based on the whole project\", \"make a comprehensive README everyone can understand\". Skip for one-section edits, badge tweaks, or generating a CHANGELOG.","https:\u002F\u002Fgithub.com\u002Fdouinc\u002Fagent-skills\u002Fblob\u002Fmain\u002Fskills\u002Fwriting-project-readme\u002FSKILL.md",[97,100,101,102],{"categoryNo":98,"categoryName":99,"taxonomyType":84,"taxonomyTypeDesc":85},"01JBSEEDCAT000000000000018","写作与文案",{"categoryNo":82,"categoryName":83,"taxonomyType":84,"taxonomyTypeDesc":85},{"categoryNo":19,"categoryName":20,"taxonomyType":21,"taxonomyTypeDesc":22},{"categoryNo":103,"categoryName":104,"taxonomyType":21,"taxonomyTypeDesc":22},"01JBSEEDCAT000000000000036","内容创作者",[106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,123,124,125],"writing","README","project","project readme","writing project readme","changelog","architecture","domain","design","alpha","stack","write","pm","as","tech","make","experts","cover","for","features",{"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":135,"publishedAt":42},"01M6PDK2S8KXK1NDM22C9FKE49","ux-writing-korean","한국어로 UI\u002FUX 문구를 작성하거나 검수할 때 사용합니다. 해요체, 능동형, 긍정형, 캐주얼 경어, 명사 조합 회피 등 5가지 핵심 원칙과 예외 규칙을 적용합니다.","https:\u002F\u002Fgithub.com\u002Fdouinc\u002Fagent-skills\u002Fblob\u002Fmain\u002Fskills\u002Fux-writing-korean\u002FSKILL.md",[132,133,134],{"categoryNo":98,"categoryName":99,"taxonomyType":84,"taxonomyTypeDesc":85},{"categoryNo":19,"categoryName":20,"taxonomyType":21,"taxonomyTypeDesc":22},{"categoryNo":103,"categoryName":104,"taxonomyType":21,"taxonomyTypeDesc":22},[136,137,138,139,106,140],"ux writing korean","ux writing","korean","ux","ui",{"skillNo":142,"name":143,"nameZh":6,"description":144,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":145,"categories":146,"keywords":151,"publishedAt":42},"01M6PDJXK3DVWFR0420XV79HZ6","token-audit","Audit a Claude Code or Codex CLI project for token waste and fix it with the user's approval. Use whenever the user wants to check, reduce, or optimize token usage, context bloat, or API\u002Fsubscription costs of an agent project — phrases like \"토큰 점검\", \"토큰 낭비 찾아줘\", \"토큰 최적화\", \"컨텍스트 최적화\", \"Claude Code 비용 줄여줘\", \"API 비용이 너무 나와\", \"audit token efficiency\", \"check my CLAUDE.md\u002FAGENTS.md\u002FMCP setup\". Also trigger when the user complains that sessions hit context limits too fast, that costs jumped unexpectedly, or asks whether their project setup is token-efficient — even if they don't say the word \"token\".","https:\u002F\u002Fgithub.com\u002Fdouinc\u002Fagent-skills\u002Fblob\u002Fmain\u002Fskills\u002Ftoken-audit\u002FSKILL.md",[147,148],{"categoryNo":82,"categoryName":83,"taxonomyType":84,"taxonomyTypeDesc":85},{"categoryNo":149,"categoryName":150,"taxonomyType":21,"taxonomyTypeDesc":22},"01JBSEEDCAT000000000000030","开发工程师",[152,153,154,155,156,157,158,159,160,161,108,162,163,164,165,166,167,168,169,170],"token","audit","token audit","limits","token efficiency","bloat","api","my","usage","mcp setup","efficiency","optimize","fix","context","reduce","code","codex cli","cli","MCP",{"skillNo":172,"name":173,"nameZh":6,"description":174,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":175,"categories":176,"keywords":177,"publishedAt":42},"01M6PDJR1Y9BAM48RDKRQHK5MQ","release-showcase","정식 릴리스의 변경을 이전·이후 스크린샷, 클릭 흐름 녹화 영상, 비교·단계·탭·흐름도 같은 HTML 컴포넌트로 보여 주는 파일 하나짜리 릴리스 문서를 만든다. 텍스트뿐인 릴리스 노트로는 어떤 UX가 바뀌었고 새 기능을 어떻게 쓰는지 감이 안 올 때 쓴다. '릴리스 노트 문서 만들어 줘', '릴리스 쇼케이스', '이번 배포 변경사항 정리해서 공유', '릴리즈 노트 HTML', '변경사항을 화면으로 보여 주는 문서', '업데이트 소개 페이지', 'what's new 페이지', 'release notes with screenshots', 'changelog page', '배포 공지 자료'처럼 버전 태그 사이의 변경을 팀·고객에게 시각적으로 알릴 때 반드시 사용한다. git 태그로 릴리스하는 저장소라면 웹·데스크톱·모바일 어느 앱이든 쓴다. 커밋 목록만 필요한 CHANGELOG.md 갱신, 릴리스 태그·배포 자체, 마케팅 영상 제작에는 쓰지 않는다.","https:\u002F\u002Fgithub.com\u002Fdouinc\u002Fagent-skills\u002Fblob\u002Fmain\u002Fskills\u002Frelease-showcase\u002FSKILL.md",[],[178,179,180,181,182,183,184,111,30,185,186],"release","showcase","release showcase","git","release notes","notes","screenshots","html","page",{"skillNo":188,"name":189,"nameZh":6,"description":190,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":191,"categories":192,"keywords":195,"publishedAt":42},"01M6PDJJEQMBWWXW4TPXYNNV38","public-sector-rfp-authoring","Use when drafting or revising Korean government or local-government bid notices, requests for proposals, statements of work, or public-sector service\u002Fproject specifications from the ordering agency's perspective.","https:\u002F\u002Fgithub.com\u002Fdouinc\u002Fagent-skills\u002Fblob\u002Fmain\u002Fskills\u002Fpublic-sector-rfp-authoring\u002FSKILL.md",[193,194],{"categoryNo":82,"categoryName":83,"taxonomyType":84,"taxonomyTypeDesc":85},{"categoryNo":19,"categoryName":20,"taxonomyType":21,"taxonomyTypeDesc":22},[196,197,198,199,200,201,202,124,29,203,204,108,205,138,36,206,207,208],"public sector rfp authoring","authoring","rfp","public","hermes","agency","perspective","specifications","service","local","proposals","work","hermes agent"]